MCPcopy Create free account
hub / github.com/OpenNFS/OpenNFS / checkForFrustumIntersect

Method checkForFrustumIntersect

src/Physics/Physics.cpp:158–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156}
157
158void Physics::checkForFrustumIntersect() {
159 m_objectsInFrustum.resize(0);
160 dynamicsWorld->getDispatcher()->dispatchAllCollisionPairs(m_ghostObject->getOverlappingPairCache(), dynamicsWorld->getDispatchInfo(), dynamicsWorld->getDispatcher());
161
162 btBroadphasePairArray &collisionPairs = m_ghostObject->getOverlappingPairCache()->getOverlappingPairArray(); //New
163 numObjects = collisionPairs.size();
164 static btManifoldArray m_manifoldArray;
165 for (int i = 0; i < numObjects; i++) {
166 const btBroadphasePair &collisionPair = collisionPairs[i];
167 m_manifoldArray.resize(0);
168 if (collisionPair.m_algorithm) collisionPair.m_algorithm->getAllContactManifolds(m_manifoldArray);
169 else std::cerr << "No collisionPair.m_algorithm - probably m_dynamicsWorld->getDispatcher()->dispatchAllCollisionPairs(...) must be missing." << std::endl;
170 for (int j = 0; j < m_manifoldArray.size(); j++) {
171 btPersistentManifold *manifold = m_manifoldArray[j];
172 if (manifold->getNumContacts() > 0) {
173 m_objectsInFrustum.push_back((btCollisionObject *) (manifold->getBody0() == m_ghostObject ? manifold->getBody1() : manifold->getBody0()));
174 break;
175 }
176 }
177 }
178}
179
180void Physics::initSimulation() {
181 /*------- BULLET --------*/

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected