VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSpiderWebModelInstance.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
13 
15 
16 #include <vrvOsg/vrvOsg.h>
17 
20 
22 
23 #include <matrix/vlDcm.h>
24 
25 namespace makVrv
26 {
27  class DtDe;
28 
71  {
72  public:
73 
76 
78  virtual ~DtSpiderWebModelInstance();
79 
81  // @{
82  virtual void setPosition(const DtVector& position);
83  virtual DtVector position() const;
84  // @}
85 
87  // @{
88  virtual void setOrientation(const DtTaitBryan& orientation);
89  virtual DtTaitBryan orientation() const;
90  // @}
91 
94  // @{
95  virtual void setMaxAngleSegment(double angleSegmentMax);
96  virtual double maxAngleSegment() const;
97  // @}
98 
101  // @{
102  virtual void setRadius(double x);
103  virtual double radius() const;
104  // @}
105 
108  // @{
109  virtual void setScale(float scale);
110  virtual float scale() const;
111  // @}
112 
115  // @{
116  virtual void setVisible(bool isVisible);
117  virtual bool isVisible() const;
118  // @}
119 
122  // @{
123  virtual void setNumberOfSpokes(unsigned int numSpokes);
124  virtual unsigned int numberOfSpokes() const;
125  // @}
126 
130  // @{
131  virtual void setNumberOfRings(unsigned int numRings);
132  virtual unsigned int numberOfRings() const;
133  // @}
134 
137  // @{
138  virtual void setIsInnerRingFilled(bool filled);
139  virtual bool isInnerRingFilled() const;
140  // @}
141 
145  // @{
146  virtual void setRingIntervalDistance(double interval);
147  virtual double ringIntervalDistance() const;
148  // @}
149 
152  // @{
153  virtual void setLineStipplePattern(unsigned int stipplePattern);
154  virtual unsigned int lineStipplePattern() const;
155  // @}
156 
159  // @{
160  virtual void setLineWidth(float width);
161  virtual float lineWidth() const;
162  // @}
163 
167  // @{
168  virtual void setColor(float r, float g, float b, float a);
169  virtual bool getColor(float& r, float& g, float& b, float& a) const;
170  // @}
171 
175  // @{
176  virtual void setOpacity(float opacity);
177  virtual float opacity() const;
178  // @}
179 
182  // @{
183  virtual void setEventsEnabled(bool enabled, unsigned long long userData);
184  virtual bool eventsEnabled() const;
185  // @}
186 
192  // @{
193  virtual void setGroup(int groupNum);
194  virtual int group() const;
195  // @}
196 
202  // @{
203  virtual void setIsDecorated(bool isDecorated);
204  virtual bool isDecorated() const;
205  // @}
206 
209  // @{
210  virtual void setFontFile(const std::string& fontFile);
211  virtual std::string fontFile() const;
212  // @}
213 
216  // @{
217  virtual void setFontPointSize(float pointSize);
218  virtual float fontPointSize() const;
219  // @}
220 
223  // @{
224  virtual void setFontColor(float r, float g, float b, float a);
225  virtual bool getFontColor(float& r, float& g, float& b, float& a) const;
226  // @}
227 
230  // @{
231  virtual void setDistanceUnit(DtSharedDisplayUnitsSettings::DistanceUnits unit);
232  virtual DtSharedDisplayUnitsSettings::DistanceUnits distanceUnit() const;
233  // @}
234 
237  // @{
238  virtual void setDistanceDecimals(unsigned int decimals);
239  virtual unsigned int distanceDecimals() const;
240  // @}
241 
244  // @{
245  virtual void setOrientationUnit(DtSharedDisplayUnitsSettings::OrientationUnits unit);
246  virtual DtSharedDisplayUnitsSettings::OrientationUnits orientationUnit() const;
247  // @}
248 
251  // @{
252  virtual void setOrientationDecimals(unsigned int decimals);
253  virtual unsigned int orientationDecimals() const;
254  // @}
255 
257  virtual void setOverlay(unsigned int overlayId);
258 
260  virtual bool realize(DtModelDefinition& definition);
261 
262  // Update the spider web vertices based on attributes
263  virtual void update();
264 
267  virtual void recreateSpiderWeb();
268 
269  protected:
270 
272  virtual void createSpiderWebIfNecessary();
273 
275  virtual void deleteSpiderWeb();
276 
278  virtual void updateColors();
279 
281  virtual void setSpokeVertexPosition(unsigned int spokeIndex, unsigned int vertexIndex, double x, double y, double z) = 0;
282 
284  virtual void setRingVertexPosition(unsigned int ringIndex, unsigned int vertexIndex, double x, double y, double z) = 0;
285 
287  virtual void setLabelPosition(unsigned int labelIndex, double x, double y, double z) = 0;
288 
289  protected:
290  unsigned int myOverlay;
291 
293  unsigned long long myUserData;
294 
297  DtTaitBryan myOrientationTaitBryan; // needed for orientation accessor
298  double myRadius;
299 
300  unsigned int myNumberOfSpokes;
301  unsigned int myNumberOfRings;
302 
305 
307 
309 
310  bool myVisible;
311  float myScale;
312  float myColor[4];
313  float myLineWidth;
314  unsigned int myLineStipplePattern;
315 
316  std::string myFontFile;
318  float myFontColor[4];
319 
321 
324 
327 
328  int myGroup;
329 
330  std::vector<DtSegmentedLine*> mySpokes;
331  std::vector<DtSegmentedLine*> myRings;
332  std::vector<DtTextProxy*> myLabels;
333  };
334 }
The base class for all model instances.
Definition: DtModelInstance.h:39
unsigned int myNumberOfRings
Definition: DtSpiderWebModelInstance.h:301
double myMaxAngleSegment
Definition: DtSpiderWebModelInstance.h:320
std::vector< DtTextProxy * > myLabels
Definition: DtSpiderWebModelInstance.h:332
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtDcm myOrientationDcm
Definition: DtSpiderWebModelInstance.h:296
Contains the makVrv::DtTextRenderer class declaration.
float myLineWidth
Definition: DtSpiderWebModelInstance.h:313
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
unsigned int myOverlay
Definition: DtSpiderWebModelInstance.h:290
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:56
bool myVisible
Definition: DtSpiderWebModelInstance.h:310
Contains the DtSharedDisplayUnitsSettings class declaration.
double myRadius
Definition: DtSpiderWebModelInstance.h:298
float myFontPointSize
Definition: DtSpiderWebModelInstance.h:317
unsigned int myDistanceDecimalsToUse
Definition: DtSpiderWebModelInstance.h:326
bool myIsRingIntervalSet
Definition: DtSpiderWebModelInstance.h:304
unsigned long long myUserData
Definition: DtSpiderWebModelInstance.h:293
double myRingIntervalDistance
Definition: DtSpiderWebModelInstance.h:303
std::string myFontFile
Definition: DtSpiderWebModelInstance.h:316
bool myIsDecorated
Definition: DtSpiderWebModelInstance.h:308
unsigned int myOrientationDecimalsToUse
Definition: DtSpiderWebModelInstance.h:323
std::vector< DtSegmentedLine * > myRings
Definition: DtSpiderWebModelInstance.h:331
OrientationUnits
Enumeration of the different orientation units.
Definition: DtDisplayUnitsSettingsRecord.h:101
bool myIsInnerRingFilled
Definition: DtSpiderWebModelInstance.h:306
vrvGraphics implementation of the Spider Web Model
Definition: DtSpiderWebModelInstance.h:70
std::vector< DtSegmentedLine * > mySpokes
Definition: DtSpiderWebModelInstance.h:330
Contains makVrv::DtModelInstance class.
Base class to provide boost signal/slot management.
unsigned int myLineStipplePattern
Definition: DtSpiderWebModelInstance.h:314
float myScale
Definition: DtSpiderWebModelInstance.h:311
unsigned int myNumberOfSpokes
Definition: DtSpiderWebModelInstance.h:300
Contains DLL export macros.
DtSharedDisplayUnitsSettings::OrientationUnits myOrientationUnitToUse
Definition: DtSpiderWebModelInstance.h:322
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
Contains the makVrv::DtSegmentedLine class declaration.
DtSharedDisplayUnitsSettings::DistanceUnits myDistanceUnitToUse
Definition: DtSpiderWebModelInstance.h:325
DtTaitBryan myOrientationTaitBryan
Definition: DtSpiderWebModelInstance.h:297
int myGroup
Definition: DtSpiderWebModelInstance.h:328
bool myEventsEnabled
Definition: DtSpiderWebModelInstance.h:292
DtVector myPosition
Definition: DtSpiderWebModelInstance.h:295

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)