ITK  6.0.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:
42  ITK_DEFAULT_COPY_AND_MOVE(TubeSpatialObjectPoint);
43 
49 
53 
55  ~TubeSpatialObjectPoint() override = default;
56 
58  double
60  {
61  return m_RadiusInObjectSpace;
62  }
63 
65  double
66  GetRadiusInWorldSpace() const;
67 
69  void
71  {
72  m_RadiusInObjectSpace = newR;
73  }
74 
76  void
77  SetRadiusInWorldSpace(double newR);
78 
80  const VectorType &
82  {
83  return m_TangentInObjectSpace;
84  }
85 
87  const VectorType
88  GetTangentInWorldSpace() const;
89 
91  void
93  {
94  m_TangentInObjectSpace = newT;
95  }
96 
98  void
99  SetTangentInWorldSpace(const VectorType & newT);
100 
102  const CovariantVectorType &
104  {
105  return m_Normal1InObjectSpace;
106  }
107 
109  const CovariantVectorType
110  GetNormal1InWorldSpace() const;
111 
113  void
115  {
116  m_Normal1InObjectSpace = newV1;
117  }
118 
120  void
121  SetNormal1InWorldSpace(const CovariantVectorType & newV1);
122 
124  const CovariantVectorType &
126  {
127  return m_Normal2InObjectSpace;
128  }
129 
131  const CovariantVectorType
132  GetNormal2InWorldSpace() const;
133 
135  void
137  {
138  m_Normal2InObjectSpace = newV2;
139  }
140 
142  void
143  SetNormal2InWorldSpace(const CovariantVectorType & newV2);
144 
145  void
146  SetRidgeness(double ridgeness)
147  {
148  m_Ridgeness = ridgeness;
149  }
150 
151  double
152  GetRidgeness() const
153  {
154  return m_Ridgeness;
155  }
156 
157  void
158  SetCurvature(double curvature)
159  {
160  m_Curvature = curvature;
161  }
162 
163  double
164  GetCurvature() const
165  {
166  return m_Curvature;
167  }
168 
169  void
170  SetLevelness(double levelness)
171  {
172  m_Levelness = levelness;
173  }
174 
175  double
176  GetLevelness() const
177  {
178  return m_Levelness;
179  }
180 
181  void
182  SetRoundness(double roundness)
183  {
184  m_Roundness = roundness;
185  }
186 
187  double
188  GetRoundness() const
189  {
190  return m_Roundness;
191  }
192 
193  void
194  SetIntensity(double intensity)
195  {
196  m_Intensity = intensity;
197  }
198 
199  double
200  GetIntensity() const
201  {
202  return m_Intensity;
203  }
204 
205  void
206  SetMedialness(double medialness)
207  {
208  m_Medialness = medialness;
209  }
210 
211  double
213  {
214  return m_Medialness;
215  }
216 
217  void
218  SetBranchness(double branchness)
219  {
220  m_Branchness = branchness;
221  }
222 
223  double
225  {
226  return m_Branchness;
227  }
228 
229  void
230  SetAlpha1(double alpha1)
231  {
232  m_Alpha1 = alpha1;
233  }
234 
235  double
236  GetAlpha1() const
237  {
238  return m_Alpha1;
239  }
240 
241  void
242  SetAlpha2(double alpha2)
243  {
244  m_Alpha2 = alpha2;
245  }
246 
247  double
248  GetAlpha2() const
249  {
250  return m_Alpha2;
251  }
252 
253  void
254  SetAlpha3(double alpha3)
255  {
256  m_Alpha3 = alpha3;
257  }
258 
259  double
260  GetAlpha3() const
261  {
262  return m_Alpha3;
263  }
264 
265 protected:
266  VectorType m_TangentInObjectSpace{};
267  CovariantVectorType m_Normal1InObjectSpace{};
268  CovariantVectorType m_Normal2InObjectSpace{};
269 
270  double m_Branchness{};
271  double m_Medialness{};
272  double m_Ridgeness{};
273  double m_Curvature{};
274  double m_Levelness{};
275  double m_Roundness{};
276  double m_Intensity{};
277  double m_Alpha1{};
278  double m_Alpha2{};
279  double m_Alpha3{};
280 
282  double m_RadiusInObjectSpace{};
283 
285  void
286  PrintSelf(std::ostream & os, Indent indent) const override;
287 };
288 
289 } // end of namespace itk
290 
291 #ifndef ITK_MANUAL_INSTANTIATION
292 # include "itkTubeSpatialObjectPoint.hxx"
293 #endif
294 
295 #endif // itkTubeSpatialObjectPoint_h
itk::TubeSpatialObjectPoint::SetRidgeness
void SetRidgeness(double ridgeness)
Definition: itkTubeSpatialObjectPoint.h:146
itkCovariantVector.h
itk::TubeSpatialObjectPoint::GetLevelness
double GetLevelness() const
Definition: itkTubeSpatialObjectPoint.h:176
itk::TubeSpatialObjectPoint::GetNormal2InObjectSpace
const CovariantVectorType & GetNormal2InObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:125
itk::TubeSpatialObjectPoint::GetAlpha2
double GetAlpha2() const
Definition: itkTubeSpatialObjectPoint.h:248
itk::TubeSpatialObjectPoint::SetAlpha2
void SetAlpha2(double alpha2)
Definition: itkTubeSpatialObjectPoint.h:242
itk::TubeSpatialObjectPoint::GetTangentInObjectSpace
const VectorType & GetTangentInObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:81
itk::TubeSpatialObjectPoint::GetAlpha1
double GetAlpha1() const
Definition: itkTubeSpatialObjectPoint.h:236
itk::GTest::TypedefsAndConstructors::Dimension2::VectorType
ImageBaseType::SpacingType VectorType
Definition: itkGTestTypedefsAndConstructors.h:53
itk::TubeSpatialObjectPoint::GetIntensity
double GetIntensity() const
Definition: itkTubeSpatialObjectPoint.h:200
itk::TubeSpatialObjectPoint::GetRadiusInObjectSpace
double GetRadiusInObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:59
itk::Vector< double, TPointDimension >
itk::TubeSpatialObjectPoint::SetNormal2InObjectSpace
void SetNormal2InObjectSpace(const CovariantVectorType &newV2)
Definition: itkTubeSpatialObjectPoint.h:136
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::TubeSpatialObjectPoint::SetRoundness
void SetRoundness(double roundness)
Definition: itkTubeSpatialObjectPoint.h:182
itk::TubeSpatialObjectPoint::SetIntensity
void SetIntensity(double intensity)
Definition: itkTubeSpatialObjectPoint.h:194
itk::TubeSpatialObjectPoint::GetBranchness
double GetBranchness() const
Definition: itkTubeSpatialObjectPoint.h:224
itk::TubeSpatialObjectPoint::GetCurvature
double GetCurvature() const
Definition: itkTubeSpatialObjectPoint.h:164
itk::TubeSpatialObjectPoint::GetNormal1InObjectSpace
const CovariantVectorType & GetNormal1InObjectSpace() const
Definition: itkTubeSpatialObjectPoint.h:103
itk::TubeSpatialObjectPoint::SetRadiusInObjectSpace
void SetRadiusInObjectSpace(double newR)
Definition: itkTubeSpatialObjectPoint.h:70
itk::TubeSpatialObjectPoint::GetAlpha3
double GetAlpha3() const
Definition: itkTubeSpatialObjectPoint.h:260
itk::TubeSpatialObjectPoint::SetMedialness
void SetMedialness(double medialness)
Definition: itkTubeSpatialObjectPoint.h:206
itk::CovariantVector< double, TPointDimension >
itk::TubeSpatialObjectPoint::SetBranchness
void SetBranchness(double branchness)
Definition: itkTubeSpatialObjectPoint.h:218
itk::TubeSpatialObjectPoint::GetRoundness
double GetRoundness() const
Definition: itkTubeSpatialObjectPoint.h:188
itk::TubeSpatialObjectPoint::SetNormal1InObjectSpace
void SetNormal1InObjectSpace(const CovariantVectorType &newV1)
Definition: itkTubeSpatialObjectPoint.h:114
itk::TubeSpatialObjectPoint::GetMedialness
double GetMedialness() const
Definition: itkTubeSpatialObjectPoint.h:212
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:230
itk::TubeSpatialObjectPoint::SetAlpha3
void SetAlpha3(double alpha3)
Definition: itkTubeSpatialObjectPoint.h:254
itk::TubeSpatialObjectPoint::GetRidgeness
double GetRidgeness() const
Definition: itkTubeSpatialObjectPoint.h:152
itk::Point< double, TPointDimension >
itk::SpatialObjectPoint::VectorType
vnl_vector< double > VectorType
Definition: itkSpatialObjectPoint.h:67
itk::TubeSpatialObjectPoint::SetCurvature
void SetCurvature(double curvature)
Definition: itkTubeSpatialObjectPoint.h:158
itk::TubeSpatialObjectPoint::SetLevelness
void SetLevelness(double levelness)
Definition: itkTubeSpatialObjectPoint.h:170
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:92