Fixed Cluster::m_ndamping issue.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {}
|
||||
|
||||
Reference in New Issue
Block a user