OpenSceneGraph 2.8.3

osgParticle::PrecipitationEffect Class Reference

Inheritance diagram for osgParticle::PrecipitationEffect:

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::Vec3getWind () const
void setPosition (const osg::Vec3 &position)
const osg::Vec3getPosition () const
void setCellSize (const osg::Vec3 &cellSize)
const osg::Vec3getCellSize () const
void setParticleSpeed (float particleSpeed)
float getParticleSpeed () const
void setParticleSize (float particleSize)
float getParticleSize () const
void setParticleColor (const osg::Vec4 &color)
const osg::Vec4getParticleColor () 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::FoggetFog ()
const osg::FoggetFog () const
osg::GeometrygetQuadGeometry ()
osg::StateSetgetQuadStateSet ()
osg::GeometrygetLineGeometry ()
osg::StateSetgetLineStateSet ()
osg::GeometrygetPointGeometry ()
osg::StateSetgetPointStateSet ()

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 Tue Mar 22 2011 13:20:28 for the OpenSceneGraph by doxygen 1.7.3.