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

osgSim::ImpostorSprite Class Reference

An ImposterSprite is a textured quad which is rendered in place of 3D geometry. More...

Inheritance diagram for osgSim::ImpostorSprite:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 ImpostorSprite ()
virtual osg::ObjectcloneType () const
 Clone an object of the same type as an ImpostorSprite.

virtual osg::Objectclone (const osg::CopyOp &) const
 Clone on ImpostorSprite just returns a clone of type, since it is not appropriate to share data of an ImpostorSprite.

virtual bool isSameKindAs (const osg::Object *obj) const
virtual const char * libraryName () const
 return the name of the object's library.

virtual const char * className () const
 return the name of the object's class type.

void setParent (Impostor *parent)
 Set the parent, which must be an Impostor.

ImpostorgetParent ()
 Get the parent, which is an Impostor.

const ImpostorgetParent () const
 Get the const parent, which is an Impostor.

void setStoredLocalEyePoint (const osg::Vec3 &v)
 Set the eye point for when the ImpostorSprite was snapped.

const osg::Vec3getStoredLocalEyePoint () const
 Get the eye point for when the ImpostorSprite was snapped.

void setLastFrameUsed (int frameNumber)
 Set the frame number for when the ImpostorSprite was last used in rendering.

int getLastFrameUsed () const
 Get the frame number for when the ImpostorSprite was last used in rendering.

osg::Vec3getCoords ()
 Get the coordinates of the corners of the quad.

const osg::Vec3getCoords () const
 Get the const coordinates of the corners of the quad.

osg::Vec2getTexCoords ()
 Get the texture coordinates of the corners of the quad.

const osg::Vec2getTexCoords () const
 Get the const texture coordinates of the corners of the quad.

osg::Vec3getControlCoords ()
 Get the control coordinates of the corners of the quad.

const osg::Vec3getControlCoords () const
 Get the const control coordinates of the corners of the quad.

float calcPixelError (const osg::Matrix &MVPW) const
 Calculate the pixel error value for passing in the ModelViewProjectionWindow transform, which transform local coords into screen space.

void setTexture (osg::Texture2D *tex, int s, int t)
osg::Texture2DgetTexture ()
const osg::Texture2DgetTexture () const
int s () const
int t () const
virtual void drawImplementation (osg::State &state) const
 Draw ImpostorSprite directly.

virtual bool supports (const AttributeFunctor &) const
 Return true, osg::ImpostorSprite does support accept(AttributeFunctor&).

virtual void accept (AttributeFunctor &af)
 Accept an AttributeFunctor and call its methods to tell it about the interal attributes that this Drawable has.

virtual bool supports (const ConstAttributeFunctor &) const
 Return true, osg::ImpostorSprite does support accept(ConstAttributeFunctor&).

virtual void accept (ConstAttributeFunctor &af) const
 Accept a ConstAttributeFunctor and call its methods to tell it about the interal attributes that this Drawable has.

virtual bool supports (const osg::PrimitiveFunctor &) const
 Return true, osg::ImpostorSprite does support accept(PrimitiveFunctor&).

virtual void accept (osg::PrimitiveFunctor &pf) const
 Accept a PrimtiveFunctor and call its methods to tell it about the interal primtives that this Drawable has.

virtual osg::BoundingBox computeBound () const
 Compute the bounding box around Drawables's geometry.

void setCameraNode (osg::CameraNode *camera)
 Set the camera node to use for pre rendering the impostor sprite's texture.

osg::CameraNodegetCameraNode ()
 Get the camera node to use for pre rendering the impostor sprite's texture.

const osg::CameraNodegetCameraNode () const
 Get the const camera node to use for pre rendering the impostor sprite's texture.


Public Attributes

osg::Vec4 _color

Protected Member Functions

 ImpostorSprite (const ImpostorSprite &)
ImpostorSpriteoperator= (const ImpostorSprite &)
virtual ~ImpostorSprite ()

Protected Attributes

Impostor_parent
osg::ref_ptr< osg::CameraNode_camera
ImpostorSpriteManager_ism
ImpostorSprite_previous
ImpostorSprite_next
int _lastFrameUsed
osg::Vec3 _storedLocalEyePoint
osg::Vec3 _coords [4]
osg::Vec2 _texcoords [4]
osg::Vec3 _controlcoords [4]
osg::Texture2D_texture
int _s
int _t

Detailed Description

An ImposterSprite is a textured quad which is rendered in place of 3D geometry.

The ImposterSprite is generated by rendering the original 3D geometry to a texture as an image cache. The ImpostorSprite is automatically generated by the osgUtil::CullVisitor so it not necessary to deal with it directly.


Constructor & Destructor Documentation

osgSim::ImpostorSprite::ImpostorSprite  ) 
 

osgSim::ImpostorSprite::ImpostorSprite const ImpostorSprite  )  [protected]
 

virtual osgSim::ImpostorSprite::~ImpostorSprite  )  [protected, virtual]
 


Member Function Documentation

virtual void osgSim::ImpostorSprite::accept osg::PrimitiveFunctor pf  )  const [virtual]
 

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

Reimplemented from osg::Drawable.

virtual void osgSim::ImpostorSprite::accept ConstAttributeFunctor &  af  )  const [virtual]
 

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

Reimplemented from osg::Drawable.

virtual void osgSim::ImpostorSprite::accept AttributeFunctor &  af  )  [virtual]
 

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

Reimplemented from osg::Drawable.

float osgSim::ImpostorSprite::calcPixelError const osg::Matrix MVPW  )  const
 

Calculate the pixel error value for passing in the ModelViewProjectionWindow transform, which transform local coords into screen space.

virtual const char* osgSim::ImpostorSprite::className  )  const [inline, virtual]
 

return the name of the object's class type.

Must be defined by derived classes.

Reimplemented from osg::Drawable.

virtual osg::Object* osgSim::ImpostorSprite::clone const osg::CopyOp  )  const [inline, virtual]
 

Clone on ImpostorSprite just returns a clone of type, since it is not appropriate to share data of an ImpostorSprite.

virtual osg::Object* osgSim::ImpostorSprite::cloneType  )  const [inline, virtual]
 

Clone an object of the same type as an ImpostorSprite.

Implements osg::Object.

virtual osg::BoundingBox osgSim::ImpostorSprite::computeBound  )  const [virtual]
 

Compute the bounding box around Drawables's geometry.

Reimplemented from osg::Drawable.

virtual void osgSim::ImpostorSprite::drawImplementation osg::State state  )  const [virtual]
 

Draw ImpostorSprite directly.

Implements osg::Drawable.

const osg::CameraNode* osgSim::ImpostorSprite::getCameraNode  )  const [inline]
 

Get the const camera node to use for pre rendering the impostor sprite's texture.

osg::CameraNode* osgSim::ImpostorSprite::getCameraNode  )  [inline]
 

Get the camera node to use for pre rendering the impostor sprite's texture.

const osg::Vec3* osgSim::ImpostorSprite::getControlCoords  )  const [inline]
 

Get the const control coordinates of the corners of the quad.

osg::Vec3* osgSim::ImpostorSprite::getControlCoords  )  [inline]
 

Get the control coordinates of the corners of the quad.

The control coordinates are the corners of the quad projected out onto the front face of bounding box which enclosed the impostor geometry when it was pre-rendered into the impostor sprite's texture. At the point of creation/or update of the impostor sprite the control coords will lie on top of the corners of the quad in screen space - with a pixel error of zero. Once the camera moves relative to the impostor sprite the control coords will no longer lie on top of the corners of the quad in screen space - a pixel error will have accumulated. This pixel error can then be used to determine whether the impostor needs to be updated. Stored in the order, [0] - top_left, [1] - bottom_left, [2] - bottom_right, [3] - top_left.

const osg::Vec3* osgSim::ImpostorSprite::getCoords  )  const [inline]
 

Get the const coordinates of the corners of the quad.

osg::Vec3* osgSim::ImpostorSprite::getCoords  )  [inline]
 

Get the coordinates of the corners of the quad.

Stored in the order, [0] - top_left, [1] - bottom_left, [2] - bottom_right, [3] - top_left.

int osgSim::ImpostorSprite::getLastFrameUsed  )  const [inline]
 

Get the frame number for when the ImpostorSprite was last used in rendering.

const Impostor* osgSim::ImpostorSprite::getParent  )  const [inline]
 

Get the const parent, which is an Impostor.

Impostor* osgSim::ImpostorSprite::getParent  )  [inline]
 

Get the parent, which is an Impostor.

const osg::Vec3& osgSim::ImpostorSprite::getStoredLocalEyePoint  )  const [inline]
 

Get the eye point for when the ImpostorSprite was snapped.

const osg::Vec2* osgSim::ImpostorSprite::getTexCoords  )  const [inline]
 

Get the const texture coordinates of the corners of the quad.

osg::Vec2* osgSim::ImpostorSprite::getTexCoords  )  [inline]
 

Get the texture coordinates of the corners of the quad.

Stored in the order, [0] - top_left, [1] - bottom_left, [2] - bottom_right, [3] - top_left.

const osg::Texture2D* osgSim::ImpostorSprite::getTexture  )  const [inline]
 

osg::Texture2D* osgSim::ImpostorSprite::getTexture  )  [inline]
 

virtual bool osgSim::ImpostorSprite::isSameKindAs const osg::Object obj  )  const [inline, virtual]
 

virtual const char* osgSim::ImpostorSprite::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.

ImpostorSprite& osgSim::ImpostorSprite::operator= const ImpostorSprite  )  [inline, protected]
 

int osgSim::ImpostorSprite::s  )  const [inline]
 

void osgSim::ImpostorSprite::setCameraNode osg::CameraNode camera  )  [inline]
 

Set the camera node to use for pre rendering the impostor sprite's texture.

void osgSim::ImpostorSprite::setLastFrameUsed int  frameNumber  )  [inline]
 

Set the frame number for when the ImpostorSprite was last used in rendering.

void osgSim::ImpostorSprite::setParent Impostor parent  )  [inline]
 

Set the parent, which must be an Impostor.

Unlike conventional Drawables, ImpostorSprites can only ever have one parent.

void osgSim::ImpostorSprite::setStoredLocalEyePoint const osg::Vec3 v  )  [inline]
 

Set the eye point for when the ImpostorSprite was snapped.

void osgSim::ImpostorSprite::setTexture osg::Texture2D tex,
int  s,
int  t
 

virtual bool osgSim::ImpostorSprite::supports const osg::PrimitiveFunctor  )  const [inline, virtual]
 

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

virtual bool osgSim::ImpostorSprite::supports const ConstAttributeFunctor &   )  const [inline, virtual]
 

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

Reimplemented from osg::Drawable.

virtual bool osgSim::ImpostorSprite::supports const AttributeFunctor &   )  const [inline, virtual]
 

Return true, osg::ImpostorSprite does support accept(AttributeFunctor&).

Reimplemented from osg::Drawable.

int osgSim::ImpostorSprite::t  )  const [inline]
 


Member Data Documentation

osg::ref_ptr<osg::CameraNode> osgSim::ImpostorSprite::_camera [protected]
 

osg::Vec4 osgSim::ImpostorSprite::_color
 

osg::Vec3 osgSim::ImpostorSprite::_controlcoords[4] [protected]
 

osg::Vec3 osgSim::ImpostorSprite::_coords[4] [protected]
 

ImpostorSpriteManager* osgSim::ImpostorSprite::_ism [protected]
 

int osgSim::ImpostorSprite::_lastFrameUsed [protected]
 

ImpostorSprite* osgSim::ImpostorSprite::_next [protected]
 

Impostor* osgSim::ImpostorSprite::_parent [protected]
 

ImpostorSprite* osgSim::ImpostorSprite::_previous [protected]
 

int osgSim::ImpostorSprite::_s [protected]
 

osg::Vec3 osgSim::ImpostorSprite::_storedLocalEyePoint [protected]
 

int osgSim::ImpostorSprite::_t [protected]
 

osg::Vec2 osgSim::ImpostorSprite::_texcoords[4] [protected]
 

osg::Texture2D* osgSim::ImpostorSprite::_texture [protected]
 


The documentation for this class was generated from the following file:
Generated at Thu Nov 24 16:25:23 2005 for the OpenSceneGraph by doxygen 1.3.6.