Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Want <cwant@ualberta.ca>2006-01-28 20:25:03 +0300
committerChris Want <cwant@ualberta.ca>2006-01-28 20:25:03 +0300
commit635224802e2b643f588eeede3670d389686938cb (patch)
tree91b085e02803d88aa80a8d13872c03f471d2343d
parentb71130ca80257d734fd0d1b86b173e81746ad24c (diff)
The extern/bullet from HEAD is needed to compile the gameengine inorange
orange
-rw-r--r--extern/bullet/Bullet/BLI_Bullet.dsp60
-rw-r--r--extern/bullet/Bullet/Bullet3_vc8.vcproj53
-rw-r--r--extern/bullet/Bullet/CollisionShapes/OptimizedBvh.cpp52
-rw-r--r--extern/bullet/Bullet/CollisionShapes/SphereShape.cpp36
-rw-r--r--extern/bullet/Bullet/CollisionShapes/SphereShape.h16
-rw-r--r--extern/bullet/BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp2
-rw-r--r--extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.cpp6
-rw-r--r--extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.h6
-rw-r--r--extern/bullet/SConscript11
-rw-r--r--extern/bullet/make/msvc_7_0/Bullet3_vc7.vcproj39
10 files changed, 220 insertions, 61 deletions
diff --git a/extern/bullet/Bullet/BLI_Bullet.dsp b/extern/bullet/Bullet/BLI_Bullet.dsp
index 48b6e8bb335..dad314f72ba 100644
--- a/extern/bullet/Bullet/BLI_Bullet.dsp
+++ b/extern/bullet/Bullet/BLI_Bullet.dsp
@@ -159,10 +159,6 @@ SOURCE=.\NarrowPhaseCollision\BU_VertexPoly.h
# End Source File
# Begin Source File
-SOURCE=.\NarrowPhaseCollision\CollisionMargin.h
-# End Source File
-# Begin Source File
-
SOURCE=.\NarrowPhaseCollision\ContinuousConvexCollision.cpp
# End Source File
# Begin Source File
@@ -203,6 +199,14 @@ SOURCE=.\NarrowPhaseCollision\GjkPairDetector.h
# End Source File
# Begin Source File
+SOURCE=.\NarrowPhaseCollision\ManifoldContactAddResult.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\NarrowPhaseCollision\ManifoldContactAddResult.h
+# End Source File
+# Begin Source File
+
SOURCE=.\NarrowPhaseCollision\ManifoldPoint.h
# End Source File
# Begin Source File
@@ -307,6 +311,18 @@ SOURCE=.\CollisionShapes\BoxShape.h
# End Source File
# Begin Source File
+SOURCE=.\CollisionShapes\BvhTriangleMeshShape.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\CollisionShapes\BvhTriangleMeshShape.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\CollisionShapes\CollisionMargin.h
+# End Source File
+# Begin Source File
+
SOURCE=.\CollisionShapes\CollisionShape.cpp
# End Source File
# Begin Source File
@@ -339,6 +355,14 @@ SOURCE=.\CollisionShapes\ConvexShape.h
# End Source File
# Begin Source File
+SOURCE=.\CollisionShapes\ConvexTriangleCallback.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\CollisionShapes\ConvexTriangleCallback.h
+# End Source File
+# Begin Source File
+
SOURCE=.\CollisionShapes\CylinderShape.cpp
# End Source File
# Begin Source File
@@ -347,6 +371,14 @@ SOURCE=.\CollisionShapes\CylinderShape.h
# End Source File
# Begin Source File
+SOURCE=.\CollisionShapes\EmptyShape.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\CollisionShapes\EmptyShape.h
+# End Source File
+# Begin Source File
+
SOURCE=.\CollisionShapes\MinkowskiSumShape.cpp
# End Source File
# Begin Source File
@@ -363,6 +395,14 @@ SOURCE=.\CollisionShapes\MultiSphereShape.h
# End Source File
# Begin Source File
+SOURCE=.\CollisionShapes\OptimizedBvh.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\CollisionShapes\OptimizedBvh.h
+# End Source File
+# Begin Source File
+
SOURCE=.\CollisionShapes\PolyhedralConvexShape.cpp
# End Source File
# Begin Source File
@@ -395,10 +435,22 @@ SOURCE=.\CollisionShapes\StridingMeshInterface.h
# End Source File
# Begin Source File
+SOURCE=.\CollisionShapes\TriangleCallback.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\CollisionShapes\TriangleCallback.h
# End Source File
# Begin Source File
+SOURCE=.\CollisionShapes\TriangleIndexVertexArray.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\CollisionShapes\TriangleIndexVertexArray.h
+# End Source File
+# Begin Source File
+
SOURCE=.\CollisionShapes\TriangleMesh.cpp
# End Source File
# Begin Source File
diff --git a/extern/bullet/Bullet/Bullet3_vc8.vcproj b/extern/bullet/Bullet/Bullet3_vc8.vcproj
index b9046f451e5..4c8bc67557b 100644
--- a/extern/bullet/Bullet/Bullet3_vc8.vcproj
+++ b/extern/bullet/Bullet/Bullet3_vc8.vcproj
@@ -42,6 +42,7 @@
Optimization="0"
AdditionalIncludeDirectories=".;..\LinearMath"
PreprocessorDefinitions="_DEBUG;_LIB;WIN32;BUM_INLINED;USE_ALGEBRAIC"
+ ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -273,6 +274,14 @@
>
</File>
<File
+ RelativePath=".\NarrowPhaseCollision\ManifoldContactAddResult.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\NarrowPhaseCollision\ManifoldContactAddResult.h"
+ >
+ </File>
+ <File
RelativePath=".\NarrowPhaseCollision\ManifoldPoint.h"
>
</File>
@@ -369,6 +378,14 @@
>
</File>
<File
+ RelativePath=".\CollisionShapes\ConvexTriangleCallback.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\CollisionShapes\ConvexTriangleCallback.h"
+ >
+ </File>
+ <File
RelativePath=".\CollisionShapes\CylinderShape.cpp"
>
</File>
@@ -377,6 +394,14 @@
>
</File>
<File
+ RelativePath=".\CollisionShapes\EmptyShape.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\CollisionShapes\EmptyShape.h"
+ >
+ </File>
+ <File
RelativePath=".\CollisionShapes\MinkowskiSumShape.cpp"
>
</File>
@@ -425,6 +450,10 @@
>
</File>
<File
+ RelativePath=".\CollisionShapes\TriangleCallback.cpp"
+ >
+ </File>
+ <File
RelativePath=".\CollisionShapes\TriangleCallback.h"
>
</File>
@@ -549,6 +578,30 @@
>
</File>
</Filter>
+ <File
+ RelativePath=".\CollisionShapes\BvhTriangleMeshShape.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\CollisionShapes\BvhTriangleMeshShape.h"
+ >
+ </File>
+ <File
+ RelativePath=".\CollisionShapes\OptimizedBvh.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\CollisionShapes\OptimizedBvh.h"
+ >
+ </File>
+ <File
+ RelativePath=".\CollisionShapes\TriangleIndexVertexArray.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\CollisionShapes\TriangleIndexVertexArray.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/extern/bullet/Bullet/CollisionShapes/OptimizedBvh.cpp b/extern/bullet/Bullet/CollisionShapes/OptimizedBvh.cpp
index fe3a51883ec..a07e2919bd6 100644
--- a/extern/bullet/Bullet/CollisionShapes/OptimizedBvh.cpp
+++ b/extern/bullet/Bullet/CollisionShapes/OptimizedBvh.cpp
@@ -84,28 +84,30 @@ void OptimizedBvh::Build(StridingMeshInterface* triangles)
OptimizedBvhNode* OptimizedBvh::BuildTree (NodeArray& leafNodes,int startIndex,int endIndex)
{
+ OptimizedBvhNode* internalNode;
+ int splitAxis, splitIndex, i;
int numIndices =endIndex-startIndex;
- assert(numIndices>0);
-
int curIndex = m_curNodeIndex;
+ assert(numIndices>0);
+
if (numIndices==1)
{
return new (&m_contiguousNodes[m_curNodeIndex++]) OptimizedBvhNode(leafNodes[startIndex]);
}
//calculate Best Splitting Axis and where to split it. Sort the incoming 'leafNodes' array within range 'startIndex/endIndex'.
- int splitAxis = CalcSplittingAxis(leafNodes,startIndex,endIndex);
+ splitAxis = CalcSplittingAxis(leafNodes,startIndex,endIndex);
- int splitIndex = SortAndCalcSplittingIndex(leafNodes,startIndex,endIndex,splitAxis);
+ splitIndex = SortAndCalcSplittingIndex(leafNodes,startIndex,endIndex,splitAxis);
- OptimizedBvhNode* internalNode = &m_contiguousNodes[m_curNodeIndex++];
+ internalNode = &m_contiguousNodes[m_curNodeIndex++];
internalNode->m_aabbMax.setValue(-1e30f,-1e30f,-1e30f);
internalNode->m_aabbMin.setValue(1e30f,1e30f,1e30f);
- for (int i=startIndex;i<endIndex;i++)
+ for (i=startIndex;i<endIndex;i++)
{
internalNode->m_aabbMax.setMax(leafNodes[i].m_aabbMax);
internalNode->m_aabbMin.setMin(leafNodes[i].m_aabbMin);
@@ -123,21 +125,23 @@ OptimizedBvhNode* OptimizedBvh::BuildTree (NodeArray& leafNodes,int startIndex,i
int OptimizedBvh::SortAndCalcSplittingIndex(NodeArray& leafNodes,int startIndex,int endIndex,int splitAxis)
{
+ int i;
int splitIndex =startIndex;
int numIndices = endIndex - startIndex;
+ float splitValue;
SimdVector3 means(0.f,0.f,0.f);
- for (int i=startIndex;i<endIndex;i++)
+ for (i=startIndex;i<endIndex;i++)
{
SimdVector3 center = 0.5f*(leafNodes[i].m_aabbMax+leafNodes[i].m_aabbMin);
means+=center;
}
means *= (1.f/(float)numIndices);
- float splitValue = means[splitAxis];
+ splitValue = means[splitAxis];
//sort leafNodes so all values larger then splitValue comes first, and smaller values start from 'splitIndex'.
- for (int i=startIndex;i<endIndex;i++)
+ for (i=startIndex;i<endIndex;i++)
{
SimdVector3 center = 0.5f*(leafNodes[i].m_aabbMax+leafNodes[i].m_aabbMin);
if (center[splitAxis] > splitValue)
@@ -159,19 +163,20 @@ int OptimizedBvh::SortAndCalcSplittingIndex(NodeArray& leafNodes,int startIndex,
int OptimizedBvh::CalcSplittingAxis(NodeArray& leafNodes,int startIndex,int endIndex)
{
+ int i;
+
SimdVector3 means(0.f,0.f,0.f);
+ SimdVector3 variance(0.f,0.f,0.f);
int numIndices = endIndex-startIndex;
- for (int i=startIndex;i<endIndex;i++)
+ for (i=startIndex;i<endIndex;i++)
{
SimdVector3 center = 0.5f*(leafNodes[i].m_aabbMax+leafNodes[i].m_aabbMin);
means+=center;
}
means *= (1.f/(float)numIndices);
- SimdVector3 variance(0.f,0.f,0.f);
-
- for (int i=startIndex;i<endIndex;i++)
+ for (i=startIndex;i<endIndex;i++)
{
SimdVector3 center = 0.5f*(leafNodes[i].m_aabbMax+leafNodes[i].m_aabbMin);
SimdVector3 diff2 = center-means;
@@ -180,18 +185,18 @@ int OptimizedBvh::CalcSplittingAxis(NodeArray& leafNodes,int startIndex,int endI
}
variance *= (1.f/ ((float)numIndices-1) );
- int biggestAxis = variance.maxAxis();
- return biggestAxis;
-
+ return variance.maxAxis();
}
void OptimizedBvh::ReportAabbOverlappingNodex(NodeOverlapCallback* nodeCallback,const SimdVector3& aabbMin,const SimdVector3& aabbMax) const
{
+ int i;
+
if (aabbMin.length() > 1000.f)
{
- for (int i=0;i<m_leafNodes.size();i++)
+ for (i=0;i<m_leafNodes.size();i++)
{
const OptimizedBvhNode& node = m_leafNodes[i];
nodeCallback->ProcessNode(&node);
@@ -205,10 +210,10 @@ void OptimizedBvh::ReportAabbOverlappingNodex(NodeOverlapCallback* nodeCallback,
void OptimizedBvh::WalkTree(OptimizedBvhNode* rootNode,NodeOverlapCallback* nodeCallback,const SimdVector3& aabbMin,const SimdVector3& aabbMax) const
{
- bool aabbOverlap = TestAabbAgainstAabb2(aabbMin,aabbMax,rootNode->m_aabbMin,rootNode->m_aabbMax);
+ bool isLeafNode, aabbOverlap = TestAabbAgainstAabb2(aabbMin,aabbMax,rootNode->m_aabbMin,rootNode->m_aabbMax);
if (aabbOverlap)
{
- bool isLeafNode = (!rootNode->m_leftChild && !rootNode->m_rightChild);
+ isLeafNode = (!rootNode->m_leftChild && !rootNode->m_rightChild);
if (isLeafNode)
{
nodeCallback->ProcessNode(rootNode);
@@ -225,8 +230,9 @@ int maxIterations = 0;
void OptimizedBvh::WalkStacklessTree(OptimizedBvhNode* rootNode,NodeOverlapCallback* nodeCallback,const SimdVector3& aabbMin,const SimdVector3& aabbMax) const
{
- int curIndex = 0;
+ int escapeIndex, curIndex = 0;
int walkIterations = 0;
+ bool aabbOverlap, isLeafNode;
while (curIndex < m_curNodeIndex)
{
@@ -234,8 +240,8 @@ void OptimizedBvh::WalkStacklessTree(OptimizedBvhNode* rootNode,NodeOverlapCallb
assert (walkIterations < m_curNodeIndex);
walkIterations++;
- bool aabbOverlap = TestAabbAgainstAabb2(aabbMin,aabbMax,rootNode->m_aabbMin,rootNode->m_aabbMax);
- bool isLeafNode = (!rootNode->m_leftChild && !rootNode->m_rightChild);
+ aabbOverlap = TestAabbAgainstAabb2(aabbMin,aabbMax,rootNode->m_aabbMin,rootNode->m_aabbMax);
+ isLeafNode = (!rootNode->m_leftChild && !rootNode->m_rightChild);
if (isLeafNode && aabbOverlap)
{
@@ -248,7 +254,7 @@ void OptimizedBvh::WalkStacklessTree(OptimizedBvhNode* rootNode,NodeOverlapCallb
curIndex++;
} else
{
- int escapeIndex = rootNode->m_escapeIndex;
+ escapeIndex = rootNode->m_escapeIndex;
rootNode += escapeIndex;
curIndex += escapeIndex;
}
diff --git a/extern/bullet/Bullet/CollisionShapes/SphereShape.cpp b/extern/bullet/Bullet/CollisionShapes/SphereShape.cpp
index bbffb8137de..37d34a65948 100644
--- a/extern/bullet/Bullet/CollisionShapes/SphereShape.cpp
+++ b/extern/bullet/Bullet/CollisionShapes/SphereShape.cpp
@@ -22,14 +22,7 @@ SphereShape ::SphereShape (SimdScalar radius)
SimdVector3 SphereShape::LocalGetSupportingVertexWithoutMargin(const SimdVector3& vec)const
{
- float radius = m_radius - GetMargin();
-
- SimdScalar len = vec.length2();
- if (SimdFabs(len) < 0.0001f)
- {
- return SimdVector3(m_localScaling[0] * radius,m_localScaling[1]*radius,m_localScaling[2]*radius);
- }
- return vec * (m_localScaling*(radius / SimdSqrt(len)));
+ return SimdVector3(0.f,0.f,0.f);
}
SimdVector3 SphereShape::LocalGetSupportingVertex(const SimdVector3& vec)const
@@ -37,38 +30,31 @@ SimdVector3 SphereShape::LocalGetSupportingVertex(const SimdVector3& vec)const
SimdVector3 supVertex;
supVertex = LocalGetSupportingVertexWithoutMargin(vec);
- if ( GetMargin()!=0.f )
+ SimdVector3 vecnorm = vec;
+ if (SimdFuzzyZero(vecnorm .length2()))
{
- SimdVector3 vecnorm = vec;
- if (vecnorm .length2() == 0.f)
- {
- vecnorm.setValue(-1.f,-1.f,-1.f);
- }
- vecnorm.normalize();
- supVertex+= GetMargin() * vecnorm;
- }
+ vecnorm.setValue(-1.f,-1.f,-1.f);
+ }
+ vecnorm.normalize();
+ supVertex+= GetMargin() * vecnorm;
return supVertex;
}
-/*
+
//broken due to scaling
void SphereShape::GetAabb(const SimdTransform& t,SimdVector3& aabbMin,SimdVector3& aabbMax) const
{
const SimdVector3& center = t.getOrigin();
- SimdScalar radius = m_radius;
-
- SimdVector3 extent = m_localScaling*radius;
- extent+= SimdVector3(GetMargin(),GetMargin(),GetMargin());
-
+ SimdVector3 extent(GetMargin(),GetMargin(),GetMargin());
aabbMin = center - extent;
aabbMax = center + extent;
}
-*/
+
void SphereShape::CalculateLocalInertia(SimdScalar mass,SimdVector3& inertia)
{
- SimdScalar elem = 0.4f * mass * m_radius*m_radius;
+ SimdScalar elem = 0.4f * mass * GetMargin()*GetMargin();
inertia[0] = inertia[1] = inertia[2] = elem;
} \ No newline at end of file
diff --git a/extern/bullet/Bullet/CollisionShapes/SphereShape.h b/extern/bullet/Bullet/CollisionShapes/SphereShape.h
index 82c00ea43eb..235af6c4db2 100644
--- a/extern/bullet/Bullet/CollisionShapes/SphereShape.h
+++ b/extern/bullet/Bullet/CollisionShapes/SphereShape.h
@@ -20,7 +20,7 @@ class SphereShape : public ConvexShape
{
SimdScalar m_radius;
-
+
public:
SphereShape (SimdScalar radius);
@@ -31,7 +31,7 @@ public:
virtual void CalculateLocalInertia(SimdScalar mass,SimdVector3& inertia);
- //virtual void GetAabb(const SimdTransform& t,SimdVector3& aabbMin,SimdVector3& aabbMax) const;
+ virtual void GetAabb(const SimdTransform& t,SimdVector3& aabbMin,SimdVector3& aabbMax) const;
virtual int GetShapeType() const { return SPHERE_SHAPE_PROXYTYPE; }
@@ -40,6 +40,18 @@ public:
//debugging
virtual char* GetName()const {return "SPHERE";}
+ virtual void SetMargin(float margin)
+ {
+ ConvexShape::SetMargin(margin);
+ }
+ virtual float GetMargin() const
+ {
+ //to improve gjk behaviour, use radius+margin as the full margin, so never get into the penetration case
+ //this means, non-uniform scaling is not supported anymore
+ return m_localScaling[0] * m_radius + ConvexShape::GetMargin();
+ }
+
+
};
diff --git a/extern/bullet/BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp b/extern/bullet/BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp
index f7e41e61824..a7375e78d38 100644
--- a/extern/bullet/BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp
+++ b/extern/bullet/BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp
@@ -153,7 +153,7 @@ void ConvexConcaveCollisionAlgorithm::ProcessCollision (BroadphaseProxy* ,Broadp
if (m_convex.IsConvexShape())
{
- float collisionMarginTriangle = 0.02f;//triangleMesh->GetMargin();
+ float collisionMarginTriangle = triangleMesh->GetMargin();
m_boxTriangleCallback.SetTimeStepAndCounters(timeStep,stepCount, collisionMarginTriangle,useContinuous);
#ifdef USE_BOX_TRIANGLE
diff --git a/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.cpp b/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.cpp
index 9471c1faf7c..81b75e6e1b8 100644
--- a/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.cpp
+++ b/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.cpp
@@ -14,17 +14,20 @@
static RigidBody s_fixed(MassProps(0,SimdVector3(0.f,0.f,0.f)),0.f,0.f,1.f,1.f);
+static int gConstraintId = 1;
Point2PointConstraint::Point2PointConstraint():
m_rbA(s_fixed),m_rbB(s_fixed)
{
+ m_constraintId = gConstraintId++;//just create some unique ID for now
+
s_fixed.setMassProps(0.f,SimdVector3(0.f,0.f,0.f));
}
Point2PointConstraint::Point2PointConstraint(RigidBody& rbA,RigidBody& rbB, const SimdVector3& pivotInA,const SimdVector3& pivotInB)
:m_rbA(rbA),m_rbB(rbB),m_pivotInA(pivotInA),m_pivotInB(pivotInB)
{
-
+ m_constraintId = gConstraintId++;//just create some unique ID for now
}
@@ -32,6 +35,7 @@ Point2PointConstraint::Point2PointConstraint(RigidBody& rbA,const SimdVector3& p
:m_rbA(rbA),m_rbB(s_fixed),m_pivotInA(pivotInA),m_pivotInB(rbA.getCenterOfMassTransform()(pivotInA))
{
s_fixed.setMassProps(0.f,SimdVector3(1e10f,1e10f,1e10f));
+ m_constraintId = gConstraintId++;//just create some unique ID for now
}
void Point2PointConstraint::BuildJacobian()
diff --git a/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.h b/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.h
index 82b4dcc83db..59b7a5576c4 100644
--- a/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.h
+++ b/extern/bullet/BulletDynamics/ConstraintSolver/Point2PointConstraint.h
@@ -27,6 +27,7 @@ class Point2PointConstraint
SimdVector3 m_pivotInA;
SimdVector3 m_pivotInB;
+ int m_constraintId;
public:
Point2PointConstraint(RigidBody& rbA,RigidBody& rbB, const SimdVector3& pivotInA,const SimdVector3& pivotInB);
@@ -50,6 +51,11 @@ public:
return m_rbB;
}
+ int GetConstraintId()
+ {
+ return m_constraintId;
+ }
+
};
diff --git a/extern/bullet/SConscript b/extern/bullet/SConscript
index ae3763d6e45..453d18aff6d 100644
--- a/extern/bullet/SConscript
+++ b/extern/bullet/SConscript
@@ -57,7 +57,13 @@ bullet_sources = ['Bullet/BroadphaseCollision/BroadphaseProxy.cpp',
'Bullet/CollisionShapes/StridingMeshInterface.cpp',
'Bullet/CollisionShapes/TriangleMesh.cpp',
'Bullet/CollisionShapes/TriangleMeshShape.cpp',
-
+ 'Bullet/CollisionShapes/BvhTriangleMeshShape.cpp',
+ 'Bullet/CollisionShapes/ConvexTriangleCallback.cpp',
+ 'Bullet/CollisionShapes/EmptyShape.cpp',
+ 'Bullet/CollisionShapes/OptimizedBvh.cpp',
+ 'Bullet/CollisionShapes/TriangleCallback.cpp',
+ 'Bullet/CollisionShapes/TriangleIndexVertexArray.cpp',
+
'Bullet/NarrowPhaseCollision/BU_AlgebraicPolynomialSolver.cpp',
'Bullet/NarrowPhaseCollision/BU_Collidable.cpp',
'Bullet/NarrowPhaseCollision/BU_CollisionPair.cpp',
@@ -73,7 +79,8 @@ bullet_sources = ['Bullet/BroadphaseCollision/BroadphaseProxy.cpp',
'Bullet/NarrowPhaseCollision/RaycastCallback.cpp',
'Bullet/NarrowPhaseCollision/SubSimplexConvexCast.cpp',
'Bullet/NarrowPhaseCollision/VoronoiSimplexSolver.cpp',
-
+ 'Bullet/NarrowPhaseCollision/ManifoldContactAddResult.cpp',
+
'BulletDynamics/CollisionDispatch/ConvexConcaveCollisionAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/ConvexConvexAlgorithm.cpp',
'BulletDynamics/CollisionDispatch/EmptyCollisionAlgorithm.cpp',
diff --git a/extern/bullet/make/msvc_7_0/Bullet3_vc7.vcproj b/extern/bullet/make/msvc_7_0/Bullet3_vc7.vcproj
index f0cd96247d2..60c6b02a924 100644
--- a/extern/bullet/make/msvc_7_0/Bullet3_vc7.vcproj
+++ b/extern/bullet/make/msvc_7_0/Bullet3_vc7.vcproj
@@ -717,9 +717,6 @@ ECHO Done
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_VertexPoly.h">
</File>
<File
- RelativePath="..\..\Bullet\NarrowPhaseCollision\CollisionMargin.h">
- </File>
- <File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ContinuousConvexCollision.h">
</File>
<File
@@ -797,6 +794,9 @@ ECHO Done
</FileConfiguration>
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\BvhTriangleMeshShape.cpp">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\CollisionShape.cpp">
<FileConfiguration
Name="Blender Debug|Win32">
@@ -905,6 +905,9 @@ ECHO Done
</FileConfiguration>
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\ConvexTriangleCallback.cpp">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\CylinderShape.cpp">
<FileConfiguration
Name="Blender Debug|Win32">
@@ -932,6 +935,9 @@ ECHO Done
</FileConfiguration>
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\EmptyShape.cpp">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\MinkowskiSumShape.cpp">
<FileConfiguration
Name="Blender Debug|Win32">
@@ -986,6 +992,9 @@ ECHO Done
</FileConfiguration>
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\OptimizedBvh.cpp">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\PolyhedralConvexShape.cpp">
<FileConfiguration
Name="Blender Debug|Win32">
@@ -1094,6 +1103,12 @@ ECHO Done
</FileConfiguration>
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\TriangleCallback.cpp">
+ </File>
+ <File
+ RelativePath="..\..\Bullet\CollisionShapes\TriangleIndexVertexArray.cpp">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\TriangleMesh.cpp">
<FileConfiguration
Name="Blender Debug|Win32">
@@ -1155,6 +1170,12 @@ ECHO Done
RelativePath="..\..\Bullet\CollisionShapes\BoxShape.h">
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\BvhTriangleMeshShape.h">
+ </File>
+ <File
+ RelativePath="..\..\Bullet\CollisionShapes\CollisionMargin.h">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\CollisionShape.h">
</File>
<File
@@ -1167,15 +1188,24 @@ ECHO Done
RelativePath="..\..\Bullet\CollisionShapes\ConvexShape.h">
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\ConvexTriangleCallback.h">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\CylinderShape.h">
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\EmptyShape.h">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\MinkowskiSumShape.h">
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\MultiSphereShape.h">
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\OptimizedBvh.h">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\PolyhedralConvexShape.h">
</File>
<File
@@ -1191,6 +1221,9 @@ ECHO Done
RelativePath="..\..\Bullet\CollisionShapes\TriangleCallback.h">
</File>
<File
+ RelativePath="..\..\Bullet\CollisionShapes\TriangleIndexVertexArray.h">
+ </File>
+ <File
RelativePath="..\..\Bullet\CollisionShapes\TriangleMesh.h">
</File>
<File