debug drawing for ParallelPhysicsEnvironment

This commit is contained in:
ejcoumans
2006-07-05 05:22:09 +00:00
parent d2570694a9
commit faa1dc90be
6 changed files with 20 additions and 10 deletions

View File

@@ -48,9 +48,10 @@ class CcdPhysicsEnvironment : public PHY_IPhysicsEnvironment
{
SimdVector3 m_gravity;
IDebugDraw* m_debugDrawer;
protected:
IDebugDraw* m_debugDrawer;
//solver iterations
int m_numIterations;

View File

@@ -181,7 +181,7 @@ bool ParallelPhysicsEnvironment::proceedDeltaTimeOneStep(float timeStep)
{
if (simulationIslands[k].m_controllers.size())
{
simulationIslands[k].Simulate(m_numIterations, constraintBase ,&scene->GetOverlappingPair(0),dispatcher,GetBroadphase(),m_solver,timeStep);
simulationIslands[k].Simulate(m_debugDrawer,m_numIterations, constraintBase ,&scene->GetOverlappingPair(0),dispatcher,GetBroadphase(),m_solver,timeStep);
}
}

View File

@@ -22,10 +22,11 @@ subject to the following restrictions:
#include "ConstraintSolver/ContactSolverInfo.h"
#include "ConstraintSolver/ConstraintSolver.h"
#include "ConstraintSolver/TypedConstraint.h"
#include "IDebugDraw.h"
extern float gContactBreakingTreshold;
bool SimulationIsland::Simulate(int numSolverIterations,TypedConstraint** constraintsBaseAddress,BroadphasePair* overlappingPairBaseAddress, Dispatcher* dispatcher,BroadphaseInterface* broadphase,class ConstraintSolver* solver,float timeStep)
bool SimulationIsland::Simulate(IDebugDraw* debugDrawer,int numSolverIterations,TypedConstraint** constraintsBaseAddress,BroadphasePair* overlappingPairBaseAddress, Dispatcher* dispatcher,BroadphaseInterface* broadphase,class ConstraintSolver* solver,float timeStep)
{
@@ -82,7 +83,8 @@ bool SimulationIsland::Simulate(int numSolverIterations,TypedConstraint** constr
dispatchInfo.m_timeStep = timeStep;
dispatchInfo.m_stepCount = 0;
dispatchInfo.m_enableSatConvex = false;//m_enableSatCollisionDetection;
dispatchInfo.m_debugDraw = debugDrawer;
std::vector<BroadphasePair> overlappingPairs;
overlappingPairs.resize(this->m_overlappingPairIndices.size());
@@ -208,7 +210,7 @@ bool SimulationIsland::Simulate(int numSolverIterations,TypedConstraint** constr
{
UpdateAabbs(broadphase,timeStep);
UpdateAabbs(debugDrawer,broadphase,timeStep);
float toi = 1.f;
@@ -364,7 +366,7 @@ void SimulationIsland::SyncMotionStates(float timeStep)
void SimulationIsland::UpdateAabbs(BroadphaseInterface* scene,float timeStep)
void SimulationIsland::UpdateAabbs(IDebugDraw* debugDrawer,BroadphaseInterface* scene,float timeStep)
{
std::vector<CcdPhysicsController*>::iterator i;

View File

@@ -19,6 +19,7 @@ subject to the following restrictions:
#include <vector>
class BroadphaseInterface;
class Dispatcher;
class IDebugDraw;
///SimulationIsland groups all computations and data (for collision detection and dynamics) that can execute in parallel with other SimulationIsland's
///The ParallelPhysicsEnvironment and ParallelIslandDispatcher will dispatch SimulationIsland's
@@ -34,7 +35,7 @@ class SimulationIsland
std::vector<int> m_overlappingPairIndices;
std::vector<int> m_constraintIndices;
bool Simulate(int numSolverIterations,class TypedConstraint** constraintsBaseAddress,struct BroadphasePair* overlappingPairBaseAddress, Dispatcher* dispatcher,BroadphaseInterface* broadphase, class ConstraintSolver* solver, float timeStep);
bool Simulate(IDebugDraw* debugDrawer,int numSolverIterations,class TypedConstraint** constraintsBaseAddress,struct BroadphasePair* overlappingPairBaseAddress, Dispatcher* dispatcher,BroadphaseInterface* broadphase, class ConstraintSolver* solver, float timeStep);
int GetNumControllers()
@@ -46,7 +47,7 @@ class SimulationIsland
void SyncMotionStates(float timeStep);
void UpdateAabbs(BroadphaseInterface* broadphase,float timeStep);
void UpdateAabbs(IDebugDraw* debugDrawer,BroadphaseInterface* broadphase,float timeStep);
};
#endif //SIMULATION_ISLAND_H