38 #ifndef FCL_NARROWPHASE_DETAIL_PLANE_H 39 #define FCL_NARROWPHASE_DETAIL_PLANE_H 41 #include "fcl/geometry/shape/sphere.h" 42 #include "fcl/geometry/shape/ellipsoid.h" 43 #include "fcl/geometry/shape/box.h" 44 #include "fcl/geometry/shape/capsule.h" 45 #include "fcl/geometry/shape/cylinder.h" 46 #include "fcl/geometry/shape/cone.h" 47 #include "fcl/geometry/shape/convex.h" 48 #include "fcl/geometry/shape/plane.h" 49 #include "fcl/narrowphase/contact_point.h" 58 S planeIntersectTolerance();
61 double planeIntersectTolerance();
64 float planeIntersectTolerance();
67 bool spherePlaneIntersect(
const Sphere<S>& s1,
const Transform3<S>& tf1,
68 const Plane<S>& s2,
const Transform3<S>& tf2,
69 std::vector<ContactPoint<S>>* contacts);
72 bool ellipsoidPlaneIntersect(
const Ellipsoid<S>& s1,
const Transform3<S>& tf1,
73 const Plane<S>& s2,
const Transform3<S>& tf2,
74 std::vector<ContactPoint<S>>* contacts);
84 bool boxPlaneIntersect(
const Box<S>& s1,
const Transform3<S>& tf1,
85 const Plane<S>& s2,
const Transform3<S>& tf2,
86 std::vector<ContactPoint<S>>* contacts);
89 bool capsulePlaneIntersect(
const Capsule<S>& s1,
const Transform3<S>& tf1,
90 const Plane<S>& s2,
const Transform3<S>& tf2);
93 bool capsulePlaneIntersect(
const Capsule<S>& s1,
const Transform3<S>& tf1,
94 const Plane<S>& s2,
const Transform3<S>& tf2,
95 std::vector<ContactPoint<S>>* contacts);
102 template <
typename S>
103 bool cylinderPlaneIntersect(
const Cylinder<S>& s1,
const Transform3<S>& tf1,
104 const Plane<S>& s2,
const Transform3<S>& tf2);
106 template <
typename S>
107 bool cylinderPlaneIntersect(
const Cylinder<S>& s1,
const Transform3<S>& tf1,
108 const Plane<S>& s2,
const Transform3<S>& tf2,
109 std::vector<ContactPoint<S>>* contacts);
111 template <
typename S>
112 bool conePlaneIntersect(
const Cone<S>& s1,
const Transform3<S>& tf1,
113 const Plane<S>& s2,
const Transform3<S>& tf2,
114 std::vector<ContactPoint<S>>* contacts);
116 template <
typename S>
117 bool convexPlaneIntersect(
const Convex<S>& s1,
const Transform3<S>& tf1,
118 const Plane<S>& s2,
const Transform3<S>& tf2,
119 Vector3<S>* contact_points, S* penetration_depth, Vector3<S>* normal);
121 template <
typename S>
122 bool planeTriangleIntersect(
const Plane<S>& s1,
const Transform3<S>& tf1,
123 const Vector3<S>& P1,
const Vector3<S>& P2,
const Vector3<S>& P3,
const Transform3<S>& tf2,
124 Vector3<S>* contact_points, S* penetration_depth, Vector3<S>* normal);
126 template <
typename S>
127 bool planeIntersect(
const Plane<S>& s1,
const Transform3<S>& tf1,
128 const Plane<S>& s2,
const Transform3<S>& tf2,
129 std::vector<ContactPoint<S>>* contacts);
134 #include "fcl/narrowphase/detail/primitive_shape_algorithm/plane-inl.h" Main namespace.
Definition: broadphase_bruteforce-inl.h:45