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  boost::signalslib::signal< void(bool active) > signal_sensorDebuggingChanged;
302 
303  boost::signalslib::signal< void() > signal_shadowsRemoved;
304 
307  boost::signalslib::signal<void(DtOsgCullVisitor* cullVisitor)> signal_preCull;
308 
310  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents);
311 
313  virtual void debugDrawBox(const osg::Vec3& center, const osg::Vec3& extents, const osg::Quat& orientation);
314 
316  virtual void setChannelShadowState(DtOsgChannel* osgChannel, bool enable);
317 
319  virtual bool channelShadowSettings(DtOsgChannel* osgChannel, DtShadowSettingsObject** shadowSettingObject, bool* isPlanView) const;
320 
322  osg::StateSet* sgRenderRootStateSet();
323 
325  // structure to expedite culling. We need to clear any memory
326  // that this structure caches to decrement reference count of
327  // StateSets (and hence drawables, textures, etc) when scene
328  // changes completely (e.g. on post processor turned off/on)
329  // so that memory can be reclaimed
330  // This helper function accomplishes that
331  void clearStateGraphForAllChannels(void);
332 
336  virtual void preCull(DtOsgCullVisitor* cullVisitor);
337 
339  virtual void addParallelThreadCullJob(osg::Operation * opp);
340 
342  virtual void removeParallelThreadCullJob(osg::Operation* opp);
343 
345  virtual void launchPreCullTasks(DtOsgCullVisitor* cv);
346 
348  virtual int alphaToCoverageRenderBin();
349 
351  virtual void setNewProfilerState(int value);
353  virtual int newProfilerState();
354 
356  virtual bool isLightBin(osg::RenderInfo& renderInfo);
357 
359  virtual bool isDepthBin(osg::RenderInfo& renderInfo);
360 
362  virtual bool isShadowPass(osg::RenderInfo& renderInfo);
363 
364  public:
366  //@ {
367  static DtSceneRoot renderRoot();
368  static DtSceneRoot environmentRoot();
369  static DtSceneRoot terrainRoot();
370  static DtSceneRoot minimapTerrainRoot();
371  static DtSceneRoot minimapFallbackTerrainRoot();
372  static DtSceneRoot propRoot();
373  static DtSceneRoot intersectOnlyPropRoot();
374  static DtSceneRoot oceanRoot();
376  {
378  }
379  static DtSceneRoot normalizedOverlayRoot();
381  {
382  return DtSceneRoot(modelSet);
383  }
384  static DtSceneRoot visualizerTypeRoot(DtModelSetId modelSet, int visualizerType)
385  {
386  return DtSceneRoot(modelSet, visualizerType);
387  }
388  static DtSceneRoot channelRoot(DtModelSetId modelSet, DtChannel* channel)
389  {
390  return DtSceneRoot(modelSet, channel);
391  }
392  //@ }
393 
394  static const std::string& shadowedSceneName(void)
395  {
396  return theShadowedSceneName;
397  }
398 
399 
402  osg::Group* sgRenderRoot();
403 
406  osg::Group* sgEnvironmentRoot();
407 
409  osg::Group* sgPropsRoot();
410 
412  osg::Group* sgIntersectoOnlyPropsRoot();
413 
415  osg::Group* sgTerrainRoot();
416 
418  osg::Group* sgScaledTerrainRoot();
419 
421  osg::Group* sgScaledPropsRoot();
422 
424  osg::Group* sgMinimapTerrainRoot();
425 
427  osg::Group* sgMinimapFallbackTerrainRoot(bool createOnAccess);
428 
430  osg::Group* sgNormalizedOverlayRoot();
431 
433  osg::Group* sgStatic3dDebugRoot();
434 
436  osg::Group* sgOceanRoot();
437 
439  virtual osg::Group* modelSetSpecificShadowRoot(DtModelSetId modelSet);
440 
442  virtual osgShadow::ShadowedScene*
443  modelSetSpecificShadowScene(DtModelSetId modelSet);
444 
447  osg::Group* sgIntersectOnlyRoot(DtModelSetId modelSet);
448 
453  virtual osgViewer::ViewerBase& viewer();
454 
457  virtual void gpuArenaDeleted();
458 
460  virtual const DtGpuArena* gpuArena() const;
461 
463  virtual DtGpuArena* gpuArena();
464 
466  virtual DtImGuiLoaderStatsData* imGuiLoaderStatsData();
467 
469  virtual DtImguiHelper* imGuiHelper();
470 
471 
472 
475  virtual void addIntStat(const std::string& name, int value);
478  virtual void addFloatStat(const std::string& name, float value);
479 
482  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
485  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
486 
488  virtual unsigned int numActiveThreads() const;
489 
491  void advanceTime();
492 
495  static const DtOsgGlTextureListener& osgGlTextureListener(void);
496  protected:
497 
499  virtual void moveRootToShadowRoot(const DtSceneRoot& targetRoot,
500  osg::Group* shadowRoot, osg::Group* modelSetRoot);
501 
502 
505  DtOsgRenderer(DtDe& de);
506 
507  DtOsgRenderer() = delete;
508  DtOsgRenderer(const DtOsgRenderer& rhs) = delete;
509  DtOsgRenderer& operator=(const DtOsgRenderer& rhs) = delete;
510 
511 
517  osg::Group* sgModelSetRoot(DtModelSetId modelSet);
518 
524  osg::Group* sgVisualizerRoot(DtModelSetId modelSet, int visualizerType,
525  bool createOnAccess = true);
526 
532  osg::Group* sgChannelRoot(DtModelSetId modelSet,
533  DtChannel* channel, bool createOnAccess = true);
534 
536  void slot_onViewCreated();
537 
540  void slot_onViewToBeDestroyed();
541 
543  void slot_onWireframeModeChanged(bool mode);
544 
546  void slot_onDdsFlipChanged(bool flip);
547 
549  void slot_onShadowStateChanged(bool shadowMode);
550 
552  void slot_onTerrainScalingEnabledChanged(bool enabled);
553 
555  void slot_onTerrainScaleFactorChanged(double scaleFactor);
556 
558  void slot_onCoordinateSystemChanged(const std::string& coordinateSystemType);
559 
560  void updateSceneGraph();
561 
564  void clearEmptyWindows();
565 
570  void clearFrameBufferIfChannelChanged();
571 
574  virtual void removeShadows();
575 
577  virtual void createShadowRoots();
578 
582  virtual bool exportTerrainAndProps(const std::string&);
583 
584  virtual osg::Group* createModelSetRoot(DtModelSetId modelSet);
585  virtual osg::Group* createVisualizerRoot(DtModelSetId modelSet,
586  int visualizer);
587 
589  virtual osg::Group* createChannelRoot(DtModelSetId modelSet, DtChannel*);
590 
592  virtual osgShadow::ShadowedScene*
593  createModelSetSpecificShadowRootAndScene(DtModelSetId modelSet);
594 
595  virtual void updateTerrainScaling();
596 
597  virtual void initAerodromeManagers();
598  virtual void updateAerodrome();
599 
600  // replace currentChild in all its parents with newChild
601  void swapChildren(osg::Node* currentChild, osg::Node* newChild);
602 
605  void postInitialize();
606 
608  virtual void slot_reloadShader();
609 
611  void setupAtcVirtualProgram();
612 
614  virtual void processBackgroundLoaderIcoTasksIfNecessary(void);
615 
619  virtual int numDatabasePagerThreads(osgViewer::CompositeViewer& viewer) const;
620 
623  virtual bool isNahimicServiceRunning() const;
624 
626  virtual bool isNsightRunning(void) const;
627 
629  virtual DtGpuArena* createGpuArena();
630 
631  protected:
633 
636 
638 
645 
646  // This the top of the render graph
648 
651 
654 
657 
660 
663 
664  // This goes directly below the root, and sets the environment (such as sky)
666 
667  // attached under each modelset root except the minimap modelset root, terrains are placed here
669 
670  // attached under each minimap modelset root, minimap terrains are placed here
672 
673  // attached under each minimap terrain root, terrain/props/ocean root is placed her for when
674  // a minimap terrain patch isn't included in a terrain definition
676 
677  // attached under each modelset root, props are placed here
679 
680  //root for props that should only be intersected and not rendered (indirected)
682 
683  // root for triton
685 
686  // when terrain scaling is enabled, this is placed above the
687  // terrain root
689 
690  // when terrain scaling is enabled, this is placed above the
691  // props root
693 
694  osg::Matrix myScaleMatrix;
695 
696  // shadows and visual type roots are done one per model set
697  typedef std::unordered_map<DtModelSetId, osg::ref_ptr<osg::Group> > RootMap;
698  typedef std::unordered_map<DtModelSetId, osg::ref_ptr<osgShadow::ShadowedScene> > ShadowedSceneMap;
699 
700  typedef int VisualizerType;
701 
702  // There is one group for each model set, which is either an osg::Group
703  // or a DtChannelSpecificGroup
704  typedef std::unordered_map < DtModelSetId, osg::ref_ptr<osg::Group> >
706 
707  typedef std::unordered_map < VisualizerType, osg::ref_ptr<osg::Group> >
709 
713  typedef std::unordered_map < DtModelSetId, VisualizerTypeRootMap >
715 
716 
717  // This is a map of the model set roots. CWhen a channel uses a model set
718  // (or more correctly, when a channel's observer uses a model set) the
719  // channel subscribes to the appropriate one of these
721 
722  //Map to roots that are intersect only on a per model set basis
724 
725 
726  // Under each model set root is a root for each visualizer type. This map
727  // provides another map, by model set, of the roots for each visual type
729 
730  // This is a map of channel roots by model set. Each channel root is a unique
737  typedef std::unordered_map < DtChannel*, ModelSetRootMap >
739 
743 
751 
754 
756  std::map<const osg::Camera*, DtMultiViewData*> myMultiViewData;
757 
761 
767 
770 
774 
776  unsigned int myActiveThreads;
777  protected:
787 
788  static std::string theShadowedSceneName;
789 
791 
793 
795  typedef std::vector<OperationRef> OperationVector;
796 
798 
799  boost::signalslib::connection myPostInitalizeConnection;
800 
802 
803  protected:
807  };
808 
812  {
813  public:
814 
816  virtual DtRenderer* create(DtDe& de);
817  };
818 }
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:723
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:388
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:783
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:384
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:650
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:644
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:742
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:786
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:745
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:741
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:714
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:795
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:763
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:647
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:700
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:780
#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:747
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:740
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:746
DtGpuArena * myGpuArena
system for doing work during cull
Definition: DtOsgRenderer.h:772
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:637
boost::signalslib::signal< void() > signal_shadowsRemoved
Definition: DtOsgRenderer.h:303
static DtOsgGlTextureListener theOsgGlTextureListener
this is purposely static. osg textures can get deleted way after the DtOsgRenderer/DtDe has been dele...
Definition: DtOsgRenderer.h:806
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:675
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:764
osg::ref_ptr< osg::Geode > myDebugBox
Shared geometry for debug boxes.
Definition: DtOsgRenderer.h:659
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:801
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:698
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:758
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:759
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:792
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:692
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:775
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:752
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:728
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:744
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:782
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:776
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:779
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:708
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:778
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:765
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:394
std::unordered_map< DtChannel *, ModelSetRootMap > ChannelRootMap
DtChannelSpecificGroup that contains only the channel it represents. This will allow for osg nodes to...
Definition: DtOsgRenderer.h:738
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:668
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:380
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:784
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:697
osg::ref_ptr< osg::Group > myStatic3dDebugRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:656
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:750
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:790
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:785
boost::signalslib::signal< void(bool active) > signal_sensorDebuggingChanged
Definition: DtOsgRenderer.h:301
Abstract creator base class.
Definition: DtOsgRenderer.h:811
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:634
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:705
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:694
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:748
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:760
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:756
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:762
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:797
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:665
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:769
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:781
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:794
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:755
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:671
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:766
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:720
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:684
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:688
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:307
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:375
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:788
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:635
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:678
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:681
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:773
osg::ref_ptr< osg::Group > myComponentSystemRoot
Group for drawing component systems.
Definition: DtOsgRenderer.h:662
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:768
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:749
osg::ref_ptr< osg::Group > myNormalizedOverlayRoot
Group for drawing debug graphics left alone each frame.
Definition: DtOsgRenderer.h:653
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:753
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:632
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:799

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)