+ 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();
btCollisionShape* tmpShape0 = body0->getCollisionShape();
btCollisionShape* tmpShape1 = body1->getCollisionShape();
body0->setCollisionShape(shape0);
body1->setCollisionShape(shape1);
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();
btCollisionShape* tmpShape0 = body0->getCollisionShape();
btCollisionShape* tmpShape1 = body1->getCollisionShape();
body0->setCollisionShape(shape0);
body1->setCollisionShape(shape1);
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;
@@ -41,9 +41,18 @@ void SphereTriangleDetector::getClosestPoints(const ClosestPointInput& input,Res
btTransform sphereInTr = transformB.inverseTimes(transformA);
if (collide(sphereInTr.getOrigin(),point,normal,depth,timeOfImpact))
{
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

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

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

@@ -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());
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);
@@ -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;