73 #ifndef vtkPolyDataEdgeConnectivityFilter_h
74 #define vtkPolyDataEdgeConnectivityFilter_h
76 #include "vtkFiltersCoreModule.h"
80 #define VTK_EXTRACT_POINT_SEEDED_REGIONS 1
81 #define VTK_EXTRACT_CELL_SEEDED_REGIONS 2
82 #define VTK_EXTRACT_SPECIFIED_REGIONS 3
83 #define VTK_EXTRACT_LARGEST_REGION 4
84 #define VTK_EXTRACT_ALL_REGIONS 5
85 #define VTK_EXTRACT_CLOSEST_POINT_REGION 6
86 #define VTK_EXTRACT_LARGE_REGIONS 7
88 VTK_ABI_NAMESPACE_BEGIN
113 vtkGetMacro(ExtractionMode,
int);
133 const char* GetExtractionModeAsString();
169 vtkSetVector2Macro(BarrierEdgeLength,
double);
170 vtkGetVector2Macro(BarrierEdgeLength,
double);
188 vtkSetVector2Macro(ScalarRange,
double);
189 vtkGetVector2Macro(ScalarRange,
double);
203 void InitializeSeedList();
208 void AddSeed(
int id);
213 void DeleteSeed(
int id);
218 void InitializeSpecifiedRegionList();
223 void AddSpecifiedRegion(
int id);
228 void DeleteSpecifiedRegion(
int id);
233 int GetNumberOfSpecifiedRegions();
240 vtkSetVector3Macro(ClosestPoint,
double);
241 vtkGetVectorMacro(ClosestPoint,
double, 3);
247 RegionGrowingOff = 0,
263 vtkSetClampMacro(RegionGrowing,
int, RegionGrowingOff, SmallRegions);
264 vtkGetMacro(RegionGrowing,
int);
283 vtkSetClampMacro(LargeRegionThreshold,
double, 0.0, 1.0);
284 vtkGetMacro(LargeRegionThreshold,
double);
326 vtkSetMacro(OutputPointsPrecision,
int);
327 vtkGetMacro(OutputPointsPrecision,
int);
346 double BarrierEdgeLength[2];
348 double ScalarRange[2];
352 double ClosestPoint[3];
356 void TraverseAndMark();
357 void GetConnectedNeighbors(
366 double ComputeRegionAreas();
368 void GrowLargeRegions();
369 void GrowSmallRegions();
371 void SortRegionsByArea();
372 vtkIdType FindNumberOfExtractedRegions();
409 return "ExtractPointSeededRegions";
413 return "ExtractCellSeededRegions";
417 return "ExtractSpecifiedRegions";
421 return "ExtractAllRegions";
425 return "ExtractClosestPointRegion";
429 return "ExtractLargeRegions";
433 return "ExtractLargestRegion";
437 VTK_ABI_NAMESPACE_END
double LargeRegionThreshold
std::vector< vtkIdType > PointMap
void GrowSmallRegionsOff()
Specify a strategy for region growing.
#define VTK_EXTRACT_SPECIFIED_REGIONS
void SetExtractionModeToCellSeededRegions()
Control the extraction of connected surfaces.
void SetRegionGrowingToSmallRegions()
Specify a strategy for region growing.
vtkSmartPointer< vtkIdList > CellIds
double GetTotalArea()
Obtain the total area of all regions combined.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
vtkSmartPointer< vtkPolyData > Mesh
int GetNumberOfExtractedRegions()
Obtain the number of connected regions found.
std::vector< vtkIdType > Wave
void SetExtractionModeToClosestPointRegion()
Control the extraction of connected surfaces.
std::vector< vtkIdType > RegionIds
segment polygonal mesh based on shared edge connectivity
std::vector< double > CellAreas
dynamic, self-adjusting array of vtkIdType
vtkSmartPointer< vtkIdList > PointIds
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkSmartPointer< vtkIdTypeArray > RegionSizes
std::vector< vtkIdType > Wave2
const char * GetExtractionModeAsString()
Return the method of extraction as a string.
keep track of edges (edge is pair of integer id's)
Proxy object to connect input/output ports.
#define VTK_EXTRACT_ALL_REGIONS
void GrowSmallRegionsOn()
Specify a strategy for region growing.
static vtkPolyDataAlgorithm * New()
dynamic, self-adjusting array of char
vtkIdType NumberOfRegions
Superclass for algorithms that produce only polydata as output.
#define VTK_EXTRACT_LARGEST_REGION
std::vector< vtkIdType > Seeds
a simple class to control print indentation
void SetExtractionModeToLargestRegion()
Control the extraction of connected surfaces.
list of point or cell ids
vtkIdType NumberOfExtractedRegions
abstract superclass for arrays of numeric data
vtkSmartPointer< vtkDataArray > InScalars
std::vector< double > RegionAreas
int OutputPointsPrecision
void SetExtractionModeToLargeRegions()
Control the extraction of connected surfaces.
vtkTypeBool CellRegionAreas
void GrowLargeRegionsOn()
Specify a strategy for region growing.
void SetRegionGrowingOff()
Specify a strategy for region growing.
void SetExtractionModeToAllRegions()
Control the extraction of connected surfaces.
vtkSmartPointer< vtkIdList > CellEdgeNeighbors
#define VTK_EXTRACT_CELL_SEEDED_REGIONS
void GrowLargeRegionsOff()
Specify a strategy for region growing.
#define VTK_EXTRACT_POINT_SEEDED_REGIONS
#define VTK_EXTRACT_LARGE_REGIONS
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
std::vector< char > RegionClassification
void SetExtractionModeToPointSeededRegions()
Control the extraction of connected surfaces.
vtkIdType NumCellsInRegion
vtkSmartPointer< vtkEdgeTable > Barriers
std::vector< vtkIdType > SpecifiedRegionIds
vtkSmartPointer< vtkIdList > CellNeighbors
void SetRegionGrowingToLargeRegions()
Specify a strategy for region growing.
vtkTypeBool ScalarConnectivity
#define VTK_EXTRACT_CLOSEST_POINT_REGION
void SetExtractionModeToSpecifiedRegions()
Control the extraction of connected surfaces.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.