16 #include <matrix/vlVector.h>
18 #include <osg/PrimitiveSet>
19 #include <osg/Geometry>
20 #include <osg/LineWidth>
32 class DtOsgSegmentPickable;
55 virtual void setStipplePattern(
unsigned int,
int repeatFactor);
58 virtual void getStipplePattern(
unsigned int&,
int&);
61 virtual void setColor(
const osg::Vec4&);
64 virtual void getColor(
float& r,
float& g,
float& b,
float& a);
71 virtual void setTextureHeight(
double height);
74 virtual void setTextureWidth(
double width);
80 virtual void setUpExtent(
float height);
83 virtual void setDownExtent(
float height);
86 virtual void setLeftExtent(
float height);
89 virtual void setRightExtent(
float heigh);
92 virtual void setWidth(
float);
96 virtual void setHeight(
float);
100 virtual void setLineWidth(
float width);
103 virtual void setScribed(
bool b);
107 virtual void setScribeColor(
const osg::Vec4&);
110 virtual void setScribeOccluded(
bool b);
113 virtual void setOcclusionEnabled(
bool enabled);
116 virtual void setPickable(
bool);
119 bool pickable()
const;
122 osg::Node* rootNode();
125 void setOrigin(
const DtVector& origin);
128 virtual void setSolid(
bool);
131 virtual void setEndArrow(
bool);
134 virtual bool endArrow()
const;
137 virtual void setStartArrow(
bool);
140 virtual bool startArrow()
const;
143 virtual void setArrowSize(
double);
151 virtual void setIsLastSegment(
bool);
152 virtual bool isLastSegment()
const;
156 virtual void updateMode();
159 virtual void updateTextureCoordinates();
162 virtual int addPointsForExtentExtrusion(
const DtVector& point);
165 virtual int addFaceForRotation(
const osg::Quat& rotation,
const DtVector& point);
168 virtual int addPointsForFullExtrusion(
const DtVector& from,
172 virtual void updateStippling();
175 virtual void updateScribeLine();
178 virtual void updateColors();
181 virtual bool frontAndBackFaceRendered()
const;
184 virtual void updatePointsForLineStrip();
187 virtual void updatePointsForTriangleStrip();
190 virtual void updatePointsForExtrusion();
193 virtual void createFaces();
196 virtual void updateScribeForTriangleStrip();
199 virtual void updateScribeForExtrusion(osg::Vec3Array*);
202 virtual void updatePointsWithArrows();