VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtLightIndicatorManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/DtDe.h>
12 #include <vrvCore/DtUniqueID.h>
13 #include <vrvOsg/vrvOsg.h>
17 #include <matrix/vlVector.h>
18 #include <osg/Group>
19 #include <boost/unordered_map.hpp>
20 
21 namespace makVrv
22 {
23  class DtOsgArticulatedModel;
24  class DtSceneObject;
25  class DtLightIndicatorSignaler;
26 
29  {
30  std::string apt_icao;
31  std::string runway_num;
32  double heading;
33  std::string light_type;
34  double glide_angle;
36  };
37 
39  // via DtLightIndicatorSignaler
40  class DT_DLL_VRVOSG DtLightIndicatorNode : public osg::Group
41  {
42  public:
43  DtLightIndicatorNode(DtDe& de, DtLightIndicatorData& signData, DtLightIndicatorSignaler& lightIndicatorSignaler);
44 
45  virtual ~DtLightIndicatorNode();
46 
47  public:
51  };
52 
56  {
57  public:
59  static DtLightIndicatorSignaler& instance(DtDe& anIG);
60 
62  virtual ~DtLightIndicatorSignaler();
63 
65  boost::signalslib::signal<void ( DtLightIndicatorData& )> signal_LightIndicatorCreated;
66 
68  boost::signalslib::signal<void ( DtLightIndicatorData& )> signal_LightIndicatorDeleted;
69 
70  protected:
71 
73 
74  };
75 
77  {
78  public:
79 
80  typedef boost::unordered_map<DtUniqueID, DtOsgArticulatedModel* >
82 
83  typedef boost::unordered_map<DtUniqueID, DtSceneObject* >
85 
87  static DtLightIndicatorManager& instance(DtDe& anIG);
88 
90  virtual ~DtLightIndicatorManager();
91 
93  virtual void slot_LightIndicatorCreated(DtLightIndicatorData& lightIndicatorData);
94 
96  virtual void slot_LightIndicatorDestroyed(DtLightIndicatorData& lightIndicatorData);
97 
99  virtual std::size_t hashPos(DtVector& pos);
100 
102  virtual void setModelDefinitionForType(std::string& light_type, const std::string& modelDef);
103 
106  virtual void clearModelDefinitionForType(std::string& light_type);
107 
109  // default is SignLightIndicator
110  virtual void setDefaultModelDefinition(const std::string& modelDef);
111 
114  virtual void updateLightIndicatorManager(const float budgetMs);
115 
118  virtual void createLightIndicator(DtLightIndicatorData& signData);
119 
121  DtVector geodeticToCig(const DtVector& pos) const;
122 
123  public:
124 
125  boost::signalslib::signal<void ( DtLightIndicatorData& )> signal_LightIndicatorDeleted;
126  boost::signalslib::signal<void ( DtLightIndicatorData& )> signal_LightIndicatorCreated;
127 
128  protected:
129 
131 
134  // For creating DtOsgArticulated models on the main thread
136 
138  // The signs are DtOsgArticulatedModels, they are put under a DtSceneObject
139  // so that they work when instancing is off
140  // The DtSceneObject doesn't have the transform, the articulated model does
142 
143  std::map<std::string, std::string> myLightIndicatorModelDefinitions;
145  std::vector<DtLightIndicatorData> myLightIndicatorCreateVector;
146  };
147 }
std::string light_type
Definition: DtLightIndicatorManager.h:33
DtLockedBufferedQueue< DtLightIndicatorData > myLightIndicatorDataLockedQueue
Definition: DtLightIndicatorManager.h:135
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A class which contains the signals used by the DtLightIndicatorManager classes.
Definition: DtLightIndicatorManager.h:55
SceneObjectMap mySceneObjs
Definition: DtLightIndicatorManager.h:141
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
The elements that make up a taxiway sign.
Definition: DtLightIndicatorManager.h:28
double heading
Definition: DtLightIndicatorManager.h:32
Contains makVrv::DtDe class.
std::string apt_icao
Definition: DtLightIndicatorManager.h:30
Contains makVrv::DtLockedBufferedQueue class.
DtDe & myDe
Definition: DtLightIndicatorManager.h:48
Definition: DtLightIndicatorManager.h:76
std::vector< DtLightIndicatorData > myLightIndicatorCreateVector
Definition: DtLightIndicatorManager.h:145
A locked buffered queue which allows multiple writers and a single reader.
Definition: DtLockedBufferedQueue.h:24
Contains makVrv::DtVirtualBaseClass class.
DtVector location
Definition: DtLightIndicatorManager.h:35
double glide_angle
Definition: DtLightIndicatorManager.h:34
std::map< std::string, std::string > myLightIndicatorModelDefinitions
Definition: DtLightIndicatorManager.h:143
std::string myDefaultLightIndicatorModelDefinition
Definition: DtLightIndicatorManager.h:144
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::unordered_map< DtUniqueID, DtOsgArticulatedModel * > LightIndicatorsMap
Definition: DtLightIndicatorManager.h:81
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
boost::signalslib::signal< void(DtLightIndicatorData &)> signal_LightIndicatorCreated
signal when the DtLightIndicatorNode is created
Definition: DtLightIndicatorManager.h:65
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Connect DtAerodromeRenderer with the DtLightIndicatorManager.
Definition: DtLightIndicatorManager.h:40
boost::signalslib::signal< void(DtLightIndicatorData &)> signal_LightIndicatorDeleted
Definition: DtLightIndicatorManager.h:125
LightIndicatorsMap myLightIndicators
Definition: DtLightIndicatorManager.h:137
boost::unordered_map< DtUniqueID, DtSceneObject * > SceneObjectMap
Definition: DtLightIndicatorManager.h:84
boost::signalslib::signal< void(DtLightIndicatorData &)> signal_LightIndicatorCreated
Definition: DtLightIndicatorManager.h:126
DtSignalConnectionManager myConnections
Definition: DtLightIndicatorManager.h:133
DtLightIndicatorSignaler & myLightIndicatorSignaler
Definition: DtLightIndicatorManager.h:50
boost::signalslib::signal< void(DtLightIndicatorData &)> signal_LightIndicatorDeleted
signal when the DtLightIndicatorNode is deleted
Definition: DtLightIndicatorManager.h:68
DtDe & myDe
Definition: DtLightIndicatorManager.h:132
DtLightIndicatorData mySignData
Definition: DtLightIndicatorManager.h:49
std::string runway_num
Definition: DtLightIndicatorManager.h:31

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)