00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkInteriorExteriorMeshFilter_h
00018 #define __itkInteriorExteriorMeshFilter_h
00019
00020 #include "itkMeshToMeshFilter.h"
00021
00022 namespace itk
00023 {
00024
00045 template <class TInputMesh, class TOutputMesh, class TSpatialFunction >
00046 class ITK_EXPORT InteriorExteriorMeshFilter :
00047 public MeshToMeshFilter<TInputMesh,TOutputMesh>
00048 {
00049 public:
00051 typedef InteriorExteriorMeshFilter Self;
00052 typedef MeshToMeshFilter<TInputMesh,TOutputMesh> Superclass;
00053 typedef SmartPointer<Self> Pointer;
00054 typedef SmartPointer<const Self> ConstPointer;
00055
00056 typedef TInputMesh InputMeshType;
00057 typedef TOutputMesh OutputMeshType;
00058 typedef typename InputMeshType::Pointer InputMeshPointer;
00059 typedef typename OutputMeshType::Pointer OutputMeshPointer;
00060
00062 typedef typename TInputMesh::CoordRepType CoordRepType;
00063
00065 typedef TSpatialFunction SpatialFunctionType;
00066
00068 itkNewMacro(Self);
00069
00071 itkTypeMacro(InteriorExteriorMeshFilter,MeshToMeshFilter);
00072
00074 itkSetObjectMacro( SpatialFunction, SpatialFunctionType );
00075
00077 itkGetObjectMacro( SpatialFunction, SpatialFunctionType );
00078
00079 protected:
00080 InteriorExteriorMeshFilter();
00081 ~InteriorExteriorMeshFilter() {};
00082 void PrintSelf(std::ostream& os, Indent indent) const;
00083
00085 virtual void GenerateData( void );
00086
00088 typename SpatialFunctionType::Pointer m_SpatialFunction;
00089
00090 private:
00091 InteriorExteriorMeshFilter(const InteriorExteriorMeshFilter&);
00092 void operator=(const InteriorExteriorMeshFilter&);
00093
00094 };
00095
00096 }
00097
00098 #ifndef ITK_MANUAL_INSTANTIATION
00099 #include "itkInteriorExteriorMeshFilter.txx"
00100 #endif
00101
00102 #endif