]> Creatis software - cpMesh.git/blob - lib/cpm/Algorithms/QuadEdge/MeshZipFunction.h
First commit
[cpMesh.git] / lib / cpm / Algorithms / QuadEdge / MeshZipFunction.h
1 #ifndef __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__H__
2 #define __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__H__
3
4 #include <cpm/Algorithms/QuadEdge/MeshFunctionBase.h>
5
6 namespace cpm
7 {
8   namespace Algorithms
9   {
10     namespace QuadEdge
11     {
12       /**
13        */
14       template< typename M >
15       class MeshZipFunction
16         : public MeshFunctionBase< M, typename M::TPrimalEdge*, typename M::TPrimalEdge::TPrimalGeometry >
17       {
18       public:
19         typedef typename M::TPrimalEdge                  TEdge;
20         typedef typename TEdge::TPrimalGeometry          TGeometry;
21         typedef MeshZipFunction                          Self;
22         typedef MeshFunctionBase< M, TEdge*, TGeometry > Superclass;
23         typedef itk::SmartPointer< Self >                Pointer;
24         typedef itk::SmartPointer< const Self >          ConstPointer;
25
26         typedef M TMesh;
27         typedef typename Superclass::TInput  TInput;
28         typedef typename Superclass::TOutput TOutput;
29
30       public:
31         itkNewMacro( Self );
32         itkTypeMacro( MeshZipFunction, MeshFunctionBase );
33
34       public:
35         virtual TOutput Evaluate( const TInput& e );
36
37       protected:
38         MeshZipFunction( );
39         virtual ~MeshZipFunction( );
40
41       private:
42         // Purposely not implemented
43         MeshZipFunction( const Self& );
44         void operator=( const Self& );
45       };
46
47     } // ecapseman
48
49   } // ecapseman
50
51 } // ecapseman
52
53 #include <cpm/Algorithms/QuadEdge/MeshZipFunction.hxx>
54
55 #endif // __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__H__
56
57 // eof - $RCSfile$