VR-Forces 4.10 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
15 
16 #include <osg/Vec4>
17 #include <osg/Vec3>
18 #include <osg/Quat>
19 #include <osg/Texture>
20 
21 #include <vector>
22 
23 namespace makVrv
24 {
25  class DtPolygon;
26  class DtChannelManager;
27  class DtChannel;
28 
32  {
33  public:
34 
35  struct VertexData
36  {
38  : my3DPos()
39  , my3DOffset()
40  {
41  my2DLength = 0.0f;
42  my2DOffset[0] = 0.0f;
43  my2DOffset[1] = 0.0f;
44  }
45 
46  osg::Vec3d my3DPos;
47  osg::Vec3d my3DOffset;
48  float my2DLength;
49  float my2DOffset[2];
50  };
51  typedef std::vector<VertexData> VertexList;
52 
53  public:
54 
57 
60 
61  private:
62 
65 
68 
71 
72  public:
73 
76  virtual void setModelSet(int);
77 
79  virtual void setPosition( int vtx, const DtVector& position );
80 
82  virtual void setRotation(const osg::Quat& quat);
83 
85  virtual void setOrigin(const DtVector&);
86 
89  virtual void setGroup( int );
90 
92  virtual DtVector origin() const;
93 
95  virtual void addPoint(const DtVector& point,int index);
96 
98  virtual void removePoint(int index);
99 
101  virtual void set2dOffset(int index, float x, float y);
102 
105  virtual void set3dDirection2dLength( int index, float x, float y, float z,
106  float len );
107 
109  virtual void setColor(float r,float g,float b,float a);
110 
116  virtual void setTexturePath(const std::string& texturePath);
117 
119  virtual void setOutlineTexture(const std::string& texturePath);
120 
122  virtual void setOutlineTexture(osg::Texture* texture);
123 
125  virtual void setSolidFillCenter(bool);
126 
128  virtual void setNumTextureTiles(double numTiles);
129 
131  virtual void setStipplePattern(unsigned int stipplePattern);
132 
134  virtual void setWidth(float width);
135 
137  virtual void setEventWidth(float width);
138 
140  virtual void setVisible(bool isVisible);
141 
143  virtual void setPickable(bool enabled);
144 
146  virtual void setEventsEnabled(bool, unsigned long long userData);
147 
149  bool eventsEnabled() const;
150 
152  virtual void setFill(bool);
153 
155  virtual void setInsideColor( float r, float g, float b, float a );
156 
158  virtual void getInsideColor(float& r, float& g, float& b, float& a);
159 
161  virtual void setOutsideColor( float r, float g, float b, float a );
162 
164  virtual void getOutsideColor(float& r, float& g, float& b, float& a);
165 
167  virtual int pointCount() const;
168 
170  virtual DtVector point(int) const;
171 
173  virtual void setFillPattern(const std::vector<unsigned int>& pattern);
174 
176  virtual void setOutline(bool);
177 
181  virtual void setChannelInstance(DtChannel*, int modelSet);
182 
184  virtual const VertexList& vertexList() const;
185 
187  virtual void setPoints(const std::vector<DtVector>& points);
188 
190  virtual void setVertexList(const VertexList&);
191 
193  virtual const std::vector<DtVector>& points() const;
194 
196  virtual void updateGeometry();
197 
198  protected:
199 
201  virtual void createPolygonIfNecessary();
202 
204  virtual void updateColors();
205 
207  virtual void translateAndUpdateVertex( unsigned int index, const VertexData& vert, DtPolygon* polygon);
208 
210  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
211 
213  virtual std::vector<DtVector> topographicVertices() const;
214 
215  protected:
216 
218 
219  // Flat list of points. Valid after call to updateGeometry
220  std::vector<DtVector> myPoints;
221 
224 
225  bool myFilled;
226 
227  float myWidth;
228  osg::Vec4 myInnerColor;
229  osg::Vec4 myOuterColor;
230  unsigned int myStipplePattern;
232  unsigned long long myUserData;
233 
236  bool myOutline;
238 
239  osg::Vec3d myOrigin;
240  osg::Quat myRotation;
241 
243 
245  int myGroup;
246  };
247 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
Definition: DtOsgOverlayPolygonModelInstance.h:35
osg::ref_ptr< osg::Texture > myOutlineTexture
Definition: DtOsgOverlayPolygonModelInstance.h:242
Model instance to draw a polygon on the overlay, either filled or outline.
Definition: DtOsgOverlayPolygonModelInstance.h:31
bool myFilled
Definition: DtOsgOverlayPolygonModelInstance.h:225
std::vector< VertexData > VertexList
Definition: DtOsgOverlayPolygonModelInstance.h:51
int myModelSet
Definition: DtOsgOverlayPolygonModelInstance.h:231
unsigned int myStipplePattern
Definition: DtOsgOverlayPolygonModelInstance.h:230
osg::Vec3d my3DPos
Definition: DtOsgOverlayPolygonModelInstance.h:46
VertexList myVertices
Definition: DtOsgOverlayPolygonModelInstance.h:217
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
voidpf uLong int origin
Definition: ioapi.h:42
bool myEventsEnabled
Definition: DtOsgOverlayPolygonModelInstance.h:234
VertexData()
Definition: DtOsgOverlayPolygonModelInstance.h:37
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
float my2DLength
Definition: DtOsgOverlayPolygonModelInstance.h:48
osg::Vec4 myOuterColor
Definition: DtOsgOverlayPolygonModelInstance.h:229
bool myOutline
Definition: DtOsgOverlayPolygonModelInstance.h:236
Contains makVrv::DtOsgModelInstance class.
DtPolygon * myPolygon
Definition: DtOsgOverlayPolygonModelInstance.h:222
The abstract Channel Class.
Definition: DtChannel.h:30
std::vector< DtVector > myPoints
Definition: DtOsgOverlayPolygonModelInstance.h:220
Structure used to supply data to callback.
Definition: DtTacticalGraphicModelUpdaterManager.h:35
bool mySolidFillCenter
Definition: DtOsgOverlayPolygonModelInstance.h:237
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:76
DtPolygon * myOutlinePolygon
Definition: DtOsgOverlayPolygonModelInstance.h:223
osg::Vec4 myInnerColor
Definition: DtOsgOverlayPolygonModelInstance.h:228
unsigned long long myUserData
Definition: DtOsgOverlayPolygonModelInstance.h:232
osg::Vec3d my3DOffset
Definition: DtOsgOverlayPolygonModelInstance.h:47
A variable vertex 2D polygon.
Definition: DtPolygon.h:19
bool myVisibleFlag
Definition: DtOsgOverlayPolygonModelInstance.h:235
float myWidth
Definition: DtOsgOverlayPolygonModelInstance.h:227
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:240
DtChannel * myChannelInstance
Definition: DtOsgOverlayPolygonModelInstance.h:244
osg::Vec3d myOrigin
Definition: DtOsgOverlayPolygonModelInstance.h:239
int myGroup
Definition: DtOsgOverlayPolygonModelInstance.h:245

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)