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) 2025 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 DtGlDebugger;
64  class DtOsgChannel;
65  class DtEffectManager;
66  class DtOsgWindowManager;
67  class DtOsgProfilerOverlay;
68  class DtOsgPerformanceStatsOverlay;
69  class DtFastMatrixTransform;
70  class DtSceneGraph;
71  class DtOsgGlobalShaderComponent;
72  class DtOsgCullVisitor;
73  class DtShadowSettingsObject;
74  class DtTaxiwaySignManager;
75  class DtRunwayMarkingManager;
76  class DtGLFontManager;
77  class DtLightIndicatorManager;
78  class DtGpuArena;
79  class DtImGuiLoaderStatsData;
80  class DtImguiHelper;
81  class DtMultiViewData;
82  enum class DtModelSetId;
83 
84 
92  {
93  public:
94  friend class DtSceneGraph;
95  friend class DtOsgRendererCreator;
96  friend class DtSceneGraphTreeLogic;
97 
98  //Render bin definitions.
99  const static int SKY_RENDERBIN = -10;
100  const static int DEFAULT_RENDERBIN = 0;
101  const static int DEPTH_ONLY_RENDERBIN = 5;
102  const static int OCEAN_RENDERBIN = 6;
103  const static int LIGHTPOINT_RENDERBIN = 7;
104  const static int CLOUD_RENDERBIN = 8;
105  const static int DEFAULT_TRANSPARENT_RENDERBIN = 10; // this has to be 10 otherwise everything goes south, the rest are more flexible
106  const static int COCKPIT_RENDERBIN = 25;
107 
108  //Render bin names
109  static const std::string AlphaToCoverageBin;
110  static const std::string SkyBin;
111  static const std::string DepthOnlyBin;
112  static const std::string OceanBin;
113  static const std::string LightPointBin;
114  static const std::string CloudBin;
115  static const std::string CockpitBin;
116 
121  static DtOsgRenderer* findInstance(DtDe& de);
122 
124  virtual ~DtOsgRenderer();
125 
128  virtual void createManagers() override;
129 
132  virtual void cleanup() override;
133 
135  virtual void update();
136 
138  virtual void render();
139 
141  virtual bool viewExists() const;
142 
144  virtual void resetSceneGraph();
145 
148  virtual void removeChannelRoot(DtChannel* channel);
149 
155  virtual bool isSceneRootEmpty(const DtSceneRoot& sr);
156 
158  virtual void addNodeToRoot(osg::Node* node, const DtSceneRoot& sr, bool createOnAccess = true);
159 
161  virtual void addSceneRootToRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot, bool createOnAccess = true);
162 
164  virtual bool removeNodeFromRoot(osg::Node* node, const DtSceneRoot& sr);
165 
168  virtual void removeSceneRootFromRoot(const DtSceneRoot& childRoot, const DtSceneRoot& parentRoot);
169 
171  virtual void traverseRoot(osg::NodeVisitor& nv, const DtSceneRoot& sr);
172 
174  virtual void setSceneRootNodeMask(const DtSceneRoot& sr,
175  osg::Node::NodeMask nodemask);
176 
178  virtual osg::Node::NodeMask sceneRootNodeMask(const DtSceneRoot& sr);
179 
181  virtual osg::BoundingSphere sceneRootBound(const DtSceneRoot& sr);
182 
184  virtual osg::BoundingSphere sceneRootListBound(const DtSceneRootList& srList);
185 
187  virtual void addChannelToModelSetRoot(DtModelSetId modelSetId,
188  DtChannel* channel);
189 
191  virtual void removeChannelFromModelSetRoot(DtModelSetId modelSetId,
192  DtChannel* channel);
193 
195  virtual void addChannelToVisualizerRoot(DtModelSetId modelSetId,
196  int visualizerType, DtChannel* channel);
197 
199  virtual void removeChannelFromVisualizerRoot(DtModelSetId modelSetId,
200  int visualizerType, DtChannel* channel);
201 
203  virtual void setSceneDataToRenderRoot(osgViewer::View& view);
204 
206  virtual void addSceneToCamera(osg::Camera* camera);
207 
212  virtual void addSceneRootToNode(const DtSceneRoot& sr,
213  osg::Group* node, bool createOnAccess = true);
214 
220  virtual osg::Group* findSceneRootChildByName(const DtSceneRoot& parent,
221  const std::string& rootName, bool subString = false);
222 
224  virtual bool matchesSceneRoot(const DtSceneRoot& sr, osg::Group* group);
225 
227  virtual void releaseResources()
228  {
229  releaseResources(0);
230  }
231 
233  virtual void releaseResources(osg::State* state);
234 
237  void setRootNode(osg::Group*, bool copyChildrenFromOldRoot);
238 
240  void resetRoot();
241 
244  void registerPagedLODs(osg::Node* node);
245 
248  void clearPagedLODs();
249 
251  virtual void setWireframeRendering(bool enabled);
252 
254  virtual void setDdsFlip(bool flip);
255 
257  virtual bool wireframeRendering() const;
258 
260  virtual void setShadowState(bool enabled);
261 
263  virtual bool shadowsEnabled() const;
264 
265  // ! Get global multiview vr mode
266  virtual bool multiViewVrEnabled() const;
267 
268  // ! Set global multiview vr mode, doesn't actually enable it, just indicates it is enabled
269  virtual void setMultiViewVrEnabled(bool enabled);
270 
271  // ! Get reference to multiview data for specific camera
272  // ! PPP: TO DO MULTI. This function is *not* thread safe
273  virtual DtMultiViewData& getOrCreateMultiViewData(const osg::Camera* camera);
274 
275  // ! Clear all multiview data
276  void clearMultiViewData();
277 
279  void setTerrainScalingEnabled(bool enabled);
280 
282  void setTerrainScaleFactor(double scaleFactor);
283 
286  virtual bool makeContextCurrent();
287 
289  virtual DtFontManagerInterface& fontManager();
290  virtual const DtFontManagerInterface& fontManager() const;
291 
293  DtEffectManager& effectManager();
294  const DtEffectManager& effectManager() const;
295 
296  boost::signalslib::signal< void(DtModelSetId modelSet, int visualType) > signal_visualizerRootAdded;
297  boost::signalslib::signal< void(DtChannel*) > signal_channelRootAdded;
298 
299  boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged;
300  boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged;
301  boost::signalslib::signal< void(bool active) > signal_sensorProfilingChanged;
302  boost::signalslib::signal< void(bool active) > signal_sensorDebuggingChanged;
303 
304  boost::signalslib::signal< void() > signal_shadowsRemoved;
305 
308  boost::signalslib::signal<void(DtOsgCullVisitor* cullVisitor)> signal_preCull;
309 
311  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents);
312 
314  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents, const osg::Quat& orientation);
315 
317  virtual void setChannelShadowState(DtOsgChannel* osgChannel, bool enable);
318 
320  virtual bool channelShadowSettings(DtOsgChannel* osgChannel, DtShadowSettingsObject** shadowSettingObject, bool* isPlanView) const;
321 
323  osg::StateSet* sgRenderRootStateSet();
324 
326  // structure to expedite culling. We need to clear any memory
327  // that this structure caches to decrement reference count of
328  // StateSets (and hence drawables, textures, etc) when scene
329  // changes completely (e.g. on post processor turned off/on)
330  // so that memory can be reclaimed
331  // This helper function accomplishes that
332  void clearStateGraphForAllChannels(void);
333 
337  virtual void preCull(DtOsgCullVisitor* cullVisitor);
338 
340  virtual void addParallelThreadCullJob(osg::Operation * opp);
341 
343  virtual void removeParallelThreadCullJob(osg::Operation* opp);
344 
346  virtual void launchPreCullTasks(DtOsgCullVisitor* cv);
347 
349  virtual int alphaToCoverageRenderBin();
350 
352  virtual void setNewProfilerState(int value);
354  virtual int newProfilerState();
355 
357  virtual bool isLightBin(osg::RenderInfo& renderInfo);
358 
360  virtual bool isDepthBin(osg::RenderInfo& renderInfo);
361 
363  virtual bool isShadowPass(osg::RenderInfo& renderInfo);
364 
369  virtual bool addDebuggerReference();
370 
373  virtual void removeDebuggerReference();
374 
375  public:
377  //@ {
378  static DtSceneRoot renderRoot();
379  static DtSceneRoot environmentRoot();
380  static DtSceneRoot terrainRoot();
381  static DtSceneRoot minimapTerrainRoot();
382  static DtSceneRoot minimapFallbackTerrainRoot();
383  static DtSceneRoot propRoot();
384  static DtSceneRoot intersectOnlyPropRoot();
385  static DtSceneRoot oceanRoot();
387  {
389  }
390  static DtSceneRoot normalizedOverlayRoot();
392  {
393  return DtSceneRoot(modelSet);
394  }
395  static DtSceneRoot visualizerTypeRoot(DtModelSetId modelSet, int visualizerType)
396  {
397  return DtSceneRoot(modelSet, visualizerType);
398  }
399  static DtSceneRoot channelRoot(DtModelSetId modelSet, DtChannel* channel)
400  {
401  return DtSceneRoot(modelSet, channel);
402  }
403  //@ }
404 
405  static const std::string& shadowedSceneName(void)
406  {
407  return theShadowedSceneName;
408  }
409 
410 
413  osg::Group* sgRenderRoot();
414 
417  osg::Group* sgEnvironmentRoot();
418 
420  osg::Group* sgPropsRoot();
421 
423  osg::Group* sgIntersectoOnlyPropsRoot();
424 
426  osg::Group* sgTerrainRoot();
427 
429  osg::Group* sgScaledTerrainRoot();
430 
432  osg::Group* sgScaledPropsRoot();
433 
435  osg::Group* sgMinimapTerrainRoot();
436 
438  osg::Group* sgMinimapFallbackTerrainRoot(bool createOnAccess);
439 
441  osg::Group* sgNormalizedOverlayRoot();
442 
444  osg::Group* sgStatic3dDebugRoot();
445 
447  osg::Group* sgOceanRoot();
448 
450  virtual osg::Group* modelSetSpecificShadowRoot(DtModelSetId modelSet);
451 
453  virtual osgShadow::ShadowedScene*
454  modelSetSpecificShadowScene(DtModelSetId modelSet);
455 
458  osg::Group* sgIntersectOnlyRoot(DtModelSetId modelSet);
459 
464  virtual osgViewer::ViewerBase& viewer();
465 
468  virtual void gpuArenaDeleted();
469 
471  virtual const DtGpuArena* gpuArena() const;
472 
474  virtual DtGpuArena* gpuArena();
475 
477  virtual DtImGuiLoaderStatsData* imGuiLoaderStatsData();
478 
480  virtual DtImguiHelper* imGuiHelper();
481 
482 
483 
486  virtual void addIntStat(const std::string& name, int value);
489  virtual void addFloatStat(const std::string& name, float value);
490 
493  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
496  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
497 
499  virtual unsigned int numActiveThreads() const;
500 
502  void advanceTime();
503 
506  static const DtOsgGlTextureListener& osgGlTextureListener(void);
507  protected:
508 
510  virtual void moveRootToShadowRoot(const DtSceneRoot& targetRoot,
511  osg::Group* shadowRoot, osg::Group* modelSetRoot);
512 
513 
516  DtOsgRenderer(DtDe& de);
517 
518  DtOsgRenderer() = delete;
519  DtOsgRenderer(const DtOsgRenderer& rhs) = delete;
520  DtOsgRenderer& operator=(const DtOsgRenderer& rhs) = delete;
521 
522 
528  osg::Group* sgModelSetRoot(DtModelSetId modelSet);
529 
535  osg::Group* sgVisualizerRoot(DtModelSetId modelSet, int visualizerType,
536  bool createOnAccess = true);
537 
543  osg::Group* sgChannelRoot(DtModelSetId modelSet,
544  DtChannel* channel, bool createOnAccess = true);
545 
547  void slot_onViewCreated();
548 
551  void slot_onViewToBeDestroyed();
552 
554  void slot_onWireframeModeChanged(bool mode);
555 
557  void slot_onDdsFlipChanged(bool flip);
558 
560  void slot_onShadowStateChanged(bool shadowMode);
561 
563  void slot_onTerrainScalingEnabledChanged(bool enabled);
564 
566  void slot_onTerrainScaleFactorChanged(double scaleFactor);
567 
569  void slot_onCoordinateSystemChanged(const std::string& coordinateSystemType);
570 
571  void updateSceneGraph();
572 
575  void clearEmptyWindows();
576 
584  void performPerRenderChannelOperations();
585 
588  virtual void removeShadows();
589 
591  virtual void createShadowRoots();
592 
596  virtual bool exportTerrainAndProps(const std::string&);
597 
598  virtual osg::Group* createModelSetRoot(DtModelSetId modelSet);
599  virtual osg::Group* createVisualizerRoot(DtModelSetId modelSet,
600  int visualizer);
601 
603  virtual osg::Group* createChannelRoot(DtModelSetId modelSet, DtChannel*);
604 
606  virtual osgShadow::ShadowedScene*
607  createModelSetSpecificShadowRootAndScene(DtModelSetId modelSet);
608 
609  virtual void updateTerrainScaling();
610 
611  virtual void initAerodromeManagers();
612  virtual void updateAerodrome();
613 
614  // replace currentChild in all its parents with newChild
615  void swapChildren(osg::Node* currentChild, osg::Node* newChild);
616 
619  void postInitialize();
620 
622  virtual void slot_reloadShader();
623 
625  void setupAtcVirtualProgram();
626 
628  virtual void processBackgroundLoaderIcoTasksIfNecessary(void);
629 
633  virtual int numDatabasePagerThreads(osgViewer::CompositeViewer& viewer) const;
634 
637  virtual bool isNahimicServiceRunning() const;
638 
640  virtual bool isNsightRunning(void) const;
641 
643  virtual DtGpuArena* createGpuArena();
644 
646  virtual void freeOpenglDebugger();
647 
648  protected:
650 
653 
655 
657 
664 
665  // This the top of the render graph
667 
670 
673 
676 
679 
682 
683  // This goes directly below the root, and sets the environment (such as sky)
685 
686  // attached under each modelset root except the minimap modelset root, terrains are placed here
688 
689  // attached under each minimap modelset root, minimap terrains are placed here
691 
692  // attached under each minimap terrain root, terrain/props/ocean root is placed her for when
693  // a minimap terrain patch isn't included in a terrain definition
695 
696  // attached under each modelset root, props are placed here
698 
699  //root for props that should only be intersected and not rendered (indirected)
701 
702  // root for triton
704 
705  // when terrain scaling is enabled, this is placed above the
706  // terrain root
708 
709  // when terrain scaling is enabled, this is placed above the
710  // props root
712 
713  osg::Matrix myScaleMatrix;
714 
715  // shadows and visual type roots are done one per model set
716  typedef std::unordered_map<DtModelSetId, osg::ref_ptr<osg::Group> > RootMap;
717  typedef std::unordered_map<DtModelSetId, osg::ref_ptr<osgShadow::ShadowedScene> > ShadowedSceneMap;
718 
719  typedef int VisualizerType;
720 
721  // There is one group for each model set, which is either an osg::Group
722  // or a DtChannelSpecificGroup
723  typedef std::unordered_map < DtModelSetId, osg::ref_ptr<osg::Group> >
725 
726  typedef std::unordered_map < VisualizerType, osg::ref_ptr<osg::Group> >
728 
732  typedef std::unordered_map < DtModelSetId, VisualizerTypeRootMap >
734 
735 
736  // This is a map of the model set roots. CWhen a channel uses a model set
737  // (or more correctly, when a channel's observer uses a model set) the
738  // channel subscribes to the appropriate one of these
740 
741  //Map to roots that are intersect only on a per model set basis
743 
744 
745  // Under each model set root is a root for each visualizer type. This map
746  // provides another map, by model set, of the roots for each visual type
748 
749  // This is a map of channel roots by model set. Each channel root is a unique
756  typedef std::unordered_map < DtChannel*, ModelSetRootMap >
758 
762 
770 
773 
775  std::map<const osg::Camera*, DtMultiViewData*> myMultiViewData;
776 
780 
786 
789 
793 
795  unsigned int myActiveThreads;
796 
798 
799  protected:
809 
810  static std::string theShadowedSceneName;
811 
813 
815 
817  typedef std::vector<OperationRef> OperationVector;
818 
820 
821  boost::signalslib::connection myPostInitalizeConnection;
822 
824 
825  protected:
829  };
830 
834  {
835  public:
836 
838  virtual DtRenderer* create(DtDe& de);
839  };
840 }
static const std::string LightPointBin
Definition: DtOsgRenderer.h:113
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:742
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:399
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:805
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:395
Definition: DtTaxiwaySignManager.h:41
static const std::string SkyBin
Definition: DtOsgRenderer.h:110
bool myAtLeastOneChannelAcceptsExternalInput
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:656
osg::ref_ptr< osg::Group > myDebugRoot
Group for drawing debug graphics, cleared after each frame.
Definition: DtOsgRenderer.h:669
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:91
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:663
boost::signalslib::signal< void(bool active) > signal_treeProfilingChanged
Definition: DtOsgRenderer.h:299
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:761
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:808
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:764
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:760
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:733
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:817
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:782
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:666
virtual void releaseResources()
Release all openGL objects in the scene graph.
Definition: DtOsgRenderer.h:227
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:719
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:802
#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:766
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:759
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:765
DtGpuArena * myGpuArena
system for doing work during cull
Definition: DtOsgRenderer.h:791
DtGlDebugger * myOpenglDebugger
Under each model set group is another channel group for each visualizer type. So we have a map of vis...
Definition: DtOsgRenderer.h:797
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:654
boost::signalslib::signal< void() > signal_shadowsRemoved
Definition: DtOsgRenderer.h:304
static DtOsgGlTextureListener theOsgGlTextureListener
this is purposely static. osg textures can get deleted way after the DtOsgRenderer/DtDe has been dele...
Definition: DtOsgRenderer.h:828
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:694
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:783
osg::ref_ptr< osg::Geode > myDebugBox
Shared geometry for debug boxes.
Definition: DtOsgRenderer.h:678
boost::signalslib::signal< void(bool active) > signal_sensorProfilingChanged
Definition: DtOsgRenderer.h:301
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:823
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:717
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:777
boost::signalslib::signal< void(DtModelSetId modelSet, int visualType) > signal_visualizerRootAdded
Definition: DtOsgRenderer.h:296
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:778
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:814
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:711
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:58
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:794
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:771
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:747
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:763
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:804
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:795
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:801
static const std::string OceanBin
Definition: DtOsgRenderer.h:112
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:727
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:800
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:784
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:405
std::unordered_map< DtChannel *, ModelSetRootMap > ChannelRootMap
DtChannelSpecificGroup that contains only the channel it represents. This will allow for osg nodes to...
Definition: DtOsgRenderer.h:757
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:687
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:391
boost::signalslib::signal< void(DtChannel *) > signal_channelRootAdded
Definition: DtOsgRenderer.h:297
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:806
Definition: DtGlDebugger.h:28
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:716
osg::ref_ptr< osg::Group > myStatic3dDebugRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:675
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:769
static const std::string AlphaToCoverageBin
Definition: DtOsgRenderer.h:109
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:812
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:807
boost::signalslib::signal< void(bool active) > signal_sensorDebuggingChanged
Definition: DtOsgRenderer.h:302
Abstract creator base class.
Definition: DtOsgRenderer.h:833
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:651
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:724
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:713
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:767
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:779
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:775
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:781
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:819
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:684
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:788
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:803
static const std::string DepthOnlyBin
Definition: DtOsgRenderer.h:111
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:816
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:774
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:690
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:785
boost::signalslib::signal< void(bool active) > signal_diguyProfilingChanged
Definition: DtOsgRenderer.h:300
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:739
static const std::string CloudBin
Definition: DtOsgRenderer.h:114
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:703
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:76
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:707
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:308
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:386
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:810
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:652
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:697
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:700
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:792
osg::ref_ptr< osg::Group > myComponentSystemRoot
Group for drawing component systems.
Definition: DtOsgRenderer.h:681
static const std::string CockpitBin
Definition: DtOsgRenderer.h:115
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:787
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:768
osg::ref_ptr< osg::Group > myNormalizedOverlayRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:672
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:772
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:649
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:821

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)