92 #ifndef vtkDistributedDataFilter_h
93 #define vtkDistributedDataFilter_h
95 #include "vtkFiltersParallelMPIModule.h"
100 class vtkDistributedDataFilterSTLCloak;
156 vtkBooleanMacro(RetainKdtree,
int);
157 vtkGetMacro(RetainKdtree,
int);
158 vtkSetMacro(RetainKdtree,
int);
171 vtkBooleanMacro(IncludeAllIntersectingCells,
int);
172 vtkGetMacro(IncludeAllIntersectingCells,
int);
173 vtkSetMacro(IncludeAllIntersectingCells,
int);
181 vtkBooleanMacro(ClipCells,
int);
182 vtkGetMacro(ClipCells,
int);
183 vtkSetMacro(ClipCells,
int);
186 ASSIGN_TO_ONE_REGION=0,
187 ASSIGN_TO_ALL_INTERSECTING_REGIONS=1,
188 SPLIT_BOUNDARY_CELLS=2
195 void SetBoundaryMode(
int mode);
199 { this->SetBoundaryMode(
204 int GetBoundaryMode();
222 vtkBooleanMacro(UseMinimalMemory,
int);
223 vtkGetMacro(UseMinimalMemory,
int);
224 vtkSetMacro(UseMinimalMemory,
int);
230 vtkGetMacro(MinimumGhostLevel,
int)
231 vtkSetMacro(MinimumGhostLevel,
int)
237 vtkBooleanMacro(Timing,
int);
238 vtkSetMacro(Timing,
int);
239 vtkGetMacro(Timing,
int);
265 void SetUserRegionAssignments(
const int *map,
int numRegions);
278 void AssignBoundaryCellsToOneRegionOn();
279 void AssignBoundaryCellsToOneRegionOff();
280 void SetAssignBoundaryCellsToOneRegion(
int val);
291 void AssignBoundaryCellsToAllIntersectingRegionsOn();
292 void AssignBoundaryCellsToAllIntersectingRegionsOff();
293 void SetAssignBoundaryCellsToAllIntersectingRegions(
int val);
303 void DivideBoundaryCellsOn();
304 void DivideBoundaryCellsOff();
305 void SetDivideBoundaryCells(
int val);
342 DuplicateCellsNo = 0,
343 DuplicateCellsYes = 1
358 int PartitionDataAndAssignToProcesses(
vtkDataSet *set);
378 void ComputeMyRegionBounds();
400 vtkIdList **GetCellIdsForProcess(
int proc,
int *nlists);
406 void SetUpPairWiseExchange();
413 static void FreeIdLists(
vtkIdList**lists,
int nlists);
431 int deleteSendArrays,
int tag);
433 int deleteSendArrays,
int tag);
435 int deleteSendArrays,
int tag);
443 int deleteSendArrays,
int tag);
445 int deleteSendArrays,
int tag);
447 int deleteSendArrays,
int tag);
456 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
460 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
465 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
470 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
517 vtkDistributedDataFilterSTLCloak *procs);
524 vtkDistributedDataFilterSTLCloak *ptIdMap);
530 int InMySpatialRegion(
float x,
float y,
float z);
531 int InMySpatialRegion(
double x,
double y,
double z);
532 int StrictlyInsideMyBounds(
float x,
float y,
float z);
533 int StrictlyInsideMyBounds(
double x,
double y,
double z);
541 int AddCellsIAlreadyHave);
544 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
547 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
551 int ghostLevel, vtkDistributedDataFilterSTLCloak *idMap);
570 int ptId, vtkDistributedDataFilterSTLCloak *globalToLocal);
589 const char *arrayName,
unsigned char val);
591 const char *arrayName,
unsigned char val);
597 static void RemoveRemoteCellsFromList(
vtkIdList *cellList,
607 int useGlobalNodeIds,
float pointMergeTolerance,
608 int useGlobalCellIds);
619 int NumConvexSubRegions;
620 double *ConvexSubRegionBounds;
623 int MinimumGhostLevel;
629 int IncludeAllIntersectingCells;
631 int AssignBoundaryCellsToOneRegion;
632 int AssignBoundaryCellsToAllIntersectingRegions;
633 int DivideBoundaryCells;
637 int NextProgressStep;
638 double ProgressIncrement;
640 int UseMinimalMemory;
648 vtkInternals* Internals;