VR-Forces 4.1.1 Class Documentation
DtExtrudedModelInstance.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>
14 
15 #include <matrix/vlVector.h>
16 
17 #include <osg/PrimitiveSet>
18 #include <osg/Geometry>
19 
20 namespace osg
21 {
22  class Geode;
23  class Array;
24  class Texture;
25  class LineWidth;
26  class Group;
27 }
28 
29 namespace makVrv
30 {
31  class DtOsgSegmentPickable;
32 
36  {
37  public:
39  {
43  FullExtrusion
44  };
45 
48 
50  virtual ~DtExtrudedModelInstance();
51 
53  virtual void addPoint(const DtVector&, int index = -1);
54 
56  virtual void removePoint(int index);
57 
59  virtual void setPosition(int index, const DtVector&);
60 
62  virtual void clearPoints();
63 
66  virtual bool realize(DtModelDefinition& definition);
67 
69  virtual void addToConnector( DtOsgSceneConnector* connector );
70 
72  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
73 
75  virtual void setStipplePattern(unsigned int);
76 
78  virtual void setColor(float r,float g,float b,float a);
79 
81  virtual void setTextureHeight(double height);
82 
84  virtual void setTextureWidth(double width);
85 
87  virtual void setTexture(osg::Texture* texture);
88 
90  virtual void setUpExtent(float height);
91 
93  virtual void setDownExtent(float height);
94 
96  virtual void setLeftExtent(float height);
97 
99  virtual void setRightExtent(float heigh);
100 
102  virtual void setWidth(float);
103 
106  virtual void setHeight(float);
107 
109  virtual void setDimensions(float width, float height);
110 
113  virtual void setLineWidth(float width);
114 
116  virtual void setScribed(bool b);
117 
120  virtual void setScribeColor(float r, float g, float b, float a);
121 
123  virtual void setScribeOccluded(bool b);
124 
126  virtual void setVisible(bool isVisible) {}
127 
129  int pointCount() const;
130 
132  const DtVector& origin() const;
133 
135  const DtVector& point(int) const;
136 
138  virtual void setLockUpdates(bool);
139 
141  bool updatesLocked() const;
142 
144  virtual void setPickable(bool);
145 
147  bool pickable() const;
148 
149  void setOrigin(const DtVector& origin);
150 
152  virtual void updatePoints();
153 
155  virtual void setSolid(bool);
156 
157  protected:
158 
160  virtual void updateMode();
161 
163  virtual void updateGeometry();
164 
166  virtual void updateTextureCoordinates();
167 
169  virtual void addPointsForExtentExtrusion(const DtVector& point);
170 
172  virtual void addFaceForRotation(const osg::Quat& rotation, const DtVector& point);
173 
175  virtual void addPointsForFullExtrusion(const DtVector& from,
176  const DtVector& to);
177 
179  virtual void updateStippling();
180 
182  virtual void updateScribeLine();
183 
185  virtual void updateColors();
186 
188  virtual bool frontAndBackFaceRendered() const;
189 
191  virtual void updatePointsForLineStrip();
192 
194  virtual void updatePointsForTriangleStrip();
195 
197  virtual void updatePointsForExtrusion();
198 
200  virtual void createFaces();
201 
203  virtual void updateScribeForTriangleStrip();
204 
206  virtual void updateScribeForExtrusion(osg::Vec3Array*);
207 
208  protected:
209  typedef std::vector<DtVector> PointVector;
210 
211  osg::ref_ptr<osg::Geode> myShapeGeode;
212  osg::ref_ptr<osg::Geometry> myShapeGeometry;
213  osg::ref_ptr<osg::Vec3Array> myShapePoints;
214 
215  osg::ref_ptr<osg::Geode> myScribeGeode;
216  osg::ref_ptr<osg::Geometry> myScribeGeometry;
217  osg::ref_ptr<osg::Vec3Array> myScribePoints;
218 
219  osg::ref_ptr<osg::Texture> myTexture;
220  osg::ref_ptr<osg::Vec2Array> myTextureCoordinates;
221 
222  osg::ref_ptr<osg::LineWidth> myLineWidth;
223  osg::ref_ptr<osg::Group> myMainTransform;
224 
228  osg::ref_ptr<osg::Vec3Array> myFaces;
229 
230  osg::Vec4 myColor;
231 
234 
235  float myUpExtent;
239 
241 
243 
247 
249 
251  bool myScribed;
252  bool mySolid;
253 
256 
261 
262  osg::Vec4 myScribeColor;
264  };
265 }

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)