MeshLib Python Docs
Loading...
Searching...
No Matches
mrmeshpy.RemeshSettings Class Reference

Public Member Functions

None __init__ (self)
 
None __init__ (self, RemeshSettings arg0)
 
None __init__ (self, float targetEdgeLen, int maxEdgeSplits, float maxAngleChangeAfterFlip, float maxBdShift, bool useCurvature, int finalRelaxIters, bool finalRelaxNoShrinkage, FaceBitSet region, UndirectedEdgeBitSet notFlippable, bool packMesh, bool projectOnOriginalMesh, func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit, func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeDel, func_bool_from_Id_EdgeTag_Vector3_float preCollapse, func_bool_from_float progressCallback)
 
int finalRelaxIters (self)
 
None finalRelaxIters (self, int arg1)
 
bool finalRelaxNoShrinkage (self)
 
None finalRelaxNoShrinkage (self, bool arg1)
 
float maxAngleChangeAfterFlip (self)
 
None maxAngleChangeAfterFlip (self, float arg1)
 
float maxBdShift (self)
 
None maxBdShift (self, float arg1)
 
int maxEdgeSplits (self)
 
None maxEdgeSplits (self, int arg1)
 
UndirectedEdgeBitSet notFlippable (self)
 
None notFlippable (self, UndirectedEdgeBitSet arg1)
 
func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeDel (self)
 
None onEdgeDel (self, func_void_from_Id_EdgeTag_Id_EdgeTag arg1)
 
func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit (self)
 
None onEdgeSplit (self, func_void_from_Id_EdgeTag_Id_EdgeTag arg1)
 
bool packMesh (self)
 
None packMesh (self, bool arg1)
 
func_bool_from_Id_EdgeTag_Vector3_float preCollapse (self)
 
None preCollapse (self, func_bool_from_Id_EdgeTag_Vector3_float 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)
 
float targetEdgeLen (self)
 
None targetEdgeLen (self, float arg1)
 
bool useCurvature (self)
 
None useCurvature (self, bool arg1)
 

Static Protected Member Functions

 _pybind11_conduit_v1_ (*args, **kwargs)
 

Detailed Description

Generated from:  MR::RemeshSettings

Constructor & Destructor Documentation

◆ __init__() [1/3]

None mrmeshpy.RemeshSettings.__init__ ( self)
Implicit default constructor.

◆ __init__() [2/3]

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

◆ __init__() [3/3]

None mrmeshpy.RemeshSettings.__init__ ( self,
float targetEdgeLen,
int maxEdgeSplits,
float maxAngleChangeAfterFlip,
float maxBdShift,
bool useCurvature,
int finalRelaxIters,
bool finalRelaxNoShrinkage,
FaceBitSet region,
UndirectedEdgeBitSet notFlippable,
bool packMesh,
bool projectOnOriginalMesh,
func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit,
func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeDel,
func_bool_from_Id_EdgeTag_Vector3_float preCollapse,
func_bool_from_float progressCallback )
Implicit aggregate constructor.

Member Function Documentation

◆ _pybind11_conduit_v1_()

mrmeshpy.RemeshSettings._pybind11_conduit_v1_ ( * args,
** kwargs )
staticprotected

◆ finalRelaxIters() [1/2]

int mrmeshpy.RemeshSettings.finalRelaxIters ( self)
the number of iterations of final relaxation of mesh vertices;
few iterations can give almost perfect uniformity of the vertices and edge lengths but deviate from the original surface

◆ finalRelaxIters() [2/2]

None mrmeshpy.RemeshSettings.finalRelaxIters ( self,
int arg1 )

◆ finalRelaxNoShrinkage() [1/2]

bool mrmeshpy.RemeshSettings.finalRelaxNoShrinkage ( self)
if true prevents the surface from shrinkage after many iterations

◆ finalRelaxNoShrinkage() [2/2]

None mrmeshpy.RemeshSettings.finalRelaxNoShrinkage ( self,
bool arg1 )

◆ maxAngleChangeAfterFlip() [1/2]

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

◆ maxAngleChangeAfterFlip() [2/2]

None mrmeshpy.RemeshSettings.maxAngleChangeAfterFlip ( self,
float arg1 )

◆ maxBdShift() [1/2]

float mrmeshpy.RemeshSettings.maxBdShift ( self)
Maximal shift of a boundary during one edge collapse

◆ maxBdShift() [2/2]

None mrmeshpy.RemeshSettings.maxBdShift ( self,
float arg1 )

◆ maxEdgeSplits() [1/2]

int mrmeshpy.RemeshSettings.maxEdgeSplits ( self)
Maximum number of edge splits allowed during subdivision

◆ maxEdgeSplits() [2/2]

None mrmeshpy.RemeshSettings.maxEdgeSplits ( self,
int arg1 )

◆ notFlippable() [1/2]

UndirectedEdgeBitSet mrmeshpy.RemeshSettings.notFlippable ( self)
Edges specified by this bit-set will never be flipped or collapsed, but they can be replaced during collapse of nearby edges so it is updated during the operation;
also the vertices incident to these edges are excluded from relaxation

◆ notFlippable() [2/2]

None mrmeshpy.RemeshSettings.notFlippable ( self,
UndirectedEdgeBitSet arg1 )

◆ onEdgeDel() [1/2]

func_void_from_Id_EdgeTag_Id_EdgeTag mrmeshpy.RemeshSettings.onEdgeDel ( self)
if valid (e1) is given then dest(e) = dest(e1) and their origins are in different ends of collapsing edge, e1 shall take the place of e

◆ onEdgeDel() [2/2]

None mrmeshpy.RemeshSettings.onEdgeDel ( self,
func_void_from_Id_EdgeTag_Id_EdgeTag arg1 )

◆ onEdgeSplit() [1/2]

func_void_from_Id_EdgeTag_Id_EdgeTag mrmeshpy.RemeshSettings.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 mrmeshpy.RemeshSettings.onEdgeSplit ( self,
func_void_from_Id_EdgeTag_Id_EdgeTag arg1 )

◆ packMesh() [1/2]

bool mrmeshpy.RemeshSettings.packMesh ( self)
whether to pack mesh at the end

◆ packMesh() [2/2]

None mrmeshpy.RemeshSettings.packMesh ( self,
bool arg1 )

◆ preCollapse() [1/2]

func_bool_from_Id_EdgeTag_Vector3_float mrmeshpy.RemeshSettings.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

◆ preCollapse() [2/2]

None mrmeshpy.RemeshSettings.preCollapse ( self,
func_bool_from_Id_EdgeTag_Vector3_float arg1 )

◆ progressCallback() [1/2]

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

◆ progressCallback() [2/2]

None mrmeshpy.RemeshSettings.progressCallback ( self,
func_bool_from_float arg1 )

◆ projectOnOriginalMesh() [1/2]

bool mrmeshpy.RemeshSettings.projectOnOriginalMesh ( self)
if true, then every new vertex after subdivision will be projected on the original mesh (before smoothing);
this does not affect the vertices moved on other stages of the processing

◆ projectOnOriginalMesh() [2/2]

None mrmeshpy.RemeshSettings.projectOnOriginalMesh ( self,
bool arg1 )

◆ region() [1/2]

FaceBitSet mrmeshpy.RemeshSettings.region ( self)
Region on mesh to be changed, it is updated during the operation

◆ region() [2/2]

None mrmeshpy.RemeshSettings.region ( self,
FaceBitSet arg1 )

◆ targetEdgeLen() [1/2]

float mrmeshpy.RemeshSettings.targetEdgeLen ( self)
the algorithm will try to keep the length of all edges close to this value,
splitting the edges longer than targetEdgeLen, and then eliminating the edges shorter than targetEdgeLen

◆ targetEdgeLen() [2/2]

None mrmeshpy.RemeshSettings.targetEdgeLen ( self,
float arg1 )

◆ useCurvature() [1/2]

bool mrmeshpy.RemeshSettings.useCurvature ( self)
This option in subdivision works best for natural surfaces, where all triangles are close to equilateral and have similar area,
and no sharp edges in between

◆ useCurvature() [2/2]

None mrmeshpy.RemeshSettings.useCurvature ( self,
bool arg1 )

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