#ifndef CONCAVE_SCENE_H #define CONCAVE_SCENE_H #include "GpuRigidBodyDemo.h" #include "Bullet3Common/b3Vector3.h" class ConcaveScene : public GpuRigidBodyDemo { public: ConcaveScene() {} virtual ~ConcaveScene() {} virtual const char* getName() { return "BoxTrimesh"; } static GpuDemo* MyCreateFunc() { GpuDemo* demo = new ConcaveScene; return demo; } virtual void setupScene(const ConstructionInfo& ci); virtual void createDynamicObjects(const ConstructionInfo& ci); virtual void createConcaveMesh(const ConstructionInfo& ci, const char* fileName, const b3Vector3& shift, const b3Vector3& scaling); }; class ConcaveSphereScene : public ConcaveScene { public: ConcaveSphereScene() {} virtual ~ConcaveSphereScene() {} virtual const char* getName() { return "SphereTrimesh"; } static GpuDemo* MyCreateFunc() { GpuDemo* demo = new ConcaveSphereScene; return demo; } virtual void setupScene(const ConstructionInfo& ci); virtual void createDynamicObjects(const ConstructionInfo& ci); }; class ConcaveCompoundScene : public ConcaveScene { public: ConcaveCompoundScene() {} virtual ~ConcaveCompoundScene() {} virtual const char* getName() { return "CompoundConcave"; } static GpuDemo* MyCreateFunc() { GpuDemo* demo = new ConcaveCompoundScene; return demo; } virtual void setupScene(const ConstructionInfo& ci); virtual void createDynamicObjects(const ConstructionInfo& ci); }; class ConcaveCompound2Scene : public ConcaveCompoundScene { public: ConcaveCompound2Scene() {} virtual ~ConcaveCompound2Scene() {} virtual const char* getName() { return "GRBConcave2Compound"; } static GpuDemo* MyCreateFunc() { GpuDemo* demo = new ConcaveCompound2Scene; return demo; } virtual void createDynamicObjects(const ConstructionInfo& ci); }; #endif //CONCAVE_SCENE_H