ITK  5.0.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:
44  ITK_DISALLOW_COPY_AND_ASSIGN(SubdivisionQuadEdgeMeshFilter);
45 
50 
51  using InputMeshType = TInputMesh;
52  using InputMeshPointer = typename InputMeshType::Pointer;
53  using InputMeshConstPointer = typename InputMeshType::ConstPointer;
54  using InputPointsContainer = typename InputMeshType::PointsContainer;
55  using InputPointsContainerPointer = typename InputMeshType::PointsContainerPointer;
56  using InputPointsContainerConstIterator = typename InputMeshType::PointsContainerConstIterator;
57  using InputPointsContainerIterator = typename InputMeshType::PointsContainerIterator;
58  using InputCellsContainer = typename InputMeshType::CellsContainer;
59  using InputCellsContainerPointer = typename InputMeshType::CellsContainerPointer;
60  using InputCellsContainerIterator = typename InputMeshType::CellsContainerIterator;
61  using InputCellsContainerConstIterator = typename InputMeshType::CellsContainerConstIterator;
63  using InputCoordType = typename InputMeshType::CoordRepType;
64  using InputPointIdentifier = typename InputMeshType::PointIdentifier;
65  using InputCellIdentifier = typename InputMeshType::CellIdentifier;
66  using InputCellType = typename InputMeshType::CellType;
67  using InputQEType = typename InputMeshType::QEType;
68  using InputMeshTraits = typename InputMeshType::MeshTraits;
69  using InputPointIdIterator = typename InputMeshType::PointIdIterator;
70 
71  using OutputMeshType = TOutputMesh;
72  using OutputMeshPointer = typename OutputMeshType::Pointer;
73  using OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer;
74  using OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator;
75  using OutputCellsContainer = typename OutputMeshType::CellsContainer;
76  using OutputCellsContainerPointer = typename OutputMeshType::CellsContainerPointer;
77  using OutputCellsContainerIterator = typename OutputMeshType::CellsContainerIterator;
78  using OutputCellsContainerConstIterator = typename OutputMeshType::CellsContainerConstIterator;
80  using OutputCoordType = typename OutputMeshType::CoordRepType;
81  using OutputPointIdentifier = typename OutputMeshType::PointIdentifier;
82  using OutputCellIdentifier = typename OutputMeshType::CellIdentifier;
83  using OutputCellType = typename OutputMeshType::CellType;
84  using OutputQEType = typename OutputMeshType::QEType;
85  using OutputMeshTraits = typename OutputMeshType::MeshTraits;
86  using OutputPointIdIterator = typename OutputMeshType::PointIdIterator;
87 
92 
95 
96 protected:
99 
101  virtual void GenerateOutputPoints( ) = 0;
102 
104  virtual void GenerateOutputCells( ) = 0;
105  void GenerateData() override;
107 
108  void PrintSelf( std::ostream & os, Indent indent ) const override;
109 
111 };
112 } // end namespace itk
113 
114 #ifndef ITK_MANUAL_INSTANTIATION
115 #include "itkSubdivisionQuadEdgeMeshFilter.hxx"
116 #endif
117 
118 #endif
EdgePointIdentifierContainerPointer m_EdgesPointIdentifier
typename InputMeshType::CellsContainer InputCellsContainer
typename OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
Light weight base class for most itk classes.
TOutputMesh OutputMeshType
Definition: itkMeshSource.h:68
typename EdgePointIdentifierContainer::Pointer EdgePointIdentifierContainerPointer
A wrapper of the STL &quot;map&quot; container.
Abstract base class for itk::QuadEdgeMesh subdivision.
typename EdgePointIdentifierContainer::ConstIterator EdgePointIdentifierContainerConstIterator
friend class ConstIterator
typename InputMeshType::PointIdentifier InputPointIdentifier
typename OutputMeshType::CoordRepType OutputCoordType
typename OutputMeshType::PointIdIterator OutputPointIdIterator
void PrintSelf(std::ostream &os, Indent indent) const override
typename OutputMeshType::CellType OutputCellType
typename InputMeshType::ConstPointer InputMeshConstPointer
typename OutputMeshType::PointIdentifier OutputPointIdentifier
typename InputMeshType::CoordRepType InputCoordType
typename InputMeshType::PointsContainer InputPointsContainer
typename OutputMeshType::CellsContainerIterator OutputCellsContainerIterator
typename InputMeshType::Pointer InputMeshPointer
typename InputMeshType::CellsContainerIterator InputCellsContainerIterator
typename InputMeshType::PointsContainerConstIterator InputPointsContainerConstIterator
typename OutputMeshType::CellsContainerPointer OutputCellsContainerPointer
SmartPointer< Self > Pointer
typename OutputMeshType::Pointer OutputMeshPointer
Definition: itkMeshSource.h:69
typename InputMeshType::CellType InputCellType
typename InputMeshType::CellsContainerPointer InputCellsContainerPointer
typename InputMeshType::PointsContainerPointer InputPointsContainerPointer
Control indentation during Print() invocation.
Definition: itkIndent.h:49
typename InputMeshType::PointsContainerIterator InputPointsContainerIterator
typename OutputMeshType::MeshTraits OutputMeshTraits
typename InputMeshType::MeshTraits InputMeshTraits
typename OutputMeshType::CellsContainer OutputCellsContainer
typename InputMeshType::PointIdIterator InputPointIdIterator
typename OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
typename InputMeshType::CellsContainerConstIterator InputCellsContainerConstIterator
typename OutputMeshType::CellIdentifier OutputCellIdentifier
typename InputMeshType::CellIdentifier InputCellIdentifier
friend class Iterator
typename OutputMeshType::CellsContainerConstIterator OutputCellsContainerConstIterator
typename EdgePointIdentifierContainer::Iterator EdgePointIdentifierContainerIterator