VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtExtrudedLineModelInstance.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>
16 
17 #include <matrix/vlVector.h>
18 
19 #include <osg/PrimitiveSet>
20 #include <osg/Geometry>
21 #include <osg/Texture>
22 
23 namespace osg
24 {
25  class Group;
26 }
27 
28 namespace makVrv
29 {
30  class DtExtrudedLineModelSegmentInstance;
31  class DtChannel;
32 
36  {
37  public:
38  typedef std::vector<DtVector> PointVector;
39 
42  {
43  bool startArrow;
44  bool endArrow;
45  unsigned int stipple;
47  float color[4];
48  };
49 
50  public:
53 
55  virtual ~DtExtrudedLineModelInstance();
56 
58  virtual const std::vector<DtVector>& points() const;
59 
61  virtual void addPoint(const DtVector&, int index = -1);
62 
64  virtual void removePoint(int index);
65 
67  virtual void setPosition(int index, const DtVector&);
68 
71  virtual void setLinePoints(const std::vector<DtVector>&);
72 
74  virtual void clearPoints();
75 
78  virtual bool realize(DtModelDefinition& definition);
79 
81  virtual void addToConnector( DtOsgSceneConnector* connector );
82 
84  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
85 
87  virtual void setStipplePattern(unsigned int, int repeatFactor);
88 
90  virtual std::vector<SegmentInformation> segmentInformation() const;
91 
95  virtual void setSegmentInformation(const std::vector<SegmentInformation>&);
96 
98  virtual void setSegmentStipplePattern(int s, unsigned int, int repeatFactor);
99 
101  virtual void setColor(float r,float g,float b,float a);
102 
104  virtual void setSegmentColor(int, float r, float g, float b, float a);
105 
107  virtual void setTextureHeight(double height);
108 
110  virtual void setTextureWidth(double width);
111 
113  virtual void setTexture(osg::Texture* texture);
114 
116  virtual void setUpExtent(float height);
117 
119  virtual void setDownExtent(float height);
120 
122  virtual void setLeftExtent(float height);
123 
125  virtual void setRightExtent(float heigh);
126 
128  virtual void setWidth(float);
129 
132  virtual void setHeight(float);
133 
135  virtual void setDimensions(float width, float height);
136 
139  virtual void setLineWidth(float width);
140 
142  virtual void setScribed(bool b);
143 
146  virtual void setScribeColor(float r, float g, float b, float a);
147 
149  virtual void setScribeOccluded(bool b);
150 
152  virtual void setOcclusionEnabled(bool enabled);
153 
155  virtual void setVisible(bool isVisible) {}
156 
158  int pointCount() const
159  {
160  return myLinePoints.size();
161  }
162 
164  const DtVector& point(int) const;
165 
167  virtual void setPickable(bool);
168 
170  bool pickable() const;
171 
173  void setOrigin(const DtVector& origin);
174 
176  virtual void setSolid(bool);
177 
179  virtual void update();
180 
182  virtual void setSegmentEndArrow(int, bool);
183 
185  virtual void setSegmentStartArrow(int, bool);
186 
188  virtual void setArrowSize(double);
189 
191  virtual void setLineStyle(vrvTacticalGraphicUtilities::LineStyle);
192 
194  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
195 
198  virtual void channelUpdated(DtTacticalGraphicModelUpdaterManager::ChannelUpdateData);
199 
202  virtual void setFixedWidthSizing(bool);
203 
206  virtual void setChannelInstance(DtChannel*);
207 
209  virtual bool hasArrows() const;
210 
211  protected:
213  virtual void updateGeometry();
214 
216  virtual DtExtrudedLineModelSegmentInstance* createSegment();
217 
219  virtual void removeSegment(int);
220 
222  std::vector<DtVector> updatePointsForLineStyle(const std::vector<DtVector>&, std::vector<int>&) const;
223 
225  virtual void resizeSegments(int);
226 
228  virtual void updateArrowState();
229 
231  virtual void updateSizes(double);
232 
234  virtual void updateWithViewResolution(double);
235 
236  protected:
237  osg::ref_ptr<osg::Group> myMainTransform;
238 
241 
242  typedef std::vector<DtExtrudedLineModelSegmentInstance*> SegmentInformationArray;
244 
245  osg::Vec4 myColor;
246  osg::Vec4 myScribeColor;
248  bool myScribed;
249 
251  bool mySolid;
254 
255  osg::ref_ptr<osg::Texture> myTexture;
258 
259  float myLineWidth;
260  float myUpExtent;
264 
265  unsigned int myStipplePattern;
269  double myArrowSize;
272  std::vector<int> mySegmentsToErase;
273 
275  };
276 }

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)