38 #ifndef FCL_SHAPE_BOX_INL_H 39 #define FCL_SHAPE_BOX_INL_H 41 #include "fcl/geometry/shape/box.h" 78 const Vector3<S> v_delta = 0.5 *
side;
101 template <
typename S>
110 Vector3<S> I((b2 + c2) / 12, (a2 + c2) / 12, (a2 + b2) / 12);
112 return I.asDiagonal();
116 template <
typename S>
118 const Transform3<S>& tf)
const 120 std::vector<Vector3<S>> result(8);
121 auto a =
side[0] / 2;
122 auto b =
side[1] / 2;
123 auto c =
side[2] / 2;
124 result[0] = tf * Vector3<S>(a, b, c);
125 result[1] = tf * Vector3<S>(a, b, -c);
126 result[2] = tf * Vector3<S>(a, -b, c);
127 result[3] = tf * Vector3<S>(a, -b, -c);
128 result[4] = tf * Vector3<S>(-a, b, c);
129 result[5] = tf * Vector3<S>(-a, b, -c);
130 result[6] = tf * Vector3<S>(-a, -b, c);
131 result[7] = tf * Vector3<S>(-a, -b, -c);
Vector3< S_ > aabb_center
AABB center in local coordinate.
Definition: collision_geometry.h:91
NODE_TYPE
traversal node type: bounding volume (AABB, OBB, RSS, kIOS, OBBRSS, KDOP16, KDOP18, kDOP24), basic shape (box, sphere, ellipsoid, capsule, cone, cylinder, convex, plane, halfspace, triangle), and octree
Definition: collision_geometry.h:54
Main namespace.
Definition: broadphase_bruteforce-inl.h:45
Base class for all basic geometric shapes.
Definition: shape_base.h:48
S_ aabb_radius
AABB radius.
Definition: collision_geometry.h:94
void computeLocalAABB() override
Compute AABB.
Definition: box-inl.h:76
S computeVolume() const override
compute the volume
Definition: box-inl.h:95
Matrix3< S > computeMomentofInertia() const override
compute the inertia matrix, related to the origin
Definition: box-inl.h:102
Box()
Constructor.
Definition: box-inl.h:68
NODE_TYPE getNodeType() const override
Get node type: a box.
Definition: box-inl.h:88
Vector3< S > side
box side length
Definition: box.h:64
AABB< S_ > aabb_local
AABB in local coordinate, used for tight AABB when only translation transform.
Definition: collision_geometry.h:97
std::vector< Vector3< S > > getBoundVertices(const Transform3< S > &tf) const
get the vertices of some convex shape which can bound this shape in a specific configuration ...
Definition: box-inl.h:117