Go to the documentation of this file.
41 #ifndef TESSERACT_COLLISION_BULLET_CAST_BVH_MANAGERS_H
42 #define TESSERACT_COLLISION_BULLET_CAST_BVH_MANAGERS_H
54 using Ptr = std::shared_ptr<BulletCastBVHManager>;
55 using ConstPtr = std::shared_ptr<const BulletCastBVHManager>;
56 using UPtr = std::unique_ptr<BulletCastBVHManager>;
57 using ConstUPtr = std::unique_ptr<const BulletCastBVHManager>;
67 std::string
getName() const override final;
75 bool enabled = true) override final;
100 const Eigen::Isometry3d& pose1,
101 const Eigen::Isometry3d& pose2) override final;
129 const std::
string& name2,
130 double collision_margin) override final;
180 #endif // TESSERACT_COLLISION_BULLET_CAST_BVH_MANAGERS_H
bool removeCollisionObject(const std::string &name) override final
Remove an object from the checker.
AlignedVector< Eigen::Isometry3d > VectorIsometry3d
void contactTest(ContactResultMap &collisions, const ContactRequest &request) override final
Perform a contact test for all objects based.
void onCollisionMarginDataChanged()
This function will update internal data when margin data has changed.
std::unique_ptr< BulletCastBVHManager > UPtr
void setCollisionMarginData(CollisionMarginData collision_margin_data) override final
Set the contact distance threshold.
void setContactAllowedValidator(std::shared_ptr< const tesseract_common::ContactAllowedValidator > validator) override final
Set the active function for determining if two links are allowed to be in collision.
bool addCollisionObject(const std::string &name, const int &mask_id, const CollisionShapesConst &shapes, const tesseract_common::VectorIsometry3d &shape_poses, bool enabled=true) override final
Add a collision object to the checker.
std::shared_ptr< BulletCastBVHManager > Ptr
const std::vector< std::string > & getCollisionObjects() const override final
Get all collision objects.
void setCollisionMarginPair(const std::string &name1, const std::string &name2, double collision_margin) override final
Set the margin for a given contact pair.
BulletCastBVHManager(std::string name="BulletCastBVHManager", TesseractCollisionConfigurationInfo config_info=TesseractCollisionConfigurationInfo())
std::unique_ptr< btCollisionDispatcher > dispatcher_
The bullet collision dispatcher used for getting object to object collison algorithm.
bool disableCollisionObject(const std::string &name) override final
Disable an object.
Modified bullet collision configuration.
This is a modified configuration that included the modified Bullet algorithms.
AlignedMap< std::string, Eigen::Isometry3d > TransformMap
void incrementCollisionMargin(double increment) override final
Increment the collision margin data by some value.
This class is used to filter broadphase.
std::unique_ptr< const BulletCastBVHManager > ConstUPtr
const CollisionShapesConst & getCollisionObjectGeometries(const std::string &name) const override final
Get a collision objects collision geometries.
btDispatcherInfo dispatch_info_
The bullet collision dispatcher configuration information.
std::shared_ptr< const tesseract_common::ContactAllowedValidator > getContactAllowedValidator() const override final
Get the active function for determining if two links are allowed to be in collision.
ContinuousContactManager::UPtr clone() const override final
Clone the manager.
std::map< std::string, COW::Ptr > Link2Cow
const CollisionMarginData & getCollisionMarginData() const override final
Get the contact distance threshold.
BulletCastBVHManager & operator=(const BulletCastBVHManager &)=delete
TesseractOverlapFilterCallback broadphase_overlap_cb_
Filter collision objects before broadphase check.
const tesseract_common::VectorIsometry3d & getCollisionObjectGeometriesTransforms(const std::string &name) const override final
Get a collision objects collision geometries transforms.
CollisionMarginPairOverrideType
Tesseract ROS Bullet environment utility function.
This is a tesseract bullet collsion object.
const std::vector< std::string > & getActiveCollisionObjects() const override final
Get which collision objects can move.
std::vector< CollisionShapeConstPtr > CollisionShapesConst
bool enableCollisionObject(const std::string &name) override final
Enable an object.
std::shared_ptr< const BulletCastBVHManager > ConstPtr
Link2Cow link2cow_
A map of collision objects being managed.
TesseractCollisionConfiguration coll_config_
The bullet collision configuration.
void setDefaultCollisionMargin(double default_collision_margin) override final
Set the default collision margin.
Link2Cow link2castcow_
A map of cast collision objects being managed.
void setCollisionObjectsTransform(const std::string &name, const Eigen::Isometry3d &pose) override final
Set a single static collision object's tansforms.
bool isCollisionObjectEnabled(const std::string &name) const override final
Check if collision object is enabled.
ContactTestData contact_test_data_
This is used when contactTest is called. It is also added as a user point to the collsion objects so ...
A BVH implementation of a tesseract contact manager.
bool hasCollisionObject(const std::string &name) const override final
Find if a collision object already exists.
void setCollisionMarginPairData(const CollisionMarginPairData &pair_margin_data, CollisionMarginPairOverrideType override_type=CollisionMarginPairOverrideType::REPLACE) override final
Set the pair contact distance thresholds for which collision should be considered on a per pair basis...
TesseractCollisionConfigurationInfo config_info_
The bullet collision configuration information.
void setActiveCollisionObjects(const std::vector< std::string > &names) override final
Set which collision objects can move.
std::vector< std::string > collision_objects_
A list of the collision objects.
std::vector< std::string > active_
A list of the active collision objects.
std::string getName() const override final
Get the name of the contact manager.
std::unique_ptr< btBroadphaseInterface > broadphase_
The bullet broadphase interface.
~BulletCastBVHManager() override