ITK  5.3.0
Insight Toolkit
itkQuadEdgeMeshTraits.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
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 {
43 template <typename TPixel,
44  unsigned int VPointDimension,
45  typename TPData,
46  typename TDData,
47  typename TCoordRep = float,
48  typename TInterpolationWeight = float>
50 {
51 public:
52 
55  using PixelType = TPixel;
56  using CellPixelType = TPixel;
57  using CoordRepType = TCoordRep;
58  using InterpolationWeightType = TInterpolationWeight;
59 
60  static constexpr unsigned int PointDimension = VPointDimension;
61  static constexpr unsigned int MaxTopologicalDimension = VPointDimension;
62 
65 
66  using CellFeatureIdentifier = unsigned char; // made small in purpose
67 
68  using UsingCellsContainer = std::set<CellIdentifier>;
69  using PointCellLinksContainer = std::set<CellIdentifier>;
70 
72  using PrimalDataType = TPData;
73  using DualDataType = TDData;
75  // using QEType = QEPrimal;
76  using QEDual = typename QEPrimal::DualType;
77  // FOR LEO using QEType = typename QEPrimal::Superclass;
78  // FOR LEO using QEDual = typename QEPrimal::Dual;
81 
85 
89 
91  using CellTraits = QuadEdgeMeshCellTraitsInfo<VPointDimension,
97  PointType,
101 
104 
110 
113 };
114 } // namespace itk
115 
116 #endif
itk::QuadEdgeMeshPoint::VectorType
typename Superclass::VectorType VectorType
Definition: itkQuadEdgeMeshPoint.h:54
itk::QuadEdgeMeshTraits::UsingCellsContainer
std::set< CellIdentifier > UsingCellsContainer
Definition: itkQuadEdgeMeshTraits.h:68
IdentifierType
unsigned long IdentifierType
Definition: itkQuadEdgeMeshEulerOperatorsTestHelper.h:24
itk::QuadEdgeMeshTraits::CellTraits
QuadEdgeMeshCellTraitsInfo< VPointDimension, CoordRepType, InterpolationWeightType, PointIdentifier, CellIdentifier, CellFeatureIdentifier, PointType, PointsContainer, UsingCellsContainer, QEPrimal > CellTraits
Definition: itkQuadEdgeMeshTraits.h:100
itkQuadEdgeCellTraitsInfo.h
itk::GeometricalQuadEdge
This class extends the QuadEdge by adding a reference to the Origin.
Definition: itkGeometricalQuadEdge.h:61
itk::GeometricalQuadEdge::DualType
GeometricalQuadEdge< TFRef, TVRef, TDualData, TPrimalData, !PrimalDual > DualType
Definition: itkGeometricalQuadEdge.h:75
itk::QuadEdgeMeshTraits::PrimalDataType
TPData PrimalDataType
Definition: itkQuadEdgeMeshTraits.h:72
itk::QuadEdgeMeshTraits::PixelType
TPixel PixelType
Definition: itkQuadEdgeMeshTraits.h:55
itk::QuadEdgeMeshTraits::PointDimension
static constexpr unsigned int PointDimension
Definition: itkQuadEdgeMeshTraits.h:60
itk::QuadEdgeMeshTraits::CoordRepType
TCoordRep CoordRepType
Definition: itkQuadEdgeMeshTraits.h:57
itk::GeometricalQuadEdge::OriginRefType
TVRef OriginRefType
Definition: itkGeometricalQuadEdge.h:78
itk::GeometricalQuadEdge::DualOriginRefType
TFRef DualOriginRefType
Definition: itkGeometricalQuadEdge.h:79
itk::QuadEdgeMeshTraits
Class holding the traits of the QuadEdgeMesh.
Definition: itkQuadEdgeMeshTraits.h:49
itk::MapContainer
A wrapper of the STL "map" container.
Definition: itkMapContainer.h:45
itk::QuadEdgeMeshTraits::PointsContainer
MapContainer< PointIdentifier, PointType > PointsContainer
Definition: itkQuadEdgeMeshTraits.h:88
itk::QuadEdgeMeshTraits::VertexRefType
typename QEPrimal::OriginRefType VertexRefType
Definition: itkQuadEdgeMeshTraits.h:79
itk::QuadEdgeMeshTraits::MaxTopologicalDimension
static constexpr unsigned int MaxTopologicalDimension
Definition: itkQuadEdgeMeshTraits.h:61
itk::QuadEdgeMeshTraits::PointIdentifier
::itk::IdentifierType PointIdentifier
Definition: itkQuadEdgeMeshTraits.h:63
itk::QuadEdgeMeshTraits::DualDataType
TDData DualDataType
Definition: itkQuadEdgeMeshTraits.h:73
itk::QuadEdgeMeshTraits::FaceRefType
typename QEPrimal::DualOriginRefType FaceRefType
Definition: itkQuadEdgeMeshTraits.h:80
itk::CellInterface::CellAutoPointer
SelfAutoPointer CellAutoPointer
Definition: itkCellInterface.h:133
itk::QuadEdgeMeshTraits::CellAutoPointer
typename CellType::CellAutoPointer CellAutoPointer
Definition: itkQuadEdgeMeshTraits.h:103
itk::QuadEdgeMeshTraits::CellFeatureIdentifier
unsigned char CellFeatureIdentifier
Definition: itkQuadEdgeMeshTraits.h:66
itk::QuadEdgeMeshTraits::PointType
QuadEdgeMeshPoint< CoordRepType, VPointDimension, QEPrimal > PointType
Definition: itkQuadEdgeMeshTraits.h:87
itk::CellInterface
An abstract interface for cells.
Definition: itkCellInterface.h:96
itk::QuadEdgeMeshTraits::PointCellLinksContainer
std::set< CellIdentifier > PointCellLinksContainer
Definition: itkQuadEdgeMeshTraits.h:69
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::QuadEdgeMeshTraits::VectorType
typename PointType::VectorType VectorType
Definition: itkQuadEdgeMeshTraits.h:112
itk::QuadEdgeMeshTraits::InterpolationWeightType
TInterpolationWeight InterpolationWeightType
Definition: itkQuadEdgeMeshTraits.h:58
itkCellInterface.h
itk::Point
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:53
itk::QuadEdgeMeshTraits::CellIdentifier
::itk::IdentifierType CellIdentifier
Definition: itkQuadEdgeMeshTraits.h:64
itk::QuadEdgeMeshTraits::QEDual
typename QEPrimal::DualType QEDual
Definition: itkQuadEdgeMeshTraits.h:76
itk::QuadEdgeMeshTraits::CellPixelType
TPixel CellPixelType
Definition: itkQuadEdgeMeshTraits.h:56
itk::QuadEdgeMeshPoint
Wrapper around a itk::Point in order to add a reference to an entry in the edge ring.
Definition: itkQuadEdgeMeshPoint.h:37