Collision Checker
collision_solver_primitive.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdlib.h>
7 
8 namespace collision {
9 namespace solvers {
10 
11 // warning: not all of the functions are implemented
12 
13 namespace solverPrimitive {
14 std::size_t collide_aabb_aabb(const CollisionObject &obj1,
15  const CollisionObject &obj2, CollisionResult &res,
16  const CollisionRequest &req);
17 std::size_t collide_aabb_obb(const CollisionObject &obj1,
18  const CollisionObject &obj2, CollisionResult &res,
19  const CollisionRequest &req);
20 std::size_t collide_aabb_sphere(const CollisionObject &obj1,
21  const CollisionObject &obj2,
22  CollisionResult &res,
23  const CollisionRequest &req);
24 std::size_t collide_aabb_triangle(const CollisionObject &obj1,
25  const CollisionObject &obj2,
26  CollisionResult &res,
27  const CollisionRequest &req);
28 std::size_t collide_aabb_point(const CollisionObject &obj1,
29  const CollisionObject &obj2,
30  CollisionResult &res,
31  const CollisionRequest &req);
32 
33 std::size_t collide_obb_aabb(const CollisionObject &obj1,
34  const CollisionObject &obj2, CollisionResult &res,
35  const CollisionRequest &req);
36 std::size_t collide_obb_obb(const CollisionObject &obj1,
37  const CollisionObject &obj2, CollisionResult &res,
38  const CollisionRequest &req);
39 std::size_t collide_obb_sphere(const CollisionObject &obj1,
40  const CollisionObject &obj2,
41  CollisionResult &res,
42  const CollisionRequest &req);
43 std::size_t collide_obb_triangle(const CollisionObject &obj1,
44  const CollisionObject &obj2,
45  CollisionResult &res,
46  const CollisionRequest &req);
47 std::size_t collide_obb_point(const CollisionObject &obj1,
48  const CollisionObject &obj2, CollisionResult &res,
49  const CollisionRequest &req);
50 
51 std::size_t collide_sphere_aabb(const CollisionObject &obj1,
52  const CollisionObject &obj2,
53  CollisionResult &res,
54  const CollisionRequest &req);
55 std::size_t collide_sphere_obb(const CollisionObject &obj1,
56  const CollisionObject &obj2,
57  CollisionResult &res,
58  const CollisionRequest &req);
59 std::size_t collide_sphere_sphere(const CollisionObject &obj1,
60  const CollisionObject &obj2,
61  CollisionResult &res,
62  const CollisionRequest &req);
63 std::size_t collide_sphere_triangle(const CollisionObject &obj1,
64  const CollisionObject &obj2,
65  CollisionResult &res,
66  const CollisionRequest &req);
67 std::size_t collide_sphere_point(const CollisionObject &obj1,
68  const CollisionObject &obj2,
69  CollisionResult &res,
70  const CollisionRequest &req);
71 
72 std::size_t collide_triangle_aabb(const CollisionObject &obj1,
73  const CollisionObject &obj2,
74  CollisionResult &res,
75  const CollisionRequest &req);
76 std::size_t collide_triangle_obb(const CollisionObject &obj1,
77  const CollisionObject &obj2,
78  CollisionResult &res,
79  const CollisionRequest &req);
80 std::size_t collide_triangle_sphere(const CollisionObject &obj1,
81  const CollisionObject &obj2,
82  CollisionResult &res,
83  const CollisionRequest &req);
84 std::size_t collide_triangle_triangle(const CollisionObject &obj1,
85  const CollisionObject &obj2,
86  CollisionResult &res,
87  const CollisionRequest &req);
88 std::size_t collide_triangle_point(const CollisionObject &obj1,
89  const CollisionObject &obj2,
90  CollisionResult &res,
91  const CollisionRequest &req);
92 
93 std::size_t collide_point_aabb(const CollisionObject &obj1,
94  const CollisionObject &obj2,
95  CollisionResult &res,
96  const CollisionRequest &req);
97 std::size_t collide_point_obb(const CollisionObject &obj1,
98  const CollisionObject &obj2, CollisionResult &res,
99  const CollisionRequest &req);
100 std::size_t collide_point_sphere(const CollisionObject &obj1,
101  const CollisionObject &obj2,
102  CollisionResult &res,
103  const CollisionRequest &req);
104 std::size_t collide_point_triangle(const CollisionObject &obj1,
105  const CollisionObject &obj2,
106  CollisionResult &res,
107  const CollisionRequest &req);
108 std::size_t collide_point_point(const CollisionObject &obj1,
109  const CollisionObject &obj2,
110  CollisionResult &res,
111  const CollisionRequest &req);
112 
113 std::size_t collide_polygon_obj(const CollisionObject &obj1,
114  const CollisionObject &obj2,
115  CollisionResult &res,
116  const CollisionRequest &req);
117 std::size_t collide_polygon_polygon(const CollisionObject &obj1,
118  const CollisionObject &obj2,
119  CollisionResult &res,
120  const CollisionRequest &req);
121 std::size_t collide_obj_polygon(const CollisionObject &obj1,
122  const CollisionObject &obj2,
123  CollisionResult &res,
124  const CollisionRequest &req);
125 
126 std::size_t collide_shape_group_obj(const CollisionObject &obj1,
127  const CollisionObject &obj2,
128  CollisionResult &res,
129  const CollisionRequest &req);
130 std::size_t collide_obj_shape_group(const CollisionObject &obj1,
131  const CollisionObject &obj2,
132  CollisionResult &res,
133  const CollisionRequest &req);
134 std::size_t collide_shape_group_shape_group(const CollisionObject &obj1,
135  const CollisionObject &obj2,
136  CollisionResult &res,
137  const CollisionRequest &req);
138 
139 std::size_t collide_tvobst_obj(const CollisionObject &obj1,
140  const CollisionObject &obj2,
141  CollisionResult &res,
142  const CollisionRequest &req);
143 std::size_t collide_obj_tvobst(const CollisionObject &obj1,
144  const CollisionObject &obj2,
145  CollisionResult &res,
146  const CollisionRequest &req);
147 std::size_t collide_tvobst_tvobst(const CollisionObject &obj1,
148  const CollisionObject &obj2,
149  CollisionResult &res,
150  const CollisionRequest &req);
151 } // namespace solverPrimitive
152 } // namespace solvers
153 } // namespace collision
std::size_t collide_point_aabb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_polygon_obj(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obj_polygon(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_sphere_triangle(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_sphere_point(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_triangle_obb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_sphere_sphere(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_triangle_point(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_shape_group_obj(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_polygon_polygon(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_sphere_obb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_aabb_aabb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_tvobst_tvobst(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_aabb_obb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_point_triangle(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_point_obb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obb_obb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obb_aabb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obj_tvobst(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
Universal structure specifying collision request properties.
std::size_t collide_aabb_triangle(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_point_sphere(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obb_point(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_triangle_aabb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_point_point(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obj_shape_group(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_triangle_triangle(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_sphere_aabb(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_shape_group_shape_group(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_aabb_point(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obb_sphere(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_triangle_sphere(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
Base class for CollisionObjects and some of their groups.
std::size_t collide_obb_triangle(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_aabb_sphere(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
Structure holding result for a collision request.
std::size_t collide_tvobst_obj(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)