Class SSaPCollisionManager

Inheritance Relationships

Base Type

Class Documentation

class SSaPCollisionManager : public coal::BroadPhaseCollisionManager

Simple SAP collision manager.

Public Types

typedef BroadPhaseCollisionManager Base

Public Functions

SSaPCollisionManager()
virtual void registerObject(CollisionObject *obj)

remove one object from the manager

virtual void unregisterObject(CollisionObject *obj)

add one object to the manager

virtual void setup()

initialize the manager, related with the specific type of manager

virtual void update()

update the condition of manager

virtual void clear()

clear the manager

virtual void getObjects(std::vector<CollisionObject*> &objs) const

return the objects managed by the manager

virtual void collide(CollisionObject *obj, CollisionCallBackBase *callback) const

perform collision test between one object and all the objects belonging to the manager

virtual void distance(CollisionObject *obj, DistanceCallBackBase *callback) const

perform distance computation between one object and all the objects belonging to the manager

virtual void collide(CollisionCallBackBase *callback) const

perform collision test for the objects belonging to the manager (i.e., N^2 self collision)

virtual void distance(DistanceCallBackBase *callback) const

perform distance test for the objects belonging to the manager (i.e., N^2 self distance)

virtual void collide(BroadPhaseCollisionManager *other_manager, CollisionCallBackBase *callback) const

perform collision test with objects belonging to another manager

virtual void distance(BroadPhaseCollisionManager *other_manager, DistanceCallBackBase *callback) const

perform distance test with objects belonging to another manager

virtual bool empty() const

whether the manager is empty

virtual size_t size() const

the number of objects managed by the manager

virtual void getObjects(std::vector<CollisionObject*> &objs) const = 0

return the objects managed by the manager

inline virtual std::vector<CollisionObject*> getObjects() const

return the objects managed by the manager

Protected Functions

bool checkColl(typename std::vector<CollisionObject*>::const_iterator pos_start, typename std::vector<CollisionObject*>::const_iterator pos_end, CollisionObject *obj, CollisionCallBackBase *callback) const

check collision between one object and a list of objects, return value is whether stop is possible

bool checkDis(typename std::vector<CollisionObject*>::const_iterator pos_start, typename std::vector<CollisionObject*>::const_iterator pos_end, CollisionObject *obj, DistanceCallBackBase *callback, CoalScalar &min_dist) const

check distance between one object and a list of objects, return value is whether stop is possible

bool collide_(CollisionObject *obj, CollisionCallBackBase *callback) const
bool distance_(CollisionObject *obj, DistanceCallBackBase *callback, CoalScalar &min_dist) const

Protected Attributes

std::vector<CollisionObject*> objs_x

Objects sorted according to lower x value.

std::vector<CollisionObject*> objs_y

Objects sorted according to lower y value.

std::vector<CollisionObject*> objs_z

Objects sorted according to lower z value.

bool setup_

tag about whether the environment is maintained suitably (i.e., the objs_x, objs_y, objs_z are sorted correctly

Protected Static Functions

static int selectOptimalAxis(const std::vector<CollisionObject*> &objs_x, const std::vector<CollisionObject*> &objs_y, const std::vector<CollisionObject*> &objs_z, typename std::vector<CollisionObject*>::const_iterator &it_beg, typename std::vector<CollisionObject*>::const_iterator &it_end)