VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOverlayArcModel.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>
15 
16 #include <vrvMath/DtVector2.h>
17 #include <vrvMath/DtVector3.h>
18 #include <vrvMath/DtVector4.h>
19 
21 
22 #include <matrix/vlDcm.h>
23 
24 namespace makVrv
25 {
26  class DtSegmentedLineInterface;
27  class DtCoordinateSystem;
28  class DtDe;
29 
58  {
59  public:
60 
63 
65  DtOverlayArcModel() = delete;
66 
68  DtOverlayArcModel(const DtOverlayArcModel&) = delete;
69 
71  DtOverlayArcModel& operator=(const DtOverlayArcModel&) = delete;
72 
73 
75  virtual ~DtOverlayArcModel();
76 
79 
82  virtual void setOrientation(const DtTaitBryan& orientation);
83  virtual DtTaitBryan orientation() const;
85 
87  virtual void setTopographicHeading(double topoHeading);
88 
91  virtual void setDimensions(double x, double y);
92  virtual bool getDimensions(double& x, double& y) const;
94 
97  virtual void setScale(float scale);
98  virtual float scale() const;;
100 
103  virtual void setVisible(bool isVisible);
104  virtual bool isVisible() const;;
106 
109  virtual void setMaxAngleSegment(double angleSegmentMax);
110  virtual double maxAngleSegment() const;;
112 
115  virtual void setStartAngle(double startAngle);
116  virtual double startAngle() const;
118 
121  virtual void setEndAngle(double endAngle);
122  virtual double endAngle() const;
124 
127  virtual void setStipplePattern(unsigned int stipplePattern);
128  virtual unsigned int stipplePattern() const;
130 
134  virtual void setLineWidth(float width);
135  virtual float lineWidth() const;
137 
141  virtual void setColor(float r, float g, float b, float a);
142  virtual bool getColor(float& r, float& g, float& b, float& a) const;
144 
147  virtual void setEventsEnabled(bool enabled);
148  virtual bool eventsEnabled() const;
150 
156  virtual void setGroup(int groupNum);
157  virtual int group() const;
159 
161  virtual void update();
162 
180  virtual void setPosition(int vtx, const DtVector& position) override;
181 
183  virtual void setModelDefinition(const std::string& str) override;
184 
187  virtual void setIsSupportModel(bool isSupport) override;
188  protected:
190  virtual void setArcVertex(unsigned int index,
191  double x, double y, double z);
192 
196  virtual double calculateHeight(const DtVector& heightVertex) const;
197 
199  virtual void set3DPositionAux(double x, double y, double z,
200  float tempPackedCoords[4]);
201 
202  virtual void updateColors();
203 
204  virtual void needsUpdate(void);
205 
207  virtual void createArcIfNecessary();
208 
210  virtual void deleteArc();
211 
213  virtual void slot_coordinateSystemChanged();
214 
215  virtual void setOrigin(const DtVector& position);
216  virtual DtVector origin() const;
217 
219  virtual void addToScene(const DtUniqueID& sceneObjectId,
220  DtModelSetId modelSet, int visualizerType) override;
221 
223  virtual void removeFromScene() override;
224 
225  protected:
226 
228 
229  boost::signalslib::connection mySignalPostUpdateConnection;
230 
231  std::vector<DtVector3<double>> myDefinedVertices;
232 
235 
238 
239  bool myVisible;
241  float myScale;
243  float myLineWidth;
244  unsigned int myStipplePattern;
245  double myStartAngle;
246  double myEndAngle;
247 
249 
250  int myGroup;
251  unsigned int myOverlay;
253  unsigned long long myUserData;
254 
256 
259  DtCoordinateSystem* myCoordinateSystem = nullptr;
260  };
261 
262 }
unsigned int myOverlay
Definition: DtOverlayArcModel.h:251
Interface class for an Overlay Arc Model. An overlay model is positioned in 3D space and drawn onto a...
Definition: DtOverlayArcModel.h:57
DtSegmentedLineInterface * myArc
Definition: DtOverlayArcModel.h:248
DtDcm myOrientationDcm
Definition: DtOverlayArcModel.h:236
2 dimensional vector
boost::signalslib::connection mySignalPostUpdateConnection
Definition: DtOverlayArcModel.h:229
voidpf uLong int origin
Definition: ioapi.h:42
DtTaitBryan myOrientationTaitBryan
Definition: DtOverlayArcModel.h:237
unsigned long long myUserData
Definition: DtOverlayArcModel.h:253
4 dimensional vector
double myMaxAngleSegment
Definition: DtOverlayArcModel.h:240
int myGroup
Definition: DtOverlayArcModel.h:250
3 dimensional vector
An interface for a convex polygon drawn using lines.
Definition: DtSegmentedLineInterface.h:25
float myLineWidth
Definition: DtOverlayArcModel.h:243
bool myVisible
Definition: DtOverlayArcModel.h:239
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
float myScale
Definition: DtOverlayArcModel.h:241
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
double myEndAngle
Definition: DtOverlayArcModel.h:246
bool myEventsEnabled
Definition: DtOverlayArcModel.h:252
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Contains makVrv::DtModel class.
unsigned int myStipplePattern
Definition: DtOverlayArcModel.h:244
bool myNeedsUpdate
Definition: DtOverlayArcModel.h:227
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
DtSignalConnectionManager myConnections
Definition: DtOverlayArcModel.h:255
DtVector4< float > myColor
Definition: DtOverlayArcModel.h:242
Base class to provide boost signal/slot management.
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.
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
DtVector2< double > myDimensions
Definition: DtOverlayArcModel.h:234
DtModelSetId
Definition: DtModelSetEnums.h:19
DtVector3< double > myPosition
Definition: DtOverlayArcModel.h:233
std::vector< DtVector3< double > > myDefinedVertices
Definition: DtOverlayArcModel.h:231
double myStartAngle
Definition: DtOverlayArcModel.h:245
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)