00001
00002
00003 #ifndef _VIEWER3D_POINTS_CLOUD_HPP_
00004 #define _VIEWER3D_POINTS_CLOUD_HPP_
00005
00006 #include <list>
00007 #include <geom/Point.hpp>
00008 #include <osg/ref_ptr>
00009
00010 namespace osg {
00011 class Geode;
00012 class Geometry;
00013 class StateSet;
00014 }
00015
00016 namespace jafar {
00017 namespace viewer3d {
00018 class Decorator;
00035 class PointsCloud {
00036 public:
00037 PointsCloud( const std::list<jafar::geom::Point3D>& points, const Decorator* decorator = 0, double _size = 0.1);
00038 ~PointsCloud( );
00039 public:
00040 osg::Geode* node();
00041 const std::list<jafar::geom::Point3D>& points() const;
00042 void setPoints( const std::list<jafar::geom::Point3D>& _points, const Decorator* decorator = 0 );
00043 private:
00044 std::list<jafar::geom::Point3D> m_points;
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