21 #ifndef _OF_SEGMENTARTIST_ 22 #define _OF_SEGMENTARTIST_ 26 #include <osg/LineStipple> 27 #include <osg/LineWidth> 41 const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY );
45 virtual Object* clone(
const osg::CopyOp& copyop)
const {
return new SegmentArtist(*
this,copyop); }
46 virtual bool isSameKindAs(
const osg::Object* obj)
const {
return dynamic_cast<const SegmentArtist*
>(obj)!=NULL; }
47 virtual const char* libraryName()
const {
return "OpenFrames"; }
48 virtual const char* className()
const {
return "SegmentArtist"; }
51 virtual void setTrajectory(
const Trajectory *traj);
54 bool setStartXData(
const Trajectory::DataSource &src);
55 bool setEndXData(
const Trajectory::DataSource &src);
56 bool setStartYData(
const Trajectory::DataSource &src);
57 bool setEndYData(
const Trajectory::DataSource &src);
58 bool setStartZData(
const Trajectory::DataSource &src);
59 bool setEndZData(
const Trajectory::DataSource &src);
62 void setStride(
unsigned int stride);
63 inline unsigned int getStride()
const {
return _stride; }
66 void setColor(
float r,
float g,
float b);
67 void setWidth(
float width );
68 void setPattern( GLint factor, GLushort pattern );
71 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
75 virtual void dataCleared(Trajectory* traj);
76 virtual void dataAdded(Trajectory* traj);
79 virtual ~SegmentArtist();
82 virtual osg::BoundingBox computeBoundingBox()
const;
84 void verifyData()
const;
86 Trajectory::DataSource _startSource[3];
87 Trajectory::DataSource _endSource[3];
93 osg::ref_ptr<osg::LineStipple> _linePattern;
96 mutable bool _dataValid;
97 mutable bool _startDataZero;
98 mutable bool _endDataZero;
Abstract class for Trajectory objects.
Definition: TrajectoryArtist.hpp:42
Definition: SegmentArtist.hpp:34
Definition: CoordinateAxes.hpp:29
virtual Object * cloneType() const
Definition: SegmentArtist.hpp:44
Holds a collection of data vectors.
Definition: Trajectory.hpp:42
osg::ref_ptr< osg::LineWidth > _lineWidth
Definition: SegmentArtist.hpp:92