85 #ifndef vtkPolyDataEdgeConnectivityFilter_h
86 #define vtkPolyDataEdgeConnectivityFilter_h
88 #include "vtkFiltersCoreModule.h"
92 #define VTK_EXTRACT_POINT_SEEDED_REGIONS 1
93 #define VTK_EXTRACT_CELL_SEEDED_REGIONS 2
94 #define VTK_EXTRACT_SPECIFIED_REGIONS 3
95 #define VTK_EXTRACT_LARGEST_REGION 4
96 #define VTK_EXTRACT_ALL_REGIONS 5
97 #define VTK_EXTRACT_CLOSEST_POINT_REGION 6
98 #define VTK_EXTRACT_LARGE_REGIONS 7
124 vtkGetMacro(ExtractionMode,
int);
144 const char* GetExtractionModeAsString();
180 vtkSetVector2Macro(BarrierEdgeLength,
double);
181 vtkGetVector2Macro(BarrierEdgeLength,
double);
199 vtkSetVector2Macro(ScalarRange,
double);
200 vtkGetVector2Macro(ScalarRange,
double);
214 void InitializeSeedList();
219 void AddSeed(
int id);
224 void DeleteSeed(
int id);
229 void InitializeSpecifiedRegionList();
234 void AddSpecifiedRegion(
int id);
239 void DeleteSpecifiedRegion(
int id);
244 int GetNumberOfSpecifiedRegions();
251 vtkSetVector3Macro(ClosestPoint,
double);
252 vtkGetVectorMacro(ClosestPoint,
double, 3);
258 RegionGrowingOff = 0,
274 vtkSetClampMacro(RegionGrowing,
int, RegionGrowingOff, SmallRegions);
275 vtkGetMacro(RegionGrowing,
int);
294 vtkSetClampMacro(LargeRegionThreshold,
double, 0.0, 1.0);
295 vtkGetMacro(LargeRegionThreshold,
double);
337 vtkSetMacro(OutputPointsPrecision,
int);
338 vtkGetMacro(OutputPointsPrecision,
int);
357 double BarrierEdgeLength[2];
359 double ScalarRange[2];
363 double ClosestPoint[3];
367 void TraverseAndMark();
368 void GetConnectedNeighbors(
377 double ComputeRegionAreas();
379 void GrowLargeRegions();
380 void GrowSmallRegions();
382 void SortRegionsByArea();
383 vtkIdType FindNumberOfExtractedRegions();
420 return "ExtractPointSeededRegions";
424 return "ExtractCellSeededRegions";
428 return "ExtractSpecifiedRegions";
432 return "ExtractAllRegions";
436 return "ExtractClosestPointRegion";
440 return "ExtractLargeRegions";
444 return "ExtractLargestRegion";
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.