VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRadioCommsVisualizationManager.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 
12 #include <vrvCore/vrvCore.h>
13 
14 #include <vrvCore/DtUniqueID.h>
18 
21 
22 #include <boost/unordered_map.hpp>
23 
24 #include <map>
25 
26 namespace makVrv
27 {
28  class DtDe;
29 
34  {
35  public:
36  // So the creator can see the protected constructor
38 
40  static DtRadioCommsVisualizationManager& instance( DtDe& de );
41 
44 
48  virtual void findOrCreateAndSelectCommLine( int modelSet,
49  int visualType, const DtCommunicationLine::AttachablePoint& source,
51 
54  virtual void findOrCreateAndSelectSquawkIndicator( int modelSet,
55  int visualType, const DtSquawkIndicator::AttachablePoint& transmitLoc );
56 
58  void setAnimationRate( float rate );
59 
61  void setLifetime( float lifetime );
62 
64  void setStipplePattern( unsigned short stipplePattern );
65 
67  virtual void setStippleRepeatFactor(int repeatFactor);
68 
70  virtual void setColor( float red, float green,
71  float blue, float alpha = 1.0 );
72 
74  virtual void setSenderOffset( const DtVector& offset );
75 
78  virtual void setReceiverOffset( const DtVector& offset );
79 
81 
84 
86  virtual void deleteCommLines();
87 
89  virtual void deleteSquawkIndicators();
90 
92  virtual void deleteCommLinesByModelSet( int modelSet );
93 
95  virtual void deleteSquawkIndicatorsByModelSet( int modelSet );
96 
98 
99  protected:
100 
103 
106 
111  virtual void useCurrentSettings();
112 
115  virtual void slot_displaySettingsChanged();
116 
119  virtual void slot_squawkIndicatorAnimationRateChanged( float rate );
120 
123  virtual void slot_commLineAnimationRateChanged( float rate );
124 
127  virtual void slot_squawkIndicatorLifetimeChanged( float lifetime );
128 
131  virtual void slot_commLineLifetimeChanged( float lifetime );
132 
135  virtual void slot_commLineRenderModeChanged(
137 
140  virtual void slot_greatCircleExaggerationAmountChanged( float amount );
141 
144  virtual void slot_preTick();
145 
146  private:
147 
150 
153 
156 
157  protected:
158 
162  struct CommLineInfo {
163 
165  : myCommunicationLine( line )
166  , myCreationTime( 0 )
167  {}
168 
170 
172 
173  };
174 
179 
181  : mySquawkIndicator( indicator )
182  , myCreationTime( 0 )
183  {}
184 
186 
188 
189  };
190 
195  None
196  };
197 
198  protected:
199 
201 
203  typedef boost::unordered_map<DtUniqueID,SquawkIndicatorInfo> SquawkIndicatorsById;
204 
206  typedef std::map<DtSquawkIndicator::AttachablePoint,SquawkIndicatorInfo> SquawkIndicatorsByLocation;
207 
209  typedef boost::unordered_map<int,SquawkIndicatorsByLocation> ModelSetSquawkIndicatorsMap;
210 
213 
215  typedef boost::unordered_map<DtUniqueID,CommLineInfo> CommLinesById;
216 
218  typedef std::pair<DtCommunicationLine::AttachablePoint,DtCommunicationLine::AttachablePoint> CommLineEndpointPair;
219 
221  typedef std::map<CommLineEndpointPair,CommLineInfo> CommLinesByEndpoints;
222 
224  typedef boost::unordered_map<int,CommLinesByEndpoints> ModelSetCommLinesMap;
225 
228 
230  typedef boost::unordered_map<DtUniqueID,float> LifetimesMap;
231 
233 
236 
239 
241 
243 
246 
249 
251 
252  };
253 
257  {
258  public:
261 
264 
268  static DtRadioCommsVisualizationManagerCreator& instance(DtDe& de);
269 
271  virtual DtRadioCommsVisualizationManager* create(DtDe&);
272  };
273 
274 }
boost::unordered_map< DtUniqueID, float > LifetimesMap
Map type for mapping comm/squawk line ids to custom lifetimes.
Definition: DtRadioCommsVisualizationManager.h:230
Implements sqawk indicators radiating from an entity.
Definition: DtSquawkIndicator.h:32
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Common interface for communication lines and squawk indicators.
Definition: DtBaseRadioVisualization.h:23
Encapsulates a communication line between two entities or myFixedFlag points in space.
Definition: DtCommunicationLine.h:31
Defines an attachable point for a squawk indicator or comm line endpoint. May be an entity or a fixed...
Definition: DtBaseRadioVisualization.h:30
SelectionType mySelectionType
Definition: DtRadioCommsVisualizationManager.h:248
DtSignalConnectionManager myConnections
Definition: DtRadioCommsVisualizationManager.h:200
CommLinesById myCommLinesMap
Definition: DtRadioCommsVisualizationManager.h:227
double myCreationTime
Definition: DtRadioCommsVisualizationManager.h:171
bool mySquawkIndicatorsEnabledFlag
Definition: DtRadioCommsVisualizationManager.h:244
ModelSetCommLinesMap myModelSetCommLinesMap
Definition: DtRadioCommsVisualizationManager.h:226
std::map< CommLineEndpointPair, CommLineInfo > CommLinesByEndpoints
Map type for mapping a CommLineEndpointPair to the comm line between them.
Definition: DtRadioCommsVisualizationManager.h:221
Definition: DtRadioCommsVisualizationManager.h:193
boost::unordered_map< DtUniqueID, SquawkIndicatorInfo > SquawkIndicatorsById
Map type for mapping indicator ids to squawk indicator info.
Definition: DtRadioCommsVisualizationManager.h:203
LifetimesMap myLifetimesMap
Definition: DtRadioCommsVisualizationManager.h:232
DtBaseRadioVisualization * mySelection
Definition: DtRadioCommsVisualizationManager.h:247
std::pair< DtCommunicationLine::AttachablePoint, DtCommunicationLine::AttachablePoint > CommLineEndpointPair
Pair type for storing pairs of attach points as a since endpoint pair.
Definition: DtRadioCommsVisualizationManager.h:218
Contains the DtCommunicationLine class declaration.
float mySquawkIndicatorLifetime
Definition: DtRadioCommsVisualizationManager.h:237
Creator for DtRadioCommsVisualizationManager class.
Definition: DtRadioCommsVisualizationManager.h:256
DtCommunicationLine * myCommunicationLine
Definition: DtRadioCommsVisualizationManager.h:169
bool myCurvedEarthModeFlag
Definition: DtRadioCommsVisualizationManager.h:240
DtDe & myDe
Definition: DtRadioCommsVisualizationManager.h:250
SquawkIndicatorsById mySquawkIndicatorsMap
Definition: DtRadioCommsVisualizationManager.h:212
float myCommLineLifetime
Definition: DtRadioCommsVisualizationManager.h:238
float myCommLineAnimationRate
Definition: DtRadioCommsVisualizationManager.h:235
ModelSetSquawkIndicatorsMap myModelSetSquawkIndicatorsMap
Definition: DtRadioCommsVisualizationManager.h:211
Contains makVrv::DtVirtualBaseClass class.
CommLineInfo(DtCommunicationLine *line)
Definition: DtRadioCommsVisualizationManager.h:164
Manages the creation, animation, and timeout of comm lines and squawk indicators. ...
Definition: DtRadioCommsVisualizationManager.h:33
Contains the DtRadioCommunicationsSettingsManager class declaration.
Stores information about a single squawk indicator. Info includes the indicator itself and the creati...
Definition: DtRadioCommsVisualizationManager.h:178
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains the makVrv::DtSquawkIndicator class declaration.
float mySquawkIndicatorAnimationRate
Definition: DtRadioCommsVisualizationManager.h:234
bool myCommLinesEnabledFlag
Definition: DtRadioCommsVisualizationManager.h:245
double myCreationTime
Definition: DtRadioCommsVisualizationManager.h:187
const char * source
Definition: lz4.h:442
boost::unordered_map< DtUniqueID, CommLineInfo > CommLinesById
Map type for mapping comm line ids to comm line information.
Definition: DtRadioCommsVisualizationManager.h:215
SelectionType
Enumeration for type of visualization currently selected.
Definition: DtRadioCommsVisualizationManager.h:192
std::map< DtSquawkIndicator::AttachablePoint, SquawkIndicatorInfo > SquawkIndicatorsByLocation
Map type for mapping attach points to the indicator at that point.
Definition: DtRadioCommsVisualizationManager.h:206
boost::unordered_map< int, SquawkIndicatorsByLocation > ModelSetSquawkIndicatorsMap
Map type for mapping model set to a SquawkIndicatorsByLocation map.
Definition: DtRadioCommsVisualizationManager.h:209
Base class to provide boost signal/slot management.
SquawkIndicatorInfo(DtSquawkIndicator *indicator)
Definition: DtRadioCommsVisualizationManager.h:180
Stores information about a single comm line. Info includes the comm line itself and the creation (las...
Definition: DtRadioCommsVisualizationManager.h:162
DtSquawkIndicator * mySquawkIndicator
Definition: DtRadioCommsVisualizationManager.h:185
Contains makVrv::DtUniqueID type.
Definition: DtRadioCommsVisualizationManager.h:194
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
voidpf uLong offset
Definition: ioapi.h:42
float myGreatCircleExaggerationAmount
Definition: DtRadioCommsVisualizationManager.h:242
boost::unordered_map< int, CommLinesByEndpoints > ModelSetCommLinesMap
Map type for mapping model set to a CommLinesByEndpoints map.
Definition: DtRadioCommsVisualizationManager.h:224
char * dest
Definition: lz4.h:440
CommLineMode
Definition: DtRadioCommunicationsSettingsRecord.h:23
Contains DLL export macros.

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)