ITK  5.3.0
Insight Toolkit
itkFastMarchingNumberOfElementsStoppingCriterion.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 
19 #ifndef itkFastMarchingNumberOfElementsStoppingCriterion_h
20 #define itkFastMarchingNumberOfElementsStoppingCriterion_h
21 
23 #include "itkObjectFactory.h"
24 
25 namespace itk
26 {
40 template <typename TInput, typename TOutput>
42  : public FastMarchingStoppingCriterionBase<TInput, TOutput>
43 {
44 public:
45  ITK_DISALLOW_COPY_AND_MOVE(FastMarchingNumberOfElementsStoppingCriterion);
46 
48  using Superclass = FastMarchingStoppingCriterionBase<TInput, TOutput>;
51 
53  itkNewMacro(Self);
54 
56  itkTypeMacro(FastMarchingNumberOfElementsStoppingCriterion, FastMarchingStoppingCriterionBase);
57 
58  using OutputPixelType = typename Superclass::OutputPixelType;
59  using NodeType = typename Superclass::NodeType;
60 
62  itkSetMacro(TargetNumberOfElements, IdentifierType);
63  itkGetMacro(TargetNumberOfElements, IdentifierType);
65 
66  bool
67  IsSatisfied() const override
68  {
69  return (this->m_CurrentNumberOfElements >= this->m_TargetNumberOfElements);
70  }
71 
72  std::string
73  GetDescription() const override
74  {
75  return "Current Number of Elements >= Target Number of Elements";
76  }
77 
78 protected:
80  : Superclass()
81  , m_CurrentNumberOfElements(NumericTraits<IdentifierType>::ZeroValue())
82  , m_TargetNumberOfElements(NumericTraits<IdentifierType>::ZeroValue())
83  {}
84 
86 
89 
90  void
91  SetCurrentNode(const NodeType &) override
92  {
93  ++this->m_CurrentNumberOfElements;
94  }
95 
96  void
97  Reset() override
98  {
99  this->m_CurrentNumberOfElements = NumericTraits<IdentifierType>::ZeroValue();
100  }
101 };
102 
103 } // namespace itk
104 #endif // itkFastMarchingNumberOfElementsStoppingCriterion_h
itkObjectFactory.h
itk::FastMarchingNumberOfElementsStoppingCriterion::Superclass
FastMarchingStoppingCriterionBase< TInput, TOutput > Superclass
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:48
itk::SmartPointer< Self >
itk::FastMarchingNumberOfElementsStoppingCriterion::SetCurrentNode
void SetCurrentNode(const NodeType &) override
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:91
itk::FastMarchingNumberOfElementsStoppingCriterion::GetDescription
std::string GetDescription() const override
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:73
itk::FastMarchingNumberOfElementsStoppingCriterion::FastMarchingNumberOfElementsStoppingCriterion
FastMarchingNumberOfElementsStoppingCriterion()
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:79
itk::FastMarchingNumberOfElementsStoppingCriterion::NodeType
typename Superclass::NodeType NodeType
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:59
itk::FastMarchingNumberOfElementsStoppingCriterion
Stopping Criterion is verified when Current Number of Elements is equal to or greater than the provid...
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:41
itk::FastMarchingNumberOfElementsStoppingCriterion::m_TargetNumberOfElements
IdentifierType m_TargetNumberOfElements
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:88
itk::FastMarchingNumberOfElementsStoppingCriterion::m_CurrentNumberOfElements
IdentifierType m_CurrentNumberOfElements
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:87
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:58
itk::NumericTraits::ZeroValue
static T ZeroValue()
Definition: itkNumericTraits.h:148
itk::FastMarchingNumberOfElementsStoppingCriterion::Reset
void Reset() override
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:97
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::FastMarchingNumberOfElementsStoppingCriterion::IsSatisfied
bool IsSatisfied() const override
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:67
itkFastMarchingStoppingCriterionBase.h
itk::FastMarchingNumberOfElementsStoppingCriterion::OutputPixelType
typename Superclass::OutputPixelType OutputPixelType
Definition: itkFastMarchingNumberOfElementsStoppingCriterion.h:58
itk::IdentifierType
SizeValueType IdentifierType
Definition: itkIntTypes.h:87