diff options
Diffstat (limited to 'libraries/ModifiedBulletX/ModifiedBulletX/Collision/NarrowPhaseCollision/GjkEpaPenetrationDepthSolver.cs')
-rw-r--r-- | libraries/ModifiedBulletX/ModifiedBulletX/Collision/NarrowPhaseCollision/GjkEpaPenetrationDepthSolver.cs | 112 |
1 files changed, 56 insertions, 56 deletions
diff --git a/libraries/ModifiedBulletX/ModifiedBulletX/Collision/NarrowPhaseCollision/GjkEpaPenetrationDepthSolver.cs b/libraries/ModifiedBulletX/ModifiedBulletX/Collision/NarrowPhaseCollision/GjkEpaPenetrationDepthSolver.cs index 739b4fc..551449f 100644 --- a/libraries/ModifiedBulletX/ModifiedBulletX/Collision/NarrowPhaseCollision/GjkEpaPenetrationDepthSolver.cs +++ b/libraries/ModifiedBulletX/ModifiedBulletX/Collision/NarrowPhaseCollision/GjkEpaPenetrationDepthSolver.cs | |||
@@ -1,56 +1,56 @@ | |||
1 | /* | 1 | /* |
2 | Bullet for XNA Copyright (c) 2003-2007 Vsevolod Klementjev http://www.codeplex.com/xnadevru | 2 | Bullet for XNA Copyright (c) 2003-2007 Vsevolod Klementjev http://www.codeplex.com/xnadevru |
3 | Bullet original C++ version Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com | 3 | Bullet original C++ version Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com |
4 | 4 | ||
5 | This software is provided 'as-is', without any express or implied | 5 | This software is provided 'as-is', without any express or implied |
6 | warranty. In no event will the authors be held liable for any damages | 6 | warranty. In no event will the authors be held liable for any damages |
7 | arising from the use of this software. | 7 | arising from the use of this software. |
8 | 8 | ||
9 | Permission is granted to anyone to use this software for any purpose, | 9 | Permission is granted to anyone to use this software for any purpose, |
10 | including commercial applications, and to alter it and redistribute it | 10 | including commercial applications, and to alter it and redistribute it |
11 | freely, subject to the following restrictions: | 11 | freely, subject to the following restrictions: |
12 | 12 | ||
13 | 1. The origin of this software must not be misrepresented; you must not | 13 | 1. The origin of this software must not be misrepresented; you must not |
14 | claim that you wrote the original software. If you use this software | 14 | claim that you wrote the original software. If you use this software |
15 | in a product, an acknowledgment in the product documentation would be | 15 | in a product, an acknowledgment in the product documentation would be |
16 | appreciated but is not required. | 16 | appreciated but is not required. |
17 | 2. Altered source versions must be plainly marked as such, and must not be | 17 | 2. Altered source versions must be plainly marked as such, and must not be |
18 | misrepresented as being the original software. | 18 | misrepresented as being the original software. |
19 | 3. This notice may not be removed or altered from any source distribution. | 19 | 3. This notice may not be removed or altered from any source distribution. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | using System; | 22 | using System; |
23 | using System.Collections.Generic; | 23 | using System.Collections.Generic; |
24 | using System.Text; | 24 | using System.Text; |
25 | using MonoXnaCompactMaths; | 25 | using MonoXnaCompactMaths; |
26 | 26 | ||
27 | namespace XnaDevRu.BulletX | 27 | namespace XnaDevRu.BulletX |
28 | { | 28 | { |
29 | /// <summary> | 29 | /// <summary> |
30 | /// EpaPenetrationDepthSolver uses the Expanding Polytope Algorithm to | 30 | /// EpaPenetrationDepthSolver uses the Expanding Polytope Algorithm to |
31 | /// calculate the penetration depth between two convex shapes. | 31 | /// calculate the penetration depth between two convex shapes. |
32 | /// </summary> | 32 | /// </summary> |
33 | public class GjkEpaPenetrationDepthSolver : IConvexPenetrationDepthSolver | 33 | public class GjkEpaPenetrationDepthSolver : IConvexPenetrationDepthSolver |
34 | { | 34 | { |
35 | public bool CalculatePenetrationDepth(ISimplexSolver simplexSolver, ConvexShape convexA, ConvexShape convexB, Matrix transformA, Matrix transformB, Vector3 vector, out Vector3 ptrA, out Vector3 ptrB, IDebugDraw debugDraw) | 35 | public bool CalculatePenetrationDepth(ISimplexSolver simplexSolver, ConvexShape convexA, ConvexShape convexB, Matrix transformA, Matrix transformB, Vector3 vector, out Vector3 ptrA, out Vector3 ptrB, IDebugDraw debugDraw) |
36 | { | 36 | { |
37 | float radialmargin = 0; | 37 | float radialmargin = 0; |
38 | 38 | ||
39 | GjkEpaSolver.Results results; | 39 | GjkEpaSolver.Results results; |
40 | if (GjkEpaSolver.Collide(convexA, transformA, | 40 | if (GjkEpaSolver.Collide(convexA, transformA, |
41 | convexB, transformB, | 41 | convexB, transformB, |
42 | radialmargin, out results)) | 42 | radialmargin, out results)) |
43 | { | 43 | { |
44 | // debugDraw->drawLine(results.witnesses[1],results.witnesses[1]+results.normal,btVector3(255,0,0)); | 44 | // debugDraw->drawLine(results.witnesses[1],results.witnesses[1]+results.normal,btVector3(255,0,0)); |
45 | //resultOut->addContactPoint(results.normal,results.witnesses[1],-results.depth); | 45 | //resultOut->addContactPoint(results.normal,results.witnesses[1],-results.depth); |
46 | ptrA = results.Witnesses[0]; | 46 | ptrA = results.Witnesses[0]; |
47 | ptrB = results.Witnesses[1]; | 47 | ptrB = results.Witnesses[1]; |
48 | return true; | 48 | return true; |
49 | } | 49 | } |
50 | ptrA = new Vector3(); | 50 | ptrA = new Vector3(); |
51 | ptrB = new Vector3(); | 51 | ptrB = new Vector3(); |
52 | 52 | ||
53 | return false; | 53 | return false; |
54 | } | 54 | } |
55 | } | 55 | } |
56 | } | 56 | } |