ITK  5.3.0
Insight Toolkit
itkTubeSpatialObjectPoint.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 itkTubeSpatialObjectPoint_h
19 #define itkTubeSpatialObjectPoint_h
20 
21 #include "itkSpatialObjectPoint.h"
22 #include "itkCovariantVector.h"
23 #include "vnl/vnl_vector_fixed.h"
24 
25 namespace itk
26 {
38 template <unsigned int TPointDimension = 3>
39 class ITK_TEMPLATE_EXPORT TubeSpatialObjectPoint : public SpatialObjectPoint<TPointDimension>
40 {
41 public:
47 
51 
54 
56  ~TubeSpatialObjectPoint() override = default;
57 
59  double
61  {
62  return m_RadiusInObjectSpace;
63  }
64 
66  double
67  GetRadiusInWorldSpace() const;
68 
70  void
72  {
73  m_RadiusInObjectSpace = newR;
74  }
75 
77  void
78  SetRadiusInWorldSpace(double newR);
79 
81  const VectorType &
83  {
84  return m_TangentInObjectSpace;
85  }
86 
88  const VectorType
89  GetTangentInWorldSpace() const;
90 
92  void
94  {
95  m_TangentInObjectSpace = newT;
96  }
97 
99  void
100  SetTangentInWorldSpace(const VectorType & newT);
101 
103  const CovariantVectorType &
105  {
106  return m_Normal1InObjectSpace;
107  }
108 
110  const CovariantVectorType
111  GetNormal1InWorldSpace() const;
112 
114  void
116  {
117  m_Normal1InObjectSpace = newV1;
118  }
119 
121  void
122  SetNormal1InWorldSpace(const CovariantVectorType & newV1);
123 
125  const CovariantVectorType &
127  {
128  return m_Normal2InObjectSpace;
129  }
130 
132  const CovariantVectorType
133  GetNormal2InWorldSpace() const;
134 
136  void
138  {
139  m_Normal2InObjectSpace = newV2;
140  }
141 
143  void
144  SetNormal2InWorldSpace(const CovariantVectorType & newV2);
145 
146  void
147  SetRidgeness(double ridgeness)
148  {
149  m_Ridgeness = ridgeness;
150  }
151 
152  double
153  GetRidgeness() const
154  {
155  return m_Ridgeness;
156  }
157 
158  void
159  SetCurvature(double curvature)
160  {
161  m_Curvature = curvature;
162  }
163 
164  double
165  GetCurvature() const
166  {
167  return m_Curvature;
168  }
169 
170  void
171  SetLevelness(double levelness)
172  {
173  m_Levelness = levelness;
174  }
175 
176  double
177  GetLevelness() const
178  {
179  return m_Levelness;
180  }
181 
182  void
183  SetRoundness(double roundness)
184  {
185  m_Roundness = roundness;
186  }
187 
188  double
189  GetRoundness() const
190  {
191  return m_Roundness;
192  }
193 
194  void
195  SetIntensity(double intensity)
196  {
197  m_Intensity = intensity;
198  }
199 
200  double
201  GetIntensity() const
202  {
203  return m_Intensity;
204  }
205 
206  void
207  SetMedialness(double medialness)
208  {
209  m_Medialness = medialness;
210  }
211 
212  double
214  {
215  return m_Medialness;
216  }
217 
218  void
219  SetBranchness(double branchness)
220  {
221  m_Branchness = branchness;
222  }
223 
224  double
226  {
227  return m_Branchness;
228  }
229 
230  void
231  SetAlpha1(double alpha1)
232  {
233  m_Alpha1 = alpha1;
234  }
235 
236  double
237  GetAlpha1() const
238  {
239  return m_Alpha1;
240  }
241 
242  void
243  SetAlpha2(double alpha2)
244  {
245  m_Alpha2 = alpha2;
246  }
247 
248  double
249  GetAlpha2() const
250  {
251  return m_Alpha2;
252  }
253 
254  void
255  SetAlpha3(double alpha3)
256  {
257  m_Alpha3 = alpha3;
258  }
259 
260  double
261  GetAlpha3() const
262  {
263  return m_Alpha3;
264  }
265 
267  Self &
268  operator=(const TubeSpatialObjectPoint & rhs);
269 
270 protected:
274 
275  double m_Branchness;
276  double m_Medialness;
277  double m_Ridgeness;
278  double m_Curvature;
279  double m_Levelness;
280  double m_Roundness;
281  double m_Intensity;
282  double m_Alpha1;
283  double m_Alpha2;
284  double m_Alpha3;
285 
288 
290  void
291  PrintSelf(std::ostream & os, Indent indent) const override;
292 };
293 
294 } // end of namespace itk
295 
296 #ifndef ITK_MANUAL_INSTANTIATION
297 # include "itkTubeSpatialObjectPoint.hxx"
298 #endif
299 
300 #endif // itkTubeSpatialObjectPoint_h
itk::TubeSpatialObjectPoint::SetRidgeness
void SetRidgeness(double ridgeness)
Definition: itkTubeSpatialObjectPoint.h:147
itkCovariantVector.h
itk::TubeSpatialObjectPoint::m_Alpha2
double m_Alpha2
Definition: itkTubeSpatialObjectPoint.h:283
itk::TubeSpatialObjectPoint::m_Alpha1
double m_Alpha1
Definition: itkTubeSpatialObjectPoint.h:282
itk::TubeSpatialObjectPoint::GetLevelness
double GetLevelness() const
Definition: itkTubeSpatialObjectPoint.h:177
itk::TubeSpatialObjectPoint::GetNormal2InObjectSpace
const CovariantVectorType & GetNormal2InObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:126
itk::TubeSpatialObjectPoint::GetAlpha2
double GetAlpha2() const
Definition: itkTubeSpatialObjectPoint.h:249
itk::TubeSpatialObjectPoint::SetAlpha2
void SetAlpha2(double alpha2)
Definition: itkTubeSpatialObjectPoint.h:243
itk::TubeSpatialObjectPoint::GetTangentInObjectSpace
const VectorType & GetTangentInObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:82
itk::TubeSpatialObjectPoint::GetAlpha1
double GetAlpha1() const
Definition: itkTubeSpatialObjectPoint.h:237
itk::GTest::TypedefsAndConstructors::Dimension2::VectorType
ImageBaseType::SpacingType VectorType
Definition: itkGTestTypedefsAndConstructors.h:53
itk::TubeSpatialObjectPoint::GetIntensity
double GetIntensity() const
Definition: itkTubeSpatialObjectPoint.h:201
itk::TubeSpatialObjectPoint::GetRadiusInObjectSpace
double GetRadiusInObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:60
itk::Vector< double, TPointDimension >
itk::TubeSpatialObjectPoint::m_Medialness
double m_Medialness
Definition: itkTubeSpatialObjectPoint.h:276
itk::TubeSpatialObjectPoint::m_Roundness
double m_Roundness
Definition: itkTubeSpatialObjectPoint.h:280
itk::TubeSpatialObjectPoint::SetNormal2InObjectSpace
void SetNormal2InObjectSpace(const CovariantVectorType &newV2)
Definition: itkTubeSpatialObjectPoint.h:137
itk::TubeSpatialObjectPoint::m_Alpha3
double m_Alpha3
Definition: itkTubeSpatialObjectPoint.h:284
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::TubeSpatialObjectPoint::SetRoundness
void SetRoundness(double roundness)
Definition: itkTubeSpatialObjectPoint.h:183
itk::TubeSpatialObjectPoint::SetIntensity
void SetIntensity(double intensity)
Definition: itkTubeSpatialObjectPoint.h:195
itk::TubeSpatialObjectPoint::GetBranchness
double GetBranchness() const
Definition: itkTubeSpatialObjectPoint.h:225
itk::TubeSpatialObjectPoint::m_Curvature
double m_Curvature
Definition: itkTubeSpatialObjectPoint.h:278
itk::TubeSpatialObjectPoint::GetCurvature
double GetCurvature() const
Definition: itkTubeSpatialObjectPoint.h:165
itk::TubeSpatialObjectPoint::m_Levelness
double m_Levelness
Definition: itkTubeSpatialObjectPoint.h:279
itk::TubeSpatialObjectPoint::m_Intensity
double m_Intensity
Definition: itkTubeSpatialObjectPoint.h:281
itk::TubeSpatialObjectPoint::GetNormal1InObjectSpace
const CovariantVectorType & GetNormal1InObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:104
itk::TubeSpatialObjectPoint::SetRadiusInObjectSpace
void SetRadiusInObjectSpace(double newR)
Definition: itkTubeSpatialObjectPoint.h:71
itk::TubeSpatialObjectPoint::GetAlpha3
double GetAlpha3() const
Definition: itkTubeSpatialObjectPoint.h:261
itk::TubeSpatialObjectPoint::SetMedialness
void SetMedialness(double medialness)
Definition: itkTubeSpatialObjectPoint.h:207
itk::TubeSpatialObjectPoint::m_TangentInObjectSpace
VectorType m_TangentInObjectSpace
Definition: itkTubeSpatialObjectPoint.h:271
itk::TubeSpatialObjectPoint::m_Normal2InObjectSpace
CovariantVectorType m_Normal2InObjectSpace
Definition: itkTubeSpatialObjectPoint.h:273
itk::CovariantVector< double, TPointDimension >
itk::TubeSpatialObjectPoint::SetBranchness
void SetBranchness(double branchness)
Definition: itkTubeSpatialObjectPoint.h:219
itk::TubeSpatialObjectPoint::GetRoundness
double GetRoundness() const
Definition: itkTubeSpatialObjectPoint.h:189
itk::TubeSpatialObjectPoint::m_Normal1InObjectSpace
CovariantVectorType m_Normal1InObjectSpace
Definition: itkTubeSpatialObjectPoint.h:272
itk::TubeSpatialObjectPoint::SetNormal1InObjectSpace
void SetNormal1InObjectSpace(const CovariantVectorType &newV1)
Definition: itkTubeSpatialObjectPoint.h:115
itk::TubeSpatialObjectPoint::GetMedialness
double GetMedialness() const
Definition: itkTubeSpatialObjectPoint.h:213
itk::TubeSpatialObjectPoint::m_RadiusInObjectSpace
double m_RadiusInObjectSpace
Definition: itkTubeSpatialObjectPoint.h:287
itk::TubeSpatialObjectPoint::m_Ridgeness
double m_Ridgeness
Definition: itkTubeSpatialObjectPoint.h:277
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::TubeSpatialObjectPoint::SetAlpha1
void SetAlpha1(double alpha1)
Definition: itkTubeSpatialObjectPoint.h:231
itk::TubeSpatialObjectPoint::m_Branchness
double m_Branchness
Definition: itkTubeSpatialObjectPoint.h:275
itk::TubeSpatialObjectPoint::SetAlpha3
void SetAlpha3(double alpha3)
Definition: itkTubeSpatialObjectPoint.h:255
itk::TubeSpatialObjectPoint::GetRidgeness
double GetRidgeness() const
Definition: itkTubeSpatialObjectPoint.h:153
itk::Point< double, TPointDimension >
itk::SpatialObjectPoint::VectorType
vnl_vector< double > VectorType
Definition: itkSpatialObjectPoint.h:71
itk::TubeSpatialObjectPoint::SetCurvature
void SetCurvature(double curvature)
Definition: itkTubeSpatialObjectPoint.h:159
itk::TubeSpatialObjectPoint::SetLevelness
void SetLevelness(double levelness)
Definition: itkTubeSpatialObjectPoint.h:171
itk::TubeSpatialObjectPoint
Point used for a tube definition.
Definition: itkTubeSpatialObjectPoint.h:39
itkSpatialObjectPoint.h
itk::SpatialObjectPoint
Point used for spatial objets.
Definition: itkSpatialObjectPoint.h:44
itk::TubeSpatialObjectPoint::SetTangentInObjectSpace
void SetTangentInObjectSpace(const VectorType &newT)
Definition: itkTubeSpatialObjectPoint.h:93