MeshLib Python Docs
Loading...
Searching...
No Matches
meshlib.mrmeshpy.SubdivideSettings Class Reference

Public Member Functions

None __init__ (self)
 
None __init__ (self, SubdivideSettings arg0)
 
None __init__ (self, float maxEdgeLen, int maxEdgeSplits, float maxDeviationAfterFlip, float maxAngleChangeAfterFlip, float criticalAspectRatioFlip, FaceBitSet region, UndirectedEdgeBitSet notFlippable, VertBitSet newVerts, bool subdivideBorder, float maxTriAspectRatio, float maxSplittableTriAspectRatio, bool smoothMode, float minSharpDihedralAngle, bool projectOnOriginalMesh, func_void_from_Id_VertTag onVertCreated, func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit, func_bool_from_Id_EdgeTag beforeEdgeSplit, func_bool_from_float progressCallback)
 
func_bool_from_Id_EdgeTag beforeEdgeSplit (self)
 
None beforeEdgeSplit (self, func_bool_from_Id_EdgeTag arg1)
 
float criticalAspectRatioFlip (self)
 
None criticalAspectRatioFlip (self, float arg1)
 
float maxAngleChangeAfterFlip (self)
 
None maxAngleChangeAfterFlip (self, float arg1)
 
float maxDeviationAfterFlip (self)
 
None maxDeviationAfterFlip (self, float arg1)
 
float maxEdgeLen (self)
 
None maxEdgeLen (self, float arg1)
 
int maxEdgeSplits (self)
 
None maxEdgeSplits (self, int arg1)
 
float maxSplittableTriAspectRatio (self)
 
None maxSplittableTriAspectRatio (self, float arg1)
 
float maxTriAspectRatio (self)
 
None maxTriAspectRatio (self, float arg1)
 
float minSharpDihedralAngle (self)
 
None minSharpDihedralAngle (self, float arg1)
 
VertBitSet newVerts (self)
 
None newVerts (self, VertBitSet arg1)
 
UndirectedEdgeBitSet notFlippable (self)
 
None notFlippable (self, UndirectedEdgeBitSet arg1)
 
func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit (self)
 
None onEdgeSplit (self, func_void_from_Id_EdgeTag_Id_EdgeTag arg1)
 
func_void_from_Id_VertTag onVertCreated (self)
 
None onVertCreated (self, func_void_from_Id_VertTag arg1)
 
func_bool_from_float progressCallback (self)
 
None progressCallback (self, func_bool_from_float arg1)
 
bool projectOnOriginalMesh (self)
 
None projectOnOriginalMesh (self, bool arg1)
 
FaceBitSet region (self)
 
None region (self, FaceBitSet arg1)
 
bool smoothMode (self)
 
None smoothMode (self, bool arg1)
 
bool subdivideBorder (self)
 
None subdivideBorder (self, bool arg1)
 

Detailed Description

Generated from:  MR::SubdivideSettings

\\defgroup MeshSubdivideGroup Mesh Subdivide
\\ingroup MeshAlgorithmGroup
\\{

Constructor & Destructor Documentation

◆ __init__() [1/3]

None meshlib.mrmeshpy.SubdivideSettings.__init__ ( self)
Implicit default constructor.

◆ __init__() [2/3]

None meshlib.mrmeshpy.SubdivideSettings.__init__ ( self,
SubdivideSettings arg0 )
Implicit copy constructor.

◆ __init__() [3/3]

None meshlib.mrmeshpy.SubdivideSettings.__init__ ( self,
float maxEdgeLen,
int maxEdgeSplits,
float maxDeviationAfterFlip,
float maxAngleChangeAfterFlip,
float criticalAspectRatioFlip,
FaceBitSet region,
UndirectedEdgeBitSet notFlippable,
VertBitSet newVerts,
bool subdivideBorder,
float maxTriAspectRatio,
float maxSplittableTriAspectRatio,
bool smoothMode,
float minSharpDihedralAngle,
bool projectOnOriginalMesh,
func_void_from_Id_VertTag onVertCreated,
func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit,
func_bool_from_Id_EdgeTag beforeEdgeSplit,
func_bool_from_float progressCallback )
Implicit aggregate constructor.

Member Function Documentation

◆ beforeEdgeSplit() [1/2]

func_bool_from_Id_EdgeTag meshlib.mrmeshpy.SubdivideSettings.beforeEdgeSplit ( self)
this function is called each time edge (e) is going to split, if it returns false then this split will be skipped

◆ beforeEdgeSplit() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.beforeEdgeSplit ( self,
func_bool_from_Id_EdgeTag arg1 )

◆ criticalAspectRatioFlip() [1/2]

float meshlib.mrmeshpy.SubdivideSettings.criticalAspectRatioFlip ( self)
If this value is less than FLT_MAX then edge flips will
ignore dihedral angle check if one of triangles has aspect ratio more than this value
Unit: rad

◆ criticalAspectRatioFlip() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.criticalAspectRatioFlip ( self,
float arg1 )

◆ maxAngleChangeAfterFlip() [1/2]

float meshlib.mrmeshpy.SubdivideSettings.maxAngleChangeAfterFlip ( self)
Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians)

◆ maxAngleChangeAfterFlip() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.maxAngleChangeAfterFlip ( self,
float arg1 )

◆ maxDeviationAfterFlip() [1/2]

float meshlib.mrmeshpy.SubdivideSettings.maxDeviationAfterFlip ( self)
Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation

◆ maxDeviationAfterFlip() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.maxDeviationAfterFlip ( self,
float arg1 )

◆ maxEdgeLen() [1/2]

float meshlib.mrmeshpy.SubdivideSettings.maxEdgeLen ( self)
Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value

◆ maxEdgeLen() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.maxEdgeLen ( self,
float arg1 )

◆ maxEdgeSplits() [1/2]

int meshlib.mrmeshpy.SubdivideSettings.maxEdgeSplits ( self)
Maximum number of edge splits allowed

◆ maxEdgeSplits() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.maxEdgeSplits ( self,
int arg1 )

◆ maxSplittableTriAspectRatio() [1/2]

float meshlib.mrmeshpy.SubdivideSettings.maxSplittableTriAspectRatio ( self)
An edge is subdivided only if both its left and right triangles have aspect ratio below or equal to this value.
So this is a maximum aspect ratio of a triangle that can be split on two before Delone optimization.
Please set it to a smaller value only if subdivideBorder==false, otherwise many narrow triangles can appear near border

◆ maxSplittableTriAspectRatio() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.maxSplittableTriAspectRatio ( self,
float arg1 )

◆ maxTriAspectRatio() [1/2]

float meshlib.mrmeshpy.SubdivideSettings.maxTriAspectRatio ( self)
The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value

◆ maxTriAspectRatio() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.maxTriAspectRatio ( self,
float arg1 )

◆ minSharpDihedralAngle() [1/2]

float meshlib.mrmeshpy.SubdivideSettings.minSharpDihedralAngle ( self)
30 degrees

◆ minSharpDihedralAngle() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.minSharpDihedralAngle ( self,
float arg1 )

◆ newVerts() [1/2]

VertBitSet meshlib.mrmeshpy.SubdivideSettings.newVerts ( self)
New vertices appeared during subdivision will be added here

◆ newVerts() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.newVerts ( self,
VertBitSet arg1 )

◆ notFlippable() [1/2]

UndirectedEdgeBitSet meshlib.mrmeshpy.SubdivideSettings.notFlippable ( self)
Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation

◆ notFlippable() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.notFlippable ( self,
UndirectedEdgeBitSet arg1 )

◆ onEdgeSplit() [1/2]

func_void_from_Id_EdgeTag_Id_EdgeTag meshlib.mrmeshpy.SubdivideSettings.onEdgeSplit ( self)
this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone

◆ onEdgeSplit() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.onEdgeSplit ( self,
func_void_from_Id_EdgeTag_Id_EdgeTag arg1 )

◆ onVertCreated() [1/2]

func_void_from_Id_VertTag meshlib.mrmeshpy.SubdivideSettings.onVertCreated ( self)
this function is called each time a new vertex has been created, but before the ring is made Delone

◆ onVertCreated() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.onVertCreated ( self,
func_void_from_Id_VertTag arg1 )

◆ progressCallback() [1/2]

func_bool_from_float meshlib.mrmeshpy.SubdivideSettings.progressCallback ( self)
callback to report algorithm progress and cancel it by user request

◆ progressCallback() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.progressCallback ( self,
func_bool_from_float arg1 )

◆ projectOnOriginalMesh() [1/2]

bool meshlib.mrmeshpy.SubdivideSettings.projectOnOriginalMesh ( self)
if true, then every new vertex will be projected on the original mesh (before smoothing)

◆ projectOnOriginalMesh() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.projectOnOriginalMesh ( self,
bool arg1 )

◆ region() [1/2]

FaceBitSet meshlib.mrmeshpy.SubdivideSettings.region ( self)
Region on mesh to be subdivided, it is updated during the operation

◆ region() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.region ( self,
FaceBitSet arg1 )

◆ smoothMode() [1/2]

bool meshlib.mrmeshpy.SubdivideSettings.smoothMode ( self)
Puts new vertices so that they form a smooth surface together with existing vertices.
This option works best for natural surfaces without sharp edges in between triangles

◆ smoothMode() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.smoothMode ( self,
bool arg1 )

◆ subdivideBorder() [1/2]

bool meshlib.mrmeshpy.SubdivideSettings.subdivideBorder ( self)
If false do not touch border edges (cannot subdivide lone faces)\\n
use \\ref MR::findRegionOuterFaces to find boundary faces

◆ subdivideBorder() [2/2]

None meshlib.mrmeshpy.SubdivideSettings.subdivideBorder ( self,
bool arg1 )

The documentation for this class was generated from the following file: