ITK  4.13.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  itkStaticConstMacro(PointDimension, unsigned int,
46  VPointDimension);
47 
48  typedef typename Superclass::ValueType ValueType;
50  typedef typename Superclass::RealType RealType;
51  typedef typename Superclass::BaseArray BaseArray;
52  typedef typename Superclass::Iterator Iterator;
55 
56  typedef ValueType ValueArrayType[itkGetStaticConstMacro(PointDimension)];
57 
58 #ifdef ITK_USE_CONCEPT_CHECKING
59  // Begin concept checking
60  // End concept checking
61 #endif
62 
63 public:
65  virtual ~QuadEdgeMeshPoint() {}
66  QuadEdgeMeshPoint(const Self & r);
67  QuadEdgeMeshPoint(const Superclass & r);
68  QuadEdgeMeshPoint(const ValueType r[VPointDimension]):Superclass(r)
69  {
70  this->Initialize();
71  }
72 
73  Self & operator=(const Self & r);
74 
75  Self & operator=(const Superclass & r);
76 
77  Self & operator=(const ValueType r[VPointDimension]);
78 
80  void SetEdge(TQuadEdge *inputEdge);
81 
83  void SetPoint(const Superclass & point);
84 
86  TQuadEdge * GetEdge();
87 
88  TQuadEdge * GetEdge() const;
89 
91  bool IsInternal() const;
92 
94  int GetValence() const;
95 
96 protected:
97  void Initialize();
98 
99 protected:
101 };
102 } // end namespace itk
103 
104 #ifndef ITK_MANUAL_INSTANTIATION
105 #include "itkQuadEdgeMeshPoint.hxx"
106 #endif
107 
108 #endif
Wrapper around a itk::Point in order to add a reference to an entry in the edge ring.
Superclass::VectorType VectorType
Superclass::RealType RealType
Superclass::ValueType ValueType
Point< TCoordRep, VPointDimension > Superclass
BaseArray::ConstIterator ConstIterator
Definition: itkPoint.h:72
Superclass::CoordRepType CoordRepType
Superclass::ConstIterator ConstIterator
Superclass::BaseArray BaseArray
A templated class holding a n-Dimensional vector.
Definition: itkVector.h:62
NumericTraits< ValueType >::RealType RealType
Definition: itkPoint.h:64
QuadEdgeMeshPoint(const ValueType r[VPointDimension])
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:52
Superclass::Iterator Iterator