VR-Forces 4.3 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) 2013 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 
80  virtual void setUpExtent(float height);
81 
83  virtual void setDownExtent(float height);
84 
86  virtual void setLeftExtent(float height);
87 
89  virtual void setRightExtent(float heigh);
90 
92  virtual void setWidth(float);
93 
96  virtual void setHeight(float);
97 
100  virtual void setLineWidth(float width);
101 
103  virtual void setScribed(bool b);
104 
107  virtual void setScribeColor(const osg::Vec4&);
108 
110  virtual void setScribeOccluded(bool b);
111 
113  virtual void setOcclusionEnabled(bool enabled);
114 
116  virtual void setPickable(bool);
117 
119  bool pickable() const;
120 
122  osg::Node* rootNode();
123 
125  void setOrigin(const DtVector& origin);
126 
128  virtual void setSolid(bool);
129 
131  virtual void setEndArrow(bool);
132 
134  virtual bool endArrow() const;
135 
137  virtual void setStartArrow(bool);
138 
140  virtual bool startArrow() const;
141 
143  virtual void setArrowSize(double);
144 
146  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
147 
151  virtual void setIsLastSegment(bool);
152  virtual bool isLastSegment() const;
153 
154  protected:
156  virtual void updateMode();
157 
159  virtual void updateTextureCoordinates();
160 
162  virtual int addPointsForExtentExtrusion(const DtVector& point);
163 
165  virtual int addFaceForRotation(const osg::Quat& rotation, const DtVector& point);
166 
168  virtual int addPointsForFullExtrusion(const DtVector& from,
169  const DtVector& to);
170 
172  virtual void updateStippling();
173 
175  virtual void updateScribeLine();
176 
178  virtual void updateColors();
179 
181  virtual bool frontAndBackFaceRendered() const;
182 
184  virtual void updatePointsForLineStrip();
185 
187  virtual void updatePointsForTriangleStrip();
188 
190  virtual void updatePointsForExtrusion();
191 
193  virtual void createFaces();
194 
196  virtual void updateScribeForTriangleStrip();
197 
199  virtual void updateScribeForExtrusion(osg::Vec3Array*);
200 
202  virtual void updatePointsWithArrows();
203 
204  protected:
205  typedef std::vector<DtVector> PointVector;
206 
207  osg::ref_ptr<osg::Geode> myShapeGeode;
208  osg::ref_ptr<osg::Geometry> myShapeGeometry;
209  osg::ref_ptr<osg::Vec3Array> myShapePoints;
210 
211  osg::ref_ptr<osg::Geode> myScribeGeode;
212  osg::ref_ptr<osg::Geometry> myScribeGeometry;
213  osg::ref_ptr<osg::Vec3Array> myScribePoints;
214 
215  osg::ref_ptr<osg::Texture> myTexture;
216  osg::ref_ptr<osg::Vec2Array> myTextureCoordinates;
217 
218  osg::ref_ptr<osg::LineWidth> myLineWidth;
219  osg::ref_ptr<osg::Group> myMainTransform;
220 
224  osg::ref_ptr<osg::Vec3Array> myFaces;
225 
226  osg::Vec4 myColor;
227 
230 
231  float myUpExtent;
235 
239 
242  double myArrowSize;
244 
246 
248  bool myScribed;
249  bool mySolid;
250 
251  unsigned int myStipplePattern;
253 
255 
260 
261  osg::Vec4 myScribeColor;
263 
265 
267  };
268 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)