ITK  5.4.0
Insight Toolkit
itkLevelSetDomainPartitionMesh.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 itkLevelSetDomainPartitionMesh_h
19 #define itkLevelSetDomainPartitionMesh_h
20 
22 #include <map>
23 
24 namespace itk
25 {
32 template <typename TMesh>
33 class ITK_TEMPLATE_EXPORT LevelSetDomainPartitionMesh : public LevelSetDomainPartitionBase<TMesh>
34 {
35 public:
36  ITK_DISALLOW_COPY_AND_MOVE(LevelSetDomainPartitionMesh);
37 
42 
43  static constexpr unsigned int PointDimension = TMesh::PointDimension;
44 
45  itkOverrideGetNameOfClassMacro(LevelSetDomainPartitionMesh);
46 
47  using MeshType = TMesh;
48  using MeshPointer = typename MeshType::Pointer;
50  using PointType = typename MeshType::PointType;
51  using PointIdentifierType = typename MeshType::PointIdentifierType;
52 
53  using PointsContainerConstPointer = typename MeshType::PointsContainerConstPointer;
54  using PointsContainerConstIterator = typename MeshType::PointsContainerConstIterator;
55 
56  using typename Superclass::IdentifierListType;
57 
58  using ListMeshType = std::map<PointIdentifierType, IdentifierListType>;
59 
60  itkSetObjectMacro(Mesh, MeshType);
61 
62 protected:
63  LevelSetDomainPartitionMesh() = default;
64  virtual ~LevelSetDomainPartitionMesh() = default;
65 
68  virtual void
69  PopulateListDomain();
70 
73  void
74  AllocateListDomain();
75 
76 private:
77  MeshPointer m_Mesh{};
78  ListMeshType m_ListDomain{};
79 };
80 
81 } // end namespace itk
82 
83 #ifndef ITK_MANUAL_INSTANTIATION
84 # include "itkLevelSetDomainPartitionMesh.hxx"
85 #endif
86 
87 #endif
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
itk::LevelSetDomainPartitionMesh::PointsContainerConstPointer
typename MeshType::PointsContainerConstPointer PointsContainerConstPointer
Definition: itkLevelSetDomainPartitionMesh.h:53
ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkAddImageFilter.h:94
itkLevelSetDomainPartitionBase.h
itk::LevelSetDomainPartitionMesh::ListMeshType
std::map< PointIdentifierType, IdentifierListType > ListMeshType
Definition: itkLevelSetDomainPartitionMesh.h:58
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::SmartPointer< Self >
itk::LevelSetDomainPartitionMesh
Helper class used to partition domain and efficiently compute overlap.
Definition: itkLevelSetDomainPartitionMesh.h:33
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::LevelSetDomainPartitionMesh::MeshType
TMesh MeshType
Definition: itkLevelSetDomainPartitionMesh.h:47
itk::LevelSetDomainPartitionBase
Helper class used to partition domain and efficiently compute overlap.
Definition: itkLevelSetDomainPartitionBase.h:35
itk::LevelSetDomainPartitionMesh::PointType
typename MeshType::PointType PointType
Definition: itkLevelSetDomainPartitionMesh.h:50
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::Mesh
Implements the N-dimensional mesh structure.
Definition: itkMesh.h:126
itk::LevelSetDomainPartitionMesh::MeshConstPointer
typename MeshType::ConstPointer MeshConstPointer
Definition: itkLevelSetDomainPartitionMesh.h:49
itk::LevelSetDomainPartitionMesh::PointIdentifierType
typename MeshType::PointIdentifierType PointIdentifierType
Definition: itkLevelSetDomainPartitionMesh.h:51
itk::LevelSetDomainPartitionMesh::PointsContainerConstIterator
typename MeshType::PointsContainerConstIterator PointsContainerConstIterator
Definition: itkLevelSetDomainPartitionMesh.h:54
itk::LevelSetDomainPartitionMesh::MeshPointer
typename MeshType::Pointer MeshPointer
Definition: itkLevelSetDomainPartitionMesh.h:48