diff --git a/src/occt/include/point.hpp b/src/occt/include/point.hpp new file mode 100644 index 0000000..d012da6 --- /dev/null +++ b/src/occt/include/point.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include + +extern "C" { + struct Point { + double x; + double y; + double z; + }; + +Point* make_point(double x, double y, double z); +void free_point(Point* p); +void coord_point(const Point* p, double* x, double* y, double* z); +} diff --git a/src/occt/point.cpp b/src/occt/point.cpp new file mode 100644 index 0000000..f685408 --- /dev/null +++ b/src/occt/point.cpp @@ -0,0 +1,17 @@ +#include + +Point* make_point(double x, double y, double z) { + gp_Pnt* p = new gp_Pnt(x, y, z); + return reinterpret_cast(p); +} + +void free_point(Point* p) { + delete reinterpret_cast(p); +} + +void coord_point(const Point* p, double* x, double* y, double* z) { + const gp_Pnt* gp = reinterpret_cast(p); + *x = gp->X(); + *y = gp->Y(); + *z = gp->Z(); +}