Files
bullet3/Demos3/bullet2/BasicDemo/HingeDemo.h
2014-02-17 14:33:40 -08:00

56 lines
1.1 KiB
C++

#ifndef HINGE_DEMO_H
#define HINGE_DEMO_H
#include "BasicDemo.h"
enum HINGE_CREATION_METHOD
{
FEATHERSTONE_HINGE=1,
DANTZIG_HINGE,
LEMKE_HINGE,
PGS_HINGE,
INERTIA_HINGE
};
class HingeDemo : public BasicDemo
{
int m_hingeMethod;
public:
static BulletDemoInterface* FeatherstoneCreateFunc(SimpleOpenGL3App* app)
{
return new HingeDemo(app, FEATHERSTONE_HINGE);
}
static BulletDemoInterface* DantzigCreateFunc(SimpleOpenGL3App* app)
{
return new HingeDemo(app, DANTZIG_HINGE);
}
static BulletDemoInterface* LemkeCreateFunc(SimpleOpenGL3App* app)
{
return new HingeDemo(app, LEMKE_HINGE);
}
static BulletDemoInterface* PGSCreateFunc(SimpleOpenGL3App* app)
{
return new HingeDemo(app, PGS_HINGE);
}
static BulletDemoInterface* InertiaCreateFunc(SimpleOpenGL3App* app)
{
return new HingeDemo(app, INERTIA_HINGE);
}
HingeDemo(SimpleOpenGL3App* app, HINGE_CREATION_METHOD hingeMethod);
class btMultiBody* createFeatherstoneHinge(class btMultiBodyDynamicsWorld* world, const struct btMultiBodySettings2& settings);
virtual void initPhysics();
virtual void exitPhysics();
virtual void renderScene();
};
#endif //HINGE_DEMO_H