VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtOsgOverlayPolygonModelInstance.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 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  {
38  my2DOffset[0] = 0.0f;
39  my2DOffset[1] = 0.0f;
40  }
41 
42  osg::Vec3d my3DPos;
43  osg::Vec3d my3DOffset;
44  float my2DLength;
45  float my2DOffset[2];
46  };
47  typedef std::vector<VertexData> VertexList;
48 
49  public:
52 
55 
58  virtual void setModelSet(int);
59 
61  virtual void setPosition( int vtx, const DtVector& position );
62 
64  virtual void setRotation(const osg::Quat& quat);
65 
67  virtual void setOrigin(const DtVector&);
68 
71  virtual void setGroup( int );
72 
74  virtual DtVector origin() const;
75 
77  virtual void addPoint(const DtVector& point,int index);
78 
80  virtual void removePoint(int index);
81 
83  virtual void set2dOffset(int index, float x, float y);
84 
87  virtual void set3dDirection2dLength( int index, float x, float y, float z,
88  float len );
89 
91  virtual void setColor(float r,float g,float b,float a);
92 
98  virtual void setTexturePath(const std::string& texturePath);
99 
101  virtual void setOutlineTexture(const std::string& texturePath);
102 
104  virtual void setOutlineTexture(osg::Texture* texture);
105 
107  virtual void setSolidFillCenter(bool);
108 
110  virtual void setNumTextureTiles(double numTiles);
111 
113  virtual void setStipplePattern(unsigned int stipplePattern);
114 
116  virtual void setWidth(float width);
117 
119  virtual void setEventWidth(float width);
120 
122  virtual void setVisible(bool isVisible);
123 
125  virtual void setLockUpdates(bool lock);
126 
128  bool updatesLocked() const;
129 
131  virtual void setPickable(bool enabled);
132 
134  virtual void setEventsEnabled(bool, unsigned long long userData);
135 
137  bool eventsEnabled() const;
138 
140  virtual void setFill(bool);
141 
143  virtual void setInsideColor( float r, float g, float b, float a );
144 
146  virtual void setOutsideColor( float r, float g, float b, float a );
147 
149  virtual int pointCount() const;
150 
152  virtual DtVector point(int) const;
153 
155  virtual void setFillPattern(const std::vector<unsigned int> pattern);
156 
158  virtual void setOutline(bool);
159 
163  virtual void setChannelInstance(DtChannel*, int modelSet);
164 
166  virtual const VertexList& vertexList() const;
167 
169  virtual void setVertexList(const VertexList&);
170 
172  virtual const std::vector<DtVector>& points() const;
173 
174  protected:
176  virtual void createPolygonIfNecessary();
177 
179  virtual void updateGeometry();
180 
182  virtual void updateColors();
183 
185  virtual void translateAndUpdateVertex( unsigned int index, const VertexData& vert, DtPolygon* polygon);
186 
188  virtual void channelUpdated(DtTacticalGraphicModelUpdaterManager::ChannelUpdateData);
189 
191  virtual std::vector<DtVector> topographicVertices() const;
192 
193  // @{
196  virtual bool triangulate(const std::vector<DtVector>& input, std::vector<int>& output) const;
197  virtual bool snipTriangle(const std::vector<DtVector> &contour,int u,int v,int w,int n,int *V) const;
198  virtual bool insideTriangle(float Ax, float Ay,
199  float Bx, float By, float Cx, float Cy, float Px, float Py) const;
200  virtual float triangulateAreaSize(const std::vector<DtVector> &contour) const;
201  // @}
202 
203  protected:
204 
206 
207  // Flat list of points. Valid after call to updateGeometry
208  std::vector<DtVector> myPoints;
209 
212 
215  bool myFilled;
216 
217  float myWidth;
218  osg::Vec4 myInnerColor;
219  osg::Vec4 myOuterColor;
220  unsigned int myStipplePattern;
222  unsigned long long myUserData;
223 
228  bool myOutline;
230 
231  osg::Vec3d myOrigin;
232  osg::Quat myRotation;
233 
234  osg::ref_ptr<osg::Texture> myOutlineTexture;
235 
237  int myGroup;
238  };
239 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)