+ fixed issue related to temporary/root collision shape in btCollisionObject

+ normalize plane normal input for btStaticPlaneShape
+ fixed issue related to swapped collision detectors (SphereTriangleDetector in particular)
Thanks a lot to Andrey Tuganov for reporting the issue and his reproduction case ( http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2143 )
This commit is contained in:
erwin.coumans
2008-07-11 05:39:31 +00:00
parent dcf9f8d857
commit 8f3e9603f3
23 changed files with 355 additions and 203 deletions

View File

@@ -226,11 +226,11 @@ void btGImpactCollisionAlgorithm::shape_vs_shape_collision(
btCollisionShape * shape1)
{
btCollisionShape * orgshape0 = body0->getCollisionShape();
btCollisionShape * orgshape1 = body1->getCollisionShape();
body0->setCollisionShape(shape0);
body1->setCollisionShape(shape1);
btCollisionShape* tmpShape0 = body0->getCollisionShape();
btCollisionShape* tmpShape1 = body1->getCollisionShape();
body0->internalSetTemporaryCollisionShape(shape0);
body1->internalSetTemporaryCollisionShape(shape1);
{
btCollisionAlgorithm* algor = newAlgorithm(body0,body1);
@@ -244,8 +244,8 @@ void btGImpactCollisionAlgorithm::shape_vs_shape_collision(
m_dispatcher->freeCollisionAlgorithm(algor);
}
body0->setCollisionShape(orgshape0);
body1->setCollisionShape(orgshape1);
body0->internalSetTemporaryCollisionShape(tmpShape0);
body1->internalSetTemporaryCollisionShape(tmpShape1);
}
void btGImpactCollisionAlgorithm::convex_vs_convex_collision(
@@ -255,11 +255,11 @@ void btGImpactCollisionAlgorithm::convex_vs_convex_collision(
btCollisionShape * shape1)
{
btCollisionShape * orgshape0 = body0->getCollisionShape();
btCollisionShape * orgshape1 = body1->getCollisionShape();
body0->setCollisionShape(shape0);
body1->setCollisionShape(shape1);
btCollisionShape* tmpShape0 = body0->getCollisionShape();
btCollisionShape* tmpShape1 = body1->getCollisionShape();
body0->internalSetTemporaryCollisionShape(shape0);
body1->internalSetTemporaryCollisionShape(shape1);
m_resultOut->setShapeIdentifiers(m_part0,m_triface0,m_part1,m_triface1);
@@ -267,8 +267,8 @@ void btGImpactCollisionAlgorithm::convex_vs_convex_collision(
checkConvexAlgorithm(body0,body1);
m_convex_algorithm->processCollision(body0,body1,*m_dispatchInfo,m_resultOut);
body0->setCollisionShape(orgshape0);
body1->setCollisionShape(orgshape1);
body0->internalSetTemporaryCollisionShape(tmpShape0);
body1->internalSetTemporaryCollisionShape(tmpShape1);
}

View File

@@ -328,6 +328,10 @@ SOURCE=..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.cpp
# End Source File
# Begin Source File
@@ -372,6 +376,10 @@ SOURCE=..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.cpp
# End Source File
# Begin Source File
@@ -620,10 +628,18 @@ SOURCE=..\..\src\BulletCollision\CollisionShapes\btHeightfieldTerrainShape.h
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btMaterial.h
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.h
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.h
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.h
# End Source File
# Begin Source File
@@ -668,6 +684,10 @@ SOURCE=..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.h
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.h
# End Source File
# Begin Source File
SOURCE=..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.h
# End Source File
# Begin Source File

View File

@@ -546,6 +546,30 @@ Package=<4>
###############################################################################
Project: "appMultiMaterialDemo"=.\appMultiMaterialDemo.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name libbulletcollision
End Project Dependency
Begin Project Dependency
Project_Dep_Name libbulletdynamics
End Project Dependency
Begin Project Dependency
Project_Dep_Name libbulletmath
End Project Dependency
Begin Project Dependency
Project_Dep_Name libbulletopenglsupport
End Project Dependency
}}}
###############################################################################
Project: "appMultiThreadedDemo"=.\appMultiThreadedDemo.dsp - Package Owner=<4>
Package=<5>
@@ -816,6 +840,9 @@ Package=<4>
Project_Dep_Name appMovingConcaveDemo
End Project Dependency
Begin Project Dependency
Project_Dep_Name appMultiMaterialDemo
End Project Dependency
Begin Project Dependency
Project_Dep_Name appMultiThreadedDemo
End Project Dependency
Begin Project Dependency
@@ -954,6 +981,9 @@ Package=<4>
Project_Dep_Name appMovingConcaveDemo
End Project Dependency
Begin Project Dependency
Project_Dep_Name appMultiMaterialDemo
End Project Dependency
Begin Project Dependency
Project_Dep_Name appMultiThreadedDemo
End Project Dependency
Begin Project Dependency

View File

@@ -412,6 +412,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.cpp">
</File>
@@ -445,6 +448,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.cpp">
</File>
@@ -632,9 +638,15 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btHeightfieldTerrainShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMaterial.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.h">
</File>
@@ -668,6 +680,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.h">
</File>

View File

@@ -42,6 +42,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appHelloWorld", "appHelloWo
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMovingConcaveDemo", "appMovingConcaveDemo.vcproj", "{2D714360-B8EC-F8E0-ED74-E95336301075}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMultiMaterialDemo", "appMultiMaterialDemo.vcproj", "{7C050627-6267-11A1-E342-374FA0095116}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMultiThreadedDemo", "appMultiThreadedDemo.vcproj", "{6D016A7B-39C8-2018-733F-22921BE94AC4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appRagdollDemo", "appRagdollDemo.vcproj", "{EFEF2072-51F9-DAE8-AC38-3E653C680F74}"
@@ -195,6 +197,10 @@ Global
{2D714360-B8EC-F8E0-ED74-E95336301075}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{2D714360-B8EC-F8E0-ED74-E95336301075}.3 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{2D714360-B8EC-F8E0-ED74-E95336301075}.4 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{7C050627-6267-11A1-E342-374FA0095116}.0 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{7C050627-6267-11A1-E342-374FA0095116}.1 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{7C050627-6267-11A1-E342-374FA0095116}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{7C050627-6267-11A1-E342-374FA0095116}.3 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.0 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.1 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
@@ -250,27 +256,28 @@ Global
{6210A080-01C0-6D67-F1DB-669393175402}.18 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{6210A080-01C0-6D67-F1DB-669393175402}.19 = {5239CE6A-7C7A-2170-6334-DF8EE0C44543}
{6210A080-01C0-6D67-F1DB-669393175402}.20 = {2D714360-B8EC-F8E0-ED74-E95336301075}
{6210A080-01C0-6D67-F1DB-669393175402}.21 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{6210A080-01C0-6D67-F1DB-669393175402}.22 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{6210A080-01C0-6D67-F1DB-669393175402}.23 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{6210A080-01C0-6D67-F1DB-669393175402}.24 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{6210A080-01C0-6D67-F1DB-669393175402}.25 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{6210A080-01C0-6D67-F1DB-669393175402}.26 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{6210A080-01C0-6D67-F1DB-669393175402}.27 = {330B5049-6935-5CE6-79B7-28F570962895}
{6210A080-01C0-6D67-F1DB-669393175402}.28 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{6210A080-01C0-6D67-F1DB-669393175402}.29 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{6210A080-01C0-6D67-F1DB-669393175402}.30 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6210A080-01C0-6D67-F1DB-669393175402}.31 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6210A080-01C0-6D67-F1DB-669393175402}.32 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{6210A080-01C0-6D67-F1DB-669393175402}.33 = {A24D77FD-D69A-75A0-A7DC-730894C9D0F7}
{6210A080-01C0-6D67-F1DB-669393175402}.34 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6210A080-01C0-6D67-F1DB-669393175402}.35 = {C04EA8AC-D96C-0E1F-0823-094C1010F087}
{6210A080-01C0-6D67-F1DB-669393175402}.36 = {6AB01C9C-9163-F400-B5C3-20D046631E17}
{6210A080-01C0-6D67-F1DB-669393175402}.37 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{6210A080-01C0-6D67-F1DB-669393175402}.38 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{6210A080-01C0-6D67-F1DB-669393175402}.39 = {B1B5F775-54A9-2437-E4AC-7E817E492142}
{6210A080-01C0-6D67-F1DB-669393175402}.40 = {81819498-F4A8-E0CA-8ED5-724E27AB34E7}
{6210A080-01C0-6D67-F1DB-669393175402}.41 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{6210A080-01C0-6D67-F1DB-669393175402}.21 = {7C050627-6267-11A1-E342-374FA0095116}
{6210A080-01C0-6D67-F1DB-669393175402}.22 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{6210A080-01C0-6D67-F1DB-669393175402}.23 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{6210A080-01C0-6D67-F1DB-669393175402}.24 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{6210A080-01C0-6D67-F1DB-669393175402}.25 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{6210A080-01C0-6D67-F1DB-669393175402}.26 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{6210A080-01C0-6D67-F1DB-669393175402}.27 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{6210A080-01C0-6D67-F1DB-669393175402}.28 = {330B5049-6935-5CE6-79B7-28F570962895}
{6210A080-01C0-6D67-F1DB-669393175402}.29 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{6210A080-01C0-6D67-F1DB-669393175402}.30 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{6210A080-01C0-6D67-F1DB-669393175402}.31 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6210A080-01C0-6D67-F1DB-669393175402}.32 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6210A080-01C0-6D67-F1DB-669393175402}.33 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{6210A080-01C0-6D67-F1DB-669393175402}.34 = {A24D77FD-D69A-75A0-A7DC-730894C9D0F7}
{6210A080-01C0-6D67-F1DB-669393175402}.35 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6210A080-01C0-6D67-F1DB-669393175402}.36 = {C04EA8AC-D96C-0E1F-0823-094C1010F087}
{6210A080-01C0-6D67-F1DB-669393175402}.37 = {6AB01C9C-9163-F400-B5C3-20D046631E17}
{6210A080-01C0-6D67-F1DB-669393175402}.38 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{6210A080-01C0-6D67-F1DB-669393175402}.39 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{6210A080-01C0-6D67-F1DB-669393175402}.40 = {B1B5F775-54A9-2437-E4AC-7E817E492142}
{6210A080-01C0-6D67-F1DB-669393175402}.41 = {81819498-F4A8-E0CA-8ED5-724E27AB34E7}
{6210A080-01C0-6D67-F1DB-669393175402}.42 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{9E59B16D-0924-409C-1611-DF2207A0053F}.0 = {7CE54E12-D3D5-878F-9CC5-786265A3F9CE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.1 = {3578834A-4B06-DE6F-78AC-FE11F7226D35}
{9E59B16D-0924-409C-1611-DF2207A0053F}.2 = {67034B5D-16DD-DC97-82F6-23B9E6108940}
@@ -292,14 +299,15 @@ Global
{9E59B16D-0924-409C-1611-DF2207A0053F}.18 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{9E59B16D-0924-409C-1611-DF2207A0053F}.19 = {5239CE6A-7C7A-2170-6334-DF8EE0C44543}
{9E59B16D-0924-409C-1611-DF2207A0053F}.20 = {2D714360-B8EC-F8E0-ED74-E95336301075}
{9E59B16D-0924-409C-1611-DF2207A0053F}.21 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{9E59B16D-0924-409C-1611-DF2207A0053F}.22 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{9E59B16D-0924-409C-1611-DF2207A0053F}.23 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{9E59B16D-0924-409C-1611-DF2207A0053F}.24 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{9E59B16D-0924-409C-1611-DF2207A0053F}.25 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.26 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.27 = {330B5049-6935-5CE6-79B7-28F570962895}
{9E59B16D-0924-409C-1611-DF2207A0053F}.28 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.21 = {7C050627-6267-11A1-E342-374FA0095116}
{9E59B16D-0924-409C-1611-DF2207A0053F}.22 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{9E59B16D-0924-409C-1611-DF2207A0053F}.23 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{9E59B16D-0924-409C-1611-DF2207A0053F}.24 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{9E59B16D-0924-409C-1611-DF2207A0053F}.25 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{9E59B16D-0924-409C-1611-DF2207A0053F}.26 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.27 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.28 = {330B5049-6935-5CE6-79B7-28F570962895}
{9E59B16D-0924-409C-1611-DF2207A0053F}.29 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.0 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.1 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
@@ -483,6 +491,14 @@ Global
{2D714360-B8EC-F8E0-ED74-E95336301075}.Debug.Build.0 = Debug|Win32
{2D714360-B8EC-F8E0-ED74-E95336301075}.DebugDoublePrecision.ActiveCfg = DebugDoublePrecision|Win32
{2D714360-B8EC-F8E0-ED74-E95336301075}.DebugDoublePrecision.Build.0 = DebugDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Release.ActiveCfg = Release|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Release.Build.0 = Release|Win32
{7C050627-6267-11A1-E342-374FA0095116}.ReleaseDoublePrecision.ActiveCfg = ReleaseDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.ReleaseDoublePrecision.Build.0 = ReleaseDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Debug.ActiveCfg = Debug|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Debug.Build.0 = Debug|Win32
{7C050627-6267-11A1-E342-374FA0095116}.DebugDoublePrecision.ActiveCfg = DebugDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.DebugDoublePrecision.Build.0 = DebugDoublePrecision|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.Release.ActiveCfg = Release|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.Release.Build.0 = Release|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.ReleaseDoublePrecision.ActiveCfg = ReleaseDoublePrecision|Win32

View File

@@ -412,6 +412,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.cpp">
</File>
@@ -445,6 +448,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.cpp">
</File>
@@ -632,9 +638,15 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btHeightfieldTerrainShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMaterial.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.h">
</File>
@@ -668,6 +680,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.h">
</File>

View File

@@ -42,6 +42,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appHelloWorld", "appHelloWo
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMovingConcaveDemo", "appMovingConcaveDemo.vcproj", "{2D714360-B8EC-F8E0-ED74-E95336301075}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMultiMaterialDemo", "appMultiMaterialDemo.vcproj", "{7C050627-6267-11A1-E342-374FA0095116}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMultiThreadedDemo", "appMultiThreadedDemo.vcproj", "{6D016A7B-39C8-2018-733F-22921BE94AC4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appRagdollDemo", "appRagdollDemo.vcproj", "{EFEF2072-51F9-DAE8-AC38-3E653C680F74}"
@@ -195,6 +197,10 @@ Global
{2D714360-B8EC-F8E0-ED74-E95336301075}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{2D714360-B8EC-F8E0-ED74-E95336301075}.3 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{2D714360-B8EC-F8E0-ED74-E95336301075}.4 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{7C050627-6267-11A1-E342-374FA0095116}.0 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{7C050627-6267-11A1-E342-374FA0095116}.1 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{7C050627-6267-11A1-E342-374FA0095116}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{7C050627-6267-11A1-E342-374FA0095116}.3 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.0 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.1 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
@@ -250,27 +256,28 @@ Global
{6210A080-01C0-6D67-F1DB-669393175402}.18 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{6210A080-01C0-6D67-F1DB-669393175402}.19 = {5239CE6A-7C7A-2170-6334-DF8EE0C44543}
{6210A080-01C0-6D67-F1DB-669393175402}.20 = {2D714360-B8EC-F8E0-ED74-E95336301075}
{6210A080-01C0-6D67-F1DB-669393175402}.21 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{6210A080-01C0-6D67-F1DB-669393175402}.22 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{6210A080-01C0-6D67-F1DB-669393175402}.23 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{6210A080-01C0-6D67-F1DB-669393175402}.24 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{6210A080-01C0-6D67-F1DB-669393175402}.25 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{6210A080-01C0-6D67-F1DB-669393175402}.26 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{6210A080-01C0-6D67-F1DB-669393175402}.27 = {330B5049-6935-5CE6-79B7-28F570962895}
{6210A080-01C0-6D67-F1DB-669393175402}.28 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{6210A080-01C0-6D67-F1DB-669393175402}.29 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{6210A080-01C0-6D67-F1DB-669393175402}.30 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6210A080-01C0-6D67-F1DB-669393175402}.31 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6210A080-01C0-6D67-F1DB-669393175402}.32 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{6210A080-01C0-6D67-F1DB-669393175402}.33 = {A24D77FD-D69A-75A0-A7DC-730894C9D0F7}
{6210A080-01C0-6D67-F1DB-669393175402}.34 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6210A080-01C0-6D67-F1DB-669393175402}.35 = {C04EA8AC-D96C-0E1F-0823-094C1010F087}
{6210A080-01C0-6D67-F1DB-669393175402}.36 = {6AB01C9C-9163-F400-B5C3-20D046631E17}
{6210A080-01C0-6D67-F1DB-669393175402}.37 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{6210A080-01C0-6D67-F1DB-669393175402}.38 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{6210A080-01C0-6D67-F1DB-669393175402}.39 = {B1B5F775-54A9-2437-E4AC-7E817E492142}
{6210A080-01C0-6D67-F1DB-669393175402}.40 = {81819498-F4A8-E0CA-8ED5-724E27AB34E7}
{6210A080-01C0-6D67-F1DB-669393175402}.41 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{6210A080-01C0-6D67-F1DB-669393175402}.21 = {7C050627-6267-11A1-E342-374FA0095116}
{6210A080-01C0-6D67-F1DB-669393175402}.22 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{6210A080-01C0-6D67-F1DB-669393175402}.23 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{6210A080-01C0-6D67-F1DB-669393175402}.24 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{6210A080-01C0-6D67-F1DB-669393175402}.25 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{6210A080-01C0-6D67-F1DB-669393175402}.26 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{6210A080-01C0-6D67-F1DB-669393175402}.27 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{6210A080-01C0-6D67-F1DB-669393175402}.28 = {330B5049-6935-5CE6-79B7-28F570962895}
{6210A080-01C0-6D67-F1DB-669393175402}.29 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{6210A080-01C0-6D67-F1DB-669393175402}.30 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{6210A080-01C0-6D67-F1DB-669393175402}.31 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6210A080-01C0-6D67-F1DB-669393175402}.32 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6210A080-01C0-6D67-F1DB-669393175402}.33 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{6210A080-01C0-6D67-F1DB-669393175402}.34 = {A24D77FD-D69A-75A0-A7DC-730894C9D0F7}
{6210A080-01C0-6D67-F1DB-669393175402}.35 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6210A080-01C0-6D67-F1DB-669393175402}.36 = {C04EA8AC-D96C-0E1F-0823-094C1010F087}
{6210A080-01C0-6D67-F1DB-669393175402}.37 = {6AB01C9C-9163-F400-B5C3-20D046631E17}
{6210A080-01C0-6D67-F1DB-669393175402}.38 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{6210A080-01C0-6D67-F1DB-669393175402}.39 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{6210A080-01C0-6D67-F1DB-669393175402}.40 = {B1B5F775-54A9-2437-E4AC-7E817E492142}
{6210A080-01C0-6D67-F1DB-669393175402}.41 = {81819498-F4A8-E0CA-8ED5-724E27AB34E7}
{6210A080-01C0-6D67-F1DB-669393175402}.42 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{9E59B16D-0924-409C-1611-DF2207A0053F}.0 = {7CE54E12-D3D5-878F-9CC5-786265A3F9CE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.1 = {3578834A-4B06-DE6F-78AC-FE11F7226D35}
{9E59B16D-0924-409C-1611-DF2207A0053F}.2 = {67034B5D-16DD-DC97-82F6-23B9E6108940}
@@ -292,14 +299,15 @@ Global
{9E59B16D-0924-409C-1611-DF2207A0053F}.18 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{9E59B16D-0924-409C-1611-DF2207A0053F}.19 = {5239CE6A-7C7A-2170-6334-DF8EE0C44543}
{9E59B16D-0924-409C-1611-DF2207A0053F}.20 = {2D714360-B8EC-F8E0-ED74-E95336301075}
{9E59B16D-0924-409C-1611-DF2207A0053F}.21 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{9E59B16D-0924-409C-1611-DF2207A0053F}.22 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{9E59B16D-0924-409C-1611-DF2207A0053F}.23 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{9E59B16D-0924-409C-1611-DF2207A0053F}.24 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{9E59B16D-0924-409C-1611-DF2207A0053F}.25 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.26 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.27 = {330B5049-6935-5CE6-79B7-28F570962895}
{9E59B16D-0924-409C-1611-DF2207A0053F}.28 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.21 = {7C050627-6267-11A1-E342-374FA0095116}
{9E59B16D-0924-409C-1611-DF2207A0053F}.22 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{9E59B16D-0924-409C-1611-DF2207A0053F}.23 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{9E59B16D-0924-409C-1611-DF2207A0053F}.24 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{9E59B16D-0924-409C-1611-DF2207A0053F}.25 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{9E59B16D-0924-409C-1611-DF2207A0053F}.26 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.27 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.28 = {330B5049-6935-5CE6-79B7-28F570962895}
{9E59B16D-0924-409C-1611-DF2207A0053F}.29 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.0 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.1 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
@@ -483,6 +491,14 @@ Global
{2D714360-B8EC-F8E0-ED74-E95336301075}.Debug.Build.0 = Debug|Win32
{2D714360-B8EC-F8E0-ED74-E95336301075}.DebugDoublePrecision.ActiveCfg = DebugDoublePrecision|Win32
{2D714360-B8EC-F8E0-ED74-E95336301075}.DebugDoublePrecision.Build.0 = DebugDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Release.ActiveCfg = Release|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Release.Build.0 = Release|Win32
{7C050627-6267-11A1-E342-374FA0095116}.ReleaseDoublePrecision.ActiveCfg = ReleaseDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.ReleaseDoublePrecision.Build.0 = ReleaseDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Debug.ActiveCfg = Debug|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Debug.Build.0 = Debug|Win32
{7C050627-6267-11A1-E342-374FA0095116}.DebugDoublePrecision.ActiveCfg = DebugDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.DebugDoublePrecision.Build.0 = DebugDoublePrecision|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.Release.ActiveCfg = Release|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.Release.Build.0 = Release|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.ReleaseDoublePrecision.ActiveCfg = ReleaseDoublePrecision|Win32

View File

@@ -412,6 +412,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.cpp">
</File>
@@ -445,6 +448,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.cpp">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.cpp">
</File>
@@ -632,9 +638,15 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btHeightfieldTerrainShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMaterial.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMinkowskiSumShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultimaterialTriangleMeshShape.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btMultiSphereShape.h">
</File>
@@ -668,6 +680,9 @@
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexArray.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleIndexVertexMaterialArray.h">
</File>
<File
RelativePath="..\..\src\BulletCollision\CollisionShapes\btTriangleMesh.h">
</File>

View File

@@ -42,6 +42,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appHelloWorld", "appHelloWo
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMovingConcaveDemo", "appMovingConcaveDemo.vcproj", "{2D714360-B8EC-F8E0-ED74-E95336301075}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMultiMaterialDemo", "appMultiMaterialDemo.vcproj", "{7C050627-6267-11A1-E342-374FA0095116}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appMultiThreadedDemo", "appMultiThreadedDemo.vcproj", "{6D016A7B-39C8-2018-733F-22921BE94AC4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appRagdollDemo", "appRagdollDemo.vcproj", "{EFEF2072-51F9-DAE8-AC38-3E653C680F74}"
@@ -195,6 +197,10 @@ Global
{2D714360-B8EC-F8E0-ED74-E95336301075}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{2D714360-B8EC-F8E0-ED74-E95336301075}.3 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{2D714360-B8EC-F8E0-ED74-E95336301075}.4 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{7C050627-6267-11A1-E342-374FA0095116}.0 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{7C050627-6267-11A1-E342-374FA0095116}.1 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{7C050627-6267-11A1-E342-374FA0095116}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{7C050627-6267-11A1-E342-374FA0095116}.3 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.0 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.1 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6D016A7B-39C8-2018-733F-22921BE94AC4}.2 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
@@ -250,27 +256,28 @@ Global
{6210A080-01C0-6D67-F1DB-669393175402}.18 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{6210A080-01C0-6D67-F1DB-669393175402}.19 = {5239CE6A-7C7A-2170-6334-DF8EE0C44543}
{6210A080-01C0-6D67-F1DB-669393175402}.20 = {2D714360-B8EC-F8E0-ED74-E95336301075}
{6210A080-01C0-6D67-F1DB-669393175402}.21 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{6210A080-01C0-6D67-F1DB-669393175402}.22 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{6210A080-01C0-6D67-F1DB-669393175402}.23 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{6210A080-01C0-6D67-F1DB-669393175402}.24 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{6210A080-01C0-6D67-F1DB-669393175402}.25 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{6210A080-01C0-6D67-F1DB-669393175402}.26 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{6210A080-01C0-6D67-F1DB-669393175402}.27 = {330B5049-6935-5CE6-79B7-28F570962895}
{6210A080-01C0-6D67-F1DB-669393175402}.28 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{6210A080-01C0-6D67-F1DB-669393175402}.29 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{6210A080-01C0-6D67-F1DB-669393175402}.30 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6210A080-01C0-6D67-F1DB-669393175402}.31 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6210A080-01C0-6D67-F1DB-669393175402}.32 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{6210A080-01C0-6D67-F1DB-669393175402}.33 = {A24D77FD-D69A-75A0-A7DC-730894C9D0F7}
{6210A080-01C0-6D67-F1DB-669393175402}.34 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6210A080-01C0-6D67-F1DB-669393175402}.35 = {C04EA8AC-D96C-0E1F-0823-094C1010F087}
{6210A080-01C0-6D67-F1DB-669393175402}.36 = {6AB01C9C-9163-F400-B5C3-20D046631E17}
{6210A080-01C0-6D67-F1DB-669393175402}.37 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{6210A080-01C0-6D67-F1DB-669393175402}.38 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{6210A080-01C0-6D67-F1DB-669393175402}.39 = {B1B5F775-54A9-2437-E4AC-7E817E492142}
{6210A080-01C0-6D67-F1DB-669393175402}.40 = {81819498-F4A8-E0CA-8ED5-724E27AB34E7}
{6210A080-01C0-6D67-F1DB-669393175402}.41 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{6210A080-01C0-6D67-F1DB-669393175402}.21 = {7C050627-6267-11A1-E342-374FA0095116}
{6210A080-01C0-6D67-F1DB-669393175402}.22 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{6210A080-01C0-6D67-F1DB-669393175402}.23 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{6210A080-01C0-6D67-F1DB-669393175402}.24 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{6210A080-01C0-6D67-F1DB-669393175402}.25 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{6210A080-01C0-6D67-F1DB-669393175402}.26 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{6210A080-01C0-6D67-F1DB-669393175402}.27 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{6210A080-01C0-6D67-F1DB-669393175402}.28 = {330B5049-6935-5CE6-79B7-28F570962895}
{6210A080-01C0-6D67-F1DB-669393175402}.29 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{6210A080-01C0-6D67-F1DB-669393175402}.30 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{6210A080-01C0-6D67-F1DB-669393175402}.31 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{6210A080-01C0-6D67-F1DB-669393175402}.32 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6210A080-01C0-6D67-F1DB-669393175402}.33 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{6210A080-01C0-6D67-F1DB-669393175402}.34 = {A24D77FD-D69A-75A0-A7DC-730894C9D0F7}
{6210A080-01C0-6D67-F1DB-669393175402}.35 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6210A080-01C0-6D67-F1DB-669393175402}.36 = {C04EA8AC-D96C-0E1F-0823-094C1010F087}
{6210A080-01C0-6D67-F1DB-669393175402}.37 = {6AB01C9C-9163-F400-B5C3-20D046631E17}
{6210A080-01C0-6D67-F1DB-669393175402}.38 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{6210A080-01C0-6D67-F1DB-669393175402}.39 = {F8318FC6-B9C4-D5A1-DCC0-C9CE42ADAE22}
{6210A080-01C0-6D67-F1DB-669393175402}.40 = {B1B5F775-54A9-2437-E4AC-7E817E492142}
{6210A080-01C0-6D67-F1DB-669393175402}.41 = {81819498-F4A8-E0CA-8ED5-724E27AB34E7}
{6210A080-01C0-6D67-F1DB-669393175402}.42 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{9E59B16D-0924-409C-1611-DF2207A0053F}.0 = {7CE54E12-D3D5-878F-9CC5-786265A3F9CE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.1 = {3578834A-4B06-DE6F-78AC-FE11F7226D35}
{9E59B16D-0924-409C-1611-DF2207A0053F}.2 = {67034B5D-16DD-DC97-82F6-23B9E6108940}
@@ -292,14 +299,15 @@ Global
{9E59B16D-0924-409C-1611-DF2207A0053F}.18 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{9E59B16D-0924-409C-1611-DF2207A0053F}.19 = {5239CE6A-7C7A-2170-6334-DF8EE0C44543}
{9E59B16D-0924-409C-1611-DF2207A0053F}.20 = {2D714360-B8EC-F8E0-ED74-E95336301075}
{9E59B16D-0924-409C-1611-DF2207A0053F}.21 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{9E59B16D-0924-409C-1611-DF2207A0053F}.22 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{9E59B16D-0924-409C-1611-DF2207A0053F}.23 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{9E59B16D-0924-409C-1611-DF2207A0053F}.24 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{9E59B16D-0924-409C-1611-DF2207A0053F}.25 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.26 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.27 = {330B5049-6935-5CE6-79B7-28F570962895}
{9E59B16D-0924-409C-1611-DF2207A0053F}.28 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.21 = {7C050627-6267-11A1-E342-374FA0095116}
{9E59B16D-0924-409C-1611-DF2207A0053F}.22 = {6D016A7B-39C8-2018-733F-22921BE94AC4}
{9E59B16D-0924-409C-1611-DF2207A0053F}.23 = {EFEF2072-51F9-DAE8-AC38-3E653C680F74}
{9E59B16D-0924-409C-1611-DF2207A0053F}.24 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{9E59B16D-0924-409C-1611-DF2207A0053F}.25 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{9E59B16D-0924-409C-1611-DF2207A0053F}.26 = {E7461CAA-D8C1-90D0-FB1E-FCD4F340FAAE}
{9E59B16D-0924-409C-1611-DF2207A0053F}.27 = {106E3D23-110E-5DD8-4A6A-D8A2250C43C9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.28 = {330B5049-6935-5CE6-79B7-28F570962895}
{9E59B16D-0924-409C-1611-DF2207A0053F}.29 = {07E712DB-DAF8-887E-F099-CE43D4E8B1F9}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.0 = {ED51AA4D-82EF-089C-CD6D-91CF224E2A9E}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.1 = {6ADA430D-009C-2ED4-A787-2AC2D6FEB8CE}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
@@ -483,6 +491,14 @@ Global
{2D714360-B8EC-F8E0-ED74-E95336301075}.Debug.Build.0 = Debug|Win32
{2D714360-B8EC-F8E0-ED74-E95336301075}.DebugDoublePrecision.ActiveCfg = DebugDoublePrecision|Win32
{2D714360-B8EC-F8E0-ED74-E95336301075}.DebugDoublePrecision.Build.0 = DebugDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Release.ActiveCfg = Release|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Release.Build.0 = Release|Win32
{7C050627-6267-11A1-E342-374FA0095116}.ReleaseDoublePrecision.ActiveCfg = ReleaseDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.ReleaseDoublePrecision.Build.0 = ReleaseDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Debug.ActiveCfg = Debug|Win32
{7C050627-6267-11A1-E342-374FA0095116}.Debug.Build.0 = Debug|Win32
{7C050627-6267-11A1-E342-374FA0095116}.DebugDoublePrecision.ActiveCfg = DebugDoublePrecision|Win32
{7C050627-6267-11A1-E342-374FA0095116}.DebugDoublePrecision.Build.0 = DebugDoublePrecision|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.Release.ActiveCfg = Release|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.Release.Build.0 = Release|Win32
{6D016A7B-39C8-2018-733F-22921BE94AC4}.ReleaseDoublePrecision.ActiveCfg = ReleaseDoublePrecision|Win32

View File

@@ -26,7 +26,7 @@ m_triangle(triangle)
}
void SphereTriangleDetector::getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw)
void SphereTriangleDetector::getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults)
{
(void)debugDraw;
@@ -42,7 +42,16 @@ void SphereTriangleDetector::getClosestPoints(const ClosestPointInput& input,Res
if (collide(sphereInTr.getOrigin(),point,normal,depth,timeOfImpact))
{
output.addContactPoint(transformB.getBasis()*normal,transformB*point,depth);
if (swapResults)
{
btVector3 normalOnB = transformB.getBasis()*normal;
btVector3 normalOnA = -normalOnB;
btVector3 pointOnA = transformB*point+normalOnB*depth;
output.addContactPoint(normalOnA,pointOnA,depth);
} else
{
output.addContactPoint(transformB.getBasis()*normal,transformB*point,depth);
}
}
}

View File

@@ -28,7 +28,7 @@ class btTriangleShape;
/// sphere-triangle to match the btDiscreteCollisionDetectorInterface
struct SphereTriangleDetector : public btDiscreteCollisionDetectorInterface
{
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw);
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false);
SphereTriangleDetector(btSphereShape* sphere,btTriangleShape* triangle);

View File

@@ -635,7 +635,7 @@ int dBoxBox2 (const btVector3& p1, const dMatrix3 R1,
return cnum;
}
void btBoxBoxDetector::getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* /*debugDraw*/)
void btBoxBoxDetector::getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* /*debugDraw*/,bool /*swapResults*/)
{
const btTransform& transformA = input.m_transformA;

View File

@@ -37,7 +37,7 @@ public:
virtual ~btBoxBoxDetector() {};
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw);
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false);
};

View File

@@ -33,10 +33,11 @@ m_isSwapped(isSwapped)
m_childCollisionAlgorithms.resize(numChildren);
for (i=0;i<numChildren;i++)
{
btCollisionShape* tmpShape = colObj->getCollisionShape();
btCollisionShape* childShape = compoundShape->getChildShape(i);
colObj->internalSetTemporaryCollisionShape( childShape );
m_childCollisionAlgorithms[i] = ci.m_dispatcher1->findAlgorithm(colObj,otherObj);
colObj->setCollisionShape( colObj->getRootCollisionShape());
colObj->internalSetTemporaryCollisionShape( tmpShape );
}
}
@@ -78,18 +79,17 @@ void btCompoundCollisionAlgorithm::processCollision (btCollisionObject* body0,bt
btTransform orgTrans = colObj->getWorldTransform();
btTransform orgInterpolationTrans = colObj->getInterpolationWorldTransform();
btCollisionShape* orgShape = colObj->getCollisionShape();
const btTransform& childTrans = compoundShape->getChildTransform(i);
btTransform newChildWorldTrans = orgTrans*childTrans ;
colObj->setWorldTransform( newChildWorldTrans);
colObj->setInterpolationWorldTransform(newChildWorldTrans);
//the contactpoint is still projected back using the original inverted worldtrans
colObj->setCollisionShape( childShape );
btCollisionShape* tmpShape = colObj->getCollisionShape();
colObj->internalSetTemporaryCollisionShape( childShape );
m_childCollisionAlgorithms[i]->processCollision(colObj,otherObj,dispatchInfo,resultOut);
//revert back
colObj->setCollisionShape( orgShape);
colObj->internalSetTemporaryCollisionShape( tmpShape);
colObj->setWorldTransform( orgTrans );
colObj->setInterpolationWorldTransform(orgInterpolationTrans);
}
@@ -123,20 +123,20 @@ btScalar btCompoundCollisionAlgorithm::calculateTimeOfImpact(btCollisionObject*
//backup
btTransform orgTrans = colObj->getWorldTransform();
btCollisionShape* orgShape = colObj->getCollisionShape();
const btTransform& childTrans = compoundShape->getChildTransform(i);
//btTransform newChildWorldTrans = orgTrans*childTrans ;
colObj->setWorldTransform( orgTrans*childTrans );
colObj->setCollisionShape( childShape );
btCollisionShape* tmpShape = colObj->getCollisionShape();
colObj->internalSetTemporaryCollisionShape( childShape );
btScalar frac = m_childCollisionAlgorithms[i]->calculateTimeOfImpact(colObj,otherObj,dispatchInfo,resultOut);
if (frac<hitFraction)
{
hitFraction = frac;
}
//revert back
colObj->setCollisionShape( orgShape);
colObj->internalSetTemporaryCollisionShape( tmpShape);
colObj->setWorldTransform( orgTrans);
}
return hitFraction;

View File

@@ -117,6 +117,7 @@ void btConvexTriangleCallback::processTriangle(btVector3* triangle,int partId, i
btTriangleShape tm(triangle[0],triangle[1],triangle[2]);
tm.setMargin(m_collisionMarginTriangle);
btCollisionShape* tmpShape = ob->getCollisionShape();
ob->internalSetTemporaryCollisionShape( &tm );
btCollisionAlgorithm* colAlgo = ci.m_dispatcher1->findAlgorithm(m_convexBody,m_triBody,m_manifoldPtr);
@@ -129,7 +130,7 @@ void btConvexTriangleCallback::processTriangle(btVector3* triangle,int partId, i
colAlgo->processCollision(m_convexBody,m_triBody,*m_dispatchInfoPtr,m_resultOut);
colAlgo->~btCollisionAlgorithm();
ci.m_dispatcher1->freeCollisionAlgorithm(colAlgo);
ob->setCollisionShape( ob->getRootCollisionShape());
ob->internalSetTemporaryCollisionShape( tmpShape);
}

View File

@@ -247,6 +247,8 @@ btCollisionAlgorithmCreateFunc* btDefaultCollisionConfiguration::getCollisionAlg
{
return m_planeConvexCF;
}
if (btBroadphaseProxy::isConvex(proxyType0) && btBroadphaseProxy::isConvex(proxyType1))
{

View File

@@ -60,10 +60,12 @@ void btSphereTriangleCollisionAlgorithm::processCollision (btCollisionObject* co
btDiscreteCollisionDetectorInterface::ClosestPointInput input;
input.m_maximumDistanceSquared = btScalar(1e30);//todo: tighter bounds
input.m_transformA = col0->getWorldTransform();
input.m_transformB = col1->getWorldTransform();
input.m_transformA = sphereObj->getWorldTransform();
input.m_transformB = triObj->getWorldTransform();
detector.getClosestPoints(input,*resultOut,dispatchInfo.m_debugDraw);
bool swapResults = m_swapped && !m_ownManifold;
detector.getClosestPoints(input,*resultOut,dispatchInfo.m_debugDraw,swapResults);
if (m_ownManifold)
resultOut->refreshContactPoints();

View File

@@ -1,69 +1,69 @@
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#ifndef SPHERE_TRIANGLE_COLLISION_ALGORITHM_H
#define SPHERE_TRIANGLE_COLLISION_ALGORITHM_H
#include "BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h"
#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
#include "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h"
class btPersistentManifold;
#include "btCollisionDispatcher.h"
/// btSphereSphereCollisionAlgorithm provides sphere-sphere collision detection.
/// Other features are frame-coherency (persistent data) and collision response.
/// Also provides the most basic sample for custom/user btCollisionAlgorithm
class btSphereTriangleCollisionAlgorithm : public btCollisionAlgorithm
{
bool m_ownManifold;
btPersistentManifold* m_manifoldPtr;
bool m_swapped;
public:
btSphereTriangleCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool swapped);
btSphereTriangleCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)
: btCollisionAlgorithm(ci) {}
virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);
virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#ifndef SPHERE_TRIANGLE_COLLISION_ALGORITHM_H
#define SPHERE_TRIANGLE_COLLISION_ALGORITHM_H
#include "BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h"
#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
#include "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h"
class btPersistentManifold;
#include "btCollisionDispatcher.h"
/// btSphereSphereCollisionAlgorithm provides sphere-sphere collision detection.
/// Other features are frame-coherency (persistent data) and collision response.
/// Also provides the most basic sample for custom/user btCollisionAlgorithm
class btSphereTriangleCollisionAlgorithm : public btCollisionAlgorithm
{
bool m_ownManifold;
btPersistentManifold* m_manifoldPtr;
bool m_swapped;
public:
btSphereTriangleCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool swapped);
btSphereTriangleCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)
: btCollisionAlgorithm(ci) {}
virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);
virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);
virtual void getAllContactManifolds(btManifoldArray& manifoldArray)
{
if (m_manifoldPtr && m_ownManifold)
{
manifoldArray.push_back(m_manifoldPtr);
}
}
virtual ~btSphereTriangleCollisionAlgorithm();
struct CreateFunc :public btCollisionAlgorithmCreateFunc
{
virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)
{
void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereTriangleCollisionAlgorithm));
return new(mem) btSphereTriangleCollisionAlgorithm(ci.m_manifold,ci,body0,body1,m_swapped);
}
};
};
#endif //SPHERE_TRIANGLE_COLLISION_ALGORITHM_H
}
virtual ~btSphereTriangleCollisionAlgorithm();
struct CreateFunc :public btCollisionAlgorithmCreateFunc
{
virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)
{
void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereTriangleCollisionAlgorithm));
return new(mem) btSphereTriangleCollisionAlgorithm(ci.m_manifold,ci,body0,body1,m_swapped);
}
};
};
#endif //SPHERE_TRIANGLE_COLLISION_ALGORITHM_H

View File

@@ -19,10 +19,11 @@ subject to the following restrictions:
btStaticPlaneShape::btStaticPlaneShape(const btVector3& planeNormal,btScalar planeConstant)
:m_planeNormal(planeNormal),
:m_planeNormal(planeNormal.normalized()),
m_planeConstant(planeConstant),
m_localScaling(btScalar(0.),btScalar(0.),btScalar(0.))
{
// btAssert( btFuzzyZero(m_planeNormal.length() - btScalar(1.)) );
}

View File

@@ -58,7 +58,7 @@ struct btDiscreteCollisionDetectorInterface
// give either closest points (distance > 0) or penetration (distance)
// the normal always points from B towards A
//
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw) = 0;
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false) = 0;
};

View File

@@ -47,7 +47,7 @@ m_catchDegeneracies(1)
{
}
void btGjkPairDetector::getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw)
void btGjkPairDetector::getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults)
{
btScalar distance=btScalar(0.);
btVector3 normalInB(btScalar(0.),btScalar(0.),btScalar(0.));

View File

@@ -52,7 +52,7 @@ public:
btGjkPairDetector(const btConvexShape* objectA,const btConvexShape* objectB,btSimplexSolverInterface* simplexSolver,btConvexPenetrationDepthSolver* penetrationDepthSolver);
virtual ~btGjkPairDetector() {};
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw);
virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false);
void setMinkowskiA(btConvexShape* minkA)
{

View File

@@ -127,25 +127,19 @@ btCollisionObject* ob = static_cast<btCollisionObject*>(m_triBody);
{
btCollisionShape* tm = shapeCache[partId][triangleIndex];
btCollisionShape* tmpShape = ob->getCollisionShape();
//copy over user pointers to temporary shape
tm->setUserPointer(tmpShape->getUserPointer());
tm->setUserPointer(ob->getRootCollisionShape()->getUserPointer());
ob->setCollisionShape( tm );
btCollisionShape* tmpShape = ob->getCollisionShape();
ob->internalSetTemporaryCollisionShape( tm );
btCollisionAlgorithm* colAlgo = ci.m_dispatcher1->findAlgorithm(m_softBody,m_triBody,0);//m_manifoldPtr);
///this should use the btDispatcher, so the actual registered algorithm is used
// btConvexConvexAlgorithm cvxcvxalgo(m_manifoldPtr,ci,m_convexBody,m_triBody);
//m_resultOut->setShapeIdentifiers(-1,-1,partId,triangleIndex);
// cvxcvxalgo.setShapeIdentifiers(-1,-1,partId,triangleIndex);
// cvxcvxalgo.processCollision(m_convexBody,m_triBody,*m_dispatchInfoPtr,m_resultOut);
colAlgo->processCollision(m_softBody,m_triBody,*m_dispatchInfoPtr,m_resultOut);
colAlgo->~btCollisionAlgorithm();
ci.m_dispatcher1->freeCollisionAlgorithm(colAlgo);
ob->setCollisionShape( tmpShape );
ob->internalSetTemporaryCollisionShape( tmpShape);
return;
}
@@ -182,12 +176,12 @@ btCollisionObject* ob = static_cast<btCollisionObject*>(m_triBody);
//btTriangleShape tm(triangle[0],triangle[1],triangle[2]);
// tm.setMargin(m_collisionMarginTriangle);
btCollisionShape* tmpShape = ob->getCollisionShape();
//copy over user pointers to temporary shape
tm->setUserPointer(tmpShape->getUserPointer());
ob->setCollisionShape( tm );
//copy over user pointers to temporary shape
tm->setUserPointer(ob->getRootCollisionShape()->getUserPointer());
btCollisionShape* tmpShape = ob->getCollisionShape();
ob->internalSetTemporaryCollisionShape( tm );
btCollisionAlgorithm* colAlgo = ci.m_dispatcher1->findAlgorithm(m_softBody,m_triBody,0);//m_manifoldPtr);
@@ -200,7 +194,7 @@ btCollisionObject* ob = static_cast<btCollisionObject*>(m_triBody);
colAlgo->processCollision(m_softBody,m_triBody,*m_dispatchInfoPtr,m_resultOut);
colAlgo->~btCollisionAlgorithm();
ci.m_dispatcher1->freeCollisionAlgorithm(colAlgo);
ob->setCollisionShape( tmpShape );
ob->internalSetTemporaryCollisionShape( tmpShape );
// delete tm;
shapeCache[partId][triangleIndex] = tm;