CSG_build_hull: use bruteforce, when is reasonable (double facehoof)
This commit is contained in:
parent
d83d5977b7
commit
a88202f6c1
|
|
@ -1089,7 +1089,7 @@ public:
|
||||||
|
|
||||||
#include "convhull_3d.h"
|
#include "convhull_3d.h"
|
||||||
void CSG_build_hull( const MergeVertices& mergeVertices, MergePlanes& mergePlanes ){
|
void CSG_build_hull( const MergeVertices& mergeVertices, MergePlanes& mergePlanes ){
|
||||||
#if 0
|
if( mergeVertices.size() < 130 ){ // use reliable path, when possible, as convhull_3d.h is not too much.
|
||||||
/* bruteforce new planes */
|
/* bruteforce new planes */
|
||||||
for( MergeVertices::const_iterator i = mergeVertices.begin() + 0; i != mergeVertices.end() - 2; ++i )
|
for( MergeVertices::const_iterator i = mergeVertices.begin() + 0; i != mergeVertices.end() - 2; ++i )
|
||||||
for( MergeVertices::const_iterator j = i + 1; j != mergeVertices.end() - 1; ++j )
|
for( MergeVertices::const_iterator j = i + 1; j != mergeVertices.end() - 1; ++j )
|
||||||
|
|
@ -1105,13 +1105,14 @@ void CSG_build_hull( const MergeVertices& mergeVertices, MergePlanes& mergePlane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
}
|
||||||
|
else{
|
||||||
const int nVertices = mergeVertices.size();
|
const int nVertices = mergeVertices.size();
|
||||||
ch_vertex* vertices = ( ch_vertex* )malloc( mergeVertices.size() * sizeof( ch_vertex ) );
|
ch_vertex* vertices = ( ch_vertex* )malloc( mergeVertices.size() * sizeof( ch_vertex ) );
|
||||||
for( std::size_t i = 0; i < mergeVertices.size(); ++i ){
|
for( std::size_t i = 0; i < mergeVertices.size(); ++i ){
|
||||||
vertices[i].x = static_cast<double>( mergeVertices[i].x() );
|
vertices[i].x = static_cast<CH_FLOAT>( mergeVertices[i].x() );
|
||||||
vertices[i].y = static_cast<double>( mergeVertices[i].y() );
|
vertices[i].y = static_cast<CH_FLOAT>( mergeVertices[i].y() );
|
||||||
vertices[i].z = static_cast<double>( mergeVertices[i].z() );
|
vertices[i].z = static_cast<CH_FLOAT>( mergeVertices[i].z() );
|
||||||
}
|
}
|
||||||
int* faceIndices = NULL;
|
int* faceIndices = NULL;
|
||||||
int nFaces;
|
int nFaces;
|
||||||
|
|
@ -1131,7 +1132,7 @@ void CSG_build_hull( const MergeVertices& mergeVertices, MergePlanes& mergePlane
|
||||||
|
|
||||||
free( vertices );
|
free( vertices );
|
||||||
free( faceIndices );
|
free( faceIndices );
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSG_WrapMerge( const ClipperPoints& clipperPoints ){
|
void CSG_WrapMerge( const ClipperPoints& clipperPoints ){
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user