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);
87 virtual void setUpExtent(
float height);
90 virtual void setDownExtent(
float height);
93 virtual void setLeftExtent(
float height);
96 virtual void setRightExtent(
float heigh);
100 virtual void setWidth(
float);
103 virtual void setScribeWidth(
float);
107 virtual void setHeight(
float);
111 virtual void setLineWidth(
float width);
114 virtual void setScribed(
bool b);
118 virtual void setScribeColor(
const osg::Vec4&);
121 virtual void setOcclusionEnabled(
bool enabled);
124 virtual void setPickable(
bool);
127 bool pickable()
const;
130 osg::Node* rootNode();
133 void setOrigin(
const DtVector& origin);
136 virtual void setSolid(
bool);
139 virtual void setEndArrow(
bool);
142 virtual bool endArrow()
const;
145 virtual void setStartArrow(
bool);
148 virtual bool startArrow()
const;
151 virtual void setArrowSize(
double);
159 virtual void setIsLastSegment(
bool);
160 virtual bool isLastSegment()
const;
164 virtual void updateMode();
167 virtual void updateTextureCoordinates();
170 virtual int addPointsForExtentExtrusion(
const DtVector& point);
174 virtual void setupScribeTransparency(
bool b);
177 virtual int addFaceForRotation(
const osg::Quat& rotation,
const DtVector& point);
180 virtual int addPointsForFullExtrusion(
const DtVector& from,
184 virtual void updateStippling();
187 virtual void updateScribeLine();
190 virtual void updateColors();
193 virtual bool frontAndBackFaceRendered()
const;
196 virtual void updatePointsForLineStrip();
199 virtual void updatePointsForTriangleStrip();
202 virtual void updatePointsForExtrusion();
205 virtual void createFaces();
208 virtual void updateScribeForTriangleStrip();
211 virtual void updateScribeForExtrusion();
214 virtual void updatePointsWithArrows();
217 virtual void connectFaces(osg::DrawElementsUInt*,
int startFace,
int endFace)
const;