VR-Forces 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 <unordered_map>
23 #include <map>
24 
25 namespace makVrv
26 {
27  class DtDe;
28 
33  {
34  public:
35  // So the creator can see the protected constructor
37 
39  static DtRadioCommsVisualizationManager& instance( DtDe& de );
40 
43 
47  virtual void findOrCreateAndSelectCommLine( DtModelSetId modelSet,
48  int visualType, const DtCommunicationLine::AttachablePoint& source,
50 
53  virtual void findOrCreateAndSelectSquawkIndicator( DtModelSetId modelSet,
54  int visualType, const DtSquawkIndicator::AttachablePoint& transmitLoc );
55 
57  void setAnimationRate( float rate );
58 
60  void setLifetime( float lifetime );
61 
63  void setStipplePattern( unsigned short stipplePattern );
64 
66  virtual void setStippleRepeatFactor(int repeatFactor);
67 
69  virtual void setColor( float red, float green,
70  float blue, float alpha = 1.0 );
71 
73  virtual void setSenderOffset( const DtVector& offset );
74 
77  virtual void setReceiverOffset( const DtVector& offset );
78 
80 
83 
85  virtual void deleteCommLines();
86 
88  virtual void deleteSquawkIndicators();
89 
91  virtual void deleteCommLinesByModelSet( DtModelSetId modelSet );
92 
94  virtual void deleteSquawkIndicatorsByModelSet( DtModelSetId modelSet );
95 
97 
98  protected:
99 
102 
105 
110  virtual void useCurrentSettings();
111 
114  virtual void slot_displaySettingsChanged();
115 
118  virtual void slot_squawkIndicatorAnimationRateChanged( float rate );
119 
122  virtual void slot_commLineAnimationRateChanged( float rate );
123 
126  virtual void slot_squawkIndicatorLifetimeChanged( float lifetime );
127 
130  virtual void slot_commLineLifetimeChanged( float lifetime );
131 
134  virtual void slot_commLineRenderModeChanged(
136 
139  virtual void slot_greatCircleExaggerationAmountChanged( float amount );
140 
143  virtual void slot_preTick();
144 
145  private:
146 
149 
152 
155 
156  protected:
157 
161  struct CommLineInfo {
162 
164  : myCommunicationLine( line )
165  , myCreationTime( 0 )
166  {}
167 
169 
171 
172  };
173 
178 
180  : mySquawkIndicator( indicator )
181  , myCreationTime( 0 )
182  {}
183 
185 
187 
188  };
189 
194  None
195  };
196 
197  protected:
198 
200 
202  typedef boost::unordered_map<DtUniqueID,SquawkIndicatorInfo> SquawkIndicatorsById;
203 
205  typedef std::map<DtSquawkIndicator::AttachablePoint,SquawkIndicatorInfo> SquawkIndicatorsByLocation;
206 
208  using ModelSetSquawkIndicatorsMap = boost::unordered_map<DtModelSetId,SquawkIndicatorsByLocation> ;
209 
212 
214  using CommLinesById = std::unordered_map<DtUniqueID,CommLineInfo> ;
215 
217  typedef std::pair<DtCommunicationLine::AttachablePoint,DtCommunicationLine::AttachablePoint> CommLineEndpointPair;
218 
220  typedef std::map<CommLineEndpointPair,CommLineInfo> CommLinesByEndpoints;
221 
223  using ModelSetCommLinesMap = std::unordered_map<DtModelSetId,CommLinesByEndpoints> ;
224 
227 
229  typedef boost::unordered_map<DtUniqueID,float> LifetimesMap;
230 
232 
235 
238 
240 
242 
245 
248 
250 
251  };
252 
256  {
257  public:
260 
263 
267  static DtRadioCommsVisualizationManagerCreator& instance(DtDe& de);
268 
270  virtual DtRadioCommsVisualizationManager* create(DtDe&);
271  };
272 
273 }
boost::unordered_map< DtUniqueID, float > LifetimesMap
Map type for mapping comm/squawk line ids to custom lifetimes.
Definition: DtRadioCommsVisualizationManager.h:229
Implements sqawk indicators radiating from an entity.
Definition: DtSquawkIndicator.h:33
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:32
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:247
DtSignalConnectionManager myConnections
Definition: DtRadioCommsVisualizationManager.h:199
CommLinesById myCommLinesMap
Definition: DtRadioCommsVisualizationManager.h:226
double myCreationTime
Definition: DtRadioCommsVisualizationManager.h:170
bool mySquawkIndicatorsEnabledFlag
Definition: DtRadioCommsVisualizationManager.h:243
ModelSetCommLinesMap myModelSetCommLinesMap
Definition: DtRadioCommsVisualizationManager.h:225
std::map< CommLineEndpointPair, CommLineInfo > CommLinesByEndpoints
Map type for mapping a CommLineEndpointPair to the comm line between them.
Definition: DtRadioCommsVisualizationManager.h:220
Definition: DtRadioCommsVisualizationManager.h:192
boost::unordered_map< DtUniqueID, SquawkIndicatorInfo > SquawkIndicatorsById
Map type for mapping indicator ids to squawk indicator info.
Definition: DtRadioCommsVisualizationManager.h:202
LifetimesMap myLifetimesMap
Definition: DtRadioCommsVisualizationManager.h:231
DtBaseRadioVisualization * mySelection
Definition: DtRadioCommsVisualizationManager.h:246
std::unordered_map< DtUniqueID, CommLineInfo > CommLinesById
Map type for mapping comm line ids to comm line information.
Definition: DtRadioCommsVisualizationManager.h:214
std::pair< DtCommunicationLine::AttachablePoint, DtCommunicationLine::AttachablePoint > CommLineEndpointPair
Pair type for storing pairs of attach points as a since endpoint pair.
Definition: DtRadioCommsVisualizationManager.h:217
Contains the DtCommunicationLine class declaration.
float mySquawkIndicatorLifetime
Definition: DtRadioCommsVisualizationManager.h:236
Creator for DtRadioCommsVisualizationManager class.
Definition: DtRadioCommsVisualizationManager.h:255
DtCommunicationLine * myCommunicationLine
Definition: DtRadioCommsVisualizationManager.h:168
bool myCurvedEarthModeFlag
Definition: DtRadioCommsVisualizationManager.h:239
DtDe & myDe
Definition: DtRadioCommsVisualizationManager.h:249
SquawkIndicatorsById mySquawkIndicatorsMap
Definition: DtRadioCommsVisualizationManager.h:211
float myCommLineLifetime
Definition: DtRadioCommsVisualizationManager.h:237
float myCommLineAnimationRate
Definition: DtRadioCommsVisualizationManager.h:234
ModelSetSquawkIndicatorsMap myModelSetSquawkIndicatorsMap
Definition: DtRadioCommsVisualizationManager.h:210
Contains makVrv::DtVirtualBaseClass class.
CommLineInfo(DtCommunicationLine *line)
Definition: DtRadioCommsVisualizationManager.h:163
Manages the creation, animation, and timeout of comm lines and squawk indicators. ...
Definition: DtRadioCommsVisualizationManager.h:32
Contains the DtRadioCommunicationsSettingsManager class declaration.
Stores information about a single squawk indicator. Info includes the indicator itself and the creati...
Definition: DtRadioCommsVisualizationManager.h:177
std::unordered_map< DtModelSetId, CommLinesByEndpoints > ModelSetCommLinesMap
Map type for mapping model set to a CommLinesByEndpoints map.
Definition: DtRadioCommsVisualizationManager.h:223
#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:233
bool myCommLinesEnabledFlag
Definition: DtRadioCommsVisualizationManager.h:244
double myCreationTime
Definition: DtRadioCommsVisualizationManager.h:186
const char * source
Definition: lz4.h:442
SelectionType
Enumeration for type of visualization currently selected.
Definition: DtRadioCommsVisualizationManager.h:191
std::map< DtSquawkIndicator::AttachablePoint, SquawkIndicatorInfo > SquawkIndicatorsByLocation
Map type for mapping attach points to the indicator at that point.
Definition: DtRadioCommsVisualizationManager.h:205
Base class to provide boost signal/slot management.
boost::unordered_map< DtModelSetId, SquawkIndicatorsByLocation > ModelSetSquawkIndicatorsMap
Map type for mapping model set to a SquawkIndicatorsByLocation map.
Definition: DtRadioCommsVisualizationManager.h:208
SquawkIndicatorInfo(DtSquawkIndicator *indicator)
Definition: DtRadioCommsVisualizationManager.h:179
Stores information about a single comm line. Info includes the comm line itself and the creation (las...
Definition: DtRadioCommsVisualizationManager.h:161
DtSquawkIndicator * mySquawkIndicator
Definition: DtRadioCommsVisualizationManager.h:184
Contains makVrv::DtUniqueID type.
Definition: DtRadioCommsVisualizationManager.h:193
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
DtModelSetId
Definition: DtModelSetEnums.h:19
voidpf uLong offset
Definition: ioapi.h:42
float myGreatCircleExaggerationAmount
Definition: DtRadioCommsVisualizationManager.h:241
char * dest
Definition: lz4.h:440
CommLineMode
Definition: DtRadioCommunicationsSettingsRecord.h:23
Contains DLL export macros.

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)