VR-Forces 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) 2023 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 DtSilverliningGroup;
42 
45 
48 
50  template <>
51  inline const char* creatorTypeName<DtCloudLayerManager>(void) { return "DtCloudLayerManagerCreator"; }
52 
54  {
55  public:
58 
60  virtual ~DtCloudLayerManager();
61 
63  DtCloudLayerManager() = delete;
64 
66  DtCloudLayerManager(const DtCloudLayerManager& rhs) = delete;
67 
69  DtCloudLayerManager& operator=(const DtCloudLayerManager& rhs) = delete;
70 
71  public:
73  virtual const CloudLayerMap& cloudLayerMap() const;
74 
76  virtual CloudLayerMap& cloudLayerMap();
77 
79  virtual CloudLayerList& destroyedLayers();
80 
82  virtual void clearAllPrecipitation(void);
83 
85  virtual void addPrecipitationToClouds(int type, float mmPerHour, double maxPrecipitationAltitude);
86 
89  virtual void setCloudWindForAllLayers(const Vector2_32& windVector);
90 
93  virtual void setCloudLayerWind(const DtCloudLayerId layerId, const Vector2_32& windVector);
94 
96  virtual bool removeCloudLayer(DtCloudLayerId layerId);
97 
99  virtual void removeCloudLayers(void);
100 
102  virtual void addLayer(DtCloudLayerId layerId, const DtSilverLiningCloudLayer& layer);
103 
105  virtual void setLayersRealized(bool realized);
106 
108  virtual bool setCloudLayerEnabled(DtCloudLayerId layerId, bool enabled, SilverLining::ThreadCameraStreamData* tcsData);
109 
111  virtual void setCloudLayerPositionAndOrientation(DtCloudLayerId layerId, const DtVector& position, float orientation, SilverLining::ThreadCameraStreamData* tcsData
112  , DtSilverLiningGroupTcsUserData* userData);
113 
115  virtual void tcsDataDeleted(SilverLining::ThreadCameraStreamData* tcsData);
116 
119  virtual bool realizeLayers(SilverLining::ThreadCameraStreamData* tcsData
120  , DtSilverLiningGroupTcsUserData* userData);
121 
122  protected:
124  virtual bool realizeLayers(
125  bool& relight
126  , const Vector2_32& windVector
127  , SilverLining::ThreadCameraStreamData* tcsData
128  , DtSilverLiningGroupTcsUserData* userData);
129 
131  virtual bool realizeLayer(const DtSilverLiningCloudLayer& layer
132  , bool& created
133  , bool& initializedForTcsDataHere
134  , SilverLining::ThreadCameraStreamData* tcsData
135  , DtSilverLiningGroupTcsUserData* userData);
136 
138  virtual void realizeCloudLayerPositionAndOrientation(const DtSilverLiningCloudLayer& cloudLayer, SilverLining::CloudLayer* cloudCloudLayer, SilverLining::ThreadCameraStreamData* tcsData
139  , DtSilverLiningGroupTcsUserData* userData);
140 
141  virtual void slot_coordinateSystemChanged();
142 
143  virtual void resetLayers();
144 
145  virtual void destroyLayer(const DtSilverLiningCloudLayer& layer);
146 
147  protected:
148 
151 
153 
154  DtSilverliningGroup* myParent = nullptr;
155 
156  bool myNeedsResetFlag = false;
157 
159  };
160 
161 }
DtSignalConnectionManager myConnections
Definition: DtCloudLayerManager.h:158
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.
This represents per camera, context (tcs) specific data for DtSilverLiningGroup.
Definition: DtSilverLiningGroupTcsUserData.h:46
A group node which adds a silver-lining sky and will light all Children with the proper lighting para...
Definition: DtSilverliningGroup.h:97
CloudLayerMap myLayers
Definition: DtCloudLayerManager.h:149
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtDe & myDe
Definition: DtCloudLayerManager.h:152
DtVirtualBaseClassCreator< DtCloudLayerManager, DtSilverliningGroup * > DtCloudLayerManagerCreator
creator
Definition: DtCloudLayerManager.h:44
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::vector< DtSilverLiningCloudLayer > CloudLayerList
Definition: DtCloudLayerManager.h:37
Definition: DtCloudLayerManager.h:53
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:51
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
CloudLayerList myDestroyedLayers
Definition: DtCloudLayerManager.h:150
Contains makVrv::DtSilverLiningCloudLayer struct.
Definition: vrfObjectManipulationHandlerBaseClass.h:66

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)