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

@@ -2107,6 +2107,7 @@ void btSoftBody::applyClusters(bool drift)
} }
} }
} }
for(i=0;i<m_clusters.size();++i) for(i=0;i<m_clusters.size();++i)
{ {
Cluster& c=*m_clusters[i]; Cluster& c=*m_clusters[i];
@@ -2146,12 +2147,15 @@ void btSoftBody::dampClusters()
if(n.m_im>0) if(n.m_im>0)
{ {
const btVector3 vx=c.m_lv+cross(c.m_av,c.m_nodes[j]->m_q-c.m_com); const btVector3 vx=c.m_lv+cross(c.m_av,c.m_nodes[j]->m_q-c.m_com);
if(vx.length2()<=n.m_v.length2())
{
n.m_v += c.m_ndamping*(vx-n.m_v); n.m_v += c.m_ndamping*(vx-n.m_v);
} }
} }
} }
} }
} }
}
// //
void btSoftBody::Joint::Prepare(btScalar dt,int) void btSoftBody::Joint::Prepare(btScalar dt,int)

View File

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