ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkQuadEdgeMeshPoint.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 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, unsigned int VPointDimension, typename TQuadEdge =
35  GeometricalQuadEdge< unsigned long, unsigned long, bool, bool, true > >
36 class ITK_TEMPLATE_EXPORT QuadEdgeMeshPoint:public Point< TCoordRep, VPointDimension >
37 {
38 public:
39 
43 
45  static constexpr unsigned int PointDimension = VPointDimension;
46 
47  using ValueType = typename Superclass::ValueType;
49  using RealType = typename Superclass::RealType;
50  using BaseArray = typename Superclass::BaseArray;
51  using Iterator = typename Superclass::Iterator;
54 
55  typedef ValueType ValueArrayType[Self::PointDimension];
56 
57 #ifdef ITK_USE_CONCEPT_CHECKING
58  // Begin concept checking
59  // End concept checking
60 #endif
61 
62 public:
64  QuadEdgeMeshPoint(const Self &) = default;
66  QuadEdgeMeshPoint & operator=(const QuadEdgeMeshPoint &) = default;
67  QuadEdgeMeshPoint & operator=(QuadEdgeMeshPoint &&) = default;
68  ~QuadEdgeMeshPoint() = default;
69 
70  QuadEdgeMeshPoint(const Superclass & r);
71 
72  QuadEdgeMeshPoint(const ValueType r[VPointDimension]):Superclass(r)
73  {
74  this->Initialize();
75  }
76 
77 
78  Self & operator=(const Superclass & r);
79 
80  Self & operator=(const ValueType r[VPointDimension]);
81 
83  void SetEdge(TQuadEdge *inputEdge);
84 
86  void SetPoint(const Superclass & point);
87 
89  TQuadEdge * GetEdge();
90 
91  TQuadEdge * GetEdge() const;
92 
96  bool IsInternal() const;
97 
103  int GetValence() const;
104 
105 protected:
107  void Initialize();
108 
109 protected:
111 };
112 } // end namespace itk
113 
114 #ifndef ITK_MANUAL_INSTANTIATION
115 #include "itkQuadEdgeMeshPoint.hxx"
116 #endif
117 
118 #endif
typename NumericTraits< ValueType >::RealType RealType
Definition: itkPoint.h:64
Wrapper around a itk::Point in order to add a reference to an entry in the edge ring.
typename Superclass::ValueType ValueType
typename Superclass::ConstIterator ConstIterator
QuadEdgeMeshPoint(const ValueType r[VPointDimension])
typename Superclass::BaseArray BaseArray
typename Superclass::VectorType VectorType
typename Superclass::RealType RealType
typename BaseArray::Iterator Iterator
Definition: itkPoint.h:71
typename BaseArray::ConstIterator ConstIterator
Definition: itkPoint.h:72
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:52
typename Superclass::CoordRepType CoordRepType
typename Superclass::Iterator Iterator