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

osg::ImpostorSprite Class Reference

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

Inheritance diagram for osg::ImpostorSprite:

Inheritance graph
[legend]
List of all members.

Public Methods

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

virtual Objectclone (const 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 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 Vec3 &v)
 Set the eye point for when the ImpsotorSprite was snapped.

const Vec3getStoredLocalEyePoint () const
 Get the eye point for when the ImpsotorSprite was snapped.

void setLastFrameUsed (const 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.

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

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

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

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

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

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

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

void setTexture (Texture2D *tex, int s, int t)
Texture2DgetTexture ()
const Texture2DgetTexture () const
const int s () const
const int t () const
virtual void drawImmediateMode (State &state)
 draw ImpostorSprite directly.

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

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


Protected Methods

 ImpostorSprite (const ImpostorSprite &)
ImpostorSprite & operator= (const ImpostorSprite &)
virtual ~ImpostorSprite ()
virtual const bool computeBound () const
 compute the bounding box of the drawable.


Protected Attributes

Impostor_parent
ImpostorSpriteManager_ism
ImpostorSprite * _previous
ImpostorSprite * _next
int _lastFrameUsed
Vec3 _storedLocalEyePoint
Vec3 _coords [4]
Vec2 _texcoords [4]
Vec3 _controlcoords [4]
Texture2D_texture
int _s
int _t

Friends

class osg::ImpostorSpriteManager

Detailed Description

An ImposterSprite is a textured quad which is rendered in place a 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

osg::ImpostorSprite::ImpostorSprite  
 

osg::ImpostorSprite::ImpostorSprite const ImpostorSprite &    [inline, protected]
 

virtual osg::ImpostorSprite::~ImpostorSprite   [protected, virtual]
 


Member Function Documentation

virtual void osg::ImpostorSprite::accept PrimitiveFunctor &    pf [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 osg::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.

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

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

virtual const char* osg::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 Object* osg::ImpostorSprite::clone const CopyOp   const [inline, virtual]
 

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

Implements osg::Object.

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

Clone an object of the same type as an ImpostorSprite.

Implements osg::Object.

virtual const bool osg::ImpostorSprite::computeBound   const [protected, virtual]
 

compute the bounding box of the drawable.

Method must be implemented by subclasses.

Reimplemented from osg::Drawable.

virtual void osg::ImpostorSprite::drawImmediateMode State   state [virtual]
 

draw ImpostorSprite directly.

Implements osg::Drawable.

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

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

Vec3* osg::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 or 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 Vec3* osg::ImpostorSprite::getCoords   const [inline]
 

Get the const coordinates of the corners of the quad.

Vec3* osg::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 osg::ImpostorSprite::getLastFrameUsed   const [inline]
 

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

const Impostor* osg::ImpostorSprite::getParent   const [inline]
 

Get the const parent, which is an Impostor.

Impostor* osg::ImpostorSprite::getParent   [inline]
 

Get the parent, which is an Impostor.

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

Get the eye point for when the ImpsotorSprite was snapped.

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

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

Vec2* osg::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 Texture2D* osg::ImpostorSprite::getTexture   const [inline]
 

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

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

Reimplemented from osg::Drawable.

virtual const char* osg::ImpostorSprite::libraryName   const [inline, virtual]
 

return the name of the object's library.

Must be defined by derived classes. The OpenSceneGraph convention the is that the namspace of a library is the same as the library name.

Reimplemented from osg::Drawable.

ImpostorSprite& osg::ImpostorSprite::operator= const ImpostorSprite &    [inline, protected]
 

const int osg::ImpostorSprite::s   const [inline]
 

void osg::ImpostorSprite::setLastFrameUsed const int    frameNumber [inline]
 

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

void osg::ImpostorSprite::setParent Impostor   parent [inline]
 

Set the parent, which must be an Impostor.

Unlike conventional Drawables, ImpostorSprite's can only ever have one parent.

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

Set the eye point for when the ImpsotorSprite was snapped.

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

const int osg::ImpostorSprite::t   const [inline]
 


Friends And Related Function Documentation

friend class osg::ImpostorSpriteManager [friend]
 


Member Data Documentation

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

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

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

int osg::ImpostorSprite::_lastFrameUsed [protected]
 

ImpostorSprite* osg::ImpostorSprite::_next [protected]
 

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

ImpostorSprite* osg::ImpostorSprite::_previous [protected]
 

int osg::ImpostorSprite::_s [protected]
 

Vec3 osg::ImpostorSprite::_storedLocalEyePoint [protected]
 

int osg::ImpostorSprite::_t [protected]
 

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

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


The documentation for this class was generated from the following file:
Generated at Wed Sep 18 13:55:32 2002 for the Open Scene Graph by doxygen 1.2.16.