create some demos to compare MLCP solvers

This commit is contained in:
Erwin Coumans
2014-02-17 14:33:40 -08:00
parent 8a1b7ea92c
commit fabdf8b4a9
4 changed files with 191 additions and 96 deletions

View File

@@ -4,19 +4,46 @@
#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* MyCreateFunc(SimpleOpenGL3App* app)
static BulletDemoInterface* FeatherstoneCreateFunc(SimpleOpenGL3App* app)
{
return new HingeDemo(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);
HingeDemo(SimpleOpenGL3App* app, HINGE_CREATION_METHOD hingeMethod);
class btMultiBody* createFeatherstoneHinge(class btMultiBodyDynamicsWorld* world, const struct btMultiBodySettings2& settings);
virtual void initPhysics();
virtual void exitPhysics();