10 #ifndef DtAttachableLineModelInstanceSegment_H_
11 #define DtAttachableLineModelInstanceSegment_H_
16 #include <osg/Billboard>
17 #include <osg/MatrixTransform>
35 virtual void setStartPoint(
const osg::Vec3d& startPoint);
38 virtual void setEndPoint(
const osg::Vec3d& endPoint);
40 const osg::Vec3d& startPoint()
const
42 return myState.startPoint;
45 const osg::Vec3d& endPoint()
const
47 return myState.endPoint;
51 virtual void setColor(
const osg::Vec4& color);
54 virtual void setVertexColor(
unsigned int vertexIndex,
const osg::Vec4& color );
57 virtual void setStartArrow(
bool arrowEnabled);
60 virtual void setEndArrow(
bool arrowEnabled);
63 virtual void setLightningStyle(
bool lightningStyle);
66 virtual void setWidth(
double width);
69 virtual double width()
const;
72 virtual void setStipplePattern(
unsigned int stipplePattern,
int repeatFactor);
75 virtual osg::Node* rootNode();
77 const std::vector<osg::Vec3>& pickableVertices()
const;
80 virtual void update();
83 virtual void updateGeometry();
93 virtual void calculateArrowVertices(
94 const osg::Vec3d& segmentStart,
const osg::Vec3d& segmentEnd,
95 osg::Vec3d& arrowStartOut, osg::Vec3d& arrowEndOut);
98 virtual void buildVertices();
101 virtual void buildLinePrimitive();
104 virtual void buildPickableVertices();
107 virtual void buildColorArray();
112 virtual unsigned int startArrowVertexIndex();
117 virtual unsigned int endArrowVertexIndex();
122 virtual unsigned int lightningVertexIndex();