MeshLib Documentation
Loading...
Searching...
No Matches
MRPrecisePredicates3.h File Reference
#include "MRVector3.h"
#include "MRId.h"
#include <array>

Go to the source code of this file.

Classes

struct  MR::PreciseVertCoords
 
struct  MR::TriangleSegmentIntersectResult
 
struct  MR::CoordinateConverters
 this struct contains coordinate converters float-int-float More...
 

Namespaces

namespace  MR
 
using MR::ConvertToIntVector = std::function<Vector3i( const Vector3f& )>
 float-to-int coordinate converter
 
using MR::ConvertToFloatVector = std::function<Vector3f( const Vector3i& )>
 int-to-float coordinate converter
 
MRMESH_API bool MR::orient3d (const Vector3i &a, const Vector3i &b, const Vector3i &c)
 
bool MR::orient3d (const Vector3i &a, const Vector3i &b, const Vector3i &c, const Vector3i &d)
 
MRMESH_API bool MR::orient3d (const std::array< PreciseVertCoords, 4 > &vs)
 first sorts the indices in ascending order, then calls the predicate for sorted points
 
MRMESH_API bool MR::orient3d (const PreciseVertCoords *vs)
 
MRMESH_API TriangleSegmentIntersectResult MR::doTriangleSegmentIntersect (const std::array< PreciseVertCoords, 5 > &vs)
 
MRMESH_API ConvertToIntVector MR::getToIntConverter (const Box3d &box)
 creates converter from Vector3f to Vector3i in Box range (int diapason is mapped to box range)
 
MRMESH_API ConvertToFloatVector MR::getToFloatConverter (const Box3d &box)
 creates converter from Vector3i to Vector3f in Box range (int diapason is mapped to box range)
 
MRMESH_API Vector3f MR::findTriangleSegmentIntersectionPrecise (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d, const Vector3f &e, CoordinateConverters converters)