VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgRenderer.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <vrvOsg/DtSceneRoot.h>
16 
17 #include <vrvCore/DtRenderer.h>
18 
19 #include <osg/ref_ptr>
20 #include <osg/Group>
21 
22 #include <vector>
23 #include <string>
24 
25 namespace osg
26 {
27  class Group;
28  class Node;
29  class Camera;
30  class Operation;
31  class TextureObjectManager;
32 }
33 
34 namespace osgUtil
35 {
36  class RenderBin;
37 }
38 
39 namespace osgViewer
40 {
41  class Viewer;
42  class CompositeViewer;
43  class View;
44  class ViewerBase;
45 }
46 
47 namespace osgShadow
48 {
49  class ShadowedScene;
50 }
51 
52 namespace osgEarth
53 {
54  class MapNode;
55 }
56 
57 namespace makVrv
58 {
59  class DtStatsSet;
60  class DtChannel;
61  class DtOsgChannel;
62  class DtEffectManager;
63  class DtFontManager;
64  class DtOsgWindowManager;
65  class DtOsgProfilerOverlay;
66  class DtOsgPerformanceStatsOverlay;
67  class DtFastMatrixTransform;
68  class DtSceneGraph;
69  class DtOsgGlobalShaderComponent;
70  class DtOsgCullVisitor;
71  class DtShadowSettingsObject;
72  class DtTaxiwaySignManager;
73  class DtRunwayMarkingManager;
74  class DtLightIndicatorManager;
75  class DtMainThreadJobsManager;
76  class DtImGuiLoaderStatsData;
77  class DtImguiHelper;
78  class DtMultiViewData;
79 
80 
88  {
89  public:
90  friend class DtSceneGraph;
91  friend class DtOsgRendererCreator;
92  friend class DtSceneGraphTreeLogic;
93 
94  //Render bin definitions.
95  const static int SKY_RENDERBIN = -10;
96  const static int DEFAULT_RENDERBIN = 0;
97  const static int DEPTH_ONLY_RENDERBIN = 5;
98  const static int OCEAN_RENDERBIN = 6;
99  const static int LIGHTPOINT_RENDERBIN = 7;
100  const static int CLOUD_RENDERBIN = 8;
101  const static int OCCLUSION_RENDERBIN = 9;
102  const static int DEFAULT_TRANSPARENT_RENDERBIN = 10; // this has to be 10 otherwise everything goes south, the rest are more flexible
103  const static int COCKPIT_RENDERBIN = 25;
104 
105  //Render bin names
106  static const std::string AlphaToCoverageBin;
107  static const std::string SkyBin;
108  static const std::string DepthOnlyBin;
109  static const std::string OceanBin;
110  static const std::string LightPointBin;
111  static const std::string CloudBin;
112  static const std::string OcclusionRenderBin;
113  static const std::string CockpitBin;
114 
119  static DtOsgRenderer* findInstance(DtDe& de);
120 
122  virtual ~DtOsgRenderer();
123 
126  virtual void cleanup() override;
127 
129  virtual void update();
130 
132  virtual void render();
133 
135  virtual bool viewExists() const;
136 
138  virtual void resetSceneGraph();
139 
142  virtual void removeChannelRoot(DtChannel* channel);
143 
149  virtual bool isSceneRootEmpty(const DtSceneRoot& sr);
150 
152  virtual void addNodeToRoot(osg::Node* node, const DtSceneRoot& sr, bool createOnAccess = true);
153 
155  virtual void addSceneRootToRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot, bool createOnAccess = true);
156 
158  virtual void removeNodeFromRoot(osg::Node* node, const DtSceneRoot& sr);
159 
162  virtual void removeSceneRootFromRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot);
163 
165  virtual void traverseRoot(osg::NodeVisitor& nv, const DtSceneRoot& sr);
166 
168  virtual void setSceneRootNodeMask(const DtSceneRoot& sr,
169  osg::Node::NodeMask nodemask);
170 
172  virtual osg::Node::NodeMask sceneRootNodeMask(const DtSceneRoot& sr);
173 
175  virtual osg::BoundingSphere sceneRootBound(const DtSceneRoot& sr);
176 
178  virtual osg::BoundingSphere sceneRootListBound(const DtSceneRootList& srList);
179 
181  virtual void addChannelToModelSetRoot(int modelSetId,
182  DtChannel* channel);
183 
185  virtual void removeChannelFromModelSetRoot(int modelSetId,
186  DtChannel* channel);
187 
189  virtual void addChannelToVisualizerRoot(int modelSetId,
190  int visualizerType, DtChannel* channel);
191 
193  virtual void removeChannelFromVisualizerRoot(int modelSetId,
194  int visualizerType, DtChannel* channel);
195 
197  virtual void setSceneDataToRenderRoot(osgViewer::View& view);
198 
200  virtual void addSceneToCamera(osg::Camera* camera);
201 
206  virtual void addSceneRootToNode(const DtSceneRoot& sr,
207  osg::Group* node, bool createOnAccess = true);
208 
213  virtual osg::Group* findSceneRootChildByName(const DtSceneRoot& parent,
214  const std::string& rootName);
215 
217  virtual bool matchesSceneRoot(const DtSceneRoot& sr, osg::Group* group);
218 
220  virtual void releaseResources()
221  {
222  releaseResources(0);
223  }
224 
226  virtual void releaseResources(osg::State* state);
227 
230  void setRootNode(osg::Group*, bool copyChildrenFromOldRoot);
231 
233  void resetRoot();
234 
237  void registerPagedLODs(osg::Node* node);
238 
241  void clearPagedLODs();
242 
244  virtual void setWireframeRendering(bool enabled);
245 
247  virtual void setDdsFlip(bool flip);
248 
250  virtual bool wireframeRendering() const;
251 
253  virtual void setShadowState(bool enabled);
254 
256  virtual bool shadowsEnabled() const;
257 
258  // ! Get global multiview vr mode
259  virtual bool multiViewVrEnabled() const;
260 
261  // ! Set global multiview vr mode, doesn't actually enable it, just indicates it is enabled
262  virtual void setMultiViewVrEnabled(bool enabled);
263 
264  // ! Get reference to multiview data for specific camera
265  virtual DtMultiViewData& getOrCreateMultiViewData(const osg::Camera* camera);
266 
267  // ! Clear all multiview data
268  void clearMultiViewData();
269 
271  void setTerrainScalingEnabled(bool enabled);
272 
274  void setTerrainScaleFactor(double scaleFactor);
275 
278  virtual bool makeContextCurrent();
279 
281  DtFontManager& fontManager();
282  const DtFontManager& fontManager() const;
283 
285  DtEffectManager& effectManager();
286  const DtEffectManager& effectManager() const;
287 
288  boost::signalslib::signal< void(int modelSet, int visualType) > signal_visualizerRootAdded;
289  boost::signalslib::signal< void(DtChannel*) > signal_channelRootAdded;
290 
291  boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged;
292  boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged;
293 
294  boost::signalslib::signal< void() > signal_shadowsRemoved;
295 
297  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents);
298 
300  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents, const osg::Quat& orientation);
301 
303  virtual void setChannelShadowState(DtOsgChannel* osgChannel, bool enable);
304 
306  virtual bool channelShadowSettings(DtOsgChannel* osgChannel, DtShadowSettingsObject** shadowSettingObject, bool* isPlanView) const;
307 
309  virtual bool channelCloudShadowMap(DtOsgChannel* osgChannel, unsigned int* textureIndex, osg::Matrix* textureViewProjMatrix,
310  unsigned int* textureIndex2, osg::Matrix* textureViewProjMatrix2) const;
311 
313  virtual bool cameraCloudShadowMap(osg::Camera* camera, unsigned int* textureIndex, osg::Matrix* textureViewProjMatrix,
314  unsigned int* textureIndex2, osg::Matrix* textureViewProjMatrix2) const;
315 
317  osg::StateSet* sgRenderRootStateSet();
318 
320  // structure to expedite culling. We need to clear any memory
321  // that this structure caches to decrement reference count of
322  // StateSets (and hence drawables, textures, etc) when scene
323  // changes completely (e.g. on post processor turned off/on)
324  // so that memory can be reclaimed
325  // This helper function accomplishes that
326  void clearStateGraphForAllChannels(void);
327 
329  virtual void addMainThreadPersistantJob(osg::Operation * opp);
330 
332  virtual void removeMainThreadPersistantJob(osg::Operation * opp);
333 
335  virtual void addMainThreadPreDrawJob(osg::Operation * opp);
336 
338  virtual void addParallelThreadCullJob(osg::Operation * opp);
339 
341  virtual void removeParallelThreadCullJob(osg::Operation* opp);
342 
344  virtual void addParallelThreadSwapBufferJob(osg::Operation * opp);
345 
347  virtual bool addMainThreadTransientJob(osg::Operation * operation, bool requiredThisFrame);
348 
350  virtual void launchPreCullTasks(DtOsgCullVisitor* cv);
351 
353  virtual void launchSwapBufferTasks();
354 
356  virtual DtMainThreadJobsManager * createJobsManager();
357 
359  virtual int alphaToCoverageRenderBin();
360 
362  virtual void setNewProfilerState(int value);
364  virtual int newProfilerState();
365 
366  public:
368  //@ {
369  static DtSceneRoot renderRoot();
370  static DtSceneRoot environmentRoot();
371  static DtSceneRoot terrainRoot();
372  static DtSceneRoot minimapTerrainRoot();
373  static DtSceneRoot minimapFallbackTerrainRoot();
374  static DtSceneRoot propRoot();
375  static DtSceneRoot intersectOnlyPropRoot();
376  static DtSceneRoot oceanRoot();
377  static DtSceneRoot intersectOnlyRoot(int modelSet)
378  {
380  }
381  static DtSceneRoot normalizedOverlayRoot();
382  static DtSceneRoot modelSetRoot(int modelSet)
383  {
384  return DtSceneRoot(modelSet);
385  }
386  static DtSceneRoot visualizerTypeRoot(int modelSet, int visualizerType)
387  {
388  return DtSceneRoot(modelSet, visualizerType);
389  }
390  static DtSceneRoot channelRoot(int modelSet, DtChannel* channel)
391  {
392  return DtSceneRoot(modelSet, channel);
393  }
394  //@ }
395 
396  static const std::string& shadowedSceneName(void)
397  {
398  return theShadowedSceneName;
399  }
400 
401 
404  osg::Group* sgRenderRoot();
405 
408  osg::Group* sgEnvironmentRoot();
409 
411  osg::Group* sgPropsRoot();
412 
414  osg::Group* sgIntersectoOnlyPropsRoot();
415 
417  osg::Group* sgTerrainRoot();
418 
420  osg::Group* sgScaledTerrainRoot();
421 
423  osg::Group* sgScaledPropsRoot();
424 
426  osg::Group* sgMinimapTerrainRoot();
427 
429  osg::Group* sgMinimapFallbackTerrainRoot(bool createOnAccess);
430 
432  osg::Group* sgNormalizedOverlayRoot();
433 
435  osg::Group* sgStatic3dDebugRoot();
436 
438  osg::Group* sgOceanRoot();
439 
441  virtual osg::Group* modelSetSpecificShadowRoot(int modelSet);
442 
444  virtual osgShadow::ShadowedScene*
445  modelSetSpecificShadowScene(int modelSet);
446 
449  osg::Group* sgIntersectOnlyRoot(int modelSet);
450 
455  virtual osgViewer::ViewerBase& viewer();
456 
457  // Use for the DtMainThreadJobsManager to tell the DtOsgRenderer that
458  // is has been destructed
459  virtual void clearMainThreadJobsManager();
460 
462  virtual DtImGuiLoaderStatsData* imGuiLoaderStatsData();
463 
465  virtual DtImguiHelper* imGuiHelper();
466 
468  const DtMainThreadJobsManager* mainThreadJobsManager() const;
469 
472  virtual void addIntStat(const std::string& name, int value);
475  virtual void addFloatStat(const std::string& name, float value);
476 
479  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
482  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
483 
485  virtual unsigned int numActiveThreads() const;
486 
488  void advanceTime();
489 
492  static const DtOsgGlTextureListener& osgGlTextureListener(void);
493  protected:
494 
496  virtual void moveRootToShadowRoot(const DtSceneRoot& targetRoot,
497  osg::Group* shadowRoot, osg::Group* modelSetRoot);
498 
499 
502  DtOsgRenderer(DtDe& de);
503 
504 
510  osg::Group* sgModelSetRoot(int modelSet);
511 
517  osg::Group* sgVisualizerRoot(int modelSet, int visualizerType,
518  bool createOnAccess = true);
519 
525  osg::Group* sgChannelRoot(int modelSet,
526  DtChannel* channel, bool createOnAccess = true);
527 
529  void slot_onViewCreated();
530 
533  void slot_onViewToBeDestroyed();
534 
536  void slot_onWireframeModeChanged(bool mode);
537 
539  void slot_onDdsFlipChanged(bool flip);
540 
542  void slot_onOcclusionCullingChanged(bool enabled);
543 
545  void slot_onShadowStateChanged(bool shadowMode);
546 
548  void slot_onTerrainScalingEnabledChanged(bool enabled);
549 
551  void slot_onTerrainScaleFactorChanged(double scaleFactor);
552 
554  void slot_onCoordinateSystemChanged(const std::string& coordinateSystemType);
555 
556  void updateSceneGraph();
557 
560  void clearEmptyWindows();
561 
566  void clearFrameBufferIfChannelChanged();
567 
570  virtual void removeShadows();
571 
573  virtual void createShadowRoots();
574 
578  virtual bool exportTerrainAndProps(const std::string&);
579 
580  virtual osg::Group* createModelSetRoot(int modelSet);
581  virtual osg::Group* createVisualizerRoot(int modelSet,
582  int visualizer);
583 
585  virtual osg::Group* createChannelRoot(int modelSet, DtChannel*);
586 
588  virtual osgShadow::ShadowedScene*
589  createModelSetSpecificShadowRootAndScene(int modelSet);
590 
591  virtual void updateTerrainScaling();
592 
593  virtual void initAerodromeManagers();
594  virtual void updateAerodrome();
595 
596  // replace currentChild in all its parents with newChild
597  void swapChildren(osg::Node* currentChild, osg::Node* newChild);
598 
601  void postInitialize();
602 
604  void setupAtcVirtualProgram();
605 
607  virtual void processBackgroundLoaderIcoTasksIfNecessary(void);
608 
610  virtual void setupTextureManagement(osg::TextureObjectManager* tom);
611 
616  virtual void runMainThreadJobs(double timeBudget);
617 
621  virtual int numDatabasePagerThreads(osgViewer::CompositeViewer& viewer) const;
622 
625  virtual bool isNahimicServiceRunning();
626 
627  protected:
629 
632 
634 
641 
642  // This the top of the render graph
644 
647 
650 
653 
656 
657  // This goes directly below the root, and sets the environment (such as sky)
659 
660  // attached under each modelset root except the minimap modelset root, terrains are placed here
662 
663  // attached under each minimap modelset root, minimap terrains are placed here
665 
666  // attached under each minimap terrain root, terrain/props/ocean root is placed her for when
667  // a minimap terrain patch isn't included in a terrain definition
669 
670  // attached under each modelset root, props are placed here
672 
673  //root for props that should only be intersected and not rendered (indirected)
675 
676  // root for triton
678 
679  // when terrain scaling is enabled, this is placed above the
680  // terrain root
682 
683  // when terrain scaling is enabled, this is placed above the
684  // props root
686 
687  osg::Matrix myScaleMatrix;
688 
689  // shadows and visual type roots are done one per model set
690  typedef boost::unordered_map<int, osg::ref_ptr<osg::Group> > RootMap;
691  typedef boost::unordered_map<int, osg::ref_ptr<osgShadow::ShadowedScene> > ShadowedSceneMap;
692 
693  typedef int ModelSet;
694  typedef int VisualizerType;
695 
696  // There is one group for each model set, which is either an osg::Group
697  // or a DtChannelSpecificGroup
698  typedef boost::unordered_map < ModelSet, osg::ref_ptr<osg::Group> >
700 
701  typedef boost::unordered_map < VisualizerType, osg::ref_ptr<osg::Group> >
703 
707  typedef boost::unordered_map < ModelSet, VisualizerTypeRootMap >
709 
710 
711  // This is a map of the model set roots. CWhen a channel uses a model set
712  // (or more correctly, when a channel's observer uses a model set) the
713  // channel subscribes to the appropriate one of these
715 
716  //Map to roots that are intersect only on a per model set basis
718 
719 
720  // Under each model set root is a root for each visualizer type. This map
721  // provides another map, by model set, of the roots for each visual type
723 
724  // This is a map of channel roots by model set. Each channel root is a unique
731  typedef boost::unordered_map < DtChannel*, ModelSetRootMap >
733 
737 
746 
749 
751  std::map<const osg::Camera*, DtMultiViewData*> myMultiViewData;
752 
756 
762 
765 
769 
771  unsigned int myActiveThreads;
772  protected:
782 
783  static std::string theShadowedSceneName;
784 
786 
788 
790  typedef std::vector<OperationRef> OperationVector;
791 
794  protected:
798  };
799 
803  {
804  public:
805 
807  virtual DtRenderer* create(DtDe& de);
808  };
809 }
static const std::string LightPointBin
Definition: DtOsgRenderer.h:110
ModelSetRootMap myIntersectOnlyRootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:717
static DtSceneRoot thePropRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:778
Definition: DtTaxiwaySignManager.h:95
static const std::string SkyBin
Definition: DtOsgRenderer.h:107
osg::ref_ptr< osg::Group > myDebugRoot
Group for drawing debug graphics, cleared after each frame.
Definition: DtOsgRenderer.h:646
Definition: DtRunwayMarkingManager.h:149
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:87
osg::ref_ptr< osgViewer::Viewer > myDefaultViewer
This viewer exists so that when there are no displays, windows, or channels, the scene can be updated...
Definition: DtOsgRenderer.h:640
boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged
Definition: DtOsgRenderer.h:291
RootMap myShadowRootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:736
static const std::string OcclusionRenderBin
Definition: DtOsgRenderer.h:112
Definition: DtShadowSettingsObject.h:24
static DtSceneRoot theNormalizedOverlayRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:781
std::vector< DtSceneRoot > DtSceneRootList
A list of DtOsgRenderer::SceneRoots.
Definition: DtSceneRoot.h:133
osg::ref_ptr< osgUtil::RenderBin > mySkyBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:739
OperationVector myParallelSwapBufferJobs
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:793
ShadowedSceneMap myShadowedSceneMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:735
boost::unordered_map< ModelSet, osg::ref_ptr< osg::Group > > ModelSetRootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:699
std::vector< OperationRef > OperationVector
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:790
bool myTerrainScaleFactorChanged
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:758
A light weight system for running jobs in the main thread during cull Transient Jobs run once and are...
Definition: DtMainThreadJobsManager.h:89
osg::ref_ptr< osg::Group > myRenderRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:643
virtual void releaseResources()
Release all openGL objects in the scene graph.
Definition: DtOsgRenderer.h:220
boost::unordered_map< int, osg::ref_ptr< osgShadow::ShadowedScene > > ShadowedSceneMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:691
int VisualizerType
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:694
static DtSceneRoot theTerrainRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:775
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::ref_ptr< osgUtil::RenderBin > myOceanBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:741
ChannelRootMap myChannelRootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:734
boost::unordered_map< int, osg::ref_ptr< osg::Group > > RootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:690
osg::ref_ptr< osgUtil::RenderBin > myDepthOnlyBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:740
Contains makVrv::DtRenderer class.
DtOsgWindowManager * myOsgWindowManager
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:633
boost::signalslib::signal< void() > signal_shadowsRemoved
Definition: DtOsgRenderer.h:294
static DtOsgGlTextureListener theOsgGlTextureListener
this is purposely static. osg textures can get deleted way after the DtOsgRenderer/DtDe has been dele...
Definition: DtOsgRenderer.h:797
osg::ref_ptr< osg::Group > myMinimapFallbackTerrainRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:668
bool myTerrainScalingEnabled
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:759
osg::ref_ptr< osg::Geode > myDebugBox
Shared geometry for debug boxes.
Definition: DtOsgRenderer.h:655
Definition: DtImGuiHelper.h:36
boost::unordered_map< VisualizerType, osg::ref_ptr< osg::Group > > VisualizerTypeRootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:702
boost::unordered_map< ModelSet, VisualizerTypeRootMap > ModelSetVisualizerTypeRootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:708
osg::ref_ptr< osgUtil::RenderBin > myOcclusionNodeBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:745
DtTaxiwaySignManager * myTaxiwaySignManager
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:753
DtRunwayMarkingManager * myRunwayMarkingManager
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:754
osg::ref_ptr< DtOsgGlobalShaderComponent > myGlobalShaderComponent
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:787
osg::ref_ptr< DtFastMatrixTransform > myScaledPropsRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:685
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:52
bool myInitializedInRender
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:770
bool myWireframeOn
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:747
Manages instances of fonts, the font will be kept in memory unless the manager is cleared...
Definition: DtFontManager.h:28
ModelSetVisualizerTypeRootMap myVisualizerRootMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:722
osg::ref_ptr< osgUtil::RenderBin > myAlphaToCoverageBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:738
class that gathers per frame stats and puts up UI
Definition: DtImGuiLoaderStatsData.h:43
Definition: DtLightIndicatorManager.h:77
static DtSceneRoot theMinimapFallbackTerrainRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:777
unsigned int myActiveThreads
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:771
DtOsgCullVisitor will inspect the camera to see which visual mode is active. If the visual mode is a ...
Definition: DtOsgCullVisitor.h:27
static DtSceneRoot theEnvironmentRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:774
static const std::string OceanBin
Definition: DtOsgRenderer.h:109
The abstract Channel Class.
Definition: DtChannel.h:35
static DtSceneRoot theRenderRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:773
boost::unordered_map< DtChannel *, ModelSetRootMap > ChannelRootMap
DtChannelSpecificGroup that contains only the channel it represents. This will allow for osg nodes to...
Definition: DtOsgRenderer.h:732
Abstract index into the scene graph. This is used as an argument to functions which interact with dif...
Definition: DtSceneRoot.h:22
bool myTerrainScalingEnabledChanged
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:760
bool myReaddJobSystem
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:768
static const std::string & shadowedSceneName(void)
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:396
osg::ref_ptr< osg::Group > myTerrainRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:661
static DtSceneRoot modelSetRoot(int modelSet)
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:382
boost::signalslib::signal< void(DtChannel *) > signal_channelRootAdded
Definition: DtOsgRenderer.h:289
static DtSceneRoot visualizerTypeRoot(int modelSet, int visualizerType)
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:386
DtMainThreadJobsManager * myMainThreadJobsManager
system for doing work during cull
Definition: DtOsgRenderer.h:767
static DtSceneRoot theOceanRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:779
Logic for scene graph tree display widget.
Definition: DtSceneGraphTreeLogic.h:256
osg::ref_ptr< osg::Group > myStatic3dDebugRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:652
This is a concret implementation of osg::GlTextureListener.
Definition: DtOsgGlTextureListener.h:26
osg::ref_ptr< osgUtil::RenderBin > myCockpitBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:744
static const std::string AlphaToCoverageBin
Definition: DtOsgRenderer.h:106
DtImguiHelper * myImGuiHelper
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:785
The effect manager provides a way of creating and sharing effects.
Definition: DtEffectManager.h:18
static DtSceneRoot theIntersectOnlyPropRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:780
Abstract creator base class.
Definition: DtOsgRenderer.h:802
simple class to encapsulate the different views in a multiview vr setup
Definition: DtMultiViewData.h:23
osg::Matrix myScaleMatrix
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:687
osg::ref_ptr< osgUtil::RenderBin > myLightPointBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:742
Owns and manages OpenSceneGraph windows.
Definition: DtOsgWindowManager.h:32
DtLightIndicatorManager * myLightIndicatorManager
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:755
The DtRenderer is the component responsible for rendering 3D images onto the screen.
Definition: DtRenderer.h:43
std::map< const osg::Camera *, DtMultiViewData * > myMultiViewData
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:751
double myTerrainScaleFactor
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:757
OperationVector myParallelCullJobs
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:792
osg::ref_ptr< osg::Group > myEnvironmentRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:658
int myNewProfilerState
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:764
static DtSceneRoot theMinimapTerrainRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:776
static const std::string DepthOnlyBin
Definition: DtOsgRenderer.h:108
Contains makVrv::DtSceneRoot class.
Abstract creator base class.
Definition: DtRenderer.h:164
DtFontManager * myFontManager
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:630
osg::ref_ptr< osg::Operation > OperationRef
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:789
Contains the DtOsgGlTextureListener class declaration.
int ModelSet
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:693
bool myMultiViewVrEnabled
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:750
osg::ref_ptr< osg::Group > myMinimapTerrainRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:664
static DtSceneRoot channelRoot(int modelSet, DtChannel *channel)
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:390
boost::signalslib::signal< void(int modelSet, int visualType) > signal_visualizerRootAdded
Definition: DtOsgRenderer.h:288
const char int mode
Definition: ioapi.h:38
bool myResourcesReleased
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:761
boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged
Definition: DtOsgRenderer.h:292
ModelSetRootMap myModelSetMap
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:714
static const std::string CloudBin
Definition: DtOsgRenderer.h:111
osg::ref_ptr< osg::Group > myOceanRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:677
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
osg::ref_ptr< DtFastMatrixTransform > myScaledTerrainRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:681
static std::string theShadowedSceneName
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:783
DtEffectManager * myEffectManager
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:631
osg::ref_ptr< osg::Group > myPropsRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:671
osg::ref_ptr< osg::Group > myIntersectOnlyPropsRoot
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:674
static DtSceneRoot intersectOnlyRoot(int modelSet)
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:377
static const std::string CockpitBin
Definition: DtOsgRenderer.h:113
int myAlphaToCoverageRenderBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:763
osg::ref_ptr< osgUtil::RenderBin > myCloudBin
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:743
osg::ref_ptr< osg::Group > myNormalizedOverlayRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:649
bool myShadowsEnabled
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:748
Abstraction over the OSG scene graph.
Definition: DtSceneGraph.h:22
DtSceneGraph * mySceneGraph
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:628

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)