MeshLib C# Docs
Loading...
Searching...
No Matches

Generated from class MR.SubdivideSettings. This is the const half of the class. More...

Inheritance diagram for MR.Const_SubdivideSettings:

Classes

struct  _Underlying

Public Member Functions

virtual void Dispose ()
unsafe Const_SubdivideSettings ()
 Constructs an empty (default-constructed) instance.
unsafe Const_SubdivideSettings (float maxEdgeLen, float curvaturePriority, int maxEdgeSplits, float maxDeviationAfterFlip, float maxAngleChangeAfterFlip, float criticalAspectRatioFlip, MR.FaceBitSet? region, MR.FaceBitSet? maintainRegion, MR.UndirectedEdgeBitSet? notFlippable, MR.VertBitSet? newVerts, bool subdivideBorder, float maxTriAspectRatio, float maxSplittableTriAspectRatio, bool smoothMode, float minSharpDihedralAngle, bool projectOnOriginalMesh, MR.Std._ByValue_Function_Bool_From_MREdgeId beforeEdgeSplit, MR.Std._ByValue_Function_Void_From_MRVertId onVertCreated, MR.Std._ByValue_Function_Void_From_MREdgeId_MREdgeId onEdgeSplit, MR.Std._ByValue_Function_Bool_From_Float progressCallback)
 Constructs MR.SubdivideSettings elementwise.
unsafe Const_SubdivideSettings (MR._ByValue_SubdivideSettings _other)
 Generated from constructor MR.SubdivideSettings.SubdivideSettings.
 Const_SubdivideSettings (Const_SubdivideSettings _other)
 Generated from constructor MR.SubdivideSettings.SubdivideSettings.
 Const_SubdivideSettings (SubdivideSettings _other)
 Generated from constructor MR.SubdivideSettings.SubdivideSettings.

Protected Member Functions

virtual unsafe void Dispose (bool disposing)

Protected Attributes

unsafe float * __ref_storage_maxEdgeLen
unsafe float * __ref_storage_curvaturePriority
unsafe int * __ref_storage_maxEdgeSplits
unsafe float * __ref_storage_maxDeviationAfterFlip
unsafe float * __ref_storage_maxAngleChangeAfterFlip
unsafe float * __ref_storage_criticalAspectRatioFlip
unsafe MR.FaceBitSet._Underlying ** __ptr_storage_region
unsafe MR.FaceBitSet._Underlying ** __ptr_storage_maintainRegion
unsafe MR.UndirectedEdgeBitSet._Underlying ** __ptr_storage_notFlippable
unsafe MR.VertBitSet._Underlying ** __ptr_storage_newVerts
unsafe bool * __ref_storage_subdivideBorder
unsafe float * __ref_storage_maxTriAspectRatio
unsafe float * __ref_storage_maxSplittableTriAspectRatio
unsafe bool * __ref_storage_smoothMode
unsafe float * __ref_storage_minSharpDihedralAngle
unsafe bool * __ref_storage_projectOnOriginalMesh

Properties

unsafe float maxEdgeLen [get]
 Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value.
unsafe float curvaturePriority [get]
 edge length will be magnified by the squared difference of normals at edge's ends times this factor, thus subdivision will be finer in the regions of high curvature compared to planar regions
unsafe int maxEdgeSplits [get]
 Maximum number of edge splits allowed.
unsafe float maxDeviationAfterFlip [get]
 Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation.
unsafe float maxAngleChangeAfterFlip [get]
 Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians)
unsafe float criticalAspectRatioFlip [get]
 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.
unsafe MR.? FaceBitSet region [get]
 Region on mesh to be subdivided, it is updated during the operation.
unsafe MR.? FaceBitSet maintainRegion [get]
 Additional region to update during subdivision: if a face from here is split, it is replaced with new sub-faces; note that Subdivide can split faces even outside of main region, so it might be necessary to update another region.
unsafe MR.? UndirectedEdgeBitSet notFlippable [get]
 Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation.
unsafe MR.? VertBitSet newVerts [get]
 New vertices appeared during subdivision will be added here.
unsafe bool subdivideBorder [get]
 If false do not touch border edges (cannot subdivide lone faces)
use MR.findRegionOuterFaces to find boundary faces.
unsafe float maxTriAspectRatio [get]
 The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value.
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 subdivideBorder==false, otherwise many narrow triangles can appear near border.
unsafe bool smoothMode [get]
 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.
unsafe float minSharpDihedralAngle [get]
unsafe bool projectOnOriginalMesh [get]
 if true, then every new vertex will be projected on the original mesh (before smoothing)
unsafe MR.Std.Const_Function_Bool_From_MREdgeId beforeEdgeSplit [get, protected set]
 this function is called each time edge (e) is going to split, if it returns false then this split will be skipped
unsafe MR.Std.Const_Function_Void_From_MRVertId onVertCreated [get, protected set]
 this function is called each time a new vertex has been created, but before the ring is made Delone
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_Bool_From_Float progressCallback [get, protected set]
 callback to report algorithm progress and cancel it by user request

Detailed Description

Generated from class MR.SubdivideSettings. This is the const half of the class.

Constructor & Destructor Documentation

◆ Const_SubdivideSettings() [1/5]

unsafe MR.Const_SubdivideSettings.Const_SubdivideSettings ( )
inline

Constructs an empty (default-constructed) instance.

◆ Const_SubdivideSettings() [2/5]

unsafe MR.Const_SubdivideSettings.Const_SubdivideSettings ( float maxEdgeLen,
float curvaturePriority,
int maxEdgeSplits,
float maxDeviationAfterFlip,
float maxAngleChangeAfterFlip,
float criticalAspectRatioFlip,
MR.FaceBitSet? region,
MR.FaceBitSet? maintainRegion,
MR.UndirectedEdgeBitSet? notFlippable,
MR.VertBitSet? newVerts,
bool subdivideBorder,
float maxTriAspectRatio,
float maxSplittableTriAspectRatio,
bool smoothMode,
float minSharpDihedralAngle,
bool projectOnOriginalMesh,
MR.Std._ByValue_Function_Bool_From_MREdgeId beforeEdgeSplit,
MR.Std._ByValue_Function_Void_From_MRVertId onVertCreated,
MR.Std._ByValue_Function_Void_From_MREdgeId_MREdgeId onEdgeSplit,
MR.Std._ByValue_Function_Bool_From_Float progressCallback )
inline

Constructs MR.SubdivideSettings elementwise.

◆ Const_SubdivideSettings() [3/5]

unsafe MR.Const_SubdivideSettings.Const_SubdivideSettings ( MR._ByValue_SubdivideSettings _other)
inline

Generated from constructor MR.SubdivideSettings.SubdivideSettings.

◆ Const_SubdivideSettings() [4/5]

MR.Const_SubdivideSettings.Const_SubdivideSettings ( Const_SubdivideSettings _other)
inline

Generated from constructor MR.SubdivideSettings.SubdivideSettings.

◆ Const_SubdivideSettings() [5/5]

MR.Const_SubdivideSettings.Const_SubdivideSettings ( SubdivideSettings _other)
inline

Generated from constructor MR.SubdivideSettings.SubdivideSettings.

Member Function Documentation

◆ Dispose() [1/2]

virtual void MR.Const_SubdivideSettings.Dispose ( )
inlinevirtual

◆ Dispose() [2/2]

virtual unsafe void MR.Const_SubdivideSettings.Dispose ( bool disposing)
inlineprotectedvirtual

Member Data Documentation

◆ __ptr_storage_maintainRegion

unsafe MR.FaceBitSet._Underlying** MR.Const_SubdivideSettings.__ptr_storage_maintainRegion
protected

◆ __ptr_storage_newVerts

unsafe MR.VertBitSet._Underlying** MR.Const_SubdivideSettings.__ptr_storage_newVerts
protected

◆ __ptr_storage_notFlippable

unsafe MR.UndirectedEdgeBitSet._Underlying** MR.Const_SubdivideSettings.__ptr_storage_notFlippable
protected

◆ __ptr_storage_region

unsafe MR.FaceBitSet._Underlying** MR.Const_SubdivideSettings.__ptr_storage_region
protected

◆ __ref_storage_criticalAspectRatioFlip

unsafe float* MR.Const_SubdivideSettings.__ref_storage_criticalAspectRatioFlip
protected

◆ __ref_storage_curvaturePriority

unsafe float* MR.Const_SubdivideSettings.__ref_storage_curvaturePriority
protected

◆ __ref_storage_maxAngleChangeAfterFlip

unsafe float* MR.Const_SubdivideSettings.__ref_storage_maxAngleChangeAfterFlip
protected

◆ __ref_storage_maxDeviationAfterFlip

unsafe float* MR.Const_SubdivideSettings.__ref_storage_maxDeviationAfterFlip
protected

◆ __ref_storage_maxEdgeLen

unsafe float* MR.Const_SubdivideSettings.__ref_storage_maxEdgeLen
protected

◆ __ref_storage_maxEdgeSplits

unsafe int* MR.Const_SubdivideSettings.__ref_storage_maxEdgeSplits
protected

◆ __ref_storage_maxSplittableTriAspectRatio

unsafe float* MR.Const_SubdivideSettings.__ref_storage_maxSplittableTriAspectRatio
protected

◆ __ref_storage_maxTriAspectRatio

unsafe float* MR.Const_SubdivideSettings.__ref_storage_maxTriAspectRatio
protected

◆ __ref_storage_minSharpDihedralAngle

unsafe float* MR.Const_SubdivideSettings.__ref_storage_minSharpDihedralAngle
protected

◆ __ref_storage_projectOnOriginalMesh

unsafe bool* MR.Const_SubdivideSettings.__ref_storage_projectOnOriginalMesh
protected

◆ __ref_storage_smoothMode

unsafe bool* MR.Const_SubdivideSettings.__ref_storage_smoothMode
protected

◆ __ref_storage_subdivideBorder

unsafe bool* MR.Const_SubdivideSettings.__ref_storage_subdivideBorder
protected

Property Documentation

◆ beforeEdgeSplit

unsafe MR.Std.Const_Function_Bool_From_MREdgeId MR.Const_SubdivideSettings.beforeEdgeSplit
getprotected set

this function is called each time edge (e) is going to split, if it returns false then this split will be skipped

◆ criticalAspectRatioFlip

unsafe float MR.Const_SubdivideSettings.criticalAspectRatioFlip
get

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.

◆ curvaturePriority

unsafe float MR.Const_SubdivideSettings.curvaturePriority
get

edge length will be magnified by the squared difference of normals at edge's ends times this factor, thus subdivision will be finer in the regions of high curvature compared to planar regions

◆ maintainRegion

unsafe MR.? FaceBitSet MR.Const_SubdivideSettings.maintainRegion
get

Additional region to update during subdivision: if a face from here is split, it is replaced with new sub-faces; note that Subdivide can split faces even outside of main region, so it might be necessary to update another region.

◆ maxAngleChangeAfterFlip

unsafe float MR.Const_SubdivideSettings.maxAngleChangeAfterFlip
get

Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians)

◆ maxDeviationAfterFlip

unsafe float MR.Const_SubdivideSettings.maxDeviationAfterFlip
get

Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation.

◆ maxEdgeLen

unsafe float MR.Const_SubdivideSettings.maxEdgeLen
get

Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value.

◆ maxEdgeSplits

unsafe int MR.Const_SubdivideSettings.maxEdgeSplits
get

Maximum number of edge splits allowed.

◆ maxSplittableTriAspectRatio

unsafe float MR.Const_SubdivideSettings.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 subdivideBorder==false, otherwise many narrow triangles can appear near border.

◆ maxTriAspectRatio

unsafe float MR.Const_SubdivideSettings.maxTriAspectRatio
get

The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value.

◆ minSharpDihedralAngle

unsafe float MR.Const_SubdivideSettings.minSharpDihedralAngle
get

◆ newVerts

unsafe MR.? VertBitSet MR.Const_SubdivideSettings.newVerts
get

New vertices appeared during subdivision will be added here.

◆ notFlippable

unsafe MR.? UndirectedEdgeBitSet MR.Const_SubdivideSettings.notFlippable
get

Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation.

◆ onEdgeSplit

unsafe MR.Std.Const_Function_Void_From_MREdgeId_MREdgeId MR.Const_SubdivideSettings.onEdgeSplit
getprotected set

this function is called each time edge (e) is split into (e1->e), but before the ring is made Delone

◆ onVertCreated

unsafe MR.Std.Const_Function_Void_From_MRVertId MR.Const_SubdivideSettings.onVertCreated
getprotected set

this function is called each time a new vertex has been created, but before the ring is made Delone

◆ progressCallback

unsafe MR.Std.Const_Function_Bool_From_Float MR.Const_SubdivideSettings.progressCallback
getprotected set

callback to report algorithm progress and cancel it by user request

◆ projectOnOriginalMesh

unsafe bool MR.Const_SubdivideSettings.projectOnOriginalMesh
get

if true, then every new vertex will be projected on the original mesh (before smoothing)

◆ region

unsafe MR.? FaceBitSet MR.Const_SubdivideSettings.region
get

Region on mesh to be subdivided, it is updated during the operation.

◆ smoothMode

unsafe bool MR.Const_SubdivideSettings.smoothMode
get

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.

◆ subdivideBorder

unsafe bool MR.Const_SubdivideSettings.subdivideBorder
get

If false do not touch border edges (cannot subdivide lone faces)
use MR.findRegionOuterFaces to find boundary faces.


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