ITK  4.9.0
Insight Segmentation and Registration Toolkit
itkSubdivisionQuadEdgeMeshFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 
19 #ifndef itkSubdivisionQuadEdgeMeshFilter_h
20 #define itkSubdivisionQuadEdgeMeshFilter_h
21 
22 #include "itkConceptChecking.h"
24 #include "itkMapContainer.h"
25 
26 namespace itk
27 {
39 template< typename TInputMesh, typename TOutputMesh >
41  public QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >
42 {
43 public:
48 
49  typedef TInputMesh InputMeshType;
50  typedef typename InputMeshType::Pointer InputMeshPointer;
51  typedef typename InputMeshType::ConstPointer InputMeshConstPointer;
52  typedef typename InputMeshType::PointsContainer InputPointsContainer;
53  typedef typename InputMeshType::PointsContainerPointer InputPointsContainerPointer;
54  typedef typename InputMeshType::PointsContainerConstIterator InputPointsContainerConstIterator;
55  typedef typename InputMeshType::PointsContainerIterator InputPointsContainerIterator;
56  typedef typename InputMeshType::CellsContainer InputCellsContainer;
57  typedef typename InputMeshType::CellsContainerPointer InputCellsContainerPointer;
58  typedef typename InputMeshType::CellsContainerIterator InputCellsContainerIterator;
59  typedef typename InputMeshType::CellsContainerConstIterator InputCellsContainerConstIterator;
60  typedef typename InputMeshType::PointType InputPointType;
61  typedef typename InputMeshType::CoordRepType InputCoordType;
62  typedef typename InputMeshType::PointIdentifier InputPointIdentifier;
63  typedef typename InputMeshType::CellIdentifier InputCellIdentifier;
64  typedef typename InputMeshType::CellType InputCellType;
65  typedef typename InputMeshType::QEType InputQEType;
66  typedef typename InputMeshType::MeshTraits InputMeshTraits;
67  typedef typename InputMeshType::PointIdIterator InputPointIdIterator;
68 
69  typedef TOutputMesh OutputMeshType;
70  typedef typename OutputMeshType::Pointer OutputMeshPointer;
71  typedef typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer;
72  typedef typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator;
73  typedef typename OutputMeshType::CellsContainer OutputCellsContainer;
74  typedef typename OutputMeshType::CellsContainerPointer OutputCellsContainerPointer;
75  typedef typename OutputMeshType::CellsContainerIterator OutputCellsContainerIterator;
76  typedef typename OutputMeshType::CellsContainerConstIterator OutputCellsContainerConstIterator;
77  typedef typename OutputMeshType::PointType OutputPointType;
78  typedef typename OutputMeshType::CoordRepType OutputCoordType;
79  typedef typename OutputMeshType::PointIdentifier OutputPointIdentifier;
80  typedef typename OutputMeshType::CellIdentifier OutputCellIdentifier;
81  typedef typename OutputMeshType::CellType OutputCellType;
82  typedef typename OutputMeshType::QEType OutputQEType;
83  typedef typename OutputMeshType::MeshTraits OutputMeshTraits;
84  typedef typename OutputMeshType::PointIdIterator OutputPointIdIterator;
85 
90 
93 
94 protected:
97 
99  virtual void GenerateOutputPoints( ) = 0;
100 
102  virtual void GenerateOutputCells( ) = 0;
103  virtual void GenerateData() ITK_OVERRIDE;
105 
106  void PrintSelf( std::ostream & os, Indent indent ) const ITK_OVERRIDE;
107 
109 
110 private:
111  SubdivisionQuadEdgeMeshFilter( const Self & ); // purposely not implemented
112  void operator=( const Self & ); // purposely not implemented
113 };
114 } // end namespace itk
115 
116 #ifndef ITK_MANUAL_INSTANTIATION
117 #include "itkSubdivisionQuadEdgeMeshFilter.hxx"
118 #endif
119 
120 #endif
EdgePointIdentifierContainerPointer m_EdgesPointIdentifier
InputMeshType::PointIdIterator InputPointIdIterator
Light weight base class for most itk classes.
InputMeshType::PointsContainerIterator InputPointsContainerIterator
OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
A wrapper of the STL &quot;map&quot; container.
Abstract base class for itk::QuadEdgeMesh subdivision.
EdgePointIdentifierContainer::ConstIterator EdgePointIdentifierContainerConstIterator
void PrintSelf(std::ostream &os, Indent indent) const override
InputMeshType::PointsContainerPointer InputPointsContainerPointer
EdgePointIdentifierContainer::Pointer EdgePointIdentifierContainerPointer
OutputMeshType::PointIdIterator OutputPointIdIterator
OutputMeshType::PointIdentifier OutputPointIdentifier
The non-const iterator type for the map.
InputMeshType::PointsContainer InputPointsContainer
The const iterator type for the map.
OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
MapContainer< InputQEType *, OutputPointIdentifier > EdgePointIdentifierContainer
OutputMeshType::CellsContainerPointer OutputCellsContainerPointer
InputMeshType::CellsContainerIterator InputCellsContainerIterator
InputMeshType::PointsContainerConstIterator InputPointsContainerConstIterator
OutputMeshType::CellsContainerIterator OutputCellsContainerIterator
EdgePointIdentifierContainer::Iterator EdgePointIdentifierContainerIterator
OutputMeshType::CellIdentifier OutputCellIdentifier
Control indentation during Print() invocation.
Definition: itkIndent.h:49
InputMeshType::PointIdentifier InputPointIdentifier
QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > Superclass
InputMeshType::CellsContainerConstIterator InputCellsContainerConstIterator
virtual void GenerateData() override
OutputMeshType::CellsContainerConstIterator OutputCellsContainerConstIterator
InputMeshType::CellsContainerPointer InputCellsContainerPointer
OutputMeshType::CellsContainer OutputCellsContainer