Main Page   Class List   Class Members  

  • Main Page
  • User's Guide
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

sdk/extensions/authoring/source/VHACD/inc/vhacdRaycastMesh.h

Go to the documentation of this file.
00001 #ifndef RAYCAST_MESH_H
00002 
00003 #define RAYCAST_MESH_H
00004 
00005 #include <stdint.h>
00006 
00007 namespace VHACD
00008 {
00009 
00010     // Very simple brute force raycast against a triangle mesh.  Tests every triangle; no hierachy.
00011     // Does a deep copy, always does calculations with full double float precision
00012     class RaycastMesh
00013     {
00014     public:
00015         static RaycastMesh * createRaycastMesh(uint32_t vcount,     // The number of vertices in the source triangle mesh
00016             const double *vertices,     // The array of vertex positions in the format x1,y1,z1..x2,y2,z2.. etc.
00017             uint32_t tcount,        // The number of triangles in the source triangle mesh
00018             const uint32_t *indices); // The triangle indices in the format of i1,i2,i3 ... i4,i5,i6, ...
00019 
00020         static RaycastMesh * createRaycastMesh(uint32_t vcount,     // The number of vertices in the source triangle mesh
00021             const float *vertices,      // The array of vertex positions in the format x1,y1,z1..x2,y2,z2.. etc.
00022             uint32_t tcount,        // The number of triangles in the source triangle mesh
00023             const uint32_t *indices); // The triangle indices in the format of i1,i2,i3 ... i4,i5,i6, ...
00024 
00025 
00026         virtual bool raycast(const double *from,            // The starting point of the raycast
00027             const double *to,               // The ending point of the raycast
00028             const double *closestToPoint,   // The point to match the nearest hit location (can just be the 'from' location of no specific point)
00029             double *hitLocation,            // The point where the ray hit nearest to the 'closestToPoint' location
00030             double *hitDistance) = 0;       // The distance the ray traveled to the hit location
00031 
00032         virtual void release(void) = 0;
00033     protected:
00034         virtual ~RaycastMesh(void) { };
00035     };
00036 
00037 } // end of VHACD namespace
00038 
00039 #endif
Copyright © 2015-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com