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
22#include "itkCovariantVector.h"
23#include "vnl/vnl_vector_fixed.h"
24
25namespace itk
26{
38template <unsigned int TPointDimension = 3>
39class ITK_TEMPLATE_EXPORT TubeSpatialObjectPoint : public SpatialObjectPoint<TPointDimension>
40{
41public:
47
51
54
56 ~TubeSpatialObjectPoint() override = default;
57
59 double
61 {
62 return m_RadiusInObjectSpace;
63 }
64
66 double
68
70 void
72 {
73 m_RadiusInObjectSpace = newR;
74 }
75
77 void
79
81 const VectorType &
83 {
84 return m_TangentInObjectSpace;
85 }
86
88 const VectorType
90
92 void
94 {
95 m_TangentInObjectSpace = newT;
96 }
97
99 void
101
103 const CovariantVectorType &
105 {
106 return m_Normal1InObjectSpace;
107 }
108
110 const CovariantVectorType
112
114 void
116 {
117 m_Normal1InObjectSpace = newV1;
118 }
119
121 void
123
125 const CovariantVectorType &
127 {
128 return m_Normal2InObjectSpace;
129 }
130
132 const CovariantVectorType
134
136 void
138 {
139 m_Normal2InObjectSpace = newV2;
140 }
141
143 void
145
146 void
147 SetRidgeness(double ridgeness)
148 {
149 m_Ridgeness = ridgeness;
150 }
151
152 double
154 {
155 return m_Ridgeness;
156 }
157
158 void
159 SetCurvature(double curvature)
160 {
161 m_Curvature = curvature;
162 }
163
164 double
166 {
167 return m_Curvature;
168 }
169
170 void
171 SetLevelness(double levelness)
172 {
173 m_Levelness = levelness;
174 }
175
176 double
178 {
179 return m_Levelness;
180 }
181
182 void
183 SetRoundness(double roundness)
184 {
185 m_Roundness = roundness;
186 }
187
188 double
190 {
191 return m_Roundness;
192 }
193
194 void
195 SetIntensity(double intensity)
196 {
197 m_Intensity = intensity;
198 }
199
200 double
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 &
269
270protected:
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
Pixel-wise addition of two images.
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Point used for spatial objects.
Point used for a tube definition.
void SetNormal2InWorldSpace(const CovariantVectorType &newV2)
void SetBranchness(double branchness)
void SetTangentInObjectSpace(const VectorType &newT)
void PrintSelf(std::ostream &os, Indent indent) const override
void SetRadiusInWorldSpace(double newR)
void SetTangentInWorldSpace(const VectorType &newT)
~TubeSpatialObjectPoint() override=default
void SetNormal1InWorldSpace(const CovariantVectorType &newV1)
void SetNormal1InObjectSpace(const CovariantVectorType &newV1)
Self & operator=(const TubeSpatialObjectPoint &rhs)
const CovariantVectorType & GetNormal1InObjectSpace() const
double GetRadiusInWorldSpace() const
const VectorType & GetTangentInObjectSpace() const
const VectorType GetTangentInWorldSpace() const
void SetMedialness(double medialness)
const CovariantVectorType GetNormal2InWorldSpace() const
void SetNormal2InObjectSpace(const CovariantVectorType &newV2)
const CovariantVectorType & GetNormal2InObjectSpace() const
const CovariantVectorType GetNormal1InWorldSpace() const
TubeSpatialObjectPoint(const TubeSpatialObjectPoint &other)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....