MeshLib C++ Docs
Loading...
Searching...
No Matches
MRPrecisePredicates3.h File Reference
#include "MRVector3.h"
#include "MRId.h"
#include <array>
#include <optional>

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
 only for bindings generation
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
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)
bool MR::orient3d (const std::array< PreciseVertCoords, 4 > &vs)
 first sorts the indices in ascending order, then calls the predicate for sorted points
bool MR::orient3d (const PreciseVertCoords *vs)
TriangleSegmentIntersectResult MR::doTriangleSegmentIntersect (const std::array< PreciseVertCoords, 5 > &vs)
bool MR::segmentIntersectionOrder (const std::array< PreciseVertCoords, 8 > &vs)
ConvertToIntVector MR::getToIntConverter (const Box3d &box)
 creates converter from Vector3f to Vector3i in Box range (int diapason is mapped to box range)
ConvertToFloatVector MR::getToFloatConverter (const Box3d &box)
 creates converter from Vector3i to Vector3f in Box range (int diapason is mapped to box range)
std::optional< Vector3i > MR::findTwoSegmentsIntersection (const Vector3i &ai, const Vector3i &bi, const Vector3i &ci, const Vector3i &di)
Vector3f MR::findTriangleSegmentIntersectionPrecise (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d, const Vector3f &e, CoordinateConverters converters)