Toggle navigation
PlayRho
0.9.0
GitHub
Main Page
Modules
Classes
Files
Examples
File List
File Members
Collision
SeparationScenario.hpp
Go to the documentation of this file.
1
/*
2
* Original work Copyright (c) 2007-2009 Erin Catto http://www.box2d.org
3
* Modified work Copyright (c) 2017 Louis Langholtz https://github.com/louis-langholtz/PlayRho
4
*
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
7
* arising from the use of this software.
8
*
9
* Permission is granted to anyone to use this software for any purpose,
10
* including commercial applications, and to alter it and redistribute it
11
* freely, subject to the following restrictions:
12
*
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
15
* in a product, an acknowledgment in the product documentation would be
16
* appreciated but is not required.
17
* 2. Altered source versions must be plainly marked as such, and must not be
18
* misrepresented as being the original software.
19
* 3. This notice may not be removed or altered from any source distribution.
20
*/
21
22
#ifndef PLAYRHO_COLLISION_SEPARATIONFINDER_HPP
23
#define PLAYRHO_COLLISION_SEPARATIONFINDER_HPP
24
25
#include <
PlayRho/Common/Math.hpp
>
26
#include <
PlayRho/Collision/IndexPair.hpp
>
27
28
namespace
playrho
{
29
namespace
d2 {
30
31
class
DistanceProxy;
32
struct
Transformation;
33
35
struct
SeparationScenario
36
{
38
enum
Type
39
{
40
e_points
,
41
e_faceA
,
42
e_faceB
,
43
};
44
45
const
DistanceProxy
&
proxyA
;
46
const
DistanceProxy
&
proxyB
;
47
const
UnitVec
axis
;
48
51
const
Length2
localPoint
;
52
53
const
Type
type
;
54
};
55
56
// Free functions...
57
69
SeparationScenario
70
GetSeparationScenario
(
IndexPair3
indices,
71
const
DistanceProxy
& proxyA,
const
Transformation
& xfA,
72
const
DistanceProxy
& proxyB,
const
Transformation
& xfB);
73
77
LengthIndexPair
FindMinSeparation
(
const
SeparationScenario
& scenario,
78
const
Transformation
& xfA,
const
Transformation
& xfB);
79
90
Length
Evaluate
(
const
SeparationScenario
& scenario,
91
const
Transformation
& xfA,
const
Transformation
& xfB,
92
IndexPair
indexPair);
93
94
}
// namespace d2
95
}
// namespace playrho
96
97
#endif // PLAYRHO_COLLISION_SEPARATIONFINDER_HPP