89 #ifndef vtkDistributedDataFilter_h
90 #define vtkDistributedDataFilter_h
92 #include "vtkFiltersParallelMPIModule.h"
97 class vtkDistributedDataFilterSTLCloak;
153 vtkBooleanMacro(RetainKdtree,
int);
154 vtkGetMacro(RetainKdtree,
int);
155 vtkSetMacro(RetainKdtree,
int);
168 vtkBooleanMacro(IncludeAllIntersectingCells,
int);
169 vtkGetMacro(IncludeAllIntersectingCells,
int);
170 vtkSetMacro(IncludeAllIntersectingCells,
int);
178 vtkBooleanMacro(ClipCells,
int);
179 vtkGetMacro(ClipCells,
int);
180 vtkSetMacro(ClipCells,
int);
183 ASSIGN_TO_ONE_REGION=0,
184 ASSIGN_TO_ALL_INTERSECTING_REGIONS=1,
185 SPLIT_BOUNDARY_CELLS=2
192 void SetBoundaryMode(
int mode);
196 { this->SetBoundaryMode(
201 int GetBoundaryMode();
219 vtkBooleanMacro(UseMinimalMemory,
int);
220 vtkGetMacro(UseMinimalMemory,
int);
221 vtkSetMacro(UseMinimalMemory,
int);
227 vtkGetMacro(MinimumGhostLevel,
int)
228 vtkSetMacro(MinimumGhostLevel,
int)
234 vtkBooleanMacro(Timing,
int);
235 vtkSetMacro(Timing,
int);
236 vtkGetMacro(Timing,
int);
262 void SetUserRegionAssignments(
const int *map,
int numRegions);
275 void AssignBoundaryCellsToOneRegionOn();
276 void AssignBoundaryCellsToOneRegionOff();
277 void SetAssignBoundaryCellsToOneRegion(
int val);
288 void AssignBoundaryCellsToAllIntersectingRegionsOn();
289 void AssignBoundaryCellsToAllIntersectingRegionsOff();
290 void SetAssignBoundaryCellsToAllIntersectingRegions(
int val);
300 void DivideBoundaryCellsOn();
301 void DivideBoundaryCellsOff();
302 void SetDivideBoundaryCells(
int val);
339 DuplicateCellsNo = 0,
340 DuplicateCellsYes = 1
355 int PartitionDataAndAssignToProcesses(
vtkDataSet *set);
375 void ComputeMyRegionBounds();
397 vtkIdList **GetCellIdsForProcess(
int proc,
int *nlists);
403 void SetUpPairWiseExchange();
410 static void FreeIdLists(
vtkIdList**lists,
int nlists);
428 int deleteSendArrays,
int tag);
430 int deleteSendArrays,
int tag);
432 int deleteSendArrays,
int tag);
440 int deleteSendArrays,
int tag);
442 int deleteSendArrays,
int tag);
444 int deleteSendArrays,
int tag);
453 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
457 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
462 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
467 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
514 vtkDistributedDataFilterSTLCloak *procs);
521 vtkDistributedDataFilterSTLCloak *ptIdMap);
527 int InMySpatialRegion(
float x,
float y,
float z);
528 int InMySpatialRegion(
double x,
double y,
double z);
529 int StrictlyInsideMyBounds(
float x,
float y,
float z);
530 int StrictlyInsideMyBounds(
double x,
double y,
double z);
538 int AddCellsIAlreadyHave);
541 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
544 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
548 int ghostLevel, vtkDistributedDataFilterSTLCloak *idMap);
567 int ptId, vtkDistributedDataFilterSTLCloak *globalToLocal);
586 const char *arrayName,
unsigned char val);
588 const char *arrayName,
unsigned char val);
594 static void RemoveRemoteCellsFromList(
vtkIdList *cellList,
604 int useGlobalNodeIds,
float pointMergeTolerance,
605 int useGlobalCellIds);
616 int NumConvexSubRegions;
617 double *ConvexSubRegionBounds;
620 int MinimumGhostLevel;
626 int IncludeAllIntersectingCells;
628 int AssignBoundaryCellsToOneRegion;
629 int AssignBoundaryCellsToAllIntersectingRegions;
630 int DivideBoundaryCells;
634 int NextProgressStep;
635 double ProgressIncrement;
637 int UseMinimalMemory;
645 vtkInternals* Internals;