VR-Forces 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) 2024 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>
17 
18 #include <vrvCore/DtRenderer.h>
19 
20 #include <osg/ref_ptr>
21 #include <osg/Group>
22 
23 #include <vector>
24 #include <string>
25 #include <unordered_map>
26 
27 namespace osg
28 {
29  class Group;
30  class Node;
31  class Camera;
32  class Operation;
33  class TextureObjectManager;
34 }
35 
36 namespace osgUtil
37 {
38  class RenderBin;
39 }
40 
41 namespace osgViewer
42 {
43  class Viewer;
44  class CompositeViewer;
45  class View;
46  class ViewerBase;
47 }
48 
49 namespace osgShadow
50 {
51  class ShadowedScene;
52 }
53 
54 namespace osgEarth
55 {
56  class MapNode;
57 }
58 
59 namespace makVrv
60 {
61  class DtStatsSet;
62  class DtChannel;
63  class DtOsgChannel;
64  class DtEffectManager;
65  class DtOsgWindowManager;
66  class DtOsgProfilerOverlay;
67  class DtOsgPerformanceStatsOverlay;
68  class DtFastMatrixTransform;
69  class DtSceneGraph;
70  class DtOsgGlobalShaderComponent;
71  class DtOsgCullVisitor;
72  class DtShadowSettingsObject;
73  class DtTaxiwaySignManager;
74  class DtRunwayMarkingManager;
75  class DtGLFontManager;
76  class DtLightIndicatorManager;
77  class DtGpuArena;
78  class DtImGuiLoaderStatsData;
79  class DtImguiHelper;
80  class DtMultiViewData;
81  enum class DtModelSetId;
82 
83 
91  {
92  public:
93  friend class DtSceneGraph;
94  friend class DtOsgRendererCreator;
95  friend class DtSceneGraphTreeLogic;
96 
97  //Render bin definitions.
98  const static int SKY_RENDERBIN = -10;
99  const static int DEFAULT_RENDERBIN = 0;
100  const static int DEPTH_ONLY_RENDERBIN = 5;
101  const static int OCEAN_RENDERBIN = 6;
102  const static int LIGHTPOINT_RENDERBIN = 7;
103  const static int CLOUD_RENDERBIN = 8;
104  const static int DEFAULT_TRANSPARENT_RENDERBIN = 10; // this has to be 10 otherwise everything goes south, the rest are more flexible
105  const static int COCKPIT_RENDERBIN = 25;
106 
107  //Render bin names
108  static const std::string AlphaToCoverageBin;
109  static const std::string SkyBin;
110  static const std::string DepthOnlyBin;
111  static const std::string OceanBin;
112  static const std::string LightPointBin;
113  static const std::string CloudBin;
114  static const std::string CockpitBin;
115 
120  static DtOsgRenderer* findInstance(DtDe& de);
121 
123  virtual ~DtOsgRenderer();
124 
127  virtual void createManagers() override;
128 
131  virtual void cleanup() override;
132 
134  virtual void update();
135 
137  virtual void render();
138 
140  virtual bool viewExists() const;
141 
143  virtual void resetSceneGraph();
144 
147  virtual void removeChannelRoot(DtChannel* channel);
148 
154  virtual bool isSceneRootEmpty(const DtSceneRoot& sr);
155 
157  virtual void addNodeToRoot(osg::Node* node, const DtSceneRoot& sr, bool createOnAccess = true);
158 
160  virtual void addSceneRootToRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot, bool createOnAccess = true);
161 
163  virtual bool removeNodeFromRoot(osg::Node* node, const DtSceneRoot& sr);
164 
167  virtual void removeSceneRootFromRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot);
168 
170  virtual void traverseRoot(osg::NodeVisitor& nv, const DtSceneRoot& sr);
171 
173  virtual void setSceneRootNodeMask(const DtSceneRoot& sr,
174  osg::Node::NodeMask nodemask);
175 
177  virtual osg::Node::NodeMask sceneRootNodeMask(const DtSceneRoot& sr);
178 
180  virtual osg::BoundingSphere sceneRootBound(const DtSceneRoot& sr);
181 
183  virtual osg::BoundingSphere sceneRootListBound(const DtSceneRootList& srList);
184 
186  virtual void addChannelToModelSetRoot(DtModelSetId modelSetId,
187  DtChannel* channel);
188 
190  virtual void removeChannelFromModelSetRoot(DtModelSetId modelSetId,
191  DtChannel* channel);
192 
194  virtual void addChannelToVisualizerRoot(DtModelSetId modelSetId,
195  int visualizerType, DtChannel* channel);
196 
198  virtual void removeChannelFromVisualizerRoot(DtModelSetId modelSetId,
199  int visualizerType, DtChannel* channel);
200 
202  virtual void setSceneDataToRenderRoot(osgViewer::View& view);
203 
205  virtual void addSceneToCamera(osg::Camera* camera);
206 
211  virtual void addSceneRootToNode(const DtSceneRoot& sr,
212  osg::Group* node, bool createOnAccess = true);
213 
219  virtual osg::Group* findSceneRootChildByName(const DtSceneRoot& parent,
220  const std::string& rootName, bool subString = false);
221 
223  virtual bool matchesSceneRoot(const DtSceneRoot& sr, osg::Group* group);
224 
226  virtual void releaseResources()
227  {
228  releaseResources(0);
229  }
230 
232  virtual void releaseResources(osg::State* state);
233 
236  void setRootNode(osg::Group*, bool copyChildrenFromOldRoot);
237 
239  void resetRoot();
240 
243  void registerPagedLODs(osg::Node* node);
244 
247  void clearPagedLODs();
248 
250  virtual void setWireframeRendering(bool enabled);
251 
253  virtual void setDdsFlip(bool flip);
254 
256  virtual bool wireframeRendering() const;
257 
259  virtual void setShadowState(bool enabled);
260 
262  virtual bool shadowsEnabled() const;
263 
264  // ! Get global multiview vr mode
265  virtual bool multiViewVrEnabled() const;
266 
267  // ! Set global multiview vr mode, doesn't actually enable it, just indicates it is enabled
268  virtual void setMultiViewVrEnabled(bool enabled);
269 
270  // ! Get reference to multiview data for specific camera
271  // ! PPP: TO DO MULTI. This function is *not* thread safe
272  virtual DtMultiViewData& getOrCreateMultiViewData(const osg::Camera* camera);
273 
274  // ! Clear all multiview data
275  void clearMultiViewData();
276 
278  void setTerrainScalingEnabled(bool enabled);
279 
281  void setTerrainScaleFactor(double scaleFactor);
282 
285  virtual bool makeContextCurrent();
286 
288  virtual DtFontManagerInterface& fontManager();
289  virtual const DtFontManagerInterface& fontManager() const;
290 
292  DtEffectManager& effectManager();
293  const DtEffectManager& effectManager() const;
294 
295  boost::signalslib::signal< void(DtModelSetId modelSet, int visualType) > signal_visualizerRootAdded;
296  boost::signalslib::signal< void(DtChannel*) > signal_channelRootAdded;
297 
298  boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged;
299  boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged;
300  boost::signalslib::signal< void(bool active) > signal_sensorProfilingChanged;
301 
302  boost::signalslib::signal< void() > signal_shadowsRemoved;
303 
306  boost::signalslib::signal<void(DtOsgCullVisitor* cullVisitor)> signal_preCull;
307 
309  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents);
310 
312  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents, const osg::Quat& orientation);
313 
315  virtual void setChannelShadowState(DtOsgChannel* osgChannel, bool enable);
316 
318  virtual bool channelShadowSettings(DtOsgChannel* osgChannel, DtShadowSettingsObject** shadowSettingObject, bool* isPlanView) const;
319 
321  osg::StateSet* sgRenderRootStateSet();
322 
324  // structure to expedite culling. We need to clear any memory
325  // that this structure caches to decrement reference count of
326  // StateSets (and hence drawables, textures, etc) when scene
327  // changes completely (e.g. on post processor turned off/on)
328  // so that memory can be reclaimed
329  // This helper function accomplishes that
330  void clearStateGraphForAllChannels(void);
331 
335  virtual void preCull(DtOsgCullVisitor* cullVisitor);
336 
338  virtual void addParallelThreadCullJob(osg::Operation * opp);
339 
341  virtual void removeParallelThreadCullJob(osg::Operation* opp);
342 
344  virtual void launchPreCullTasks(DtOsgCullVisitor* cv);
345 
347  virtual int alphaToCoverageRenderBin();
348 
350  virtual void setNewProfilerState(int value);
352  virtual int newProfilerState();
353 
355  virtual bool isLightBin(osg::RenderInfo& renderInfo);
356 
358  virtual bool isDepthBin(osg::RenderInfo& renderInfo);
359 
361  virtual bool isShadowPass(osg::RenderInfo& renderInfo);
362 
363  public:
365  //@ {
366  static DtSceneRoot renderRoot();
367  static DtSceneRoot environmentRoot();
368  static DtSceneRoot terrainRoot();
369  static DtSceneRoot minimapTerrainRoot();
370  static DtSceneRoot minimapFallbackTerrainRoot();
371  static DtSceneRoot propRoot();
372  static DtSceneRoot intersectOnlyPropRoot();
373  static DtSceneRoot oceanRoot();
375  {
377  }
378  static DtSceneRoot normalizedOverlayRoot();
380  {
381  return DtSceneRoot(modelSet);
382  }
383  static DtSceneRoot visualizerTypeRoot(DtModelSetId modelSet, int visualizerType)
384  {
385  return DtSceneRoot(modelSet, visualizerType);
386  }
387  static DtSceneRoot channelRoot(DtModelSetId modelSet, DtChannel* channel)
388  {
389  return DtSceneRoot(modelSet, channel);
390  }
391  //@ }
392 
393  static const std::string& shadowedSceneName(void)
394  {
395  return theShadowedSceneName;
396  }
397 
398 
401  osg::Group* sgRenderRoot();
402 
405  osg::Group* sgEnvironmentRoot();
406 
408  osg::Group* sgPropsRoot();
409 
411  osg::Group* sgIntersectoOnlyPropsRoot();
412 
414  osg::Group* sgTerrainRoot();
415 
417  osg::Group* sgScaledTerrainRoot();
418 
420  osg::Group* sgScaledPropsRoot();
421 
423  osg::Group* sgMinimapTerrainRoot();
424 
426  osg::Group* sgMinimapFallbackTerrainRoot(bool createOnAccess);
427 
429  osg::Group* sgNormalizedOverlayRoot();
430 
432  osg::Group* sgStatic3dDebugRoot();
433 
435  osg::Group* sgOceanRoot();
436 
438  virtual osg::Group* modelSetSpecificShadowRoot(DtModelSetId modelSet);
439 
441  virtual osgShadow::ShadowedScene*
442  modelSetSpecificShadowScene(DtModelSetId modelSet);
443 
446  osg::Group* sgIntersectOnlyRoot(DtModelSetId modelSet);
447 
452  virtual osgViewer::ViewerBase& viewer();
453 
456  virtual void gpuArenaDeleted();
457 
459  virtual const DtGpuArena* gpuArena() const;
460 
462  virtual DtGpuArena* gpuArena();
463 
465  virtual DtImGuiLoaderStatsData* imGuiLoaderStatsData();
466 
468  virtual DtImguiHelper* imGuiHelper();
469 
470 
471 
474  virtual void addIntStat(const std::string& name, int value);
477  virtual void addFloatStat(const std::string& name, float value);
478 
481  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
484  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
485 
487  virtual unsigned int numActiveThreads() const;
488 
490  void advanceTime();
491 
494  static const DtOsgGlTextureListener& osgGlTextureListener(void);
495  protected:
496 
498  virtual void moveRootToShadowRoot(const DtSceneRoot& targetRoot,
499  osg::Group* shadowRoot, osg::Group* modelSetRoot);
500 
501 
504  DtOsgRenderer(DtDe& de);
505 
506  DtOsgRenderer() = delete;
507  DtOsgRenderer(const DtOsgRenderer& rhs) = delete;
508  DtOsgRenderer& operator=(const DtOsgRenderer& rhs) = delete;
509 
510 
516  osg::Group* sgModelSetRoot(DtModelSetId modelSet);
517 
523  osg::Group* sgVisualizerRoot(DtModelSetId modelSet, int visualizerType,
524  bool createOnAccess = true);
525 
531  osg::Group* sgChannelRoot(DtModelSetId modelSet,
532  DtChannel* channel, bool createOnAccess = true);
533 
535  void slot_onViewCreated();
536 
539  void slot_onViewToBeDestroyed();
540 
542  void slot_onWireframeModeChanged(bool mode);
543 
545  void slot_onDdsFlipChanged(bool flip);
546 
548  void slot_onShadowStateChanged(bool shadowMode);
549 
551  void slot_onTerrainScalingEnabledChanged(bool enabled);
552 
554  void slot_onTerrainScaleFactorChanged(double scaleFactor);
555 
557  void slot_onCoordinateSystemChanged(const std::string& coordinateSystemType);
558 
559  void updateSceneGraph();
560 
563  void clearEmptyWindows();
564 
569  void clearFrameBufferIfChannelChanged();
570 
573  virtual void removeShadows();
574 
576  virtual void createShadowRoots();
577 
581  virtual bool exportTerrainAndProps(const std::string&);
582 
583  virtual osg::Group* createModelSetRoot(DtModelSetId modelSet);
584  virtual osg::Group* createVisualizerRoot(DtModelSetId modelSet,
585  int visualizer);
586 
588  virtual osg::Group* createChannelRoot(DtModelSetId modelSet, DtChannel*);
589 
591  virtual osgShadow::ShadowedScene*
592  createModelSetSpecificShadowRootAndScene(DtModelSetId modelSet);
593 
594  virtual void updateTerrainScaling();
595 
596  virtual void initAerodromeManagers();
597  virtual void updateAerodrome();
598 
599  // replace currentChild in all its parents with newChild
600  void swapChildren(osg::Node* currentChild, osg::Node* newChild);
601 
604  void postInitialize();
605 
607  virtual void slot_reloadShader();
608 
610  void setupAtcVirtualProgram();
611 
613  virtual void processBackgroundLoaderIcoTasksIfNecessary(void);
614 
618  virtual int numDatabasePagerThreads(osgViewer::CompositeViewer& viewer) const;
619 
622  virtual bool isNahimicServiceRunning() const;
623 
625  virtual bool isNsightRunning(void) const;
626 
628  virtual DtGpuArena* createGpuArena();
629 
630  protected:
632 
635 
637 
644 
645  // This the top of the render graph
647 
650 
653 
656 
659 
662 
663  // This goes directly below the root, and sets the environment (such as sky)
665 
666  // attached under each modelset root except the minimap modelset root, terrains are placed here
668 
669  // attached under each minimap modelset root, minimap terrains are placed here
671 
672  // attached under each minimap terrain root, terrain/props/ocean root is placed her for when
673  // a minimap terrain patch isn't included in a terrain definition
675 
676  // attached under each modelset root, props are placed here
678 
679  //root for props that should only be intersected and not rendered (indirected)
681 
682  // root for triton
684 
685  // when terrain scaling is enabled, this is placed above the
686  // terrain root
688 
689  // when terrain scaling is enabled, this is placed above the
690  // props root
692 
693  osg::Matrix myScaleMatrix;
694 
695  // shadows and visual type roots are done one per model set
696  typedef std::unordered_map<DtModelSetId, osg::ref_ptr<osg::Group> > RootMap;
697  typedef std::unordered_map<DtModelSetId, osg::ref_ptr<osgShadow::ShadowedScene> > ShadowedSceneMap;
698 
699  typedef int VisualizerType;
700 
701  // There is one group for each model set, which is either an osg::Group
702  // or a DtChannelSpecificGroup
703  typedef std::unordered_map < DtModelSetId, osg::ref_ptr<osg::Group> >
705 
706  typedef std::unordered_map < VisualizerType, osg::ref_ptr<osg::Group> >
708 
712  typedef std::unordered_map < DtModelSetId, VisualizerTypeRootMap >
714 
715 
716  // This is a map of the model set roots. CWhen a channel uses a model set
717  // (or more correctly, when a channel's observer uses a model set) the
718  // channel subscribes to the appropriate one of these
720 
721  //Map to roots that are intersect only on a per model set basis
723 
724 
725  // Under each model set root is a root for each visualizer type. This map
726  // provides another map, by model set, of the roots for each visual type
728 
729  // This is a map of channel roots by model set. Each channel root is a unique
736  typedef std::unordered_map < DtChannel*, ModelSetRootMap >
738 
742 
750 
753 
755  std::map<const osg::Camera*, DtMultiViewData*> myMultiViewData;
756 
760 
766 
769 
773 
775  unsigned int myActiveThreads;
776  protected:
786 
787  static std::string theShadowedSceneName;
788 
790 
792 
794  typedef std::vector<OperationRef> OperationVector;
795 
797 
798  boost::signalslib::connection myPostInitalizeConnection;
799 
801 
802  protected:
806  };
807 
811  {
812  public:
813 
815  virtual DtRenderer* create(DtDe& de);
816  };
817 }
static const std::string LightPointBin
Definition: DtOsgRenderer.h:112
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:722
static DtSceneRoot channelRoot(DtModelSetId 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:387
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:782
static DtSceneRoot visualizerTypeRoot(DtModelSetId 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:383
Definition: DtTaxiwaySignManager.h:40
static const std::string SkyBin
Definition: DtOsgRenderer.h:109
osg::ref_ptr< osg::Group > myDebugRoot
Group for drawing debug graphics, cleared after each frame.
Definition: DtOsgRenderer.h:649
The DtRunwayMarkingManager processes aerodrome data that is streamed in from osgEarth. It uses that data to create and place runway lighting and set up runway selector objects. Most of the lighting implementation may be found in DtOsgRunwayMarkingManager. You can use this base class definition to lookup runway selectors and their associated data by element id (as provided by the DtSelectionManager).
Definition: DtRunwayMarkingManager.h:42
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:90
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:643
boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged
Definition: DtOsgRenderer.h:298
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:741
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:785
std::vector< DtSceneRoot > DtSceneRootList
A list of DtOsgRenderer::SceneRoots.
Definition: DtSceneRoot.h:135
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:744
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:740
std::unordered_map< DtModelSetId, 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:713
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:794
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:762
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:646
virtual void releaseResources()
Release all openGL objects in the scene graph.
Definition: DtOsgRenderer.h:226
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:699
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:779
#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:746
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:739
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:745
DtGpuArena * myGpuArena
system for doing work during cull
Definition: DtOsgRenderer.h:771
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:636
boost::signalslib::signal< void() > signal_shadowsRemoved
Definition: DtOsgRenderer.h:302
static DtOsgGlTextureListener theOsgGlTextureListener
this is purposely static. osg textures can get deleted way after the DtOsgRenderer/DtDe has been dele...
Definition: DtOsgRenderer.h:805
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:674
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:763
osg::ref_ptr< osg::Geode > myDebugBox
Shared geometry for debug boxes.
Definition: DtOsgRenderer.h:658
boost::signalslib::signal< void(bool active) > signal_sensorProfilingChanged
Definition: DtOsgRenderer.h:300
Definition: DtImGuiHelper.h:36
static bool theOsgTextureTrackingInitialized
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:800
std::unordered_map< DtModelSetId, 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:697
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:757
boost::signalslib::signal< void(DtModelSetId modelSet, int visualType) > signal_visualizerRootAdded
Definition: DtOsgRenderer.h:295
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:758
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:791
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:691
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:55
Manages instances of fonts, the font will be kept in memory unless the manager is cleared...
Definition: DtFontManagerInterface.h:25
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:774
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:751
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:727
Manages instances of fonts, the font will be kept in memory unless the manager is cleared...
Definition: DtGLFontManager.h:26
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:743
class that gathers per frame stats and puts up UI
Definition: DtImGuiLoaderStatsData.h:44
Definition: DtLightIndicatorManager.h:36
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:781
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:775
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:778
static const std::string OceanBin
Definition: DtOsgRenderer.h:111
std::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:707
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:777
Abstract index into the scene graph. This is used as an argument to functions which interact with dif...
Definition: DtSceneRoot.h:24
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:764
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:393
std::unordered_map< DtChannel *, ModelSetRootMap > ChannelRootMap
DtChannelSpecificGroup that contains only the channel it represents. This will allow for osg nodes to...
Definition: DtOsgRenderer.h:737
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:667
static DtSceneRoot modelSetRoot(DtModelSetId modelSet)
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:379
boost::signalslib::signal< void(DtChannel *) > signal_channelRootAdded
Definition: DtOsgRenderer.h:296
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:783
Logic for scene graph tree display widget.
Definition: DtSceneGraphTreeLogic.h:234
std::unordered_map< DtModelSetId, 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:696
osg::ref_ptr< osg::Group > myStatic3dDebugRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:655
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:749
static const std::string AlphaToCoverageBin
Definition: DtOsgRenderer.h:108
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:789
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:784
Abstract creator base class.
Definition: DtOsgRenderer.h:810
DtGLFontManager * myFontManager
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:633
std::unordered_map< DtModelSetId, 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:704
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:693
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:747
Definition: DtGpuArena.h:62
Owns and manages OpenSceneGraph windows.
Definition: DtOsgWindowManager.h:34
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:759
The DtRenderer is the component responsible for rendering 3D images onto the screen.
Definition: DtRenderer.h:49
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:755
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:761
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:796
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:664
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:768
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:780
static const std::string DepthOnlyBin
Definition: DtOsgRenderer.h:110
Contains makVrv::DtSceneRoot class.
Base class to provide boost signal/slot management.
Abstract creator base class.
Definition: DtRenderer.h:184
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:793
Contains the DtOsgGlTextureListener class declaration.
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:754
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:670
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:765
boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged
Definition: DtOsgRenderer.h:299
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:719
static const std::string CloudBin
Definition: DtOsgRenderer.h:113
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:683
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:72
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:687
boost::signalslib::signal< void(DtOsgCullVisitor *cullVisitor)> signal_preCull
Signal used to prepare systems for culling. This signal will only be called from the main thread...
Definition: DtOsgRenderer.h:306
static DtSceneRoot intersectOnlyRoot(DtModelSetId modelSet)
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:374
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:787
DtModelSetId
Definition: DtModelSetEnums.h:19
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:634
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:677
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:680
bool myReAddGpuArena
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:772
osg::ref_ptr< osg::Group > myComponentSystemRoot
Group for drawing component systems.
Definition: DtOsgRenderer.h:661
static const std::string CockpitBin
Definition: DtOsgRenderer.h:114
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:767
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:748
osg::ref_ptr< osg::Group > myNormalizedOverlayRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:652
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:752
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:631
boost::signalslib::connection myPostInitalizeConnection
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:798

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)