ITK  4.13.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  ITK_DISALLOW_COPY_AND_ASSIGN(TriangleEdgeCellSubdivisionQuadEdgeMeshFilter);
104 };
105 } // end namespace itk
106 
107 #ifndef ITK_MANUAL_INSTANTIATION
108 #include "itkTriangleEdgeCellSubdivisionQuadEdgeMeshFilter.hxx"
109 #endif
110 
111 #endif
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)