Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

osgParticle::PrecipitationEffect Class Reference

Inheritance diagram for osgParticle::PrecipitationEffect:
Inheritance graph
[legend]

List of all members.

Classes

class  PrecipitationDrawable
 Internal drawable used to render batches of cells. More...
struct  PrecipitationDrawableSet

Public Member Functions

 PrecipitationEffect ()
 PrecipitationEffect (const PrecipitationEffect &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual const char * libraryName () const
 return the name of the node's library.
virtual const char * className () const
 return the name of the node's class type.
virtual bool isSameKindAs (const osg::Object *obj) const
 return true if this and obj are of the same kind of object.
virtual void accept (osg::NodeVisitor &nv)
 Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.
virtual void traverse (osg::NodeVisitor &nv)
 Traverse downwards : calls children's accept method with NodeVisitor.
void rain (float intensity)
 Set all the parameters to create an rain effect of specified intensity.
void snow (float intensity)
 Set all the parameters to create an snow effect of specified intensity.
void setMaximumParticleDensity (float density)
float setMaximumParticleDensity () const
void setWind (const osg::Vec3 &wind)
const osg::Vec3 & getWind () const
void setPosition (const osg::Vec3 &position)
const osg::Vec3 & getPosition () const
void setCellSize (const osg::Vec3 &cellSize)
const osg::Vec3 & getCellSize () const
void setParticleSpeed (float particleSpeed)
float getParticleSpeed () const
void setParticleSize (float particleSize)
float getParticleSize () const
void setParticleColor (const osg::Vec4 &color)
const osg::Vec4 & getParticleColor () const
void setNearTransition (float nearTransition)
float getNearTransition () const
void setFarTransition (float farTransition)
float getFarTransition () const
void setUseFarLineSegments (bool useFarLineSegments)
bool getUseFarLineSegments () const
void setFog (osg::Fog *fog)
osg::Fog * getFog ()
const osg::Fog * getFog () const
osg::Geometry * getQuadGeometry ()
osg::StateSet * getQuadStateSet ()
osg::Geometry * getLineGeometry ()
osg::StateSet * getLineStateSet ()
osg::Geometry * getPointGeometry ()
osg::StateSet * getPointStateSet ()

Protected Types

typedef std::pair
< osg::NodeVisitor
*, osg::NodePath > 
ViewIdentifier
typedef std::map
< ViewIdentifier,
PrecipitationDrawableSet > 
ViewDrawableMap

Protected Member Functions

virtual ~PrecipitationEffect ()
void compileGLObjects (osg::RenderInfo &renderInfo) const
void update ()
void createGeometry (unsigned int numParticles, osg::Geometry *quad_geometry, osg::Geometry *line_geometry, osg::Geometry *point_geometry)
void setUpGeometries (unsigned int numParticles)
void cull (PrecipitationDrawableSet &pds, osgUtil::CullVisitor *cv) const
bool build (const osg::Vec3 eyeLocal, int i, int j, int k, float startTime, PrecipitationDrawableSet &pds, osg::Polytope &frustum, osgUtil::CullVisitor *cv) const

Protected Attributes

bool _dirty
osg::Vec3 _wind
float _particleSpeed
float _particleSize
osg::Vec4 _particleColor
float _maximumParticleDensity
osg::Vec3 _cellSize
float _nearTransition
float _farTransition
bool _useFarLineSegments
osg::ref_ptr< osg::Fog > _fog
osg::ref_ptr< osg::Uniform > _inversePeriodUniform
osg::ref_ptr< osg::Uniform > _particleSizeUniform
osg::ref_ptr< osg::Uniform > _particleColorUniform
OpenThreads::Mutex _mutex
ViewDrawableMap _viewDrawableMap
osg::ref_ptr< osg::Geometry > _quadGeometry
osg::ref_ptr< osg::StateSet > _quadStateSet
osg::ref_ptr< osg::Geometry > _lineGeometry
osg::ref_ptr< osg::StateSet > _lineStateSet
osg::ref_ptr< osg::Geometry > _pointGeometry
osg::ref_ptr< osg::StateSet > _pointStateSet
float _period
osg::Vec3 _origin
osg::Vec3 _du
osg::Vec3 _dv
osg::Vec3 _dw
osg::Vec3 _inverse_du
osg::Vec3 _inverse_dv
osg::Vec3 _inverse_dw

Member Typedef Documentation


Constructor & Destructor Documentation

osgParticle::PrecipitationEffect::PrecipitationEffect (  ) 
osgParticle::PrecipitationEffect::PrecipitationEffect ( const PrecipitationEffect &  copy,
const osg::CopyOp &  copyop = osg::CopyOp::SHALLOW_COPY 
)
virtual osgParticle::PrecipitationEffect::~PrecipitationEffect (  )  [inline, protected, virtual]

Member Function Documentation

virtual void osgParticle::PrecipitationEffect::accept ( osg::NodeVisitor &  nv  )  [inline, virtual]

Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.

Reimplemented from osg::Node.

References osg::NodeVisitor::apply(), osg::NodeVisitor::popFromNodePath(), osg::NodeVisitor::pushOntoNodePath(), and osg::NodeVisitor::validNodeMask().

bool osgParticle::PrecipitationEffect::build ( const osg::Vec3  eyeLocal,
int  i,
int  j,
int  k,
float  startTime,
PrecipitationDrawableSet &  pds,
osg::Polytope &  frustum,
osgUtil::CullVisitor *  cv 
) const [protected]
virtual const char* osgParticle::PrecipitationEffect::className (  )  const [inline, virtual]

return the name of the node's class type.

Reimplemented from osg::Node.

void osgParticle::PrecipitationEffect::compileGLObjects ( osg::RenderInfo &  renderInfo  )  const [protected]
void osgParticle::PrecipitationEffect::createGeometry ( unsigned int  numParticles,
osg::Geometry *  quad_geometry,
osg::Geometry *  line_geometry,
osg::Geometry *  point_geometry 
) [protected]
void osgParticle::PrecipitationEffect::cull ( PrecipitationDrawableSet &  pds,
osgUtil::CullVisitor *  cv 
) const [protected]
const osg::Vec3& osgParticle::PrecipitationEffect::getCellSize (  )  const [inline]
float osgParticle::PrecipitationEffect::getFarTransition (  )  const [inline]
osg::Fog* osgParticle::PrecipitationEffect::getFog (  )  [inline]
const osg::Fog* osgParticle::PrecipitationEffect::getFog (  )  const [inline]
osg::Geometry* osgParticle::PrecipitationEffect::getLineGeometry (  )  [inline]
osg::StateSet* osgParticle::PrecipitationEffect::getLineStateSet (  )  [inline]
float osgParticle::PrecipitationEffect::getNearTransition (  )  const [inline]
const osg::Vec4& osgParticle::PrecipitationEffect::getParticleColor (  )  const [inline]
float osgParticle::PrecipitationEffect::getParticleSize (  )  const [inline]
float osgParticle::PrecipitationEffect::getParticleSpeed (  )  const [inline]
osg::Geometry* osgParticle::PrecipitationEffect::getPointGeometry (  )  [inline]
osg::StateSet* osgParticle::PrecipitationEffect::getPointStateSet (  )  [inline]
const osg::Vec3& osgParticle::PrecipitationEffect::getPosition (  )  const [inline]
osg::Geometry* osgParticle::PrecipitationEffect::getQuadGeometry (  )  [inline]
osg::StateSet* osgParticle::PrecipitationEffect::getQuadStateSet (  )  [inline]
bool osgParticle::PrecipitationEffect::getUseFarLineSegments (  )  const [inline]
const osg::Vec3& osgParticle::PrecipitationEffect::getWind (  )  const [inline]
virtual bool osgParticle::PrecipitationEffect::isSameKindAs ( const osg::Object *  obj  )  const [inline, virtual]

return true if this and obj are of the same kind of object.

Reimplemented from osg::Node.

virtual const char* osgParticle::PrecipitationEffect::libraryName (  )  const [inline, virtual]

return the name of the node's library.

Reimplemented from osg::Node.

void osgParticle::PrecipitationEffect::rain ( float  intensity  ) 

Set all the parameters to create an rain effect of specified intensity.

void osgParticle::PrecipitationEffect::setCellSize ( const osg::Vec3 &  cellSize  )  [inline]
void osgParticle::PrecipitationEffect::setFarTransition ( float  farTransition  )  [inline]
void osgParticle::PrecipitationEffect::setFog ( osg::Fog *  fog  )  [inline]
void osgParticle::PrecipitationEffect::setMaximumParticleDensity ( float  density  )  [inline]
float osgParticle::PrecipitationEffect::setMaximumParticleDensity (  )  const [inline]
void osgParticle::PrecipitationEffect::setNearTransition ( float  nearTransition  )  [inline]
void osgParticle::PrecipitationEffect::setParticleColor ( const osg::Vec4 &  color  )  [inline]
void osgParticle::PrecipitationEffect::setParticleSize ( float  particleSize  )  [inline]
void osgParticle::PrecipitationEffect::setParticleSpeed ( float  particleSpeed  )  [inline]
void osgParticle::PrecipitationEffect::setPosition ( const osg::Vec3 &  position  )  [inline]
void osgParticle::PrecipitationEffect::setUpGeometries ( unsigned int  numParticles  )  [protected]
void osgParticle::PrecipitationEffect::setUseFarLineSegments ( bool  useFarLineSegments  )  [inline]
void osgParticle::PrecipitationEffect::setWind ( const osg::Vec3 &  wind  )  [inline]
void osgParticle::PrecipitationEffect::snow ( float  intensity  ) 

Set all the parameters to create an snow effect of specified intensity.

virtual void osgParticle::PrecipitationEffect::traverse ( osg::NodeVisitor &   )  [virtual]

Traverse downwards : calls children's accept method with NodeVisitor.

Reimplemented from osg::Node.

void osgParticle::PrecipitationEffect::update (  )  [protected]

Member Data Documentation

OpenThreads::Mutex osgParticle::PrecipitationEffect::_mutex [protected]

The documentation for this class was generated from the following file:

osg logo
Generated at Wed Nov 3 2010 02:40:18 for the OpenSceneGraph by doxygen 1.7.1.