Collision Checker
collision::ShapeGroup Class Reference

ShapeGroup can contain simple shapes. More...

#include <shape_group.h>

Inheritance diagram for collision::ShapeGroup:
collision::CollisionObjectEx collision::ICollisionContainer collision::solvers::solverFCL::IFCLCollisionObjectGroup collision::CollisionObject collision::solvers::solverFCL::ISolverEntity_FCL

Public Member Functions

virtual const ISolverEntity_FCLgetFclInterface () const override
 
virtual FCL_COLLISION_ENTITY_TYPE getFclEntityType (void) const
 
int getCollisionObjects (std::vector< fcl::CollisionObject< FCL_PRECISION > *> &obj_vec) const override
 
virtual CollisionObjectType getCollisionObjectType () const
 
CollisionObjectClass getCollisionObjectClass () const
 
std::shared_ptr< const collision::RectangleAABBgetAABB () const
 
ShapeGroupConstPtr windowQuery (collision::RectangleAABBConstPtr aabb) const
 
 ShapeGroup ()
 
virtual ~ShapeGroup ()
 
void toString (std::ostringstream &stream) const
 
bool rayTrace (const Eigen::Vector2d &point1, const Eigen::Vector2d &point2, std::vector< LineSegment > &intersect) const
 
int elementCount (void) const
 Returns count of contained objects. More...
 
std::vector< std::set< int > > overlapMap (const ShapeGroup &sg) const
 Returns lists of all objects from the other ShapeGroup that collide with each object of this ShapeGroup. More...
 
std::vector< std::pair< int, int > > overlap (const ShapeGroup &sg) const
 Returns Vector of pairs of indexes of the intersecting objects within the ShapeGroup and another ShapeGroup. More...
 
virtual void print (std::ostringstream &stream) const
 
virtual CollisionObjectConstPtr timeSlice (int time_idx, CollisionObjectConstPtr shared_ptr_this) const
 
void addToGroup (ShapeConstPtr shape)
 Adds a simple shape to the ShapeGroup. More...
 
std::vector< ShapeConstPtrunpack () const
 Returns Vector of all shapes contained inside the ShapeGroup. More...
 
const ICollisionContainergetContainerInterface (void) const override
 
virtual void addParentMap (std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &parent_map) const
 
virtual void addParentMap (std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &parent_map, CollisionObjectConstPtr parent) const
 
int queryContainedObjectIndexList (const CollisionObject *, std::list< int > &retlist) const override
 
- Public Member Functions inherited from collision::CollisionObjectEx
 CollisionObjectEx ()
 
virtual ~CollisionObjectEx ()
 
virtual bool collide (const CollisionObject &c, const collision::CollisionRequest &req=CollisionRequest()) const
 
virtual bool BVCheck (CollisionObjectConstPtr obj2) const
 
virtual int getSolverEntity (solvers::solverFCL::SolverEntity_FCL *&ptr) const
 
virtual int getSolverEntity (solvers::solverBoost::SolverEntity_Boost *&ptr) const
 
virtual const solvers::solverBoost::ISolverEntity_BoostgetBoostInterface (void) const
 
- Public Member Functions inherited from collision::CollisionObject
virtual ~CollisionObject ()
 
- Public Member Functions inherited from collision::ICollisionContainer
 ICollisionContainer ()
 
virtual ~ICollisionContainer ()
 
- Public Member Functions inherited from collision::solvers::solverFCL::ISolverEntity_FCL
virtual ~ISolverEntity_FCL (void)
 

Additional Inherited Members

- Protected Member Functions inherited from collision::CollisionObjectEx
void invalidateCollisionEntityCache (void)
 

Detailed Description

ShapeGroup can contain simple shapes.

The benefit of grouping objects in the ShapeGroup is that a broadphase structure is built for efficient filtering of candidate objects for the collision

Definition at line 33 of file shape_group.h.

Constructor & Destructor Documentation

◆ ShapeGroup()

collision::ShapeGroup::ShapeGroup ( )
inline

Definition at line 63 of file shape_group.h.

◆ ~ShapeGroup()

virtual collision::ShapeGroup::~ShapeGroup ( )
inlinevirtual

Definition at line 65 of file shape_group.h.

Member Function Documentation

◆ addParentMap() [1/2]

void collision::ShapeGroup::addParentMap ( std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &  parent_map) const
virtual

Reimplemented from collision::CollisionObject.

Definition at line 198 of file shape_group.cc.

◆ addParentMap() [2/2]

void collision::ShapeGroup::addParentMap ( std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &  parent_map,
CollisionObjectConstPtr  parent 
) const
virtual

Reimplemented from collision::CollisionObject.

Definition at line 189 of file shape_group.cc.

◆ addToGroup()

void collision::ShapeGroup::addToGroup ( ShapeConstPtr  shape)

Adds a simple shape to the ShapeGroup.

The accelerator structure for collision candidates filtering is temporarily destroyed.

Parameters
[in]shapeShape to be added
Warning
The function is not thread-safe

Definition at line 176 of file shape_group.cc.

◆ elementCount()

int collision::ShapeGroup::elementCount ( void  ) const
virtual

Returns count of contained objects.

Implements collision::solvers::solverFCL::IFCLCollisionObjectGroup.

Definition at line 91 of file shape_group.cc.

◆ getAABB()

std::shared_ptr< const collision::RectangleAABB > collision::ShapeGroup::getAABB ( ) const
virtual

Reimplemented from collision::CollisionObjectEx.

Definition at line 21 of file shape_group.cc.

◆ getCollisionObjectClass()

CollisionObjectClass collision::ShapeGroup::getCollisionObjectClass ( ) const
inlinevirtual

Reimplemented from collision::CollisionObject.

Definition at line 55 of file shape_group.h.

◆ getCollisionObjects()

int collision::ShapeGroup::getCollisionObjects ( std::vector< fcl::CollisionObject< FCL_PRECISION > *> &  obj_vec) const
overridevirtual

◆ getCollisionObjectType()

virtual CollisionObjectType collision::ShapeGroup::getCollisionObjectType ( ) const
inlinevirtual

Reimplemented from collision::CollisionObject.

Definition at line 52 of file shape_group.h.

◆ getContainerInterface()

const ICollisionContainer* collision::ShapeGroup::getContainerInterface ( void  ) const
inlineoverridevirtual

Reimplemented from collision::CollisionObjectEx.

Definition at line 87 of file shape_group.h.

◆ getFclEntityType()

virtual FCL_COLLISION_ENTITY_TYPE collision::ShapeGroup::getFclEntityType ( void  ) const
inlinevirtual

Reimplemented from collision::solvers::solverFCL::IFCLCollisionObjectGroup.

Definition at line 45 of file shape_group.h.

◆ getFclInterface()

virtual const ISolverEntity_FCL* collision::ShapeGroup::getFclInterface ( void  ) const
inlineoverridevirtual

Reimplemented from collision::CollisionObjectEx.

Definition at line 41 of file shape_group.h.

◆ overlap()

std::vector< std::pair< int, int > > collision::ShapeGroup::overlap ( const ShapeGroup sg) const

Returns Vector of pairs of indexes of the intersecting objects within the ShapeGroup and another ShapeGroup.

Parameters
[in]sg- second ShapeGroup for the intersection test

Definition at line 111 of file shape_group.cc.

◆ overlapMap()

std::vector< std::set< int > > collision::ShapeGroup::overlapMap ( const ShapeGroup sg) const

Returns lists of all objects from the other ShapeGroup that collide with each object of this ShapeGroup.

Parameters
[in]sg- second ShapeGroup for the intersection test

The output vector has as many elements as this ShapeGroup contains. Each element of the output vector is a set of indexes of all objects of the second ShapeGroup that collide with the object corresponding to the element.

Definition at line 73 of file shape_group.cc.

◆ print()

void collision::ShapeGroup::print ( std::ostringstream &  stream) const
virtual

Reimplemented from collision::CollisionObject.

Definition at line 148 of file shape_group.cc.

◆ queryContainedObjectIndexList()

int collision::ShapeGroup::queryContainedObjectIndexList ( const CollisionObject pObj,
std::list< int > &  retlist 
) const
overridevirtual

Implements collision::ICollisionContainer.

Definition at line 137 of file shape_group.cc.

◆ rayTrace()

bool collision::ShapeGroup::rayTrace ( const Eigen::Vector2d &  point1,
const Eigen::Vector2d &  point2,
std::vector< LineSegment > &  intersect 
) const
virtual

Reimplemented from collision::CollisionObject.

Definition at line 93 of file shape_group.cc.

◆ timeSlice()

CollisionObjectConstPtr collision::ShapeGroup::timeSlice ( int  time_idx,
CollisionObjectConstPtr  shared_ptr_this 
) const
virtual

Implements collision::CollisionObject.

Definition at line 159 of file shape_group.cc.

◆ toString()

void collision::ShapeGroup::toString ( std::ostringstream &  stream) const
virtual

Reimplemented from collision::CollisionObject.

Definition at line 150 of file shape_group.cc.

◆ unpack()

std::vector< ShapeConstPtr > collision::ShapeGroup::unpack ( ) const

Returns Vector of all shapes contained inside the ShapeGroup.

Definition at line 187 of file shape_group.cc.

◆ windowQuery()

ShapeGroupConstPtr collision::ShapeGroup::windowQuery ( collision::RectangleAABBConstPtr  aabb) const

Definition at line 10 of file shape_group.cc.


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