ITK  5.4.0
Insight Toolkit
itkLevelSetDomainPartitionImage.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 itkLevelSetDomainPartitionImage_h
19 #define itkLevelSetDomainPartitionImage_h
20 
23 
24 namespace itk
25 {
32 template <typename TImage>
33 class ITK_TEMPLATE_EXPORT LevelSetDomainPartitionImage : public LevelSetDomainPartitionBase<TImage>
34 {
35 public:
36  ITK_DISALLOW_COPY_AND_MOVE(LevelSetDomainPartitionImage);
37 
42 
43  static constexpr unsigned int ImageDimension = TImage::ImageDimension;
44 
46  itkNewMacro(Self);
47 
48  itkOverrideGetNameOfClassMacro(LevelSetDomainPartitionImage);
49 
50  using ImageType = TImage;
51  using ImagePointer = typename ImageType::Pointer;
53  using PixelType = typename ImageType::PixelType;
55  using SizeType = typename ImageType::SizeType;
57  using SpacingType = typename ImageType::SpacingType;
58  using IndexType = typename ImageType::IndexType;
60  using PointType = typename ImageType::PointType;
61 
62  using typename Superclass::IdentifierListType;
63 
75 
76  using LevelSetDomainRegionVectorType = std::vector<RegionType>;
77 
80  itkSetConstObjectMacro(Image, ImageType);
81  itkGetConstObjectMacro(Image, ImageType);
85  itkGetModifiableObjectMacro(ListDomain, ListImageType);
86 
87  void
88  SetLevelSetDomainRegionVector(const LevelSetDomainRegionVectorType & domain);
90  GetLevelSetDomainRegionVector() const;
91 
94  void
95  PopulateListDomain() override;
96 
97 protected:
98  LevelSetDomainPartitionImage() = default;
99  ~LevelSetDomainPartitionImage() override = default;
100 
103  void
104  AllocateListDomain() override;
105 
106  ImageConstPointer m_Image{};
107  ListImagePointer m_ListDomain{};
108  LevelSetDomainRegionVectorType m_LevelSetDomainRegionVector{};
109 };
110 } // end namespace itk
111 
112 #ifndef ITK_MANUAL_INSTANTIATION
113 # include "itkLevelSetDomainPartitionImage.hxx"
114 #endif
115 
116 #endif
itk::LevelSetDomainPartitionImage::LevelSetDomainRegionVectorType
std::vector< RegionType > LevelSetDomainRegionVectorType
Definition: itkLevelSetDomainPartitionImage.h:76
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
itk::LevelSetDomainPartitionImage::ListSpacingType
typename ListImageType::SpacingType ListSpacingType
Definition: itkLevelSetDomainPartitionImage.h:70
ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkAddImageFilter.h:94
itk::LevelSetDomainPartitionImage::ListIndexValueType
typename ListIndexType::IndexValueType ListIndexValueType
Definition: itkLevelSetDomainPartitionImage.h:72
itkLevelSetDomainPartitionBase.h
itk::LevelSetDomainPartitionImage::ListSizeValueType
typename ListSizeType::SizeValueType ListSizeValueType
Definition: itkLevelSetDomainPartitionImage.h:69
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::Vector< SpacingValueType, VImageDimension >
itk::LevelSetDomainPartitionImage::ListImageConstPointer
typename ListImageType::ConstPointer ListImageConstPointer
Definition: itkLevelSetDomainPartitionImage.h:66
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::SmartPointer< Self >
itk::LevelSetDomainPartitionImage::ImageConstPointer
typename ImageType::ConstPointer ImageConstPointer
Definition: itkLevelSetDomainPartitionImage.h:52
itkImageRegionIteratorWithIndex.h
itk::IndexValueType
long IndexValueType
Definition: itkIntTypes.h:90
itk::LevelSetDomainPartitionImage::ListSizeType
typename ListImageType::SizeType ListSizeType
Definition: itkLevelSetDomainPartitionImage.h:68
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::LevelSetDomainPartitionImage::IndexType
typename ImageType::IndexType IndexType
Definition: itkLevelSetDomainPartitionImage.h:58
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::LevelSetDomainPartitionImage::ListPointType
typename ListImageType::PointType ListPointType
Definition: itkLevelSetDomainPartitionImage.h:73
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::LevelSetDomainPartitionBase
Helper class used to partition domain and efficiently compute overlap.
Definition: itkLevelSetDomainPartitionBase.h:35
itk::LevelSetDomainPartitionImage::SpacingType
typename ImageType::SpacingType SpacingType
Definition: itkLevelSetDomainPartitionImage.h:57
itk::LevelSetDomainPartitionImage::ListRegionType
typename ListImageType::RegionType ListRegionType
Definition: itkLevelSetDomainPartitionImage.h:67
itk::ImageRegionIteratorWithIndex
A multi-dimensional iterator templated over image type that walks pixels within a region and is speci...
Definition: itkImageRegionIteratorWithIndex.h:73
itk::LevelSetDomainPartitionImage::ListImagePointer
typename ListImageType::Pointer ListImagePointer
Definition: itkLevelSetDomainPartitionImage.h:65
itk::LevelSetDomainPartitionImage::PointType
typename ImageType::PointType PointType
Definition: itkLevelSetDomainPartitionImage.h:60
itk::LevelSetDomainPartitionImage::SizeValueType
typename SizeType::SizeValueType SizeValueType
Definition: itkLevelSetDomainPartitionImage.h:56
itk::LevelSetDomainPartitionImage::SizeType
typename ImageType::SizeType SizeType
Definition: itkLevelSetDomainPartitionImage.h:55
itk::LevelSetDomainPartitionImage::ImagePointer
typename ImageType::Pointer ImagePointer
Definition: itkLevelSetDomainPartitionImage.h:51
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::LevelSetDomainPartitionImage::ImageType
TImage ImageType
Definition: itkLevelSetDomainPartitionImage.h:50
itk::Image
Templated n-dimensional image class.
Definition: itkImage.h:88
itk::LevelSetDomainPartitionImage::RegionType
typename ImageType::RegionType RegionType
Definition: itkLevelSetDomainPartitionImage.h:54
itk::LevelSetDomainPartitionImage::ListIndexType
typename ListImageType::IndexType ListIndexType
Definition: itkLevelSetDomainPartitionImage.h:71
itk::LevelSetDomainPartitionImage::IndexValueType
typename IndexType::IndexValueType IndexValueType
Definition: itkLevelSetDomainPartitionImage.h:59
itk::LevelSetDomainPartitionImage::PixelType
typename ImageType::PixelType PixelType
Definition: itkLevelSetDomainPartitionImage.h:53
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:83
itk::LevelSetDomainPartitionImage
Helper class used to partition domain and efficiently compute overlap.
Definition: itkLevelSetDomainPartitionImage.h:33