Public Member Functions | |
PrecipitationEffect () | |
PrecipitationEffect (const PrecipitationEffect ©, const osg::CopyOp ©op=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 |
Classes | |
class | PrecipitationDrawable |
Internal drawable used to render batches of cells. More... | |
struct | PrecipitationDrawableSet |
typedef std::pair< osg::NodeVisitor*, osg::NodePath > osgParticle::PrecipitationEffect::ViewIdentifier [protected] |
typedef std::map< ViewIdentifier, PrecipitationDrawableSet > osgParticle::PrecipitationEffect::ViewDrawableMap [protected] |
osgParticle::PrecipitationEffect::PrecipitationEffect | ( | ) |
osgParticle::PrecipitationEffect::PrecipitationEffect | ( | const PrecipitationEffect & | copy, | |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY | |||
) |
virtual osgParticle::PrecipitationEffect::~PrecipitationEffect | ( | ) | [inline, protected, virtual] |
virtual const char* osgParticle::PrecipitationEffect::libraryName | ( | ) | const [inline, virtual] |
virtual const char* osgParticle::PrecipitationEffect::className | ( | ) | const [inline, virtual] |
virtual bool osgParticle::PrecipitationEffect::isSameKindAs | ( | const osg::Object * | obj | ) | const [inline, virtual] |
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.
virtual void osgParticle::PrecipitationEffect::traverse | ( | osg::NodeVisitor & | ) | [virtual] |
void osgParticle::PrecipitationEffect::rain | ( | float | intensity | ) |
Set all the parameters to create an rain effect of specified intensity.
void osgParticle::PrecipitationEffect::snow | ( | float | intensity | ) |
Set all the parameters to create an snow effect of specified intensity.
void osgParticle::PrecipitationEffect::setMaximumParticleDensity | ( | float | density | ) | [inline] |
float osgParticle::PrecipitationEffect::setMaximumParticleDensity | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setWind | ( | const osg::Vec3 & | wind | ) | [inline] |
const osg::Vec3& osgParticle::PrecipitationEffect::getWind | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setPosition | ( | const osg::Vec3 & | position | ) | [inline] |
const osg::Vec3& osgParticle::PrecipitationEffect::getPosition | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setCellSize | ( | const osg::Vec3 & | cellSize | ) | [inline] |
const osg::Vec3& osgParticle::PrecipitationEffect::getCellSize | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setParticleSpeed | ( | float | particleSpeed | ) | [inline] |
float osgParticle::PrecipitationEffect::getParticleSpeed | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setParticleSize | ( | float | particleSize | ) | [inline] |
float osgParticle::PrecipitationEffect::getParticleSize | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setParticleColor | ( | const osg::Vec4 & | color | ) | [inline] |
const osg::Vec4& osgParticle::PrecipitationEffect::getParticleColor | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setNearTransition | ( | float | nearTransition | ) | [inline] |
float osgParticle::PrecipitationEffect::getNearTransition | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setFarTransition | ( | float | farTransition | ) | [inline] |
float osgParticle::PrecipitationEffect::getFarTransition | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setUseFarLineSegments | ( | bool | useFarLineSegments | ) | [inline] |
bool osgParticle::PrecipitationEffect::getUseFarLineSegments | ( | ) | const [inline] |
void osgParticle::PrecipitationEffect::setFog | ( | osg::Fog * | fog | ) | [inline] |
osg::Fog* osgParticle::PrecipitationEffect::getFog | ( | ) | [inline] |
const osg::Fog* osgParticle::PrecipitationEffect::getFog | ( | ) | const [inline] |
osg::Geometry* osgParticle::PrecipitationEffect::getQuadGeometry | ( | ) | [inline] |
osg::StateSet* osgParticle::PrecipitationEffect::getQuadStateSet | ( | ) | [inline] |
osg::Geometry* osgParticle::PrecipitationEffect::getLineGeometry | ( | ) | [inline] |
osg::StateSet* osgParticle::PrecipitationEffect::getLineStateSet | ( | ) | [inline] |
osg::Geometry* osgParticle::PrecipitationEffect::getPointGeometry | ( | ) | [inline] |
osg::StateSet* osgParticle::PrecipitationEffect::getPointStateSet | ( | ) | [inline] |
void osgParticle::PrecipitationEffect::compileGLObjects | ( | osg::RenderInfo & | renderInfo | ) | const [protected] |
void osgParticle::PrecipitationEffect::update | ( | ) | [protected] |
void osgParticle::PrecipitationEffect::createGeometry | ( | unsigned int | numParticles, | |
osg::Geometry * | quad_geometry, | |||
osg::Geometry * | line_geometry, | |||
osg::Geometry * | point_geometry | |||
) | [protected] |
void osgParticle::PrecipitationEffect::setUpGeometries | ( | unsigned int | numParticles | ) | [protected] |
void osgParticle::PrecipitationEffect::cull | ( | PrecipitationDrawableSet & | pds, | |
osgUtil::CullVisitor * | cv | |||
) | const [protected] |
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] |
bool osgParticle::PrecipitationEffect::_dirty [protected] |
osg::Vec3 osgParticle::PrecipitationEffect::_wind [protected] |
float osgParticle::PrecipitationEffect::_particleSpeed [protected] |
float osgParticle::PrecipitationEffect::_particleSize [protected] |
float osgParticle::PrecipitationEffect::_maximumParticleDensity [protected] |
osg::Vec3 osgParticle::PrecipitationEffect::_cellSize [protected] |
float osgParticle::PrecipitationEffect::_nearTransition [protected] |
float osgParticle::PrecipitationEffect::_farTransition [protected] |
bool osgParticle::PrecipitationEffect::_useFarLineSegments [protected] |
osg::ref_ptr<osg::Fog> osgParticle::PrecipitationEffect::_fog [protected] |
OpenThreads::Mutex osgParticle::PrecipitationEffect::_mutex [protected] |
float osgParticle::PrecipitationEffect::_period [protected] |
osg::Vec3 osgParticle::PrecipitationEffect::_origin [protected] |
osg::Vec3 osgParticle::PrecipitationEffect::_du [protected] |
osg::Vec3 osgParticle::PrecipitationEffect::_dv [protected] |
osg::Vec3 osgParticle::PrecipitationEffect::_dw [protected] |