add .bullet loader for GPU demo

This commit is contained in:
erwin coumans
2013-04-23 16:07:17 -07:00
parent 66e5dcf65a
commit f943204aa2
27 changed files with 7041 additions and 370 deletions

View File

@@ -0,0 +1,53 @@
#ifndef BULLET_DATA_EXTRACTOR_H
#define BULLET_DATA_EXTRACTOR_H
#include "Bullet3Serialize/Bullet2FileLoader/autogenerated/bullet2.h"
#include "Bullet3Common/b3AlignedObjectArray.h"
#include "Bullet3Common/b3Vector3.h"
class GLInstancingRenderer;
class b3GpuRigidBodyPipeline;
class b3GpuNarrowPhase;
void createScene(GLInstancingRenderer& renderer,b3GpuNarrowPhase& np, b3GpuRigidBodyPipeline& rbWorld, const char* fileName);
namespace bParse
{
class btBulletFile;
};
class btBulletDataExtractor
{
GLInstancingRenderer& m_renderer;
b3GpuNarrowPhase& m_np;
b3GpuRigidBodyPipeline& m_rbPipeline;
public:
b3AlignedObjectArray<struct InstanceGroup*> m_instanceGroups;
b3AlignedObjectArray<struct GraphicsShape*> m_graphicsShapes;
btBulletDataExtractor(GLInstancingRenderer& renderer, b3GpuNarrowPhase& np, b3GpuRigidBodyPipeline& rbPipeline);
virtual ~btBulletDataExtractor();
virtual void convertAllObjects(bParse::btBulletFile* bulletFile);
//return -1 for invalid
virtual int convertCollisionShape( Bullet::btCollisionShapeData* shapeData );
virtual int createPlaneShape( const Bullet::btVector3FloatData& planeNormal, float planeConstant, const Bullet::btVector3FloatData& localScaling);
virtual int createBoxShape( const Bullet::btVector3FloatData& halfDimensions, const Bullet::btVector3FloatData& localScaling, float collisionMargin);
virtual int createSphereShape( float radius, const Bullet::btVector3FloatData& localScaling, float collisionMargin);
static GraphicsShape* createGraphicsShapeFromConvexHull(const b3Vector3* tmpPoints, int numPoints);
static GraphicsShape* createGraphicsShapeFromWavefrontObj(class objLoader* obj);
};
#endif //BULLET_DATA_EXTRACTOR_H