ITK  5.2.0
Insight Toolkit
itkQuadEdgeMeshPoint.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 itkQuadEdgeMeshPoint_h
19 #define itkQuadEdgeMeshPoint_h
20 
21 #include "itkPoint.h"
22 #include "itkConceptChecking.h"
23 #include "itkGeometricalQuadEdge.h"
24 
25 namespace itk
26 {
34 template <typename TCoordRep,
35  unsigned int VPointDimension,
36  typename TQuadEdge = GeometricalQuadEdge<unsigned long, unsigned long, bool, bool, true>>
37 class ITK_TEMPLATE_EXPORT QuadEdgeMeshPoint : public Point<TCoordRep, VPointDimension>
38 {
39 public:
40 
44 
46  static constexpr unsigned int PointDimension = VPointDimension;
47 
48  using ValueType = typename Superclass::ValueType;
50  using RealType = typename Superclass::RealType;
51  using BaseArray = typename Superclass::BaseArray;
52  using Iterator = typename Superclass::Iterator;
55 
56  using ValueArrayType = ValueType[Self::PointDimension];
57 
58 #ifdef ITK_USE_CONCEPT_CHECKING
59  // Begin concept checking
60  // End concept checking
61 #endif
62 
63 public:
65  QuadEdgeMeshPoint(const Self &) = default;
68  operator=(const QuadEdgeMeshPoint &) = default;
70  operator=(QuadEdgeMeshPoint &&) = default;
71  ~QuadEdgeMeshPoint() = default;
72 
73  QuadEdgeMeshPoint(const Superclass & r);
74 
75  QuadEdgeMeshPoint(const ValueType r[VPointDimension])
76  : Superclass(r)
77  {
78  this->Initialize();
79  }
80 
81 
82  Self &
83  operator=(const Superclass & r);
84 
85  Self &
86  operator=(const ValueType r[VPointDimension]);
87 
89  void
90  SetEdge(TQuadEdge * inputEdge);
91 
93  void
94  SetPoint(const Superclass & point);
95 
97  TQuadEdge *
98  GetEdge();
99 
100  TQuadEdge *
101  GetEdge() const;
102 
106  bool
107  IsInternal() const;
108 
114  int
115  GetValence() const;
116 
117 protected:
119  void
120  Initialize();
121 
122 protected:
124 };
125 } // end namespace itk
126 
127 #ifndef ITK_MANUAL_INSTANTIATION
128 # include "itkQuadEdgeMeshPoint.hxx"
129 #endif
130 
131 #endif
itk::Point< TCoordRep, VPointDimension >::Iterator
typename BaseArray::Iterator Iterator
Definition: itkPoint.h:73
itk::QuadEdgeMeshPoint::VectorType
typename Superclass::VectorType VectorType
Definition: itkQuadEdgeMeshPoint.h:54
itk::Point< TCoordRep, VPointDimension >::CoordRepType
TCoordRep CoordRepType
Definition: itkPoint.h:64
itkPoint.h
itk::GTest::TypedefsAndConstructors::Dimension2::VectorType
ImageBaseType::SpacingType VectorType
Definition: itkGTestTypedefsAndConstructors.h:53
itkGeometricalQuadEdge.h
itkConceptChecking.h
itk::QuadEdgeMeshPoint::QuadEdgeMeshPoint
QuadEdgeMeshPoint(const ValueType r[VPointDimension])
Definition: itkQuadEdgeMeshPoint.h:75
itk::QuadEdgeMeshPoint::Iterator
typename Superclass::Iterator Iterator
Definition: itkQuadEdgeMeshPoint.h:52
itk::QuadEdgeMeshPoint::CoordRepType
typename Superclass::CoordRepType CoordRepType
Definition: itkQuadEdgeMeshPoint.h:49
itk::Point< TCoordRep, VPointDimension >::RealType
typename NumericTraits< ValueType >::RealType RealType
Definition: itkPoint.h:66
itk::QuadEdgeMeshPoint::BaseArray
typename Superclass::BaseArray BaseArray
Definition: itkQuadEdgeMeshPoint.h:51
itk::QuadEdgeMeshPoint::ConstIterator
typename Superclass::ConstIterator ConstIterator
Definition: itkQuadEdgeMeshPoint.h:53
itk::FixedArray< TCoordRep, NPointDimension >
itk::QuadEdgeMeshPoint::RealType
typename Superclass::RealType RealType
Definition: itkQuadEdgeMeshPoint.h:50
itk::QuadEdgeMeshPoint::ValueType
typename Superclass::ValueType ValueType
Definition: itkQuadEdgeMeshPoint.h:48
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::Point< TCoordRep, VPointDimension >::ConstIterator
typename BaseArray::ConstIterator ConstIterator
Definition: itkPoint.h:74
itk::QuadEdgeMeshPoint::ValueArrayType
ValueType[Self::PointDimension] ValueArrayType
Definition: itkQuadEdgeMeshPoint.h:56
itk::Point
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:53
itk::Point< TCoordRep, VPointDimension >::ValueType
TCoordRep ValueType
Definition: itkPoint.h:63
itk::QuadEdgeMeshPoint
Wrapper around a itk::Point in order to add a reference to an entry in the edge ring.
Definition: itkQuadEdgeMeshPoint.h:37