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