|
MRMESH_API bool | MR::checkDeloneQuadrangle (const Vector3d &a, const Vector3d &b, const Vector3d &c, const Vector3d &d, double maxAngleChange=DBL_MAX) |
|
MRMESH_API bool | MR::checkDeloneQuadrangle (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d, float maxAngleChange=FLT_MAX) |
| converts arguments in double and calls above function
|
|
MRMESH_API bool | MR::checkDeloneQuadrangleInMesh (const Mesh &mesh, EdgeId edge, const DeloneSettings &settings={}, float *deviationSqAfterFlip=nullptr) |
| squared surface deviation after flip is written here (at least when the function returns false)
|
|
MRMESH_API bool | MR::bestQuadrangleDiagonal (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d) |
|
MRMESH_API int | MR::makeDeloneEdgeFlips (Mesh &mesh, const DeloneSettings &settings={}, int numIters=1, ProgressCallback progressCallback={}) |
|
MRMESH_API void | MR::makeDeloneOriginRing (Mesh &mesh, EdgeId e, const DeloneSettings &settings={}) |
| improves mesh triangulation in a ring of vertices with common origin and represented by edge e
|
|
https:///en.wikipedia.org/wiki/Boris_Delaunay
◆ bestQuadrangleDiagonal()
MRMESH_API bool MR::bestQuadrangleDiagonal |
( |
const Vector3f & | a, |
|
|
const Vector3f & | b, |
|
|
const Vector3f & | c, |
|
|
const Vector3f & | d ) |
|
nodiscard |
given quadrangle ABCD, selects how to best triangulate it: false = by introducing BD diagonal and splitting ABCD on triangles ABD and DBC, true = by introducing AC diagonal and splitting ABCD on triangles ABC and ACD
◆ checkDeloneQuadrangle() [1/2]
MRMESH_API bool MR::checkDeloneQuadrangle |
( |
const Vector3d & | a, |
|
|
const Vector3d & | b, |
|
|
const Vector3d & | c, |
|
|
const Vector3d & | d, |
|
|
double | maxAngleChange = DBL_MAX ) |
|
nodiscard |
given quadrangle ABCD, checks whether its edge AC satisfies Delone's condition; if dihedral angles 1) between triangles ABD and DBC and 2) between triangles ABC and ACD differ more than on maxAngleChange then also returns true to prevent flipping from 1) to 2)
◆ checkDeloneQuadrangle() [2/2]
MRMESH_API bool MR::checkDeloneQuadrangle |
( |
const Vector3f & | a, |
|
|
const Vector3f & | b, |
|
|
const Vector3f & | c, |
|
|
const Vector3f & | d, |
|
|
float | maxAngleChange = FLT_MAX ) |
|
nodiscard |
converts arguments in double and calls above function
◆ checkDeloneQuadrangleInMesh()
MRMESH_API bool MR::checkDeloneQuadrangleInMesh |
( |
const Mesh & | mesh, |
|
|
EdgeId | edge, |
|
|
const DeloneSettings & | settings = {}, |
|
|
float * | deviationSqAfterFlip = nullptr ) |
|
nodiscard |
squared surface deviation after flip is written here (at least when the function returns false)
consider quadrangle formed by left and right triangles of given edge, and checks whether this edge satisfies Delone's condition in the quadrangle;
- Returns
- false otherwise if flipping the edge does not introduce too large surface deviation (can be returned only for inner edge of the region)
◆ makeDeloneEdgeFlips()
improves mesh triangulation by performing flipping of edges to satisfy Delone local property, consider every edge at most numIters times, and allow surface deviation at most on given value during every individual flip,
- Returns
- the number of flips done
- Parameters
-
numIters | Maximal iteration count |
progressCallback | Callback to report algorithm progress and cancel it by user request |
◆ makeDeloneOriginRing()
improves mesh triangulation in a ring of vertices with common origin and represented by edge e