History

use DynamicsWorld::numCollisionObjects instead of our own count

Andrew Meadows committed 8 years ago

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

Unified · Split

7 files
  1. interface/resources/qml/Stats.qml +1 −1
  2. interface/src/Application.cpp +2 −2
  3. interface/src/Application.h +1 −1
  4. interface/src/ui/Stats.cpp +1 −1
  5. interface/src/ui/Stats.h +3 −3
  6. libraries/physics/src/PhysicsEngine.cpp +4 −7
  7. libraries/physics/src/PhysicsEngine.h +1 −3
interface/resources/qml/Stats.qml+1−1
@@ -61,7 +61,7 @@ Item { · 60 unmodified lines
6161 text: "Game Rate: " + root.gameLoopRate
6262 }
6363 StatText {
64− text: "Physics Body Count: " + root.physicsBodyCount
64+ text: "Physics Object Count: " + root.physicsObjectCount
6565 }
6666 StatText {
6767 visible: root.expanded
interface/src/Application.cpp+2−2
@@ -6184,8 +6184,8 @@ bool Application::isHMDMode() const { · 6183 unmodified lines
61846184 return getActiveDisplayPlugin()->isHmd();
61856185 }
61866186
6187−float Application::getNumRigidBodies() const {
6188− return _physicsEngine ? _physicsEngine->getNumRigidBodies() : 0;
6187+float Application::getNumCollisionObjects() const {
6188+ return _physicsEngine ? _physicsEngine->getNumCollisionObjects() : 0;
61896189 }
61906190
61916191 float Application::getTargetRenderFrameRate() const { return getActiveDisplayPlugin()->getTargetFrameRate(); }
interface/src/Application.h+1−1
@@ -207,7 +207,7 @@ public: · 206 unmodified lines
207207
208208 size_t getRenderFrameCount() const { return _renderFrameCount; }
209209 float getRenderLoopRate() const { return _renderLoopCounter.rate(); }
210− float getNumRigidBodies() const;
210+ float getNumCollisionObjects() const;
211211 float getTargetRenderFrameRate() const; // frames/second
212212
213213 float getFieldOfView() { return _fieldOfView.get(); }
interface/src/ui/Stats.cpp+1−1
@@ -121,7 +121,7 @@ void Stats::updateStats(bool force) { · 120 unmodified lines
121121 auto avatarManager = DependencyManager::get<AvatarManager>();
122122 // we need to take one avatar out so we don't include ourselves
123123 STAT_UPDATE(avatarCount, avatarManager->size() - 1);
124− STAT_UPDATE(physicsBodyCount, qApp->getNumRigidBodies());
124+ STAT_UPDATE(physicsObjectCount, qApp->getNumCollisionObjects());
125125 STAT_UPDATE(updatedAvatarCount, avatarManager->getNumAvatarsUpdated());
126126 STAT_UPDATE(notUpdatedAvatarCount, avatarManager->getNumAvatarsNotUpdated());
127127 STAT_UPDATE(serverCount, (int)nodeList->size());
interface/src/ui/Stats.h+3−3
@@ -49,7 +49,7 @@ private: \ · 48 unmodified lines
4949 * @property {number} presentdroprate - <em>Read-only.</em>
5050 * @property {number} gameLoopRate - <em>Read-only.</em>
5151 * @property {number} avatarCount - <em>Read-only.</em>
52− * @property {number} physicsBodyCount - <em>Read-only.</em>
52+ * @property {number} physicsObjectCount - <em>Read-only.</em>
5353 * @property {number} updatedAvatarCount - <em>Read-only.</em>
5454 * @property {number} notUpdatedAvatarCount - <em>Read-only.</em>
5555 * @property {number} packetInCount - <em>Read-only.</em>
@@ -196,7 +196,7 @@ class Stats : public QQuickItem { · 140 unmodified lines
196196 STATS_PROPERTY(float, presentdroprate, 0)
197197 STATS_PROPERTY(int, gameLoopRate, 0)
198198 STATS_PROPERTY(int, avatarCount, 0)
199− STATS_PROPERTY(int, physicsBodyCount, 0)
199+ STATS_PROPERTY(int, physicsObjectCount, 0)
200200 STATS_PROPERTY(int, updatedAvatarCount, 0)
201201 STATS_PROPERTY(int, notUpdatedAvatarCount, 0)
202202 STATS_PROPERTY(int, packetInCount, 0)
@@ -413,7 +413,7 @@ signals: · 210 unmodified lines
413413 * @function Stats.numPhysicsBodiesChanged
414414 * @returns {Signal}
415415 */
416− void physicsBodyCountChanged();
416+ void physicsObjectCountChanged();
417417
418418 /**jsdoc
419419 * Triggered when the value of the <code>avatarCount</code> property changes.
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);
libraries/physics/src/PhysicsEngine.h+1−3
@@ -87,6 +87,7 @@ public: · 86 unmodified lines
8787 void init();
8888
8989 uint32_t getNumSubsteps() const;
90+ int32_t getNumCollisionObjects() const;
9091
9192 void removeObjects(const VectorOfMotionStates& objects);
9293 void removeSetOfObjects(const SetOfMotionStates& objects); // only called during teardown
@@ -143,8 +144,6 @@ public: · 50 unmodified lines
143144 // See PhysicsCollisionGroups.h for mask flags.
144145 std::vector<ContactTestResult> contactTest(uint16_t mask, const ShapeInfo& regionShapeInfo, const Transform& regionTransform, uint16_t group = USER_COLLISION_GROUP_DYNAMIC) const;
145146
146− int32_t getNumRigidBodies() const { return _numRigidBodies; }
147−
148147 private:
149148 QList<EntityDynamicPointer> removeDynamicsForBody(btRigidBody* body);
150149 void addObjectToDynamicsWorld(ObjectMotionState* motionState);
@@ -177,7 +176,6 @@ private: · 26 unmodified lines
177176 CharacterController* _myAvatarController;
178177
179178 uint32_t _numContactFrames { 0 };
180− int32_t _numRigidBodies { 0 };
181179
182180 bool _dumpNextStats { false };
183181 bool _saveNextStats { false };