50 #ifndef vtkRedistributeDataSetFilter_h
51 #define vtkRedistributeDataSetFilter_h
54 #include "vtkFiltersParallelDIY2Module.h"
82 ASSIGN_TO_ONE_REGION = 0,
83 ASSIGN_TO_ALL_INTERSECTING_REGIONS = 1,
84 SPLIT_BOUNDARY_CELLS = 2
100 vtkSetClampMacro(BoundaryMode,
int, ASSIGN_TO_ONE_REGION, SPLIT_BOUNDARY_CELLS);
101 vtkGetMacro(BoundaryMode,
int);
105 this->SetBoundaryMode(ASSIGN_TO_ALL_INTERSECTING_REGIONS);
116 vtkSetMacro(UseExplicitCuts,
bool);
117 vtkGetMacro(UseExplicitCuts,
bool);
118 vtkBooleanMacro(UseExplicitCuts,
bool);
126 const std::vector<vtkBoundingBox>&
GetExplicitCuts()
const {
return this->ExplicitCuts; }
145 vtkSetMacro(ExpandExplicitCuts,
bool);
146 vtkGetMacro(ExpandExplicitCuts,
bool);
147 vtkBooleanMacro(ExpandExplicitCuts,
bool);
155 const std::vector<vtkBoundingBox>&
GetCuts()
const {
return this->Cuts; }
177 vtkGetMacro(NumberOfPartitions,
int);
194 vtkSetMacro(PreservePartitionsInOutput,
bool);
195 vtkGetMacro(PreservePartitionsInOutput,
bool);
196 vtkBooleanMacro(PreservePartitionsInOutput,
bool);
204 vtkSetMacro(GenerateGlobalCellIds,
bool);
205 vtkGetMacro(GenerateGlobalCellIds,
bool);
206 vtkBooleanMacro(GenerateGlobalCellIds,
bool);
216 const std::vector<vtkBoundingBox>& cuts,
const vtkBoundingBox& bounds);
226 vtkSetMacro(EnableDebugging,
bool);
227 vtkGetMacro(EnableDebugging,
bool);
228 vtkBooleanMacro(EnableDebugging,
bool);
261 vtkDataSet* dataset,
const std::vector<vtkBoundingBox>& cuts);
268 const std::vector<vtkBoundingBox>& cuts,
vtkIdType* mb_offset =
nullptr);
269 bool RedistributeDataSet(
271 int RedistributeMultiBlockDataSet(
273 int RedistributeMultiPieceDataSet(
286 std::vector<vtkBoundingBox> ExplicitCuts;
287 std::vector<vtkBoundingBox> Cuts;
291 int NumberOfPartitions;
292 bool PreservePartitionsInOutput;
293 bool GenerateGlobalCellIds;
294 bool UseExplicitCuts;
295 bool ExpandExplicitCuts;
296 bool EnableDebugging;
Fast, simple class for dealing with 3D bounds.
Superclass for algorithms that produce only data object as output.
general representation of visualization data
abstract class to specify dataset behavior
a simple class to control print indentation
Composite dataset that organizes datasets into blocks.
composite dataset to encapsulates pieces of dataset.
Multiprocessing communication superclass.
composite dataset to encapsulates a dataset consisting of partitions.
redistributes input dataset into requested number of partitions
static vtkRedistributeDataSetFilter * New()
const std::vector< vtkBoundingBox > & GetExplicitCuts() const
virtual vtkSmartPointer< vtkPartitionedDataSet > SplitDataSet(vtkDataSet *dataset, const std::vector< vtkBoundingBox > &cuts)
This method is called to split a vtkDataSet into multiple datasets by the vector of vtkBoundingBox pa...
virtual std::vector< vtkBoundingBox > GenerateCuts(vtkDataObject *data)
This method is called to generate the partitions for the input dataset.
const vtkBoundingBox & GetExplicitCut(int index) const
void SetBoundaryModeToAssignToAllIntersectingRegions()
int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void AddExplicitCut(const double bbox[6])
std::vector< vtkBoundingBox > ExpandCuts(const std::vector< vtkBoundingBox > &cuts, const vtkBoundingBox &bounds)
Helper function to expand a collection of bounding boxes to include the bounds specified.
int GetNumberOfExplicitCuts() const
void SetController(vtkMultiProcessController *)
Get/Set the controller to use.
void SetExplicitCuts(const std::vector< vtkBoundingBox > &boxes)
Specify the cuts to use when UseExplicitCuts is true.
~vtkRedistributeDataSetFilter() override
void RemoveAllExplicitCuts()
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
void SetBoundaryModeToAssignToOneRegion()
void AddExplicitCut(const vtkBoundingBox &bbox)
vtkRedistributeDataSetFilter()
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetBoundaryModeToSplitBoundaryCells()
const std::vector< vtkBoundingBox > & GetCuts() const
Returns the cuts used by the most recent RequestData call.
Hold a reference to a vtkObjectBase instance.