28 #ifndef itkConnectedRegionsMeshFilter_h
29 #define itkConnectedRegionsMeshFilter_h
49 template <
typename TInputMesh,
typename TOutputMesh>
88 static constexpr
unsigned int PointDimension = TInputMesh::PointDimension;
114 PointSeededRegions = 0,
115 CellSeededRegions = 1,
116 SpecifiedRegions = 2,
119 ClosestPointRegion = 5
128 itkSetMacro(ExtractionMode,
int);
129 itkGetConstMacro(ExtractionMode,
int);
135 this->SetExtractionMode(Self::PointSeededRegions);
141 this->SetExtractionMode(Self::CellSeededRegions);
147 this->SetExtractionMode(Self::SpecifiedRegions);
153 this->SetExtractionMode(Self::LargestRegion);
159 this->SetExtractionMode(Self::AllRegions);
165 this->SetExtractionMode(Self::ClosestPointRegion);
186 m_SeedList.push_back(
id);
203 m_RegionList.clear();
214 m_RegionList.push_back(
id);
231 if (m_ClosestPoint != p)
242 return m_ClosestPoint;
251 return m_RegionNumber;
259 PrintSelf(std::ostream & os,
Indent indent)
const override;
262 GenerateData()
override;
265 PropagateConnectedWave();
268 int m_ExtractionMode{};
270 std::vector<IdentifierType> m_SeedList{};
271 std::vector<IdentifierType> m_RegionList{};
272 std::vector<SizeValueType> m_RegionSizes{};
274 std::vector<OffsetValueType> m_Visited{};
277 std::vector<IdentifierType> * m_Wave{
nullptr };
278 std::vector<IdentifierType> * m_Wave2{
nullptr };
282 #ifndef ITK_MANUAL_INSTANTIATION
283 # include "itkConnectedRegionsMeshFilter.hxx"