38 #ifndef FCL_NARROWPHASE_DETAIL_HALFSPACE_H 39 #define FCL_NARROWPHASE_DETAIL_HALFSPACE_H 41 #include "fcl/geometry/shape/sphere.h" 42 #include "fcl/geometry/shape/halfspace.h" 43 #include "fcl/geometry/shape/ellipsoid.h" 44 #include "fcl/geometry/shape/box.h" 45 #include "fcl/geometry/shape/capsule.h" 46 #include "fcl/geometry/shape/cylinder.h" 47 #include "fcl/geometry/shape/cone.h" 48 #include "fcl/geometry/shape/convex.h" 49 #include "fcl/geometry/shape/plane.h" 50 #include "fcl/narrowphase/contact_point.h" 59 S halfspaceIntersectTolerance();
62 float halfspaceIntersectTolerance();
65 double halfspaceIntersectTolerance();
68 bool sphereHalfspaceIntersect(
const Sphere<S>& s1,
const Transform3<S>& tf1,
69 const Halfspace<S>& s2,
const Transform3<S>& tf2,
70 std::vector<ContactPoint<S>>* contacts);
73 bool ellipsoidHalfspaceIntersect(
const Ellipsoid<S>& s1,
const Transform3<S>& tf1,
74 const Halfspace<S>& s2,
const Transform3<S>& tf2,
75 std::vector<ContactPoint<S>>* contacts);
83 bool boxHalfspaceIntersect(
const Box<S>& s1,
const Transform3<S>& tf1,
84 const Halfspace<S>& s2,
const Transform3<S>& tf2);
87 bool boxHalfspaceIntersect(
const Box<S>& s1,
const Transform3<S>& tf1,
88 const Halfspace<S>& s2,
const Transform3<S>& tf2,
89 std::vector<ContactPoint<S>>* contacts);
92 bool capsuleHalfspaceIntersect(
const Capsule<S>& s1,
const Transform3<S>& tf1,
93 const Halfspace<S>& s2,
const Transform3<S>& tf2,
94 std::vector<ContactPoint<S>>* contacts);
97 bool cylinderHalfspaceIntersect(
const Cylinder<S>& s1,
const Transform3<S>& tf1,
98 const Halfspace<S>& s2,
const Transform3<S>& tf2,
99 std::vector<ContactPoint<S>>* contacts);
101 template <
typename S>
102 bool coneHalfspaceIntersect(
const Cone<S>& s1,
const Transform3<S>& tf1,
103 const Halfspace<S>& s2,
const Transform3<S>& tf2,
104 std::vector<ContactPoint<S>>* contacts);
106 template <
typename S>
107 bool convexHalfspaceIntersect(
const Convex<S>& s1,
const Transform3<S>& tf1,
108 const Halfspace<S>& s2,
const Transform3<S>& tf2,
109 Vector3<S>* contact_points, S* penetration_depth, Vector3<S>* normal);
111 template <
typename S>
112 bool halfspaceTriangleIntersect(
const Halfspace<S>& s1,
const Transform3<S>& tf1,
113 const Vector3<S>& P1,
const Vector3<S>& P2,
const Vector3<S>& P3,
const Transform3<S>& tf2,
114 Vector3<S>* contact_points, S* penetration_depth, Vector3<S>* normal);
123 template <
typename S>
124 bool planeHalfspaceIntersect(
const Plane<S>& s1,
const Transform3<S>& tf1,
125 const Halfspace<S>& s2,
const Transform3<S>& tf2,
127 Vector3<S>& p, Vector3<S>& d,
128 S& penetration_depth,
131 template <
typename S>
132 bool halfspacePlaneIntersect(
const Halfspace<S>& s1,
const Transform3<S>& tf1,
133 const Plane<S>& s2,
const Transform3<S>& tf2,
134 Plane<S>& pl, Vector3<S>& p, Vector3<S>& d,
135 S& penetration_depth,
146 template <
typename S>
147 bool halfspaceIntersect(
const Halfspace<S>& s1,
const Transform3<S>& tf1,
148 const Halfspace<S>& s2,
const Transform3<S>& tf2,
149 Vector3<S>& p, Vector3<S>& d,
151 S& penetration_depth,
157 #include "fcl/narrowphase/detail/primitive_shape_algorithm/halfspace-inl.h" Main namespace.
Definition: broadphase_bruteforce-inl.h:45