[Bf-blender-cvs] [3e2ed11] fracture_modifier: keep objects completely intact with compounds and stability factor = 1

Martin Felke noreply at git.blender.org
Sun Mar 27 15:13:15 CEST 2016


Commit: 3e2ed116906fcb804d8dc885044de78779a487c0
Author: Martin Felke
Date:   Sun Mar 27 15:11:46 2016 +0200
Branches: fracture_modifier
https://developer.blender.org/rB3e2ed116906fcb804d8dc885044de78779a487c0

keep objects completely intact with compounds and stability factor = 1

===================================================================

M	extern/bullet2/src/BulletDynamics/Dynamics/btFractureDynamicsWorld.cpp

===================================================================

diff --git a/extern/bullet2/src/BulletDynamics/Dynamics/btFractureDynamicsWorld.cpp b/extern/bullet2/src/BulletDynamics/Dynamics/btFractureDynamicsWorld.cpp
index 87fadaa..8dffc91 100644
--- a/extern/bullet2/src/BulletDynamics/Dynamics/btFractureDynamicsWorld.cpp
+++ b/extern/bullet2/src/BulletDynamics/Dynamics/btFractureDynamicsWorld.cpp
@@ -1159,6 +1159,7 @@ void btFractureDynamicsWorld::fractureCallback( )
 							for (int k=0;k<manifold->getNumContacts();k++)
 							{
 								btManifoldPoint& pt = manifold->getContactPoint(k);
+								btScalar impulse = pt.m_appliedImpulse * (1.0f - sFracturePairs[i].m_fracObj->m_propagationParameter.m_stability_factor);
 								if (manifold->getBody0()==sFracturePairs[i].m_fracObj)
 								{
 									for (int f=0;f<sFracturePairs[i].m_fracObj->m_connections.size();f++)
@@ -1168,7 +1169,7 @@ void btFractureDynamicsWorld::fractureCallback( )
 										if ((connection.m_childIndex0 == pt.m_index0) ||
 											(connection.m_childIndex1 == pt.m_index0))
 										{
-											connection.m_strength -= pt.m_appliedImpulse;
+											connection.m_strength -= impulse;
 											//printf("strength0=%f\n",connection.m_strength);
 
 											if (connection.m_strength<0)
@@ -1192,7 +1193,7 @@ void btFractureDynamicsWorld::fractureCallback( )
 											   (connection.m_childIndex1 == pt.m_index1))
 										{
 											//printf("strength1=%f\n",connection.m_strength);
-											connection.m_strength -= pt.m_appliedImpulse;
+											connection.m_strength -= impulse;
 											if (connection.m_strength<0)
 											{
 												//remove or set to zero




More information about the Bf-blender-cvs mailing list