16 #include <osg/MatrixTransform>
18 #include <boost/unordered_map.hpp>
22 class Dt3DLineModelInstanceSegmentInterface;
23 class Dt3DLineModelInstanceSegment;
24 class DtOsgSegmentPickable;
40 virtual void setPosition(
int vtx,
const DtVector& position );
44 virtual DtVector removePosition(
int vtx );
47 virtual void setWidth(
float width);
50 virtual void setColor(
float r,
float g,
float b,
float a);
53 virtual void setStipplePattern(
unsigned int pattern,
int repeatFactor );
57 virtual void setStyleSegments(
const std::vector<double>& segmentPercentages);
60 virtual void setSegmentColor(
unsigned int segmentIndex,
61 float r,
float g,
float b,
float a);
64 virtual void setSegmentLightningStyle(
unsigned int segmentIndex,
65 bool enableLightningStyle);
68 virtual void setSegmentStartArrow(
unsigned int segmentIndex,
72 virtual void setSegmentEndArrow(
unsigned int segmentIndex,
77 virtual void setSegmentStipplePattern(
unsigned int segmentIndex,
78 unsigned int stipplePattern,
int repeatFactor);
81 virtual void setSegmentWidth(
unsigned int segmentWidth,
double width);
85 virtual void setSegmentStartColor(
unsigned int segmentIndex,
float r,
86 float g,
float b,
float a );
90 virtual void setSegmentEndColor(
unsigned int segmentIndex,
float r,
91 float g,
float b,
float a );
94 virtual void setTerrainIntersect(
bool enabled);
97 virtual void setModelSet(
int modelSet );
110 virtual void setDepthTestEnabled(
bool enabled);
113 virtual void setVisible(
bool isVisible);
116 virtual void setPickable(
bool pickable );
119 bool pickable()
const;
122 virtual void update();
147 virtual void updatePickableSegments();
151 virtual void adjustSegmentVisibility(
int vtx,
bool visible );
154 virtual void resizeSegments(
int size);
157 virtual void resizeSegmentAttributes(
int size);
160 virtual void updateGeometry();
163 virtual void updateAllSegmentAttributes();
174 std::vector<Dt3DLineModelInstanceSegmentInterface*>
mySegments;