ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkTubeSpatialObjectPoint.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 {
37 template< unsigned int TPointDimension = 3>
38 class ITK_TEMPLATE_EXPORT TubeSpatialObjectPoint:
39  public SpatialObjectPoint< TPointDimension >
40 {
41 public:
42 
48 
52 
54  ~TubeSpatialObjectPoint() override = default;
55 
57  double GetRadiusInObjectSpace() const
58  { return m_RadiusInObjectSpace; }
59 
61  double GetRadiusInWorldSpace() const;
62 
64  void SetRadiusInObjectSpace(double newR)
65  { m_RadiusInObjectSpace = newR; }
66 
68  void SetRadiusInWorldSpace(double newR);
69 
72  { return m_TangentInObjectSpace; }
73 
75  const VectorType GetTangentInWorldSpace() const;
76 
79  { m_TangentInObjectSpace = newT; }
80 
82  void SetTangentInWorldSpace(const VectorType & newT);
83 
86  { return m_Normal1InObjectSpace; }
87 
89  const CovariantVectorType GetNormal1InWorldSpace() const;
90 
93  { m_Normal1InObjectSpace = newV1; }
94 
96  void SetNormal1InWorldSpace(const CovariantVectorType & newV1);
97 
100  { return m_Normal2InObjectSpace; }
101 
103  const CovariantVectorType GetNormal2InWorldSpace() const;
104 
107  { m_Normal2InObjectSpace = newV2; }
108 
110  void SetNormal2InWorldSpace(const CovariantVectorType & newV2);
111 
112  void SetRidgeness( double ridgeness )
113  { m_Ridgeness = ridgeness; }
114 
115  double GetRidgeness() const
116  { return m_Ridgeness; }
117 
118  void SetMedialness( double medialness )
119  { m_Medialness = medialness; }
120 
121  double GetMedialness() const
122  { return m_Medialness; }
123 
124  void SetBranchness( double branchness )
125  { m_Branchness = branchness; }
126 
127  double GetBranchness() const
128  { return m_Branchness; }
129 
130  void SetAlpha1( double alpha1 )
131  { m_Alpha1 = alpha1; }
132 
133  double GetAlpha1() const
134  { return m_Alpha1; }
135 
136  void SetAlpha2( double alpha2 )
137  { m_Alpha2 = alpha2; }
138 
139  double GetAlpha2() const
140  { return m_Alpha2; }
141 
142  void SetAlpha3( double alpha3 )
143  { m_Alpha3 = alpha3; }
144 
145  double GetAlpha3() const
146  { return m_Alpha3; }
147 
149  Self & operator=(const TubeSpatialObjectPoint & rhs);
150 
151 protected:
152 
156 
157  double m_Branchness;
158  double m_Medialness;
159  double m_Ridgeness;
160  double m_Alpha1;
161  double m_Alpha2;
162  double m_Alpha3;
163 
166 
168  void PrintSelf(std::ostream & os, Indent indent) const override;
169 
170 };
171 
172 } // end of namespace itk
173 
174 #ifndef ITK_MANUAL_INSTANTIATION
175 #include "itkTubeSpatialObjectPoint.hxx"
176 #endif
177 
178 #endif // itkTubeSpatialObjectPoint_h
const CovariantVectorType & GetNormal2InObjectSpace() const
Point used for a tube definition.
void SetNormal2InObjectSpace(const CovariantVectorType &newV2)
void SetMedialness(double medialness)
void SetTangentInObjectSpace(const VectorType &newT)
void SetNormal1InObjectSpace(const CovariantVectorType &newV1)
const CovariantVectorType & GetNormal1InObjectSpace() const
vnl_vector< double > VectorType
void SetBranchness(double branchness)
Point used for spatial objets.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
const VectorType & GetTangentInObjectSpace() const