Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

physics::CollisionResponseHandler Class Reference

Inheritance diagram for physics::CollisionResponseHandler:

Inheritance graph
[legend]
Collaboration diagram for physics::CollisionResponseHandler:

Collaboration graph
[legend]
List of all members.

Public Types

typedef Int Attributes
typedef Int VisualType
enum  AttributeFlags {
  ShowAxes = 1, ShowBounds = 2, ShowCollisions = 4, ShowCollisionModel = 8,
  ShowCollisionDetection = 16, ShowEdges = 32, ShowNormals = 64, VerticesOnly = 128
}

Public Member Functions

 CollisionResponseHandler (ref< CollisionDetector > collisionDetector)
virtual ~CollisionResponseHandler ()
virtual void handleCollision (ref< CollisionState > collisionState)=0
virtual void collide (ref< const Collidable > collidable1, ref< const Collidable > collidable2)
 notify PotentialCollisionListeners if possible collision between Collidables

virtual void collide (ref< const CollidableGroup > group)
virtual void reset ()
 called at the beginning of each collision cycle

virtual void collide (ref< const Collidable > collidable)
virtual void collisionEnable (bool enabled)
 enable/disable all collisions

virtual bool isCollisionEnabled () const
virtual void addPotentialCollisionListener (ref< PotentialCollisionListener > listener)
virtual void removePotentialCollisionListener (ref< PotentialCollisionListener > listener)
virtual void potentialCollision (ref< const Collidable > collidable1, ref< const Collidable > collidable2)
virtual bool visualTypeSupported (VisualType type) const
virtual osg::Node * createOSGVisual (Visual::Attributes visualAttributes=0) const
virtual bool isSameKindAs (const ReferencedObject &) const
virtual bool isSameKindAs (const Object &) const
virtual String className () const=0
void reference () const
bool unreference () const
const int referenceCount () const
void enableOnUnreferenceCall (bool enabled)
virtual void onUnreference () const

Static Public Attributes

const Int OSGVisual = 1

Protected Types

typedef base::reflist< PotentialCollisionListenerListenerList

Protected Member Functions

 CollisionResponseHandler ()
 CollisionResponseHandler (const CollisionResponseHandler &h)
void notifyListeners (ref< const Collidable > collidable1, ref< const Collidable > collidable2)
 call potentialCollision(collidable1,collidable2) on all listeners (if enabled)

void resetListeners ()
 call reset() on all listeners (if enabled)


Protected Attributes

ref< CollisionDetectorcollisionDetector
bool enabled
ListenerList listeners
int _refCount
bool onUnreferenceEnabled

Member Typedef Documentation

typedef Int gfx::Visual::Attributes [inherited]
 

Definition at line 39 of file Visual.

Referenced by gfx::Visual::createOSGVisual().

typedef base::reflist<PotentialCollisionListener> physics::Collider::ListenerList [protected, inherited]
 

Definition at line 76 of file Collider.

typedef Int gfx::Visual::VisualType [inherited]
 

Definition at line 44 of file Visual.

Referenced by gfx::Visual::visualTypeSupported().


Member Enumeration Documentation

enum gfx::Visual::AttributeFlags [inherited]
 

Enumeration values:
ShowAxes 
ShowBounds 
ShowCollisions 
ShowCollisionModel 
ShowCollisionDetection 
ShowEdges 
ShowNormals 
VerticesOnly 

Definition at line 40 of file Visual.


Constructor & Destructor Documentation

physics::CollisionResponseHandler::CollisionResponseHandler ref< CollisionDetector collisionDetector  )  [inline]
 

Definition at line 43 of file CollisionResponseHandler.

virtual physics::CollisionResponseHandler::~CollisionResponseHandler  )  [inline, virtual]
 

Definition at line 44 of file CollisionResponseHandler.

physics::CollisionResponseHandler::CollisionResponseHandler  )  [inline, protected]
 

Definition at line 59 of file CollisionResponseHandler.

physics::CollisionResponseHandler::CollisionResponseHandler const CollisionResponseHandler h  )  [inline, protected]
 

Definition at line 60 of file CollisionResponseHandler.


Member Function Documentation

virtual void physics::Collider::addPotentialCollisionListener ref< PotentialCollisionListener listener  )  [inline, virtual, inherited]
 

Definition at line 60 of file Collider.

References base::reflist< _Tp, _Alloc >::push_back().

virtual String base::Object::className  )  const [pure virtual, inherited]
 

return the name of the object's class type. Must be defined by derived classes.

Implemented in base::Application, base::BinarySerializer, base::Cache, base::CacheDirectory, base::CacheFile, base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::Directory, base::Expression, base::Externalizer, base::File, base::LineSegPathRep, base::LineSegTrajectoryRep, base::Math, base::NegateExpression, base::ParametricPathRep, base::ParametricTrajectoryRep, base::Path, base::PathComponent, base::PathName, base::ProductExpression, base::QuotientExpression, base::SimpleXMLSerializer, base::SinExpression, base::StdFileSystem, base::SumExpression, base::Time, base::Trajectory, base::Universe, base::VariableExpression, base::VDirectory, base::WaypointPathRep, base::WaypointTrajectoryRep, base::World, gfx::IndexedPoint3Array, gfx::OSGWorld, gfx::TriangleIterator, gfx::VisualPath, gfx::VisualTriangles, gfx::VisualTriangles::TriangleArrayIteratorState, physics::Body, physics::Box, physics::Capsule, physics::CollidableGroup, physics::CollisionModel::ModelState, physics::CollisionState, physics::Cone, physics::Cylinder, physics::DynamicSpatial, physics::GJKCollisionDetector, physics::GJKCollisionDetector::GJKCollisionState, physics::GJKCollisionModel, physics::HeightField, physics::LODTerrain, physics::MassProperties, physics::Material, physics::NullCollisionResponseHandler, physics::OBBCollisionDetector, physics::OBBCollisionDetector::OBBCollisionState, physics::OBBCollisionModel, physics::ODEBallJoint, physics::ODECollidableBody, physics::ODECollidableBody::BodyState, physics::ODECollidableGroup, physics::ODECollisionCuller, physics::ODECollisionDetector, physics::ODECollisionDetector::ODECollisionState, physics::ODECollisionModel, physics::ODECollisionResponseHandler, physics::ODEConstraintGroup, physics::ODEContactConstraint, physics::ODEDoubleHingeJoint, physics::ODEFixedConstraint, physics::ODEHingeJoint, physics::ODEMotor, physics::ODESliderJoint, physics::ODESolid, physics::ODESolidConnectedCollidableBody, physics::ODESolidSystem, physics::ODEUniversalJoint, physics::Polyhedron, physics::Polyhedron::Vertex, physics::Polyhedron::Edge, physics::Polyhedron::Polygon, physics::SimpleCollisionCuller, physics::SimpleTerrain, physics::Solid, physics::SOLIDCollisionDetector, physics::SOLIDCollisionDetector::SOLIDCollisionState, physics::SOLIDCollisionModel, physics::SolidCollisionResponseHandler, physics::SpatialGroup, physics::SpatialTransform, physics::Sphere, physics::Torus, physics::VisualDebugUtil, robot::AggregateControlInterface, robot::control::ControllableAdaptor, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::AnalyticLagrangianFSBetaOptimizer, robot::control::kinematics::AnalyticLagrangianNullSpaceBetaOptimizer, robot::control::kinematics::BetaFormConstraints::BetaFormConstraint, robot::control::kinematics::BetaFormConstraints, robot::control::kinematics::IKOR, robot::control::kinematics::IKOR::JointLimitBetaConstraint, robot::control::kinematics::IKOR::PushAwayBetaConstraint, robot::control::kinematics::IKOR::RankLossBetaConstraint, robot::control::kinematics::IKORController, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::kinematics::IKORFullSpaceSolver, robot::control::kinematics::LeastNormIKSolver, robot::control::kinematics::MPPseudoInvSolver, robot::control::kinematics::OldIKOR, robot::control::kinematics::ReferenceOpVectorFormObjective, robot::control::kinematics::SVDFullSpaceSolver, robot::control::ManipulatorPIDPositionController, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::JFKengine, robot::KinematicChain::Link, robot::KinematicChain, robot::ManipulatorDescription, robot::ManipulatorJointTrajectory, robot::NumericKinematicEvaluator, robot::PlatformDescription, robot::RobotDescription, robot::sim::BasicEnvironment, robot::sim::BasicEnvironment::Tool, robot::sim::BasicEnvironment::Obstacle, robot::sim::Environment, robot::sim::IKORTest, robot::sim::IKORTest::Test, robot::sim::IKORTester, robot::sim::SimulatedBasicEnvironment, robot::sim::SimulatedKinematicChain::ProximityCollisionResponseHandler, robot::sim::SimulatedManipulatorDescription, robot::sim::SimulatedPlatform, robot::sim::SimulatedRobot, robot::sim::SimulatedRobot::ManipulatorControlInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::sim::SimulatedRobot::PlatformControlInterface, robot::sim::SimulatedRobot::ProximitySensorInterface, robot::sim::SimulatedRobotDescription, robot::sim::SimulatedSerialManipulator, robot::sim::SimulatedTool, robot::sim::TestBasicEnvironment, robot::sim::VisualIKORTest, robot::TestRobot, robot::TestRobot::ManipulatorControlInterface, robot::TestRobot::ToolControlInterface, robot::TestRobot::PlatformControlInterface, robot::TestRobot::ProximitySensorInterface, and robot::ToolDescription.

virtual void physics::Collider::collide ref< const Collidable collidable  )  [virtual, inherited]
 

convenience method that calls collide(collidable1, collidable2) for each pair of Collidables in the group collidable, unless collidable isn't a group or has child inter-collision disabled (so that you can keep all your Collidables in a single top-level group)

Reimplemented in physics::ODECollisionCuller, physics::ODECollisionDetector, and physics::SimpleCollisionCuller.

virtual void physics::CollisionResponseHandler::collide ref< const CollidableGroup group  )  [inline, virtual]
 

Reimplemented in physics::NullCollisionResponseHandler.

Definition at line 56 of file CollisionResponseHandler.

virtual void physics::CollisionResponseHandler::collide ref< const Collidable collidable1,
ref< const Collidable collidable2
[inline, virtual]
 

notify PotentialCollisionListeners if possible collision between Collidables

Implements physics::Collider.

Reimplemented in physics::NullCollisionResponseHandler.

Definition at line 48 of file CollisionResponseHandler.

References Assert, collisionDetector, handleCollision(), and instanceof.

virtual void physics::Collider::collisionEnable bool  enabled  )  [inline, virtual, inherited]
 

enable/disable all collisions

Reimplemented in physics::CollisionCuller, physics::GJKCollisionDetector, physics::OBBCollisionDetector, and physics::SOLIDCollisionDetector.

Definition at line 57 of file Collider.

virtual osg::Node* gfx::Visual::createOSGVisual Visual::Attributes  visualAttributes = 0  )  const [inline, virtual, inherited]
 

Reimplemented in physics::GJKCollisionDetector, physics::OBBCollisionModel, physics::ODECollisionModel, physics::ODESolidSystem, physics::Solid, physics::SOLIDCollisionModel, and robot::sim::SimulatedBasicEnvironment.

Definition at line 49 of file Visual.

References gfx::Visual::Attributes, Logln, and NewObj.

void base::Referenced::enableOnUnreferenceCall bool  enabled  )  [inline, inherited]
 

If enabled, each call to unreference() will also call virtual method onUnreference()

Definition at line 115 of file Referenced.

References base::Referenced::onUnreferenceEnabled.

virtual void physics::CollisionResponseHandler::handleCollision ref< CollisionState collisionState  )  [pure virtual]
 

Implemented in physics::NullCollisionResponseHandler, physics::ODECollisionResponseHandler, and physics::SolidCollisionResponseHandler.

Referenced by collide().

virtual bool physics::Collider::isCollisionEnabled  )  const [inline, virtual, inherited]
 

Reimplemented in physics::CollisionCuller.

Definition at line 58 of file Collider.

References physics::Collider::enabled.

virtual bool base::Object::isSameKindAs const Object  )  const [inline, virtual, inherited]
 

Definition at line 47 of file Object.

virtual bool base::ReferencedObject::isSameKindAs const ReferencedObject  )  const [inline, virtual, inherited]
 

Definition at line 52 of file ReferencedObject.

void physics::Collider::notifyListeners ref< const Collidable collidable1,
ref< const Collidable collidable2
[protected, inherited]
 

call potentialCollision(collidable1,collidable2) on all listeners (if enabled)

virtual void base::Referenced::onUnreference  )  const [inline, virtual, inherited]
 

Called by unreference() if enabled via enableOnUnreferenceCall(true). Typically overridden in subclasses that wish to know about unreference() calls - for example to handle manually breaking cyclic references

Reimplemented in robot::control::ControllableAdaptor::AdaptorControlInterface, and robot::control::ControllableAdaptor.

Definition at line 121 of file Referenced.

Referenced by base::Referenced::unreference().

virtual void physics::Collider::potentialCollision ref< const Collidable collidable1,
ref< const Collidable collidable2
[inline, virtual, inherited]
 

Implements physics::PotentialCollisionListener.

Definition at line 66 of file Collider.

References physics::Collider::collide().

void base::Referenced::reference  )  const [inline, inherited]
 

Increment the reference count by one, indicating that this object has another pointer which is referencing it.

Definition at line 65 of file Referenced.

References base::Referenced::_refCount.

const int base::Referenced::referenceCount  )  const [inline, inherited]
 

Return the number pointers currently referencing this object.

Definition at line 112 of file Referenced.

References base::Referenced::_refCount.

Referenced by robot::control::ControllableAdaptor::AdaptorControlInterface::onUnreference().

virtual void physics::Collider::removePotentialCollisionListener ref< PotentialCollisionListener listener  )  [inline, virtual, inherited]
 

Definition at line 63 of file Collider.

References base::reflist< _Tp, _Alloc >::remove().

virtual void physics::Collider::reset  )  [inline, virtual, inherited]
 

called at the beginning of each collision cycle

Reimplemented from physics::PotentialCollisionListener.

Reimplemented in physics::SolidCollisionResponseHandler, and robot::sim::SimulatedKinematicChain::ProximityCollisionResponseHandler.

Definition at line 46 of file Collider.

References physics::Collider::resetListeners().

void physics::Collider::resetListeners  )  [protected, inherited]
 

call reset() on all listeners (if enabled)

Referenced by physics::Collider::reset().

bool base::Referenced::unreference  )  const [inline, inherited]
 

Decrement the reference count by one, indicating that a pointer to this object is referencing it. If the refence count goes to zero, it is assumed that this object is nolonger referenced and is automatically deleted.

Definition at line 81 of file Referenced.

References base::Referenced::_refCount, Exception, base::Referenced::onUnreference(), and base::Referenced::onUnreferenceEnabled.

virtual bool gfx::Visual::visualTypeSupported VisualType  type  )  const [inline, virtual, inherited]
 

Reimplemented in gfx::OSGWorld, gfx::VisualPath, physics::Box, physics::Capsule, physics::Cone, physics::Cylinder, physics::GJKCollisionDetector, physics::LODTerrain, physics::OBBCollisionModel, physics::ODECollisionModel, physics::ODESolidSystem, physics::Polyhedron, physics::Solid, physics::SOLIDCollisionModel, physics::Sphere, physics::Torus, physics::VisualDebugUtil, and robot::sim::VisualIKORTest.

Definition at line 47 of file Visual.

References gfx::Visual::VisualType.


Member Data Documentation

int base::Referenced::_refCount [mutable, protected, inherited]
 

Definition at line 136 of file Referenced.

Referenced by base::Referenced::reference(), base::Referenced::referenceCount(), base::Referenced::Referenced(), base::Referenced::unreference(), and base::Referenced::~Referenced().

ref<CollisionDetector> physics::CollisionResponseHandler::collisionDetector [protected]
 

Definition at line 62 of file CollisionResponseHandler.

Referenced by collide().

bool physics::Collider::enabled [protected, inherited]
 

Definition at line 74 of file Collider.

Referenced by physics::Collider::Collider(), and physics::Collider::isCollisionEnabled().

ListenerList physics::Collider::listeners [protected, inherited]
 

Definition at line 77 of file Collider.

bool base::Referenced::onUnreferenceEnabled [protected, inherited]
 

Definition at line 137 of file Referenced.

Referenced by base::Referenced::enableOnUnreferenceCall(), base::Referenced::Referenced(), and base::Referenced::unreference().

const Int gfx::Visual::OSGVisual = 1 [static, inherited]
 

Definition at line 45 of file Visual.


The documentation for this class was generated from the following file:
Generated on Thu Jul 29 16:40:16 2004 for OpenSim by doxygen 1.3.6