#pragma once #include "rust/cxx.h" #include // Namespace to handle calls into geogram from rust. namespace GEOGRAM { int16_t det_3d(const ::std::array &a, const ::std::array &b, const ::std::array &c); int16_t det_4d(const ::std::array &a, const ::std::array &b, const ::std::array &c, const ::std::array &d); int16_t dot_3d(const ::std::array &a, const ::std::array &b, const ::std::array &c); int16_t geo_sgn(double x); int16_t in_circle_2d_SOS(const ::std::array &a, const ::std::array &b, const ::std::array &c, const ::std::array &p); int16_t in_sphere_3d_SOS(const ::std::array &a, const ::std::array &b, const ::std::array &c, const ::std::array &d, const ::std::array &p); void initialize(); int16_t orient_2d(const ::std::array &a, const ::std::array &b, const ::std::array &c); int16_t orient_2dlifted_SOS(const ::std::array &a, const ::std::array &b, const ::std::array &c, const ::std::array &p, double h_a, double h_b, double h_c, double h_p); int16_t orient_3d(const ::std::array &a, const ::std::array &b, const ::std::array &c, const ::std::array &d); int16_t orient_3d_inexact(const ::std::array &a, const ::std::array &b, const ::std::array &c, const ::std::array &d); int16_t orient_3dlifted_SOS(const ::std::array &a, const ::std::array &b, const ::std::array &c, const ::std::array &d, const ::std::array &p, double h_a, double h_b, double h_c, double h_d, double h_p); bool points_are_colinear_3d(const ::std::array &a, const ::std::array &b, const ::std::array &c); bool points_are_identical_2d(const ::std::array &p1, const ::std::array &p2); bool points_are_identical_3d(const ::std::array &p1, const ::std::array &p2); void show_stats(); void terminate(); } // namespace GEOGRAM