VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends
makVrv::DtOsgRenderer Class Reference

The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneGraph The component responsible for drawing 3D images onto a screen is the DtRenderer. More...

Inheritance diagram for makVrv::DtOsgRenderer:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtOsgRenderer ()
 DTOR.
virtual void update ()
 Add functionality to update, update dynamic objects.
virtual void render ()
 Render.
virtual bool viewExists () const
 Returns whether or not a view (typically a window) exists.
virtual void resetSceneGraph ()
 Removes all nodes from the scene graph.
virtual void removeChannelRoot (DtChannel *channel)
 Checks to see if this channel has a root, and, if it does, remove it from all model set roots.
virtual void addNodeToRoot (osg::Node *node, const DtSceneRoot &sr, bool createOnAccess=true)
 Add a node to the specified SceneRoot.
virtual void removeNodeFromRoot (osg::Node *node, const DtSceneRoot &sr)
 Remove a node from the specified SceneRoot.
virtual void traverseRoot (osg::NodeVisitor &nv, const DtSceneRoot &sr)
 Traverse from the specified SceneRoot with the given visitor.
virtual void setSceneRootNodeMask (const DtSceneRoot &sr, osg::Node::NodeMask nodemask)
 Set the nodemask of a SceneRoot.
virtual osg::Node::NodeMask sceneRootNodeMask (const DtSceneRoot &sr)
 Get the nodemask of a SceneRoot.
virtual osg::BoundingSphere sceneRootBound (const DtSceneRoot &sr)
 Get the bounding sphere of sceneRoot.
virtual osg::BoundingSphere sceneRootListBound (const DtSceneRootList &srList)
 Get the bounding sphere of list of sceneRoots.
virtual void addChannelToModelSetRoot (int modelSetId, DtChannel *channel)
 Set the specified channel to render a modelSet root.
virtual void removeChannelFromModelSetRoot (int modelSetId, DtChannel *channel)
 Stop the specified channel from rendering a modelSet root.
virtual void addChannelToVisualizerRoot (int modelSetId, int visualizerType, DtChannel *channel)
 Set the specified channel to render a visualizer type root.
virtual void removeChannelFromVisualizerRoot (int modelSetId, int visualizerType, DtChannel *channel)
 Stop the specified channel from rendering a visualizer type root.
virtual void setSceneDataToRenderRoot (osgViewer::View &view)
 Set the sceneData of a view to the top of the scene graph.
virtual void addSceneToCamera (osg::Camera *camera)
 Add the scene to the specified camera.
virtual void addSceneRootToNode (const DtSceneRoot &sr, osg::Group *node, bool createOnAccess=true)
 Add the specified SceneRoot to an OSG group node.
virtual osg::Group * findSceneRootChildByName (const DtSceneRoot &parent, const std::string &rootName)
 Look up a root by name in the parent specified by SceneRoot.
virtual bool matchesSceneRoot (const DtSceneRoot &sr, osg::Group *group)
 Does this group match the given scene root.
virtual void releaseResources ()
 Release all openGL objects in the scene graph.
virtual void releaseResources (osg::State *state)
 Release all openGL objects in the scene graph.
void setRootNode (osg::Group *, bool copyChildrenFromOldRoot)
 Set the new scene root node, and optionally copy the old root children.
void resetRoot ()
 Reset the scene root node back to the original node.
void registerPagedLODs (osg::Node *node)
 Register any paged LOD's with all of the existing database pagers.
void clearPagedLODs ()
 Register any paged LOD's with all of the existing database pagers.
virtual void setWireframeRendering (bool enabled)
 Turn on/off wireframe mode rendering.
virtual void setDdsFlip (bool flip)
 Turn on/off dds flip.
virtual bool wireframeRendering () const
 Check wireframe status.
virtual void setShadowState (bool enabled)
 Set the global shadow mode.
virtual bool shadowsEnabled () const
 Get global shadow mode.
void setTerrainScalingEnabled (bool enabled)
 Set whether terrain scaling is on.
void setTerrainScaleFactor (double scaleFactor)
 Set the terrain scale factor (only used if scaling is on)
virtual bool makeContextCurrent ()
 Attempt to make a context current.
DtFontManagerfontManager ()
 Get the font manager.
const DtFontManagerfontManager () const
DtEffectManagereffectManager ()
 Get the font manager.
const DtEffectManagereffectManager () const
void debugDrawBox (const osg::Vec3 &center, const osg::Vec3 &extents)
 Draw a box in the next frame.
void debugDrawBox (const osg::Vec3 &center, const osg::Vec3 &extents, const osg::Quat &orientation)
 Draw a box in the next frame.
void setChannelShadowState (DtOsgChannel *osgChannel, bool enable)
 Set the shadow mode for channels.
bool getChannelShadowSettings (DtOsgChannel *osgChannel, DtShadowSettingsObject **shadowSettingObject, bool *isPlanView)
 Gets the shadow settings for this channel.
bool getChannelCloudShadowMap (DtOsgChannel *osgChannel, unsigned int *textureIndex, osg::Matrix *textureViewProjMatrix, unsigned int *textureIndex2, osg::Matrix *textureViewProjMatrix2)
 Gets the cloud shadow map for this channel.
bool getCameraCloudShadowMap (osg::Camera *camera, unsigned int *textureIndex, osg::Matrix *textureViewProjMatrix, unsigned int *textureIndex2, osg::Matrix *textureViewProjMatrix2)
 Gets the cloud shadow map for this camera.
osg::StateSet * sgRenderRootStateSet ()
 Gets the stateset for the main render group root node.
void clearStateGraphForAllChannels (void)
 osg maintains an internal cache of StateSets in a StateGraph
virtual void addMainThreadPersistantJob (osg::Operation *opp)
 add an operation that will run every frame in the main thread while the cull thread is happening.
virtual void removeMainThreadPersistantJob (osg::Operation *opp)
 removes an operation that will run in the main thread while the cull thread is happening.
virtual void addMainThreadPreDrawJob (osg::Operation *opp)
 adds an operation that will run before rendering occurs.
virtual void addMainThreadTransientJob (osg::Operation *operation)
 adds a jobs for doing work during cull see DtMainThreadJobManager
virtual DtMainThreadJobsManagercreateJobsManager ()
 creates the job manager can be overloaded
virtual int alphaToCoverageRenderBin ()
 get the render bin number being used for the alpha to coverage bin.
- Public Member Functions inherited from makVrv::DtRenderer
 DtRenderer (DtDe &de)
 CTOR.
virtual ~DtRenderer ()
 DTOR.
virtual void postUpdate ()
 Called after tick; time to update observers.
DtObserverObjectManagerobserverObjectManager ()
 Get the observer object manager.
DtTickableManagerInterfacetickableManager ()
 Get the scene manager's attachable scene object manager.
const DtTickableManagerInterfacetickableManager () const
DtOverlayManageroverlayManager ()
 Get the manager's over the 2D overlays.
const DtOverlayManageroverlayManager () const
void createManagers ()
 Create overlay manager, must be called after creating the renderer as the manager may expect a specific subclasses of renderer.
const DtRenderMaprenderMap () const
 Returns a const reference to the unordered map that contains all the element IDs of objects that were in the scene and what simTime they were last rendered in the scene.

Static Public Member Functions

static DtOsgRendererfindInstance (DtDe &de)
 Attempt to get the Osg renderer for the de.

Public Attributes

boost::signal< void(int
modelSet, int visualType) > 
signal_visualizerRootAdded
boost::signal< void(DtChannel *) > signal_channelRootAdded
boost::signal< void() > signal_shadowsRemoved
- Public Attributes inherited from makVrv::DtRenderer
boost::signal< void(double
simTime)> 
signal_update
 Signal used to update systems.
boost::signal< void(double
simTime)> 
signal_preObserverUpdate
 Signal used to update systems.
boost::signal< void(double
simTime)> 
signal_postUpdate
 Signal used to update systems.
boost::signal< void()> signal_releaseResources
 Signal used to update systems.

Static Public Attributes

static const int SKY_RENDERBIN = -10
static const int DEFAULT_RENDERBIN = 0
static const int DEPTH_ONLY_RENDERBIN = 6
static const int OCEAN_RENDERBIN = 7
static const int LIGHTPOINT_RENDERBIN = 8
static const int CLOUD_RENDERBIN = 9
static const int DEFAULT_TRANSPARENT_RENDERBIN = 10
static const int COCKPIT_RENDERBIN = 25
static const std::string AlphaToCoverageBin
static const std::string SkyBin
static const std::string DepthOnlyBin
static const std::string OceanBin
static const std::string LightPointBin
static const std::string CloudBin
static const std::string CockpitBin

Friends

class DtSceneGraph
class DtOsgRendererCreator
class DtSceneGraphTreeLogic

Utility functions for getting scene root index objects.

typedef boost::unordered_map
< int, osg::ref_ptr
< osg::Group > > 
RootMap
typedef boost::unordered_map
< int, osg::ref_ptr
< osgShadow::ShadowedScene > > 
ShadowedSceneMap
typedef int ModelSet
typedef int VisualizerType
typedef boost::unordered_map
< ModelSet, osg::ref_ptr
< osg::Group > > 
ModelSetRootMap
typedef boost::unordered_map
< VisualizerType, osg::ref_ptr
< osg::Group > > 
VisualizerTypeRootMap
typedef boost::unordered_map
< ModelSet,
VisualizerTypeRootMap
ModelSetVisualizerTypeRootMap
 Under each model set group is another channel group for each visualizer type.
typedef boost::unordered_map
< DtChannel *, ModelSetRootMap
ChannelRootMap
 DtChannelSpecificGroup that contains only the channel it represents.
DtSceneGraphmySceneGraph
DtFontManagermyFontManager
DtEffectManagermyEffectManager
DtOsgWindowManagermyOsgWindowManager
osg::ref_ptr< osgViewer::Viewer > myDefaultViewer
 This viewer exists so that when there are no displays, windows, or channels, the scene can be updated and kept current.
osg::ref_ptr< osg::Group > myRenderRoot
osg::ref_ptr< osg::Group > myDebugRoot
 Group for drawing debug graphics, cleared after each frame.
osg::ref_ptr< osg::Group > myStatic2dDebugRoot
 Group for drawing debug graphics left alone each frame.
osg::ref_ptr< osg::Group > myStatic3dDebugRoot
 Group for drawing debug graphics left alone each frame.
osg::ref_ptr< osg::Geode > myDebugBox
 Shared geometry for debug boxes.
osg::ref_ptr< osg::Group > myEnvironmentRoot
osg::ref_ptr< osg::Group > myTerrainRoot
osg::ref_ptr< osg::Group > myPropsRoot
osg::ref_ptr< osg::Group > myOceanRoot
osg::ref_ptr
< DtFastMatrixTransform
myScaledTerrainRoot
osg::ref_ptr
< DtFastMatrixTransform
myScaledPropsRoot
osg::Matrix myScaleMatrix
ModelSetRootMap myModelSetMap
ModelSetVisualizerTypeRootMap myVisualizerRootMap
ChannelRootMap myChannelRootMap
ShadowedSceneMap myShadowedSceneMap
RootMap myShadowRootMap
osg::ref_ptr< osgUtil::RenderBin > myAlphaToCoverageBin
osg::ref_ptr< osgUtil::RenderBin > mySkyBin
osg::ref_ptr< osgUtil::RenderBin > myDepthOnlyBin
osg::ref_ptr< osgUtil::RenderBin > myOceanBin
osg::ref_ptr< osgUtil::RenderBin > myLightPointBin
osg::ref_ptr< osgUtil::RenderBin > myCloudBin
osg::ref_ptr< osgUtil::RenderBin > myCockpitBin
bool myWireframeOn
bool myShadowsEnabled
DtTaxiwaySignManagermyTaxiwaySignManager
DtRunwayMarkingManagermyRunwayMarkingManager
DtLightIndicatorManagermyLightIndicatorManager
double myTerrainScaleFactor
bool myTerrainScaleFactorChanged
bool myTerrainScalingEnabled
bool myTerrainScalingEnabledChanged
bool myResourcesReleased
int myAlphaToCoverageRenderBin
DtMainThreadJobsManagermyMainThreadJobsManager
bool myReaddJobSystem
static DtSceneRoot theRenderRoot
static DtSceneRoot theEnvironmentRoot
static DtSceneRoot theTerrainRoot
static DtSceneRoot thePropRoot
static DtSceneRoot theOceanRoot
static DtSceneRoot renderRoot ()
static DtSceneRoot environmentRoot ()
static DtSceneRoot terrainRoot ()
static DtSceneRoot propRoot ()
static DtSceneRoot oceanRoot ()
static DtSceneRoot modelSetRoot (int modelSet)
static DtSceneRoot visualizerTypeRoot (int modelSet, int visualizerType)
static DtSceneRoot channelRoot (int modelSet, DtChannel *channel)
osg::Group * sgRenderRoot ()
 Get the scene graph render root.
osg::Group * sgEnvironmentRoot ()
 Get the environment root which controls the scene's lighting and other global state.
osg::Group * sgPropsRoot ()
 Get the props root node.
osg::Group * sgTerrainRoot ()
 Get the terrains root node.
osg::Group * sgScaledTerrainRoot ()
 Get the active terrain root when terrain scaling is on.
osg::Group * sgScaledPropsRoot ()
 Get the active props root when terrain scaling is on.
osg::Group * sgStatic2dDebugRoot ()
 Get the debug graphics root node.
osg::Group * sgStatic3dDebugRoot ()
 Get the debug graphics root node.
osg::Group * sgOceanRoot ()
 Get the ocean root node.
virtual void moveRootToShadowRoot (const DtSceneRoot &targetRoot, osg::Group *shadowRoot, osg::Group *modelSetRoot)
 Move a target root out of its model set root and into the shadow root.
virtual osgViewer::ViewerBase & viewer ()
 Returns the current OSG viewer.
 DtOsgRenderer (DtDe &de)
 CTOR This is protected, use the creator instead.
osg::Group * sgModelSetRoot (int modelSet)
 Get the root for a given modelSet.
osg::Group * sgVisualizerRoot (int modelSet, int visualizerType, bool createOnAccess=true)
 Get the root for visual models of a specific type in a specific model set If the root does not exist and createOnAccess is true, it will be created and returned; otherwise, returns 0.
osg::Group * sgChannelRoot (int modelSet, DtChannel *channel, bool createOnAccess=true)
 Get the root for the given channel.
void slot_onViewCreated ()
 When a window is created, the fill out its myOsgWindowManager pointer.
void slot_onViewToBeDestroyed ()
 When a window is about to be destroyed, check if its the last window and if so, null out the myOsgWindowManager pointer.
void slot_onWireframeModeChanged (bool mode)
 receive signals from the shared state about wireframe mode
void slot_onDdsFlipChanged (bool flip)
 receive signals from the shared state about dds flip mode
void slot_onShadowStateChanged (bool shadowMode)
 receive signals from the shared state abotu the shadow state
void slot_onTerrainScalingEnabledChanged (bool enabled)
 receive signals from the shared state about the terrain scaling state
void slot_onTerrainScaleFactorChanged (double scaleFactor)
 receive signals from the shared state about the terrain scale factor
void slot_onCoordinateSystemChanged (const std::string &coordinateSystemType)
 receive signals from the shared state about coordinate system changes
void advanceTime ()
 Advance time, necessary when running as a slave.
void updateSceneGraph ()
void clearEmptyWindows ()
 This method checks for windows that exist but have no channels.
void clearFrameBufferIfChannelChanged ()
 This method calls clearFrameBufferIfChanged on all the channels.
virtual void removeShadows ()
 removes the shadows from the tree and restores any children to the scene root
virtual void createShadowRoots ()
 creates a shadowed scene and adds it to the scene root
virtual bool exportTerrainAndProps (const std::string &)
 Saves terrain geometry and props to specified file.
virtual osg::Group * createModelSetRoot (int modelSet)
virtual osg::Group * createVisualizerRoot (int modelSet, int visualizer)
virtual osg::Group * createChannelRoot (int modelSet, DtChannel *)
 Create a root that is associated with the channel.
virtual osgShadow::ShadowedScene * createModelSetSpecificShadowRootAndScene (int modelSet)
virtual osg::Group * modelSetSpecificShadowRoot (int modelSet)
virtual osgShadow::ShadowedScene * modelSetSpecificShadowScene (int modelSet)
virtual void updateTerrainScaling ()
virtual void initAerodromeManagers ()
virtual void updateAerodrome ()
void swapChildren (osg::Node *currentChild, osg::Node *newChild)
virtual void updateRenderMap (const CullSet &cullSet)
 Update the map of recently rendered element IDs and when they were last rendered.
void postInitialize ()
 Used to connect to the instance manager signal that provides the render set.
void setupAtcVirtualProgram ()
 Used to setup the dither shader for the alpha to coverage bin.
static int numDatabasePagerThreads (osgViewer::CompositeViewer &viewer)
 Get the current number of database pagers a composite viewer has.
static void plotHistogram (float frame_duration, int paging_threads, int mipthreads)
 plotHistogram is used to plot a database pager thread graph in our IMGUI debug window
static void updateLoaderStats (DtDe &myDe, osgViewer::CompositeViewer &viewer, osg::Texture::TextureObjectManager *tom)
 Provide database pager data to plotHistogram.

Additional Inherited Members

- Public Types inherited from makVrv::DtRenderer
typedef boost::unordered_map
< DtElementID, double
DtRenderMap
 Type definition of an unordered map that maps the element ids of objects recently rendered to the last simulation time at which they were rendered.
- Protected Attributes inherited from makVrv::DtRenderer
DtDemyDe
DtObserverObjectManagermyObserverObjectManager
DtTickableManagerInterfacemyTickableManager
DtOverlayManagermyOverlayManager
DtRenderMap myRenderMap
DtSignalConnectionManager myConnections

Detailed Description

The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneGraph The component responsible for drawing 3D images onto a screen is the DtRenderer.

Each display engine owns one. The DtRenderer provides an interface for updating the scene graph and rendering the scene. Its update() and render() functions are called each display engine tick.

The core VR-Vantage Toolkit framework abstracts away from the underlying rendering implementation. This separation ensures that the rendering-independent code remains independent of OSG, while the rendering code exists in the libraries that depend on OSG. (VR-Vantage can support alternate rendering solutions.) The DtOsgRenderer is the OSG implementation of the DtRenderer and draws 3D images via OpenSceneGraph.

Member Typedef Documentation

typedef boost::unordered_map<int, osg::ref_ptr<osg::Group> > makVrv::DtOsgRenderer::RootMap
protected
typedef boost::unordered_map<int, osg::ref_ptr<osgShadow::ShadowedScene> > makVrv::DtOsgRenderer::ShadowedSceneMap
protected
typedef boost::unordered_map< ModelSet, osg::ref_ptr<osg::Group> > makVrv::DtOsgRenderer::ModelSetRootMap
protected
typedef boost::unordered_map< VisualizerType, osg::ref_ptr<osg::Group> > makVrv::DtOsgRenderer::VisualizerTypeRootMap
protected

Under each model set group is another channel group for each visualizer type.

So we have a map of visualizer type groups, one per model set

typedef boost::unordered_map< DtChannel*, ModelSetRootMap > makVrv::DtOsgRenderer::ChannelRootMap
protected

DtChannelSpecificGroup that contains only the channel it represents.

This will allow for osg nodes to be parented on a channel basis under each model set. As an observer changes which model set it is viewing on the channel, the channel will be removed fom the channel specific group, however, the root itself will stay. The only time the root is removed is when the channel itself is destroyed

Constructor & Destructor Documentation

virtual makVrv::DtOsgRenderer::~DtOsgRenderer ( )
virtual

DTOR.

makVrv::DtOsgRenderer::DtOsgRenderer ( DtDe de)
protected

CTOR This is protected, use the creator instead.

Member Function Documentation

static DtOsgRenderer* makVrv::DtOsgRenderer::findInstance ( DtDe de)
static

Attempt to get the Osg renderer for the de.

If the de is not initialized or the Renderer is of a different type the returned pointer will be null.

Return values
0If the de does not have an OSG renderer.
virtual void makVrv::DtOsgRenderer::update ( )
virtual

Add functionality to update, update dynamic objects.

Reimplemented from makVrv::DtRenderer.

virtual void makVrv::DtOsgRenderer::render ( )
virtual

Render.

Implements makVrv::DtRenderer.

virtual bool makVrv::DtOsgRenderer::viewExists ( ) const
virtual

Returns whether or not a view (typically a window) exists.

virtual void makVrv::DtOsgRenderer::resetSceneGraph ( )
virtual

Removes all nodes from the scene graph.

Implements makVrv::DtRenderer.

virtual void makVrv::DtOsgRenderer::removeChannelRoot ( DtChannel channel)
virtual

Checks to see if this channel has a root, and, if it does, remove it from all model set roots.

This will typically happen when a channel is destroyed

virtual void makVrv::DtOsgRenderer::addNodeToRoot ( osg::Node *  node,
const DtSceneRoot sr,
bool  createOnAccess = true 
)
virtual

Add a node to the specified SceneRoot.

virtual void makVrv::DtOsgRenderer::removeNodeFromRoot ( osg::Node *  node,
const DtSceneRoot sr 
)
virtual

Remove a node from the specified SceneRoot.

virtual void makVrv::DtOsgRenderer::traverseRoot ( osg::NodeVisitor &  nv,
const DtSceneRoot sr 
)
virtual

Traverse from the specified SceneRoot with the given visitor.

virtual void makVrv::DtOsgRenderer::setSceneRootNodeMask ( const DtSceneRoot sr,
osg::Node::NodeMask  nodemask 
)
virtual

Set the nodemask of a SceneRoot.

virtual osg::Node::NodeMask makVrv::DtOsgRenderer::sceneRootNodeMask ( const DtSceneRoot sr)
virtual

Get the nodemask of a SceneRoot.

virtual osg::BoundingSphere makVrv::DtOsgRenderer::sceneRootBound ( const DtSceneRoot sr)
virtual

Get the bounding sphere of sceneRoot.

virtual osg::BoundingSphere makVrv::DtOsgRenderer::sceneRootListBound ( const DtSceneRootList srList)
virtual

Get the bounding sphere of list of sceneRoots.

virtual void makVrv::DtOsgRenderer::addChannelToModelSetRoot ( int  modelSetId,
DtChannel channel 
)
virtual

Set the specified channel to render a modelSet root.

virtual void makVrv::DtOsgRenderer::removeChannelFromModelSetRoot ( int  modelSetId,
DtChannel channel 
)
virtual

Stop the specified channel from rendering a modelSet root.

virtual void makVrv::DtOsgRenderer::addChannelToVisualizerRoot ( int  modelSetId,
int  visualizerType,
DtChannel channel 
)
virtual

Set the specified channel to render a visualizer type root.

virtual void makVrv::DtOsgRenderer::removeChannelFromVisualizerRoot ( int  modelSetId,
int  visualizerType,
DtChannel channel 
)
virtual

Stop the specified channel from rendering a visualizer type root.

virtual void makVrv::DtOsgRenderer::setSceneDataToRenderRoot ( osgViewer::View &  view)
virtual

Set the sceneData of a view to the top of the scene graph.

virtual void makVrv::DtOsgRenderer::addSceneToCamera ( osg::Camera *  camera)
virtual

Add the scene to the specified camera.

virtual void makVrv::DtOsgRenderer::addSceneRootToNode ( const DtSceneRoot sr,
osg::Group *  node,
bool  createOnAccess = true 
)
virtual

Add the specified SceneRoot to an OSG group node.

This should be used with caution - it creates a dependency between the caller and the scene graph's internal node structure.

virtual osg::Group* makVrv::DtOsgRenderer::findSceneRootChildByName ( const DtSceneRoot parent,
const std::string &  rootName 
)
virtual

Look up a root by name in the parent specified by SceneRoot.

This should not be used to access roots that are created by Vantage. It Is provided for plugins to find the roots possibly created by other plugins (such as multiple GlStudio plugins, for example)

virtual bool makVrv::DtOsgRenderer::matchesSceneRoot ( const DtSceneRoot sr,
osg::Group *  group 
)
virtual

Does this group match the given scene root.

virtual void makVrv::DtOsgRenderer::releaseResources ( )
inlinevirtual

Release all openGL objects in the scene graph.

Implements makVrv::DtRenderer.

virtual void makVrv::DtOsgRenderer::releaseResources ( osg::State *  state)
virtual

Release all openGL objects in the scene graph.

void makVrv::DtOsgRenderer::setRootNode ( osg::Group *  ,
bool  copyChildrenFromOldRoot 
)

Set the new scene root node, and optionally copy the old root children.

void makVrv::DtOsgRenderer::resetRoot ( )

Reset the scene root node back to the original node.

void makVrv::DtOsgRenderer::registerPagedLODs ( osg::Node *  node)

Register any paged LOD's with all of the existing database pagers.

void makVrv::DtOsgRenderer::clearPagedLODs ( )

Register any paged LOD's with all of the existing database pagers.

virtual void makVrv::DtOsgRenderer::setWireframeRendering ( bool  enabled)
virtual

Turn on/off wireframe mode rendering.

Implements makVrv::DtRenderer.

virtual void makVrv::DtOsgRenderer::setDdsFlip ( bool  flip)
virtual

Turn on/off dds flip.

virtual bool makVrv::DtOsgRenderer::wireframeRendering ( ) const
virtual

Check wireframe status.

Implements makVrv::DtRenderer.

virtual void makVrv::DtOsgRenderer::setShadowState ( bool  enabled)
virtual

Set the global shadow mode.

Implements makVrv::DtRenderer.

virtual bool makVrv::DtOsgRenderer::shadowsEnabled ( ) const
virtual

Get global shadow mode.

Implements makVrv::DtRenderer.

void makVrv::DtOsgRenderer::setTerrainScalingEnabled ( bool  enabled)

Set whether terrain scaling is on.

void makVrv::DtOsgRenderer::setTerrainScaleFactor ( double  scaleFactor)

Set the terrain scale factor (only used if scaling is on)

virtual bool makVrv::DtOsgRenderer::makeContextCurrent ( )
virtual

Attempt to make a context current.

Returns
true if a context was made current.

Implements makVrv::DtRenderer.

DtFontManager& makVrv::DtOsgRenderer::fontManager ( )

Get the font manager.

const DtFontManager& makVrv::DtOsgRenderer::fontManager ( ) const
DtEffectManager& makVrv::DtOsgRenderer::effectManager ( )

Get the font manager.

const DtEffectManager& makVrv::DtOsgRenderer::effectManager ( ) const
void makVrv::DtOsgRenderer::debugDrawBox ( const osg::Vec3 &  center,
const osg::Vec3 &  extents 
)

Draw a box in the next frame.

void makVrv::DtOsgRenderer::debugDrawBox ( const osg::Vec3 &  center,
const osg::Vec3 &  extents,
const osg::Quat &  orientation 
)

Draw a box in the next frame.

void makVrv::DtOsgRenderer::setChannelShadowState ( DtOsgChannel osgChannel,
bool  enable 
)

Set the shadow mode for channels.

bool makVrv::DtOsgRenderer::getChannelShadowSettings ( DtOsgChannel osgChannel,
DtShadowSettingsObject **  shadowSettingObject,
bool isPlanView 
)

Gets the shadow settings for this channel.

bool makVrv::DtOsgRenderer::getChannelCloudShadowMap ( DtOsgChannel osgChannel,
unsigned int textureIndex,
osg::Matrix *  textureViewProjMatrix,
unsigned int textureIndex2,
osg::Matrix *  textureViewProjMatrix2 
)

Gets the cloud shadow map for this channel.

bool makVrv::DtOsgRenderer::getCameraCloudShadowMap ( osg::Camera *  camera,
unsigned int textureIndex,
osg::Matrix *  textureViewProjMatrix,
unsigned int textureIndex2,
osg::Matrix *  textureViewProjMatrix2 
)

Gets the cloud shadow map for this camera.

osg::StateSet* makVrv::DtOsgRenderer::sgRenderRootStateSet ( )

Gets the stateset for the main render group root node.

void makVrv::DtOsgRenderer::clearStateGraphForAllChannels ( void  )

osg maintains an internal cache of StateSets in a StateGraph

virtual void makVrv::DtOsgRenderer::addMainThreadPersistantJob ( osg::Operation *  opp)
virtual

add an operation that will run every frame in the main thread while the cull thread is happening.

virtual void makVrv::DtOsgRenderer::removeMainThreadPersistantJob ( osg::Operation *  opp)
virtual

removes an operation that will run in the main thread while the cull thread is happening.

virtual void makVrv::DtOsgRenderer::addMainThreadPreDrawJob ( osg::Operation *  opp)
virtual

adds an operation that will run before rendering occurs.

virtual void makVrv::DtOsgRenderer::addMainThreadTransientJob ( osg::Operation *  operation)
virtual

adds a jobs for doing work during cull see DtMainThreadJobManager

virtual DtMainThreadJobsManager* makVrv::DtOsgRenderer::createJobsManager ( )
virtual

creates the job manager can be overloaded

virtual int makVrv::DtOsgRenderer::alphaToCoverageRenderBin ( )
virtual

get the render bin number being used for the alpha to coverage bin.

static DtSceneRoot makVrv::DtOsgRenderer::renderRoot ( )
static
static DtSceneRoot makVrv::DtOsgRenderer::environmentRoot ( )
static
static DtSceneRoot makVrv::DtOsgRenderer::terrainRoot ( )
static
static DtSceneRoot makVrv::DtOsgRenderer::propRoot ( )
static
static DtSceneRoot makVrv::DtOsgRenderer::oceanRoot ( )
static
static DtSceneRoot makVrv::DtOsgRenderer::modelSetRoot ( int  modelSet)
inlinestatic
static DtSceneRoot makVrv::DtOsgRenderer::visualizerTypeRoot ( int  modelSet,
int  visualizerType 
)
inlinestatic
static DtSceneRoot makVrv::DtOsgRenderer::channelRoot ( int  modelSet,
DtChannel channel 
)
inlinestatic
osg::Group* makVrv::DtOsgRenderer::sgRenderRoot ( )

Get the scene graph render root.

This node will not change and should only be accessed when connecting a window to it.

osg::Group* makVrv::DtOsgRenderer::sgEnvironmentRoot ( )

Get the environment root which controls the scene's lighting and other global state.

osg::Group* makVrv::DtOsgRenderer::sgPropsRoot ( )

Get the props root node.

osg::Group* makVrv::DtOsgRenderer::sgTerrainRoot ( )

Get the terrains root node.

osg::Group* makVrv::DtOsgRenderer::sgScaledTerrainRoot ( )

Get the active terrain root when terrain scaling is on.

osg::Group* makVrv::DtOsgRenderer::sgScaledPropsRoot ( )

Get the active props root when terrain scaling is on.

osg::Group* makVrv::DtOsgRenderer::sgStatic2dDebugRoot ( )

Get the debug graphics root node.

osg::Group* makVrv::DtOsgRenderer::sgStatic3dDebugRoot ( )

Get the debug graphics root node.

osg::Group* makVrv::DtOsgRenderer::sgOceanRoot ( )

Get the ocean root node.

virtual void makVrv::DtOsgRenderer::moveRootToShadowRoot ( const DtSceneRoot targetRoot,
osg::Group *  shadowRoot,
osg::Group *  modelSetRoot 
)
protectedvirtual

Move a target root out of its model set root and into the shadow root.

virtual osgViewer::ViewerBase& makVrv::DtOsgRenderer::viewer ( )
protectedvirtual

Returns the current OSG viewer.

Generally this is a DefaultViewer before the display is initialized, and a composite viewer afterwards

osg::Group* makVrv::DtOsgRenderer::sgModelSetRoot ( int  modelSet)
protected

Get the root for a given modelSet.

Nodes aren't put directly under here (except the model set-specific visualizer type nodes) but channels subscribe and unsubscribe to these

Returns a DtChannelSpecificGroup or an osg::Group

osg::Group* makVrv::DtOsgRenderer::sgVisualizerRoot ( int  modelSet,
int  visualizerType,
bool  createOnAccess = true 
)
protected

Get the root for visual models of a specific type in a specific model set If the root does not exist and createOnAccess is true, it will be created and returned; otherwise, returns 0.

Returns a DtChannelSpecificGroup or an osg::Group

osg::Group* makVrv::DtOsgRenderer::sgChannelRoot ( int  modelSet,
DtChannel channel,
bool  createOnAccess = true 
)
protected

Get the root for the given channel.

Nodes are put directly under this root. If root does not exist and createOnAccess is true will create, else return 0

Returns a DtChannelSpecificGroup or an osg::Group

void makVrv::DtOsgRenderer::slot_onViewCreated ( )
protected

When a window is created, the fill out its myOsgWindowManager pointer.

void makVrv::DtOsgRenderer::slot_onViewToBeDestroyed ( )
protected

When a window is about to be destroyed, check if its the last window and if so, null out the myOsgWindowManager pointer.

void makVrv::DtOsgRenderer::slot_onWireframeModeChanged ( bool  mode)
protected

receive signals from the shared state about wireframe mode

void makVrv::DtOsgRenderer::slot_onDdsFlipChanged ( bool  flip)
protected

receive signals from the shared state about dds flip mode

void makVrv::DtOsgRenderer::slot_onShadowStateChanged ( bool  shadowMode)
protected

receive signals from the shared state abotu the shadow state

void makVrv::DtOsgRenderer::slot_onTerrainScalingEnabledChanged ( bool  enabled)
protected

receive signals from the shared state about the terrain scaling state

void makVrv::DtOsgRenderer::slot_onTerrainScaleFactorChanged ( double  scaleFactor)
protected

receive signals from the shared state about the terrain scale factor

void makVrv::DtOsgRenderer::slot_onCoordinateSystemChanged ( const std::string &  coordinateSystemType)
protected

receive signals from the shared state about coordinate system changes

void makVrv::DtOsgRenderer::advanceTime ( )
protected

Advance time, necessary when running as a slave.

void makVrv::DtOsgRenderer::updateSceneGraph ( )
protected
void makVrv::DtOsgRenderer::clearEmptyWindows ( )
protected

This method checks for windows that exist but have no channels.

It clears them each frame so that they don't have garbage on them.

void makVrv::DtOsgRenderer::clearFrameBufferIfChannelChanged ( )
protected

This method calls clearFrameBufferIfChanged on all the channels.

This clears the buffer if the channel changed in some way that it needs to clean up the area of the framebuffer it is no longer using. Examples are if the viewport changed or HDR is toggled.

virtual void makVrv::DtOsgRenderer::removeShadows ( )
protectedvirtual

removes the shadows from the tree and restores any children to the scene root

virtual void makVrv::DtOsgRenderer::createShadowRoots ( )
protectedvirtual

creates a shadowed scene and adds it to the scene root

virtual bool makVrv::DtOsgRenderer::exportTerrainAndProps ( const std::string &  )
protectedvirtual

Saves terrain geometry and props to specified file.

This file will be saved in the format specified by the file extension. Currently only the .gdb extension is supported

Implements makVrv::DtRenderer.

virtual osg::Group* makVrv::DtOsgRenderer::createModelSetRoot ( int  modelSet)
protectedvirtual
virtual osg::Group* makVrv::DtOsgRenderer::createVisualizerRoot ( int  modelSet,
int  visualizer 
)
protectedvirtual
virtual osg::Group* makVrv::DtOsgRenderer::createChannelRoot ( int  modelSet,
DtChannel  
)
protectedvirtual

Create a root that is associated with the channel.

virtual osgShadow::ShadowedScene* makVrv::DtOsgRenderer::createModelSetSpecificShadowRootAndScene ( int  modelSet)
protectedvirtual
virtual osg::Group* makVrv::DtOsgRenderer::modelSetSpecificShadowRoot ( int  modelSet)
protectedvirtual
virtual osgShadow::ShadowedScene* makVrv::DtOsgRenderer::modelSetSpecificShadowScene ( int  modelSet)
protectedvirtual
virtual void makVrv::DtOsgRenderer::updateTerrainScaling ( )
protectedvirtual
virtual void makVrv::DtOsgRenderer::initAerodromeManagers ( )
protectedvirtual
virtual void makVrv::DtOsgRenderer::updateAerodrome ( )
protectedvirtual
void makVrv::DtOsgRenderer::swapChildren ( osg::Node *  currentChild,
osg::Node *  newChild 
)
protected
virtual void makVrv::DtOsgRenderer::updateRenderMap ( const CullSet cullSet)
protectedvirtual

Update the map of recently rendered element IDs and when they were last rendered.

void makVrv::DtOsgRenderer::postInitialize ( )
protected

Used to connect to the instance manager signal that provides the render set.

void makVrv::DtOsgRenderer::setupAtcVirtualProgram ( )
protected

Used to setup the dither shader for the alpha to coverage bin.

static int makVrv::DtOsgRenderer::numDatabasePagerThreads ( osgViewer::CompositeViewer &  viewer)
staticprotected

Get the current number of database pagers a composite viewer has.

Note that the viewer may have multiple views, and not all have to have a pager. This returns the number found for the first view with a pager

static void makVrv::DtOsgRenderer::plotHistogram ( float  frame_duration,
int  paging_threads,
int  mipthreads 
)
staticprotected

plotHistogram is used to plot a database pager thread graph in our IMGUI debug window

static void makVrv::DtOsgRenderer::updateLoaderStats ( DtDe myDe,
osgViewer::CompositeViewer &  viewer,
osg::Texture::TextureObjectManager *  tom 
)
staticprotected

Provide database pager data to plotHistogram.

Friends And Related Function Documentation

friend class DtSceneGraph
friend
friend class DtOsgRendererCreator
friend
friend class DtSceneGraphTreeLogic
friend

Member Data Documentation

const int makVrv::DtOsgRenderer::SKY_RENDERBIN = -10
static
const int makVrv::DtOsgRenderer::DEFAULT_RENDERBIN = 0
static
const int makVrv::DtOsgRenderer::DEPTH_ONLY_RENDERBIN = 6
static
const int makVrv::DtOsgRenderer::OCEAN_RENDERBIN = 7
static
const int makVrv::DtOsgRenderer::LIGHTPOINT_RENDERBIN = 8
static
const int makVrv::DtOsgRenderer::CLOUD_RENDERBIN = 9
static
const int makVrv::DtOsgRenderer::DEFAULT_TRANSPARENT_RENDERBIN = 10
static
const int makVrv::DtOsgRenderer::COCKPIT_RENDERBIN = 25
static
const std::string makVrv::DtOsgRenderer::AlphaToCoverageBin
static
const std::string makVrv::DtOsgRenderer::SkyBin
static
const std::string makVrv::DtOsgRenderer::DepthOnlyBin
static
const std::string makVrv::DtOsgRenderer::OceanBin
static
const std::string makVrv::DtOsgRenderer::LightPointBin
static
const std::string makVrv::DtOsgRenderer::CloudBin
static
const std::string makVrv::DtOsgRenderer::CockpitBin
static
boost::signal< void(int modelSet, int visualType) > makVrv::DtOsgRenderer::signal_visualizerRootAdded
boost::signal< void(DtChannel*) > makVrv::DtOsgRenderer::signal_channelRootAdded
boost::signal< void() > makVrv::DtOsgRenderer::signal_shadowsRemoved
DtSceneGraph* makVrv::DtOsgRenderer::mySceneGraph
protected
DtFontManager* makVrv::DtOsgRenderer::myFontManager
protected
DtEffectManager* makVrv::DtOsgRenderer::myEffectManager
protected
DtOsgWindowManager* makVrv::DtOsgRenderer::myOsgWindowManager
protected
osg::ref_ptr<osgViewer::Viewer> makVrv::DtOsgRenderer::myDefaultViewer
protected

This viewer exists so that when there are no displays, windows, or channels, the scene can be updated and kept current.

This way when a display, window, channel is created, the objects in the scene graph are current and will match other IG instances. It only gets updated when there myOsgWindowManager is null. It also never renders.

osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myRenderRoot
protected
osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myDebugRoot
protected

Group for drawing debug graphics, cleared after each frame.

osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myStatic2dDebugRoot
protected

Group for drawing debug graphics left alone each frame.

osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myStatic3dDebugRoot
protected

Group for drawing debug graphics left alone each frame.

osg::ref_ptr<osg::Geode> makVrv::DtOsgRenderer::myDebugBox
protected

Shared geometry for debug boxes.

osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myEnvironmentRoot
protected
osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myTerrainRoot
protected
osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myPropsRoot
protected
osg::ref_ptr<osg::Group> makVrv::DtOsgRenderer::myOceanRoot
protected
osg::ref_ptr<DtFastMatrixTransform> makVrv::DtOsgRenderer::myScaledTerrainRoot
protected
osg::ref_ptr<DtFastMatrixTransform> makVrv::DtOsgRenderer::myScaledPropsRoot
protected
osg::Matrix makVrv::DtOsgRenderer::myScaleMatrix
protected
ModelSetRootMap makVrv::DtOsgRenderer::myModelSetMap
protected
ModelSetVisualizerTypeRootMap makVrv::DtOsgRenderer::myVisualizerRootMap
protected
ChannelRootMap makVrv::DtOsgRenderer::myChannelRootMap
protected
ShadowedSceneMap makVrv::DtOsgRenderer::myShadowedSceneMap
protected
RootMap makVrv::DtOsgRenderer::myShadowRootMap
protected
osg::ref_ptr<osgUtil::RenderBin> makVrv::DtOsgRenderer::myAlphaToCoverageBin
protected
osg::ref_ptr<osgUtil::RenderBin> makVrv::DtOsgRenderer::mySkyBin
protected
osg::ref_ptr<osgUtil::RenderBin> makVrv::DtOsgRenderer::myDepthOnlyBin
protected
osg::ref_ptr<osgUtil::RenderBin> makVrv::DtOsgRenderer::myOceanBin
protected
osg::ref_ptr<osgUtil::RenderBin> makVrv::DtOsgRenderer::myLightPointBin
protected
osg::ref_ptr<osgUtil::RenderBin> makVrv::DtOsgRenderer::myCloudBin
protected
osg::ref_ptr<osgUtil::RenderBin> makVrv::DtOsgRenderer::myCockpitBin
protected
bool makVrv::DtOsgRenderer::myWireframeOn
protected
bool makVrv::DtOsgRenderer::myShadowsEnabled
protected
DtTaxiwaySignManager* makVrv::DtOsgRenderer::myTaxiwaySignManager
protected
DtRunwayMarkingManager* makVrv::DtOsgRenderer::myRunwayMarkingManager
protected
DtLightIndicatorManager* makVrv::DtOsgRenderer::myLightIndicatorManager
protected
double makVrv::DtOsgRenderer::myTerrainScaleFactor
protected
bool makVrv::DtOsgRenderer::myTerrainScaleFactorChanged
protected
bool makVrv::DtOsgRenderer::myTerrainScalingEnabled
protected
bool makVrv::DtOsgRenderer::myTerrainScalingEnabledChanged
protected
bool makVrv::DtOsgRenderer::myResourcesReleased
protected
int makVrv::DtOsgRenderer::myAlphaToCoverageRenderBin
protected
DtMainThreadJobsManager* makVrv::DtOsgRenderer::myMainThreadJobsManager
protected
bool makVrv::DtOsgRenderer::myReaddJobSystem
protected
DtSceneRoot makVrv::DtOsgRenderer::theRenderRoot
staticprotected
DtSceneRoot makVrv::DtOsgRenderer::theEnvironmentRoot
staticprotected
DtSceneRoot makVrv::DtOsgRenderer::theTerrainRoot
staticprotected
DtSceneRoot makVrv::DtOsgRenderer::thePropRoot
staticprotected
DtSceneRoot makVrv::DtOsgRenderer::theOceanRoot
staticprotected

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

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)