diff options
| author | Bryan Galdrikian <[email protected]> | 2017-10-24 15:25:02 -0700 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2017-10-24 15:25:02 -0700 |
| commit | b0c11962f6012430da3bcaa2727288046b33d648 (patch) | |
| tree | cf13338fa4fd7072badf64f751f94abeeb437003 /sdk/extensions/authoring/source/VHACD/inc/vhacdRaycastMesh.h | |
| parent | linux build fix - all configs (diff) | |
| download | blast-b0c11962f6012430da3bcaa2727288046b33d648.tar.xz blast-b0c11962f6012430da3bcaa2727288046b33d648.zip | |
Changes for 1.1.1
See README.md
Diffstat (limited to 'sdk/extensions/authoring/source/VHACD/inc/vhacdRaycastMesh.h')
| -rw-r--r-- | sdk/extensions/authoring/source/VHACD/inc/vhacdRaycastMesh.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sdk/extensions/authoring/source/VHACD/inc/vhacdRaycastMesh.h b/sdk/extensions/authoring/source/VHACD/inc/vhacdRaycastMesh.h new file mode 100644 index 0000000..93bf299 --- /dev/null +++ b/sdk/extensions/authoring/source/VHACD/inc/vhacdRaycastMesh.h @@ -0,0 +1,39 @@ +#ifndef RAYCAST_MESH_H + +#define RAYCAST_MESH_H + +#include <stdint.h> + +namespace VHACD +{ + + // Very simple brute force raycast against a triangle mesh. Tests every triangle; no hierachy. + // Does a deep copy, always does calculations with full double float precision + class RaycastMesh + { + public: + static RaycastMesh * createRaycastMesh(uint32_t vcount, // The number of vertices in the source triangle mesh + const double *vertices, // The array of vertex positions in the format x1,y1,z1..x2,y2,z2.. etc. + uint32_t tcount, // The number of triangles in the source triangle mesh + const uint32_t *indices); // The triangle indices in the format of i1,i2,i3 ... i4,i5,i6, ... + + static RaycastMesh * createRaycastMesh(uint32_t vcount, // The number of vertices in the source triangle mesh + const float *vertices, // The array of vertex positions in the format x1,y1,z1..x2,y2,z2.. etc. + uint32_t tcount, // The number of triangles in the source triangle mesh + const uint32_t *indices); // The triangle indices in the format of i1,i2,i3 ... i4,i5,i6, ... + + + virtual bool raycast(const double *from, // The starting point of the raycast + const double *to, // The ending point of the raycast + const double *closestToPoint, // The point to match the nearest hit location (can just be the 'from' location of no specific point) + double *hitLocation, // The point where the ray hit nearest to the 'closestToPoint' location + double *hitDistance) = 0; // The distance the ray traveled to the hit location + + virtual void release(void) = 0; + protected: + virtual ~RaycastMesh(void) { }; + }; + +} // end of VHACD namespace + +#endif |