]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/PointList.h
6f43b32aef99afebea85f76446f69db1ffe3f0d9
[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       itkBooleanMacro( HaveEuclideanPoints );
27       itkGetConstMacro( HaveEuclideanPoints, bool );
28       itkSetMacro( HaveEuclideanPoints, bool );
29
30     public:
31       bool HaveEuclideanPoints( ) const;
32       unsigned long GetNumberOfPoints( ) const;
33
34       void Clear( );
35
36       template< class P >
37         inline void AddPoint( const P& p );
38
39       template< class P >
40         inline P GetPoint( const unsigned long& i ) const;
41
42     protected:
43       PointList( );
44       virtual ~PointList( );
45
46     private:
47       // Purposely not implemented
48       PointList( const Self& );
49       Self& operator=( const Self& );
50
51     protected:
52       unsigned long m_NumberOfPoints;
53       bool m_HaveEuclideanPoints;
54     };
55
56   } // ecapseman
57
58 } // ecapseman
59
60 #include <cpPlugins/Interface/PointList.hxx>
61
62 #endif // __CPPLUGINS__INTERFACE__POINTLIST__H__
63
64 // eof - $RCSfile$