summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXuchen Han <xuchenhan@xuchenhan-macbookpro.roam.corp.google.com>2019-08-06 10:16:56 -0700
committerXuchen Han <xuchenhan@xuchenhan-macbookpro.roam.corp.google.com>2019-08-06 10:16:56 -0700
commit6a599bde87e53c22fb71cb6d35c718e9ea8083dc (patch)
tree0b517adbddc23782bcbaecfc5c2dc5d2944a11fa
parent73f5eb6a8f477c46b18a61476e81dc4dd9cb6612 (diff)
downloadbullet3-6a599bde87e53c22fb71cb6d35c718e9ea8083dc.tar.gz
setDt in reinitialize and remove unused variables
-rw-r--r--src/BulletSoftBody/btCGProjection.h6
-rw-r--r--src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp2
-rw-r--r--src/BulletSoftBody/btDeformableBodySolver.cpp20
-rw-r--r--src/BulletSoftBody/btDeformableBodySolver.h2
-rw-r--r--src/BulletSoftBody/btDeformableContactProjection.cpp1
-rw-r--r--src/BulletSoftBody/btDeformableContactProjection.h4
-rw-r--r--src/BulletSoftBody/btDeformableRigidDynamicsWorld.cpp2
7 files changed, 14 insertions, 23 deletions
diff --git a/src/BulletSoftBody/btCGProjection.h b/src/BulletSoftBody/btCGProjection.h
index 667c715c0..430327ea0 100644
--- a/src/BulletSoftBody/btCGProjection.h
+++ b/src/BulletSoftBody/btCGProjection.h
@@ -113,13 +113,13 @@ public:
typedef btAlignedObjectArray<btAlignedObjectArray<btScalar> > TArrayStack;
btAlignedObjectArray<btSoftBody *> m_softBodies;
btDeformableRigidDynamicsWorld* m_world;
- const btAlignedObjectArray<btSoftBody::Node*>* m_nodes;
+// const btAlignedObjectArray<btSoftBody::Node*>* m_nodes;
const btScalar& m_dt;
- btCGProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt, const btAlignedObjectArray<btSoftBody::Node*>* nodes)
+ btCGProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt)
: m_softBodies(softBodies)
, m_dt(dt)
- , m_nodes(nodes)
+// , m_nodes(nodes)
{
}
diff --git a/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp b/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp
index 44783fb3d..3e6656c0d 100644
--- a/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp
+++ b/src/BulletSoftBody/btDeformableBackwardEulerObjective.cpp
@@ -16,7 +16,7 @@
btDeformableBackwardEulerObjective::btDeformableBackwardEulerObjective(btAlignedObjectArray<btSoftBody *>& softBodies, const TVStack& backup_v)
: m_softBodies(softBodies)
-, projection(m_softBodies, m_dt, &m_nodes)
+, projection(m_softBodies, m_dt)
, m_backupVelocity(backup_v)
{
m_preconditioner = new DefaultPreconditioner();
diff --git a/src/BulletSoftBody/btDeformableBodySolver.cpp b/src/BulletSoftBody/btDeformableBodySolver.cpp
index 9382106e9..242b0a882 100644
--- a/src/BulletSoftBody/btDeformableBodySolver.cpp
+++ b/src/BulletSoftBody/btDeformableBodySolver.cpp
@@ -31,8 +31,6 @@ btDeformableBodySolver::~btDeformableBodySolver()
void btDeformableBodySolver::solveConstraints(float solverdt)
{
BT_PROFILE("solveConstraints");
- m_objective->setDt(solverdt);
-
// add constraints to the solver
setConstraints();
@@ -51,22 +49,16 @@ void btDeformableBodySolver::computeStep(TVStack& dv, const TVStack& residual)
m_cg.solve(*m_objective, dv, residual, tolerance);
}
-void btDeformableBodySolver::reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies)
+void btDeformableBodySolver::reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies, btScalar dt)
{
+ m_objective->setDt(dt);
m_softBodySet.copyFromArray(softBodies);
bool nodeUpdated = updateNodes();
- if (nodeUpdated)
- {
- m_dv.resize(m_numNodes);
- m_residual.resize(m_numNodes);
- m_backupVelocity.resize(m_numNodes);
- }
- for (int i = 0; i < m_dv.size(); ++i)
- {
- m_dv[i].setZero();
- m_residual[i].setZero();
- }
+ m_dv.resize(m_numNodes, btVector3(0,0,0));
+ m_residual.resize(m_numNodes, btVector3(0,0,0));
+ m_backupVelocity.resize(m_numNodes, btVector3(0,0,0));
+
m_objective->reinitialize(nodeUpdated);
}
diff --git a/src/BulletSoftBody/btDeformableBodySolver.h b/src/BulletSoftBody/btDeformableBodySolver.h
index 7186f8fb2..cdcc6ed80 100644
--- a/src/BulletSoftBody/btDeformableBodySolver.h
+++ b/src/BulletSoftBody/btDeformableBodySolver.h
@@ -60,7 +60,7 @@ public:
virtual void solveConstraints(float solverdt);
- void reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies);
+ void reinitialize(const btAlignedObjectArray<btSoftBody *>& softBodies, btScalar dt);
void setConstraints();
diff --git a/src/BulletSoftBody/btDeformableContactProjection.cpp b/src/BulletSoftBody/btDeformableContactProjection.cpp
index 7470c7a93..27fee5cf8 100644
--- a/src/BulletSoftBody/btDeformableContactProjection.cpp
+++ b/src/BulletSoftBody/btDeformableContactProjection.cpp
@@ -254,7 +254,6 @@ void btDeformableContactProjection::setConstraints()
btSoftBody* psb = m_softBodies[i];
btMultiBodyJacobianData jacobianData_normal;
btMultiBodyJacobianData jacobianData_complementary;
- std::cout <<psb->m_rcontacts.size() << std::endl;
for (int j = 0; j < psb->m_rcontacts.size(); ++j)
{
const btSoftBody::RContact& c = psb->m_rcontacts[j];
diff --git a/src/BulletSoftBody/btDeformableContactProjection.h b/src/BulletSoftBody/btDeformableContactProjection.h
index 51ea92689..9589b165e 100644
--- a/src/BulletSoftBody/btDeformableContactProjection.h
+++ b/src/BulletSoftBody/btDeformableContactProjection.h
@@ -25,8 +25,8 @@ public:
btHashMap<btHashInt, btAlignedObjectArray<DeformableContactConstraint> > m_constraints;
btHashMap<btHashInt, btAlignedObjectArray<DeformableFrictionConstraint> >m_frictions;
- btDeformableContactProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt, const btAlignedObjectArray<btSoftBody::Node*>* nodes)
- : btCGProjection(softBodies, dt, nodes)
+ btDeformableContactProjection(btAlignedObjectArray<btSoftBody *>& softBodies, const btScalar& dt)
+ : btCGProjection(softBodies, dt)
{
}
diff --git a/src/BulletSoftBody/btDeformableRigidDynamicsWorld.cpp b/src/BulletSoftBody/btDeformableRigidDynamicsWorld.cpp
index 116d4e0bc..5afc88323 100644
--- a/src/BulletSoftBody/btDeformableRigidDynamicsWorld.cpp
+++ b/src/BulletSoftBody/btDeformableRigidDynamicsWorld.cpp
@@ -179,7 +179,7 @@ void btDeformableRigidDynamicsWorld::predictUnconstraintMotion(btScalar timeStep
void btDeformableRigidDynamicsWorld::reinitialize(btScalar timeStep)
{
m_internalTime += timeStep;
- m_deformableBodySolver->reinitialize(m_softBodies);
+ m_deformableBodySolver->reinitialize(m_softBodies, timeStep);
btDispatcherInfo& dispatchInfo = btMultiBodyDynamicsWorld::getDispatchInfo();
dispatchInfo.m_timeStep = timeStep;
dispatchInfo.m_stepCount = 0;