RobWorkProject
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
ProximityStrategyBullet Class Reference

This is a strategy wrapper for the distance and collision library Gimpact from the Bullet physicsengine. More...

#include <ProximityStrategyBullet.hpp>

Inherits CollisionStrategy, CollisionToleranceStrategy, DistanceStrategy, and DistanceMultiStrategy.

Classes

struct  BulletModel
 
struct  ProximityCacheBullet
 cache for any of the queries possible on this BulletStrategy More...
 
struct  ProximityModelBullet
 

Public Types

typedef rw::common::Ptr< ProximityStrategyBulletPtr
 
typedef std::pair< rw::geometry::GeometryData *, double > CacheKey
 cache key
 
- Public Types inherited from CollisionStrategy
enum  QueryType { FirstContact, AllContacts }
 the type of query that is to be performed
 
typedef rw::common::Ptr< CollisionStrategyPtr
 smart pointer type to this class
 
- Public Types inherited from ProximityStrategy
typedef rw::common::Ptr< ProximityStrategyPtr
 smart pointer type to this class
 
- Public Types inherited from CollisionToleranceStrategy
typedef rw::common::Ptr< CollisionToleranceStrategyPtr
 smart pointer type to this class
 
- Public Types inherited from DistanceStrategy
typedef rw::common::Ptr< DistanceStrategyPtr
 smart pointer type to this class
 
- Public Types inherited from DistanceMultiStrategy
typedef rw::common::Ptr< DistanceMultiStrategyPtr
 smart pointer type to this class
 

Public Member Functions

 ProximityStrategyBullet ()
 Constructor.
 
virtual rw::proximity::ProximityModel::Ptr createModel ()
 creates an empty ProximityModel More...
 
void destroyModel (rw::proximity::ProximityModel *model)
 deallocates the memory used for model More...
 
bool addGeometry (rw::proximity::ProximityModel *model, const rw::geometry::Geometry &geom)
 adds geometry to a specific proximity model. The proximity strategy copies all data of the geometry. More...
 
bool addGeometry (rw::proximity::ProximityModel *model, rw::common::Ptr< rw::geometry::Geometry > geom, bool forceCopy=false)
 adds geometry to a specific model. Depending on the option forceCopy the proximity strategy may choose to copy the geometry data or use it directly. More...
 
bool removeGeometry (rw::proximity::ProximityModel *model, const std::string &geomId)
 removes a geometry from a specific proximity model More...
 
std::vector< std::string > getGeometryIDs (rw::proximity::ProximityModel *model)
 the list of all geometry ids that are associated to the proximity model model is returned More...
 
bool doInCollision (rw::proximity::ProximityModel::Ptr a, const rw::math::Transform3D<> &wTa, rw::proximity::ProximityModel::Ptr b, const rw::math::Transform3D<> &wTb, rw::proximity::ProximityStrategyData &data)
 
bool doInCollisionTolerance (rw::proximity::ProximityModel::Ptr a, const rw::math::Transform3D<> &wTa, rw::proximity::ProximityModel::Ptr b, const rw::math::Transform3D<> &wTb, double tolerance, rw::proximity::ProximityStrategyData &data)
 
rw::proximity::DistanceStrategy::ResultdoDistance (rw::proximity::ProximityModel::Ptr a, const rw::math::Transform3D<> &wTa, rw::proximity::ProximityModel::Ptr b, const rw::math::Transform3D<> &wTb, rw::proximity::ProximityStrategyData &data)
 Calculates the distance between two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $. More...
 
rw::proximity::DistanceStrategy::ResultdoDistanceThreshold (rw::proximity::ProximityModel::Ptr aModel, const rw::math::Transform3D<> &wTa, rw::proximity::ProximityModel::Ptr bModel, const rw::math::Transform3D<> &wTb, double threshold, rw::proximity::ProximityStrategyData &data)
 
rw::proximity::DistanceMultiStrategy::ResultdoDistances (rw::proximity::ProximityModel::Ptr a, const rw::math::Transform3D<> &wTa, rw::proximity::ProximityModel::Ptr b, const rw::math::Transform3D<> &wTb, double tolerance, rw::proximity::ProximityStrategyData &data)
 Calculates all distances between two given objects $ \mathcal{F}_a $ and $ \mathcal{F}_b $ where the distances are below a certain threshold. More...
 
void clear ()
 Clears any stored model information. More...
 
int getNrOfBVTests ()
 returns the number of bounding volume tests performed since the last call to clearStats
 
int getNrOfTriTests ()
 returns the number of ptriangle tests performed since the last call to clearStats
 
void clearStats ()
 clears the bounding volume and triangle test counters.
 
void getCollisionContacts (std::vector< CollisionStrategy::Contact > &contacts, rw::proximity::ProximityStrategyData &data)
 this method interprets the collision query result and calculates a list of contacts to represent the collision geometry between the colliding geometries. More...
 
void setThreshold (double threshold)
 
std::pair< rw::math::Vector3D<>, rw::math::Vector3D<> > getSurfaceNormals (rw::proximity::MultiDistanceResult &res, int idx)
 
- Public Member Functions inherited from CollisionStrategy
virtual ~CollisionStrategy ()
 Destroys object.
 
bool inCollision (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, QueryType type=FirstContact)
 Checks to see if two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $ are in collision. More...
 
bool inCollision (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, class ProximityStrategyData &data, QueryType type=FirstContact)
 Checks to see if two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $ are in collision. More...
 
bool inCollision (ProximityModel::Ptr a, const math::Transform3D<> &wTa, ProximityModel::Ptr b, const math::Transform3D<> &wTb, ProximityStrategyData &data)
 Checks to see if two proximity models are in collision. More...
 
virtual void getCollisionContacts (std::vector< CollisionStrategy::Contact > &contacts, ProximityStrategyData &data)=0
 this method interprets the collision query result and calculates a list of contacts to represent the collision geometry between the colliding geometries. More...
 
- Public Member Functions inherited from ProximityStrategy
virtual ~ProximityStrategy ()
 Destructor.
 
virtual bool addModel (rw::common::Ptr< rw::models::Object > object)
 Adds a Proximity model of a frame to this strategy. More...
 
virtual bool addModel (const rw::kinematics::Frame *frame, const rw::geometry::Geometry &faces)
 Adds a Proximity model to a frame where the geometry is copied in the underlying proximity strategy. More...
 
virtual bool addModel (const rw::kinematics::Frame *frame, rw::common::Ptr< rw::geometry::Geometry > faces, bool forceCopy=false)
 Adds a Proximity model to a frame. More...
 
virtual bool hasModel (const rw::kinematics::Frame *frame)
 Tells whether the frame has a proximity model in the strategy. More...
 
virtual void clearFrame (const rw::kinematics::Frame *frame)
 Clear (remove all) model information for frame frame.
 
virtual void clearFrames ()
 Clear (remove all) model information for all frames.
 
ProximityModel::Ptr getModel (const rw::kinematics::Frame *frame)
 get the proximitymodel associated to frame. If no model has been associated to frame then NULL is returned. More...
 
- Public Member Functions inherited from CollisionToleranceStrategy
virtual ~CollisionToleranceStrategy ()
 Destroys object.
 
bool isWithinDistance (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, double tolerance)
 Checks to see if the geometry attached to two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $ are closer than the specified tolerance. More...
 
bool isWithinDistance (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, double distance, class ProximityStrategyData &data)
 Checks to see if the geometry attached to two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $ are closer than the specified tolerance. Result is cached in data. More...
 
bool isWithinDistance (ProximityModel::Ptr a, const math::Transform3D<> &wTa, ProximityModel::Ptr b, const math::Transform3D<> &wTb, double tolerance, class ProximityStrategyData &data)
 Checks to see if two proximity models $ \mathcal{F}_a $ and $ \mathcal{F}_b $ are closer than the specified tolerance. Result is cached in data. More...
 
- Public Member Functions inherited from DistanceStrategy
virtual ~DistanceStrategy ()
 Destroys object.
 
Result distance (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb)
 Calculates the distance between two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $. More...
 
Resultdistance (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, class ProximityStrategyData &data)
 Calculates the distance between two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $. More...
 
Resultdistance (ProximityModel::Ptr a, const math::Transform3D<> &wTa, ProximityModel::Ptr b, const math::Transform3D<> &wTb, class ProximityStrategyData &data)
 Calculates the distance between two proximity models $ \mathcal{a} $ and $ \mathcal{b} $. More...
 
Result distance (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, double threshold)
 Calculates the distance between two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $ if the distance are within threshold. If the distance between the frames are larger than the threshold, the result will be inaccurate. More...
 
DistanceStrategy::Resultdistance (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, double threshold, ProximityStrategyData &data)
 Calculates the distance between two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $ if the distance are within threshold. If the distance between the frames are larger than the threshold, the result will be inaccurate. More...
 
DistanceStrategy::Resultdistance (ProximityModel::Ptr a, const math::Transform3D<> &wTa, ProximityModel::Ptr b, const math::Transform3D<> &wTb, double threshold, ProximityStrategyData &data)
 Calculates the distance between two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $ if the distance are within threshold. If the distance between the frames are larger than the threshold, the result will be inaccurate. More...
 
- Public Member Functions inherited from DistanceMultiStrategy
virtual ~DistanceMultiStrategy ()
 Destroys object.
 
Result distances (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, double tolerance)
 Calculates all distances between geometry of two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $. More...
 
Resultdistances (const kinematics::Frame *a, const math::Transform3D<> &wTa, const kinematics::Frame *b, const math::Transform3D<> &wTb, double tolerance, class ProximityStrategyData &data)
 Calculates all distances between geometry of two given frames $ \mathcal{F}_a $ and $ \mathcal{F}_b $. More...
 
Resultdistances (ProximityModel::Ptr a, const math::Transform3D<> &wTa, ProximityModel::Ptr b, const math::Transform3D<> &wTb, double tolerance, class ProximityStrategyData &data)
 

Static Public Member Functions

static rw::proximity::CollisionStrategy::Ptr make ()
 A Bullet based collision strategy.
 
- Static Public Member Functions inherited from CollisionStrategy
static CollisionStrategy::Ptr make (rw::common::Ptr< CollisionToleranceStrategy > strategy, double tolerance)
 A collision strategy constructed from a collision tolerance strategy and a resolution. More...
 
static CollisionStrategy::Ptr make (rw::common::Ptr< CollisionToleranceStrategy > strategy, const rw::kinematics::FrameMap< double > &frameToTolerance, double defaultTolerance)
 A collision strategy constructed from a collision tolerance strategy and a resolution. More...
 

Additional Inherited Members

- Protected Member Functions inherited from CollisionStrategy
 CollisionStrategy ()
 Creates object.
 
- Protected Member Functions inherited from ProximityStrategy
 ProximityStrategy ()
 Creates object.
 
- Protected Member Functions inherited from CollisionToleranceStrategy
virtual bool doIsWithinDistance (ProximityModel::Ptr a, const math::Transform3D<> &wTa, ProximityModel::Ptr b, const math::Transform3D<> &wTb, double tolerance, class ProximityStrategyData &data)=0
 Checks to see if two proximity models $ \mathcal{F}_a $ and $ \mathcal{F}_b $ are closer than the specified tolerance. Result is cached in data. More...
 
 CollisionToleranceStrategy ()
 Creates object.
 
- Protected Member Functions inherited from DistanceStrategy
 DistanceStrategy ()
 Creates object.
 
- Protected Member Functions inherited from DistanceMultiStrategy
 DistanceMultiStrategy ()
 Creates object.
 

Detailed Description

This is a strategy wrapper for the distance and collision library Gimpact from the Bullet physicsengine.


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