20 *
this, *(static_cast<const FCLCollisionObject *>(obj2_entity)),
25 *(static_cast<const FCLCollisionObjectGroup *>(obj2_entity)), *
this,
40 *
this, *(static_cast<const FCLCollisionObject *>(obj2_entity)),
41 distance, check_type, tolerance);
45 *(static_cast<const FCLCollisionObjectGroup *>(obj2_entity)), *
this,
46 distance, check_type, tolerance);
86 fcl::AABB<double> BV_this = fcl_this_obj->getAABB();
88 Eigen::Vector2d min_(BV_this.min_[0], BV_this.min_[1]);
90 Eigen::Vector2d max_(BV_this.max_[0], BV_this.max_[1]);
92 Eigen::Vector2d center = (min_ + max_) / 2;
94 double rx = center[0] - min_[0];
95 double ry = center[1] - min_[1];
98 std::shared_ptr<const RectangleAABB>(
108 if (obj2_entity_type ==
114 ->getCollisionObject_fcl()
116 fcl::AABB<double> BV_this = fcl_this_obj->getAABB();
117 fcl::AABB<double> BV_2 = fcl_obj2->getAABB();
118 return BV_this.overlap(BV_2);
123 std::shared_ptr<fcl::CollisionObject<FCL_PRECISION>>
128 fcl_geometry = std::shared_ptr<fcl::CollisionGeometry<FCL_PRECISION>>(
131 fcl_col_obj = std::shared_ptr<fcl::CollisionObject<FCL_PRECISION>>(
138 fcl_obj->setUserData((
void *)m_parent);
140 object_cached =
true;
142 return (fcl_col_obj);
virtual bool BVCheck(CollisionObjectConstPtr obj2) const
int FCL_CalculateDistance(const FCLCollisionObject &obj1, const FCLCollisionObject &obj2, FCL_PRECISION &distance, double distance_tolerance=1e-6)
int FCL_DistanceTolerance(const FCLCollisionObjectGroup &group1, const FCLCollisionObject &obj2, FCL_PRECISION &distance, FCL_TOLERANCE_CHECK_TYPE check_type=TOLERANCE_CHECK_NARROWPHASE, double distance_tolerance=1e-6)
FCL_COLLISION_ENTITY_TYPE
int calculateDistance(const CollisionObject &obj2, FCL_PRECISION &distance, FCL_PRECISION tolerance=1e-6) const
std::shared_ptr< const RectangleAABB > RectangleAABBConstPtr
std::size_t distance(const CollisionObject &obj1, const CollisionObject &obj2, DistanceResult &res, const DistanceRequest &req)
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
FCL_COLLISION_ENTITY_TYPE get_object_fcl_entity_type(const CollisionObject *obj2)
std::shared_ptr< fcl::CollisionObject< FCL_PRECISION > > getCollisionObject_fcl(void) const
virtual collision::RectangleAABBConstPtr getAABB(void) const
virtual fcl::CollisionObject< FCL_PRECISION > * createFCLCollisionObject(const std::shared_ptr< fcl::CollisionGeometry< FCL_PRECISION >> &) const =0
int calculateDistanceNegTolerance(const CollisionObject &obj2, double &distance, FCL_TOLERANCE_CHECK_TYPE check_type=TOLERANCE_CHECK_NARROWPHASE, FCL_PRECISION tolerance=1e-6) const
virtual fcl::CollisionGeometry< FCL_PRECISION > * createFCLCollisionGeometry(void) const =0
Base class for CollisionObjects and some of their groups.