1
#ifndef COLLISIONQUERIES_H
2
#define COLLISIONQUERIES_H
6
// 2D ====================================================================================================
9
void check_point_edge_proximity(bool update, const Vec2d &x0, const Vec2d &x1, const Vec2d &x2,
12
void check_point_edge_proximity(bool update, const Vec2d &x0, const Vec2d &x1, const Vec2d &x2,
13
double &distance, double &s, Vec2d &normal, double normal_multiplier);
15
// 3D ====================================================================================================
17
void check_point_edge_proximity(bool update, const Vec3d &x0, const Vec3d &x1, const Vec3d &x2,
19
void check_point_edge_proximity(bool update, const Vec3d &x0, const Vec3d &x1, const Vec3d &x2,
20
double &distance, double &s, Vec3d &normal, double normal_multiplier);
22
void check_edge_edge_proximity(const Vec3d &x0, const Vec3d &x1, const Vec3d &x2, const Vec3d &x3,
24
void check_edge_edge_proximity(const Vec3d &x0, const Vec3d &x1, const Vec3d &x2, const Vec3d &x3,
25
double &distance, double &s0, double &s2, Vec3d &normal);
27
void check_point_triangle_proximity(const Vec3d &x0, const Vec3d &x1, const Vec3d &x2, const Vec3d &x3,
29
void check_point_triangle_proximity(const Vec3d &x0, const Vec3d &x1, const Vec3d &x2, const Vec3d &x3,
30
double &distance, double &s1, double &s2, double &s3, Vec3d &normal);
33
double signed_volume(const Vec3d &x0, const Vec3d &x1, const Vec3d &x2, const Vec3d &x3);