VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgOverlayEllipseArcModelInstance.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 #include <vrvOsg/vrvOsg.h>
13 #include <matrix/vlDcm.h>
14 #include <osg/Vec2>
16 
17 #include <osg/Texture>
18 
19 #include <vrvMath/DtVector2.h>
20 #include <vrvMath/DtVector3.h>
21 #include <vrvMath/DtVector4.h>
22 
23 #include <matrix/coordTransform.h>
24 
25 namespace makVrv
26 {
27 
28  class DtDe;
29  class DtPolygonInterface;
30  class DtFilledPolygonInterface;
31  class DtChannelManager;
32  class DtChannel;
33  class DtTextureInterface;
34  enum class DtModelSetId;
35 
39  {
40  public:
41 
44 
47 
49  virtual void setModelSet( DtModelSetId modelSet );
50 
51  public:
52 
54  // @{
55  virtual void setMaxAngleSegment( double angleSegmentMax );
56  virtual double maxAngleSegment() const;
57  // @}
58 
60  // @{
61  virtual void setGeometry(double angle, double sweep);
62  virtual bool getGeometry(double& angle, double& sweep) const;
63  // @}
64 
66  // @{
67  virtual void setDimensions(float x, float y);
68  virtual bool getDimensions(float& x, float& y) const;
69  // @}
70 
72  // @{
73  virtual void setPosition(const DtVector& position);
74  DtVector position() const;
75  // @}
76 
78  // @{
79  virtual void setRelativePosition(const DtVector& pos);
80  virtual void setRelativePosition(double x, double y, double z);
81  virtual DtVector relativePosition() const;
82  // @}
83 
85  virtual void setOrientation(const DtTaitBryan& orientation);
86 
88  // @{
89  virtual void setScale(float scale);
90  virtual float scale() const;
91  // @}
92 
95  // @{
96  virtual void setInsideColor(float r, float g, float b, float a);
97  virtual bool getInsideColor(float& r, float& g, float& b, float& a) const;
98  // @}
99 
102  // @{
103  virtual void setOutsideColor(float r, float g, float b, float a);
104  virtual bool getOutsideColor(float& r, float& g, float& b, float& a) const;
105  // @}
106 
110  // @{
111  virtual void setCentralVertexColor(float r, float g, float b, float a);
112  virtual bool getCentralVertexColor(float& r, float& g, float& b, float& a) const;
113  // @}
114 
116  // @{
117  virtual void setVisible(bool isVisible);
118  virtual bool isVisible() const;
120 
122  // @{
123  virtual void setSolidFillCenter(bool);
124  virtual bool isSolidFillCenter() const;
125  // @}
126 
128  // @{
129  virtual void setFill(bool);
130  virtual bool isFill() const;
131  // @}
132 
136  // @{
137  virtual void setOutlineWidth(float);
138  virtual float outlineWidth() const;
139  // @}
140 
142  // @{
143  virtual void setEventsEnabled(bool, unsigned long long userData);
144  virtual bool eventsEnabled() const;
145  // @}
146 
148  // @{
149  virtual void setFillPattern(const std::vector<unsigned int>& pattern);
150  // @}
151 
156  // @{
157  virtual void setOutline(bool);
158  virtual bool isOutline() const;
159  // @}
160 
162  virtual void setEnableDecalProjector(bool enable);
163 
165  virtual bool enableDecalProjector() const;
166 
168  virtual void setColor(float r, float g, float b, float a);
169 
174  // @{
175  virtual void setGroup(int);
176  virtual int group() const;
177  // @}
178 
184  virtual void setTexturePath(const std::string& texturePath, bool isStipple = true);
185 
190  // @{
191  virtual void setOutlineTexture(const std::string& texturePath, int width = -1, int height = -1);
192  // @}
193 
195  // @{
196  virtual void setStipplePattern(unsigned int stipplePattern);
197  virtual unsigned int stipplePattern() const;
198  // @}
199 
201  virtual bool realize(const DtModelDefinition& definition);
202 
204  virtual void updateVertices();
205 
206  protected:
207 
209  virtual void createPolygonIfNecessary();
210 
213  virtual DtPolygonInterface* createFilledPolygon();
214 
217  virtual DtPolygonInterface* createTexturedOutlinePolygon();
218 
221  virtual DtPolygonInterface* createOutlinePolygon();
222 
224  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
225 
227  virtual void updateColors();
228 
230  virtual void updateTextureCoordinates(DtFilledPolygonInterface* polygon);
231 
234  virtual void computeTopoTransform(DtCoordTransform& geocToTopo,
235  DtVector& geocentricOrigin) const;
236 
238  virtual void set3DVertexPosition( unsigned int index, double x, double y, double z );
239 
241  virtual void set3DCentroidPosition( double x, double y, double z );
242 
244  virtual void set3DPositionAux( double x, double y, double z, float tempPackedCoords[4] );
245 
247  virtual void slot_coordinateSystemChanged();
248  protected:
249 
253 
260  float myScale;
261 
262  double myAngle;
263  double mySweep;
264 
267 
269 
270  float myWidth;
272  unsigned long long myUserData;
273 
274  bool myVisible;
275  bool myOutline;
278  unsigned int myStipplePattern;
279  unsigned int myFillPattern[32];
282  int myGroup;
283 
285 
288  DtCoordinateSystem* myCoordinateSystem = nullptr;
289  };
290 
294  {
295  public:
298  static DtOverlayEllipseArcModelInstanceCreator& instance(DtDe& de);
299 
301  static void registerInstance(DtDe& de,
303 
305  virtual DtOsgOverlayEllipseArcModelInstance* create(DtDe& de);
306  };
307 
308 }
double mySweep
Definition: DtOsgOverlayEllipseArcModelInstance.h:263
int myGroup
Definition: DtOsgOverlayEllipseArcModelInstance.h:282
DtVector3< double > myPosition
Definition: DtOsgOverlayEllipseArcModelInstance.h:259
float myScale
Definition: DtOsgOverlayEllipseArcModelInstance.h:260
bool myVisible
Definition: DtOsgOverlayEllipseArcModelInstance.h:274
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
bool myFillPolygon
Definition: DtOsgOverlayEllipseArcModelInstance.h:266
A variable vertex convex filled 2D polygon.
Definition: DtFilledPolygonInterface.h:26
vrvGraphics implementation of a 2D ellipsoid arc
Definition: DtOsgOverlayEllipseArcModelInstance.h:38
DtPolygonInterface * myPolygon
Definition: DtOsgOverlayEllipseArcModelInstance.h:276
DtVector4< float > myInnerColor
Definition: DtOsgOverlayEllipseArcModelInstance.h:255
2 dimensional vector
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myPositionSetFlag
Definition: DtOsgOverlayEllipseArcModelInstance.h:265
double myMaxAngleSegment
Definition: DtOsgOverlayEllipseArcModelInstance.h:252
bool myOutline
Definition: DtOsgOverlayEllipseArcModelInstance.h:275
DtPolygonInterface * myOutlinePolygon
Definition: DtOsgOverlayEllipseArcModelInstance.h:277
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
Interface for a texture. Used to pass in a texture to vrvGraphics.
Definition: DtTextureInterface.h:24
4 dimensional vector
A Creator for the makVrv::DtOverlayEllipseArcModelInstance class.
Definition: DtOsgOverlayEllipseArcModelInstance.h:293
An abstract interface for a polygon primitive.
Definition: DtPolygonInterface.h:21
unsigned int myStipplePattern
Definition: DtOsgOverlayEllipseArcModelInstance.h:278
unsigned long long myUserData
Definition: DtOsgOverlayEllipseArcModelInstance.h:272
DtTextureInterface * myOutlineTexture
Definition: DtOsgOverlayEllipseArcModelInstance.h:284
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
Contains makVrv::DtOsgModelInstance class.
3 dimensional vector
DtModelSetId myModelSet
Definition: DtOsgOverlayEllipseArcModelInstance.h:250
Structure used to supply data to callback. Provided as structure as contents could change over time...
Definition: DtTacticalGraphicModelUpdaterManager.h:37
DtVector4< float > myCentralVertexColor
Definition: DtOsgOverlayEllipseArcModelInstance.h:254
DtVector2< float > myDimensions
Definition: DtOsgOverlayEllipseArcModelInstance.h:257
DtVector4< float > myOuterColor
Definition: DtOsgOverlayEllipseArcModelInstance.h:256
The base class for simple OSG based model instances. This call can&#39;t be instantiated itself...
Definition: DtOsgModelInstance.h:77
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
DtVector3< double > myRelativePosition
Definition: DtOsgOverlayEllipseArcModelInstance.h:258
float myWidth
Definition: DtOsgOverlayEllipseArcModelInstance.h:270
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
DtDcm myOrientationDcm
Definition: DtOsgOverlayEllipseArcModelInstance.h:251
double myAngle
Definition: DtOsgOverlayEllipseArcModelInstance.h:262
Contains DLL export macros.
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:76
bool myEventsEnabled
Definition: DtOsgOverlayEllipseArcModelInstance.h:271
bool mySolidFillCenter
Definition: DtOsgOverlayEllipseArcModelInstance.h:281
DtModelSetId
Definition: DtModelSetEnums.h:19
bool myFillPatternSet
Definition: DtOsgOverlayEllipseArcModelInstance.h:280
bool myEnableDecalProjector
Definition: DtOsgOverlayEllipseArcModelInstance.h:268

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)