99#ifndef vtkSelectPolyData_h
100#define vtkSelectPolyData_h
102#include "vtkFiltersModelingModule.h"
105#define VTK_INSIDE_SMALLEST_REGION 0
106#define VTK_INSIDE_LARGEST_REGION 1
107#define VTK_INSIDE_CLOSEST_POINT_REGION 2
109#define VTK_GREEDY_EDGE_SEARCH 0
110#define VTK_DIJKSTRA_EDGE_SEARCH 1
112VTK_ABI_NAMESPACE_BEGIN
147 vtkSetStringMacro(SelectionScalarsArrayName);
148 vtkGetStringMacro(SelectionScalarsArrayName);
171 vtkGetMacro(EdgeSearchMode,
int);
174 const char* GetEdgeSearchModeAsString();
190 vtkSetVector3Macro(ClosestPoint,
double);
191 vtkGetVector3Macro(ClosestPoint,
double);
199 vtkGetMacro(SelectionMode,
int);
206 const char* GetSelectionModeAsString();
272 double ClosestPoint[3];
293 return "InsideSmallestRegion";
297 return "InsideLargestRegion";
301 return "InsideClosestPointRegion";
312 return "GreedyEdgeSearch";
316 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