History

use DynamicsWorld::numCollisionObjects instead of our own count

Andrew Meadows committed 8 years ago

Commit 10d08331 parent abf4a927 files · +13 −18Browse files

Showing the changes to libraries/physics/src/PhysicsEngine.cpp (1 of 7 files). Show all

Unified · Split

libraries/physics/src/PhysicsEngine.cpp+4−7
@@ -77,6 +77,10 @@ uint32_t PhysicsEngine::getNumSubsteps() const { · 76 unmodified lines
7777 return _dynamicsWorld->getNumSubsteps();
7878 }
7979
80+int32_t PhysicsEngine::getNumCollisionObjects() const {
81+ return _dynamicsWorld ? _dynamicsWorld->getNumCollisionObjects() : 0;
82+}
83+
8084 // private
8185 void PhysicsEngine::addObjectToDynamicsWorld(ObjectMotionState* motionState) {
8286 assert(motionState);
@@ -93,7 +97,6 @@ void PhysicsEngine::addObjectToDynamicsWorld(ObjectMotionState* motionState) { · 10 unmodified lines
9397 btCollisionShape* shape = const_cast<btCollisionShape*>(motionState->getShape());
9498 assert(shape);
9599 body = new btRigidBody(mass, motionState, shape, inertia);
96− ++_numRigidBodies;
97100 motionState->setRigidBody(body);
98101 } else {
99102 body->setMassProps(mass, inertia);
@@ -117,7 +120,6 @@ void PhysicsEngine::addObjectToDynamicsWorld(ObjectMotionState* motionState) { · 17 unmodified lines
117120 shape->calculateLocalInertia(mass, inertia);
118121 if (!body) {
119122 body = new btRigidBody(mass, motionState, shape, inertia);
120− ++_numRigidBodies;
121123 motionState->setRigidBody(body);
122124 } else {
123125 body->setMassProps(mass, inertia);
@@ -141,7 +143,6 @@ void PhysicsEngine::addObjectToDynamicsWorld(ObjectMotionState* motionState) { · 17 unmodified lines
141143 if (!body) {
142144 assert(motionState->getShape());
143145 body = new btRigidBody(mass, motionState, const_cast<btCollisionShape*>(motionState->getShape()), inertia);
144− ++_numRigidBodies;
145146 motionState->setRigidBody(body);
146147 } else {
147148 body->setMassProps(mass, inertia);
@@ -209,7 +210,6 @@ void PhysicsEngine::removeObjects(const VectorOfMotionStates& objects) { · 61 unmodified lines
209210 if (body) {
210211 removeDynamicsForBody(body);
211212 _dynamicsWorld->removeRigidBody(body);
212− --_numRigidBodies;
213213
214214 // NOTE: setRigidBody() modifies body->m_userPointer so we should clear the MotionState's body BEFORE deleting it.
215215 object->setRigidBody(nullptr);
@@ -227,7 +227,6 @@ void PhysicsEngine::removeSetOfObjects(const SetOfMotionStates& objects) { · 11 unmodified lines
227227 if (body) {
228228 removeDynamicsForBody(body);
229229 _dynamicsWorld->removeRigidBody(body);
230− --_numRigidBodies;
231230
232231 // NOTE: setRigidBody() modifies body->m_userPointer so we should clear the MotionState's body BEFORE deleting it.
233232 object->setRigidBody(nullptr);
@@ -279,7 +278,6 @@ void PhysicsEngine::reinsertObject(ObjectMotionState* object) { · 45 unmodified lines
279278 btRigidBody* body = object->getRigidBody();
280279 if (body) {
281280 _dynamicsWorld->removeRigidBody(body);
282− --_numRigidBodies;
283281 // add it back
284282 addObjectToDynamicsWorld(object);
285283 }
@@ -292,7 +290,6 @@ void PhysicsEngine::processTransaction(PhysicsEngine::Transaction& transaction) · 6 unmodified lines
292290 if (body) {
293291 removeDynamicsForBody(body);
294292 _dynamicsWorld->removeRigidBody(body);
295− --_numRigidBodies;
296293
297294 // NOTE: setRigidBody() modifies body->m_userPointer so we should clear the MotionState's body BEFORE deleting it.
298295 object->setRigidBody(nullptr);