|
@@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#include "SpatialSort.h"
|
|
#include "SpatialSort.h"
|
|
#include "ProcessHelper.h"
|
|
#include "ProcessHelper.h"
|
|
#include "Vertex.h"
|
|
#include "Vertex.h"
|
|
|
|
+#include <assimp/ai_assert.h>
|
|
#include <stdio.h>
|
|
#include <stdio.h>
|
|
|
|
|
|
using namespace Assimp;
|
|
using namespace Assimp;
|
|
@@ -55,9 +56,7 @@ void mydummy() {}
|
|
// ------------------------------------------------------------------------------------------------
|
|
// ------------------------------------------------------------------------------------------------
|
|
class CatmullClarkSubdivider : public Subdivider
|
|
class CatmullClarkSubdivider : public Subdivider
|
|
{
|
|
{
|
|
-
|
|
|
|
public:
|
|
public:
|
|
-
|
|
|
|
void Subdivide (aiMesh* mesh, aiMesh*& out, unsigned int num, bool discard_input);
|
|
void Subdivide (aiMesh* mesh, aiMesh*& out, unsigned int num, bool discard_input);
|
|
void Subdivide (aiMesh** smesh, size_t nmesh,
|
|
void Subdivide (aiMesh** smesh, size_t nmesh,
|
|
aiMesh** out, unsigned int num, bool discard_input);
|
|
aiMesh** out, unsigned int num, bool discard_input);
|
|
@@ -74,8 +73,6 @@ public:
|
|
unsigned int ref;
|
|
unsigned int ref;
|
|
};
|
|
};
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
typedef std::vector<unsigned int> UIntVector;
|
|
typedef std::vector<unsigned int> UIntVector;
|
|
typedef std::map<uint64_t,Edge> EdgeMap;
|
|
typedef std::map<uint64_t,Edge> EdgeMap;
|
|
|
|
|
|
@@ -99,7 +96,6 @@ public:
|
|
unsigned int eh_tmp0__, eh_tmp1__;
|
|
unsigned int eh_tmp0__, eh_tmp1__;
|
|
|
|
|
|
private:
|
|
private:
|
|
-
|
|
|
|
void InternSubdivide (const aiMesh* const * smesh,
|
|
void InternSubdivide (const aiMesh* const * smesh,
|
|
size_t nmesh,aiMesh** out, unsigned int num);
|
|
size_t nmesh,aiMesh** out, unsigned int num);
|
|
};
|
|
};
|
|
@@ -128,7 +124,8 @@ void CatmullClarkSubdivider::Subdivide (
|
|
bool discard_input
|
|
bool discard_input
|
|
)
|
|
)
|
|
{
|
|
{
|
|
- assert(mesh != out);
|
|
|
|
|
|
+ ai_assert(mesh != out);
|
|
|
|
+
|
|
Subdivide(&mesh,1,&out,num,discard_input);
|
|
Subdivide(&mesh,1,&out,num,discard_input);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -142,12 +139,12 @@ void CatmullClarkSubdivider::Subdivide (
|
|
bool discard_input
|
|
bool discard_input
|
|
)
|
|
)
|
|
{
|
|
{
|
|
- ai_assert(NULL != smesh && NULL != out);
|
|
|
|
|
|
+ ai_assert( NULL != smesh );
|
|
|
|
+ ai_assert( NULL != out );
|
|
|
|
|
|
// course, both regions may not overlap
|
|
// course, both regions may not overlap
|
|
- assert(smesh<out || smesh+nmesh>out+nmesh);
|
|
|
|
|
|
+ ai_assert(smesh<out || smesh+nmesh>out+nmesh);
|
|
if (!num) {
|
|
if (!num) {
|
|
-
|
|
|
|
// No subdivision at all. Need to copy all the meshes .. argh.
|
|
// No subdivision at all. Need to copy all the meshes .. argh.
|
|
if (discard_input) {
|
|
if (discard_input) {
|
|
for (size_t s = 0; s < nmesh; ++s) {
|
|
for (size_t s = 0; s < nmesh; ++s) {
|