forked from bartvdbraak/blender
updated testbed demo
This commit is contained in:
parent
6eeaacde0a
commit
697b22cc41
@ -31,7 +31,7 @@ CcdPhysicsController::CcdPhysicsController (const CcdConstructionInfo& ci)
|
||||
|
||||
MassProps mp(ci.m_mass, ci.m_localInertiaTensor);
|
||||
|
||||
m_body = new RigidBody(mp,0,0);
|
||||
m_body = new RigidBody(mp,0,0,ci.m_friction,ci.m_restitution);
|
||||
|
||||
m_broadphaseHandle = ci.m_broadphaseHandle;
|
||||
|
||||
@ -44,8 +44,6 @@ CcdPhysicsController::CcdPhysicsController (const CcdConstructionInfo& ci)
|
||||
m_body->setMassProps(ci.m_mass, ci.m_localInertiaTensor);
|
||||
m_body->setGravity( ci.m_gravity);
|
||||
|
||||
m_friction = ci.m_friction;
|
||||
m_restitution = ci.m_restitution;
|
||||
|
||||
m_body->setDamping(ci.m_linearDamping, ci.m_angularDamping);
|
||||
|
||||
|
@ -15,7 +15,6 @@ struct CcdConstructionInfo
|
||||
CcdConstructionInfo()
|
||||
: m_gravity(0,0,0),
|
||||
m_mass(0.f),
|
||||
m_friction(0.1f),
|
||||
m_restitution(0.1f),
|
||||
m_linearDamping(0.1f),
|
||||
m_angularDamping(0.1f),
|
||||
@ -27,9 +26,8 @@ struct CcdConstructionInfo
|
||||
SimdVector3 m_localInertiaTensor;
|
||||
SimdVector3 m_gravity;
|
||||
SimdScalar m_mass;
|
||||
SimdScalar m_friction;
|
||||
SimdScalar m_restitution;
|
||||
|
||||
SimdScalar m_friction;
|
||||
SimdScalar m_linearDamping;
|
||||
SimdScalar m_angularDamping;
|
||||
void* m_broadphaseHandle;
|
||||
@ -54,8 +52,6 @@ class CcdPhysicsController : public PHY_IPhysicsController
|
||||
|
||||
int m_collisionDelay;
|
||||
|
||||
SimdScalar m_friction;
|
||||
SimdScalar m_restitution;
|
||||
void* m_broadphaseHandle;
|
||||
|
||||
CcdPhysicsController (const CcdConstructionInfo& ci);
|
||||
|
@ -33,7 +33,7 @@ bool useIslands = true;
|
||||
//#include "BroadphaseCollision/QueryBox.h"
|
||||
//todo: change this to allow dynamic registration of types!
|
||||
|
||||
unsigned long gNumIterations = 1;
|
||||
unsigned long gNumIterations = 10;
|
||||
|
||||
#ifdef WIN32
|
||||
void DrawRasterizerLine(const float* from,const float* to,int color);
|
||||
@ -366,6 +366,7 @@ bool CcdPhysicsEnvironment::proceedDeltaTime(double curTime,float timeStep)
|
||||
|
||||
//contacts
|
||||
|
||||
|
||||
m_dispatcher->SolveConstraints(timeStep, gNumIterations ,numRigidBodies,m_debugDrawer);
|
||||
|
||||
for (int g=0;g<numsubstep;g++)
|
||||
@ -438,7 +439,7 @@ bool CcdPhysicsEnvironment::proceedDeltaTime(double curTime,float timeStep)
|
||||
|
||||
#ifdef WIN32
|
||||
SimdVector3 color (1,0,0);
|
||||
if (0)//m_debugDrawer)
|
||||
if (m_debugDrawer)
|
||||
{
|
||||
//draw aabb
|
||||
|
||||
@ -540,6 +541,29 @@ bool CcdPhysicsEnvironment::proceedDeltaTime(double curTime,float timeStep)
|
||||
return true;
|
||||
}
|
||||
|
||||
void CcdPhysicsEnvironment::setDebugMode(int debugMode)
|
||||
{
|
||||
if (debugMode > 10)
|
||||
{
|
||||
if (m_dispatcher)
|
||||
delete m_dispatcher;
|
||||
|
||||
if (debugMode == 11)
|
||||
{
|
||||
SimpleConstraintSolver* solver= new SimpleConstraintSolver();
|
||||
m_dispatcher = new ToiContactDispatcher(solver);
|
||||
} else
|
||||
{
|
||||
OdeConstraintSolver* solver = new OdeConstraintSolver();
|
||||
m_dispatcher = new ToiContactDispatcher(solver);
|
||||
}
|
||||
}
|
||||
if (m_debugDrawer){
|
||||
m_debugDrawer->SetDebugMode(debugMode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CcdPhysicsEnvironment::SyncMotionStates(float timeStep)
|
||||
{
|
||||
std::vector<CcdPhysicsController*>::iterator i;
|
||||
|
@ -50,8 +50,11 @@ class CcdPhysicsEnvironment : public PHY_IPhysicsEnvironment
|
||||
virtual bool proceedDeltaTime(double curTime,float timeStep);
|
||||
virtual void setFixedTimeStep(bool useFixedTimeStep,float fixedTimeStep){};
|
||||
//returns 0.f if no fixed timestep is used
|
||||
|
||||
virtual float getFixedTimeStep(){ return 0.f;};
|
||||
|
||||
virtual void setDebugMode(int debugMode);
|
||||
|
||||
virtual void setGravity(float x,float y,float z);
|
||||
|
||||
virtual int createConstraint(class PHY_IPhysicsController* ctrl,class PHY_IPhysicsController* ctrl2,PHY_ConstraintType type,
|
||||
@ -113,6 +116,7 @@ class CcdPhysicsEnvironment : public PHY_IPhysicsEnvironment
|
||||
|
||||
bool m_scalingPropagated;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif //CCDPHYSICSENVIRONMENT
|
||||
|
Loading…
Reference in New Issue
Block a user