16 #include <osg/Texture>
20 class DtSegmentedLine;
21 class DtChannelManager;
59 virtual void setPosition(
int vtx,
const DtVector& position );
62 virtual void removePosition(
int vtx );
65 virtual void setWidth(
float width);
68 virtual void setColor(
float r,
float g,
float b,
float a);
71 virtual void setStipplePattern(
unsigned int pattern,
int repeatFactor );
75 virtual void setStyleSegments(
const std::vector<double>& segmentPercentages);
78 virtual void setSegmentColor(
unsigned int segmentIndex,
79 float r,
float g,
float b,
float a);
82 virtual void setSegmentLightningStyle(
unsigned int segmentIndex,
83 bool enableLightningStyle);
86 virtual void setSegmentStartArrow(
unsigned int segmentIndex,
90 virtual void setSegmentEndArrow(
unsigned int segmentIndex,
95 virtual void setSegmentStipplePattern(
unsigned int segmentIndex,
96 unsigned int stipplePattern,
int repeatFactor);
99 virtual void setSegmentWidth(
unsigned int segmentIndex,
double width);
103 virtual void setSegmentStartColor(
unsigned int segmentIndex,
float r,
104 float g,
float b,
float a );
108 virtual void setSegmentEndColor(
unsigned int segmentIndex,
float r,
109 float g,
float b,
float a );
113 virtual void setModelSet(
int modelSet );
120 virtual void setVisible(
bool isVisible);
123 virtual void setEventsEnabled(
bool enabled,
unsigned long long userData );
126 virtual void setEventWidth(
float width);
129 virtual void update();
132 virtual void setRotation(
const osg::Quat& quat);
135 virtual void setArrowSize(
double);
147 virtual bool isTextured()
const;
151 virtual void setFixedWidthSizing(
bool);
155 virtual void setGroup(
int );
160 virtual void setChannelInstance(
DtChannel*,
int modelSet);
163 virtual const std::vector<DtVector>& points()
const;
166 virtual void setPoints(
const std::vector<DtVector>&);
177 virtual void updateGeometry();
181 virtual void updateSegmentsWithArrows(
const std::vector<DtVector>& pts,
182 std::vector<DtVector>& drawPoints, std::vector<DtVector>& twodOffsets);
198 virtual void createLineIfNecessary();
201 virtual void updateSegments();
204 virtual void updateGeometryForLineStyle();
207 virtual void resizeSegmentAttributes(
int size );
210 virtual void set3DVertexPosition(
unsigned int index,
double x,
double y,
214 virtual void set3DPositionAux(
double x,
double y,
double z,
215 float tempPackedCoords[4] );
221 void updatePointsForLineStyle(
const std::vector<DtVector>&, std::vector<DtVector>& drawPoints,
222 std::vector<DtVector>& twodOffsets, std::vector<int>& segmentsToErase)
const;