32 #ifndef _LibCollision_GJK_H
33 #define _LibCollision_GJK_H
44 namespace Shape {
class Volume;}
63 std::array<Geom::Vector, 2>
local;
70 : v(v1-v2), local({{v1,v2}}) {
109 a(point[0]), b(point[1]), c(point[2]), d(point[3]) {
151 for (
int i =
num-1; i > 0; i--)
bool is_shape_colliding()
Definition: GJK.cpp:75
static Math::UniRandom rand_dir_x
Definition: GJK.hpp:165
static Math::UniRandom rand_dir_z
Definition: GJK.hpp:167
bool is_support_direction_valid(const GJK::SupportPoint &s, const Geom::Vector &dir) const
Definition: GJK.cpp:57
static void random_direction(Geom::Vector &)
Definition: GJK.cpp:49
static unsigned int max_iter
Definition: GJK.hpp:164
GJK::Simplex sim
Definition: GJK.hpp:186
const Shape::Volume & shape2
Definition: GJK.hpp:185
~GJK_Algorithm()
Definition: GJK.cpp:68
const Shape::Volume & shape1
Definition: GJK.hpp:184
static Math::UniRandom rand_dir_y
Definition: GJK.hpp:166
GJK_Algorithm(const Shape::Volume &v1, const Shape::Volume &v2)
Definition: GJK.cpp:63
GJK::SupportPoint support(const Geom::Vector &) const
Definition: GJK.cpp:251
Definition: Vector.hpp:75
Definition: UniRandom.hpp:45
Definition: Volume.hpp:103
Definition: Common.hpp:198
T min(const T v0, const T v1)
Definition: Exprtk.hpp:1456
SupportPoint & d
Definition: GJK.hpp:100
void Push(const SupportPoint &p)
Definition: GJK.hpp:149
void set(const SupportPoint &a, const SupportPoint &b, const SupportPoint &c, const SupportPoint &d)
Definition: GJK.hpp:119
SupportPoint & b
Definition: GJK.hpp:98
void clear()
Definition: GJK.hpp:114
SupportPoint & c
Definition: GJK.hpp:99
int num
Definition: GJK.hpp:96
Simplex()
Definition: GJK.hpp:108
SupportPoint point[4]
Definition: GJK.hpp:103
SupportPoint & a
Definition: GJK.hpp:97
bool operator==(const SupportPoint &) const
Definition: GJK.hpp:79
Geom::Vector v
Definition: GJK.hpp:62
SupportPoint()
Definition: GJK.hpp:74
std::array< Geom::Vector, 2 > local
Definition: GJK.hpp:63