|
| unsafe | SubdivideSettings () |
| | Constructs an empty (default-constructed) instance.
|
| unsafe | 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_BoolFuncFromMREdgeId beforeEdgeSplit, MR.Std._ByValue_Function_VoidFuncFromMRVertId onVertCreated, MR.Std._ByValue_Function_VoidFuncFromMREdgeIdMREdgeId onEdgeSplit, MR.Std._ByValue_Function_BoolFuncFromFloat progressCallback) |
| | Constructs MR.SubdivideSettings elementwise.
|
| unsafe | SubdivideSettings (MR._ByValue_SubdivideSettings _other) |
| | Generated from constructor MR.SubdivideSettings.SubdivideSettings.
|
| | SubdivideSettings (Const_SubdivideSettings _other) |
| | Generated from constructor MR.SubdivideSettings.SubdivideSettings.
|
| | SubdivideSettings (SubdivideSettings _other) |
| | Generated from constructor MR.SubdivideSettings.SubdivideSettings.
|
| unsafe MR.SubdivideSettings | assign (MR._ByValue_SubdivideSettings _other) |
| | Generated from method MR::SubdivideSettings::operator=.
|
|
| new unsafe ref float | maxEdgeLen [get] |
| | Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value.
|
| new unsafe ref 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
|
| new unsafe ref int | maxEdgeSplits [get] |
| | Maximum number of edge splits allowed.
|
| new unsafe ref float | maxDeviationAfterFlip [get] |
| | Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation.
|
| 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 (in radians)
|
| new unsafe ref 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.
|
| new unsafe MR.? FaceBitSet | region [get, set] |
| | Region on mesh to be subdivided, it is updated during the operation.
|
| new unsafe MR.? FaceBitSet | maintainRegion [get, set] |
| | 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.
|
| new unsafe MR.? UndirectedEdgeBitSet | notFlippable [get, set] |
| | Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation.
|
| new unsafe MR.? VertBitSet | newVerts [get, set] |
| | New vertices appeared during subdivision will be added here.
|
| new unsafe ref bool | subdivideBorder [get] |
| | If false do not touch border edges (cannot subdivide lone faces)
use MR.findRegionOuterFaces to find boundary faces.
|
| new unsafe ref float | maxTriAspectRatio [get] |
| | The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value.
|
| new unsafe ref 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.
|
| new unsafe ref 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.
|
| new unsafe ref float | minSharpDihedralAngle [get] |
| new unsafe ref bool | projectOnOriginalMesh [get] |
| | if true, then every new vertex will be projected on the original mesh (before smoothing)
|
| new unsafe MR.Std.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
|
| new unsafe MR.Std.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
|
| new unsafe MR.Std.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
|
| new unsafe MR.Std.Function_Bool_From_Float | progressCallback [get, protected set] |
| | callback to report algorithm progress and cancel it by user request
|
Generated from class MR.SubdivideSettings. This is the non-const half of the class.