00001
00002
00003 #ifndef _VIEWER3D_SEGMENTS_CLOUD_HPP_
00004 #define _VIEWER3D_SEGMENTS_CLOUD_HPP_
00005
00006 #include <list>
00007 #include <geom/Declarations.hpp>
00008 #include <osg/Array>
00009 #include <osg/ref_ptr>
00010
00011 namespace osg {
00012 class Geode;
00013 class Geometry;
00014 class StateSet;
00015 }
00016
00017 namespace jafar {
00018 namespace viewer3d {
00019 class Decorator;
00035 class SegmentsCloud {
00036 public:
00037 SegmentsCloud( const std::list<jafar::geom::Segment3D>& segments, const Decorator* decorator = 0, double _lineWidth = 1.0);
00038 ~SegmentsCloud( );
00039 public:
00040 osg::Geode* node();
00041 const std::list<jafar::geom::Segment3D>& segments() const;
00042 void setSegments( const std::list<jafar::geom::Segment3D>& _segments, const Decorator* decorator = 0 );
00043 private:
00044 std::list<jafar::geom::Segment3D> m_segments;
00045 osg::ref_ptr<osg::Geode> m_geode;
00046 osg::ref_ptr<osg::Geometry> m_geometry;
00047 osg::ref_ptr<osg::StateSet> m_set;
00048 };
00049 }
00050 }
00051
00052 #endif