VR-Forces 4.8 Class Documentation
 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) 2020 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 namespace makVrv
20 {
21 
22  class DtDe;
23  class DtPolygon;
24  class DtChannelManager;
25  class DtChannel;
26 
30  {
31  public:
32 
35 
38 
40  virtual void setModelSet( int modelSet );
41 
42  public:
43 
45  // @{
46  virtual void setMaxAngleSegment( double angleSegmentMax );
47  virtual double maxAngleSegment() const;
48  // @}
49 
51  // @{
52  virtual void setGeometry(double angle, double sweep);
53  virtual bool getGeometry(double& angle, double& sweep) const;
54  // @}
55 
57  // @{
58  virtual void setDimensions(float x, float y);
59  virtual bool getDimensions(float& x, float& y) const;
60  // @}
61 
63  // @{
64  virtual void setPosition(const DtVector& position);
65  DtVector position() const;
66  // @}
67 
69  // @{
70  virtual void setRelativePosition(const DtVector& pos);
71  virtual void setRelativePosition(double x, double y, double z);
72  virtual DtVector relativePosition() const;
73  // @}
74 
76  virtual void setOrientation(const DtTaitBryan& orientation);
77 
79  // @{
80  virtual void setScale(float scale);
81  virtual float scale() const;
82  // @}
83 
86  // @{
87  virtual void setInsideColor(float r, float g, float b, float a);
88  virtual bool getInsideColor(float& r, float& g, float& b, float& a) const;
89  // @}
90 
93  // @{
94  virtual void setOutsideColor(float r, float g, float b, float a);
95  virtual bool getOutsideColor(float& r, float& g, float& b, float& a) const;
96  // @}
97 
101  // @{
102  virtual void setCentralVertexColor(float r, float g, float b, float a);
103  virtual bool getCentralVertexColor(float& r, float& g, float& b, float& a) const;
104  // @}
105 
107  // @{
108  virtual void setVisible(bool isVisible);
109  virtual bool isVisible() const;
111 
113  // @{
114  virtual void setSolidFillCenter(bool);
115  virtual bool isSolidFillCenter() const;
116  // @}
117 
119  // @{
120  virtual void setFill(bool);
121  virtual bool isFill() const;
122  // @}
123 
127  // @{
128  virtual void setOutlineWidth(float);
129  virtual float outlineWidth() const;
130  // @}
131 
133  // @{
134  virtual void setEventsEnabled(bool, unsigned long long userData);
135  virtual bool eventsEnabled() const;
136  // @}
137 
139  // @{
140  virtual void setFillPattern(const std::vector<unsigned int>& pattern);
141  // @}
142 
147  // @{
148  virtual void setOutline(bool);
149  virtual bool isOutline() const;
150  // @}
151 
153  virtual void setColor(float r, float g, float b, float a);
154 
159  // @{
160  virtual void setGroup(int);
161  virtual int group() const;
162  // @}
163 
169  virtual void setTexturePath(const std::string& texturePath);
170 
172  // @{
173  virtual void setOutlineTexture(const std::string& texturePath);
174  virtual void setOutlineTexture(osg::Texture* texture);
175  // @}
176 
178  // @{
179  virtual void setStipplePattern(unsigned int stipplePattern);
180  virtual unsigned int stipplePattern() const;
181  // @}
182 
184  virtual bool realize(DtModelDefinition& definition);
185 
187  virtual void updateVertices();
188 
189  public:
190 
191  // @name Deprecated Member Functions - Will be removed VRV 2.8
192  // @{
193  virtual void dimensions(float& x, float& y) const;
194  // @}
195 
196  protected:
197 
199  virtual void createPolygonIfNecessary();
200 
202  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
203 
205  virtual void updateColors();
206 
208  virtual void set3DVertexPosition( unsigned int index, double x, double y, double z );
209 
211  virtual void set3DCentroidPosition( double x, double y, double z );
212 
214  virtual void set3DPositionAux( double x, double y, double z, float tempPackedCoords[4] );
215 
216  protected:
217 
218  unsigned int myModelSet;
221 
223  osg::Vec4 myInnerColor;
224  osg::Vec4 myOuterColor;
225  osg::Vec2 myDimensions;
226  osg::Vec3d myRelativePosition;
227  osg::Vec3d myPosition;
228  float myScale;
229 
230  double myAngle;
231  double mySweep;
232 
235 
236  float myWidth;
238  unsigned long long myUserData;
239 
240  bool myVisible;
241  bool myOutline;
244  unsigned int myStipplePattern;
246  int myGroup;
247 
249  };
250 
254  {
255  public:
258  static DtOverlayEllipseArcModelInstanceCreator& instance(DtDe& de);
259 
261  static void registerInstance(DtDe& de,
263 
265  virtual DtOsgOverlayEllipseArcModelInstance* create(DtDe& de);
266  };
267 
268 }
double mySweep
Definition: DtOsgOverlayEllipseArcModelInstance.h:231
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
int myGroup
Definition: DtOsgOverlayEllipseArcModelInstance.h:246
float myScale
Definition: DtOsgOverlayEllipseArcModelInstance.h:228
bool myVisible
Definition: DtOsgOverlayEllipseArcModelInstance.h:240
Virtual base class.
Definition: DtVirtualBaseClass.h:22
bool myFillPolygon
Definition: DtOsgOverlayEllipseArcModelInstance.h:234
osg::Vec4 myInnerColor
Definition: DtOsgOverlayEllipseArcModelInstance.h:223
vrvGraphics implementation of a 2D ellipsoid arc
Definition: DtOsgOverlayEllipseArcModelInstance.h:29
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myPositionSetFlag
Definition: DtOsgOverlayEllipseArcModelInstance.h:233
double myMaxAngleSegment
Definition: DtOsgOverlayEllipseArcModelInstance.h:220
bool myOutline
Definition: DtOsgOverlayEllipseArcModelInstance.h:241
osg::ref_ptr< osg::Texture > myOutlineTexture
Definition: DtOsgOverlayEllipseArcModelInstance.h:248
unsigned int myModelSet
Definition: DtOsgOverlayEllipseArcModelInstance.h:218
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
A Creator for the makVrv::DtOverlayEllipseArcModelInstance class.
Definition: DtOsgOverlayEllipseArcModelInstance.h:253
unsigned int myStipplePattern
Definition: DtOsgOverlayEllipseArcModelInstance.h:244
unsigned long long myUserData
Definition: DtOsgOverlayEllipseArcModelInstance.h:238
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:33
Contains makVrv::DtOsgModelInstance class.
osg::Vec3d myRelativePosition
Definition: DtOsgOverlayEllipseArcModelInstance.h:226
osg::Vec2 myDimensions
Definition: DtOsgOverlayEllipseArcModelInstance.h:225
Structure used to supply data to callback.
Definition: DtTacticalGraphicModelUpdaterManager.h:35
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:72
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
DtPolygon * myOutlinePolygon
Definition: DtOsgOverlayEllipseArcModelInstance.h:243
float myWidth
Definition: DtOsgOverlayEllipseArcModelInstance.h:236
A variable vertex 2D polygon.
Definition: DtPolygon.h:19
osg::Vec4 myOuterColor
Definition: DtOsgOverlayEllipseArcModelInstance.h:224
DtDcm myOrientationDcm
Definition: DtOsgOverlayEllipseArcModelInstance.h:219
double myAngle
Definition: DtOsgOverlayEllipseArcModelInstance.h:230
DtPolygon * myPolygon
Definition: DtOsgOverlayEllipseArcModelInstance.h:242
Contains DLL export macros.
osg::Vec3d myPosition
Definition: DtOsgOverlayEllipseArcModelInstance.h:227
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myEventsEnabled
Definition: DtOsgOverlayEllipseArcModelInstance.h:237
bool mySolidFillCenter
Definition: DtOsgOverlayEllipseArcModelInstance.h:245
osg::Vec4 myCentralVertexColor
Definition: DtOsgOverlayEllipseArcModelInstance.h:222

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)