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

physics::Polyhedron Class Reference

Inheritance diagram for physics::Polyhedron:

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef base::reflist< VertexVertexList
typedef base::reflist< EdgeEdgeList
typedef base::reflist< PolygonPolygonList
typedef Int Attributes
typedef Int VisualType
enum  AttributeFlags {
  ShowAxes = 1, ShowBounds = 2, ShowCollisions = 4, ShowCollisionModel = 8,
  ShowCollisionDetection = 16, ShowEdges = 32, ShowNormals = 64, VerticesOnly = 128
}
enum  ExternalizationType { Input = 1, Output = 2, IO = 3 }

Public Member Functions

 Polyhedron ()
 Polyhedron (ref< base::VFile > file) throw (std::invalid_argument, base::io_error)
 Polyhedron (const Polyhedron &p)
 Polyhedron (const gfx::TriangleContainer &tris)
 Polyhedron (osg::Node &n)
 Polyhedron (const Shape &s)
virtual ~Polyhedron ()
virtual String className () const
virtual Object & clone () const
VertexList::const_iterator_const  vertices_begin () const
VertexList::const_iterator_const  vertices_end () const
EdgeList::const_iterator_const  edges_begin () const
EdgeList::const_iterator_const  edges_end () const
PolygonList::const_iterator_const  polygon_begin () const
PolygonList::const_iterator_const  polygon_end () const
virtual BoundingBox getBoundingBox () const
virtual BoundingSphere getBoundingSphere () const
virtual const MassPropertiesgetMassProperties (ref< const Material > material) const
virtual gfx::Segment3 shortestSegmentBetween (const base::Transform &t, const Point3 &p) const
 return the shortest segment between this shape (in configuration t) and the point p (the returned segment will always end with p)

virtual gfx::Segment3 shortestSegmentBetween (const base::Transform &t, const gfx::Segment3 &s) const
 return the shortest segment between this shape (in configuration t) and the segment s

virtual gfx::Segment3 shortestSegmentBetween (const base::Transform &t, const gfx::Triangle3 &tri) const
 return the shortest segment between this shape (in configuration t) and the triangle t

virtual gfx::Segment3 shortestSegmentBetween (const base::Transform &t, const gfx::Quad3 &q) const
 return the shortest segment between this shape (in configuration t) and the quad q

virtual gfx::Segment3 shortestSegmentBetween (const base::Transform &t1, ref< const Shape > s, const base::Transform &t2) const
 return the shortest segment between this shape (in configuration t1) and the shape s (in configuration t2)

virtual ref< CollisionModelgetCollisionModel (CollisionModel::CollisionModelType modelType) const
 deprecated.

virtual bool visualTypeSupported (VisualType type) const
virtual osg::Node * createOSGVisual (Attributes visualAttributes=0) const
virtual void serialize (base::Serializer &s)
 read or write object state to Serializer

virtual bool formatSupported (String format, Real version=1.0, ExternalizationType type=IO) const
 query if specific format is supported (for input, output or both)

virtual void externalize (base::Externalizer &e, String format="", Real version=1.0)
 read or write object state to Externalizer

virtual void externalize (base::Externalizer &e, String format="", Real version=1.0) const
 write object state to Externalizer (throws if e is in Input)

virtual bool isConvex () const
virtual bool includesAppearance () const
virtual void setIncludesAppearance (bool appearanceIncluded)
ref< ShapecreateShapeFromInput (base::Externalizer &e, String format="", Real version=1.0)
 create a new concrete Shape (subclass) based on the next element that appears in the Input Externalizer stream

void reference () const
bool unreference () const
const int referenceCount () const
void enableOnUnreferenceCall (bool enabled)
virtual void onUnreference () const
virtual osg::Node * createOSGVisual (Visual::Attributes visualAttributes=0) const
virtual bool isSameKindAs (const Object &) const
virtual bool isSameKindAs (const ReferencedObject &) const
void load (ref< VFile > archive, const String &format="", Real version=1.0)
void save (ref< VFile > archive, const String &format="", Real version=1.0)

Static Public Member Functions

template<class BaseClass, class DerivedClass> void registerSerializableInstantiator (const SerializableInstantiator &instantiator)
void registerSerializableInstantiator (const String &baseClassTypeName, const String &derivedClassTypeName, const SerializableInstantiator &instantiator)
template<class BaseClass> const SerializableInstantiator & getSerializableInstantiator (const String &derivedClassTypeName)
const SerializableInstantiator & getSerializableInstantiator (const String &baseClassTypeName, const String &derivedClassTypeName)

Static Public Attributes

const Int OSGVisual = 1

Protected Member Functions

ref< Vertexvertex (const Point3 &p)
 return Vertex with coord p (create if necessary)

ref< Edgeedge (ref< Vertex > v1, ref< Vertex > v2)
 return Edge with vertices v1 & v2 - any order (create if necessary)

void buildGeometry (const gfx::TriangleContainer &tris)
void getAdjacentVertices (const Point3 &v, array< Point3 > &adjacent) const
void computeBounds () const
ref< CollisionModelgetCollisionModelFromVisual (CollisionModel::CollisionModelType modelType) const

Static Protected Member Functions

osg::Node * createOSGAxes (const base::Dimension3 &dim)

Protected Attributes

bool boundsCached
BoundingBox boundingBox
BoundingSphere boundingSphere
bool massPropertiesCached
Real density
MassProperties massProperties
VertexList verts
EdgeList edges
PolygonList polys
Visual::Attributes attributes
ref_ptr< osg::Node > model
ref_ptr< osg::Node > node
ref< CollisionModelcollisionModel
CollisionModel::CollisionModelType modelType
bool shapeHasAppearance
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<Edge> physics::Polyhedron::EdgeList
 

Definition at line 65 of file Polyhedron.

typedef base::reflist<Polygon> physics::Polyhedron::PolygonList
 

Definition at line 66 of file Polyhedron.

typedef base::reflist<Vertex> physics::Polyhedron::VertexList
 

Definition at line 64 of file Polyhedron.

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.

enum base::Externalizable::ExternalizationType [inherited]
 

Enumeration values:
Input 
Output 
IO 

Definition at line 40 of file Externalizable.


Constructor & Destructor Documentation

physics::Polyhedron::Polyhedron  ) 
 

Referenced by clone().

physics::Polyhedron::Polyhedron ref< base::VFile file  )  throw (std::invalid_argument, base::io_error) [explicit]
 

physics::Polyhedron::Polyhedron const Polyhedron p  ) 
 

physics::Polyhedron::Polyhedron const gfx::TriangleContainer tris  ) 
 

physics::Polyhedron::Polyhedron osg::Node &  n  ) 
 

physics::Polyhedron::Polyhedron const Shape s  ) 
 

virtual physics::Polyhedron::~Polyhedron  )  [virtual]
 


Member Function Documentation

void physics::Polyhedron::buildGeometry const gfx::TriangleContainer tris  )  [protected]
 

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

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

Implements base::Object.

Definition at line 57 of file Polyhedron.

Referenced by clone().

virtual Object& physics::Polyhedron::clone  )  const [inline, virtual]
 

Definition at line 58 of file Polyhedron.

References className(), NewNamedObj, and Polyhedron().

void physics::Polyhedron::computeBounds  )  const [protected]
 

osg::Node* physics::Shape::createOSGAxes const base::Dimension3 dim  )  [static, protected, inherited]
 

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.

virtual osg::Node* physics::Polyhedron::createOSGVisual Attributes  visualAttributes = 0  )  const [virtual]
 

ref<Shape> physics::Shape::createShapeFromInput base::Externalizer e,
String  format = "",
Real  version = 1.0
[inherited]
 

create a new concrete Shape (subclass) based on the next element that appears in the Input Externalizer stream

ref<Edge> physics::Polyhedron::edge ref< Vertex v1,
ref< Vertex v2
[protected]
 

return Edge with vertices v1 & v2 - any order (create if necessary)

EdgeList::const_iterator_const physics::Polyhedron::edges_begin  )  const [inline]
 

Definition at line 192 of file Polyhedron.

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

EdgeList::const_iterator_const physics::Polyhedron::edges_end  )  const [inline]
 

Definition at line 193 of file Polyhedron.

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

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::Polyhedron::externalize base::Externalizer e,
String  format = "",
Real  version = 1.0
const [inline, virtual]
 

write object state to Externalizer (throws if e is in Input)

Reimplemented from base::Externalizable.

Definition at line 225 of file Polyhedron.

virtual void physics::Polyhedron::externalize base::Externalizer e,
String  format = "",
Real  version = 1.0
[virtual]
 

read or write object state to Externalizer

Implements base::Externalizable.

virtual bool physics::Polyhedron::formatSupported String  format,
Real  version = 1.0,
ExternalizationType  type = IO
const [virtual]
 

query if specific format is supported (for input, output or both)

Implements base::Externalizable.

void physics::Polyhedron::getAdjacentVertices const Point3 v,
array< Point3 > &  adjacent
const [protected]
 

virtual BoundingBox physics::Polyhedron::getBoundingBox  )  const [virtual]
 

Implements physics::Shape.

virtual BoundingSphere physics::Polyhedron::getBoundingSphere  )  const [virtual]
 

Implements physics::Shape.

virtual ref<CollisionModel> physics::Polyhedron::getCollisionModel CollisionModel::CollisionModelType  modelType  )  const [virtual]
 

deprecated.

Reimplemented from physics::Shape.

ref<CollisionModel> physics::Shape::getCollisionModelFromVisual CollisionModel::CollisionModelType  modelType  )  const [protected, inherited]
 

virtual const MassProperties& physics::Polyhedron::getMassProperties ref< const Material material  )  const [virtual]
 

Implements physics::Shape.

const SerializableInstantiator& base::Serializable::getSerializableInstantiator const String baseClassTypeName,
const String derivedClassTypeName
[static, inherited]
 

template<class BaseClass>
const SerializableInstantiator& base::Serializable::getSerializableInstantiator const String derivedClassTypeName  )  [inline, static, inherited]
 

Definition at line 71 of file Serializable.

References base::String.

virtual bool physics::Shape::includesAppearance  )  const [inline, virtual, inherited]
 

Definition at line 60 of file Shape.

References physics::Shape::shapeHasAppearance.

virtual bool physics::ComplexShape::isConvex  )  const [inline, virtual, inherited]
 

Implements physics::Shape.

Definition at line 40 of file ComplexShape.

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

Definition at line 52 of file ReferencedObject.

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

Definition at line 47 of file Object.

void base::Externalizable::load ref< VFile archive,
const String format = "",
Real  version = 1.0
[inherited]
 

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

PolygonList::const_iterator_const physics::Polyhedron::polygon_begin  )  const [inline]
 

Definition at line 195 of file Polyhedron.

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

PolygonList::const_iterator_const physics::Polyhedron::polygon_end  )  const [inline]
 

Definition at line 196 of file Polyhedron.

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

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

void base::Serializable::registerSerializableInstantiator const String baseClassTypeName,
const String derivedClassTypeName,
const SerializableInstantiator instantiator
[static, inherited]
 

template<class BaseClass, class DerivedClass>
void base::Serializable::registerSerializableInstantiator const SerializableInstantiator instantiator  )  [inline, static, inherited]
 

Definition at line 62 of file Serializable.

void base::Externalizable::save ref< VFile archive,
const String format = "",
Real  version = 1.0
[inherited]
 

virtual void physics::Polyhedron::serialize base::Serializer s  )  [virtual]
 

read or write object state to Serializer

Implements base::Serializable.

virtual void physics::Shape::setIncludesAppearance bool  appearanceIncluded  )  [inline, virtual, inherited]
 

Definition at line 61 of file Shape.

References physics::Shape::shapeHasAppearance.

virtual gfx::Segment3 physics::Polyhedron::shortestSegmentBetween const base::Transform t1,
ref< const Shape s,
const base::Transform t2
const [virtual]
 

return the shortest segment between this shape (in configuration t1) and the shape s (in configuration t2)

Implements physics::Shape.

virtual gfx::Segment3 physics::Polyhedron::shortestSegmentBetween const base::Transform t,
const gfx::Quad3 q
const [virtual]
 

return the shortest segment between this shape (in configuration t) and the quad q

Implements physics::Shape.

virtual gfx::Segment3 physics::Polyhedron::shortestSegmentBetween const base::Transform t,
const gfx::Triangle3 tri
const [virtual]
 

return the shortest segment between this shape (in configuration t) and the triangle t

Implements physics::Shape.

virtual gfx::Segment3 physics::Polyhedron::shortestSegmentBetween const base::Transform t,
const gfx::Segment3 s
const [virtual]
 

return the shortest segment between this shape (in configuration t) and the segment s

Implements physics::Shape.

virtual gfx::Segment3 physics::Polyhedron::shortestSegmentBetween const base::Transform t,
const Point3 p
const [virtual]
 

return the shortest segment between this shape (in configuration t) and the point p (the returned segment will always end with p)

Implements physics::Shape.

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.

ref<Vertex> physics::Polyhedron::vertex const Point3 p  )  [protected]
 

return Vertex with coord p (create if necessary)

VertexList::const_iterator_const physics::Polyhedron::vertices_begin  )  const [inline]
 

Definition at line 189 of file Polyhedron.

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

VertexList::const_iterator_const physics::Polyhedron::vertices_end  )  const [inline]
 

Definition at line 190 of file Polyhedron.

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

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

Reimplemented from gfx::Visual.

Definition at line 217 of file Polyhedron.


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::Polyhedron::attributes [mutable, protected]
 

Definition at line 251 of file Polyhedron.

BoundingBox physics::Polyhedron::boundingBox [mutable, protected]
 

Definition at line 230 of file Polyhedron.

BoundingSphere physics::Polyhedron::boundingSphere [mutable, protected]
 

Definition at line 231 of file Polyhedron.

bool physics::Polyhedron::boundsCached [mutable, protected]
 

Definition at line 229 of file Polyhedron.

ref<CollisionModel> physics::Polyhedron::collisionModel [mutable, protected]
 

Definition at line 255 of file Polyhedron.

Real physics::Polyhedron::density [mutable, protected]
 

Definition at line 234 of file Polyhedron.

EdgeList physics::Polyhedron::edges [protected]
 

Definition at line 239 of file Polyhedron.

MassProperties physics::Polyhedron::massProperties [mutable, protected]
 

Definition at line 235 of file Polyhedron.

bool physics::Polyhedron::massPropertiesCached [mutable, protected]
 

Definition at line 233 of file Polyhedron.

ref_ptr<osg::Node> physics::Polyhedron::model [mutable, protected]
 

Definition at line 252 of file Polyhedron.

CollisionModel::CollisionModelType physics::Polyhedron::modelType [mutable, protected]
 

Definition at line 256 of file Polyhedron.

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

Definition at line 253 of file Polyhedron.

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.

PolygonList physics::Polyhedron::polys [protected]
 

Definition at line 240 of file Polyhedron.

bool physics::Shape::shapeHasAppearance [protected, inherited]
 

Definition at line 97 of file Shape.

Referenced by physics::Shape::includesAppearance(), physics::Shape::setIncludesAppearance(), and physics::Shape::Shape().

VertexList physics::Polyhedron::verts [protected]
 

Definition at line 238 of file Polyhedron.


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