116#ifndef vtkResolveHangingNodes_h
117#define vtkResolveHangingNodes_h
121#include "vtkFiltersCoreModule.h"
128#include <type_traits>
131VTK_ABI_NAMESPACE_BEGIN
248 const std::vector<vtkPolyData*>& boundaries,
const std::vector<int>& partitionedDataSetIds);
265 totalNumberOfCentroidPoints = numberOfCentroidPoints;
298 std::is_trivially_copyable_v<OccupiedBitset>,
"the bitset must be trivially copyable");
372 const std::vector<int>& partitionedDataSetIds);
386 const std::vector<int>& partitionedDataSetIds);
Fast, simple class for representing and operating on 3D bounds.
abstract class to specify dataset behavior
a simple class to control print indentation
composite dataset to encapsulates a dataset consisting of partitions.
concrete class for storing a set of points
concrete dataset represents vertices, lines, polygons, and triangle strips
std::string OriginalCellIdsName
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkSmartPointer< vtkPolyData > ExtractPointsInBins(vtkPolyData *source, const BoundaryBins &bins)
Helper for the exchange of points between partitions: the points of the boundary source of a partitio...
static vtkResolveHangingNodes * New()
static void BinBoundaryElements(BoundaryBins &bins, vtkPolyData *boundary, double tolerance)
Helper for the exchange of points between partitions: bin the boundary elements of boundary (its cell...
vtkSetStdStringFromCharMacro(OriginalCellIdsName)
The name of the cell array of PassThroughCellIds.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
virtual void GetCentroidGlobalIdsOffset(vtkIdType &maxGlobalId, vtkIdType numberOfCentroidPoints, vtkIdType &offset, vtkIdType &totalNumberOfCentroidPoints)
Called with the largest point global id of the local partitions, -1 without point global ids,...
virtual std::vector< vtkSmartPointer< vtkPolyData > > GetRemotePoints(const std::vector< vtkPolyData * > &boundaries, const std::vector< int > &partitionedDataSetIds)
Called with the true boundary of every local partition: the edges (2D) or faces (3D) without neighbor...
vtkSmartPointer< vtkPolyData > MergeReceivedPoints(const std::map< int, vtkSmartPointer< vtkPolyData > > &received, vtkPolyData *reference) const
Helper for GetRemotePoints(): merge the points received from other partitions, by partition id,...
vtkGetCharFromStdStringMacro(OriginalCellIdsName)
The name of the cell array of PassThroughCellIds.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
bool ComputeInverseMeasure
vtkResolveHangingNodes()=default
virtual void GetGlobalMeasureRange(double range[2], int &dimension)
Called with the range (min, max) of the measures of the candidate cells of the local partitions,...
static vtkBoundingBox GetBoundaryBounds(vtkPolyData *boundary, double tolerance)
Helper for the exchange of points between partitions: the bounds of the true boundary boundary of a p...
virtual bool UseRemotePoints()
Whether the points of the partitions of other processes are needed to resolve the boundary of the loc...
~vtkResolveHangingNodes() override=default
Hold a reference to a vtkObjectBase instance.
Helper for the exchange of points between partitions: the bins of the boundary of a partition,...
void Initialize(const vtkBoundingBox &bounds)
vtkIdType GetBinIndex(const double *x) const
vtkIdType GetNumberOfBins() const
std::bitset< TargetNumberOfBins > OccupiedBitset
bool IsInOccupiedBin(const double *x) const
vtkIdType GetBinIndex(const int ijk[3]) const
void SetBinOccupied(vtkIdType binId)
bool IsBinOccupied(vtkIdType binId) const
static constexpr vtkIdType TargetNumberOfBins
void GetBinIndices(const double *x, int ijk[3]) const
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)