get rid of nullptr and std::function
This commit is contained in:
@@ -256,7 +256,7 @@ void Pinch::initPhysics()
|
||||
m_dynamicsWorld->setGravity(gravity);
|
||||
getDeformableDynamicsWorld()->getWorldInfo().m_gravity = gravity;
|
||||
|
||||
getDeformableDynamicsWorld()->m_beforeSolverCallbacks.push_back(dynamics);
|
||||
getDeformableDynamicsWorld()->setSolverCallback(dynamics);
|
||||
m_guiHelper->createPhysicsDebugDrawer(m_dynamicsWorld);
|
||||
|
||||
//create a ground
|
||||
|
||||
@@ -29,7 +29,7 @@ struct DeformableContactConstraint
|
||||
|
||||
DeformableContactConstraint(const btVector3 dir)
|
||||
{
|
||||
m_contact.push_back(nullptr);
|
||||
m_contact.push_back(NULL);
|
||||
m_direction.push_back(dir);
|
||||
m_value.push_back(0);
|
||||
m_accumulated_normal_impulse.push_back(0);
|
||||
@@ -37,7 +37,7 @@ struct DeformableContactConstraint
|
||||
|
||||
DeformableContactConstraint()
|
||||
{
|
||||
m_contact.push_back(nullptr);
|
||||
m_contact.push_back(NULL);
|
||||
m_direction.push_back(btVector3(0,0,0));
|
||||
m_value.push_back(0);
|
||||
m_accumulated_normal_impulse.push_back(0);
|
||||
|
||||
@@ -59,7 +59,7 @@ void btDeformableContactProjection::update()
|
||||
DeformableFrictionConstraint& friction = frictions[i];
|
||||
for (int j = 0; j < constraint.m_contact.size(); ++j)
|
||||
{
|
||||
if (constraint.m_contact[j] == nullptr)
|
||||
if (constraint.m_contact[j] == NULL)
|
||||
{
|
||||
// nothing needs to be done for dirichelet constraints
|
||||
continue;
|
||||
|
||||
@@ -58,7 +58,7 @@ void btDeformableRigidDynamicsWorld::positionCorrection(btScalar dt)
|
||||
{
|
||||
const btSoftBody::RContact* c = constraint.m_contact[j];
|
||||
// skip anchor points
|
||||
if (c == nullptr || c->m_node->m_im == 0)
|
||||
if (c == NULL || c->m_node->m_im == 0)
|
||||
continue;
|
||||
const btSoftBody::sCti& cti = c->m_cti;
|
||||
btVector3 va(0, 0, 0);
|
||||
@@ -206,14 +206,24 @@ void btDeformableRigidDynamicsWorld::beforeSolverCallbacks(btScalar timeStep)
|
||||
{
|
||||
(*m_internalTickCallback)(this, timeStep);
|
||||
}
|
||||
for (int i = 0; i < m_beforeSolverCallbacks.size(); ++i)
|
||||
m_beforeSolverCallbacks[i](m_internalTime, this);
|
||||
|
||||
if (0 != m_solverCallback)
|
||||
{
|
||||
(*m_solverCallback)(m_internalTime, this);
|
||||
}
|
||||
|
||||
// for (int i = 0; i < m_beforeSolverCallbacks.size(); ++i)
|
||||
// m_beforeSolverCallbacks[i](m_internalTime, this);
|
||||
}
|
||||
|
||||
void btDeformableRigidDynamicsWorld::afterSolverCallbacks(btScalar timeStep)
|
||||
{
|
||||
for (int i = 0; i < m_beforeSolverCallbacks.size(); ++i)
|
||||
m_beforeSolverCallbacks[i](m_internalTime, this);
|
||||
if (0 != m_solverCallback)
|
||||
{
|
||||
(*m_solverCallback)(m_internalTime, this);
|
||||
}
|
||||
// for (int i = 0; i < m_beforeSolverCallbacks.size(); ++i)
|
||||
// m_beforeSolverCallbacks[i](m_internalTime, this);
|
||||
}
|
||||
|
||||
void btDeformableRigidDynamicsWorld::addForce(btSoftBody* psb, btDeformableLagrangianForce* force)
|
||||
|
||||
@@ -75,7 +75,15 @@ public:
|
||||
m_sbi.m_sparsesdf.Initialize();
|
||||
m_internalTime = 0.0;
|
||||
}
|
||||
btAlignedObjectArray<std::function<void(btScalar, btDeformableRigidDynamicsWorld*)> > m_beforeSolverCallbacks;
|
||||
// btAlignedObjectArray<std::function<void(btScalar, btDeformableRigidDynamicsWorld*)> > m_beforeSolverCallbacks;
|
||||
typedef void (*btSolverCallback)(btScalar time, btDeformableRigidDynamicsWorld* world);
|
||||
btSolverCallback m_solverCallback;
|
||||
|
||||
void setSolverCallback(btSolverCallback cb)
|
||||
{
|
||||
m_solverCallback = cb;
|
||||
}
|
||||
|
||||
virtual ~btDeformableRigidDynamicsWorld()
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user