added btGetVersion(), return integer without the fraction: for example 2.64 returns 264.

moved more demos into AllBulletDemos
This commit is contained in:
ejcoumans
2007-10-25 04:37:48 +00:00
parent 7c5fbb9fbd
commit 5f5dfcf6b8
19 changed files with 138 additions and 76 deletions

View File

@@ -22,6 +22,10 @@ subject to the following restrictions:
#include "../ConvexDecompositionDemo/ConvexDecompositionDemo.h" #include "../ConvexDecompositionDemo/ConvexDecompositionDemo.h"
#include "../RagdollDemo/RagdollDemo.h" #include "../RagdollDemo/RagdollDemo.h"
#include "../GimpactTestDemo/GimpactTestDemo.h" #include "../GimpactTestDemo/GimpactTestDemo.h"
#include "../Raytracer/Raytracer.h"
#include "../GjkConvexCastDemo/LinearConvexCastDemo.h"
#include "../VehicleDemo/VehicleDemo.h"
#include "../ConstraintDemo/ConstraintDemo.h"
btDemoEntry g_demoEntries[] = btDemoEntry g_demoEntries[] =
@@ -33,6 +37,12 @@ btDemoEntry g_demoEntries[] =
{"BspDemo", BspDemo::Create}, {"BspDemo", BspDemo::Create},
{"ConcaveDemo",ConcaveDemo::Create}, {"ConcaveDemo",ConcaveDemo::Create},
{"Gimpact Test", GimpactConcaveDemo::Create}, {"Gimpact Test", GimpactConcaveDemo::Create},
{"Raytracer Test",Raytracer::Create},
{"GjkConvexCast",LinearConvexCastDemo::Create},
{"VehicleDemo",VehicleDemo::Create},
{"ConstraintDemo",ConstraintDemo::Create},
{0, 0} {0, 0}
}; };

View File

@@ -11,4 +11,8 @@ FrameWorkDemo AllBulletDemos :
../ConvexDecompositionDemo/ConvexDecompositionDemo.cpp ../ConvexDecompositionDemo/ConvexDecompositionDemo.cpp
../RagdollDemo/RagdollDemo.cpp ../RagdollDemo/RagdollDemo.cpp
../GimpactTestDemo/GimpactTestDemo.cpp ../GimpactTestDemo/GimpactTestDemo.cpp
../Raytracer/Raytracer.cpp
../GjkConvexCastDemo/LinearConvexCastDemo.cpp
../VehicleDemo/VehicleDemo.cpp
../ConstraintDemo/ConstraintDemo.cpp
; ;

View File

@@ -160,6 +160,8 @@ void MouseMotion(int x, int y)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int bulletVersion = btGetVersion();
printf("Bullet version %d\n",bulletVersion);
glutInit(&argc, argv); glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE |GLUT_DEPTH); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE |GLUT_DEPTH);

View File

@@ -32,19 +32,7 @@ const int numObjects = 3;
#define CUBE_HALF_EXTENTS 1.f #define CUBE_HALF_EXTENTS 1.f
GLDebugDrawer debugDrawer;
int main(int argc,char** argv)
{
ConstraintDemo* constraintDemo = new ConstraintDemo();
constraintDemo->initPhysics();
constraintDemo->setCameraDistance(26.f);
return glutmain(argc, argv,640,480,"Constraint Demo. http://www.continuousphysics.com/Bullet/phpBB2/",constraintDemo);
}
btTransform sliderTransform; btTransform sliderTransform;
btVector3 lowerSliderLimit = btVector3(-10,0,0); btVector3 lowerSliderLimit = btVector3(-10,0,0);
@@ -88,7 +76,6 @@ void ConstraintDemo::initPhysics()
//m_dynamicsWorld->setGravity(btVector3(0,0,0)); //m_dynamicsWorld->setGravity(btVector3(0,0,0));
m_dynamicsWorld->setDebugDrawer(&debugDrawer);
btCollisionShape* shape = new btBoxShape(btVector3(CUBE_HALF_EXTENTS,CUBE_HALF_EXTENTS,CUBE_HALF_EXTENTS)); btCollisionShape* shape = new btBoxShape(btVector3(CUBE_HALF_EXTENTS,CUBE_HALF_EXTENTS,CUBE_HALF_EXTENTS));
btTransform trans; btTransform trans;

View File

@@ -28,6 +28,13 @@ class ConstraintDemo : public DemoApplication
virtual void displayCallback(); virtual void displayCallback();
static DemoApplication* Create()
{
ConstraintDemo* demo = new ConstraintDemo();
demo->myinit();
demo->initPhysics();
return demo;
}
}; };

View File

@@ -0,0 +1,15 @@
#include "ConstraintDemo.h"
#include "GlutStuff.h"
int main(int argc,char** argv)
{
ConstraintDemo* constraintDemo = new ConstraintDemo();
constraintDemo->initPhysics();
constraintDemo->setCameraDistance(26.f);
return glutmain(argc, argv,640,480,"Constraint Demo. http://www.continuousphysics.com/Bullet/phpBB2/",constraintDemo);
}

View File

@@ -383,6 +383,9 @@ btCollisionShape * GimpactConcaveDemo::createBunnyShape()
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void GimpactConcaveDemo::initPhysics() void GimpactConcaveDemo::initPhysics()
{ {
gContactAddedCallback = CustomMaterialCombinerCallback;
/// Init Bullet /// Init Bullet
m_collisionConfiguration = new btDefaultCollisionConfiguration(); m_collisionConfiguration = new btDefaultCollisionConfiguration();

View File

@@ -42,7 +42,7 @@ class btDefaultCollisionConfiguration;
class btConstraintSolver;
struct btCollisionAlgorithmCreateFunc; struct btCollisionAlgorithmCreateFunc;
///GimpactConcaveDemo shows usage of static concave triangle meshes ///GimpactConcaveDemo shows usage of static concave triangle meshes
@@ -67,6 +67,8 @@ public:
virtual ~GimpactConcaveDemo() virtual ~GimpactConcaveDemo()
{ {
delete m_dynamicsWorld;
delete m_indexVertexArrays; delete m_indexVertexArrays;
delete m_trimeshShape; delete m_trimeshShape;
@@ -80,7 +82,6 @@ public:
delete m_broadphase; delete m_broadphase;
delete m_constraintSolver; delete m_constraintSolver;
delete m_dynamicsWorld;
} }
void initGImpactCollision(); void initGImpactCollision();

View File

@@ -1,11 +1,10 @@
#include "GimpactConcaveDemo.h" #include "GimpactTestDemo.h"
#include "GlutStuff.h" #include "GlutStuff.h"
//################################## main ##################################### //################################## main #####################################
int main(int argc,char** argv) int main(int argc,char** argv)
{ {
gContactAddedCallback = CustomMaterialCombinerCallback;
GimpactConcaveDemo* concaveDemo = new GimpactConcaveDemo(); /// This will not be Deleted!!! GimpactConcaveDemo* concaveDemo = new GimpactConcaveDemo(); /// This will not be Deleted!!!
concaveDemo->initPhysics(); concaveDemo->initPhysics();

View File

@@ -44,31 +44,19 @@
#include "GlutStuff.h" #include "GlutStuff.h"
float yaw=0.f,pitch=0.f,roll=0.f; static float yaw=0.f,pitch=0.f,roll=0.f;
const int maxNumObjects = 4; static const int maxNumObjects = 4;
const int numObjects = 2; static const int numObjects = 2;
btPolyhedralConvexShape* shapePtr[maxNumObjects]; static btPolyhedralConvexShape* shapePtr[maxNumObjects];
btTransform tr[numObjects]; static btTransform tr[numObjects];
int screenWidth = 640;
int screenHeight = 480;
void DrawRasterizerLine(float const* , float const*, int) void DrawRasterizerLine(float const* , float const*, int)
{ {
} }
int main(int argc,char** argv)
{
LinearConvexCastDemo* linearCastDemo = new LinearConvexCastDemo();
linearCastDemo->initPhysics();
return glutmain(argc, argv,screenWidth,screenHeight,"Linear Convex Cast Demo",linearCastDemo);
}
void LinearConvexCastDemo::initPhysics() void LinearConvexCastDemo::initPhysics()
{ {

View File

@@ -28,6 +28,13 @@ class LinearConvexCastDemo : public DemoApplication
virtual void displayCallback(); virtual void displayCallback();
static DemoApplication* Create()
{
LinearConvexCastDemo* demo = new LinearConvexCastDemo();
demo->myinit();
demo->initPhysics();
return demo;
}
}; };

View File

@@ -0,0 +1,17 @@
#include "LinearConvexCastDemo.h"
#include "GlutStuff.h"
int screenWidth = 640;
int screenHeight = 480;
int main(int argc,char** argv)
{
LinearConvexCastDemo* linearCastDemo = new LinearConvexCastDemo();
linearCastDemo->initPhysics();
return glutmain(argc, argv,screenWidth,screenHeight,"Linear Convex Cast Demo",linearCastDemo);
}

View File

@@ -99,24 +99,24 @@ Very basic raytracer, rendering into a texture.
btVoronoiSimplexSolver simplexSolver; static btVoronoiSimplexSolver simplexSolver;
float yaw=0.f,pitch=0.f,roll=0.f; static float yaw=0.f,pitch=0.f,roll=0.f;
const int maxNumObjects = 4; static const int maxNumObjects = 4;
const int numObjects = 1; static const int numObjects = 1;
/// simplex contains the vertices, and some extra code to draw and debug /// simplex contains the vertices, and some extra code to draw and debug
GL_Simplex1to4 simplex; static GL_Simplex1to4 simplex;
btCollisionShape* shapePtr[maxNumObjects]; static btCollisionShape* shapePtr[maxNumObjects];
btTransform transforms[maxNumObjects]; static btTransform transforms[maxNumObjects];
renderTexture* raytracePicture = 0; renderTexture* raytracePicture = 0;
//this applies to the raytracer virtual screen/image buffer //this applies to the raytracer virtual screen/image buffer
int screenWidth = 128; static int screenWidth = 128;
//float aspectRatio = (3.f/4.f); //float aspectRatio = (3.f/4.f);
int screenHeight = 128;//screenWidth * aspectRatio; static int screenHeight = 128;//screenWidth * aspectRatio;
GLuint glTextureId; GLuint glTextureId;
btSphereShape mySphere(1); btSphereShape mySphere(1);
@@ -127,7 +127,6 @@ btCompoundShape compound;
btMinkowskiSumShape myMink(&myCylinder,&myBox); btMinkowskiSumShape myMink(&myCylinder,&myBox);
GLDebugDrawer debugDrawer;
@@ -135,16 +134,6 @@ GLDebugDrawer debugDrawer;
/// ///
/// ///
/// ///
int main(int argc,char** argv)
{
Raytracer* raytraceDemo = new Raytracer();
raytraceDemo->initPhysics();
raytraceDemo->setCameraDistance(6.f);
return glutmain(argc, argv,640,640,"Bullet GJK Implicit Shape Raytracer Demo",raytraceDemo);
}
void Raytracer::initPhysics() void Raytracer::initPhysics()
{ {
@@ -502,8 +491,6 @@ void Raytracer::displayCallback()
{ {
btVector3 aabbMin,aabbMax; btVector3 aabbMin,aabbMax;
shapePtr[i]->getAabb(transforms[i],aabbMin,aabbMax); shapePtr[i]->getAabb(transforms[i],aabbMin,aabbMax);
debugDrawer.setDebugMode(1);
debugDrawer.drawAabb(aabbMin,aabbMax,btVector3(255,0,0));
} }
} }

View File

@@ -28,7 +28,13 @@ class Raytracer : public DemoApplication
virtual void displayCallback(); virtual void displayCallback();
static DemoApplication* Create()
{
Raytracer* demo = new Raytracer();
demo->myinit();
demo->initPhysics();
return demo;
}
}; };
#endif //RAYTRACER_H #endif //RAYTRACER_H

16
Demos/Raytracer/main.cpp Normal file
View File

@@ -0,0 +1,16 @@
#include "Raytracer.h"
#include "GlutStuff.h"
int main(int argc,char** argv)
{
Raytracer* raytraceDemo = new Raytracer();
raytraceDemo->initPhysics();
raytraceDemo->setCameraDistance(6.f);
return glutmain(argc, argv,640,640,"Bullet GJK Implicit Shape Raytracer Demo",raytraceDemo);
}

View File

@@ -83,17 +83,6 @@ btScalar suspensionRestLength(0.6);
GLDebugDrawer debugDrawer;
int main(int argc,char** argv)
{
VehicleDemo* vehicleDemo = new VehicleDemo;
vehicleDemo->setupPhysics();
return glutmain(argc, argv,640,480,"Bullet Vehicle Demo. http://www.continuousphysics.com/Bullet/phpBB2/", vehicleDemo);
}
VehicleDemo::VehicleDemo() VehicleDemo::VehicleDemo()
: :
@@ -106,7 +95,7 @@ m_maxCameraDistance(10.f)
m_cameraPosition = btVector3(30,30,30); m_cameraPosition = btVector3(30,30,30);
} }
void VehicleDemo::setupPhysics() void VehicleDemo::initPhysics()
{ {
extern btScalar gJitterVelocityDampingFactor; extern btScalar gJitterVelocityDampingFactor;
@@ -128,7 +117,6 @@ void VehicleDemo::setupPhysics()
#ifdef FORCE_ZAXIS_UP #ifdef FORCE_ZAXIS_UP
m_dynamicsWorld->setGravity(btVector3(0,0,-10)); m_dynamicsWorld->setGravity(btVector3(0,0,-10));
#endif #endif
m_dynamicsWorld->setDebugDrawer(&debugDrawer);
//m_dynamicsWorld->setGravity(btVector3(0,0,0)); //m_dynamicsWorld->setGravity(btVector3(0,0,0));
btTransform tr; btTransform tr;
@@ -361,7 +349,6 @@ void VehicleDemo::renderme()
updateCamera(); updateCamera();
debugDrawer.setDebugMode(getDebugMode());
btScalar m[16]; btScalar m[16];
int i; int i;

View File

@@ -55,7 +55,15 @@ class VehicleDemo : public DemoApplication
void renderme(); void renderme();
void setupPhysics(); void initPhysics();
static DemoApplication* Create()
{
VehicleDemo* demo = new VehicleDemo();
demo->myinit();
demo->initPhysics();
return demo;
}
}; };
#endif //VEHICLE_DEMO_H #endif //VEHICLE_DEMO_H

View File

@@ -0,0 +1,15 @@
#include "VehicleDemo.h"
#include "GlutStuff.h"
int main(int argc,char** argv)
{
VehicleDemo* vehicleDemo = new VehicleDemo;
vehicleDemo->initPhysics();
return glutmain(argc, argv,640,480,"Bullet Vehicle Demo. http://www.continuousphysics.com/Bullet/phpBB2/", vehicleDemo);
}

View File

@@ -24,7 +24,10 @@ subject to the following restrictions:
#include <float.h> #include <float.h>
inline int btGetVersion()
{
return 264;
}
#ifdef WIN32 #ifdef WIN32