14#include <lagrange/api.h>
15#include <lagrange/common.h>
22class LA_CORE_API ExactPredicates
33 static std::unique_ptr<ExactPredicates>
create(
const std::string& engine);
36 ExactPredicates() =
default;
37 virtual ~ExactPredicates() =
default;
50 virtual short collinear3D(
double p1[3],
double p2[3],
double p3[3])
const;
63 virtual short orient2D(
double p1[2],
double p2[2],
double p3[2])
const = 0;
78 virtual short orient3D(
double p1[3],
double p2[3],
double p3[3],
double p4[3])
const = 0;
93 virtual short incircle(
double p1[2],
double p2[2],
double p3[2],
double p4[2])
const = 0;
110 virtual short insphere(
double p1[3],
double p2[3],
double p3[3],
double p4[3],
double p5[3])
static std::unique_ptr< ExactPredicates > create(const std::string &engine)
Factory method to create an exact predicate engine.
Definition ExactPredicates.cpp:20
virtual short orient2D(double p1[2], double p2[2], double p3[2]) const =0
Exact 2D orientation test.
virtual short collinear3D(double p1[3], double p2[3], double p3[3]) const
Tests whether p1, p2, and p3 are collinear in 3D.
Definition ExactPredicates.cpp:31
virtual short insphere(double p1[3], double p2[3], double p3[3], double p4[3], double p5[3]) const =0
Exact 3D insphere test.
virtual short incircle(double p1[2], double p2[2], double p3[2], double p4[2]) const =0
Exact 2D incircle test.
virtual short orient3D(double p1[3], double p2[3], double p3[3], double p4[3]) const =0
Exact 3D orientation test.
Main namespace for Lagrange.