Generated from class MR.RemeshSettings. This is the const half of the class. More...
Classes | |
| struct | _Underlying |
Public Member Functions | |
| virtual void | Dispose () |
| unsafe | Const_RemeshSettings () |
| Constructs an empty (default-constructed) instance. | |
| unsafe | Const_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_Void_From_MREdgeId_MREdgeId onEdgeSplit, MR.Std._ByValue_Function_Void_From_MREdgeId_MREdgeId onEdgeDel, MR.Std._ByValue_Function_Bool_From_MREdgeId_ConstMRVector3fRef preCollapse, MR.Std._ByValue_Function_Bool_From_Float progressCallback) |
| Constructs MR.RemeshSettings elementwise. | |
| unsafe | Const_RemeshSettings (MR._ByValue_RemeshSettings _other) |
| Generated from constructor MR.RemeshSettings.RemeshSettings. | |
| Const_RemeshSettings (Const_RemeshSettings _other) | |
| Generated from constructor MR.RemeshSettings.RemeshSettings. | |
| Const_RemeshSettings (RemeshSettings _other) | |
| Generated from constructor MR.RemeshSettings.RemeshSettings. | |
Protected Member Functions | |
| virtual unsafe void | Dispose (bool disposing) |
Protected Attributes | |
| unsafe float * | __ref_storage_targetEdgeLen |
| unsafe int * | __ref_storage_maxEdgeSplits |
| unsafe float * | __ref_storage_maxAngleChangeAfterFlip |
| unsafe bool * | __ref_storage_frozenBoundary |
| unsafe float * | __ref_storage_maxBdShift |
| unsafe bool * | __ref_storage_useCurvature |
| unsafe float * | __ref_storage_maxSplittableTriAspectRatio |
| unsafe int * | __ref_storage_finalRelaxIters |
| unsafe bool * | __ref_storage_finalRelaxNoShrinkage |
| unsafe MR.FaceBitSet._Underlying ** | __ptr_storage_region |
| unsafe MR.UndirectedEdgeBitSet._Underlying ** | __ptr_storage_notFlippable |
| unsafe bool * | __ref_storage_packMesh |
| unsafe bool * | __ref_storage_projectOnOriginalMesh |
Properties | |
| unsafe float | 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 | |
| unsafe int | maxEdgeSplits [get] |
| Maximum number of edge splits allowed during subdivision. | |
| unsafe float | maxAngleChangeAfterFlip [get] |
| Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value. | |
| unsafe bool | frozenBoundary [get] |
| Allows or prohibits splitting and/or collapse boundary edges it recommended to keep default value here for better quality. | |
| unsafe float | maxBdShift [get] |
| Maximal shift of a boundary during one edge collapse only makes sense if frozenBoundary=false | |
| unsafe bool | 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. | |
| unsafe float | 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. | |
| unsafe int | 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 | |
| unsafe bool | finalRelaxNoShrinkage [get] |
| if true prevents the surface from shrinkage after many iterations | |
| unsafe MR.? FaceBitSet | region [get] |
| Region on mesh to be changed, it is updated during the operation. | |
| unsafe MR.? UndirectedEdgeBitSet | notFlippable [get] |
| 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. | |
| unsafe bool | packMesh [get] |
| whether to pack mesh at the end | |
| unsafe bool | 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 | |
| unsafe MR.Std.Const_Function_Void_From_MREdgeId_MREdgeId | onEdgeSplit [get, protected set] |
| this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone | |
| unsafe MR.Std.Const_Function_Void_From_MREdgeId_MREdgeId | 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 | |
| unsafe MR.Std.Const_Function_Bool_From_MREdgeId_ConstMRVector3fRef | preCollapse [get, protected set] |
| The user can provide this optional callback that is invoked immediately before edge collapse;. | |
| unsafe MR.Std.Const_Function_Bool_From_Float | progressCallback [get, protected set] |
| callback to report algorithm progress and cancel it by user request | |
Generated from class MR.RemeshSettings. This is the const half of the class.
|
inline |
Constructs an empty (default-constructed) instance.
|
inline |
Constructs MR.RemeshSettings elementwise.
|
inline |
Generated from constructor MR.RemeshSettings.RemeshSettings.
|
inline |
Generated from constructor MR.RemeshSettings.RemeshSettings.
|
inline |
Generated from constructor MR.RemeshSettings.RemeshSettings.
|
inlinevirtual |
|
inlineprotectedvirtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
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
|
get |
if true prevents the surface from shrinkage after many iterations
|
get |
Allows or prohibits splitting and/or collapse boundary edges it recommended to keep default value here for better quality.
|
get |
Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value.
|
get |
Maximal shift of a boundary during one edge collapse only makes sense if frozenBoundary=false
|
get |
Maximum number of edge splits allowed during subdivision.
|
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.
|
get |
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.
|
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
|
getprotected set |
this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone
|
get |
whether to pack mesh at the end
|
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
|
getprotected set |
callback to report algorithm progress and cancel it by user request
|
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
|
get |
Region on mesh to be changed, it is updated during the operation.
|
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
|
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.