From 09a410e7aca2a71f92c3f32f5c84c18f875f359f Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Sat, 8 Nov 2025 17:32:17 +0100 Subject: [PATCH] occt: add point wrapper to create, delete and get coordinates --- src/occt/include/point.hpp | 15 +++++++++++++++ src/occt/point.cpp | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/occt/include/point.hpp create mode 100644 src/occt/point.cpp 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(); +}