Fixed Cluster::m_ndamping issue.

This commit is contained in:
id0x1234
2008-10-17 12:44:19 +00:00
parent b48d05d52a
commit 7f52613c45
2 changed files with 9 additions and 5 deletions

View File

@@ -2029,7 +2029,7 @@ void btSoftBody::updateClusters()
const btVector3 x=c.m_framexform*c.m_framerefs[j];
n.m_x=Lerp(n.m_x,x,c.m_matching);
}
}
}
/* Dbvt */
if(c.m_collide)
{
@@ -2107,6 +2107,7 @@ void btSoftBody::applyClusters(bool drift)
}
}
}
for(i=0;i<m_clusters.size();++i)
{
Cluster& c=*m_clusters[i];
@@ -2146,7 +2147,10 @@ void btSoftBody::dampClusters()
if(n.m_im>0)
{
const btVector3 vx=c.m_lv+cross(c.m_av,c.m_nodes[j]->m_q-c.m_com);
n.m_v += c.m_ndamping*(vx-n.m_v);
if(vx.length2()<=n.m_v.length2())
{
n.m_v += c.m_ndamping*(vx-n.m_v);
}
}
}
}

View File

@@ -291,9 +291,9 @@ public:
btVector3 m_lv;
btVector3 m_av;
btDbvtNode* m_leaf;
btScalar m_ndamping;
btScalar m_ldamping;
btScalar m_adamping;
btScalar m_ndamping; /* Node damping */
btScalar m_ldamping; /* Linear damping */
btScalar m_adamping; /* Angular damping */
btScalar m_matching;
bool m_collide;
Cluster() : m_leaf(0),m_ndamping(0),m_ldamping(0),m_adamping(0),m_matching(0) {}