]> Creatis software - cpMesh.git/blob - lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.h
First commit
[cpMesh.git] / lib / cpm / Algorithms / QuadEdge / MeshPlaneCutterFilter.h
1 #ifndef __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__
2 #define __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__
3
4 #include <itkMeshToMeshFilter.h>
5
6 namespace cpm
7 {
8   namespace Algorithms
9   {
10     namespace QuadEdge
11     {
12       /**
13        */
14       template< class M >
15       class MeshPlaneCutterFilter
16         : public itk::MeshToMeshFilter< M, M >
17       {
18       public:
19         typedef MeshPlaneCutterFilter           Self;
20         typedef itk::MeshToMeshFilter< M, M >   Superclass;
21         typedef itk::SmartPointer< Self >       Pointer;
22         typedef itk::SmartPointer< const Self > ConstPointer;
23
24         typedef M TMesh;
25         typedef typename M::TScalar         TScalar;
26         typedef typename M::PointType       TPoint;
27         typedef typename TPoint::VectorType TVector;
28
29       public:
30         itkNewMacro( Self );
31         itkTypeMacro( MeshPlaneCutterFilter, itkMeshToMeshFilter );
32
33         itkGetConstMacro( PlanePoint, TVector );
34         itkGetConstMacro( PlaneNormal, TVector );
35
36         itkSetMacro( PlanePoint, TVector );
37
38       public:
39         void SetPlaneNormal( const TVector& n );
40
41       protected:
42         MeshPlaneCutterFilter( );
43         virtual ~MeshPlaneCutterFilter( );
44
45         virtual void GenerateData( );
46
47       private:
48         // Purposely not implemented
49         MeshPlaneCutterFilter( const Self& );
50         void operator=( const Self& );
51
52       protected:
53         TVector m_PlanePoint;
54         TVector m_PlaneNormal;
55       };
56
57     } // ecapseman
58
59   } // ecapseman
60
61 } // ecapseman
62
63 #include <cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.hxx>
64
65 #endif // __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__
66
67 // eof - $RCSfile$