ITK  6.0.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 * 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 itkQuadEdgeMeshPoint_h
19#define itkQuadEdgeMeshPoint_h
20
21#include "itkPoint.h"
22#include "itkConceptChecking.h"
24
25namespace itk
26{
34template <typename TCoordRep,
35 unsigned int VPointDimension,
36 typename TQuadEdge = GeometricalQuadEdge<unsigned long, unsigned long, bool, bool, true>>
37class ITK_TEMPLATE_EXPORT QuadEdgeMeshPoint : public Point<TCoordRep, VPointDimension>
38{
39public:
40
44
46 static constexpr unsigned int PointDimension = VPointDimension;
47
48 using typename Superclass::ValueType;
49 using typename Superclass::CoordRepType;
50 using typename Superclass::RealType;
51 using typename Superclass::Iterator;
52 using typename Superclass::ConstIterator;
53 using typename Superclass::VectorType;
54
55 using ValueArrayType = ValueType[Self::PointDimension];
56
57#ifdef ITK_USE_CONCEPT_CHECKING
58 // Begin concept checking
59 // End concept checking
60#endif
61
62public:
63 QuadEdgeMeshPoint() = default;
64 QuadEdgeMeshPoint(const Self &) = default;
67 operator=(const QuadEdgeMeshPoint &) = default;
70 ~QuadEdgeMeshPoint() = default;
71
73
74 QuadEdgeMeshPoint(const ValueType r[VPointDimension])
75 : Superclass(r)
76 {
77 this->Initialize();
78 }
79
80
81 Self &
83
84 Self &
85 operator=(const ValueType r[VPointDimension]);
86
88 void
89 SetEdge(TQuadEdge * inputEdge);
90
92 void
94
96 TQuadEdge *
98
99 TQuadEdge *
100 GetEdge() const;
101
105 bool
106 IsInternal() const;
107
113 int
114 GetValence() const;
115
116protected:
118 void
120
121protected:
123};
124} // end namespace itk
125
126#ifndef ITK_MANUAL_INSTANTIATION
127# include "itkQuadEdgeMeshPoint.hxx"
128#endif
129
130#endif
Pixel-wise addition of two images.
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:54
typename NumericTraits< ValueType >::RealType RealType
Definition: itkPoint.h:66
typename BaseArray::Iterator Iterator
Definition: itkPoint.h:73
typename BaseArray::ConstIterator ConstIterator
Definition: itkPoint.h:74
Wrapper around a itk::Point in order to add a reference to an entry in the edge ring.
QuadEdgeMeshPoint(QuadEdgeMeshPoint &&)=default
void SetPoint(const Superclass &point)
ValueType[Self::PointDimension] ValueArrayType
QuadEdgeMeshPoint & operator=(QuadEdgeMeshPoint &&)=default
Self & operator=(const ValueType r[VPointDimension])
QuadEdgeMeshPoint(const Superclass &r)
QuadEdgeMeshPoint(const ValueType r[VPointDimension])
QuadEdgeMeshPoint(const Self &)=default
QuadEdgeMeshPoint & operator=(const QuadEdgeMeshPoint &)=default
void SetEdge(TQuadEdge *inputEdge)
Self & operator=(const Superclass &r)
TQuadEdge * GetEdge() const
bool IsInternal() const
~QuadEdgeMeshPoint()=default
TQuadEdge * GetEdge()
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents