ITK  4.9.0
Insight Segmentation and Registration Toolkit
itkTriangleEdgeCellSubdivisionQuadEdgeMeshFilter.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 itkTriangleEdgeCellSubdivisionQuadEdgeMeshFilter_h
20 #define itkTriangleEdgeCellSubdivisionQuadEdgeMeshFilter_h
21 
23 
24 namespace itk
25 {
32 template< typename TInputMesh, typename TOutputMesh >
34  public TriangleCellSubdivisionQuadEdgeMeshFilter< TInputMesh, TOutputMesh >
35 {
36 public:
41 
61 
78 
79  typedef std::list< InputQEType * > SubdivisionCellContainer;
80  typedef typename SubdivisionCellContainer::const_iterator SubdivisionCellContainerConstIterator;
81 
84  itkGetConstReferenceMacro( EdgesToBeSubdivided, SubdivisionCellContainer );
86 
87  void SetCellsToBeSubdivided( const SubdivisionCellContainer & EdgesList );
88  void AddSubdividedEdge( InputQEType * edge );
89 
90 protected:
93 
94  virtual void AddNewCellPoints( InputCellType * itkNotUsed( cell ) ) ITK_OVERRIDE {}
95  virtual void AddNewEdgePoints( InputQEType * edge ) = 0;
96  virtual void GenerateOutputPoints() ITK_OVERRIDE;
97 
98  void PrintSelf( std::ostream & os, Indent indent ) const ITK_OVERRIDE;
99 
101 
102 private:
103  TriangleEdgeCellSubdivisionQuadEdgeMeshFilter( const Self & ); // purposely not implemented
104  void operator=( const Self & ); // purposely not implemented
105 };
106 } // end namespace itk
107 
108 #ifndef ITK_MANUAL_INSTANTIATION
109 #include "itkTriangleEdgeCellSubdivisionQuadEdgeMeshFilter.hxx"
110 #endif
111 
112 #endif
Light weight base class for most itk classes.
TriangleCellSubdivisionQuadEdgeMeshFilter< TInputMesh, TOutputMesh > Superclass
Superclass::InputCellsContainerConstIterator InputCellsContainerConstIterator
void PrintSelf(std::ostream &os, Indent indent) const override
virtual void AddNewEdgePoints(InputQEType *edge)=0
Superclass::InputPointsContainerConstIterator InputPointsContainerConstIterator
Control indentation during Print() invocation.
Definition: itkIndent.h:49
Superclass::OutputCellsContainerConstIterator OutputCellsContainerConstIterator
Abstract class to subdivide triangular surface QuadEdgeMesh.
void SetCellsToBeSubdivided(const SubdivisionCellContainer &EdgesList)