Generated from class MR.RemeshSettings. This is the non-const half of the class.
More...
|
| unsafe | RemeshSettings () |
| | Constructs an empty (default-constructed) instance.
|
| |
| unsafe | RemeshSettings (float targetEdgeLen, int maxEdgeSplits, float maxAngleChangeAfterFlip, bool frozenBoundary, float maxBdShift, bool useCurvature, float maxSplittableTriAspectRatio, int finalRelaxIters, bool finalRelaxNoShrinkage, MR.FaceBitSet? region, MR.UndirectedEdgeBitSet? notFlippable, bool packMesh, bool projectOnOriginalMesh, MR.Std._ByValue_Function_VoidFuncFromMREdgeIdMREdgeId onEdgeSplit, MR.Std._ByValue_Function_VoidFuncFromMREdgeIdMREdgeId onEdgeDel, MR.Std._ByValue_Function_BoolFuncFromMREdgeIdConstMRVector3fRef preCollapse, MR.Std._ByValue_Function_BoolFuncFromFloat progressCallback) |
| | Constructs MR.RemeshSettings elementwise.
|
| |
| unsafe | RemeshSettings (MR._ByValue_RemeshSettings _other) |
| | Generated from constructor MR.RemeshSettings.RemeshSettings.
|
| |
| | RemeshSettings (Const_RemeshSettings _other) |
| | Generated from constructor MR.RemeshSettings.RemeshSettings.
|
| |
| | RemeshSettings (RemeshSettings _other) |
| | Generated from constructor MR.RemeshSettings.RemeshSettings.
|
| |
| unsafe MR.RemeshSettings | assign (MR._ByValue_RemeshSettings _other) |
| | Generated from method MR.RemeshSettings.operator=.
|
| |
|
| new unsafe ref float | targetEdgeLen [get] |
| |
| new unsafe ref int | maxEdgeSplits [get] |
| | Maximum number of edge splits allowed during subdivision.
|
| |
| new unsafe ref float | maxAngleChangeAfterFlip [get] |
| | Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value.
|
| |
| new unsafe ref bool | frozenBoundary [get] |
| |
| new unsafe ref float | maxBdShift [get] |
| |
| new unsafe ref bool | useCurvature [get] |
| |
| new unsafe ref float | maxSplittableTriAspectRatio [get] |
| |
| new unsafe ref int | finalRelaxIters [get] |
| |
| new unsafe ref bool | finalRelaxNoShrinkage [get] |
| | if true prevents the surface from shrinkage after many iterations
|
| |
| new unsafe MR.? FaceBitSet | region [get, set] |
| | Region on mesh to be changed, it is updated during the operation.
|
| |
| new unsafe MR.? UndirectedEdgeBitSet | notFlippable [get, set] |
| |
| new unsafe ref bool | packMesh [get] |
| | whether to pack mesh at the end
|
| |
| new unsafe ref bool | projectOnOriginalMesh [get] |
| |
| new unsafe MR.Std.Function_VoidFuncFromMREdgeIdMREdgeId | onEdgeSplit [get, protected set] |
| | this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone
|
| |
| new unsafe MR.Std.Function_VoidFuncFromMREdgeIdMREdgeId | onEdgeDel [get, protected set] |
| | 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
|
| |
| new unsafe MR.Std.Function_BoolFuncFromMREdgeIdConstMRVector3fRef | preCollapse [get, protected set] |
| | The user can provide this optional callback that is invoked immediately before edge collapse;.
|
| |
| new unsafe MR.Std.Function_BoolFuncFromFloat | progressCallback [get, protected set] |
| | callback to report algorithm progress and cancel it by user request
|
| |
Generated from class MR.RemeshSettings. This is the non-const half of the class.
◆ RemeshSettings() [1/5]
| unsafe MR.RemeshSettings.RemeshSettings |
( |
| ) |
|
|
inline |
Constructs an empty (default-constructed) instance.
◆ RemeshSettings() [2/5]
| unsafe MR.RemeshSettings.RemeshSettings |
( |
float | targetEdgeLen, |
|
|
int | maxEdgeSplits, |
|
|
float | maxAngleChangeAfterFlip, |
|
|
bool | frozenBoundary, |
|
|
float | maxBdShift, |
|
|
bool | useCurvature, |
|
|
float | maxSplittableTriAspectRatio, |
|
|
int | finalRelaxIters, |
|
|
bool | finalRelaxNoShrinkage, |
|
|
MR.FaceBitSet? | region, |
|
|
MR.UndirectedEdgeBitSet? | notFlippable, |
|
|
bool | packMesh, |
|
|
bool | projectOnOriginalMesh, |
|
|
MR.Std._ByValue_Function_VoidFuncFromMREdgeIdMREdgeId | onEdgeSplit, |
|
|
MR.Std._ByValue_Function_VoidFuncFromMREdgeIdMREdgeId | onEdgeDel, |
|
|
MR.Std._ByValue_Function_BoolFuncFromMREdgeIdConstMRVector3fRef | preCollapse, |
|
|
MR.Std._ByValue_Function_BoolFuncFromFloat | progressCallback ) |
|
inline |
◆ RemeshSettings() [3/5]
| unsafe MR.RemeshSettings.RemeshSettings |
( |
MR._ByValue_RemeshSettings | _other | ) |
|
|
inline |
Generated from constructor MR.RemeshSettings.RemeshSettings.
◆ RemeshSettings() [4/5]
| MR.RemeshSettings.RemeshSettings |
( |
Const_RemeshSettings | _other | ) |
|
|
inline |
Generated from constructor MR.RemeshSettings.RemeshSettings.
◆ RemeshSettings() [5/5]
Generated from constructor MR.RemeshSettings.RemeshSettings.
◆ assign()
| unsafe MR.RemeshSettings MR.RemeshSettings.assign |
( |
MR._ByValue_RemeshSettings | _other | ) |
|
|
inline |
Generated from method MR.RemeshSettings.operator=.
◆ finalRelaxIters
| new unsafe ref int MR.RemeshSettings.finalRelaxIters |
|
get |
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
◆ finalRelaxNoShrinkage
| new unsafe ref bool MR.RemeshSettings.finalRelaxNoShrinkage |
|
get |
if true prevents the surface from shrinkage after many iterations
◆ frozenBoundary
| new unsafe ref bool MR.RemeshSettings.frozenBoundary |
|
get |
Allows or prohibits splitting and/or collapse boundary edges it recommended to keep default value here for better quality
◆ maxAngleChangeAfterFlip
| new unsafe ref float MR.RemeshSettings.maxAngleChangeAfterFlip |
|
get |
Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value.
◆ maxBdShift
| new unsafe ref float MR.RemeshSettings.maxBdShift |
|
get |
Maximal shift of a boundary during one edge collapse only makes sense if frozenBoundary=false
◆ maxEdgeSplits
| new unsafe ref int MR.RemeshSettings.maxEdgeSplits |
|
get |
Maximum number of edge splits allowed during subdivision.
◆ maxSplittableTriAspectRatio
| new unsafe ref float MR.RemeshSettings.maxSplittableTriAspectRatio |
|
get |
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 frozenBoundary==true, otherwise many narrow triangles can appear near border
◆ notFlippable
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
◆ onEdgeDel
| new unsafe MR.Std.Function_VoidFuncFromMREdgeIdMREdgeId MR.RemeshSettings.onEdgeDel |
|
getprotected set |
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
◆ onEdgeSplit
| new unsafe MR.Std.Function_VoidFuncFromMREdgeIdMREdgeId MR.RemeshSettings.onEdgeSplit |
|
getprotected set |
this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone
◆ packMesh
| new unsafe ref bool MR.RemeshSettings.packMesh |
|
get |
whether to pack mesh at the end
◆ preCollapse
| new unsafe MR.Std.Function_BoolFuncFromMREdgeIdConstMRVector3fRef MR.RemeshSettings.preCollapse |
|
getprotected set |
The user can provide this optional callback that is invoked immediately before edge collapse;.
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
◆ progressCallback
| new unsafe MR.Std.Function_BoolFuncFromFloat MR.RemeshSettings.progressCallback |
|
getprotected set |
callback to report algorithm progress and cancel it by user request
◆ projectOnOriginalMesh
| new unsafe ref bool MR.RemeshSettings.projectOnOriginalMesh |
|
get |
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
◆ region
| new unsafe MR.? FaceBitSet MR.RemeshSettings.region |
|
getset |
Region on mesh to be changed, it is updated during the operation.
◆ targetEdgeLen
| new unsafe ref float MR.RemeshSettings.targetEdgeLen |
|
get |
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
◆ useCurvature
| new unsafe ref bool MR.RemeshSettings.useCurvature |
|
get |
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
The documentation for this class was generated from the following file: