ITK  6.0.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  * https://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 TCoordinate = float,
48  typename TInterpolationWeight = float>
50 {
51 public:
52 
55  using PixelType = TPixel;
56  using CellPixelType = TPixel;
57  using CoordinateType = TCoordinate;
58 #ifndef ITK_FUTURE_LEGACY_REMOVE
59  using CoordRepType ITK_FUTURE_DEPRECATED(
60  "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") = CoordinateType;
61 #endif
62  using InterpolationWeightType = TInterpolationWeight;
63 
64  static constexpr unsigned int PointDimension = VPointDimension;
65  static constexpr unsigned int MaxTopologicalDimension = VPointDimension;
66 
69 
70  using CellFeatureIdentifier = unsigned char; // made small in purpose
71 
72  using UsingCellsContainer = std::set<CellIdentifier>;
73  using PointCellLinksContainer = std::set<CellIdentifier>;
74 
76  using PrimalDataType = TPData;
77  using DualDataType = TDData;
79  // using QEType = QEPrimal;
80  using QEDual = typename QEPrimal::DualType;
81  // FOR LEO using QEType = typename QEPrimal::Superclass;
82  // FOR LEO using QEDual = typename QEPrimal::Dual;
85 
89 
93 
95  using CellTraits = QuadEdgeMeshCellTraitsInfo<VPointDimension,
101  PointType,
105 
108 
114 
117 };
118 } // namespace itk
119 
120 #endif
itk::QuadEdgeMeshTraits::UsingCellsContainer
std::set< CellIdentifier > UsingCellsContainer
Definition: itkQuadEdgeMeshTraits.h:72
itk::QuadEdgeMeshTraits::PrimalDataType
TPData PrimalDataType
Definition: itkQuadEdgeMeshTraits.h:76
itk::QuadEdgeMeshTraits::CellTraits
QuadEdgeMeshCellTraitsInfo< VPointDimension, CoordinateType, InterpolationWeightType, PointIdentifier, CellIdentifier, CellFeatureIdentifier, PointType, PointsContainer, UsingCellsContainer, QEPrimal > CellTraits
Definition: itkQuadEdgeMeshTraits.h:104
itkQuadEdgeCellTraitsInfo.h
itk::QuadEdgeMeshTraits::QEDual
typename QEPrimal::DualType QEDual
Definition: itkQuadEdgeMeshTraits.h:80
itk::QuadEdgeMeshTraits::DualDataType
TDData DualDataType
Definition: itkQuadEdgeMeshTraits.h:77
itk::QuadEdgeMeshTraits::PointCellLinksContainer
std::set< CellIdentifier > PointCellLinksContainer
Definition: itkQuadEdgeMeshTraits.h:73
itk::GeometricalQuadEdge
This class extends the QuadEdge by adding a reference to the Origin.
Definition: itkGeometricalQuadEdge.h:61
itk::QuadEdgeMeshTraits::CellPixelType
TPixel CellPixelType
Definition: itkQuadEdgeMeshTraits.h:56
itk::GeometricalQuadEdge::DualType
GeometricalQuadEdge< TFRef, TVRef, TDualData, TPrimalData, !PrimalDual > DualType
Definition: itkGeometricalQuadEdge.h:75
itk::Point::VectorType
Vector< ValueType, VPointDimension > VectorType
Definition: itkPoint.h:88
itk::QuadEdgeMeshTraits::PointDimension
static constexpr unsigned int PointDimension
Definition: itkQuadEdgeMeshTraits.h:64
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::CellFeatureIdentifier
unsigned char CellFeatureIdentifier
Definition: itkQuadEdgeMeshTraits.h:70
itk::QuadEdgeMeshTraits::PointIdentifier
itk::IdentifierType PointIdentifier
Definition: itkQuadEdgeMeshTraits.h:67
itk::QuadEdgeMeshTraits::FaceRefType
typename QEPrimal::DualOriginRefType FaceRefType
Definition: itkQuadEdgeMeshTraits.h:84
itk::QuadEdgeMeshTraits::CellAutoPointer
typename CellType::CellAutoPointer CellAutoPointer
Definition: itkQuadEdgeMeshTraits.h:107
itk::QuadEdgeMeshTraits::PointType
QuadEdgeMeshPoint< CoordinateType, VPointDimension, QEPrimal > PointType
Definition: itkQuadEdgeMeshTraits.h:91
itk::CellInterface::CellAutoPointer
SelfAutoPointer CellAutoPointer
Definition: itkCellInterface.h:138
itk::QuadEdgeMeshTraits::MaxTopologicalDimension
static constexpr unsigned int MaxTopologicalDimension
Definition: itkQuadEdgeMeshTraits.h:65
itk::CellInterface
An abstract interface for cells.
Definition: itkCellInterface.h:97
itk::QuadEdgeMeshTraits::CoordinateType
TCoordinate CoordinateType
Definition: itkQuadEdgeMeshTraits.h:57
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29
itk::QuadEdgeMeshTraits::PointsContainer
MapContainer< PointIdentifier, PointType > PointsContainer
Definition: itkQuadEdgeMeshTraits.h:92
itk::QuadEdgeMeshTraits::InterpolationWeightType
TInterpolationWeight InterpolationWeightType
Definition: itkQuadEdgeMeshTraits.h:62
itkCellInterface.h
itk::Point
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:53
itk::QuadEdgeMeshTraits::PixelType
TPixel PixelType
Definition: itkQuadEdgeMeshTraits.h:55
itk::QuadEdgeMeshTraits::VectorType
typename PointType::VectorType VectorType
Definition: itkQuadEdgeMeshTraits.h:116
itk::IdentifierType
SizeValueType IdentifierType
Definition: itkIntTypes.h:90
itk::QuadEdgeMeshTraits::CellIdentifier
itk::IdentifierType CellIdentifier
Definition: itkQuadEdgeMeshTraits.h:68
itk::QuadEdgeMeshPoint
Wrapper around a itk::Point in order to add a reference to an entry in the edge ring.
Definition: itkQuadEdgeMeshPoint.h:37
itk::QuadEdgeMeshTraits::VertexRefType
typename QEPrimal::OriginRefType VertexRefType
Definition: itkQuadEdgeMeshTraits.h:83