VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOverlaySpiderWebModel.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 <vrvCore/vrvCore.h>
13 #include <vrvCore/DtModel.h>
14 #include <vrvCore/DtUniqueID.h>
18 
20 
22 
23 #include <matrix/vlDcm.h>
24 
25 namespace makVrv
26 {
27 
28  class DtDe;
29 
74  {
75  public:
76 
78  {
79  North,
80  Orientation,
81  Distance
82  };
83 
84  public:
85 
88 
90  DtOverlaySpiderWebModel() = delete;
91 
94 
96  DtOverlaySpiderWebModel& operator=(const DtOverlaySpiderWebModel&) = delete;
97 
99  virtual ~DtOverlaySpiderWebModel();
100 
101  public:
103  virtual void setModelDefinition(const std::string& str);
104 
107 
109  // @{
110  virtual void setPosition(const DtVector& position);
111  virtual DtVector position() const;
112 
114  virtual void setPosition(int vtx, const DtVector& position) override;
115  // @}
116 
119  // @{
120  virtual void setOrientation(const DtTaitBryan& orientation);
121  virtual DtTaitBryan orientation() const;
122  // @}
123 
126  // @{
127  virtual void setHeading(float heading);
128  virtual float heading() const;
129  // @}
130 
132  // @{
133  virtual void setMaxAngleSegment(double angleSegmentMax);
134  virtual double maxAngleSegment() const;
135  // @}
136 
138  // @{
139  virtual void setRadius(double x);
140  virtual double radius() const;
141  // @}
142 
144  // @{
145  virtual void setScale(float scale);
146  virtual float scale() const;
147  // @}
148 
150  // @{
151  virtual void setVisible(bool isVisible);
152  virtual bool isVisible() const;
153  // @}
154 
156  // @{
157  virtual void setNumberOfSpokes(unsigned int numSpokes);
158  virtual unsigned int numberOfSpokes() const;
159  // @}
160 
164  // @{
165  virtual void setNumberOfRings(unsigned int numRings);
166  virtual unsigned int numberOfRings() const;
167  // @}
168 
170  // @{
171  virtual void setIsInnerRingFilled(bool filled);
172  virtual bool isInnerRingFilled() const;
173  // @}
174 
178  // @{
179  virtual void setRingIntervalDistance(double interval);
180  virtual double ringIntervalDistance() const;
181  // @}
182 
184  // @{
185  virtual void setLineStipplePattern(unsigned int stipplePattern);
186  virtual unsigned int lineStipplePattern() const;
187  // @}
188 
190  // @{
191  virtual void setLineWidth(float width);
192  virtual float lineWidth() const;
193  // @}
194 
197  // @{
198  virtual void setColor(float r, float g, float b, float a);
199  virtual bool getColor(float& r, float& g, float& b, float& a) const;
200  // @}
201 
204  // @{
205  virtual void setOpacity(float opacity);
206  virtual float opacity() const;
207  // @}
208 
210  // @{
211  virtual void setEventsEnabled(bool enabled);
212  virtual bool eventsEnabled() const;
213  // @}
214 
217  // @{
218  virtual void setListenToNorthDisplayUnitSettings(bool listenToNorthUnitToUse);
219  virtual bool listenToNorthDisplayUnitSettings() const;
220  // @}
221 
224  // @{
225  virtual void setListenToOrientationDisplayUnitSettings(bool listenToOrientationUnitToUse);
226  virtual bool listenToOrientationDisplayUnitSettings() const;
227  // @}
228 
231  // @{
232  virtual void setListenToDistanceDisplayUnitSettings(bool listenToDistanceUnitToUse);
233  virtual bool listenToDistanceDisplayUnitSettings() const;
234  // @}
235 
240  // @{
241  virtual void setGroup(int groupNum);
242  virtual int group() const;
243  // @}
244 
249  // @{
250  virtual void setIsDecorated(bool isDecorated);
251  virtual bool isDecorated() const;
252  // @}
253 
255  // @{
256  virtual void setFontFile(std::string fontFile);
257  virtual std::string fontFile() const;
258  // @}
259 
261  // @{
262  virtual void setFontPointSize(float pointSize);
263  virtual float fontPointSize() const;
264  // @}
265 
267  // @{
268  virtual void setFontColor(float r, float g, float b, float a);
269  virtual bool getFontColor(float& r, float& g, float& b, float& a) const;
270  // @}
271 
274  // @{
275  virtual void setDistanceUnit(DtSharedDisplayUnitsSettings::DistanceUnits unit);
276  virtual DtSharedDisplayUnitsSettings::DistanceUnits distanceUnit() const;
277  // @}
278 
281  // @{
282  virtual void setDistanceDecimals(unsigned int decimals);
283  virtual unsigned int distanceDecimals() const;
284  // @}
285 
288  // @{
289  virtual void setOrientationUnit(DtSharedDisplayUnitsSettings::OrientationUnits unit);
290  virtual DtSharedDisplayUnitsSettings::OrientationUnits orientationUnit() const;
291  // @}
292 
295  // @{
296  virtual void setOrientationDecimals(unsigned int decimals);
297  virtual unsigned int orientationDecimals() const;
298  // @}
299 
302  // @{
303  virtual void setNorthUnit(DtSharedDisplayUnitsSettings::NorthUnits unit);
304  virtual DtSharedDisplayUnitsSettings::NorthUnits northUnit() const;
305  // @}
306 
312  virtual void setAltitudeBasedConfigurations(
314 
317  virtual void clearAltitudeBasedConfigurations();
318 
321  virtual void setLodOutAltitude(double lodOutAltitude);
322 
326  virtual void setIsLodOutAltitudeEnabled(bool isLodOutAltitudeEnabled);
327 
329 
330  protected:
331 
332  // @name Inherited DtModel methods
333  // @{
334 
336  virtual void addToScene(const DtUniqueID& sceneObjectId, DtModelSetId modelSet, int visualizerType);
337 
339  virtual void removeFromScene();
340 
344  virtual void setIsSupportModel(bool isSupport);
345 
346  // @}
347 
349  virtual bool listenToDisplayUnitSignals() const;
350 
352  virtual void setOverlay(unsigned int overlayId);
353 
355  virtual void update();
356 
357  // Update the spider web vertices based on attributes
358  virtual void render();
359 
362  virtual void recreateSpiderWeb();
363 
365  virtual void createSpiderWebIfNecessary();
366 
368  virtual void deleteSpiderWeb();
369 
371  virtual void updateColors();
372 
374  virtual void updateAltitudeBasedConfigurationsForLabels();
375 
377  virtual void set3DPositionAux(double x, double y, double z, float tempPackedCoords[4]);
378 
380  virtual void setSpokeVertexPosition(unsigned int spokeIndex, unsigned int vertexIndex, double x, double y, double z);
381 
383  virtual void setRingVertexPosition(unsigned int ringIndex, unsigned int vertexIndex, double x, double y, double z);
384 
386  virtual void setLabelPosition(unsigned int labelIndex, double x, double y, double z);
387 
389  virtual void slot_displayUnitUnitChanged(const DtUnicode& displayUnitCollectionName,
390  const DtUnicode& displayUnitName, unsigned int newUnit, unsigned int oldUnit);
391 
393  virtual void slot_displayUnitDecimalsChanged(const DtUnicode& displayUnitCollectionName,
394  const DtUnicode& displayUnitName, unsigned int newDecimals, unsigned int oldDecimals);
395 
397  virtual void slot_coordinateSystemChanged();
398 
399  protected:
400  unsigned int myOverlay;
401 
403  unsigned long long myUserData;
404 
407  DtTaitBryan myOrientationTaitBryan; // needed for orientation accessor
408  double myRadius;
409 
410  unsigned int myNumberOfSpokes;
411  unsigned int myNumberOfRings;
412 
415 
417 
419 
420  bool myVisible;
421  float myScale;
422  float myColor[4];
423  float myLineWidth;
424  unsigned int myLineStipplePattern;
425 
426  std::string myFontFile;
428  float myFontColor[4];
429 
431 
435 
439 
440  int myGroup;
441 
442  std::vector<DtSegmentedLineInterface*> mySpokes;
443  std::vector<DtSegmentedLineInterface*> myRings;
444  std::vector<DtTextProxyInterface*> myLabels;
445 
447 
450 
452 
453  std::map<DtListenToDisplayUnitSettingIndex,bool> myListenToDisplayUnitSettings;
454 
456  float myHeading;
457 
459 
462 
465  DtCoordinateSystem* myCoordinateSystem = nullptr;
466  };
467 
468 }
unsigned int myDistanceDecimalsToUse
Definition: DtOverlaySpiderWebModel.h:438
Contains the DtAltitudeBasedScaleConfigurationRecord class declaration.
double myRadius
Definition: DtOverlaySpiderWebModel.h:408
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
DtSignalConnectionManager myDisplayUnitConnections
Definition: DtOverlaySpiderWebModel.h:461
Contains the makVrv::DtSegmentedLineInterface class declaration.
double myOffsetAngle
Definition: DtOverlaySpiderWebModel.h:451
bool myIsLodOutAltitudeEnabled
Definition: DtOverlaySpiderWebModel.h:448
std::vector< DtSegmentedLineInterface * > myRings
Definition: DtOverlaySpiderWebModel.h:443
DtSharedDisplayUnitsSettings::NorthUnits myNorthToUse
Definition: DtOverlaySpiderWebModel.h:455
unsigned int myLineStipplePattern
Definition: DtOverlaySpiderWebModel.h:424
DtDcm myOrientationDcm
Definition: DtOverlaySpiderWebModel.h:406
unsigned int myNumberOfRings
Definition: DtOverlaySpiderWebModel.h:411
bool myNeedsUpdate
Definition: DtOverlaySpiderWebModel.h:458
DtSignalConnectionManager myConnections
Definition: DtOverlaySpiderWebModel.h:460
std::map< DtListenToDisplayUnitSettingIndex, bool > myListenToDisplayUnitSettings
Definition: DtOverlaySpiderWebModel.h:453
makArchives::DtAltitudeBasedScaleConfigurationRecordCollection myFontScaleFromMinimumAltitudeVector
Definition: DtOverlaySpiderWebModel.h:446
NorthUnits
Enumeration of the different north units.
Definition: DtDisplayUnitsSettingsRecord.h:151
bool myVisible
Definition: DtOverlaySpiderWebModel.h:420
bool myIsInnerRingFilled
Definition: DtOverlaySpiderWebModel.h:416
bool myEventsEnabled
Definition: DtOverlaySpiderWebModel.h:402
unsigned int myOverlay
Definition: DtOverlaySpiderWebModel.h:400
unsigned long long myUserData
Definition: DtOverlaySpiderWebModel.h:403
bool myIsDecorated
Definition: DtOverlaySpiderWebModel.h:418
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:57
DtVector myPosition
Definition: DtOverlaySpiderWebModel.h:405
unsigned int myNumberOfSpokes
Definition: DtOverlaySpiderWebModel.h:410
Contains the DtSharedDisplayUnitsSettings class declaration.
double myRingIntervalDistance
Definition: DtOverlaySpiderWebModel.h:413
Interface class for an Overlay Spider Web Model. An overlay model is positioned in 3D space and drawn...
Definition: DtOverlaySpiderWebModel.h:73
double myMaxAngleSegment
Definition: DtOverlaySpiderWebModel.h:430
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
float myHeading
Definition: DtOverlaySpiderWebModel.h:456
DtUnicode myOrientationNotation
Definition: DtOverlaySpiderWebModel.h:433
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtListenToDisplayUnitSettingIndex
Definition: DtOverlaySpiderWebModel.h:77
DtUnicode myDistanceNotation
Definition: DtOverlaySpiderWebModel.h:437
int myGroup
Definition: DtOverlaySpiderWebModel.h:440
bool myIsRingIntervalSet
Definition: DtOverlaySpiderWebModel.h:414
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Contains makVrv::DtModel class.
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
OrientationUnits
Enumeration of the different orientation units.
Definition: DtDisplayUnitsSettingsRecord.h:102
std::string myFontFile
Definition: DtOverlaySpiderWebModel.h:426
Base class to provide boost signal/slot management.
float myFontPointSize
Definition: DtOverlaySpiderWebModel.h:427
double myLodOutAltitude
Definition: DtOverlaySpiderWebModel.h:449
A model which owns a single model instance. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:56
Contains makVrv::DtUniqueID type.
Contains makVrv::DtTextProxyInterface class declaration.
std::vector< DtSegmentedLineInterface * > mySpokes
Definition: DtOverlaySpiderWebModel.h:442
unsigned int myOrientationDecimalsToUse
Definition: DtOverlaySpiderWebModel.h:434
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
DtSharedDisplayUnitsSettings::DistanceUnits myDistanceUnitToUse
Definition: DtOverlaySpiderWebModel.h:436
DtTaitBryan myOrientationTaitBryan
Definition: DtOverlaySpiderWebModel.h:407
float myScale
Definition: DtOverlaySpiderWebModel.h:421
DtSharedDisplayUnitsSettings::OrientationUnits myOrientationUnitToUse
Definition: DtOverlaySpiderWebModel.h:432
float myLineWidth
Definition: DtOverlaySpiderWebModel.h:423
DtModelSetId
Definition: DtModelSetEnums.h:19
std::vector< DtAltitudeBasedScaleConfigurationRecord > DtAltitudeBasedScaleConfigurationRecordCollection
Definition: DtAltitudeBasedScaleConfigurationRecord.h:45
std::vector< DtTextProxyInterface * > myLabels
Definition: DtOverlaySpiderWebModel.h:444
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)