VR-Forces 4.8 Class Documentation
 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/ref_ptr>
14 
15 namespace makVrv
16 {
17  class DtDe;
18  class DtInputDriver;
19  class DtObserver;
20 }
21 
22 namespace osgEarth
23 {
24  class MapNode;
25  class ImageLayer;
26  class FeatureModelLayer;
27 }
28 
29 namespace makVrf
30 {
34  {
35  public:
38 
41 
43  static DtEarthLayerVisibilityManager& instance(makVrv::DtDe& de);
44 
46  static void registerInstance(makVrv::DtDe&, DtEarthLayerVisibilityManager*);
47 
49  virtual void setImageLayerVisibleForMode(int layer, bool visible, int mode = -1);
50  virtual void setImageLayerVisibleForMode(const std::string& layerName, bool visible, int mode = -1);
51 
53  virtual void setModelLayerVisibleForMode(int layer, bool visible, int mode = -1);
54  virtual void setModelLayerVisibleForMode(const std::string& layerName, bool visible, int mode = -1);
55 
57  virtual std::vector<bool> imageLayerEnabledStates(int layer) const;
58  virtual std::vector<bool> imageLayerEnabledStates(const std::string& imageLayerName) const;
59 
61  virtual bool imageLayerEnabledState(int layer, int mode) const;
62  virtual bool imageLayerEnabledState(const std::string& imageLayerName, int mode) const;
63 
65  virtual std::vector<bool> modelLayerEnabledStates(int layer) const;
66  virtual std::vector<bool> modelLayerEnabledStates(const std::string& modelLayerName) const;
67 
69  virtual bool modelLayerEnabledState(int layer, int mode) const;
70  virtual bool modelLayerEnabledState(const std::string& modelLayerName, int mode) const;
71 
72  protected:
74  virtual std::string imageLayerName(int) const;
75  virtual int indexOfImageLayer(const std::string&) const;
76 
78  virtual std::string modelLayerName(int) const;
79  virtual int indexOfModelLayer(const std::string&) const;
80 
82  virtual std::string nameFromLayer(const std::string&) const;
83 
86  virtual void setLayerVisibilityState(const std::string& name, bool visible, bool curVisible, int mode) const;
87 
89  virtual void setup();
90 
92  virtual void slot_terrainCleared();
93 
94  virtual std::vector<bool> visibilityStates(const std::string& layerName) const;
95 
96  virtual bool visibilityState(const std::string& layerName, int mode) const;
97 
98  virtual void onCurrentObserverChanged(makVrv::DtInputDriver*, makVrv::DtObserver*);
99  virtual void onObserverAboutToBeDestroyed(makVrv::DtInputDriver*, makVrv::DtObserver*);
100  virtual void onObserverModeChanged(makVrv::DtObserver*, int mode);
101  virtual void setCurrentObserver(makVrv::DtObserver*);
102 
103  virtual void setupLayersBasedOnCurrentObserver();
104 
105  protected:
108 
109  mutable osgEarth::MapNode* myMapNode;
111 
112  typedef std::vector<osg::ref_ptr<osgEarth::ImageLayer> > ImageLayerVector;
114 
115  typedef std::vector<osg::ref_ptr<osgEarth::FeatureModelLayer> > FeatureModelLayerVector;
117  };
118 }
osgEarth::MapNode * myMapNode
Definition: earthLayerVisibilityManager.h:109
makVrv::DtObserver * myCurrentObserver
Definition: earthLayerVisibilityManager.h:110
Virtual base class.
Definition: DtVirtualBaseClass.h:22
std::vector< osg::ref_ptr< osgEarth::ImageLayer > > ImageLayerVector
Definition: earthLayerVisibilityManager.h:112
ImageLayerVector myImageLayers
Definition: earthLayerVisibilityManager.h:113
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
FeatureModelLayerVector myFeatureModelLayers
Definition: earthLayerVisibilityManager.h:116
A facade for a DtObserverObject.
Definition: DtObserver.h:37
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:44
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
makVrv::DtDe & myDe
Definition: earthLayerVisibilityManager.h:106
std::vector< osg::ref_ptr< osgEarth::FeatureModelLayer > > FeatureModelLayerVector
Definition: earthLayerVisibilityManager.h:115
Manages show/hide of image or model layers by stealth view mode.
Definition: earthLayerVisibilityManager.h:33
makVrv::DtSignalConnectionManager mySignals
Definition: earthLayerVisibilityManager.h:107
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.
Definition: DtDe.h:69

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)