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

physics::ODESolid Class Reference

Inheritance diagram for physics::ODESolid:

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

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
}
typedef std::bitset< sizeof(Int)*8 CollidableFlags )
typedef Int CollidableFlag

Public Member Functions

 ODESolid (const Solid &s)
virtual ~ODESolid ()
virtual String className () const
virtual MassProperties massProperties () const
virtual Bodyoperator= (const Body &b)
virtual void setEnabled (bool enable)
virtual bool isEnabled () const
virtual void setPosition (const Point3 &x)
virtual void setOrientation (const Orient &orient)
virtual void setVelocity (const Vector3 &v)
virtual void setAngVelocity (const Vector3 &w)
virtual Point3 getPosition () const
virtual Orient getOrientation () const
virtual Vector3 getVelocity () const
virtual Vector3 getAngVelocity () const
virtual void saveState ()
virtual void restoreState ()
virtual Point3 getSavedPosition () const
virtual Orient getSavedOrientation () const
virtual Vector3 getSavedVelocity () const
virtual Vector3 getSavedAngVelocity () const
virtual Point3 getRelPointPos (const Point3 &p)
virtual Vector3 getRelPointVel (const Point3 &p)
virtual Point3 getGlobalPointRelPos (const Point3 &p)
virtual void addForce (const Vector3 &f)
virtual void addTorque (const Vector3 &t)
virtual void addRelForce (const Vector3 &f)
virtual void addRelTorque (const Vector3 &t)
virtual void addForceAtPos (const Vector3 &f, const Point3 &p)
virtual void addForceAtRelPos (const Vector3 &f, const Point3 &p)
virtual void addRelForceAtPos (const Vector3 &f, const Point3 &p)
virtual void addRelForceAtRelPos (const Vector3 &f, const Point3 &p)
virtual Vector3 getForce () const
virtual Vector3 getTorque () const
virtual ref< CollidablecreateCollidable (ref< const Shape > collisionShape, CollidableFlags flags=0)
virtual dBodyID getBodyID () const
 get ODE's dBodyID

virtual void setName (const String &name)
virtual ref< const MaterialgetMaterial () const
virtual ref< CollidablecreateCollidable (CollidableFlags flags=0)
 create CollidableBody (not connected to Solid if flags contains SolidNotConnected - i.e. not SolidConnectedCollidableBody)

virtual bool visualTypeSupported (VisualType type) const
virtual osg::Node * createOSGVisual (Visual::Attributes visualAttributes=0) const
virtual ref< const ShapegetShape () const
virtual void setPositionOrientation (const Point3 &pos, const Orient &orient)
virtual void setConfiguration (const base::Transform &configuration)
virtual base::Transform getConfiguration () const
virtual void setPosition2D (const base::Point2 &p, Real theta)
 set the 2D (x,y,theta) position (theta is rot. angle about Z-axis)

virtual base::Point2 getPosition2D () const
 get the 2D (x,y) position

Real getOrientation2D () const
 get the 2D angle theta (rot. angle about Z-axis)

virtual const String & getName () const
virtual bool isSameKindAs (const ReferencedObject &) const
virtual bool isSameKindAs (const Object &) const
void reference () const
bool unreference () const
const int referenceCount () const
void enableOnUnreferenceCall (bool enabled)
virtual void onUnreference () const

Static Public Attributes

const CollidableProvider::CollidableFlag SolidNotConnected = 1
const Int OSGVisual = 1

Protected Member Functions

 ODESolid (ref< const Shape > shape, ref< const Material > material)
void create (dWorldID worldID) const
 create ODE body etc. and add to worldID

void destroy () const
 destroy the body and remove it from the world

Vector3 AngVelToAngMomentum (const Quat4 &orient, const Vector3 &w) const
virtual void updateVisual ()
 update the visual to the current position & orientation state (does nothing if no Visual requested)

void setShape (ref< Shape > shape)

Protected Attributes

dVector3 savedPos
dQuaternion savedOrient
dVector3 savedVel
dVector3 savedAngVel
bool created
 have ODE entities been created? (creation is delayed until call to create() )

dWorldID worldID
 ODE's world ID (for world this is in).

dBodyID bodyID
 ODE's body ID.

ref< const Materialmaterial
Visual::Attributes attributes
ref_ptr< osg::Node > node
osg::MatrixTransform * worldTransform
 transforms visual to current solid position/orientation

int _refCount
bool onUnreferenceEnabled

Friends

class ODESolidSystem
class ODEJoint
class ODECollisionResponseHandler
class SolidSystem

Member Typedef Documentation

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

Definition at line 39 of file Visual.

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

typedef Int physics::CollidableProvider::CollidableFlag [inherited]
 

Definition at line 45 of file CollidableProvider.

typedef std::bitset<sizeof(Int)*8 physics::CollidableProvider::CollidableFlags) [inherited]
 

Definition at line 44 of file CollidableProvider.

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::ODESolid::ODESolid const Solid s  ) 
 

virtual physics::ODESolid::~ODESolid  )  [virtual]
 

physics::ODESolid::ODESolid ref< const Shape shape,
ref< const Material material
[protected]
 


Member Function Documentation

virtual void physics::ODESolid::addForce const Vector3 f  )  [virtual]
 

Implements physics::Solid.

virtual void physics::ODESolid::addForceAtPos const Vector3 f,
const Point3 p
[virtual]
 

Implements physics::Solid.

virtual void physics::ODESolid::addForceAtRelPos const Vector3 f,
const Point3 p
[virtual]
 

Implements physics::Solid.

virtual void physics::ODESolid::addRelForce const Vector3 f  )  [virtual]
 

Implements physics::Solid.

virtual void physics::ODESolid::addRelForceAtPos const Vector3 f,
const Point3 p
[virtual]
 

Implements physics::Solid.

virtual void physics::ODESolid::addRelForceAtRelPos const Vector3 f,
const Point3 p
[virtual]
 

Implements physics::Solid.

virtual void physics::ODESolid::addRelTorque const Vector3 t  )  [virtual]
 

Implements physics::Solid.

virtual void physics::ODESolid::addTorque const Vector3 t  )  [virtual]
 

Implements physics::Solid.

Vector3 physics::ODESolid::AngVelToAngMomentum const Quat4 orient,
const Vector3 w
const [protected]
 

virtual String physics::ODESolid::className  )  const [inline, virtual]
 

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

Reimplemented from physics::Solid.

Definition at line 44 of file ODESolid.

void physics::ODESolid::create dWorldID  worldID  )  const [protected]
 

create ODE body etc. and add to worldID

virtual ref<Collidable> physics::Solid::createCollidable CollidableFlags  flags = 0  )  [inline, virtual, inherited]
 

create CollidableBody (not connected to Solid if flags contains SolidNotConnected - i.e. not SolidConnectedCollidableBody)

Implements physics::CollidableProvider.

Definition at line 80 of file Solid.

References physics::Body::getShape().

virtual ref<Collidable> physics::ODESolid::createCollidable ref< const Shape collisionShape,
CollidableFlags  flags = 0
[virtual]
 

Implements physics::Solid.

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

Reimplemented from gfx::Visual.

void physics::ODESolid::destroy  )  const [protected]
 

destroy the body and remove it from the world

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 Vector3 physics::ODESolid::getAngVelocity  )  const [virtual]
 

Implements physics::DynamicSpatial.

virtual dBodyID physics::ODESolid::getBodyID  )  const [inline, virtual]
 

get ODE's dBodyID

Definition at line 94 of file ODESolid.

References bodyID.

virtual base::Transform physics::PositionableOrientable::getConfiguration  )  const [inline, virtual, inherited]
 

Reimplemented in physics::SpatialTransform, robot::sim::SimulatedPlatform, robot::sim::SimulatedRobot, robot::sim::SimulatedSerialManipulator, and robot::sim::SimulatedTool.

Definition at line 60 of file PositionableOrientable.

References physics::Orientable::getOrientation(), and physics::Positionable::getPosition().

Referenced by physics::CollidableBody::getBoundingBox(), physics::DynamicSpatial::getGlobalPointRelPos(), physics::DynamicSpatial::getRelPointPos(), physics::PositionableOrientable::operator=(), and physics::PositionableOrientable::PositionableOrientable().

virtual Vector3 physics::ODESolid::getForce  )  const [virtual]
 

Implements physics::Solid.

virtual Point3 physics::ODESolid::getGlobalPointRelPos const Point3 p  )  [virtual]
 

Reimplemented from physics::DynamicSpatial.

virtual ref<const Material> physics::Solid::getMaterial  )  const [inline, virtual, inherited]
 

Definition at line 57 of file Solid.

References physics::Solid::material.

virtual const String& base::Named::getName  )  const [inline, virtual, inherited]
 

Definition at line 44 of file Named.

References base::String.

Referenced by physics::Collidable::findNamed(), physics::operator<<(), robot::ToolDescription::operator=(), robot::RobotDescription::operator=(), robot::PlatformDescription::operator=(), robot::ManipulatorDescription::operator=(), base::Named::operator=(), and robot::ManipulatorDescription::operator==().

virtual Orient physics::ODESolid::getOrientation  )  const [virtual]
 

Implements physics::DynamicSpatial.

Real physics::PositionableOrientable::getOrientation2D  )  const [inherited]
 

get the 2D angle theta (rot. angle about Z-axis)

virtual Point3 physics::ODESolid::getPosition  )  const [virtual]
 

Implements physics::DynamicSpatial.

virtual base::Point2 physics::PositionableOrientable::getPosition2D  )  const [inline, virtual, inherited]
 

get the 2D (x,y) position

Definition at line 72 of file PositionableOrientable.

References physics::Positionable::getPosition(), base::Point2, base::Point3, base::Vector3::x, and base::Vector3::y.

virtual Point3 physics::ODESolid::getRelPointPos const Point3 p  )  [virtual]
 

Reimplemented from physics::DynamicSpatial.

virtual Vector3 physics::ODESolid::getRelPointVel const Point3 p  )  [virtual]
 

Reimplemented from physics::DynamicSpatial.

virtual Vector3 physics::ODESolid::getSavedAngVelocity  )  const [virtual]
 

Implements physics::DynamicSpatial.

virtual Orient physics::ODESolid::getSavedOrientation  )  const [virtual]
 

Implements physics::DynamicSpatial.

virtual Point3 physics::ODESolid::getSavedPosition  )  const [virtual]
 

Implements physics::DynamicSpatial.

virtual Vector3 physics::ODESolid::getSavedVelocity  )  const [virtual]
 

Implements physics::DynamicSpatial.

virtual ref<const Shape> physics::Body::getShape  )  const [inline, virtual, inherited]
 

Definition at line 45 of file Body.

Referenced by physics::Solid::createCollidable(), and physics::CollidableBody::getBoundingBox().

virtual Vector3 physics::ODESolid::getTorque  )  const [virtual]
 

Implements physics::Solid.

virtual Vector3 physics::ODESolid::getVelocity  )  const [virtual]
 

Implements physics::DynamicSpatial.

virtual bool physics::ODESolid::isEnabled  )  const [virtual]
 

Implements physics::Solid.

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.

virtual MassProperties physics::ODESolid::massProperties  )  const [virtual]
 

Reimplemented from physics::Solid.

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 Body& physics::ODESolid::operator= const Body b  )  [virtual]
 

Reimplemented from physics::Body.

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::ODESolid::restoreState  )  [virtual]
 

Implements physics::DynamicSpatial.

virtual void physics::ODESolid::saveState  )  [virtual]
 

Implements physics::DynamicSpatial.

virtual void physics::ODESolid::setAngVelocity const Vector3 w  )  [virtual]
 

Implements physics::DynamicSpatial.

virtual void physics::PositionableOrientable::setConfiguration const base::Transform configuration  )  [inline, virtual, inherited]
 

Reimplemented in physics::SpatialGroup, physics::SpatialTransform, robot::sim::SimulatedPlatform, robot::sim::SimulatedRobot, robot::sim::SimulatedSerialManipulator, and robot::sim::SimulatedTool.

Definition at line 53 of file PositionableOrientable.

References base::Transform::getRotation(), base::Transform::getTranslation(), physics::Orientable::setOrientation(), and physics::Positionable::setPosition().

Referenced by physics::PositionableOrientable::operator=(), physics::PositionableOrientable::PositionableOrientable(), and physics::PositionableOrientable::setPositionOrientation().

virtual void physics::ODESolid::setEnabled bool  enable  )  [virtual]
 

Implements physics::Solid.

virtual void physics::Solid::setName const String &  name  )  [inline, virtual, inherited]
 

Reimplemented from base::Named.

Definition at line 54 of file Solid.

References base::Named::setName().

virtual void physics::ODESolid::setOrientation const Orient orient  )  [virtual]
 

Implements physics::DynamicSpatial.

virtual void physics::ODESolid::setPosition const Point3 x  )  [virtual]
 

Implements physics::DynamicSpatial.

virtual void physics::PositionableOrientable::setPosition2D const base::Point2 p,
Real  theta
[virtual, inherited]
 

set the 2D (x,y,theta) position (theta is rot. angle about Z-axis)

virtual void physics::PositionableOrientable::setPositionOrientation const Point3 pos,
const Orient orient
[inline, virtual, inherited]
 

Definition at line 48 of file PositionableOrientable.

References base::Point3, and physics::PositionableOrientable::setConfiguration().

void physics::Body::setShape ref< Shape shape  )  [inline, protected, inherited]
 

Definition at line 55 of file Body.

virtual void physics::ODESolid::setVelocity const Vector3 v  )  [virtual]
 

Implements physics::DynamicSpatial.

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 void physics::ODESolid::updateVisual  )  [inline, protected, virtual]
 

update the visual to the current position & orientation state (does nothing if no Visual requested)

Reimplemented from physics::Solid.

Definition at line 102 of file ODESolid.

virtual bool physics::Solid::visualTypeSupported VisualType  type  )  const [inline, virtual, inherited]
 

Reimplemented from gfx::Visual.

Definition at line 84 of file Solid.


Friends And Related Function Documentation

friend class ODECollisionResponseHandler [friend]
 

Definition at line 116 of file ODESolid.

friend class ODEJoint [friend]
 

Definition at line 115 of file ODESolid.

friend class ODESolidSystem [friend]
 

Definition at line 114 of file ODESolid.

friend class SolidSystem [friend, inherited]
 

Definition at line 101 of file Solid.


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().

Visual::Attributes physics::Solid::attributes [mutable, protected, inherited]
 

Definition at line 95 of file Solid.

dBodyID physics::ODESolid::bodyID [mutable, protected]
 

ODE's body ID.

Definition at line 112 of file ODESolid.

Referenced by getBodyID().

bool physics::ODESolid::created [mutable, protected]
 

have ODE entities been created? (creation is delayed until call to create() )

Definition at line 110 of file ODESolid.

ref<const Material> physics::Solid::material [protected, inherited]
 

Definition at line 93 of file Solid.

Referenced by physics::Solid::getMaterial().

ref_ptr<osg::Node> physics::Solid::node [mutable, protected, inherited]
 

Definition at line 96 of file Solid.

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.

dVector3 physics::ODESolid::savedAngVel [protected]
 

Definition at line 108 of file ODESolid.

dQuaternion physics::ODESolid::savedOrient [protected]
 

Definition at line 106 of file ODESolid.

dVector3 physics::ODESolid::savedPos [protected]
 

Definition at line 105 of file ODESolid.

dVector3 physics::ODESolid::savedVel [protected]
 

Definition at line 107 of file ODESolid.

const CollidableProvider::CollidableFlag physics::Solid::SolidNotConnected = 1 [static, inherited]
 

Definition at line 78 of file Solid.

dWorldID physics::ODESolid::worldID [mutable, protected]
 

ODE's world ID (for world this is in).

Definition at line 111 of file ODESolid.

osg::MatrixTransform* physics::Solid::worldTransform [mutable, protected, inherited]
 

transforms visual to current solid position/orientation

Definition at line 99 of file Solid.


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