73 #ifndef vtkPolyDataEdgeConnectivityFilter_h
74 #define vtkPolyDataEdgeConnectivityFilter_h
76 #include "vtkFiltersCoreModule.h"
81 #define VTK_EXTRACT_POINT_SEEDED_REGIONS 1
82 #define VTK_EXTRACT_CELL_SEEDED_REGIONS 2
83 #define VTK_EXTRACT_SPECIFIED_REGIONS 3
84 #define VTK_EXTRACT_LARGEST_REGION 4
85 #define VTK_EXTRACT_ALL_REGIONS 5
86 #define VTK_EXTRACT_CLOSEST_POINT_REGION 6
87 #define VTK_EXTRACT_LARGE_REGIONS 7
89 VTK_ABI_NAMESPACE_BEGIN
115 vtkGetMacro(ExtractionMode,
int);
135 const char* GetExtractionModeAsString();
171 vtkSetVector2Macro(BarrierEdgeLength,
double);
172 vtkGetVector2Macro(BarrierEdgeLength,
double);
190 vtkSetVector2Macro(ScalarRange,
double);
191 vtkGetVector2Macro(ScalarRange,
double);
205 void InitializeSeedList();
210 void AddSeed(
int id);
215 void DeleteSeed(
int id);
220 void InitializeSpecifiedRegionList();
225 void AddSpecifiedRegion(
int id);
230 void DeleteSpecifiedRegion(
int id);
235 int GetNumberOfSpecifiedRegions();
242 vtkSetVector3Macro(ClosestPoint,
double);
243 vtkGetVectorMacro(ClosestPoint,
double, 3);
249 RegionGrowingOff = 0,
265 vtkSetClampMacro(RegionGrowing,
int, RegionGrowingOff, SmallRegions);
266 vtkGetMacro(RegionGrowing,
int);
285 vtkSetClampMacro(LargeRegionThreshold,
double, 0.0, 1.0);
286 vtkGetMacro(LargeRegionThreshold,
double);
328 vtkSetMacro(OutputPointsPrecision,
int);
329 vtkGetMacro(OutputPointsPrecision,
int);
348 double BarrierEdgeLength[2];
350 double ScalarRange[2];
354 double ClosestPoint[3];
358 void TraverseAndMark();
359 void GetConnectedNeighbors(
368 double ComputeRegionAreas();
370 void GrowLargeRegions();
371 void GrowSmallRegions();
373 void SortRegionsByArea();
374 vtkIdType FindNumberOfExtractedRegions();
411 return "ExtractPointSeededRegions";
415 return "ExtractCellSeededRegions";
419 return "ExtractSpecifiedRegions";
423 return "ExtractAllRegions";
427 return "ExtractClosestPointRegion";
431 return "ExtractLargeRegions";
435 return "ExtractLargestRegion";
439 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.