ITK  4.9.0
Insight Segmentation and Registration Toolkit
itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter.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 itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter_h
20 #define itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter_h
21 
23 #include "itkConceptChecking.h"
24 
25 namespace itk
26 {
33 template< typename TInputMesh, typename TCellSubdivisionFilter >
35  public QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, typename TCellSubdivisionFilter::OutputMeshType >
36 {
37 public:
42 
43  typedef TCellSubdivisionFilter CellSubdivisionFilterType;
44  typedef typename CellSubdivisionFilterType::Pointer CellSubdivisionFilterPointer;
45 
46  typedef TInputMesh InputMeshType;
47  typedef typename InputMeshType::Pointer InputMeshPointer;
48 
49  typedef typename CellSubdivisionFilterType::OutputMeshType OutputMeshType;
50  typedef typename OutputMeshType::Pointer OutputMeshPointer;
51 
52  typedef typename CellSubdivisionFilterType::OutputCellIdentifier OutputCellIdentifier;
53  typedef typename CellSubdivisionFilterType::SubdivisionCellContainer SubdivisionCellContainer;
54  typedef typename CellSubdivisionFilterType::SubdivisionCellContainerConstIterator SubdivisionCellContainerConstIterator;
55 
58  itkNewMacro(Self);
60 
61 #ifdef ITK_USE_CONCEPT_CHECKING
62  itkConceptMacro( SameTypeCheck,
64 #endif
65 
66  itkSetMacro( ResolutionLevels, unsigned int );
67  itkGetConstMacro( ResolutionLevels, unsigned int );
68  itkGetConstReferenceMacro( CellsToBeSubdivided, SubdivisionCellContainer );
69 
70  void SetCellsToBeSubdivided( const SubdivisionCellContainer & cellIdList );
72 
73 protected:
75 
77 
78  virtual void GenerateData() ITK_OVERRIDE;
79 
80  void PrintSelf( std::ostream & os, Indent indent ) const ITK_OVERRIDE;
81 
84  unsigned int m_ResolutionLevels;
85 
86 private:
87  IterativeTriangleCellSubdivisionQuadEdgeMeshFilter( const Self & ); // purposely not implemented
88  void operator=( const Self & ); // purposely not implemented
89 };
90 } // end namespace itk
91 
92 #ifndef ITK_MANUAL_INSTANTIATION
93 #include "itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter.hxx"
94 #endif
95 
96 #endif
Light weight base class for most itk classes.
CellSubdivisionFilterType::SubdivisionCellContainerConstIterator SubdivisionCellContainerConstIterator
void PrintSelf(std::ostream &os, Indent indent) const override
void SetCellsToBeSubdivided(const SubdivisionCellContainer &cellIdList)
void AddSubdividedCellId(OutputCellIdentifier cellId)
Control indentation during Print() invocation.
Definition: itkIndent.h:49
QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, typename TCellSubdivisionFilter::OutputMeshType > Superclass
#define itkConceptMacro(name, concept)