#include <MRMeshSubdivide.h>
Public Attributes | |
float | maxEdgeLen |
Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value. | |
int | maxEdgeSplits |
Maximum number of edge splits allowed. | |
float | maxDeviationAfterFlip |
Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation. | |
float | maxAngleChangeAfterFlip |
Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians) | |
float | criticalAspectRatioFlip |
const MRFaceBitSet * | region |
Region on mesh to be subdivided, it is updated during the operation. | |
MRUndirectedEdgeBitSet * | notFlippable |
Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation. | |
MRVertBitSet * | newVerts |
New vertices appeared during subdivision will be added here. | |
bool | subdivideBorder |
float | maxTriAspectRatio |
The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value. | |
float | maxSplittableTriAspectRatio |
bool | smoothMode |
float | minSharpDihedralAngle |
bool | projectOnOriginalMesh |
if true, then every new vertex will be projected on the original mesh (before smoothing) | |
MRProgressCallback | progressCallback |
callback to report algorithm progress and cancel it by user request | |
float MRSubdivideSettings::criticalAspectRatioFlip |
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
float MRSubdivideSettings::maxAngleChangeAfterFlip |
Improves local mesh triangulation by doing edge flips if it does not change dihedral angle more than on this value (in radians)
float MRSubdivideSettings::maxDeviationAfterFlip |
Improves local mesh triangulation by doing edge flips if it does not make too big surface deviation.
float MRSubdivideSettings::maxEdgeLen |
Subdivision is stopped when all edges inside or on the boundary of the region are not longer than this value.
int MRSubdivideSettings::maxEdgeSplits |
Maximum number of edge splits allowed.
float MRSubdivideSettings::maxSplittableTriAspectRatio |
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
float MRSubdivideSettings::maxTriAspectRatio |
The subdivision stops as soon as all triangles (in the region) have aspect ratio below or equal to this value.
float MRSubdivideSettings::minSharpDihedralAngle |
In case of activated smoothMode, the smoothness is locally deactivated at the edges having dihedral angle at least this value
MRVertBitSet* MRSubdivideSettings::newVerts |
New vertices appeared during subdivision will be added here.
MRUndirectedEdgeBitSet* MRSubdivideSettings::notFlippable |
Edges specified by this bit-set will never be flipped, but they can be split so it is updated during the operation.
MRProgressCallback MRSubdivideSettings::progressCallback |
callback to report algorithm progress and cancel it by user request
bool MRSubdivideSettings::projectOnOriginalMesh |
if true, then every new vertex will be projected on the original mesh (before smoothing)
const MRFaceBitSet* MRSubdivideSettings::region |
Region on mesh to be subdivided, it is updated during the operation.
bool MRSubdivideSettings::smoothMode |
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
bool MRSubdivideSettings::subdivideBorder |
If false do not touch border edges (cannot subdivide lone faces)
use MR::findRegionOuterFaces to find boundary faces