#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__ #define __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__ #include namespace cpm { namespace Algorithms { namespace QuadEdge { /** */ template< class M > class MeshPlaneCutterFilter : public itk::MeshToMeshFilter< M, M > { public: typedef MeshPlaneCutterFilter Self; typedef itk::MeshToMeshFilter< M, M > Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef M TMesh; typedef typename M::TScalar TScalar; typedef typename M::PointType TPoint; typedef typename TPoint::VectorType TVector; public: itkNewMacro( Self ); itkTypeMacro( MeshPlaneCutterFilter, itkMeshToMeshFilter ); itkGetConstMacro( PlanePoint, TVector ); itkGetConstMacro( PlaneNormal, TVector ); itkSetMacro( PlanePoint, TVector ); public: void SetPlaneNormal( const TVector& n ); protected: MeshPlaneCutterFilter( ); virtual ~MeshPlaneCutterFilter( ); virtual void GenerateData( ); private: // Purposely not implemented MeshPlaneCutterFilter( const Self& ); void operator=( const Self& ); protected: TVector m_PlanePoint; TVector m_PlaneNormal; }; } // ecapseman } // ecapseman } // ecapseman #include #endif // __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__ // eof - $RCSfile$