ITK  4.10.0
Insight Segmentation and Registration Toolkit
itkNormalVectorFunctionBase.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 itkNormalVectorFunctionBase_h
19 #define itkNormalVectorFunctionBase_h
20 
22 
23 namespace itk
24 {
51 template< typename TSparseImageType >
53  public FiniteDifferenceSparseImageFunction< TSparseImageType >
54 {
55 public:
61 
64 
66  itkStaticConstMacro(ImageDimension, unsigned int, Superclass::ImageDimension);
67 
73  typedef typename Superclass::IndexType IndexType;
75 
77  typedef typename SparseImageType::NodeType NodeType;
78 
80  typedef typename NodeType::NodeValueType NodeValueType;
81 
83  typedef typename NodeType::NodeDataType NormalVectorType;
84 
86  virtual void * GetGlobalDataPointer() const ITK_OVERRIDE { return ITK_NULLPTR; }
87  virtual void ReleaseGlobalDataPointer(void *) const ITK_OVERRIDE {}
89 
91  virtual TimeStepType ComputeGlobalTimeStep(void *) const ITK_OVERRIDE
92  { return m_TimeStep; }
93 
95  void SetTimeStep(const TimeStepType & ts)
96  { m_TimeStep = ts; }
97 
99  TimeStepType GetTimeStep() const
100  { return m_TimeStep; }
101 
102 protected:
105  virtual void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
106 
107 private:
109  TimeStepType m_TimeStep;
110 
111  NormalVectorFunctionBase(const Self &) ITK_DELETE_FUNCTION;
112  void operator=(const Self &) ITK_DELETE_FUNCTION;
113 };
114 } // end namespace itk
115 
116 #ifndef ITK_MANUAL_INSTANTIATION
117 #include "itkNormalVectorFunctionBase.hxx"
118 #endif
119 
120 #endif
Superclass::SparseImageType SparseImageType
SmartPointer< const Self > ConstPointer
virtual void PrintSelf(std::ostream &os, Indent indent) const override
void SetTimeStep(const TimeStepType &ts)
virtual void ReleaseGlobalDataPointer(void *) const override
FiniteDifferenceSparseImageFunction< TSparseImageType > Superclass
This class defines the common functionality for Sparse Image neighborhoods of unit vectors...
static const unsigned int ImageDimension
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
Definition: itkArray.h:30
ConstNeighborhoodIterator< TSparseImageType >::RadiusType RadiusType
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
virtual TimeStepType ComputeGlobalTimeStep(void *) const override
Superclass::NeighborhoodType NeighborhoodType
A templated class holding a n-Dimensional vector.
Definition: itkVector.h:62
Superclass::FloatOffsetType FloatOffsetType
virtual void * GetGlobalDataPointer() const override
This is the base class for function classes that can be used with filters derived from FiniteDifferen...
Control indentation during Print() invocation.
Definition: itkIndent.h:49