From 8fff5c54e9dfec25641efec13acf2d67939cafa1 Mon Sep 17 00:00:00 2001 From: johnmccutchan Date: Wed, 30 Jan 2008 01:52:07 +0000 Subject: [PATCH] Added name fields to Collision Object and Shape. Added name field to Typed Constraint. Added accessor for gravity in dynamics world. --- .../CollisionDispatch/btCollisionObject.cpp | 1 + .../CollisionDispatch/btCollisionObject.h | 15 +++++++++++++++ .../CollisionShapes/btCollisionShape.h | 12 +++++++++++- .../ConstraintSolver/btTypedConstraint.h | 11 +++++++++++ .../Dynamics/btDiscreteDynamicsWorld.cpp | 5 +++++ .../Dynamics/btDiscreteDynamicsWorld.h | 1 + src/BulletDynamics/Dynamics/btDynamicsWorld.h | 1 + src/BulletDynamics/Dynamics/btRigidBody.h | 1 - .../Dynamics/btSimpleDynamicsWorld.cpp | 5 +++++ .../Dynamics/btSimpleDynamicsWorld.h | 2 ++ 10 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp b/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp index 12267e2a9..43ec4e26b 100644 --- a/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp +++ b/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp @@ -26,6 +26,7 @@ btCollisionObject::btCollisionObject() m_deactivationTime(btScalar(0.)), m_friction(btScalar(0.5)), m_restitution(btScalar(0.)), + m_objectName (0), m_userObjectPointer(0), m_internalOwner(0), m_hitFraction(btScalar(1.)), diff --git a/src/BulletCollision/CollisionDispatch/btCollisionObject.h b/src/BulletCollision/CollisionDispatch/btCollisionObject.h index 7c1ddbf1e..c5a0874ac 100644 --- a/src/BulletCollision/CollisionDispatch/btCollisionObject.h +++ b/src/BulletCollision/CollisionDispatch/btCollisionObject.h @@ -69,6 +69,9 @@ protected: ///m_internalOwner is reserved to point to Bullet's btRigidBody. Don't use this, use m_userObjectPointer instead. void* m_internalOwner; + // setName, getName + char* m_objectName; + ///time of impact calculation btScalar m_hitFraction; @@ -334,6 +337,18 @@ public: m_userObjectPointer = userPointer; } + char* getName () const + { + return m_objectName; + } + + + /// the user is responsible for the memory management of name + void setName (char* name) + { + m_objectName = name; + } + inline bool checkCollideWith(btCollisionObject* co) { if (m_checkCollideWith) diff --git a/src/BulletCollision/CollisionShapes/btCollisionShape.h b/src/BulletCollision/CollisionShapes/btCollisionShape.h index 12e30d65b..a2b466a60 100644 --- a/src/BulletCollision/CollisionShapes/btCollisionShape.h +++ b/src/BulletCollision/CollisionShapes/btCollisionShape.h @@ -27,10 +27,11 @@ class btCollisionShape { void* m_userPointer; + char* m_shapeName; public: - btCollisionShape() : m_userPointer(0) + btCollisionShape() : m_userPointer(0), m_shapeName (0) { } virtual ~btCollisionShape() @@ -103,7 +104,16 @@ public: return m_userPointer; } + char* getShapeName () const + { + return m_shapeName; + } + /// the user is responsible for the memory management of name + void setShapeName (char* name) + { + m_shapeName = name; + } }; #endif //COLLISION_SHAPE_H diff --git a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h index 745d0afde..0bc24d167 100644 --- a/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h +++ b/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h @@ -33,6 +33,7 @@ class btTypedConstraint { int m_userConstraintType; int m_userConstraintId; + char* m_name; btTypedConstraintType m_constraintType; @@ -107,6 +108,16 @@ public: { return m_constraintType; } + + char* getName () const + { + return m_name; + } + + void setName (char* name) + { + m_name = name; + } }; #endif //TYPED_CONSTRAINT_H diff --git a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp index 018f79ca2..01aa018f2 100644 --- a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp +++ b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp @@ -391,6 +391,11 @@ void btDiscreteDynamicsWorld::setGravity(const btVector3& gravity) } } +btVector3 btDiscreteDynamicsWorld::getGravity () const +{ + return m_gravity; +} + void btDiscreteDynamicsWorld::removeRigidBody(btRigidBody* body) { diff --git a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h index 9d21c756a..2e8c9bef2 100644 --- a/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h +++ b/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h @@ -118,6 +118,7 @@ public: virtual void setGravity(const btVector3& gravity); + virtual btVector3 getGravity () const; virtual void addRigidBody(btRigidBody* body); diff --git a/src/BulletDynamics/Dynamics/btDynamicsWorld.h b/src/BulletDynamics/Dynamics/btDynamicsWorld.h index 974b6c725..3ee68b2db 100644 --- a/src/BulletDynamics/Dynamics/btDynamicsWorld.h +++ b/src/BulletDynamics/Dynamics/btDynamicsWorld.h @@ -61,6 +61,7 @@ class btDynamicsWorld : public btCollisionWorld //once a rigidbody is added to the dynamics world, it will get this gravity assigned //existing rigidbodies in the world get gravity assigned too, during this method virtual void setGravity(const btVector3& gravity) = 0; + virtual btVector3 getGravity () const = 0; virtual void addRigidBody(btRigidBody* body) = 0; diff --git a/src/BulletDynamics/Dynamics/btRigidBody.h b/src/BulletDynamics/Dynamics/btRigidBody.h index c9badae9f..4276c2302 100644 --- a/src/BulletDynamics/Dynamics/btRigidBody.h +++ b/src/BulletDynamics/Dynamics/btRigidBody.h @@ -449,7 +449,6 @@ public: return m_constraintRefs.size(); } - int m_debugBodyId; }; diff --git a/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp b/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp index 13c0548ed..b6aa560b4 100644 --- a/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp +++ b/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp @@ -121,6 +121,11 @@ void btSimpleDynamicsWorld::setGravity(const btVector3& gravity) } } +btVector3 btSimpleDynamicsWorld::getGravity () const +{ + return m_gravity; +} + void btSimpleDynamicsWorld::removeRigidBody(btRigidBody* body) { removeCollisionObject(body); diff --git a/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h b/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h index 5452455e2..5c56fdf13 100644 --- a/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h +++ b/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h @@ -52,6 +52,8 @@ public: virtual void setGravity(const btVector3& gravity); + virtual btVector3 getGravity () const; + virtual void addRigidBody(btRigidBody* body); virtual void removeRigidBody(btRigidBody* body);