ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkQuadEdgeMeshTraits.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 #ifndef itkQuadEdgeMeshTraits_h
19 #define itkQuadEdgeMeshTraits_h
20 
21 #include <set>
22 #include "itkCellInterface.h"
24 
25 namespace itk
26 {
42 template< typename TPixel, unsigned int VPointDimension,
43  typename TPData, typename TDData,
44  typename TCoordRep = float, typename TInterpolationWeight = float >
46 {
47 public:
50  using PixelType = TPixel;
51  using CellPixelType = TPixel;
52  using CoordRepType = TCoordRep;
53  using InterpolationWeightType = TInterpolationWeight;
54 
55  static constexpr unsigned int PointDimension = VPointDimension;
56  static constexpr unsigned int MaxTopologicalDimension = VPointDimension;
57 
60 
61  using CellFeatureIdentifier = unsigned char; // made small in purpose
62 
63  using UsingCellsContainer = std::set< CellIdentifier >;
64  using PointCellLinksContainer = std::set< CellIdentifier >;
65 
67  using PrimalDataType = TPData;
68  using DualDataType = TDData;
71  //using QEType = QEPrimal;
72  using QEDual = typename QEPrimal::DualType;
73  // FOR LEO using QEType = typename QEPrimal::Superclass;
74  // FOR LEO using QEDual = typename QEPrimal::Dual;
77 
81 
85 
87  using CellTraits = QuadEdgeMeshCellTraitsInfo<
88  VPointDimension, CoordRepType,
93 
96 
103 
106 };
107 }
108 
109 #endif
::itk::IdentifierType CellIdentifier
static constexpr unsigned int PointDimension
Wrapper around a itk::Point in order to add a reference to an entry in the edge ring.
std::set< CellIdentifier > PointCellLinksContainer
A wrapper of the STL &quot;map&quot; container.
SelfAutoPointer CellAutoPointer
An abstract interface for cells.
QuadEdgeMeshPoint< CoordRepType, VPointDimension, QEPrimal > PointType
typename PointType::VectorType VectorType
typename QEPrimal::DualType QEDual
typename CellType::CellAutoPointer CellAutoPointer
std::set< CellIdentifier > UsingCellsContainer
::itk::IdentifierType PointIdentifier
unsigned long IdentifierType
MapContainer< PointIdentifier, PointType > PointsContainer
QuadEdgeMeshCellTraitsInfo< VPointDimension, CoordRepType, InterpolationWeightType, PointIdentifier, CellIdentifier, CellFeatureIdentifier, PointType, PointsContainer, UsingCellsContainer, QEPrimal > CellTraits
GeometricalQuadEdge< TFRef, TVRef, TDualData, TPrimalData,!PrimalDual > DualType
Class holding the traits of the QuadEdgeMesh.
typename QEPrimal::DualOriginRefType FaceRefType
typename Superclass::VectorType VectorType
This class extends the QuadEdge by adding a reference to the Origin.
TInterpolationWeight InterpolationWeightType
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:52
static constexpr unsigned int MaxTopologicalDimension
typename QEPrimal::OriginRefType VertexRefType