VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtExtrudedModelInstance.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>
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:
38  typedef std::vector<DtVector> PointVector;
39 
41  {
45  FullExtrusion
46  };
47 
50 
52  virtual ~DtExtrudedModelInstance();
53 
55  virtual const PointVector& points() const;
56 
58  virtual void addPoint(const DtVector&, int index = -1);
59 
61  virtual void removePoint(int index);
62 
64  virtual void setPosition(int index, const DtVector&);
65 
67  virtual void clearPoints();
68 
71  virtual bool realize(DtModelDefinition& definition);
72 
74  virtual void addToConnector( DtOsgSceneConnector* connector );
75 
77  virtual bool removeFromConnector( DtOsgSceneConnector* connector );
78 
80  virtual void setStipplePattern(unsigned int);
81 
83  virtual void setColor(float r,float g,float b,float a);
84 
86  virtual void setTextureHeight(double height);
87 
89  virtual void setTextureWidth(double width);
90 
92  virtual void setTexture(osg::Texture* texture);
93 
95  virtual void setUpExtent(float height);
96 
98  virtual void setDownExtent(float height);
99 
101  virtual void setLeftExtent(float height);
102 
104  virtual void setRightExtent(float heigh);
105 
107  virtual void setWidth(float);
108 
111  virtual void setHeight(float);
112 
114  virtual void setDimensions(float width, float height);
115 
118  virtual void setLineWidth(float width);
119 
121  virtual void setScribed(bool b);
122 
125  virtual void setScribeColor(float r, float g, float b, float a);
126 
128  virtual void setScribeOccluded(bool b);
129 
131  virtual void setVisible(bool isVisible) {}
132 
134  int pointCount() const;
135 
137  const DtVector& origin() const;
138 
140  const DtVector& point(int) const;
141 
143  virtual void setLockUpdates(bool);
144 
146  bool updatesLocked() const;
147 
149  virtual void setPickable(bool);
150 
152  bool pickable() const;
153 
154  void setOrigin(const DtVector& origin);
155 
157  virtual void updatePoints();
158 
160  virtual void setSolid(bool);
161 
162  protected:
163 
165  virtual void updateMode();
166 
168  virtual void updateGeometry();
169 
171  virtual void updateTextureCoordinates();
172 
174  virtual void addPointsForExtentExtrusion(const DtVector& point);
175 
177  virtual void addFaceForRotation(const osg::Quat& rotation, const DtVector& point);
178 
180  virtual void addPointsForFullExtrusion(const DtVector& from,
181  const DtVector& to);
182 
184  virtual void updateStippling();
185 
187  virtual void updateScribeLine();
188 
190  virtual void updateColors();
191 
193  virtual bool frontAndBackFaceRendered() const;
194 
196  virtual void updatePointsForLineStrip();
197 
199  virtual void updatePointsForTriangleStrip();
200 
202  virtual void updatePointsForExtrusion();
203 
205  virtual void createFaces();
206 
208  virtual void updateScribeForTriangleStrip();
209 
211  virtual void updateScribeForExtrusion(osg::Vec3Array*);
212 
213  protected:
214  osg::ref_ptr<osg::Geode> myShapeGeode;
215  osg::ref_ptr<osg::Geometry> myShapeGeometry;
216  osg::ref_ptr<osg::Vec3Array> myShapePoints;
217 
218  osg::ref_ptr<osg::Geode> myScribeGeode;
219  osg::ref_ptr<osg::Geometry> myScribeGeometry;
220  osg::ref_ptr<osg::Vec3Array> myScribePoints;
221 
222  osg::ref_ptr<osg::Texture> myTexture;
223  osg::ref_ptr<osg::Vec2Array> myTextureCoordinates;
224 
225  osg::ref_ptr<osg::LineWidth> myLineWidth;
226  osg::ref_ptr<osg::Group> myMainTransform;
227 
231  osg::ref_ptr<osg::Vec3Array> myFaces;
232 
233  osg::Vec4 myColor;
234 
237 
238  float myUpExtent;
242 
244 
246 
250 
252 
254  bool myScribed;
255  bool mySolid;
256 
259 
264 
265  osg::Vec4 myScribeColor;
267  };
268 }

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)