dart
|
Public Member Functions | |
std::shared_ptr< CollisionDetector > | cloneWithoutCollisionObjects () const override |
Create a clone of this CollisionDetector. More... | |
const std::string & | getType () const override |
Return collision detection engine type as a std::string. | |
std::unique_ptr< CollisionGroup > | createCollisionGroup () override |
Create a collision group. | |
bool | collide (CollisionGroup *group, const CollisionOption &option=CollisionOption(false, 1u, nullptr), CollisionResult *result=nullptr) override |
Perform collision check for a single group. More... | |
bool | collide (CollisionGroup *group1, CollisionGroup *group2, const CollisionOption &option=CollisionOption(false, 1u, nullptr), CollisionResult *result=nullptr) override |
Perform collision check for two groups. More... | |
double | distance (CollisionGroup *group, const DistanceOption &option=DistanceOption(false, 0.0, nullptr), DistanceResult *result=nullptr) override |
Get the minimum signed distance between the Shape pairs in the given CollisionGroup. More... | |
double | distance (CollisionGroup *group1, CollisionGroup *group2, const DistanceOption &option=DistanceOption(false, 0.0, nullptr), DistanceResult *result=nullptr) override |
Get the minimum signed distance between the Shape pairs where a pair consist of two shapes from each groups (one from group1 and one from group2). More... | |
![]() | |
virtual | ~CollisionDetector ()=default |
Destructor. | |
std::shared_ptr< CollisionGroup > | createCollisionGroupAsSharedPtr () |
Helper function that creates and returns CollisionGroup as a shared_ptr. More... | |
template<typename... Args> | |
std::unique_ptr< CollisionGroup > | createCollisionGroup (const Args &... args) |
Create a collision group from any objects that are supported by CollisionGroup::addShapeFramesOf(). More... | |
template<typename... Args> | |
std::shared_ptr< CollisionGroup > | createCollisionGroupAsSharedPtr (const Args &... args) |
Helper function that creates and returns CollisionGroup as shared_ptr. | |
virtual bool | raycast (CollisionGroup *group, const Eigen::Vector3d &from, const Eigen::Vector3d &to, const RaycastOption &option=RaycastOption(), RaycastResult *result=nullptr) |
Performs raycast to a collision group. More... | |
Static Public Member Functions | |
static std::shared_ptr< DARTCollisionDetector > | create () |
static const std::string & | getStaticType () |
Get collision detector type for this class. | |
![]() | |
static Factory * | getFactory () |
Returns the singleton factory. | |
Protected Member Functions | |
DARTCollisionDetector () | |
Constructor. | |
std::unique_ptr< CollisionObject > | createCollisionObject (const dynamics::ShapeFrame *shapeFrame) override |
Create CollisionObject. | |
void | refreshCollisionObject (CollisionObject *object) override |
Update the collision geometry of a ShapeFrame. | |
![]() | |
CollisionDetector ()=default | |
Constructor. | |
std::shared_ptr< CollisionObject > | claimCollisionObject (const dynamics::ShapeFrame *shapeFrame) |
Claim CollisionObject associated with shapeFrame. More... | |
virtual void | notifyCollisionObjectDestroying (CollisionObject *object) |
Notify that a CollisionObject is destroying. Do nothing by default. | |
Additional Inherited Members | |
![]() | |
using | Factory = common::Factory< std::string, CollisionDetector, std::shared_ptr< CollisionDetector > > |
using | SingletonFactory = common::Singleton< Factory > |
template<typename Derived > | |
using | Registrar = common::FactoryRegistrar< std::string, CollisionDetector, Derived, std::shared_ptr< CollisionDetector > > |
![]() | |
std::unique_ptr< CollisionObjectManager > | mCollisionObjectManager |
|
overridevirtual |
Create a clone of this CollisionDetector.
All the properties will be copied over, but not collision objects.
Implements dart::collision::CollisionDetector.
|
overridevirtual |
Perform collision check for a single group.
If nullptr is passed to result, then the this returns only simple information whether there is a collision of not.
Implements dart::collision::CollisionDetector.
|
overridevirtual |
Perform collision check for two groups.
If nullptr is passed to result, then the this returns only simple information whether there is a collision of not.
Implements dart::collision::CollisionDetector.
|
overridevirtual |
Get the minimum signed distance between the Shape pairs in the given CollisionGroup.
The detailed results are stored in the given DistanceResult if provided.
The results can be different by DistanceOption. By default, non-negative minimum distance (distance >= 0) is returned for all the shape pairs without computing nearest points.
Implements dart::collision::CollisionDetector.
|
overridevirtual |
Get the minimum signed distance between the Shape pairs where a pair consist of two shapes from each groups (one from group1 and one from group2).
Note that the distance between shapes within the same CollisionGroup are not accounted.
The detailed results are stored in the given DistanceResult if provided.
The results can be different by DistanceOption. By default, non-negative minimum distance (distance >= 0) is returned for all the shape pairs without computing nearest points.
Implements dart::collision::CollisionDetector.