VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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/Geode>
20 #include <osg/Geometry>
21 #include <osg/LineWidth>
22 
23 namespace osg
24 {
25  class Geode;
26  class Array;
27  class Texture;
28  class Group;
29 }
30 
31 namespace makVrv
32 {
33  class DtOsgSegmentPickable;
34  class DtDe;
35 
39  {
40  public:
42  {
46  FullExtrusion
47  };
48 
51 
54 
56  virtual void setStipplePattern(unsigned int, int repeatFactor);
57 
59  virtual void getStipplePattern(unsigned int&, int&);
60 
62  virtual void setColor(const osg::Vec4&);
63 
65  virtual void getColor(float& r, float& g, float& b, float& a);
66 
68  virtual void setPoints(const DtVector& start, const DtVector& end);
69  virtual void updatePoints(const DtVector&, const DtVector&);
70 
72  virtual void setTextureHeight(double height);
73 
75  virtual void setTextureWidth(double width);
76 
78  virtual void setTexture(osg::Texture* texture);
79 
86 
88  virtual void setUpExtent(float height);
89 
91  virtual void setDownExtent(float height);
92 
94  virtual void setLeftExtent(float height);
95 
97  virtual void setRightExtent(float heigh);
99 
101  virtual void setWidth(float);
102 
104  virtual void setScribeWidth(float);
105 
108  virtual void setHeight(float);
109 
112  virtual void setLineWidth(float width);
113 
115  virtual void setScribed(bool b);
116 
119  virtual void setScribeColor(const osg::Vec4&);
120 
122  virtual void setOcclusionEnabled(bool enabled);
123 
125  virtual void setPickable(bool);
126 
128  bool pickable() const;
129 
131  osg::Node* rootNode();
132 
134  void setOrigin(const DtVector& origin);
135 
137  virtual void setSolid(bool);
138 
140  virtual void setEndArrow(bool);
141 
143  virtual bool endArrow() const;
144 
146  virtual void setStartArrow(bool);
147 
149  virtual bool startArrow() const;
150 
152  virtual void setArrowSize(double);
153 
155  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
156 
160  virtual void setIsLastSegment(bool);
161  virtual bool isLastSegment() const;
162 
163  protected:
165  virtual void updateMode();
166 
168  virtual void updateTextureCoordinates();
169 
171  virtual int addPointsForExtentExtrusion(const DtVector& point);
172 
175  virtual void setupScribeTransparency(bool b);
176 
178  virtual int addFaceForRotation(const osg::Quat& rotation, const DtVector& point);
179 
181  virtual int addPointsForFullExtrusion(const DtVector& from,
182  const DtVector& to);
183 
185  virtual void updateStippling();
186 
188  virtual void updateScribeLine();
189 
191  virtual void updateColors();
192 
194  virtual bool frontAndBackFaceRendered() const;
195 
197  virtual void updatePointsForLineStrip();
198 
200  virtual void updatePointsForTriangleStrip();
201 
203  virtual void updatePointsForExtrusion();
204 
206  virtual void createFaces();
207 
209  virtual void updateScribeForTriangleStrip();
210 
212  virtual void updateScribeForExtrusion();
213 
215  virtual void updatePointsWithArrows();
216 
218  virtual void connectFaces(osg::DrawElementsUInt*, int startFace, int endFace) const;
219 
220  protected:
221  typedef std::vector<DtVector> PointVector;
222 
223  osg::ref_ptr<osg::Geode> myShapeGeode;
224  osg::ref_ptr<osg::Geometry> myShapeGeometry;
225  osg::ref_ptr<osg::Vec3Array> myShapePoints;
226 
227  osg::ref_ptr<osg::Geode> myScribeGeode;
228  osg::ref_ptr<osg::Geometry> myScribeGeometry;
229  osg::ref_ptr<osg::Vec3Array> myScribePoints;
230 
231  osg::ref_ptr<osg::Texture> myTexture;
232  osg::ref_ptr<osg::Vec2Array> myTextureCoordinates;
233 
234  osg::ref_ptr<osg::LineWidth> myLineWidth;
235  osg::ref_ptr<osg::LineWidth> myScribeWidth;
236  osg::ref_ptr<osg::Group> myMainTransform;
237 
238  osg::Vec4 myColor;
239 
242 
243  float myUpExtent;
247 
251 
254  double myArrowSize;
256 
258 
259  bool myScribed;
260  bool mySolid;
262 
263  unsigned int myStipplePattern;
265 
267 
272 
273  osg::Vec4 myScribeColor;
275 
277 
279  };
280 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)