MeshLib Python Docs
Loading...
Searching...
No Matches
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_bool_from_Id_EdgeTag beforeEdgeSplit, func_void_from_Id_VertTag onVertCreated, func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit, 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)
 

Static Protected Member Functions

 _pybind11_conduit_v1_ (*args, **kwargs)
 

Detailed Description

Generated from:  MR::SubdivideSettings

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

Constructor & Destructor Documentation

◆ __init__() [1/3]

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

◆ __init__() [2/3]

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

◆ __init__() [3/3]

None 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_bool_from_Id_EdgeTag beforeEdgeSplit,
func_void_from_Id_VertTag onVertCreated,
func_void_from_Id_EdgeTag_Id_EdgeTag onEdgeSplit,
func_bool_from_float progressCallback )
Implicit aggregate constructor.

Member Function Documentation

◆ _pybind11_conduit_v1_()

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

◆ beforeEdgeSplit() [1/2]

func_bool_from_Id_EdgeTag 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 mrmeshpy.SubdivideSettings.beforeEdgeSplit ( self,
func_bool_from_Id_EdgeTag arg1 )

◆ criticalAspectRatioFlip() [1/2]

float 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 mrmeshpy.SubdivideSettings.criticalAspectRatioFlip ( self,
float arg1 )

◆ maxAngleChangeAfterFlip() [1/2]

float 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 mrmeshpy.SubdivideSettings.maxAngleChangeAfterFlip ( self,
float arg1 )

◆ maxDeviationAfterFlip() [1/2]

float 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 mrmeshpy.SubdivideSettings.maxDeviationAfterFlip ( self,
float arg1 )

◆ maxEdgeLen() [1/2]

float 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 mrmeshpy.SubdivideSettings.maxEdgeLen ( self,
float arg1 )

◆ maxEdgeSplits() [1/2]

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

◆ maxEdgeSplits() [2/2]

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

◆ maxSplittableTriAspectRatio() [1/2]

float 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 mrmeshpy.SubdivideSettings.maxSplittableTriAspectRatio ( self,
float arg1 )

◆ maxTriAspectRatio() [1/2]

float 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 mrmeshpy.SubdivideSettings.maxTriAspectRatio ( self,
float arg1 )

◆ minSharpDihedralAngle() [1/2]

float mrmeshpy.SubdivideSettings.minSharpDihedralAngle ( self)
30 degrees

◆ minSharpDihedralAngle() [2/2]

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

◆ newVerts() [1/2]

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

◆ newVerts() [2/2]

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

◆ notFlippable() [1/2]

UndirectedEdgeBitSet 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 mrmeshpy.SubdivideSettings.notFlippable ( self,
UndirectedEdgeBitSet arg1 )

◆ onEdgeSplit() [1/2]

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

◆ onVertCreated() [1/2]

func_void_from_Id_VertTag 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 mrmeshpy.SubdivideSettings.onVertCreated ( self,
func_void_from_Id_VertTag arg1 )

◆ progressCallback() [1/2]

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

◆ progressCallback() [2/2]

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

◆ projectOnOriginalMesh() [1/2]

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

◆ projectOnOriginalMesh() [2/2]

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

◆ region() [1/2]

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

◆ region() [2/2]

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

◆ smoothMode() [1/2]

bool 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 mrmeshpy.SubdivideSettings.smoothMode ( self,
bool arg1 )

◆ subdivideBorder() [1/2]

bool 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 mrmeshpy.SubdivideSettings.subdivideBorder ( self,
bool arg1 )

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