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

#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

Detailed Description

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

Member Function Documentation

◆ isCrossing()

bool MR::PreciseCutPoint::isCrossing ( ) const
inlinenodiscard

◆ isVertex()

bool MR::PreciseCutPoint::isVertex ( ) const
inlinenodiscard

Member Data Documentation

◆ seg

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)

◆ tri

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

◆ tri2

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

◆ wedge

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)


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