bug fix in momentum conserving damping model for mass spring; update default damping model to momentum conserving one

This commit is contained in:
Xuchen Han
2019-08-19 11:28:41 -07:00
parent 6d4e93d3bf
commit 74adce7322

View File

@@ -27,7 +27,7 @@ public:
btDeformableMassSpringForce() : m_momentum_conserving(false), m_elasticStiffness(1), m_dampingStiffness(0.05)
{
}
btDeformableMassSpringForce(btScalar k, btScalar d, bool conserve_angular = false) : m_momentum_conserving(conserve_angular), m_elasticStiffness(k), m_dampingStiffness(d)
btDeformableMassSpringForce(btScalar k, btScalar d, bool conserve_angular = true) : m_momentum_conserving(conserve_angular), m_elasticStiffness(k), m_dampingStiffness(d)
{
}
@@ -63,7 +63,7 @@ public:
{
if ((node2->m_q - node1->m_q).norm() > SIMD_EPSILON)
{
btVector3 dir = (node2->m_q - node1->m_q).normalized();
btVector3 dir = (node2->m_x - node1->m_x).normalized();
scaled_force = scale * m_dampingStiffness * v_diff.dot(dir) * dir;
}
}
@@ -120,7 +120,7 @@ public:
{
if ((node2->m_q - node1->m_q).norm() > SIMD_EPSILON)
{
btVector3 dir = (node2->m_q - node1->m_q).normalized();
btVector3 dir = (node2->m_x - node1->m_x).normalized();
local_scaled_df= scaled_k_damp * (dv[id2] - dv[id1]).dot(dir) * dir;
}
}