#ifndef REMOVE_EXTERNAL_CELLS_FILTER_H
#define REMOVE_EXTERNAL_CELLS_FILTER_H


#include <vtkUnstructuredGridAlgorithm.h>
#include <vtkIdList.h>
#include <vtkInformation.h>


/*
   Removes cells from the UnstructuredGrid passed as first input that
   lay outside the PolyData passed as second input.
*/
class RemoveExternalCellsFilter : public vtkUnstructuredGridAlgorithm {
public:
	static RemoveExternalCellsFilter *New();
	vtkTypeMacro(RemoveExternalCellsFilter, vtkUnstructuredGridAlgorithm);
	RemoveExternalCellsFilter();
	int FillInputPortInformation(int port, vtkInformation *info) override;
	vtkTypeBool RequestData(vtkInformation *request,
							vtkInformationVector **inputVector,
							vtkInformationVector *outputVector) override;

protected:
	~RemoveExternalCellsFilter() override = default;
};


#endif
