00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkQuadEdgeMeshToQuadEdgeMeshFilter.h,v $ 00005 Language: C++ 00006 Date: $Date: 2007/02/26 15:46:56 $ 00007 Version: $Revision: 1.3 $ 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 MeshCopy 00036 : public MeshToMeshFilter< TInputMesh, TOutputMesh > 00037 { 00038 public: 00040 typedef MeshCopy 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 00064 typedef typename InputQEPrimal::IteratorGeom InputQEIterator; 00065 00067 typedef TOutputMesh OutputMeshType; 00068 typedef typename OutputMeshType::Pointer OutputMeshPointer; 00069 typedef typename OutputMeshType::ConstPointer OutputMeshConstPointer; 00070 typedef typename OutputMeshType::CoordRepType OutputCoordRepType; 00071 typedef typename OutputMeshType::PointType OutputPointType; 00072 typedef typename OutputMeshType::PointIdentifier OutputPointIdentifier; 00073 typedef typename OutputMeshType::QEPrimal OutputQEPrimal; 00074 typedef typename OutputMeshType::VectorType OutputVectorType; 00075 typedef typename OutputQEPrimal::IteratorGeom OutputQEIterator; 00076 typedef typename OutputMeshType::PointsContainerIterator 00077 OutputPointsContainerIterator; 00078 00079 public: 00080 itkNewMacro( Self ); 00081 itkTypeMacro( MeshCopy, MeshToMeshFilter ); 00082 00083 protected: 00084 MeshCopy( ); 00085 virtual ~MeshCopy( ) { } 00086 00087 virtual void GenerateData( ); 00088 00089 private: 00090 MeshCopy( const Self& ); // Not impl. 00091 void operator=( const Self& ); // Not impl. 00092 }; 00093 00094 } // end namespace itk 00095 00096 #ifndef ITK_MANUAL_INSTANTIATION 00097 #include "itkQEMeshCopy.txx" 00098 #endif 00099 00100 #endif 00101