14struct PreciseVertCoord
23 {
return l.pt < r.pt || ( l.pt == r.pt && r.id < l.id ); }
32 {
return ccw( a - c, b - c ); }
34struct PreciseVertCoords2
42[[nodiscard]]
MRMESH_API bool ccw(
const std::array<PreciseVertCoords2, 3> & vs );
65 bool cIsLeftFromAB =
false;
67 explicit operator bool()
const {
return doIntersect; }
73 const std::array<PreciseVertCoords2, 4> & vs );
82 ConvertToIntVector2 toInt{};
83 ConvertToFloatVector2 toFloat{};
#define MRMESH_API
Definition MRMeshFwd.h:80
Definition MRPrecisePredicates2.h:81
Definition MRPrecisePredicates2.h:15
new unsafe ref MR.VertId id
Definition MRPrecisePredicates2.h:35
new unsafe ref MR.VertId id
Definition MRPrecisePredicates2.h:63
new unsafe ref bool doIntersect
Definition MRCameraOrientationPlugin.h:8
MRMESH_API bool ccw(const Vector2i &a, const Vector2i &b)
MRMESH_API bool inCircle(const std::array< PreciseVertCoords2, 4 > &vs)
return true if 4th point in array lays inside circumcircle of first 3 points based triangle
MRMESH_API SegmentSegmentIntersectResult doSegmentSegmentIntersect(const std::array< PreciseVertCoords2, 4 > &vs)
MRMESH_API Vector2i findSegmentSegmentIntersectionPrecise(const Vector2i &a, const Vector2i &b, const Vector2i &c, const Vector2i &d)
MRMESH_API bool segmentIntersectionOrder(const std::array< PreciseVertCoords2, 6 > &vs)
MRMESH_API bool orientParaboloid3d(const Vector2i &a, const Vector2i &b, const Vector2i &c)
MRMESH_API bool smaller2(const std::array< PreciseVertCoords2, 4 > &vs)
bool smaller(const PreciseVertCoord &l, const PreciseVertCoord &r)
Definition MRPrecisePredicates2.h:22