1 #ifndef CONCAVE_SCENE_H
2 #define CONCAVE_SCENE_H
3 
4 #include "GpuRigidBodyDemo.h"
5 #include "Bullet3Common/b3Vector3.h"
6 
7 class ConcaveScene : public GpuRigidBodyDemo
8 {
9 public:
ConcaveScene()10 	ConcaveScene() {}
~ConcaveScene()11 	virtual ~ConcaveScene() {}
getName()12 	virtual const char* getName()
13 	{
14 		return "BoxTrimesh";
15 	}
16 
MyCreateFunc()17 	static GpuDemo* MyCreateFunc()
18 	{
19 		GpuDemo* demo = new ConcaveScene;
20 		return demo;
21 	}
22 
23 	virtual void setupScene(const ConstructionInfo& ci);
24 
25 	virtual void createDynamicObjects(const ConstructionInfo& ci);
26 
27 	virtual void createConcaveMesh(const ConstructionInfo& ci, const char* fileName, const b3Vector3& shift, const b3Vector3& scaling);
28 };
29 
30 class ConcaveSphereScene : public ConcaveScene
31 {
32 public:
ConcaveSphereScene()33 	ConcaveSphereScene() {}
~ConcaveSphereScene()34 	virtual ~ConcaveSphereScene() {}
getName()35 	virtual const char* getName()
36 	{
37 		return "SphereTrimesh";
38 	}
39 
MyCreateFunc()40 	static GpuDemo* MyCreateFunc()
41 	{
42 		GpuDemo* demo = new ConcaveSphereScene;
43 		return demo;
44 	}
45 
46 	virtual void setupScene(const ConstructionInfo& ci);
47 
48 	virtual void createDynamicObjects(const ConstructionInfo& ci);
49 };
50 
51 class ConcaveCompoundScene : public ConcaveScene
52 {
53 public:
ConcaveCompoundScene()54 	ConcaveCompoundScene() {}
~ConcaveCompoundScene()55 	virtual ~ConcaveCompoundScene() {}
getName()56 	virtual const char* getName()
57 	{
58 		return "CompoundConcave";
59 	}
60 
MyCreateFunc()61 	static GpuDemo* MyCreateFunc()
62 	{
63 		GpuDemo* demo = new ConcaveCompoundScene;
64 		return demo;
65 	}
66 
67 	virtual void setupScene(const ConstructionInfo& ci);
68 
69 	virtual void createDynamicObjects(const ConstructionInfo& ci);
70 };
71 
72 class ConcaveCompound2Scene : public ConcaveCompoundScene
73 {
74 public:
ConcaveCompound2Scene()75 	ConcaveCompound2Scene() {}
~ConcaveCompound2Scene()76 	virtual ~ConcaveCompound2Scene() {}
getName()77 	virtual const char* getName()
78 	{
79 		return "GRBConcave2Compound";
80 	}
81 
MyCreateFunc()82 	static GpuDemo* MyCreateFunc()
83 	{
84 		GpuDemo* demo = new ConcaveCompound2Scene;
85 		return demo;
86 	}
87 	virtual void createDynamicObjects(const ConstructionInfo& ci);
88 };
89 
90 #endif  //CONCAVE_SCENE_H
91