Generated from: MR::DecimateSettings \\struct MR::DecimateSettings \\brief Parameters structure for MR::decimateMesh \\ingroup DecimateGroup \\sa \\ref decimateMesh
None meshlib.mrmeshpy.DecimateSettings.__init__ | ( | self | ) |
Implicit default constructor.
None meshlib.mrmeshpy.DecimateSettings.__init__ | ( | self, | |
DecimateSettings | arg0 ) |
Implicit copy constructor.
None meshlib.mrmeshpy.DecimateSettings.__init__ | ( | self, | |
DecimateStrategy | strategy, | ||
float | maxError, | ||
float | maxEdgeLen, | ||
float | maxBdShift, | ||
float | maxTriangleAspectRatio, | ||
float | criticalTriAspectRatio, | ||
float | tinyEdgeLength, | ||
float | stabilizer, | ||
bool | optimizeVertexPos, | ||
int | maxDeletedVertices, | ||
int | maxDeletedFaces, | ||
FaceBitSet | region, | ||
UndirectedEdgeBitSet | notFlippable, | ||
bool | collapseNearNotFlippable, | ||
UndirectedEdgeBitSet | edgesToCollapse, | ||
phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag | twinMap, | ||
bool | touchNearBdEdges, | ||
bool | touchBdVerts, | ||
VertBitSet | bdVerts, | ||
float | maxAngleChange, | ||
func_bool_from_Id_EdgeTag_Vector3_float | preCollapse, | ||
func_void_from_Id_UndirectedEdgeTag_float_Vector3_float | adjustCollapse, | ||
func_void_from_Id_EdgeTag_Id_EdgeTag | onEdgeDel, | ||
Vector_QuadraticForm3f_VertId | vertForms, | ||
bool | packMesh, | ||
func_bool_from_float | progressCallback, | ||
int | subdivideParts, | ||
bool | decimateBetweenParts, | ||
std_vector_TaggedBitSet_FaceTag | partFaces, | ||
int | minFacesInPart ) |
Implicit aggregate constructor.
func_void_from_Id_UndirectedEdgeTag_float_Vector3_float meshlib.mrmeshpy.DecimateSettings.adjustCollapse | ( | self | ) |
\\brief The user can provide this optional callback for adjusting error introduced by this edge collapse and the collapse position. \\details On input the callback gets the squared error and position computed by standard means, and callback can modify any of them. The larger the error, the later this edge will be collapsed. This callback can be called from many threads in parallel and must be thread-safe. This callback can be called many times for each edge before real collapsing, and it is important to make the same adjustment.
None meshlib.mrmeshpy.DecimateSettings.adjustCollapse | ( | self, | |
func_void_from_Id_UndirectedEdgeTag_float_Vector3_float | arg1 ) |
VertBitSet meshlib.mrmeshpy.DecimateSettings.bdVerts | ( | self | ) |
if touchNearBdEdges=false or touchBdVerts=false then the algorithm needs to know about all boundary vertices; if the pointer is not null then boundary vertices detection is replaced with testing values in this bit-set
None meshlib.mrmeshpy.DecimateSettings.bdVerts | ( | self, | |
VertBitSet | arg1 ) |
bool meshlib.mrmeshpy.DecimateSettings.collapseNearNotFlippable | ( | self | ) |
Whether to allow collapse of edges incident to notFlippable edges, which can move vertices of notFlippable edges unless they are fixed
None meshlib.mrmeshpy.DecimateSettings.collapseNearNotFlippable | ( | self, | |
bool | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.criticalTriAspectRatio | ( | self | ) |
the algorithm will ignore dihedral angle check if one of triangles had aspect ratio equal or more than this value; and the algorithm will permit temporary increase in aspect ratio after collapse, if before collapse one of the triangles had larger aspect ratio
None meshlib.mrmeshpy.DecimateSettings.criticalTriAspectRatio | ( | self, | |
float | arg1 ) |
bool meshlib.mrmeshpy.DecimateSettings.decimateBetweenParts | ( | self | ) |
After parallel decimation of all mesh parts is done, whether to perform final decimation of whole mesh region to eliminate small edges near the border of individual parts
None meshlib.mrmeshpy.DecimateSettings.decimateBetweenParts | ( | self, | |
bool | arg1 ) |
UndirectedEdgeBitSet meshlib.mrmeshpy.DecimateSettings.edgesToCollapse | ( | self | ) |
If pointer is not null, then only edges from here can be collapsed (and some nearby edges can disappear); the algorithm updates this map during collapses, removing or replacing elements
None meshlib.mrmeshpy.DecimateSettings.edgesToCollapse | ( | self, | |
UndirectedEdgeBitSet | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.maxAngleChange | ( | self | ) |
Permit edge flips (in addition to collapsing) to improve Delone quality of the mesh if it does not change dihedral angle more than on this value (negative value prohibits any edge flips)
None meshlib.mrmeshpy.DecimateSettings.maxAngleChange | ( | self, | |
float | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.maxBdShift | ( | self | ) |
Maximal shift of a boundary during one edge collapse
None meshlib.mrmeshpy.DecimateSettings.maxBdShift | ( | self, | |
float | arg1 ) |
int meshlib.mrmeshpy.DecimateSettings.maxDeletedFaces | ( | self | ) |
Limit on the number of deleted faces
None meshlib.mrmeshpy.DecimateSettings.maxDeletedFaces | ( | self, | |
int | arg1 ) |
int meshlib.mrmeshpy.DecimateSettings.maxDeletedVertices | ( | self | ) |
Limit on the number of deleted vertices
None meshlib.mrmeshpy.DecimateSettings.maxDeletedVertices | ( | self, | |
int | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.maxEdgeLen | ( | self | ) |
Maximal possible edge length created during decimation
None meshlib.mrmeshpy.DecimateSettings.maxEdgeLen | ( | self, | |
float | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.maxError | ( | self | ) |
for DecimateStrategy::MinimizeError: stop the decimation as soon as the estimated distance deviation from the original mesh is more than this value for DecimateStrategy::ShortestEdgeFirst only: stop the decimation as soon as the shortest edge in the mesh is greater than this value
None meshlib.mrmeshpy.DecimateSettings.maxError | ( | self, | |
float | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.maxTriangleAspectRatio | ( | self | ) |
Maximal possible aspect ratio of a triangle introduced during decimation
None meshlib.mrmeshpy.DecimateSettings.maxTriangleAspectRatio | ( | self, | |
float | arg1 ) |
int meshlib.mrmeshpy.DecimateSettings.minFacesInPart | ( | self | ) |
minimum number of faces in one subdivision part for ( subdivideParts > 1 ) mode
None meshlib.mrmeshpy.DecimateSettings.minFacesInPart | ( | self, | |
int | arg1 ) |
UndirectedEdgeBitSet meshlib.mrmeshpy.DecimateSettings.notFlippable | ( | self | ) |
Edges specified by this bit-set will never be flipped, but they can be collapsed or replaced during collapse of nearby edges so it is updated during the operation
None meshlib.mrmeshpy.DecimateSettings.notFlippable | ( | self, | |
UndirectedEdgeBitSet | arg1 ) |
func_void_from_Id_EdgeTag_Id_EdgeTag meshlib.mrmeshpy.DecimateSettings.onEdgeDel | ( | self | ) |
this function is called each time edge (del) is deleted; if valid (rem) is given then dest(del) = dest(rem) and their origins are in different ends of collapsing edge, (rem) shall take the place of (del)
None meshlib.mrmeshpy.DecimateSettings.onEdgeDel | ( | self, | |
func_void_from_Id_EdgeTag_Id_EdgeTag | arg1 ) |
bool meshlib.mrmeshpy.DecimateSettings.optimizeVertexPos | ( | self | ) |
if true then after each edge collapse the position of remaining vertex is optimized to minimize local shape change, if false then the edge is collapsed in one of its vertices, which keeps its position
None meshlib.mrmeshpy.DecimateSettings.optimizeVertexPos | ( | self, | |
bool | arg1 ) |
bool meshlib.mrmeshpy.DecimateSettings.packMesh | ( | self | ) |
whether to pack mesh at the end
None meshlib.mrmeshpy.DecimateSettings.packMesh | ( | self, | |
bool | arg1 ) |
std_vector_TaggedBitSet_FaceTag meshlib.mrmeshpy.DecimateSettings.partFaces | ( | self | ) |
if not null, then it contains the faces of each subdivision part on input, which must not overlap, and after decimation of all parts, the region inside each part is put here; decimateBetweenParts=true or packMesh=true are not compatible with this option
None meshlib.mrmeshpy.DecimateSettings.partFaces | ( | self, | |
std_vector_TaggedBitSet_FaceTag | arg1 ) |
func_bool_from_Id_EdgeTag_Vector3_float meshlib.mrmeshpy.DecimateSettings.preCollapse | ( | self | ) |
\\brief The user can provide this optional callback that is invoked immediately before edge collapse; \\details It receives the edge being collapsed: its destination vertex will disappear, and its origin vertex will get new position (provided as the second argument) after collapse; If the callback returns false, then the collapse is prohibited
None meshlib.mrmeshpy.DecimateSettings.preCollapse | ( | self, | |
func_bool_from_Id_EdgeTag_Vector3_float | arg1 ) |
func_bool_from_float meshlib.mrmeshpy.DecimateSettings.progressCallback | ( | self | ) |
callback to report algorithm progress and cancel it by user request
None meshlib.mrmeshpy.DecimateSettings.progressCallback | ( | self, | |
func_bool_from_float | arg1 ) |
FaceBitSet meshlib.mrmeshpy.DecimateSettings.region | ( | self | ) |
Region on mesh to be decimated, it is updated during the operation
None meshlib.mrmeshpy.DecimateSettings.region | ( | self, | |
FaceBitSet | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.stabilizer | ( | self | ) |
Small stabilizer is important to achieve good results on completely planar mesh parts, if your mesh is not-planer everywhere, then you can set it to zero
None meshlib.mrmeshpy.DecimateSettings.stabilizer | ( | self, | |
float | arg1 ) |
int meshlib.mrmeshpy.DecimateSettings.subdivideParts | ( | self | ) |
If this value is more than 1, then virtually subdivides the mesh on given number of parts to process them in parallel (using many threads); IMPORTANT: please call mesh.packOptimally() before calling decimating with subdivideParts > 1, otherwise performance will be bad
None meshlib.mrmeshpy.DecimateSettings.subdivideParts | ( | self, | |
int | arg1 ) |
float meshlib.mrmeshpy.DecimateSettings.tinyEdgeLength | ( | self | ) |
edges not longer than this value will be collapsed even if it results in appearance of a triangle with high aspect ratio
None meshlib.mrmeshpy.DecimateSettings.tinyEdgeLength | ( | self, | |
float | arg1 ) |
bool meshlib.mrmeshpy.DecimateSettings.touchBdVerts | ( | self | ) |
touchBdVerts=true: allow moving and eliminating boundary vertices during edge collapses; touchBdVerts=false: allow only collapsing an edge having only one boundary vertex in that vertex, so position and count of boundary vertices do not change; this setting is ignored if touchNearBdEdges=false
None meshlib.mrmeshpy.DecimateSettings.touchBdVerts | ( | self, | |
bool | arg1 ) |
bool meshlib.mrmeshpy.DecimateSettings.touchNearBdEdges | ( | self | ) |
Whether to allow collapsing or flipping edges having at least one vertex on (region) boundary
None meshlib.mrmeshpy.DecimateSettings.touchNearBdEdges | ( | self, | |
bool | arg1 ) |
phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag meshlib.mrmeshpy.DecimateSettings.twinMap | ( | self | ) |
if an edge present as a key in this map is flipped or collapsed, then same happens to the value-edge (with same collapse position); the algorithm updates this map during collapses, removing or replacing elements
None meshlib.mrmeshpy.DecimateSettings.twinMap | ( | self, | |
phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag | arg1 ) |
Vector_QuadraticForm3f_VertId meshlib.mrmeshpy.DecimateSettings.vertForms | ( | self | ) |
\\brief If not null, then vertex quadratic forms are stored there; if on input the vector is not empty then initialization is skipped in favor of values from there; on output: quadratic form for each remaining vertex is returned there
None meshlib.mrmeshpy.DecimateSettings.vertForms | ( | self, | |
Vector_QuadraticForm3f_VertId | arg1 ) |