ITK  5.4.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  * 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 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:
271  VectorType m_TangentInObjectSpace{};
272  CovariantVectorType m_Normal1InObjectSpace{};
273  CovariantVectorType m_Normal2InObjectSpace{};
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 
287  double m_RadiusInObjectSpace{};
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::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::SetNormal2InObjectSpace
void SetNormal2InObjectSpace(const CovariantVectorType &newV2)
Definition: itkTubeSpatialObjectPoint.h:137
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::GetCurvature
double GetCurvature() const
Definition: itkTubeSpatialObjectPoint.h:165
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::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::SetNormal1InObjectSpace
void SetNormal1InObjectSpace(const CovariantVectorType &newV1)
Definition: itkTubeSpatialObjectPoint.h:115
itk::TubeSpatialObjectPoint::GetMedialness
double GetMedialness() const
Definition: itkTubeSpatialObjectPoint.h:213
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::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:68
itk::TubeSpatialObjectPoint::SetCurvature
void SetCurvature(double curvature)
Definition: itkTubeSpatialObjectPoint.h:159
AddImageFilter
Definition: itkAddImageFilter.h:81
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 objects.
Definition: itkSpatialObjectPoint.h:44
itk::TubeSpatialObjectPoint::SetTangentInObjectSpace
void SetTangentInObjectSpace(const VectorType &newT)
Definition: itkTubeSpatialObjectPoint.h:93