+ 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:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -247,6 +247,8 @@ btCollisionAlgorithmCreateFunc* btDefaultCollisionConfiguration::getCollisionAlg
|
||||
{
|
||||
return m_planeConvexCF;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (btBroadphaseProxy::isConvex(proxyType0) && btBroadphaseProxy::isConvex(proxyType1))
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.)) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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.));
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user