ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkLevelSetEvolutionUpdateLevelSetsThreader.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 itkLevelSetEvolutionUpdateLevelSetsThreader_h
19#define itkLevelSetEvolutionUpdateLevelSetsThreader_h
20
22#include "itkDomainThreader.h"
25
26namespace itk
27{
28
37template <typename TLevelSet, typename TDomainPartitioner, typename TLevelSetEvolution>
38class ITK_TEMPLATE_EXPORT LevelSetEvolutionUpdateLevelSetsThreader{};
39
40// For dense image level set.
41template <typename TImage, typename TLevelSetEvolution>
42class ITK_TEMPLATE_EXPORT
44 ThreadedImageRegionPartitioner<TImage::ImageDimension>,
45 TLevelSetEvolution>
46 : public DomainThreader<ThreadedImageRegionPartitioner<TImage::ImageDimension>, TLevelSetEvolution>
47{
48public:
49 ITK_DISALLOW_COPY_AND_MOVE(LevelSetEvolutionUpdateLevelSetsThreader);
50
56
58 itkOverrideGetNameOfClassMacro(LevelSetEvolutionUpdateLevelSetsThreader);
59
61 itkNewMacro(Self);
62
64 using typename Superclass::DomainType;
65 using typename Superclass::AssociateType;
66
68 using LevelSetEvolutionType = TLevelSetEvolution;
69 using LevelSetContainerType = typename LevelSetEvolutionType::LevelSetContainerType;
70 using LevelSetType = typename LevelSetEvolutionType::LevelSetType;
71 using LevelSetImageType = typename LevelSetEvolutionType::LevelSetImageType;
72 using LevelSetOutputRealType = typename LevelSetEvolutionType::LevelSetOutputRealType;
73
74protected:
76
77 void
79
80 void
81 ThreadedExecution(const DomainType & imageSubRegion, const ThreadIdType threadId) override;
82
83 void
85
87 using RMSChangeAccumulatorPerThreadType = std::vector<RMSChangeAccumulatorType>;
88
90};
91
92} // end namespace itk
93
94#ifndef ITK_MANUAL_INSTANTIATION
95# include "itkLevelSetEvolutionUpdateLevelSetsThreader.hxx"
96#endif
97
98#endif
Perform more precise accumulation of floating point numbers.
Base class for the "dense" representation of a level-set function on one image.
Implements transparent reference counting.
Class for partitioning of an ImageRegion.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType