]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/PointList.h
...
[cpPlugins.git] / lib / cpPlugins / Interface / PointList.h
1 #ifndef __CPPLUGINS__INTERFACE__POINTLIST__H__
2 #define __CPPLUGINS__INTERFACE__POINTLIST__H__
3
4 #include <cpPlugins/Interface/DataObject.h>
5
6 namespace cpPlugins
7 {
8   namespace Interface
9   {
10     /**
11      */
12     class cpPlugins_Interface_EXPORT PointList
13       : public DataObject
14     {
15     public:
16       typedef PointList                       Self;
17       typedef DataObject                      Superclass;
18       typedef itk::SmartPointer< Self >       Pointer;
19       typedef itk::SmartPointer< const Self > ConstPointer;
20
21     public:
22       itkNewMacro( Self );
23       itkTypeMacro( PointList, DataObject );
24       cpPlugins_Id_Macro( PointList, DataObject );
25
26     public:
27       unsigned long GetNumberOfPoints( ) const;
28
29       void Clear( );
30
31       template< class P >
32         inline void AddPoint( const P& p );
33
34       template< class P >
35         inline P GetPoint( const unsigned long& i ) const;
36
37     protected:
38       PointList( );
39       virtual ~PointList( );
40
41     private:
42       // Purposely not implemented
43       PointList( const Self& );
44       Self& operator=( const Self& );
45
46     protected:
47       unsigned long m_NumberOfPoints;
48     };
49
50   } // ecapseman
51
52 } // ecapseman
53
54 #include <cpPlugins/Interface/PointList.hxx>
55
56 #endif // __CPPLUGINS__INTERFACE__POINTLIST__H__
57
58 // eof - $RCSfile$