VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
earthLayerVisibilityManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
10 #include <vrfGuiCore/vrfGuiCore.h>
13 #include <osg/Referenced>
14 #include <osg/ref_ptr>
15 
16 namespace makVrv
17 {
18  class DtDe;
19  class DtInputDriver;
20  class DtObserver;
21 }
22 
23 namespace osgEarth
24 {
25  class MapNode;
26  class ImageLayer;
27  class FeatureModelLayer;
28 }
29 
30 namespace makVrf
31 {
35  {
36  public:
39 
41  virtual ~DtEarthLayerVisibilityManager() override;
42 
44  static DtEarthLayerVisibilityManager& instance(makVrv::DtDe& de);
45 
47  static void registerInstance(makVrv::DtDe&, DtEarthLayerVisibilityManager*);
48 
50  virtual void setImageLayerVisibleForMode(int layer, bool visible, int mode = -1);
51  virtual void setImageLayerVisibleForMode(const std::string& layerName, bool visible, int mode = -1);
52 
54  virtual void setModelLayerVisibleForMode(int layer, bool visible, int mode = -1);
55  virtual void setModelLayerVisibleForMode(const std::string& layerName, bool visible, int mode = -1);
56 
58  virtual std::vector<bool> imageLayerEnabledStates(int layer) const;
59  virtual std::vector<bool> imageLayerEnabledStates(const std::string& imageLayerName) const;
60 
62  virtual bool imageLayerEnabledState(int layer, int mode) const;
63  virtual bool imageLayerEnabledState(const std::string& imageLayerName, int mode) const;
64 
66  virtual std::vector<bool> modelLayerEnabledStates(int layer) const;
67  virtual std::vector<bool> modelLayerEnabledStates(const std::string& modelLayerName) const;
68 
70  virtual bool modelLayerEnabledState(int layer, int mode) const;
71  virtual bool modelLayerEnabledState(const std::string& modelLayerName, int mode) const;
72 
73  protected:
75  virtual std::string imageLayerName(int) const;
76  virtual int indexOfImageLayer(const std::string&) const;
77 
79  virtual std::string modelLayerName(int) const;
80  virtual int indexOfModelLayer(const std::string&) const;
81 
83  virtual std::string nameFromLayer(const std::string&) const;
84 
87  virtual void setLayerVisibilityState(const std::string& name, bool visible, bool curVisible, int mode) const;
88 
90  virtual void setup();
91 
93  virtual void slot_terrainCleared();
94 
95  virtual std::vector<bool> visibilityStates(const std::string& layerName) const;
96 
97  virtual bool visibilityState(const std::string& layerName, int mode) const;
98 
99  virtual void onCurrentObserverChanged(makVrv::DtInputDriver*, makVrv::DtObserver*);
100  virtual void onObserverAboutToBeDestroyed(makVrv::DtInputDriver*, makVrv::DtObserver*);
101  virtual void onObserverModeChanged(makVrv::DtObserver*, int mode);
102  virtual void setCurrentObserver(makVrv::DtObserver*);
103 
104  virtual void setupLayersBasedOnCurrentObserver();
105 
106  protected:
109 
110  mutable osgEarth::MapNode* myMapNode;
112 
113  typedef std::vector<osg::ref_ptr<osgEarth::ImageLayer> > ImageLayerVector;
115 
116  typedef std::vector<osg::ref_ptr<osgEarth::FeatureModelLayer> > FeatureModelLayerVector;
118  };
119 }
osgEarth::MapNode * myMapNode
Definition: earthLayerVisibilityManager.h:110
makVrv::DtObserver * myCurrentObserver
Definition: earthLayerVisibilityManager.h:111
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::vector< osg::ref_ptr< osgEarth::ImageLayer > > ImageLayerVector
Definition: earthLayerVisibilityManager.h:113
ImageLayerVector myImageLayers
Definition: earthLayerVisibilityManager.h:114
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
FeatureModelLayerVector myFeatureModelLayers
Definition: earthLayerVisibilityManager.h:117
A facade for a DtObserverObject.
Definition: DtObserver.h:38
Contains makVrv::DtVirtualBaseClass class.
This class&#39;s main responsibility is to handle keyboard and mouse events from OSG (Qt events are route...
Definition: DtInputDriver.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtDe & myDe
Definition: earthLayerVisibilityManager.h:107
std::vector< osg::ref_ptr< osgEarth::FeatureModelLayer > > FeatureModelLayerVector
Definition: earthLayerVisibilityManager.h:116
Manages show/hide of image or model layers by stealth view mode. Will change the optional data in the...
Definition: earthLayerVisibilityManager.h:34
makVrv::DtSignalConnectionManager mySignals
Definition: earthLayerVisibilityManager.h:108
Base class to provide boost signal/slot management.
const char int mode
Definition: ioapi.h:38
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

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)