VR-Forces 4.1.1 Class Documentation
DtExtrudedLineModelInstance.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 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:
40  {
41  bool startArrow;
42  bool endArrow;
43  unsigned int stipple;
45  float color[4];
46  };
47 
48  public:
51 
53  virtual ~DtExtrudedLineModelInstance();
54 
56  virtual const std::vector<DtVector>& linePoints() const;
57 
59  virtual void addPoint(const DtVector&, int index = -1);
60 
62  virtual void removePoint(int index);
63 
65  virtual void setPosition(int index, const DtVector&);
66 
69  virtual void setLinePoints(const std::vector<DtVector>&);
70 
72  virtual void clearPoints();
73 
76  virtual bool realize(DtModelDefinition& definition);
77 
79  virtual void addToConnector( DtOsgSceneConnector* connector );
80 
82  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
83 
85  virtual void setStipplePattern(unsigned int, int repeatFactor);
86 
88  virtual std::vector<SegmentInformation> segmentInformation() const;
89 
93  virtual void setSegmentInformation(const std::vector<SegmentInformation>&);
94 
96  virtual void setSegmentStipplePattern(int s, unsigned int, int repeatFactor);
97 
99  virtual void setColor(float r,float g,float b,float a);
100 
102  virtual void setSegmentColor(int, float r, float g, float b, float a);
103 
105  virtual void setTextureHeight(double height);
106 
108  virtual void setTextureWidth(double width);
109 
111  virtual void setTexture(osg::Texture* texture);
112 
114  virtual void setUpExtent(float height);
115 
117  virtual void setDownExtent(float height);
118 
120  virtual void setLeftExtent(float height);
121 
123  virtual void setRightExtent(float heigh);
124 
126  virtual void setWidth(float);
127 
130  virtual void setHeight(float);
131 
133  virtual void setDimensions(float width, float height);
134 
137  virtual void setLineWidth(float width);
138 
140  virtual void setScribed(bool b);
141 
144  virtual void setScribeColor(float r, float g, float b, float a);
145 
147  virtual void setScribeOccluded(bool b);
148 
150  virtual void setOcclusionEnabled(bool enabled);
151 
153  virtual void setVisible(bool isVisible) {}
154 
156  int pointCount() const
157  {
158  return myLinePoints.size();
159  }
160 
162  const DtVector& point(int) const;
163 
165  virtual void setPickable(bool);
166 
168  bool pickable() const;
169 
171  void setOrigin(const DtVector& origin);
172 
174  virtual void setSolid(bool);
175 
177  virtual void update();
178 
180  virtual void setSegmentEndArrow(int, bool);
181 
183  virtual void setSegmentStartArrow(int, bool);
184 
186  virtual void setArrowSize(double);
187 
189  virtual void setLineStyle(vrvTacticalGraphicUtilities::LineStyle);
190 
192  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
193 
196  virtual void channelUpdated(DtTacticalGraphicModelUpdaterManager::ChannelUpdateData);
197 
200  virtual void setFixedWidthSizing(bool);
201 
204  virtual void setChannelInstance(DtChannel*);
205 
207  virtual bool hasArrows() const;
208 
209  protected:
211  virtual void updateGeometry();
212 
214  virtual DtExtrudedLineModelSegmentInstance* createSegment();
215 
217  virtual void removeSegment(int);
218 
220  std::vector<DtVector> updatePointsForLineStyle(const std::vector<DtVector>&, std::vector<int>&) const;
221 
223  virtual void resizeSegments(int);
224 
226  virtual void updateArrowState();
227 
229  virtual void updateSizes(double);
230 
232  virtual void updateWithViewResolution(double);
233 
234  protected:
235  typedef std::vector<DtVector> PointVector;
236  osg::ref_ptr<osg::Group> myMainTransform;
237 
240 
241  typedef std::vector<DtExtrudedLineModelSegmentInstance*> SegmentInformationArray;
243 
244  osg::Vec4 myColor;
245  osg::Vec4 myScribeColor;
247  bool myScribed;
248 
250  bool mySolid;
253 
254  osg::ref_ptr<osg::Texture> myTexture;
257 
258  float myLineWidth;
259  float myUpExtent;
263 
264  unsigned int myStipplePattern;
268  double myArrowSize;
271  std::vector<int> mySegmentsToErase;
272 
274  };
275 }

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)