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
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:
43
49
53
55 ~TubeSpatialObjectPoint() override = default;
56
58 double
60 {
61 return m_RadiusInObjectSpace;
62 }
63
65 double
67
69 void
71 {
72 m_RadiusInObjectSpace = newR;
73 }
74
76 void
78
80 const VectorType &
82 {
83 return m_TangentInObjectSpace;
84 }
85
87 const VectorType
89
91 void
93 {
94 m_TangentInObjectSpace = newT;
95 }
96
98 void
100
102 const CovariantVectorType &
104 {
105 return m_Normal1InObjectSpace;
106 }
107
109 const CovariantVectorType
111
113 void
115 {
116 m_Normal1InObjectSpace = newV1;
117 }
118
120 void
122
124 const CovariantVectorType &
126 {
127 return m_Normal2InObjectSpace;
128 }
129
131 const CovariantVectorType
133
135 void
137 {
138 m_Normal2InObjectSpace = newV2;
139 }
140
142 void
144
145 void
146 SetRidgeness(double ridgeness)
147 {
148 m_Ridgeness = ridgeness;
149 }
150
151 double
153 {
154 return m_Ridgeness;
155 }
156
157 void
158 SetCurvature(double curvature)
159 {
160 m_Curvature = curvature;
161 }
162
163 double
165 {
166 return m_Curvature;
167 }
168
169 void
170 SetLevelness(double levelness)
171 {
172 m_Levelness = levelness;
173 }
174
175 double
177 {
178 return m_Levelness;
179 }
180
181 void
182 SetRoundness(double roundness)
183 {
184 m_Roundness = roundness;
185 }
186
187 double
189 {
190 return m_Roundness;
191 }
192
193 void
194 SetIntensity(double intensity)
195 {
196 m_Intensity = intensity;
197 }
198
199 double
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
265protected:
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
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)
const CovariantVectorType & GetNormal1InObjectSpace() const
double GetRadiusInWorldSpace() const
const VectorType & GetTangentInObjectSpace() const
const VectorType GetTangentInWorldSpace() const
ITK_DEFAULT_COPY_AND_MOVE(TubeSpatialObjectPoint)
void SetMedialness(double medialness)
const CovariantVectorType GetNormal2InWorldSpace() const
void SetNormal2InObjectSpace(const CovariantVectorType &newV2)
const CovariantVectorType & GetNormal2InObjectSpace() const
const CovariantVectorType GetNormal1InWorldSpace() const
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....