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