ITK  5.2.0
Insight Toolkit
itkFiniteCylinderSpatialFunction.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 itkFiniteCylinderSpatialFunction_h
19 #define itkFiniteCylinderSpatialFunction_h
20 
22 #include "itkConceptChecking.h"
23 
24 namespace itk
25 {
38 template <unsigned int VDimension = 3, typename TInput = Point<double, VDimension>>
39 class ITK_TEMPLATE_EXPORT FiniteCylinderSpatialFunction : public InteriorExteriorSpatialFunction<VDimension, TInput>
40 {
41 public:
42  ITK_DISALLOW_COPY_AND_MOVE(FiniteCylinderSpatialFunction);
43 
49 
52 
54  itkNewMacro(Self);
55 
57  using InputType = typename Superclass::InputType;
58 
61 
63  itkGetConstMacro(Center, InputType);
64  itkSetMacro(Center, InputType);
66 
68  itkGetConstMacro(AxisLength, double);
69  itkSetMacro(AxisLength, double);
71 
73  itkGetConstMacro(Radius, double);
74  itkSetMacro(Radius, double);
76 
79  itkGetConstMacro(Orientation, InputType);
80  virtual void
81  SetOrientation(const InputType _Orientation);
83 
86  Evaluate(const InputType & position) const override;
87 
88 #ifdef ITK_USE_CONCEPT_CHECKING
89  // Begin concept checking
92  // End concept checking
93 #endif
94 
95 protected:
97  ~FiniteCylinderSpatialFunction() override = default;
98 
99  void
100  PrintSelf(std::ostream & os, Indent indent) const override;
101 
102 private:
105 
107  double m_AxisLength;
108 
110  double m_Radius;
111 
115 };
116 } // end namespace itk
117 
118 #ifndef ITK_MANUAL_INSTANTIATION
119 # include "itkFiniteCylinderSpatialFunction.hxx"
120 #endif
121 
122 #endif
itk::FiniteCylinderSpatialFunction::m_Radius
double m_Radius
Definition: itkFiniteCylinderSpatialFunction.h:110
itk::FiniteCylinderSpatialFunction::m_NormalizedOrientation
InputType m_NormalizedOrientation
Definition: itkFiniteCylinderSpatialFunction.h:114
itk::InteriorExteriorSpatialFunction
Returns whether or not a location is "inside" or "outside" a function.
Definition: itkInteriorExteriorSpatialFunction.h:49
itk::FiniteCylinderSpatialFunction
Function implementation of an finite cylinder.
Definition: itkFiniteCylinderSpatialFunction.h:39
itkConceptChecking.h
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::FiniteCylinderSpatialFunction::m_Center
InputType m_Center
Definition: itkFiniteCylinderSpatialFunction.h:104
itk::Concept::SameDimension
Definition: itkConceptChecking.h:694
itk::InteriorExteriorSpatialFunction::InputType
typename Superclass::InputType InputType
Definition: itkInteriorExteriorSpatialFunction.h:64
itk::FiniteCylinderSpatialFunction::m_AxisLength
double m_AxisLength
Definition: itkFiniteCylinderSpatialFunction.h:107
itk::FiniteCylinderSpatialFunction::m_Orientation
InputType m_Orientation
Definition: itkFiniteCylinderSpatialFunction.h:113
itk::InteriorExteriorSpatialFunction::OutputType
typename Superclass::OutputType OutputType
Definition: itkInteriorExteriorSpatialFunction.h:67
itk::FiniteCylinderSpatialFunction::OutputType
typename Superclass::OutputType OutputType
Definition: itkFiniteCylinderSpatialFunction.h:60
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:65
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itkInteriorExteriorSpatialFunction.h
itk::FiniteCylinderSpatialFunction::InputType
typename Superclass::InputType InputType
Definition: itkFiniteCylinderSpatialFunction.h:57