VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgOverlayPolygonModelInstance.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 #include <osg/Vec4>
15 #include <osg/Vec3>
16 #include <osg/Quat>
17 #include <vector>
19 
20 #include <osg/Texture>
21 
22 namespace makVrv
23 {
24  class DtPolygon;
25  class DtChannelManager;
26  class DtChannel;
27 
31  {
32  public:
33  struct VertexData
34  {
36  : my3DPos()
37  , my3DOffset()
38  {
39  my2DLength = 0.0f;
40  my2DOffset[0] = 0.0f;
41  my2DOffset[1] = 0.0f;
42  }
43 
44  osg::Vec3d my3DPos;
45  osg::Vec3d my3DOffset;
46  float my2DLength;
47  float my2DOffset[2];
48  };
49  typedef std::vector<VertexData> VertexList;
50 
51  public:
54 
57 
60  virtual void setModelSet(int);
61 
63  virtual void setPosition( int vtx, const DtVector& position );
64 
66  virtual void setRotation(const osg::Quat& quat);
67 
69  virtual void setOrigin(const DtVector&);
70 
73  virtual void setGroup( int );
74 
76  virtual DtVector origin() const;
77 
79  virtual void addPoint(const DtVector& point,int index);
80 
82  virtual void removePoint(int index);
83 
85  virtual void set2dOffset(int index, float x, float y);
86 
89  virtual void set3dDirection2dLength( int index, float x, float y, float z,
90  float len );
91 
93  virtual void setColor(float r,float g,float b,float a);
94 
100  virtual void setTexturePath(const std::string& texturePath);
101 
103  virtual void setOutlineTexture(const std::string& texturePath);
104 
106  virtual void setOutlineTexture(osg::Texture* texture);
107 
109  virtual void setSolidFillCenter(bool);
110 
112  virtual void setNumTextureTiles(double numTiles);
113 
115  virtual void setStipplePattern(unsigned int stipplePattern);
116 
118  virtual void setWidth(float width);
119 
121  virtual void setEventWidth(float width);
122 
124  virtual void setVisible(bool isVisible);
125 
127  bool updatesLocked() const;
128 
130  virtual void setPickable(bool enabled);
131 
133  virtual void setEventsEnabled(bool, unsigned long long userData);
134 
136  bool eventsEnabled() const;
137 
139  virtual void setFill(bool);
140 
142  virtual void setInsideColor( float r, float g, float b, float a );
143 
145  virtual void getInsideColor(float& r, float& g, float& b, float& a);
146 
148  virtual void setOutsideColor( float r, float g, float b, float a );
149 
151  virtual void getOutsideColor(float& r, float& g, float& b, float& a);
152 
154  virtual int pointCount() const;
155 
157  virtual DtVector point(int) const;
158 
160  virtual void setFillPattern(const std::vector<unsigned int>& pattern);
161 
163  virtual void setOutline(bool);
164 
168  virtual void setChannelInstance(DtChannel*, int modelSet);
169 
171  virtual const VertexList& vertexList() const;
172 
174  virtual void setPoints(const std::vector<DtVector>& points);
175 
177  virtual void setVertexList(const VertexList&);
178 
180  virtual const std::vector<DtVector>& points() const;
181 
183  virtual void updateGeometry();
184 
185  protected:
187  virtual void createPolygonIfNecessary();
188 
190  virtual void updateColors();
191 
193  virtual void translateAndUpdateVertex( unsigned int index, const VertexData& vert, DtPolygon* polygon);
194 
196  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
197 
199  virtual std::vector<DtVector> topographicVertices() const;
200 
201  protected:
202 
204 
205  // Flat list of points. Valid after call to updateGeometry
206  std::vector<DtVector> myPoints;
207 
210 
211  bool myFilled;
212 
213  float myWidth;
214  osg::Vec4 myInnerColor;
215  osg::Vec4 myOuterColor;
216  unsigned int myStipplePattern;
218  unsigned long long myUserData;
219 
222  bool myOutline;
224 
225  osg::Vec3d myOrigin;
226  osg::Quat myRotation;
227 
229 
231  int myGroup;
232  };
233 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
The base class for all model instances.
Definition: DtModelInstance.h:39
Definition: DtOsgOverlayPolygonModelInstance.h:33
osg::ref_ptr< osg::Texture > myOutlineTexture
Definition: DtOsgOverlayPolygonModelInstance.h:228
Model instance to draw a polygon on the overlay, either filled or outline.
Definition: DtOsgOverlayPolygonModelInstance.h:30
bool myFilled
Definition: DtOsgOverlayPolygonModelInstance.h:211
std::vector< VertexData > VertexList
Definition: DtOsgOverlayPolygonModelInstance.h:49
int myModelSet
Definition: DtOsgOverlayPolygonModelInstance.h:217
unsigned int myStipplePattern
Definition: DtOsgOverlayPolygonModelInstance.h:216
osg::Vec3d my3DPos
Definition: DtOsgOverlayPolygonModelInstance.h:44
VertexList myVertices
Definition: DtOsgOverlayPolygonModelInstance.h:203
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
voidpf uLong int origin
Definition: ioapi.h:42
bool myEventsEnabled
Definition: DtOsgOverlayPolygonModelInstance.h:220
VertexData()
Definition: DtOsgOverlayPolygonModelInstance.h:35
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
float my2DLength
Definition: DtOsgOverlayPolygonModelInstance.h:46
osg::Vec4 myOuterColor
Definition: DtOsgOverlayPolygonModelInstance.h:215
bool myOutline
Definition: DtOsgOverlayPolygonModelInstance.h:222
DtPolygon * myPolygon
Definition: DtOsgOverlayPolygonModelInstance.h:208
The abstract Channel Class.
Definition: DtChannel.h:29
std::vector< DtVector > myPoints
Definition: DtOsgOverlayPolygonModelInstance.h:206
Structure used to supply data to callback.
Definition: DtTacticalGraphicModelUpdaterManager.h:35
bool mySolidFillCenter
Definition: DtOsgOverlayPolygonModelInstance.h:223
DtPolygon * myOutlinePolygon
Definition: DtOsgOverlayPolygonModelInstance.h:209
osg::Vec4 myInnerColor
Definition: DtOsgOverlayPolygonModelInstance.h:214
unsigned long long myUserData
Definition: DtOsgOverlayPolygonModelInstance.h:218
osg::Vec3d my3DOffset
Definition: DtOsgOverlayPolygonModelInstance.h:45
A variable vertex 2D polygon.
Definition: DtPolygon.h:19
Contains makVrv::DtModelInstance class.
bool myVisibleFlag
Definition: DtOsgOverlayPolygonModelInstance.h:221
float myWidth
Definition: DtOsgOverlayPolygonModelInstance.h:213
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::Quat myRotation
Definition: DtOsgOverlayPolygonModelInstance.h:226
DtChannel * myChannelInstance
Definition: DtOsgOverlayPolygonModelInstance.h:230
osg::Vec3d myOrigin
Definition: DtOsgOverlayPolygonModelInstance.h:225
int myGroup
Definition: DtOsgOverlayPolygonModelInstance.h:231

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)