00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkQuadEdgeMeshToQuadEdgeMeshFilter.h,v $ 00005 Language: C++ 00006 Date: $Date: 2007/07/24 20:05:24 $ 00007 Version: $Revision: 1.5 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef __itkQuadEdgeMeshToQuadEdgeMeshFilter_h 00019 #define __itkQuadEdgeMeshToQuadEdgeMeshFilter_h 00020 00021 #include "itkMeshToMeshFilter.h" 00022 00023 namespace itk 00024 { 00034 template< typename TInputMesh, typename TOutputMesh > 00035 class QuadEdgeMeshToQuadEdgeMeshFilter 00036 : public MeshToMeshFilter< TInputMesh, TOutputMesh > 00037 { 00038 public: 00040 typedef QuadEdgeMeshToQuadEdgeMeshFilter Self; 00041 typedef MeshToMeshFilter< TInputMesh, TOutputMesh > Superclass; 00042 typedef SmartPointer< Self > Pointer; 00043 typedef SmartPointer< const Self > ConstPointer; 00044 00046 typedef TInputMesh InputMeshType; 00047 typedef typename InputMeshType::Pointer InputMeshPointer; 00048 typedef typename InputMeshType::ConstPointer InputMeshConstPointer; 00049 typedef typename InputMeshType::CoordRepType InputCoordRepType; 00050 typedef typename InputMeshType::PointType InputPointType; 00051 typedef typename InputMeshType::PointIdentifier InputPointIdentifier; 00052 typedef typename InputMeshType::QEPrimal InputQEPrimal; 00053 typedef typename InputMeshType::VectorType InputVectorType; 00054 00055 typedef typename InputMeshType::PointsContainerConstIterator 00056 InputPointsContainerConstIterator; 00057 typedef typename InputMeshType::CellsContainerConstIterator 00058 InputCellsContainerConstIterator; 00059 00060 typedef typename InputMeshType::EdgeCellType InputEdgeCellType; 00061 typedef typename InputMeshType::PolygonCellType InputPolygonCellType; 00062 typedef typename InputMeshType::PointIdList InputPointIdList; 00063 typedef typename InputMeshType::CellTraits InputCellTraits; 00064 typedef typename InputCellTraits::PointIdInternalIterator 00065 InputPointsIdInternalIterator; 00066 00067 typedef typename InputQEPrimal::IteratorGeom InputQEIterator; 00068 00070 typedef TOutputMesh OutputMeshType; 00071 typedef typename OutputMeshType::Pointer OutputMeshPointer; 00072 typedef typename OutputMeshType::ConstPointer OutputMeshConstPointer; 00073 typedef typename OutputMeshType::CoordRepType OutputCoordRepType; 00074 typedef typename OutputMeshType::PointType OutputPointType; 00075 typedef typename OutputMeshType::PointIdentifier OutputPointIdentifier; 00076 typedef typename OutputMeshType::QEPrimal OutputQEPrimal; 00077 typedef typename OutputMeshType::VectorType OutputVectorType; 00078 typedef typename OutputQEPrimal::IteratorGeom OutputQEIterator; 00079 typedef typename OutputMeshType::PointsContainerIterator 00080 OutputPointsContainerIterator; 00081 00082 public: 00083 itkNewMacro( Self ); 00084 itkTypeMacro( QuadEdgeMeshToQuadEdgeMeshFilter, MeshToMeshFilter ); 00085 00086 protected: 00087 QuadEdgeMeshToQuadEdgeMeshFilter( ); 00088 virtual ~QuadEdgeMeshToQuadEdgeMeshFilter( ) { } 00089 00090 virtual void GenerateData( ); 00091 00092 private: 00093 QuadEdgeMeshToQuadEdgeMeshFilter( const Self& ); // Not impl. 00094 void operator=( const Self& ); // Not impl. 00095 }; 00096 00097 } // end namespace itk 00098 00099 #ifndef ITK_MANUAL_INSTANTIATION 00100 #include "itkQuadEdgeMeshToQuadEdgeMeshFilter.txx" 00101 #endif 00102 00103 #endif 00104