16 #include <matrix/vlVector.h>
18 #include <osg/PrimitiveSet>
20 #include <osg/Geometry>
21 #include <osg/LineWidth>
33 class DtOsgSegmentPickable;
56 virtual void setStipplePattern(
unsigned int,
int repeatFactor);
59 virtual void getStipplePattern(
unsigned int&,
int&);
62 virtual void setColor(
const osg::Vec4&);
65 virtual void getColor(
float& r,
float& g,
float& b,
float& a);
72 virtual void setTextureHeight(
double height);
75 virtual void setTextureWidth(
double width);
88 virtual void setUpExtent(
float height);
91 virtual void setDownExtent(
float height);
94 virtual void setLeftExtent(
float height);
97 virtual void setRightExtent(
float heigh);
101 virtual void setWidth(
float);
104 virtual void setScribeWidth(
float);
108 virtual void setHeight(
float);
112 virtual void setLineWidth(
float width);
115 virtual void setScribed(
bool b);
119 virtual void setScribeColor(
const osg::Vec4&);
122 virtual void setOcclusionEnabled(
bool enabled);
125 virtual void setPickable(
bool);
128 bool pickable()
const;
131 osg::Node* rootNode();
134 void setOrigin(
const DtVector& origin);
137 virtual void setSolid(
bool);
140 virtual void setEndArrow(
bool);
143 virtual bool endArrow()
const;
146 virtual void setStartArrow(
bool);
149 virtual bool startArrow()
const;
152 virtual void setArrowSize(
double);
160 virtual void setIsLastSegment(
bool);
161 virtual bool isLastSegment()
const;
165 virtual void updateMode();
168 virtual void updateTextureCoordinates();
171 virtual int addPointsForExtentExtrusion(
const DtVector& point);
175 virtual void setupScribeTransparency(
bool b);
178 virtual int addFaceForRotation(
const osg::Quat& rotation,
const DtVector& point);
181 virtual int addPointsForFullExtrusion(
const DtVector& from,
185 virtual void updateStippling();
188 virtual void updateScribeLine();
191 virtual void updateColors();
194 virtual bool frontAndBackFaceRendered()
const;
197 virtual void updatePointsForLineStrip();
200 virtual void updatePointsForTriangleStrip();
203 virtual void updatePointsForExtrusion();
206 virtual void createFaces();
209 virtual void updateScribeForTriangleStrip();
212 virtual void updateScribeForExtrusion();
215 virtual void updatePointsWithArrows();
218 virtual void connectFaces(osg::DrawElementsUInt*,
int startFace,
int endFace)
const;