dart
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
dart::collision::OdeCollisionDetector Class Reference

OdeCollisionDetector wraps the ODE collision detector. More...

#include <OdeCollisionDetector.hpp>

Inheritance diagram for dart::collision::OdeCollisionDetector:
Inheritance graph
[legend]
Collaboration diagram for dart::collision::OdeCollisionDetector:
Collaboration graph
[legend]

Public Member Functions

virtual ~OdeCollisionDetector ()
 Constructor.
 
std::shared_ptr< CollisionDetectorcloneWithoutCollisionObjects () 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< CollisionGroupcreateCollisionGroup () 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
 
double distance (CollisionGroup *group1, CollisionGroup *group2, const DistanceOption &option=DistanceOption(false, 0.0, nullptr), DistanceResult *result=nullptr) override
 
- Public Member Functions inherited from dart::collision::CollisionDetector
virtual ~CollisionDetector ()=default
 Destructor.
 
std::shared_ptr< CollisionGroupcreateCollisionGroupAsSharedPtr ()
 Helper function that creates and returns CollisionGroup as a shared_ptr. More...
 
template<typename... Args>
std::unique_ptr< CollisionGroupcreateCollisionGroup (const Args &... args)
 Create a collision group from any objects that are supported by CollisionGroup::addShapeFramesOf(). More...
 
template<typename... Args>
std::shared_ptr< CollisionGroupcreateCollisionGroupAsSharedPtr (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< OdeCollisionDetectorcreate ()
 
static const std::string & getStaticType ()
 Get collision detector type for this class.
 
- Static Public Member Functions inherited from dart::collision::CollisionDetector
static FactorygetFactory ()
 Returns the singleton factory.
 

Protected Member Functions

 OdeCollisionDetector ()
 Constructor.
 
std::unique_ptr< CollisionObjectcreateCollisionObject (const dynamics::ShapeFrame *shapeFrame) override
 Create CollisionObject.
 
void refreshCollisionObject (CollisionObject *object) override
 Update the collision geometry of a ShapeFrame.
 
dWorldID getOdeWorldId () const
 
- Protected Member Functions inherited from dart::collision::CollisionDetector
 CollisionDetector ()=default
 Constructor.
 
std::shared_ptr< CollisionObjectclaimCollisionObject (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.
 

Protected Attributes

dWorldID mWorldId
 Top-level world for all bodies.
 
- Protected Attributes inherited from dart::collision::CollisionDetector
std::unique_ptr< CollisionObjectManagermCollisionObjectManager
 

Friends

class OdeCollisionObject
 

Additional Inherited Members

- Public Types inherited from dart::collision::CollisionDetector
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 > >
 

Detailed Description

OdeCollisionDetector wraps the ODE collision detector.

The supported collision shape types are sphere, box, capsule, cylinder, plane, and trimesh.

ODE additionally supports ray and heightfiled, but DART doesn't support them yet.

Member Function Documentation

◆ cloneWithoutCollisionObjects()

std::shared_ptr< CollisionDetector > dart::collision::OdeCollisionDetector::cloneWithoutCollisionObjects ( ) const
overridevirtual

Create a clone of this CollisionDetector.

All the properties will be copied over, but not collision objects.

Implements dart::collision::CollisionDetector.

◆ collide() [1/2]

bool dart::collision::OdeCollisionDetector::collide ( CollisionGroup group,
const CollisionOption option = CollisionOption(false, 1u, nullptr),
CollisionResult result = nullptr 
)
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.

◆ collide() [2/2]

bool dart::collision::OdeCollisionDetector::collide ( CollisionGroup group1,
CollisionGroup group2,
const CollisionOption option = CollisionOption(false, 1u, nullptr),
CollisionResult result = nullptr 
)
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.

◆ distance() [1/2]

double dart::collision::OdeCollisionDetector::distance ( CollisionGroup group,
const DistanceOption option = DistanceOption(false, 0.0, nullptr),
DistanceResult result = nullptr 
)
overridevirtual
Warning
Not implemented yet.

Implements dart::collision::CollisionDetector.

◆ distance() [2/2]

double dart::collision::OdeCollisionDetector::distance ( CollisionGroup group1,
CollisionGroup group2,
const DistanceOption option = DistanceOption(false, 0.0, nullptr),
DistanceResult result = nullptr 
)
overridevirtual
Warning
Not implemented yet.

Implements dart::collision::CollisionDetector.


The documentation for this class was generated from the following files: