Class IntervalTreeCollisionManager
Defined in File broadphase_interval_tree.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public coal::BroadPhaseCollisionManager
(Class BroadPhaseCollisionManager)
Class Documentation
-
class IntervalTreeCollisionManager : public coal::BroadPhaseCollisionManager
Collision manager based on interval tree.
Public Types
-
typedef BroadPhaseCollisionManager Base
Public Functions
-
IntervalTreeCollisionManager()
-
~IntervalTreeCollisionManager()
-
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 update(CollisionObject *updated_obj)
update the manager by explicitly given the object updated
-
virtual void update(const std::vector<CollisionObject*> &updated_objs)
update the manager by explicitly given the set of objects update
-
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::deque<detail::SimpleInterval*>::const_iterator pos_start, typename std::deque<detail::SimpleInterval*>::const_iterator pos_end, CollisionObject *obj, CollisionCallBackBase *callback) const
-
bool checkDist(typename std::deque<detail::SimpleInterval*>::const_iterator pos_start, typename std::deque<detail::SimpleInterval*>::const_iterator pos_end, CollisionObject *obj, DistanceCallBackBase *callback, CoalScalar &min_dist) const
-
bool collide_(CollisionObject *obj, CollisionCallBackBase *callback) const
-
bool distance_(CollisionObject *obj, DistanceCallBackBase *callback, CoalScalar &min_dist) const
Protected Attributes
-
detail::IntervalTree *interval_trees[3]
interval tree manages the intervals
-
std::map<CollisionObject*, SAPInterval*> obj_interval_maps[3]
-
bool setup_
tag for whether the interval tree is maintained suitably
-
struct EndPoint
SAP end point.
SAP end point
Public Members
-
CollisionObject *obj
object related with the end point
-
CoalScalar value
end point value
-
char minmax
tag for whether it is a lower bound or higher bound of an interval, 0 for lo, and 1 for hi
-
CollisionObject *obj
-
struct SAPInterval : public coal::detail::SimpleInterval
Extention interval tree’s interval to SAP interval, adding more information.
Public Functions
-
SAPInterval(CoalScalar low_, CoalScalar high_, CollisionObject *obj_)
Public Members
-
CollisionObject *obj
-
SAPInterval(CoalScalar low_, CoalScalar high_, CollisionObject *obj_)
-
typedef BroadPhaseCollisionManager Base