39 #ifndef HPP_FCL_GEOMETRIC_SHAPES_UTILITY_H
40 #define HPP_FCL_GEOMETRIC_SHAPES_UTILITY_H
56 std::vector<Vec3f> getBoundVertices(
const Box& box,
const Transform3f& tf);
57 std::vector<Vec3f> getBoundVertices(
const Sphere& sphere,
const Transform3f& tf);
58 std::vector<Vec3f> getBoundVertices(
const Capsule& capsule,
const Transform3f& tf);
59 std::vector<Vec3f> getBoundVertices(
const Cone& cone,
const Transform3f& tf);
60 std::vector<Vec3f> getBoundVertices(
const Cylinder& cylinder,
const Transform3f& tf);
61 std::vector<Vec3f> getBoundVertices(
const ConvexBase& convex,
const Transform3f& tf);
62 std::vector<Vec3f> getBoundVertices(
const TriangleP& triangle,
const Transform3f& tf);
68 template<
typename BV,
typename S>
71 std::vector<Vec3f> convex_bound_vertices = details::getBoundVertices(s, tf);
72 fit(&convex_bound_vertices[0], (
int)convex_bound_vertices.size(), bv);
135 void computeBV<KDOP<16>, Halfspace>(
const Halfspace& s,
const Transform3f& tf, KDOP<16>& bv);
138 void computeBV<KDOP<18>, Halfspace>(
const Halfspace& s,
const Transform3f& tf, KDOP<18>& bv);
141 void computeBV<KDOP<24>, Halfspace>(
const Halfspace& s,
const Transform3f& tf, KDOP<24>& bv);
156 void computeBV<KDOP<16>, Plane>(
const Plane& s,
const Transform3f& tf, KDOP<16>& bv);
159 void computeBV<KDOP<18>, Plane>(
const Plane& s,
const Transform3f& tf, KDOP<18>& bv);
162 void computeBV<KDOP<24>, Plane>(
const Plane& s,
const Transform3f& tf, KDOP<24>& bv);
166 void constructBox(
const AABB& bv, Box& box, Transform3f& tf);
168 void constructBox(
const OBB& bv, Box& box, Transform3f& tf);
170 void constructBox(
const OBBRSS& bv, Box& box, Transform3f& tf);
172 void constructBox(
const kIOS& bv, Box& box, Transform3f& tf);
174 void constructBox(
const RSS& bv, Box& box, Transform3f& tf);
176 void constructBox(
const KDOP<16>& bv, Box& box, Transform3f& tf);
178 void constructBox(
const KDOP<18>& bv, Box& box, Transform3f& tf);
180 void constructBox(
const KDOP<24>& bv, Box& box, Transform3f& tf);
182 void constructBox(
const AABB& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
184 void constructBox(
const OBB& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
186 void constructBox(
const OBBRSS& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
188 void constructBox(
const kIOS& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
190 void constructBox(
const RSS& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
192 void constructBox(
const KDOP<16>& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
194 void constructBox(
const KDOP<18>& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
196 void constructBox(
const KDOP<24>& bv,
const Transform3f& tf_bv, Box& box, Transform3f& tf);
198 Halfspace
transform(
const Halfspace& a,
const Transform3f& tf);
200 Plane
transform(
const Plane& a,
const Transform3f& tf);