VR-Forces 4.5 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) 2015 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 
121 
123  virtual void setUpExtent(float height);
124 
126  virtual void setDownExtent(float height);
127 
129  virtual void setLeftExtent(float height);
130 
132  virtual void setRightExtent(float heigh);
134 
136  virtual void setWidth(float);
137 
140  virtual void setHeight(float);
141 
143  virtual void setDimensions(float width, float height);
144 
147  virtual void setLineWidth(float width);
148 
150  virtual void setScribed(bool b);
151 
153  virtual void setScribeWidth(float);
154 
157  virtual void setScribeColor(float r, float g, float b, float a);
158 
160  virtual void setOcclusionEnabled(bool enabled);
161 
163  virtual void setVisible(bool isVisible) {}
164 
166  int pointCount() const
167  {
168  return myLinePoints.size();
169  }
170 
172  const DtVector& point(int) const;
173 
175  virtual void setPickable(bool);
176 
178  bool pickable() const;
179 
181  void setOrigin(const DtVector& origin);
182 
184  virtual void setSolid(bool);
185 
187  virtual void update();
188 
190  virtual void setSegmentEndArrow(int, bool);
191 
193  virtual void setSegmentStartArrow(int, bool);
194 
196  virtual void setArrowSize(double);
197 
199  virtual void setLineStyle(vrvTacticalGraphicUtilities::LineStyle);
200 
202  virtual void setArrowStyle(vrvTacticalGraphicUtilities::ArrowStyle);
203 
206  virtual void channelUpdated(const DtTacticalGraphicModelUpdaterManager::ChannelUpdateData&);
207 
210  virtual void setFixedWidthSizing(bool);
211 
214  virtual void setChannelInstance(DtChannel*);
215 
217  virtual bool hasArrows() const;
218 
219  protected:
221  virtual void updateGeometry();
222 
224  virtual DtExtrudedLineModelSegmentInstance* createSegment();
225 
227  virtual void removeSegment(int);
228 
230  std::vector<DtVector> updatePointsForLineStyle(const std::vector<DtVector>&, std::vector<int>&) const;
231 
233  virtual void resizeSegments(int);
234 
236  virtual void updateArrowState();
237 
239  virtual void updateSizes(double);
240 
242  virtual void updateWithViewResolution(double);
243 
244  protected:
245  osg::ref_ptr<osg::Group> myMainTransform;
246 
249 
250  typedef std::vector<DtExtrudedLineModelSegmentInstance*> SegmentInformationArray;
252 
253  osg::Vec4 myColor;
254  osg::Vec4 myScribeColor;
256  bool myScribed;
257 
258  bool mySolid;
261 
262  osg::ref_ptr<osg::Texture> myTexture;
265 
266  float myLineWidth;
267  float myUpExtent;
271 
272  unsigned int myStipplePattern;
276  double myArrowSize;
279  std::vector<int> mySegmentsToErase;
280 
283  };
284 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)