VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCloudLayerManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
18 
19 #include <matrix/vlVector.h>
20 
21 #include <osg/Vec2f>
22 #include <osg/Vec3f>
23 
24 
25 #include <vector>
26 
27 namespace SilverLining
28 {
29  class Atmosphere;
30  class CloudLayer;
31  class ThreadCameraStreamData;
32 }
33 
34 namespace makVrv
35 {
36 
37  typedef std::vector<DtSilverLiningCloudLayer> CloudLayerList;
38 
39  class DtDe;
40  class DtCoordinateSystem;
41 
44 
47 
49  template <>
50  inline const char* creatorTypeName<DtCloudLayerManager>(void) { return "DtCloudLayerManagerCreator"; }
51 
53  {
54  public:
57 
59  virtual ~DtCloudLayerManager();
60 
62  DtCloudLayerManager() = delete;
63 
65  DtCloudLayerManager(const DtCloudLayerManager& rhs) = delete;
66 
68  DtCloudLayerManager& operator=(const DtCloudLayerManager& rhs) = delete;
69 
70  public:
72  virtual const CloudLayerMap& cloudLayerMap() const;
73 
75  virtual CloudLayerMap& cloudLayerMap();
76 
78  virtual CloudLayerList& destroyedLayers();
79 
81  virtual void setAtmosphere(SilverLining::Atmosphere* atmosphere);
82 
84  virtual const SilverLining::Atmosphere* atmosphere(void) const;
85 
87  virtual void clearAllPrecipitation(void);
88 
90  virtual void addPrecipitationToClouds(int type, float mmPerHour, double maxPrecipitationAltitude);
91 
94  virtual void setCloudWindForAllLayers(const osg::Vec2f& windVector);
95 
98  virtual void setCloudLayerWind(const DtCloudLayerId layerId, const osg::Vec2f& windVector);
99 
101  virtual bool removeCloudLayer(DtCloudLayerId layerId);
102 
104  virtual void removeCloudLayers(void);
105 
107  virtual void addLayer(DtCloudLayerId layerId, const DtSilverLiningCloudLayer& layer);
108 
110  virtual void setLayersRealized(bool realized);
111 
113  virtual bool setCloudLayerEnabled(DtCloudLayerId layerId, bool enabled, SilverLining::ThreadCameraStreamData* tcsData, bool setForAll);
114 
116  virtual void realizeCloudLayerPositionAndOrientation(const DtSilverLiningCloudLayer& cloudLayer, SilverLining::CloudLayer* cloudCloudLayer, bool geocentricMode, osg::Vec3f& lastUpVector, SilverLining::ThreadCameraStreamData* tcsData);
117 
119  virtual void setCloudLayerPositionAndOrientation(DtCloudLayerId layerId, const DtVector& position, float orientation, bool geocentricMode, osg::Vec3f& lastUpVector, SilverLining::ThreadCameraStreamData* tcsData, bool setForAll);
120 
122  virtual bool realizeLayer(const DtSilverLiningCloudLayer& layer
123  , bool geocentricMode
124  , bool curveTowardGround
125  , bool hiResCumulus
126  , std::string& originalVoxelDimension
127  , osg::Vec3f& lastUpVector
128  , bool& created
129  , bool& initializedForTcsDataHere
130  , SilverLining::ThreadCameraStreamData* tcsData);
131 
133  virtual bool realizeLayers(
134  bool& relight
135  , bool geocentricMode
136  , bool curveTowardGround
137  , bool hiResCumulus
138  , std::string& originalVoxelDimension
139  , osg::Vec3f& lastUpVector
140  , const osg::Vec2f& windVector
141  , SilverLining::ThreadCameraStreamData* tcsData);
142 
144  virtual void tcsDataDeleted(SilverLining::ThreadCameraStreamData* tcsData);
145 
146  protected:
148  virtual void slot_coordinateSystemChanged();
149 
150 
151  protected:
152 
155 
156  SilverLining::Atmosphere* myAtmosphere;
157 
159 
161 
164  DtCoordinateSystem* myCoordinateSystem = nullptr;
165 
166  };
167 
168 }
SilverLining::Atmosphere * myAtmosphere
Definition: DtCloudLayerManager.h:156
DtSignalConnectionManager myConnections
Definition: DtCloudLayerManager.h:160
Definition: DtSilverLiningCloudLayer.h:28
std::unordered_map< DtCloudLayerId, DtSilverLiningCloudLayer > CloudLayerMap
Definition: DtSilverLiningCloudLayer.h:71
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains makVrv::DtCloudCoverManager class.
CloudLayerMap myLayers
Definition: DtCloudLayerManager.h:153
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtDe & myDe
Definition: DtCloudLayerManager.h:158
DtVirtualBaseClassCreator< DtCloudLayerManager > DtCloudLayerManagerCreator
creator
Definition: DtCloudLayerManager.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::vector< DtSilverLiningCloudLayer > CloudLayerList
Definition: DtCloudLayerManager.h:37
Definition: DtCloudLayerManager.h:52
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
Base class to provide boost signal/slot management.
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
const char * creatorTypeName< DtCloudLayerManager >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtCloudLayerManager.h:50
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:70
CloudLayerList myDestroyedLayers
Definition: DtCloudLayerManager.h:154
Contains makVrv::DtSilverLiningCloudLayer struct.
Definition: vrfObjectManipulationHandlerBaseClass.h:66

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)