59 void* dummy = (
void*)(
m_box_set.getPrimitiveManager());
70 void* dummy = (
void*)(
m_box_set.getPrimitiveManager());
76#define CALC_EXACT_INERTIA 1
81#ifdef CALC_EXACT_INERTIA
82 inertia.setValue(0.f, 0.f, 0.f);
113 inertia = scaledmass * (
btVector3(y2 + z2, x2 + z2, x2 + y2));
123#ifdef CALC_EXACT_INERTIA
124 inertia.setValue(0.f, 0.f, 0.f);
134 inertia += pointintertia;
149 inertia = scaledmass * (
btVector3(y2 + z2, x2 + z2, x2 + y2));
158#ifdef CALC_EXACT_INERTIA
159 inertia.setValue(0.f, 0.f, 0.f);
168 inertia += partinertia;
183 inertia = scaledmass * (
btVector3(y2 + z2, x2 + z2, x2 + y2));
199 m_box_set.rayQuery(rayDir, rayFrom, collided);
201 if (collided.
size() == 0)
209 int i = collided.
size();
228 if (collided.
size() == 0)
236 int i = collided.
size();
250 m_mesh_parts[
i]->processAllTriangles(callback, aabbMin, aabbMax);
259 m_mesh_parts[
i]->processAllTrianglesRay(callback, rayFrom, rayTo);
278 return "btGImpactMeshShapeData";
btScalar m_collisionMargin
SIMD_FORCE_INLINE btVector3 gim_inertia_add_transformed(const btVector3 &source_inertia, const btVector3 &added_inertia, const btTransform &transform)
SIMD_FORCE_INLINE btVector3 gim_get_point_inertia(const btVector3 &point, btScalar mass)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...
SIMD_FORCE_INLINE int size() const
return the number of elements in the array
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const
Calculates the exact inertia tensor for this shape.
btAlignedObjectArray< btTransform > m_childTransforms
btAlignedObjectArray< btCollisionShape * > m_childShapes
virtual bool childrenHasTransform() const
if true, then its children must get transforms.
virtual int getNumChildShapes() const
Gets the number of children.
Trimesh primitive manager.
virtual void processAllTriangles(btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
Function for retrieve triangles.
SIMD_FORCE_INLINE int getPart() const
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const
SIMD_FORCE_INLINE int getVertexCount() const
SIMD_FORCE_INLINE void getVertex(int vertex_index, btVector3 &vertex) const
virtual void processAllTrianglesRay(btTriangleCallback *callback, const btVector3 &rayFrom, const btVector3 &rayTo) const
Function for retrieve triangles.
TrimeshPrimitiveManager m_primitive_manager
virtual void lockChildShapes() const
call when reading child shapes
virtual ~btGImpactMeshShapePart()
virtual void unlockChildShapes() const
int getMeshPartCount() const
virtual void rayTest(const btVector3 &rayFrom, const btVector3 &rayTo, btCollisionWorld::RayResultCallback &resultCallback) const
virtual method for ray collision
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const
btGImpactMeshShapePart * getMeshPart(int index)
virtual void processAllTriangles(btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
Function for retrieve triangles.
virtual void processAllTrianglesRay(btTriangleCallback *callback, const btVector3 &rayFrom, const btVector3 &rayTo) const
Function for retrieve triangles.
virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const
Base method for determinig which kind of GIMPACT shape we get.
btAlignedObjectArray< btGImpactMeshShapePart * > m_mesh_parts
virtual const char * serialize(void *dataBuffer, btSerializer *serializer) const
fills the dataBuffer and returns the struct name (and 0 on failure)
SIMD_FORCE_INLINE void getPrimitiveTriangle(int index, btPrimitiveTriangle &triangle) const
if this trimesh
virtual void lockChildShapes() const
call when reading child shapes
btGImpactBoxSet m_box_set
virtual void unlockChildShapes() const
virtual void processTriangle(btVector3 *triangle, int partId, int triangleIndex)=0
RayResultCallback is used to report new raycast results.
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
btCollisionShapeData m_collisionShapeData
btStridingMeshInterfaceData m_meshInterface
btVector3FloatData m_localScaling