fixes_dialogmenu_capsule.patch

This commit is contained in:
erwin.coumans
2010-02-18 06:16:35 +00:00
parent 820119a6df
commit 5c5ce9b4b3
3 changed files with 19 additions and 2 deletions

View File

@@ -75,7 +75,9 @@ void CharacterDemo::initPhysics()
btTransform startTransform;
startTransform.setIdentity ();
startTransform.setOrigin (btVector3(0.0, 4.0, 0.0));
//startTransform.setOrigin (btVector3(0.0, 4.0, 0.0));
startTransform.setOrigin (btVector3(10.210098,-1.6433364,16.453260));
m_ghostObject = new btPairCachingGhostObject();
m_ghostObject->setWorldTransform(startTransform);
@@ -340,7 +342,8 @@ void CharacterDemo::clientResetScene()
m_character->reset ();
///WTF
m_character->warp (btVector3(0, -2.0, 0.));
m_character->warp (btVector3(10.210001,-2.0306311,16.576973));
}
void CharacterDemo::specialKeyboardUp(int key, int x, int y)

View File

@@ -236,6 +236,7 @@ GL_SliderControl* GL_DialogDynamicsWorld::createSlider(GL_DialogWindow* dialog,
body->setAngularFactor(btVector3(0,0,0));
m_dynamicsWorld->addRigidBody(body);
body->setCollisionFlags(body->getFlags()|btCollisionObject::CF_NO_CONTACT_RESPONSE);
btRigidBody* dialogBody = btRigidBody::upcast(dialog->getCollisionObject());
btAssert(dialogBody);
@@ -299,6 +300,7 @@ GL_ToggleControl* GL_DialogDynamicsWorld::createToggle(GL_DialogWindow* dialog,
body->setAngularFactor(btVector3(0,0,0));
m_dynamicsWorld->addRigidBody(body);
body->setCollisionFlags(body->getFlags()|btCollisionObject::CF_NO_CONTACT_RESPONSE);
btRigidBody* dialogBody = btRigidBody::upcast(dialog->getCollisionObject());
btAssert(dialogBody);

View File

@@ -43,6 +43,18 @@ public:
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;
virtual void setMargin(btScalar collisionMargin)
{
//correct the m_implicitShapeDimensions for the margin
btVector3 oldMargin(getMargin(),getMargin(),getMargin());
btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;
btConvexInternalShape::setMargin(collisionMargin);
btVector3 newMargin(getMargin(),getMargin(),getMargin());
m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin;
}
virtual void getAabb (const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const
{
btVector3 halfExtents(getRadius(),getRadius(),getRadius());