Files
bullet3/Demos3/GpuDemos/rigidbody/GpuConvexScene.h
erwin coumans 2793a174c6 added fracture scene .bullet file (doesn't work well yet)
added tetrahedral mesh test scene
expose b3Config as member variable for demos.
move a 'glFlush' out of the innerloop (render performance)
SSE -> SSE2 in premake
fix crash in broadphase (when no aabb's exist)
2013-07-30 12:37:16 -07:00

115 lines
2.0 KiB
C++

#ifndef GPU_CONVEX_SCENE_H
#define GPU_CONVEX_SCENE_H
#include "GpuRigidBodyDemo.h"
#include "Bullet3Common/b3AlignedObjectArray.h"
#include "Bullet3OpenCL/Raycast/b3RaycastInfo.h"
class GpuConvexScene : public GpuRigidBodyDemo
{
protected:
class GLPrimitiveRenderer* m_primRenderer;
class b3GpuRaycast* m_raycaster;
public:
GpuConvexScene() :m_primRenderer(0), m_raycaster(0)
{
}
virtual ~GpuConvexScene(){}
virtual const char* getName()
{
return "GRBConvex";
}
static GpuDemo* MyCreateFunc()
{
GpuDemo* demo = new GpuConvexScene;
return demo;
}
virtual void setupScene(const ConstructionInfo& ci);
virtual void destroyScene();
virtual int createDynamicsObjects(const ConstructionInfo& ci);
virtual int createDynamicsObjects2(const ConstructionInfo& ci,const float* vertices, int numVertices, const int* indices,int numIndices);
virtual void createStaticEnvironment(const ConstructionInfo& ci);
};
class GpuConvexPlaneScene : public GpuConvexScene
{
public:
GpuConvexPlaneScene(){}
virtual ~GpuConvexPlaneScene(){}
virtual const char* getName()
{
return "GRBConvexPlane";
}
static GpuDemo* MyCreateFunc()
{
GpuDemo* demo = new GpuConvexPlaneScene;
return demo;
}
virtual void createStaticEnvironment(const ConstructionInfo& ci);
};
class GpuBoxPlaneScene : public GpuConvexPlaneScene
{
public:
GpuBoxPlaneScene(){}
virtual ~GpuBoxPlaneScene(){}
virtual const char* getName()
{
return "GRBBoxPlane";
}
static GpuDemo* MyCreateFunc()
{
GpuDemo* demo = new GpuBoxPlaneScene;
return demo;
}
virtual int createDynamicsObjects(const ConstructionInfo& ci);
};
class GpuTetraScene : public GpuConvexScene
{
protected:
void createFromTetGenData(const char* ele,
const char* node,
const ConstructionInfo& ci);
public:
virtual const char* getName()
{
return "GpuTetraScene";
}
static GpuDemo* MyCreateFunc()
{
GpuDemo* demo = new GpuTetraScene;
return demo;
}
virtual int createDynamicsObjects(const ConstructionInfo& ci);
};
#endif //GPU_CONVEX_SCENE_H