38#ifndef vtkOverlappingCellsDetector_h
39#define vtkOverlappingCellsDetector_h
41#include "vtkFiltersParallelDIY2Module.h"
47#include <unordered_map>
50VTK_ABI_NAMESPACE_BEGIN
75 vtkGetMacro(Tolerance,
double);
76 vtkSetMacro(Tolerance,
double);
84 vtkGetStringMacro(NumberOfOverlapsPerCellArrayName);
85 vtkSetStringMacro(NumberOfOverlapsPerCellArrayName);
125 const std::vector<vtkBoundingBox>& queryCellBoundingBoxes,
vtkDataSet* cellDataSet,
126 vtkPointSet* pointCloud,
const std::vector<vtkBoundingBox>& cellBoundingBoxes,
127 std::unordered_map<
vtkIdType, std::set<vtkIdType>>& collisionListMap,
128 bool updateProgress =
false);
abstract class to specify dataset behavior
a simple class to control print indentation
Multiprocessing communication superclass.
Exposes how many cells each cell of the input collide.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
~vtkOverlappingCellsDetector() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkOverlappingCellsDetector()
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
double Tolerance
Tolerance for overlap detections.
int ExposeOverlappingCellsAmongBlocks(std::vector< vtkPointSet * > &outputs)
Main pipeline.
static vtkOverlappingCellsDetector * New()
vtkMultiProcessController * Controller
Local controller.
void SetController(vtkMultiProcessController *)
Get/Set the controller to use.
bool DetectOverlappingCells(vtkDataSet *queryCellDataSet, vtkPointSet *queryPointCloud, const std::vector< vtkBoundingBox > &queryCellBoundingBoxes, vtkDataSet *cellDataSet, vtkPointSet *pointCloud, const std::vector< vtkBoundingBox > &cellBoundingBoxes, std::unordered_map< vtkIdType, std::set< vtkIdType > > &collisionListMap, bool updateProgress=false)
Method performing the cell detection.
char * NumberOfOverlapsPerCellArrayName
Output cell scalar field counting the number of cells that each cell was found to collide.
concrete class for storing a set of points