80#ifndef vtkSelectPolyData_h
81#define vtkSelectPolyData_h
83#include "vtkFiltersModelingModule.h"
86#define VTK_INSIDE_SMALLEST_REGION 0
87#define VTK_INSIDE_LARGEST_REGION 1
88#define VTK_INSIDE_CLOSEST_POINT_REGION 2
90#define VTK_GREEDY_EDGE_SEARCH 0
91#define VTK_DIJKSTRA_EDGE_SEARCH 1
93VTK_ABI_NAMESPACE_BEGIN
128 vtkSetStringMacro(SelectionScalarsArrayName);
129 vtkGetStringMacro(SelectionScalarsArrayName);
152 vtkGetMacro(EdgeSearchMode,
int);
155 const char* GetEdgeSearchModeAsString();
171 vtkSetVector3Macro(ClosestPoint,
double);
172 vtkGetVector3Macro(ClosestPoint,
double);
180 vtkGetMacro(SelectionMode,
int);
187 const char* GetSelectionModeAsString();
253 double ClosestPoint[3];
274 return "InsideSmallestRegion";
278 return "InsideLargestRegion";
282 return "InsideClosestPointRegion";
293 return "GreedyEdgeSearch";
297 return "DijkstraEdgeSearch";
Proxy object to connect input/output ports.
represent and manipulate cell attribute data
dynamic, self-adjusting array of char
list of point or cell ids
a simple class to control print indentation
dynamic, self-adjusting array of int
represent and manipulate point attribute data
represent and manipulate 3D points
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
select portion of polygonal mesh; generate selection scalars
virtual void SetLoop(vtkPoints *)
Set/Get the array of point coordinates defining the loop.
vtkPolyData * GetSelectionEdges()
Return the (mesh) edges of the selection region.
vtkIdType ComputeTopologicalDistance(vtkPolyData *mesh, vtkIdList *edgeIds, vtkIntArray *pointMarks, vtkIntArray *cellMarks)
void SetSelectionScalarsToOutput(vtkPointData *originalPointData, vtkCellData *originalCellData, vtkPolyData *mesh, vtkIdList *edgeIds, vtkIntArray *pointMarks, vtkPolyData *output)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetSelectionModeToSmallestRegion()
Control how inside/outside of loop is defined.
void SetEdgeSearchModeToGreedy()
Set the edge search mode.
static vtkSelectPolyData * New()
Instantiate object with InsideOut turned off, and GenerateSelectionScalars turned off.
void SetSelectionModeToLargestRegion()
Control how inside/outside of loop is defined.
vtkTypeBool GenerateUnselectedOutput
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkIdType GetClosestCellId(vtkPolyData *mesh, vtkIntArray *pointMarks)
void SetClippedResultToOutput(vtkPointData *originalPointData, vtkCellData *originalCellData, vtkPolyData *mesh, vtkIntArray *cellMarks, vtkPolyData *output)
void DijkstraEdgeSearch(vtkPolyData *mesh, vtkIdList *edgeIds)
const char * GetSelectionModeAsString()
Return the method of determining in/out of loop as a string.
const char * GetEdgeSearchModeAsString()
Return the edge search mode as a string.
vtkTypeBool GenerateSelectionScalars
char * SelectionScalarsArrayName
void SetSelectionModeToClosestPointRegion()
Control how inside/outside of loop is defined.
vtkAlgorithmOutput * GetUnselectedOutputPort()
Return output port that hasn't been selected (if GenreateUnselectedOutput is enabled).
void FillMarksInRegion(vtkPolyData *mesh, vtkIdList *edgePointIds, vtkIntArray *pointMarks, vtkIntArray *cellMarks, vtkIdType cellIdInSelectedRegion)
void SetEdgeSearchModeToDijkstra()
Set the edge search mode.
vtkMTimeType GetMTime() override
Return this object's modified time.
void GreedyEdgeSearch(vtkPolyData *mesh, vtkIdList *edgeIds)
~vtkSelectPolyData() override
vtkPolyData * GetUnselectedOutput()
Return output that hasn't been selected (if GenreateUnselectedOutput is enabled).
#define VTK_INSIDE_SMALLEST_REGION
#define VTK_DIJKSTRA_EDGE_SEARCH
#define VTK_INSIDE_LARGEST_REGION
#define VTK_GREEDY_EDGE_SEARCH
#define VTK_INSIDE_CLOSEST_POINT_REGION
vtkTypeUInt32 vtkMTimeType