My Project: dynamics.mod/NewtonDynamics/source/physics/dgCollision.h Source File

My Project

dgCollision.h
Go to the documentation of this file.
1 /* Copyright (c) <2003-2011> <Julio Jerez, Newton Game Dynamics>
2 *
3 * This software is provided 'as-is', without any express or implied
4 * warranty. In no event will the authors be held liable for any damages
5 * arising from the use of this software.
6 *
7 * Permission is granted to anyone to use this software for any purpose,
8 * including commercial applications, and to alter it and redistribute it
9 * freely, subject to the following restrictions:
10 *
11 * 1. The origin of this software must not be misrepresented; you must not
12 * claim that you wrote the original software. If you use this software
13 * in a product, an acknowledgment in the product documentation would be
14 * appreciated but is not required.
15 *
16 * 2. Altered source versions must be plainly marked as such, and must not be
17 * misrepresented as being the original software.
18 *
19 * 3. This notice may not be removed or altered from any source distribution.
20 */
21
22 #ifndef _DG_COLLISION_H_
23 #define _DG_COLLISION_H_
24
25
26 class dgBody;
27 class dgCollision;
28 class dgMeshEffect;
29 class dgContactPoint;
30 class dgPolygonSoupDesc;
31 class dgCollisionConvex;
32 class dgPolygonMeshDesc;
33 class dgCollisionConvexHull;
34 class dgPolygonSoupRayHitDesc;
35
36
37
38
39
40
41 //typedef dgInt32 (*dgCollisionCompoundBreakableCallback) (dgMeshEffect* const solid, void* userData, dgMatrix& planeMatrixOut);
42
43
44 #ifdef _DEBUG
45 // #define DG_DEBUG_AABB
46 #endif
47
48 #define PREFILTER_RAYCAST(filter,body,collision,userData) (filter && !filter(body,collision,userData))
49
50
51
52 enum dgCollisionID
53 {
54 // do not change the order of these enum
55 m_sphereCollision = 0,
56 m_capsuleCollision,
57 m_chamferCylinderCollision,
58 m_taperedCapsuleCollision,
59 m_cylinderCollision,
60 m_taperedCylinderCollision,
61 m_boxCollision,
62 m_coneCollision,
63 m_convexHullCollision,
64 // this must be the last convex shape ID
65 m_nullCollision,
66
67 m_compoundCollision,
68 m_boundingBoxHierachy,
69 m_heightField,
70 m_deformableClothPatch,
71 m_deformableSolidMesh,
72 m_userMesh,
73 m_sceneCollision,
74 m_compoundFracturedCollision,
75
76 // these are for internal use only
77 m_polygonCollision,
78 };
79
80
81 DG_MSC_VECTOR_ALIGMENT
82 class dgCollisionInfo
83 {
84 public:
85
86 struct dgBoxData
87 {
88 dgFloat32 m_x;
89 dgFloat32 m_y;
90 dgFloat32 m_z;
91 } ;
92
93 struct dgSphereData
94 {
95 dgFloat32 m_radius;
96 } ;
97
98 struct dgCylinderData
99 {
100 dgFloat32 m_radius;
101 dgFloat32 m_height;
102 };
103
104 struct dgTaperedCapsuleData
105 {
106 dgFloat32 m_radio0;
107 dgFloat32 m_radio1;
108 dgFloat32 m_height;
109 };
110
111
112 struct dgTaperedCylinderData
113 {
114 dgFloat32 m_radio0;
115 dgFloat32 m_radio1;
116 dgFloat32 m_height;
117 };
118
119 struct dgCapsuleData
120 {
121 dgFloat32 m_radio;
122 dgFloat32 m_height;
123 };
124
125 struct dgConeData
126 {
127 dgFloat32 m_r;
128 dgFloat32 m_height;
129 };
130
131 struct dgChamferCylinderData
132 {
133 dgFloat32 m_r;
134 dgFloat32 m_height;
135 };
136
137 struct dgConvexHullData
138 {
139 dgInt32 m_vertexCount;
140 dgInt32 m_strideInBytes;
141 dgInt32 m_faceCount;
142 dgVector* m_vertex;
143 };
144
145 struct dgConvexModifierData
146 {
147 dgCollision* m_child;
148 };
149
150 struct dgCoumpountCollisionData
151 {
152 dgInt32 m_chidrenCount;
153 //dgCollision** m_chidren;
154 };
155
156 struct dgCollisionBVHData
157 {
158 dgInt32 m_vertexCount;
159 dgInt32 m_indexCount;
160 };
161
162 struct dgDeformableMeshData
163 {
164 dgInt32 m_vertexCount;
165 dgInt32 m_triangleCount;
166 dgInt32 m_vertexStrideInBytes;
167 dgUnsigned16* m_indexList;
168 dgFloat32* m_vertexList;
169 };
170
171 struct dgHeightMapCollisionData
172 {
173 dgInt32 m_width;
174 dgInt32 m_height;
175 dgInt32 m_gridsDiagonals;
176 dgInt32 m_elevationDataType; // 0 = 32 bit floats, 1 = unsigned 16 bit intergers
177 dgFloat32 m_horizonalScale;
178 dgFloat32 m_verticalScale;
179 void* m_elevation;
180 dgInt8* m_atributes;
181
182 };
183
184 struct dgSceneData
185 {
186 dgInt32 m_childrenProxyCount;
187 };
188
189 dgMatrix m_offsetMatrix;
190 dgInt32 m_collisionType;
191 dgInt32 m_userDadaID;
192 union
193 {
194 dgBoxData m_box;
195 dgConeData m_cone;
196 dgSphereData m_sphere;
197 dgCapsuleData m_capsule;
198 dgCylinderData m_cylinder;
199 dgTaperedCapsuleData m_taperedCapsule;
200 dgTaperedCylinderData m_taperedCylinder;
201 dgChamferCylinderData m_chamferCylinder;
202 dgConvexHullData m_convexHull;
203 dgDeformableMeshData m_deformableMesh;
204 dgConvexModifierData m_convexModifierData;
205 dgCoumpountCollisionData m_compoundCollision;
206 dgCollisionBVHData m_bvhCollision;
207 dgHeightMapCollisionData m_heightFieldCollision;
208 dgSceneData m_sceneCollision;
209 dgFloat32 m_paramArray[32];
210 };
211 }DG_GCC_VECTOR_ALIGMENT;
212
213
214
215
216 DG_MSC_VECTOR_ALIGMENT
217 class dgCollision
218 {
219 public:
220 typedef void (dgApi *OnDebugCollisionMeshCallback) (void* userData, int vertexCount, const dgFloat32* FaceArray, int faceId);
221
222 enum dgRTTI {
223 dgCollisionNull_RTTI = 1<<0,
224 dgCollisionBox_RTTI = 1<<1,
225 dgCollisionCone_RTTI = 1<<2,
226 dgCollisionSphere_RTTI = 1<<3,
227 dgCollisionCapsule_RTTI = 1<<4,
228 dgCollisionCylinder_RTTI = 1<<5,
229 dgCollisionConvexHull_RTTI = 1<<6,
230 dgCollisionTaperedCapsule_RTTI = 1<<7,
231 dgCollisionTaperedCylinder_RTTI = 1<<8,
232 dgCollisionChamferCylinder_RTTI = 1<<9,
233 dgCollisionConvexPolygon_RTTI = 1<<10,
234 dgCollisionConvexShape_RTTI = 1<<11,
235 dgCollisionCompound_RTTI = 1<<12,
236 dgCollisionBVH_RTTI = 1<<13,
237 dgCollisionMesh_RTTI = 1<<14,
238 dgCollisionDeformableMesh_RTTI = 1<<15,
239 dgCollisionDeformableSolidMesh_RTTI = 1<<16,
240 dgCollisionDeformableClothPatch_RTTI = 1<<17,
241 dgCollisionUserMesh_RTTI = 1<<18,
242 dgCollisionHeightField_RTTI = 1<<19,
243 dgCollisionScene_RTTI = 1<<20,
244 dgCollisionCompoundBreakable_RTTI = 1<<21,
245 };
246
247 DG_CLASS_ALLOCATOR(allocator)
248 static dgUnsigned32 Quantize (dgFloat32 value);
249 static dgUnsigned32 Quantize( void* buffer, int size);
250
251 // these function should be be virtual
252 dgInt32 IsType (dgRTTI type) const;
253 dgUnsigned32 GetSignature () const;
254 dgCollisionID GetCollisionPrimityType () const;
255 virtual dgVector SupportVertex (const dgVector& dir, dgInt32* const vertexIndex) const = 0;
256 virtual dgInt32 CalculatePlaneIntersection (const dgVector& normal, const dgVector& point, dgVector* const contactsOut, dgFloat32 normalSign) const = 0;
257
258 virtual void SetCollisionBBox (const dgVector& p0, const dgVector& p1) = 0;
259 virtual void CalcAABB (const dgMatrix& matrix, dgVector& p0, dgVector& p1) const = 0;
260
261 virtual void DebugCollision (const dgMatrix& matrix, dgCollision::OnDebugCollisionMeshCallback callback, void* const userData) const = 0;
262 virtual dgFloat32 RayCast (const dgVector& localP0, const dgVector& localP1, dgFloat32 maxT, dgContactPoint& contactOut, const dgBody* const body, void* const userData, OnRayPrecastAction preFilter) const = 0;
263 virtual dgFloat32 ConvexRayCast (const dgCollisionInstance* const convexShape, const dgMatrix& origin, const dgVector& veloc, dgFloat32 maxT, dgContactPoint& contactOut, const dgBody* const referenceBody, const dgCollisionInstance* const referenceInstance, void* const userData, dgInt32 threadId) const = 0;
264
265 virtual dgFloat32 GetVolume () const = 0;
266
267 virtual void MassProperties ();
268 virtual dgFloat32 CalculateMassProperties (const dgMatrix& offset, dgVector& inertia, dgVector& crossInertia, dgVector& centerOfMass) const {dgAssert (0); return 0;}
269 virtual dgMatrix CalculateInertiaAndCenterOfMass (const dgMatrix& m_alignMatrix, const dgVector& localScale, const dgMatrix& matrix) const {dgAssert (0); return dgGetZeroMatrix();}
270
271 virtual dgFloat32 GetSkinThickness () const;
272 virtual dgFloat32 GetBoxMinRadius () const = 0;
273 virtual dgFloat32 GetBoxMaxRadius () const = 0;
274
275 virtual dgVector CalculateVolumeIntegral (const dgMatrix& globalMatrix, const dgVector& globalPlane, const dgCollisionInstance& parentScale) const = 0;
276 virtual void Serialize(dgSerialize callback, void* const userData) const = 0;
277
278 virtual void GetCollisionInfo(dgCollisionInfo* const info) const;
279 virtual void SerializeLow(dgSerialize callback, void* const userData) const;
280
281 virtual dgInt32 GetConvexVertexCount() const;
282
283 const dgCollision* AddRef () const;
284 dgInt32 GetRefCount() const;
285 virtual dgInt32 Release () const;
286
287 const dgVector& GetObbOrigin() const;
288 virtual dgVector GetObbSize() const;
289
290 dgFloat32 GetUmbraClipSize () const;
291 dgMemoryAllocator* GetAllocator() const;
292
293 protected:
294 dgCollision (const dgCollision& source);
295 dgCollision (dgMemoryAllocator* const allocator, dgUnsigned32 signature, dgCollisionID id);
296 dgCollision (dgWorld* const world, dgDeserialize deserialization, void* const userData);
297 virtual ~dgCollision();
298
299 void SetSignature (dgInt32 signature);
300 virtual dgInt32 CalculateSignature () const = 0;
301
302 dgVector m_inertia;
303 dgVector m_crossInertia;
304 dgVector m_centerOfMass;
305 dgVector m_boxSize;
306 dgVector m_boxOrigin;
307 dgInt32 m_rtti;
308 mutable dgInt32 m_refCount;
309 dgUnsigned32 m_signature;
310 dgCollisionID m_collisionId;
311 dgMemoryAllocator* m_allocator;
312
313
314 friend class dgBody;
315 friend class dgWorld;
316 friend class dgMinkowskiConv;
317 friend class dgCollisionInstance;
318 friend class dgCollisionCompound;
319 }DG_GCC_VECTOR_ALIGMENT;
320
321 DG_INLINE dgCollisionID dgCollision::GetCollisionPrimityType () const
322 {
323 return m_collisionId;
324 }
325
326 DG_INLINE dgUnsigned32 dgCollision::GetSignature () const
327 {
328 return m_signature;
329 }
330
331 DG_INLINE void dgCollision::SetSignature (dgInt32 signature)
332 {
333 m_signature = dgUnsigned32 (signature);
334 }
335
336
337 DG_INLINE const dgCollision* dgCollision::AddRef () const
338 {
339 dgAtomicExchangeAndAdd (&m_refCount, 1);
340 return this;
341 }
342
343 DG_INLINE dgInt32 dgCollision::Release () const
344 {
345 dgAtomicExchangeAndAdd (&m_refCount, -1);
346 if (m_refCount) {
347 return m_refCount;
348 }
349 delete this;
350 return 0;
351 }
352
353 DG_INLINE dgInt32 dgCollision::GetRefCount() const
354 {
355 dgAssert (0);
356 return m_refCount;
357 }
358
359
360 DG_INLINE dgMemoryAllocator* dgCollision::GetAllocator() const
361 {
362 return m_allocator;
363 }
364
365
366 DG_INLINE dgFloat32 dgCollision::GetUmbraClipSize () const
367 {
368 // return GetMax (GetBoxMaxRadius() * dgFloat32 (2.0f) + dgFloat32 (1.0f), dgFloat32 (16.0f));
369 return dgFloat32 (3.0f) * GetBoxMaxRadius();
370 }
371
372 DG_INLINE dgInt32 dgCollision::GetConvexVertexCount() const
373 {
374 return 0;
375 }
376
377 DG_INLINE dgInt32 dgCollision::IsType (dgRTTI type) const
378 {
379 return type & m_rtti;
380 }
381
382 DG_INLINE dgVector dgCollision::GetObbSize() const
383 {
384 return m_boxSize;
385 }
386
387 DG_INLINE const dgVector& dgCollision::GetObbOrigin() const
388 {
389 return m_boxOrigin;
390 }
391
392
393 #endif
394
395
m_sceneCollision
Definition: dgCollision.h:73
dgCollisionInfo::m_taperedCapsule
dgTaperedCapsuleData m_taperedCapsule
Definition: dgCollision.h:199
dgCollisionInfo::dgConvexHullData::m_vertexCount
dgInt32 m_vertexCount
Definition: dgCollision.h:139
dgCollisionInfo::dgSceneData
Definition: dgCollision.h:184
dgCollisionInfo::m_userDadaID
dgInt32 m_userDadaID
Definition: dgCollision.h:191
dgApi
#define dgApi
Definition: dgTypes.h:263
m_taperedCylinderCollision
Definition: dgCollision.h:60
dgCollisionInfo::m_convexHull
dgConvexHullData m_convexHull
Definition: dgCollision.h:202
dgCollisionInfo::m_cone
dgConeData m_cone
Definition: dgCollision.h:195
dgCollisionInfo::dgConvexHullData::m_strideInBytes
dgInt32 m_strideInBytes
Definition: dgCollision.h:140
dgCollisionInfo::dgConeData::m_height
dgFloat32 m_height
Definition: dgCollision.h:128
DG_GCC_VECTOR_ALIGMENT
DG_MSC_VECTOR_ALIGMENT class dgCollisionInfo DG_GCC_VECTOR_ALIGMENT
m_coneCollision
Definition: dgCollision.h:62
dgCollisionInfo::dgHeightMapCollisionData::m_gridsDiagonals
dgInt32 m_gridsDiagonals
Definition: dgCollision.h:175
dgCollisionInfo::dgHeightMapCollisionData::m_horizonalScale
dgFloat32 m_horizonalScale
Definition: dgCollision.h:177
dgGetZeroMatrix
const dgMatrix & dgGetZeroMatrix()
Definition: dgMatrix.cpp:52
dgCollision::GetRefCount
dgInt32 GetRefCount() const
Definition: dgCollision.h:353
dgCollisionInfo::m_heightFieldCollision
dgHeightMapCollisionData m_heightFieldCollision
Definition: dgCollision.h:207
dgCollisionInfo::m_deformableMesh
dgDeformableMeshData m_deformableMesh
Definition: dgCollision.h:203
dgCollisionInfo::dgSphereData
Definition: dgCollision.h:93
dgCollisionInfo::dgCapsuleData
Definition: dgCollision.h:119
dgCollision::m_rtti
dgInt32 m_rtti
Definition: dgCollision.h:307
dgCollisionInfo::dgDeformableMeshData::m_vertexList
dgFloat32 * m_vertexList
Definition: dgCollision.h:168
dgCollisionInfo
Definition: dgCollision.h:82
dgBody
Definition: dgBody.h:44
dgCollision::m_boxOrigin
dgVector m_boxOrigin
Definition: dgCollision.h:306
m_compoundCollision
Definition: dgCollision.h:67
userData
void *const userData
Definition: dgBroadPhase.h:35
DG_INLINE
#define DG_INLINE
Definition: dgTypes.h:178
dgCollisionInfo::dgConvexHullData
Definition: dgCollision.h:137
dgAssert
#define dgAssert(x)
Definition: dgTypes.h:158
dgFloat32
float dgFloat32
Definition: dgTypes.h:233
dgInt32
int dgInt32
Definition: dgTypes.h:218
dgCollisionInfo::dgConvexHullData::m_vertex
dgVector * m_vertex
Definition: dgCollision.h:142
void
typedef void(dgApi *ConstraintsForceFeeback)(const dgConstraint &me
dgCollisionInfo::dgTaperedCapsuleData::m_height
dgFloat32 m_height
Definition: dgCollision.h:108
dgPolygonMeshDesc
Definition: dgCollisionMesh.h:42
dgVector
Definition: dgVector.h:639
m_compoundFracturedCollision
Definition: dgCollision.h:74
dgCollision::AddRef
const dgCollision * AddRef() const
Definition: dgCollision.h:337
dgCollisionInfo::dgTaperedCylinderData::m_radio1
dgFloat32 m_radio1
Definition: dgCollision.h:115
dgCollision::CalculateInertiaAndCenterOfMass
virtual dgMatrix CalculateInertiaAndCenterOfMass(const dgMatrix &m_alignMatrix, const dgVector &localScale, const dgMatrix &matrix) const
Definition: dgCollision.h:269
dgCollisionInfo::dgCapsuleData::m_radio
dgFloat32 m_radio
Definition: dgCollision.h:121
m_boxCollision
Definition: dgCollision.h:61
dgCollision::dgRTTI
dgRTTI
Definition: dgCollision.h:222
dgCollision::m_boxSize
dgVector m_boxSize
Definition: dgCollision.h:305
m_deformableSolidMesh
Definition: dgCollision.h:71
dgCollisionInfo::dgTaperedCapsuleData::m_radio1
dgFloat32 m_radio1
Definition: dgCollision.h:107
DG_CLASS_ALLOCATOR
#define DG_CLASS_ALLOCATOR(allocator)
Definition: dgMemory.h:60
dgCollisionInfo::dgHeightMapCollisionData::m_verticalScale
dgFloat32 m_verticalScale
Definition: dgCollision.h:178
dgCollisionInfo::dgBoxData::m_z
dgFloat32 m_z
Definition: dgCollision.h:90
dgCollision::m_centerOfMass
dgVector m_centerOfMass
Definition: dgCollision.h:304
dgCollision::m_refCount
dgInt32 m_refCount
Definition: dgCollision.h:308
dgCollision::GetObbOrigin
const dgVector & GetObbOrigin() const
Definition: dgCollision.h:387
dgCollisionInfo::dgConeData
Definition: dgCollision.h:125
dgCollisionInfo::dgBoxData
Definition: dgCollision.h:86
dgCollisionInfo::dgDeformableMeshData
Definition: dgCollision.h:162
dgMeshEffect
Definition: dgMeshEffect.h:45
dgCollision::GetUmbraClipSize
dgFloat32 GetUmbraClipSize() const
Definition: dgCollision.h:366
dgContactPoint
Definition: dgContact.h:78
dgCollision::GetObbSize
virtual dgVector GetObbSize() const
Definition: dgCollision.h:382
dgCollisionInfo::dgConeData::m_r
dgFloat32 m_r
Definition: dgCollision.h:127
dgCollisionInfo::m_convexModifierData
dgConvexModifierData m_convexModifierData
Definition: dgCollision.h:204
dgCollisionInfo::dgTaperedCapsuleData
Definition: dgCollision.h:104
dgCollisionInfo::dgDeformableMeshData::m_indexList
dgUnsigned16 * m_indexList
Definition: dgCollision.h:167
dgCollisionInfo::dgHeightMapCollisionData::m_height
dgInt32 m_height
Definition: dgCollision.h:174
dgCollisionInfo::dgTaperedCylinderData
Definition: dgCollision.h:112
dgCollisionCompound::GetBoxMaxRadius
virtual dgFloat32 GetBoxMaxRadius() const
Definition: dgCollisionCompound.cpp:736
dgCollisionInfo::dgHeightMapCollisionData::m_elevation
void * m_elevation
Definition: dgCollision.h:179
dgCollisionInfo::dgCoumpountCollisionData::m_chidrenCount
dgInt32 m_chidrenCount
Definition: dgCollision.h:152
dgCollisionInfo::dgCylinderData::m_radius
dgFloat32 m_radius
Definition: dgCollision.h:100
m_deformableClothPatch
Definition: dgCollision.h:70
dgSerialize
void(dgApi * dgSerialize)(void *const userData, const void *const buffer, size_t size)
Definition: dgTypes.h:280
DG_MSC_VECTOR_ALIGMENT
#define DG_MSC_VECTOR_ALIGMENT
Definition: dgTypes.h:194
dgCollisionInfo::dgTaperedCylinderData::m_height
dgFloat32 m_height
Definition: dgCollision.h:116
dgCollision::m_collisionId
dgCollisionID m_collisionId
Definition: dgCollision.h:310
dgCollision::GetCollisionPrimityType
dgCollisionID GetCollisionPrimityType() const
Definition: dgCollision.h:321
dgCollision::m_crossInertia
dgVector m_crossInertia
Definition: dgCollision.h:303
dgDeserialize
void(dgApi * dgDeserialize)(void *const userData, void *buffer, size_t size)
Definition: dgTypes.h:279
dgCollision::IsType
dgInt32 IsType(dgRTTI type) const
Definition: dgCollision.h:377
dgCollisionInfo::m_bvhCollision
dgCollisionBVHData m_bvhCollision
Definition: dgCollision.h:206
dgInt8
char dgInt8
Definition: dgTypes.h:212
dgCollisionInfo::m_box
dgBoxData m_box
Definition: dgCollision.h:194
dgCollisionInfo::m_chamferCylinder
dgChamferCylinderData m_chamferCylinder
Definition: dgCollision.h:201
m_cylinderCollision
Definition: dgCollision.h:59
dgCollisionInfo::dgConvexModifierData
Definition: dgCollision.h:145
m_boundingBoxHierachy
Definition: dgCollision.h:68
dgCollisionInfo::dgTaperedCapsuleData::m_radio0
dgFloat32 m_radio0
Definition: dgCollision.h:106
dgCollision::m_inertia
dgVector m_inertia
Definition: dgCollision.h:302
m_userMesh
Definition: dgCollision.h:72
OnRayPrecastAction
dgUnsigned32(dgApi * OnRayPrecastAction)(const dgBody *const body, const dgCollisionInstance *const collision, void *const userData)
Definition: dgBroadPhase.h:36
dgCollisionInstance
Definition: dgCollisionInstance.h:30
dgAtomicExchangeAndAdd
DG_INLINE dgInt32 dgAtomicExchangeAndAdd(dgInt32 *const addend, dgInt32 amount)
Definition: dgTypes.h:779
dgCollisionInfo::dgCollisionBVHData::m_vertexCount
dgInt32 m_vertexCount
Definition: dgCollision.h:158
m_sphereCollision
Definition: dgCollision.h:55
dgCollision::m_signature
dgUnsigned32 m_signature
Definition: dgCollision.h:309
dgCollisionInfo::m_compoundCollision
dgCoumpountCollisionData m_compoundCollision
Definition: dgCollision.h:205
dgUnsigned32
unsigned dgUnsigned32
Definition: dgTypes.h:219
dgCollisionInfo::m_collisionType
dgInt32 m_collisionType
Definition: dgCollision.h:190
dgCollisionInfo::m_cylinder
dgCylinderData m_cylinder
Definition: dgCollision.h:198
m_nullCollision
Definition: dgCollision.h:65
dgCollisionConvex
Definition: dgCollisionConvex.h:42
dgCollisionInfo::dgBoxData::m_y
dgFloat32 m_y
Definition: dgCollision.h:89
dgCollisionInfo::dgCapsuleData::m_height
dgFloat32 m_height
Definition: dgCollision.h:122
dgCollisionInfo::dgBoxData::m_x
dgFloat32 m_x
Definition: dgCollision.h:88
dgCollisionInfo::dgTaperedCylinderData::m_radio0
dgFloat32 m_radio0
Definition: dgCollision.h:114
dgCollisionInfo::dgChamferCylinderData::m_height
dgFloat32 m_height
Definition: dgCollision.h:134
dgCollisionInfo::dgHeightMapCollisionData::m_atributes
dgInt8 * m_atributes
Definition: dgCollision.h:180
m_convexHullCollision
Definition: dgCollision.h:63
m_heightField
Definition: dgCollision.h:69
dgCollisionInfo::m_capsule
dgCapsuleData m_capsule
Definition: dgCollision.h:197
m_taperedCapsuleCollision
Definition: dgCollision.h:58
dgCollision
Definition: dgCollision.h:217
dgUnsigned16
unsigned short dgUnsigned16
Definition: dgTypes.h:216
dgCollisionInfo::dgHeightMapCollisionData::m_elevationDataType
dgInt32 m_elevationDataType
Definition: dgCollision.h:176
dgCollisionInfo::dgCylinderData::m_height
dgFloat32 m_height
Definition: dgCollision.h:101
dgCollisionInfo::dgHeightMapCollisionData::m_width
dgInt32 m_width
Definition: dgCollision.h:173
dgCollisionInfo::dgConvexHullData::m_faceCount
dgInt32 m_faceCount
Definition: dgCollision.h:141
dgMatrix
Definition: dgMatrix.h:40
dgMemoryAllocator
Definition: dgMemory.h:73
dgCollisionInfo::dgChamferCylinderData
Definition: dgCollision.h:131
dgCollisionInfo::dgSphereData::m_radius
dgFloat32 m_radius
Definition: dgCollision.h:95
m_chamferCylinderCollision
Definition: dgCollision.h:57
dgCollision::m_allocator
dgMemoryAllocator * m_allocator
Definition: dgCollision.h:311
dgWorld
Definition: dgWorld.h:129
dgCollisionInfo::m_sceneCollision
dgSceneData m_sceneCollision
Definition: dgCollision.h:208
dgCollisionInfo::dgConvexModifierData::m_child
dgCollision * m_child
Definition: dgCollision.h:147
dgCollision::GetSignature
dgUnsigned32 GetSignature() const
Definition: dgCollision.h:326
dgCollisionInfo::m_paramArray
dgFloat32 m_paramArray[32]
Definition: dgCollision.h:209
dgCollisionInfo::dgDeformableMeshData::m_vertexStrideInBytes
dgInt32 m_vertexStrideInBytes
Definition: dgCollision.h:166
dgCollisionInfo::dgCollisionBVHData::m_indexCount
dgInt32 m_indexCount
Definition: dgCollision.h:159
dgCollisionInfo::m_offsetMatrix
dgMatrix m_offsetMatrix
Definition: dgCollision.h:189
dgCollisionInfo::m_sphere
dgSphereData m_sphere
Definition: dgCollision.h:196
dgCollisionInfo::dgCollisionBVHData
Definition: dgCollision.h:156
dgCollisionConvexHull
Definition: dgCollisionConvexHull.h:28
dgCollision::Release
virtual dgInt32 Release() const
Definition: dgCollision.h:343
dgCollisionInfo::dgSceneData::m_childrenProxyCount
dgInt32 m_childrenProxyCount
Definition: dgCollision.h:186
dgCollisionInfo::dgChamferCylinderData::m_r
dgFloat32 m_r
Definition: dgCollision.h:133
dgCollisionInfo::m_taperedCylinder
dgTaperedCylinderData m_taperedCylinder
Definition: dgCollision.h:200
dgCollisionInfo::dgCylinderData
Definition: dgCollision.h:98
m_capsuleCollision
Definition: dgCollision.h:56
dgCollisionID
dgCollisionID
Definition: dgCollision.h:52
dgCollisionInfo::dgCoumpountCollisionData
Definition: dgCollision.h:150
dgCollision::GetConvexVertexCount
virtual dgInt32 GetConvexVertexCount() const
Definition: dgCollision.h:372
dgCollisionCompound
Definition: dgCollisionCompound.h:35
dgCollisionInfo::dgDeformableMeshData::m_triangleCount
dgInt32 m_triangleCount
Definition: dgCollision.h:165
dgCollision::SetSignature
void SetSignature(dgInt32 signature)
Definition: dgCollision.h:331
dgCollisionInfo::dgHeightMapCollisionData
Definition: dgCollision.h:171
dgCollision::GetAllocator
dgMemoryAllocator * GetAllocator() const
Definition: dgCollision.h:360
m_polygonCollision
Definition: dgCollision.h:77
dgCollisionInfo::dgDeformableMeshData::m_vertexCount
dgInt32 m_vertexCount
Definition: dgCollision.h:164