21 {
return orient3d( a - d, b - d, c - d ); }
23struct PreciseVertCoords
36 bool dIsLeftFromABC =
false;
38 explicit operator bool()
const {
return doIntersect; }
44 const std::array<PreciseVertCoords, 5> & vs );
59 ConvertToIntVector toInt{};
60 ConvertToFloatVector toFloat{};
#define MRMESH_API
Definition MRMeshFwd.h:80
Definition MRPrecisePredicates3.h:58
Definition MRPrecisePredicates3.h:24
new unsafe ref MR.VertId id
Definition MRPrecisePredicates3.h:34
new unsafe ref bool doIntersect
MRMESH_API TriangleSegmentIntersectResult doTriangleSegmentIntersect(const std::array< PreciseVertCoords, 5 > &vs)
MRMESH_API ConvertToFloatVector getToFloatConverter(const Box3d &box)
creates converter from Vector3i to Vector3f in Box range (int diapason is mapped to box range)
MRMESH_API Vector3f findTriangleSegmentIntersectionPrecise(const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d, const Vector3f &e, CoordinateConverters converters)
MRMESH_API ConvertToIntVector getToIntConverter(const Box3d &box)
creates converter from Vector3f to Vector3i in Box range (int diapason is mapped to box range)
MRMESH_API std::optional< Vector3i > findTwoSegmentsIntersection(const Vector3i &ai, const Vector3i &bi, const Vector3i &ci, const Vector3i &di)
MRMESH_API bool orient3d(const Vector3i &a, const Vector3i &b, const Vector3i &c)
Definition MRCameraOrientationPlugin.h:8
MRMESH_API bool segmentIntersectionOrder(const std::array< PreciseVertCoords2, 6 > &vs)