merged most of the changes from the branch into trunk, except for COLLADA, libxml and glut glitches.
Still need to verify to make sure no unwanted renaming is introduced.
This commit is contained in:
@@ -23,7 +23,7 @@ subject to the following restrictions:
|
||||
//include common Bullet Collision Detection headerfiles
|
||||
#include "btBulletCollisionCommon.h"
|
||||
|
||||
#include "LinearMath/GenIDebugDraw.h"
|
||||
#include "LinearMath/btIDebugDraw.h"
|
||||
#include "GL_ShapeDrawer.h"
|
||||
#include "CollisionInterfaceDemo.h"
|
||||
#include "GlutStuff.h"
|
||||
@@ -36,8 +36,8 @@ const int numObjects = 2;
|
||||
GL_Simplex1to4 simplex;
|
||||
|
||||
|
||||
CollisionObject objects[maxNumObjects];
|
||||
CollisionWorld* collisionWorld = 0;
|
||||
btCollisionObject objects[maxNumObjects];
|
||||
btCollisionWorld* collisionWorld = 0;
|
||||
|
||||
int screenWidth = 640;
|
||||
int screenHeight = 480;
|
||||
@@ -57,40 +57,40 @@ int main(int argc,char** argv)
|
||||
void CollisionInterfaceDemo::initPhysics()
|
||||
{
|
||||
|
||||
m_debugMode |= IDebugDraw::DBG_DrawWireframe;
|
||||
m_debugMode |= btIDebugDraw::DBG_DrawWireframe;
|
||||
|
||||
SimdMatrix3x3 basisA;
|
||||
btMatrix3x3 basisA;
|
||||
basisA.setIdentity();
|
||||
|
||||
SimdMatrix3x3 basisB;
|
||||
btMatrix3x3 basisB;
|
||||
basisB.setIdentity();
|
||||
|
||||
objects[0].m_worldTransform.setBasis(basisA);
|
||||
objects[1].m_worldTransform.setBasis(basisB);
|
||||
|
||||
//SimdPoint3 points0[3]={SimdPoint3(1,0,0),SimdPoint3(0,1,0),SimdPoint3(0,0,1)};
|
||||
//SimdPoint3 points1[5]={SimdPoint3(1,0,0),SimdPoint3(0,1,0),SimdPoint3(0,0,1),SimdPoint3(0,0,-1),SimdPoint3(-1,-1,0)};
|
||||
//btPoint3 points0[3]={btPoint3(1,0,0),btPoint3(0,1,0),btPoint3(0,0,1)};
|
||||
//btPoint3 points1[5]={btPoint3(1,0,0),btPoint3(0,1,0),btPoint3(0,0,1),btPoint3(0,0,-1),btPoint3(-1,-1,0)};
|
||||
|
||||
BoxShape* boxA = new BoxShape(SimdVector3(1,1,1));
|
||||
BoxShape* boxB = new BoxShape(SimdVector3(0.5,0.5,0.5));
|
||||
btBoxShape* boxA = new btBoxShape(btVector3(1,1,1));
|
||||
btBoxShape* boxB = new btBoxShape(btVector3(0.5,0.5,0.5));
|
||||
//ConvexHullShape hullA(points0,3);
|
||||
//hullA.setLocalScaling(SimdVector3(3,3,3));
|
||||
//hullA.setLocalScaling(btVector3(3,3,3));
|
||||
//ConvexHullShape hullB(points1,4);
|
||||
//hullB.setLocalScaling(SimdVector3(4,4,4));
|
||||
//hullB.setLocalScaling(btVector3(4,4,4));
|
||||
|
||||
objects[0].m_collisionShape = boxA;//&hullA;
|
||||
objects[1].m_collisionShape = boxB;//&hullB;
|
||||
|
||||
CollisionDispatcher* dispatcher = new CollisionDispatcher;
|
||||
SimdVector3 worldAabbMin(-1000,-1000,-1000);
|
||||
SimdVector3 worldAabbMax(1000,1000,1000);
|
||||
btCollisionDispatcher* dispatcher = new btCollisionDispatcher;
|
||||
btVector3 worldAabbMin(-1000,-1000,-1000);
|
||||
btVector3 worldAabbMax(1000,1000,1000);
|
||||
|
||||
AxisSweep3* broadphase = new AxisSweep3(worldAabbMin,worldAabbMax);
|
||||
btAxisSweep3* broadphase = new btAxisSweep3(worldAabbMin,worldAabbMax);
|
||||
|
||||
//SimpleBroadphase is a brute force alternative, performing N^2 aabb overlap tests
|
||||
//SimpleBroadphase* broadphase = new SimpleBroadphase;
|
||||
//SimpleBroadphase* broadphase = new btSimpleBroadphase;
|
||||
|
||||
collisionWorld = new CollisionWorld(dispatcher,broadphase);
|
||||
collisionWorld = new btCollisionWorld(dispatcher,broadphase);
|
||||
|
||||
collisionWorld->AddCollisionObject(&objects[0]);
|
||||
collisionWorld->AddCollisionObject(&objects[1]);
|
||||
@@ -107,8 +107,8 @@ void CollisionInterfaceDemo::clientMoveAndDisplay()
|
||||
}
|
||||
|
||||
|
||||
static VoronoiSimplexSolver sGjkSimplexSolver;
|
||||
SimplexSolverInterface& gGjkSimplexSolver = sGjkSimplexSolver;
|
||||
static btVoronoiSimplexSolver sGjkSimplexSolver;
|
||||
btSimplexSolverInterface& gGjkSimplexSolver = sGjkSimplexSolver;
|
||||
|
||||
|
||||
|
||||
@@ -127,21 +127,21 @@ void CollisionInterfaceDemo::displayCallback(void) {
|
||||
int numManifolds = collisionWorld->GetDispatcher()->GetNumManifolds();
|
||||
for (i=0;i<numManifolds;i++)
|
||||
{
|
||||
PersistentManifold* contactManifold = collisionWorld->GetDispatcher()->GetManifoldByIndexInternal(i);
|
||||
CollisionObject* obA = static_cast<CollisionObject*>(contactManifold->GetBody0());
|
||||
CollisionObject* obB = static_cast<CollisionObject*>(contactManifold->GetBody1());
|
||||
btPersistentManifold* contactManifold = collisionWorld->GetDispatcher()->GetManifoldByIndexInternal(i);
|
||||
btCollisionObject* obA = static_cast<btCollisionObject*>(contactManifold->GetBody0());
|
||||
btCollisionObject* obB = static_cast<btCollisionObject*>(contactManifold->GetBody1());
|
||||
contactManifold->RefreshContactPoints(obA->m_worldTransform,obB->m_worldTransform);
|
||||
|
||||
int numContacts = contactManifold->GetNumContacts();
|
||||
for (int j=0;j<numContacts;j++)
|
||||
{
|
||||
ManifoldPoint& pt = contactManifold->GetContactPoint(j);
|
||||
btManifoldPoint& pt = contactManifold->GetContactPoint(j);
|
||||
|
||||
glBegin(GL_LINES);
|
||||
glColor3f(1, 0, 1);
|
||||
|
||||
SimdVector3 ptA = pt.GetPositionWorldOnA();
|
||||
SimdVector3 ptB = pt.GetPositionWorldOnB();
|
||||
btVector3 ptA = pt.GetPositionWorldOnA();
|
||||
btVector3 ptB = pt.GetPositionWorldOnB();
|
||||
|
||||
glVertex3d(ptA.x(),ptA.y(),ptA.z());
|
||||
glVertex3d(ptB.x(),ptB.y(),ptB.z());
|
||||
@@ -162,14 +162,14 @@ void CollisionInterfaceDemo::displayCallback(void) {
|
||||
{
|
||||
|
||||
objects[i].m_worldTransform.getOpenGLMatrix( m );
|
||||
GL_ShapeDrawer::DrawOpenGL(m,objects[i].m_collisionShape,SimdVector3(1,1,1),getDebugMode());
|
||||
GL_ShapeDrawer::DrawOpenGL(m,objects[i].m_collisionShape,btVector3(1,1,1),getDebugMode());
|
||||
|
||||
}
|
||||
|
||||
|
||||
SimdQuaternion orn;
|
||||
btQuaternion orn;
|
||||
orn.setEuler(yaw,pitch,roll);
|
||||
objects[1].m_worldTransform.setOrigin(objects[1].m_worldTransform.getOrigin()+SimdVector3(0,-0.01,0));
|
||||
objects[1].m_worldTransform.setOrigin(objects[1].m_worldTransform.getOrigin()+btVector3(0,-0.01,0));
|
||||
|
||||
objects[0].m_worldTransform.setRotation(orn);
|
||||
|
||||
@@ -182,8 +182,8 @@ void CollisionInterfaceDemo::displayCallback(void) {
|
||||
|
||||
void CollisionInterfaceDemo::clientResetScene()
|
||||
{
|
||||
objects[0].m_worldTransform.setOrigin(SimdVector3(0.0f,3.f,0.f));
|
||||
objects[1].m_worldTransform.setOrigin(SimdVector3(0.0f,9.f,0.f));
|
||||
objects[0].m_worldTransform.setOrigin(btVector3(0.0f,3.f,0.f));
|
||||
objects[1].m_worldTransform.setOrigin(btVector3(0.0f,9.f,0.f));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user