#include <MRMesh/MRCutTrianglePredicates.h>
Public Member Functions | |
| bool | isCrossing () const |
| bool | isVertex () const |
Public Attributes | |
| std::array< PreciseVertCoords, 2 > | seg |
| the vertex in seg[0] if seg[1].id is invalid; otherwise the ends of the segment; ignored for a crossing of two cuts (see tri2) | |
| std::array< PreciseVertCoords, 3 > | tri |
| the triangle whose plane the segment crosses, or the plane of the first cut of a crossing of two cuts; not used for a vertex | |
| std::array< PreciseVertCoords, 2 > | wedge |
| std::array< PreciseVertCoords, 3 > | tri2 |
a point inside a triangle of a mesh cut along its intersections with other triangles, defined by mesh vertices in the exact coordinates that the boolean's predicates take, with the same ids: either a vertex, or the point where a segment crosses the plane of a triangle (an edge-triangle intersection found by doTriangleSegmentIntersect), or the crossing of two cuts of the triangle, where the planes of two other triangles and its own one meet; the coordinates are below 2^30 by absolute value, as getToIntConverter makes them, which the widths of the exact integers and the error bounds of the predicates rely on, and an id stands for one vertex with the same coordinates in every point
|
inlinenodiscard |
|
inlinenodiscard |
| std::array<PreciseVertCoords, 2> MR::PreciseCutPoint::seg |
the vertex in seg[0] if seg[1].id is invalid; otherwise the ends of the segment; ignored for a crossing of two cuts (see tri2)
| std::array<PreciseVertCoords, 3> MR::PreciseCutPoint::tri |
the triangle whose plane the segment crosses, or the plane of the first cut of a crossing of two cuts; not used for a vertex
| std::array<PreciseVertCoords, 3> MR::PreciseCutPoint::tri2 |
the plane of the second cut of a crossing of two cuts, with invalid ids for the other points: a valid tri2[0].id makes the point a crossing of two cuts, whatever seg and wedge hold
| std::array<PreciseVertCoords, 2> MR::PreciseCutPoint::wedge |
optional for a segment that is an edge of another mesh crossing the triangle: the third vertices of the two triangles of that edge, in any order, with invalid ids if not given (as for a boundary edge); they tell apart the crossings of the edges of a multiple edge, which are defined alike otherwise (see CutTrianglePredicates); ignored for a crossing of two cuts (see tri2)