diff options
Diffstat (limited to 'src/mtx_qhull/vectors.h')
-rw-r--r-- | src/mtx_qhull/vectors.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/mtx_qhull/vectors.h b/src/mtx_qhull/vectors.h new file mode 100644 index 0000000..201205a --- /dev/null +++ b/src/mtx_qhull/vectors.h @@ -0,0 +1,40 @@ +typedef struct vec_ { + float c[3]; +} vector_t; + +typedef struct points_ { + vector_t *v; + size_t num_points; +} points_t; + +typedef struct plane_ { + vector_t normal; + vector_t point; +} plane_t; + +vector_t initVector (float x, float y, float z); +vector_t normalizeVector(vector_t v); + +plane_t initPlane (vector_t normal, vector_t point); + +points_t initPoints (const float *x, + const float *y, const float *z, + size_t num_points); +void freePoints (points_t *points); + +vector_t crossProduct (vector_t v1, vector_t v2); +float innerProduct (vector_t v1, vector_t v2); +float distancePointPlane (vector_t point, plane_t plane); +vector_t addVectors(vector_t v1, vector_t v2); +vector_t subtractVectors(vector_t v1, vector_t v2); +vector_t scaleVector(vector_t v1, float f); +vector_t averagePoints(points_t points); +vector_t normalOfPoints(points_t points); +plane_t planeFromPoints(points_t points); + +vector_t averageListedPoints(points_t points, list_t list); +vector_t normalOfListedPoints(points_t points, list_t list); +plane_t planeFromListedPoints(points_t points, list_t list); + +void printPlane(plane_t p); +void printVector(vector_t v); |