15 #include <matrix/vlVector.h>
17 #include <osg/PrimitiveSet>
18 #include <osg/Geometry>
31 class DtOsgSegmentPickable;
55 virtual const PointVector& points()
const;
58 virtual void addPoint(
const DtVector&,
int index = -1);
61 virtual void removePoint(
int index);
64 virtual void setPoints(
const std::vector<DtVector>&);
67 virtual void setPosition(
int index,
const DtVector&);
70 virtual void setPositions(
const std::vector<DtVector>&);
73 virtual void clearPoints();
86 virtual void setStipplePattern(
unsigned int);
89 virtual void setColor(
float r,
float g,
float b,
float a);
92 virtual void getColor(
float& r,
float& g,
float& b,
float& a)
const;
95 virtual void setTextureHeight(
double height);
98 virtual void setTextureWidth(
double width);
111 virtual void setUpExtent(
float height);
114 virtual void setDownExtent(
float height);
117 virtual void setLeftExtent(
float height);
120 virtual void setRightExtent(
float heigh);
124 virtual void setWidth(
float);
128 virtual void setHeight(
float);
131 virtual void setDimensions(
float width,
float height);
135 virtual void setLineWidth(
float width);
140 virtual void setScribeWidth(
float width);
145 virtual void setScribeAllPolygons(
bool);
148 virtual void setScribed(
bool b);
152 virtual void setScribeColor(
float r,
float g,
float b,
float a);
158 int pointCount()
const;
167 virtual void setPickable(
bool);
170 bool pickable()
const;
172 void setOrigin(
const DtVector& origin);
175 virtual void updatePoints();
178 virtual void setSolid(
bool);
181 osg::Node* rootNode();
185 virtual osg::Vec3 rotatePoint(
const osg::Vec3& org,
double range,
const DtTaitBryan& angle)
const;
188 virtual void updateMode();
191 virtual void updateGeometry();
194 virtual void updateTextureCoordinates();
197 virtual void addPointsForExtentExtrusion(
const DtVector& point);
200 virtual void addFaceForRotation(
const osg::Quat& rotation,
const DtVector& point);
203 virtual void addPointsForFullExtrusion(
const DtVector& from,
208 virtual void setupScribeTransparency(
bool b);
211 virtual void setupGeodeTransparency(
bool b);
214 virtual void updateStippling();
217 virtual void updateScribeLine();
220 virtual void updateColors();
223 virtual bool frontAndBackFaceRendered()
const;
226 virtual void updatePointsForLineStrip();
229 virtual void updatePointsForTriangleStrip();
232 virtual void updatePointsForExtrusion();
235 virtual void createFaces();
238 virtual void updateScribeForTriangleStrip();
241 virtual void updateScribeForExtrusion(osg::Vec3Array*);
244 virtual void updateScribeForOutline();
247 virtual void updateScribeForFull();
250 virtual void updateGeometryWithStrip(osg::ref_ptr<osg::Geometry>&,
const osg::ref_ptr<osg::Vec3Array>&);