VR-Forces 5.0.1 Developer's Guide
 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) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
16 
17 #include <osg/Vec4>
18 #include <osg/Vec3>
19 #include <osg/Quat>
20 #include <osg/Texture>
21 
22 #include <vector>
23 
24 namespace makVrv
25 {
26  class DtPolygon;
27  class DtChannelManager;
28  class DtChannel;
29  class DtCoordinateSystem;
30 
34  {
35  public:
36 
37  struct VertexData
38  {
40  : my3DPos()
41  , my3DOffset()
42  {
43  my2DLength = 0.0f;
44  my2DOffset[0] = 0.0f;
45  my2DOffset[1] = 0.0f;
46  }
47 
48  osg::Vec3d my3DPos;
49  osg::Vec3d my3DOffset;
50  float my2DLength;
51  float my2DOffset[2];
52  };
53  typedef std::vector<VertexData> VertexList;
54 
55  public:
56 
59 
62 
63  private:
64 
67 
70 
73 
74  public:
75 
78  virtual void setModelSet(int);
79 
81  virtual void setPosition( int vtx, const DtVector& position );
82 
84  virtual void setRotation(const osg::Quat& quat);
85 
87  virtual void setOrigin(const DtVector&);
88 
91  virtual void setGroup( int );
92 
94  virtual DtVector origin() const;
95 
97  virtual void addPoint(const DtVector& point,int index);
98 
100  virtual void removePoint(int index);
101 
103  virtual void set2dOffset(int index, float x, float y);
104 
107  virtual void set3dDirection2dLength( int index, float x, float y, float z,
108  float len );
109 
111  virtual void setColor(float r,float g,float b,float a);
112 
118  virtual void setTexturePath(const std::string& texturePath);
119 
121  virtual void setOutlineTexture(const std::string& texturePath);
122 
124  virtual void setOutlineTexture(osg::Texture* texture);
125 
127  virtual void setSolidFillCenter(bool);
128 
130  virtual void setNumTextureTiles(double numTiles);
131 
133  virtual void setStipplePattern(unsigned int stipplePattern);
134 
136  virtual void setWidth(float width);
137 
139  virtual void setEventWidth(float width);
140 
142  virtual void setVisible(bool isVisible);
143 
145  virtual void setPickable(bool enabled);
146 
148  virtual void setEventsEnabled(bool, unsigned long long userData);
149 
151  bool eventsEnabled() const;
152 
154  virtual void setFill(bool);
155 
157  virtual void setInsideColor( float r, float g, float b, float a );
158 
160  virtual void getInsideColor(float& r, float& g, float& b, float& a);
161 
163  virtual void setOutsideColor( float r, float g, float b, float a );
164 
166  virtual void getOutsideColor(float& r, float& g, float& b, float& a);
167 
169  virtual int pointCount() const;
170 
172  virtual DtVector point(int) const;
173 
175  virtual void setFillPattern(const std::vector<unsigned int>& pattern);
176 
178  virtual void setOutline(bool);
179 
183  virtual void setChannelInstance(DtChannel*, int modelSet);
184 
186  virtual const VertexList& vertexList() const;
187 
189  virtual void setPoints(const std::vector<DtVector>& points);
190 
192  virtual void setVertexList(const VertexList&);
193 
195  virtual const std::vector<DtVector>& points() const;
196 
198  virtual void updateGeometry();
199 
200  protected:
201 
203  virtual void createPolygonIfNecessary();
204 
206  virtual void updateColors();
207 
209  virtual void translateAndUpdateVertex( unsigned int index, const VertexData& vert, DtPolygon* polygon);
210 
212  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
213 
215  virtual std::vector<DtVector> topographicVertices() const;
216 
218  virtual void slot_coordinateSystemChanged();
219 
220  protected:
221 
223 
224  // Flat list of points. Valid after call to updateGeometry
225  std::vector<DtVector> myPoints;
226 
229 
230  bool myFilled;
231 
232  float myWidth;
233  osg::Vec4 myInnerColor;
234  osg::Vec4 myOuterColor;
235  unsigned int myStipplePattern;
237  unsigned long long myUserData;
238 
241  bool myOutline;
243 
244  osg::Vec3d myOrigin;
245  osg::Quat myRotation;
246 
248 
250  int myGroup;
251 
253 
256  DtCoordinateSystem* myCoordinateSystem = nullptr;
257  };
258 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
Definition: DtOsgOverlayPolygonModelInstance.h:37
osg::ref_ptr< osg::Texture > myOutlineTexture
Definition: DtOsgOverlayPolygonModelInstance.h:247
Model instance to draw a polygon on the overlay, either filled or outline.
Definition: DtOsgOverlayPolygonModelInstance.h:33
bool myFilled
Definition: DtOsgOverlayPolygonModelInstance.h:230
std::vector< VertexData > VertexList
Definition: DtOsgOverlayPolygonModelInstance.h:53
int myModelSet
Definition: DtOsgOverlayPolygonModelInstance.h:236
unsigned int myStipplePattern
Definition: DtOsgOverlayPolygonModelInstance.h:235
osg::Vec3d my3DPos
Definition: DtOsgOverlayPolygonModelInstance.h:48
VertexList myVertices
Definition: DtOsgOverlayPolygonModelInstance.h:222
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
voidpf uLong int origin
Definition: ioapi.h:42
bool myEventsEnabled
Definition: DtOsgOverlayPolygonModelInstance.h:239
VertexData()
Definition: DtOsgOverlayPolygonModelInstance.h:39
Contains makVrv:DtTacticalGraphicModelUpdaterManager.
float my2DLength
Definition: DtOsgOverlayPolygonModelInstance.h:50
osg::Vec4 myOuterColor
Definition: DtOsgOverlayPolygonModelInstance.h:234
bool myOutline
Definition: DtOsgOverlayPolygonModelInstance.h:241
Contains makVrv::DtOsgModelInstance class.
DtPolygon * myPolygon
Definition: DtOsgOverlayPolygonModelInstance.h:227
The abstract Channel Class.
Definition: DtChannel.h:35
std::vector< DtVector > myPoints
Definition: DtOsgOverlayPolygonModelInstance.h:225
Structure used to supply data to callback. Provided as structure as contents could change over time...
Definition: DtTacticalGraphicModelUpdaterManager.h:37
bool mySolidFillCenter
Definition: DtOsgOverlayPolygonModelInstance.h:242
The base class for simple OSG based model instances. This call can&#39;t be instantiated itself...
Definition: DtOsgModelInstance.h:77
DtSignalConnectionManager myConnections
Definition: DtOsgOverlayPolygonModelInstance.h:252
DtPolygon * myOutlinePolygon
Definition: DtOsgOverlayPolygonModelInstance.h:228
osg::Vec4 myInnerColor
Definition: DtOsgOverlayPolygonModelInstance.h:233
unsigned long long myUserData
Definition: DtOsgOverlayPolygonModelInstance.h:237
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
osg::Vec3d my3DOffset
Definition: DtOsgOverlayPolygonModelInstance.h:49
A variable vertex 2D polygon.
Definition: DtPolygon.h:19
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
Base class to provide boost signal/slot management.
bool myVisibleFlag
Definition: DtOsgOverlayPolygonModelInstance.h:240
float myWidth
Definition: DtOsgOverlayPolygonModelInstance.h:232
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:70
osg::Quat myRotation
Definition: DtOsgOverlayPolygonModelInstance.h:245
DtChannel * myChannelInstance
Definition: DtOsgOverlayPolygonModelInstance.h:249
osg::Vec3d myOrigin
Definition: DtOsgOverlayPolygonModelInstance.h:244
int myGroup
Definition: DtOsgOverlayPolygonModelInstance.h:250

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)