[Bf-blender-cvs] [d21018b] master: Fix T44065: fixed vehicle constraint

Sybren A. Stüvel noreply at git.blender.org
Sat Mar 21 14:46:57 CET 2015


Commit: d21018b3340496865626b279852159347ac9c102
Author: Sybren A. Stüvel
Date:   Sat Mar 21 14:42:57 2015 +0100
Branches: master
https://developer.blender.org/rBd21018b3340496865626b279852159347ac9c102

Fix T44065: fixed vehicle constraint

Commit ffee7f1a58a18bc08add94176ddffe29809139a6 broke vehicle constraints; this fixes that.

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

M	source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp

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

diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index c0aaefe..a30ee0f 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -2644,9 +2644,6 @@ int			CcdPhysicsEnvironment::CreateConstraint(class PHY_IPhysicsController* ctrl
 	if (!rb0)
 		return 0;
 
-	// If either of the controllers is missing, we can't do anything.
-	if (!c0 || !c1) return 0;
-
 	btVector3 pivotInB = rb1 ? rb1->getCenterOfMassTransform().inverse()(rb0->getCenterOfMassTransform()(pivotInA)) : 
 		rb0->getCenterOfMassTransform() * pivotInA;
 	btVector3 axisInA(axisX,axisY,axisZ);
@@ -2658,6 +2655,8 @@ int			CcdPhysicsEnvironment::CreateConstraint(class PHY_IPhysicsController* ctrl
 	{
 	case PHY_POINT2POINT_CONSTRAINT:
 		{
+			// If either of the controllers is missing, we can't do anything.
+			if (!c0 || !c1) return 0;
 
 			btPoint2PointConstraint* p2p = 0;
 
@@ -2686,6 +2685,9 @@ int			CcdPhysicsEnvironment::CreateConstraint(class PHY_IPhysicsController* ctrl
 
 	case PHY_GENERIC_6DOF_CONSTRAINT:
 		{
+			// If either of the controllers is missing, we can't do anything.
+			if (!c0 || !c1) return 0;
+
 			btGeneric6DofConstraint* genericConstraint = 0;
 
 			if (rb1)
@@ -2739,7 +2741,7 @@ int			CcdPhysicsEnvironment::CreateConstraint(class PHY_IPhysicsController* ctrl
 					*rb0,s_fixedObject2,
 					frameInA,frameInB,useReferenceFrameA);
 			}
-			
+
 			if (genericConstraint)
 			{
 				//m_constraints.push_back(genericConstraint);
@@ -2756,6 +2758,9 @@ int			CcdPhysicsEnvironment::CreateConstraint(class PHY_IPhysicsController* ctrl
 		}
 	case PHY_CONE_TWIST_CONSTRAINT:
 		{
+			// If either of the controllers is missing, we can't do anything.
+			if (!c0 || !c1) return 0;
+
 			btConeTwistConstraint* coneTwistContraint = 0;
 
 			
@@ -2807,7 +2812,7 @@ int			CcdPhysicsEnvironment::CreateConstraint(class PHY_IPhysicsController* ctrl
 					*rb0,s_fixedObject2,
 					frameInA,frameInB);
 			}
-			
+
 			if (coneTwistContraint)
 			{
 				//m_constraints.push_back(genericConstraint);
@@ -2830,6 +2835,9 @@ int			CcdPhysicsEnvironment::CreateConstraint(class PHY_IPhysicsController* ctrl
 
 	case PHY_LINEHINGE_CONSTRAINT:
 		{
+			// If either of the controllers is missing, we can't do anything.
+			if (!c0 || !c1) return 0;
+
 			btHingeConstraint* hinge = 0;
 
 			if (rb1)




More information about the Bf-blender-cvs mailing list