VR-Forces 4.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 
206  protected:
208  virtual void updateGeometry();
209 
211  virtual DtExtrudedLineModelSegmentInstance* createSegment();
212 
214  virtual void removeSegment(int);
215 
217  std::vector<DtVector> updatePointsForLineStyle(const std::vector<DtVector>&, std::vector<int>&) const;
218 
220  virtual void resizeSegments(int);
221 
223  virtual void updateArrowState();
224 
226  virtual void updateSizes(double);
227 
229  virtual void updateWithViewResolution(double);
230 
231  protected:
232  typedef std::vector<DtVector> PointVector;
233  osg::ref_ptr<osg::Group> myMainTransform;
234 
237 
238  typedef std::vector<DtExtrudedLineModelSegmentInstance*> SegmentInformationArray;
240 
241  osg::Vec4 myColor;
242  osg::Vec4 myScribeColor;
244  bool myScribed;
245 
247  bool mySolid;
250 
251  osg::ref_ptr<osg::Texture> myTexture;
254 
255  float myLineWidth;
256  float myUpExtent;
260 
261  unsigned int myStipplePattern;
265  double myArrowSize;
268  std::vector<int> mySegmentsToErase;
269 
271  };
272 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)