VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtExtrudedLineModelSegmentInstance.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>
15 
16 #include <matrix/vlVector.h>
17 
18 #include <osg/PrimitiveSet>
19 #include <osg/Geometry>
20 #include <osg/LineWidth>
21 
22 namespace osg
23 {
24  class Geode;
25  class Array;
26  class Texture;
27  class Group;
28 }
29 
30 namespace makVrv
31 {
32  class DtOsgSegmentPickable;
33  class DtDe;
34 
38  {
39  public:
41  {
45  FullExtrusion
46  };
47 
50 
53 
55  virtual void setStipplePattern(unsigned int, int repeatFactor);
56 
58  virtual void getStipplePattern(unsigned int&, int&);
59 
61  virtual void setColor(const osg::Vec4&);
62 
64  virtual void getColor(float& r, float& g, float& b, float& a);
65 
67  virtual void setPoints(const DtVector& start, const DtVector& end);
68  virtual void updatePoints(const DtVector&, const DtVector&);
69 
71  virtual void setTextureHeight(double height);
72 
74  virtual void setTextureWidth(double width);
75 
77  virtual void setTexture(osg::Texture* texture);
78 
85 
87  virtual void setUpExtent(float height);
88 
90  virtual void setDownExtent(float height);
91 
93  virtual void setLeftExtent(float height);
94 
96  virtual void setRightExtent(float heigh);
98 
100  virtual void setWidth(float);
101 
103  virtual void setScribeWidth(float);
104 
107  virtual void setHeight(float);
108 
111  virtual void setLineWidth(float width);
112 
114  virtual void setScribed(bool b);
115 
118  virtual void setScribeColor(const osg::Vec4&);
119 
121  virtual void setOcclusionEnabled(bool enabled);
122 
124  virtual void setPickable(bool);
125 
127  bool pickable() const;
128 
130  osg::Node* rootNode();
131 
133  void setOrigin(const DtVector& origin);
134 
136  virtual void setSolid(bool);
137 
139  virtual void setEndArrow(bool);
140 
142  virtual bool endArrow() const;
143 
145  virtual void setStartArrow(bool);
146 
148  virtual bool startArrow() const;
149 
151  virtual void setArrowSize(double);
152 
154  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
155 
159  virtual void setIsLastSegment(bool);
160  virtual bool isLastSegment() const;
161 
162  protected:
164  virtual void updateMode();
165 
167  virtual void updateTextureCoordinates();
168 
170  virtual int addPointsForExtentExtrusion(const DtVector& point);
171 
174  virtual void setupScribeTransparency(bool b);
175 
177  virtual int addFaceForRotation(const osg::Quat& rotation, const DtVector& point);
178 
180  virtual int addPointsForFullExtrusion(const DtVector& from,
181  const DtVector& to);
182 
184  virtual void updateStippling();
185 
187  virtual void updateScribeLine();
188 
190  virtual void updateColors();
191 
193  virtual bool frontAndBackFaceRendered() const;
194 
196  virtual void updatePointsForLineStrip();
197 
199  virtual void updatePointsForTriangleStrip();
200 
202  virtual void updatePointsForExtrusion();
203 
205  virtual void createFaces();
206 
208  virtual void updateScribeForTriangleStrip();
209 
211  virtual void updateScribeForExtrusion();
212 
214  virtual void updatePointsWithArrows();
215 
217  virtual void connectFaces(osg::DrawElementsUInt*, int startFace, int endFace) const;
218 
219  protected:
220  typedef std::vector<DtVector> PointVector;
221 
222  osg::ref_ptr<osg::Geode> myShapeGeode;
223  osg::ref_ptr<osg::Geometry> myShapeGeometry;
224  osg::ref_ptr<osg::Vec3Array> myShapePoints;
225 
226  osg::ref_ptr<osg::Geode> myScribeGeode;
227  osg::ref_ptr<osg::Geometry> myScribeGeometry;
228  osg::ref_ptr<osg::Vec3Array> myScribePoints;
229 
230  osg::ref_ptr<osg::Texture> myTexture;
231  osg::ref_ptr<osg::Vec2Array> myTextureCoordinates;
232 
233  osg::ref_ptr<osg::LineWidth> myLineWidth;
234  osg::ref_ptr<osg::LineWidth> myScribeWidth;
235  osg::ref_ptr<osg::Group> myMainTransform;
236 
237  osg::Vec4 myColor;
238 
241 
242  float myUpExtent;
246 
250 
253  double myArrowSize;
255 
257 
258  bool myScribed;
259  bool mySolid;
261 
262  unsigned int myStipplePattern;
264 
266 
271 
272  osg::Vec4 myScribeColor;
274 
276 
278  };
279 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)