![]() |
VR-Forces 4.8 Class Documentation
|
A group node which serves as a root for patchy ground fog areas, and effects in addition to infinite height fog and sandstorms. More...

Classes | |
| struct | HeightFogItem |
| A structure to hold data for a height fog object. More... | |
Public Types | |
| enum | SENSOR_MATERIAL { SENSOR_MATERIAL_NONE = 0, SENSOR_MATERIAL_PATCHY_GROUND_FOG, SENSOR_MATERIAL_SANDSTORM, SENSOR_MATERIAL_SANDSTORM_EFFECT, SENSOR_MATERIAL_COUNT } |
| brief Sensor material type enumerations used for sensorfx. More... | |
Public Member Functions | |
| DtGroundFogGroup (DtDe &de) | |
| CTOR. More... | |
| DtGroundFogGroup (const DtGroundFogGroup &orig, const osg::CopyOp &opr) | |
| Copy constructor needed because it is derived from osg::Group. More... | |
| virtual | ~DtGroundFogGroup () |
| DTOR. More... | |
| virtual osg::Object * | clone (const osg::CopyOp ©op) const |
| required functions for derriving from osg::Group More... | |
| virtual osg::Object * | cloneType () const |
| virtual void | releaseGroundFogPatchGLObjects (osg::State *state) const |
| Release all gl objects used by groundfog patch objects. More... | |
| virtual void | releaseGroundFogEffectGLObjects (osg::State *state) const |
| Release all gl objects used by groundfog effect objects. More... | |
| virtual void | deleteGeode () |
| Tell the group to delete its specific children. More... | |
| virtual osg::Node * | getOrCreateSensorNode (SENSOR_MATERIAL matType) |
| virtual void | removeCloudLayer (DtCloudLayerId layerId) |
| Remove a cloud layer. More... | |
| virtual void | removeCloudLayers () |
| Remove all the cloud decks. More... | |
| virtual void | addGroundFog (DtCloudLayerId layerId, const DtVector &position, float orientation, float cornerRadius, const DtVector &bounds, double density, bool infinite, bool relative, bool altitudeIsHAT) |
| Adds a ground fog layer. More... | |
| virtual void | addPatchyGroundFog (DtCloudLayerId layerId, const DtVector &position, float orientation, float cornerRadius, const DtVector &bounds, double density, bool relative) |
| Adds a patchy ground fog layer. More... | |
| virtual void | addSandstorm (DtCloudLayerId layerId, const DtVector &position, float orientation, float cornerRadius, const DtVector &bounds, double density, bool infinite, bool relative, bool altitudeIsHAT) |
| Adds a sandstorm layer. More... | |
| virtual void | setCloudLayerDensity (DtCloudLayerId layerId, float density) |
| brief Set the fog density for a layer. More... | |
| virtual void | setCloudLayerEnabled (DtCloudLayerId layerId, bool enabled) |
| Enables or disables a layer. More... | |
| virtual void | setCloudLayerPositionAndOrientation (DtCloudLayerId layerId, const DtVector &position, float orientation) |
| Sets the transform for the given layer. More... | |
| virtual void | setCloudLayerBaseColor (DtCloudLayerId layerId, float red, float green, float blue) |
| Sets the base material color for a cloud layer. More... | |
| virtual void | setCloudLayerParticleSizeVariation (DtCloudLayerId layerId, float variation) |
| Sets a size variation for particles used to fill voxel space. More... | |
| virtual void | setCloudLayerPatternedLook (DtCloudLayerId layerId, bool patternedEnable) |
| Enables or disables a patterned look (typically true for sandstorms). More... | |
| virtual void | setWind (float windDirectionRad, float windSpeedMps) |
| Sets the current wind to use for fog. More... | |
| virtual void | drawGroundFogPatchAreas (DtGroundFogPatchArea::DrawData &drawData) |
| Draw all ground fog patch areas. More... | |
| virtual void | drawGroundFogEffects (DtGroundFogEffect::DrawData &drawData) |
| Draw all ground fog effects. More... | |
Protected Types | |
| typedef std::map< int, HeightFogItem > | DtHeightFogMap |
Protected Member Functions | |
| virtual void | traverse (osg::NodeVisitor &nv) |
| Traverse. More... | |
| virtual void | disableHeightFog () |
| Disables height fog shader calculations. More... | |
| virtual void | cullUpdate (osg::Camera *cam) |
| Update draw objects for current camera. More... | |
| virtual void | cullUpdateHeightFog (osg::Camera *cam) |
| Updates the height layers for current camera. More... | |
| virtual void | computeBasis (const osg::Vec3d &inGeocentricPos, osg::Matrixd &rotOut) |
| Computes a basis rotation matrix for the given geocentric position. More... | |
| void | setHeightFogTransform (HeightFogItem *item, const DtVector &position, bool relativeToCamera) |
| Sets a height fog transform. More... | |
Protected Attributes | |
| DtDe & | myDe |
| osg::ref_ptr< osg::Node > | mySensorNodes [SENSOR_MATERIAL_COUNT] |
| osg::ref_ptr< osg::Group > | myGroundFogSensorGroup |
| osg::ref_ptr< osg::Geode > | myGroundFogGeode |
| osg::ref_ptr < makVrv::DtGroundFogPatchDrawable > | myGroundFogPatchDrawable |
| osg::ref_ptr< osg::Group > | myEffectSensorGroup |
| osg::ref_ptr< osg::Geode > | myEffectGeode |
| osg::ref_ptr < makVrv::DtGroundFogEffectDrawable > | myEffectDrawable |
| DtHeightFogMap | myHeightFogMap |
| std::vector< osg::Vec4d > | myCullingPlanes |
| DtJobSplitter * | myJobSplitter |
Private Types | |
| typedef std::map < DtCloudLayerId, DtGroundFogPatchArea * > | DtGroundFogPatchAreaMap |
| This is mutable because it's used as part of the const drawImplementation. More... | |
Private Member Functions | |
| DtGroundFogGroup (const DtGroundFogGroup &other) | |
| Copy Constructor not implemented - Copy not allowed. More... | |
| DtGroundFogGroup & | operator= (const DtGroundFogGroup &other) |
| Assignment Operator not implemented - Assignment not allowed. More... | |
| osg::Node * | getChildNodeByName (osg::Group *parent, const char *name) |
| This is private and non-virtual because it's used in the constructor. More... | |
Private Attributes | |
| DtGroundFogPatchAreaMap | myMutableGroundFogPatchAreaMap |
A group node which serves as a root for patchy ground fog areas, and effects in addition to infinite height fog and sandstorms.
A special note that sandstorms rely heavily on ground fog and ground fog effects. Sandstorms are achieved using various ground fog and effect configurations such as base color modification and local dust eye effects.
This group node is the top level node in the scenegraph for ground fog. The node also serves as the main interface to create and modify ground fog layers. There are 2 geodes under this node for ground fog areas and ground fog effects. All ground fog areas share a material state and all ground fog effects share a material state. Infinite height fog management is handled directly in this class.
|
protected |
|
private |
This is mutable because it's used as part of the const drawImplementation.
| makVrv::DtGroundFogGroup::DtGroundFogGroup | ( | DtDe & | de | ) |
CTOR.
| makVrv::DtGroundFogGroup::DtGroundFogGroup | ( | const DtGroundFogGroup & | orig, |
| const osg::CopyOp & | opr | ||
| ) |
Copy constructor needed because it is derived from osg::Group.
|
virtual |
DTOR.
|
private |
Copy Constructor not implemented - Copy not allowed.
|
private |
Assignment Operator not implemented - Assignment not allowed.
|
inlinevirtual |
required functions for derriving from osg::Group
|
inlinevirtual |
|
virtual |
Release all gl objects used by groundfog patch objects.
|
virtual |
Release all gl objects used by groundfog effect objects.
|
virtual |
Tell the group to delete its specific children.
|
virtual |
|
virtual |
Remove a cloud layer.
|
virtual |
Remove all the cloud decks.
|
virtual |
Adds a ground fog layer.
|
virtual |
Adds a patchy ground fog layer.
|
virtual |
Adds a sandstorm layer.
|
virtual |
brief Set the fog density for a layer.
| layerId | The layer to act upon. |
| density | This fog density exp() control. |
|
virtual |
Enables or disables a layer.
| layerId | The layer to act upon. |
| enabled | Set to true to enable to layer. |
|
virtual |
Sets the transform for the given layer.
|
virtual |
Sets the base material color for a cloud layer.
| layerId | The layer to act upon. |
| red | The red component color to set in the range of (0.0 - 1.0). |
| green | The green component color to set in the range of (0.0 - 1.0). |
| blue | The blue component color to set in the range of (0.0 - 1.0). |
|
virtual |
Sets a size variation for particles used to fill voxel space.
| layerId | The layer to act upon. |
| variation | The random variation (typically 0.0 to 0.5). |
|
virtual |
Enables or disables a patterned look (typically true for sandstorms).
| layerId | The layer to act upon. |
| patternedEnable | If true, enables a patterned look. |
|
virtual |
Sets the current wind to use for fog.
| windDirectionRad | The wind direction in radians. |
| windSpeedMps | The wind speed in meters per second. |
|
virtual |
Draw all ground fog patch areas.
|
virtual |
Draw all ground fog effects.
|
protectedvirtual |
Traverse.
|
protectedvirtual |
Disables height fog shader calculations.
|
protectedvirtual |
Update draw objects for current camera.
| cam | The current camera. |
|
protectedvirtual |
Updates the height layers for current camera.
| cam | The current camera. |
|
protectedvirtual |
Computes a basis rotation matrix for the given geocentric position.
| inGeocentricPos | The geocentric reference position. |
| rotOut | The computed basis rotation transform. |
|
protected |
Sets a height fog transform.
| position | The transform position in world space. |
| relativeToCamera | Set to true if the position is relative to the current camera. |
|
private |
This is private and non-virtual because it's used in the constructor.
This method returns the first child node that matches the given name.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprivate |