38 #ifndef FCL_CONTINUOUS_COLLISION_OBJECT_INL_H 39 #define FCL_CONTINUOUS_COLLISION_OBJECT_INL_H 41 #include "fcl/narrowphase/continuous_collision_object.h" 48 class ContinuousCollisionObject<double>;
52 ContinuousCollisionObject<S>::ContinuousCollisionObject(
53 const std::shared_ptr<CollisionGeometry<S>>& cgeom_)
54 : cgeom(cgeom_), cgeom_const(cgeom_)
61 ContinuousCollisionObject<S>::ContinuousCollisionObject(
62 const std::shared_ptr<CollisionGeometry<S>>& cgeom_,
63 const std::shared_ptr<MotionBase<S>>& motion_)
64 : cgeom(cgeom_), cgeom_const(cgeom), motion(motion_)
71 ContinuousCollisionObject<S>::~ContinuousCollisionObject()
80 return cgeom->getObjectType();
87 return cgeom->getNodeType();
104 motion->getTaylorModel(R, T);
106 Vector3<S> p = cgeom->aabb_local.min_;
107 box = (R * p + T).getTightBound();
109 p[2] = cgeom->aabb_local.max_[2];
110 box = bound(box, (R * p + T).getTightBound());
112 p[1] = cgeom->aabb_local.max_[1];
113 p[2] = cgeom->aabb_local.min_[2];
114 box = bound(box, (R * p + T).getTightBound());
116 p[2] = cgeom->aabb_local.max_[2];
117 box = bound(box, (R * p + T).getTightBound());
119 p[0] = cgeom->aabb_local.max_[0];
120 p[1] = cgeom->aabb_local.min_[1];
121 p[2] = cgeom->aabb_local.min_[2];
122 box = bound(box, (R * p + T).getTightBound());
124 p[2] = cgeom->aabb_local.max_[2];
125 box = bound(box, (R * p + T).getTightBound());
127 p[1] = cgeom->aabb_local.max_[1];
128 p[2] = cgeom->aabb_local.min_[2];
129 box = bound(box, (R * p + T).getTightBound());
131 p[2] = cgeom->aabb_local.max_[2];
132 box = bound(box, (R * p + T).getTightBound());
134 aabb.min_ = box.getLow();
135 aabb.max_ = box.getHigh();
139 template <
typename S>
146 template <
typename S>
153 template <
typename S>
160 template <
typename S>
168 template <
typename S>
169 const std::shared_ptr<const CollisionGeometry<S>>&
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
void setUserData(void *data)
set user data in object
Definition: continuous_collision_object-inl.h:147
void * getUserData() const
get user data in object
Definition: continuous_collision_object-inl.h:140
FCL_DEPRECATED const CollisionGeometry< S > * getCollisionGeometry() const
get geometry from the object instance
Definition: continuous_collision_object-inl.h:162
const std::shared_ptr< const CollisionGeometry< S > > & collisionGeometry() const
get geometry from the object instance
Definition: continuous_collision_object-inl.h:170
NODE_TYPE getNodeType() const
get the node type
Definition: continuous_collision_object-inl.h:85
The geometry for the object for collision or distance computation.
Definition: collision_geometry.h:59
OBJECT_TYPE getObjectType() const
get the type of the object
Definition: continuous_collision_object-inl.h:78
const AABB< S > & getAABB() const
get the AABB<S> in the world space for the motion
Definition: continuous_collision_object-inl.h:92
OBJECT_TYPE
object type: BVH (mesh, points), basic geometry, octree
Definition: collision_geometry.h:51
Definition: bv_motion_bound_visitor.h:45
void computeAABB()
compute the AABB<S> in the world space for the motion
Definition: continuous_collision_object-inl.h:99
Definition: taylor_matrix.h:48
MotionBase< S > * getMotion() const
get motion from the object instance
Definition: continuous_collision_object-inl.h:154
Definition: interval_vector.h:47
Definition: taylor_vector.h:48