osg::ShapeDrawable Class Reference

Inheritance diagram for osg::ShapeDrawable:

osg::Drawable osg::Object osg::Referenced List of all members.

Public Member Functions

 ShapeDrawable ()
 ShapeDrawable (Shape *shape, TessellationHints *hints=0)
 ShapeDrawable (const ShapeDrawable &pg, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual ObjectcloneType () const
virtual Objectclone (const CopyOp &copyop) const
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
void setColor (const Vec4 &color)
const Vec4getColor () const
void setTessellationHints (TessellationHints *hints)
TessellationHintsgetTessellationHints ()
const TessellationHintsgetTessellationHints () const
virtual void drawImplementation (State &state) const
virtual bool supports (const AttributeFunctor &) const
virtual bool supports (const ConstAttributeFunctor &) const
virtual void accept (ConstAttributeFunctor &af) const
virtual bool supports (const PrimitiveFunctor &) const
virtual void accept (PrimitiveFunctor &pf) const
virtual BoundingBox computeBound () const

Protected Member Functions

ShapeDrawableoperator= (const ShapeDrawable &)
virtual ~ShapeDrawable ()

Protected Attributes

Vec4 _color
ref_ptr< TessellationHints_tessellationHints

Detailed Description

Allow the use of Shapes as Drawables, so that they can be rendered with reduced effort. The implementation of ShapeDrawable is not geared to efficiency; it's better to think of it as a convenience to render Shapes easily (perhaps for test or debugging purposes) than as the right way to render basic shapes in some efficiency-critical section of code.
Todo:
ShapeDrawable currently doesn't render InfinitePlanes.


Constructor & Destructor Documentation

osg::ShapeDrawable::ShapeDrawable (  ) 

osg::ShapeDrawable::ShapeDrawable ( Shape shape,
TessellationHints hints = 0 
)

osg::ShapeDrawable::ShapeDrawable ( const ShapeDrawable pg,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
)

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::ShapeDrawable::~ShapeDrawable (  )  [protected, virtual]


Member Function Documentation

virtual void osg::ShapeDrawable::accept ( PrimitiveFunctor pf  )  const [virtual]

Accept a PrimitiveFunctor and call its methods to tell it about the internal primitives that this Drawable has.

Reimplemented from osg::Drawable.

virtual void osg::ShapeDrawable::accept ( ConstAttributeFunctor &  af  )  const [virtual]

Accept a ConstAttributeFunctor and call its methods to tell it about the interal attributes that this Drawable has.

virtual const char* osg::ShapeDrawable::className (  )  const [inline, virtual]

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

Reimplemented from osg::Drawable.

virtual Object* osg::ShapeDrawable::clone ( const CopyOp copyop  )  const [inline, virtual]

Clone an object, with Object* return type. Must be defined by derived classes.

Implements osg::Object.

virtual Object* osg::ShapeDrawable::cloneType (  )  const [inline, virtual]

Clone the type of an object, with Object* return type. Must be defined by derived classes.

Implements osg::Object.

virtual BoundingBox osg::ShapeDrawable::computeBound (  )  const [virtual]

Compute the bounding box around Drawables's geometry.

Reimplemented from osg::Drawable.

virtual void osg::ShapeDrawable::drawImplementation ( State state  )  const [virtual]

Draw ShapeDrawable directly ignoring an OpenGL display list which could be attached. This is the internal draw method which does the drawing itself, and is the method to override when deriving from ShapeDrawable for user-drawn objects.

Implements osg::Drawable.

const Vec4& osg::ShapeDrawable::getColor (  )  const [inline]

Get the color of the shape.

const TessellationHints* osg::ShapeDrawable::getTessellationHints (  )  const [inline]

TessellationHints* osg::ShapeDrawable::getTessellationHints (  )  [inline]

virtual bool osg::ShapeDrawable::isSameKindAs ( const Object obj  )  const [inline, virtual]

Reimplemented from osg::Drawable.

virtual const char* osg::ShapeDrawable::libraryName (  )  const [inline, virtual]

return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.

Reimplemented from osg::Drawable.

ShapeDrawable& osg::ShapeDrawable::operator= ( const ShapeDrawable  )  [inline, protected]

void osg::ShapeDrawable::setColor ( const Vec4 color  ) 

Set the color of the shape.

void osg::ShapeDrawable::setTessellationHints ( TessellationHints hints  ) 

virtual bool osg::ShapeDrawable::supports ( const PrimitiveFunctor  )  const [inline, virtual]

Return true, osg::ShapeDrawable does support accept(PrimitiveFunctor&) .

Reimplemented from osg::Drawable.

virtual bool osg::ShapeDrawable::supports ( const ConstAttributeFunctor &   )  const [inline, virtual]

Return true, osg::ShapeDrawable does support accept(ConstAttributeFunctor&).

virtual bool osg::ShapeDrawable::supports ( const AttributeFunctor &   )  const [inline, virtual]

Return false, osg::ShapeDrawable does not support accept(AttributeFunctor&).


Member Data Documentation

Vec4 osg::ShapeDrawable::_color [protected]

ref_ptr<TessellationHints> osg::ShapeDrawable::_tessellationHints [protected]


The documentation for this class was generated from the following file:
Generated on Sun Oct 1 13:17:07 2006 for openscenegraph by  doxygen 1.4.7