34 #ifndef _ODE_COLLISION_TRIMESH_H_
35 #define _ODE_COLLISION_TRIMESH_H_
51 ODE_API dTriMeshDataID dGeomTriMeshDataCreate(
void);
52 ODE_API
void dGeomTriMeshDataDestroy(dTriMeshDataID g);
56 enum { TRIMESH_FACE_NORMALS };
57 ODE_API
void dGeomTriMeshDataSet(dTriMeshDataID g,
int data_id,
void* in_data);
58 ODE_API
void* dGeomTriMeshDataGet(dTriMeshDataID g,
int data_id);
67 ODE_API
void dGeomTriMeshSetLastTransform(
dGeomID g, dMatrix4 last_trans );
68 ODE_API dReal* dGeomTriMeshGetLastTransform(
dGeomID g );
73 ODE_API
void dGeomTriMeshDataBuildSingle(dTriMeshDataID g,
74 const void* Vertices,
int VertexStride,
int VertexCount,
75 const void* Indices,
int IndexCount,
int TriStride);
77 ODE_API
void dGeomTriMeshDataBuildSingle1(dTriMeshDataID g,
78 const void* Vertices,
int VertexStride,
int VertexCount,
79 const void* Indices,
int IndexCount,
int TriStride,
84 ODE_API
void dGeomTriMeshDataBuildDouble(dTriMeshDataID g,
85 const void* Vertices,
int VertexStride,
int VertexCount,
86 const void* Indices,
int IndexCount,
int TriStride);
88 ODE_API
void dGeomTriMeshDataBuildDouble1(dTriMeshDataID g,
89 const void* Vertices,
int VertexStride,
int VertexCount,
90 const void* Indices,
int IndexCount,
int TriStride,
96 ODE_API
void dGeomTriMeshDataBuildSimple(dTriMeshDataID g,
97 const dReal* Vertices,
int VertexCount,
98 const dTriIndex* Indices,
int IndexCount);
100 ODE_API
void dGeomTriMeshDataBuildSimple1(dTriMeshDataID g,
101 const dReal* Vertices,
int VertexCount,
102 const dTriIndex* Indices,
int IndexCount,
106 ODE_API
void dGeomTriMeshDataPreprocess(dTriMeshDataID g);
108 ODE_API
void dGeomTriMeshDataGetBuffer(dTriMeshDataID g,
unsigned char** buf,
int* bufLen);
109 ODE_API
void dGeomTriMeshDataSetBuffer(dTriMeshDataID g,
unsigned char* buf);
116 typedef int dTriCallback(
dGeomID TriMesh,
dGeomID RefObject,
int TriangleIndex);
117 ODE_API
void dGeomTriMeshSetCallback(
dGeomID g, dTriCallback* Callback);
118 ODE_API dTriCallback* dGeomTriMeshGetCallback(
dGeomID g);
124 typedef void dTriArrayCallback(
dGeomID TriMesh,
dGeomID RefObject,
const int* TriIndices,
int TriCount);
125 ODE_API
void dGeomTriMeshSetArrayCallback(
dGeomID g, dTriArrayCallback* ArrayCallback);
126 ODE_API dTriArrayCallback* dGeomTriMeshGetArrayCallback(
dGeomID g);
134 typedef int dTriRayCallback(
dGeomID TriMesh,
dGeomID Ray,
int TriangleIndex, dReal u, dReal v);
135 ODE_API
void dGeomTriMeshSetRayCallback(
dGeomID g, dTriRayCallback* Callback);
136 ODE_API dTriRayCallback* dGeomTriMeshGetRayCallback(
dGeomID g);
145 typedef int dTriTriMergeCallback(
dGeomID TriMesh,
int FirstTriangleIndex,
int SecondTriangleIndex);
146 ODE_API
void dGeomTriMeshSetTriMergeCallback(
dGeomID g, dTriTriMergeCallback* Callback);
147 ODE_API dTriTriMergeCallback* dGeomTriMeshGetTriMergeCallback(
dGeomID g);
153 ODE_API
dGeomID dCreateTriMesh(
dSpaceID space, dTriMeshDataID Data, dTriCallback* Callback, dTriArrayCallback* ArrayCallback, dTriRayCallback* RayCallback);
155 ODE_API
void dGeomTriMeshSetData(
dGeomID g, dTriMeshDataID Data);
156 ODE_API dTriMeshDataID dGeomTriMeshGetData(
dGeomID g);
160 ODE_API
void dGeomTriMeshEnableTC(
dGeomID g,
int geomClass,
int enable);
161 ODE_API
int dGeomTriMeshIsTCEnabled(
dGeomID g,
int geomClass);
169 ODE_API
void dGeomTriMeshClearTCCache(
dGeomID g);
175 ODE_API dTriMeshDataID dGeomTriMeshGetTriMeshDataID(
dGeomID g);
180 ODE_API
void dGeomTriMeshGetTriangle(
dGeomID g,
int Index, dVector3* v0, dVector3* v1, dVector3* v2);
186 ODE_API
void dGeomTriMeshGetPoint(
dGeomID g,
int Index, dReal u, dReal v, dVector3 Out);
207 ODE_API
int dGeomTriMeshGetTriangleCount (
dGeomID g);
209 ODE_API
void dGeomTriMeshDataUpdate(dTriMeshDataID g);
Definition: collision_kernel.h:96
Definition: collision_kernel.h:202
Definition: collision_trimesh_internal.h:205