91 #ifndef __vtkDistributedDataFilter_h
92 #define __vtkDistributedDataFilter_h
94 #include "vtkFiltersParallelMPIModule.h"
99 class vtkDistributedDataFilterSTLCloak;
149 vtkBooleanMacro(RetainKdtree,
int);
150 vtkGetMacro(RetainKdtree,
int);
151 vtkSetMacro(RetainKdtree,
int);
162 vtkBooleanMacro(IncludeAllIntersectingCells,
int);
163 vtkGetMacro(IncludeAllIntersectingCells,
int);
164 vtkSetMacro(IncludeAllIntersectingCells,
int);
170 vtkBooleanMacro(ClipCells,
int);
171 vtkGetMacro(ClipCells,
int);
172 vtkSetMacro(ClipCells,
int);
176 ASSIGN_TO_ONE_REGION=0,
177 ASSIGN_TO_ALL_INTERSECTING_REGIONS=1,
178 SPLIT_BOUNDARY_CELLS=2
184 void SetBoundaryMode(
int mode);
185 void SetBoundaryModeToAssignToOneRegion()
187 void SetBoundaryModeToAssignToAllIntersectingRegions()
188 { this->SetBoundaryMode(
191 void SetBoundaryModeToSplitBoundaryCells()
193 int GetBoundaryMode();
206 vtkBooleanMacro(UseMinimalMemory,
int);
207 vtkGetMacro(UseMinimalMemory,
int);
208 vtkSetMacro(UseMinimalMemory,
int);
213 vtkBooleanMacro(Timing,
int);
214 vtkSetMacro(Timing,
int);
215 vtkGetMacro(Timing,
int);
235 void SetUserRegionAssignments(
const int *map,
int numRegions);
246 void AssignBoundaryCellsToOneRegionOn();
247 void AssignBoundaryCellsToOneRegionOff();
248 void SetAssignBoundaryCellsToOneRegion(
int val);
257 void AssignBoundaryCellsToAllIntersectingRegionsOn();
258 void AssignBoundaryCellsToAllIntersectingRegionsOff();
259 void SetAssignBoundaryCellsToAllIntersectingRegions(
int val);
267 void DivideBoundaryCellsOn();
268 void DivideBoundaryCellsOff();
269 void SetDivideBoundaryCells(
int val);
304 DuplicateCellsNo = 0,
305 DuplicateCellsYes = 1
318 int PartitionDataAndAssignToProcesses(
vtkDataSet *
set);
330 void ComputeMyRegionBounds();
343 vtkIdList **GetCellIdsForProcess(
int proc,
int *nlists);
347 void SetUpPairWiseExchange();
352 static void FreeIdLists(
vtkIdList**lists,
int nlists);
366 int deleteSendArrays,
int tag);
368 int deleteSendArrays,
int tag);
370 int deleteSendArrays,
int tag);
376 int deleteSendArrays,
int tag);
378 int deleteSendArrays,
int tag);
380 int deleteSendArrays,
int tag);
387 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
391 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
396 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
401 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
439 vtkDistributedDataFilterSTLCloak *procs);
446 vtkDistributedDataFilterSTLCloak *ptIdMap);
451 int InMySpatialRegion(
float x,
float y,
float z);
452 int InMySpatialRegion(
double x,
double y,
double z);
453 int StrictlyInsideMyBounds(
float x,
float y,
float z);
454 int StrictlyInsideMyBounds(
double x,
double y,
double z);
460 int AddCellsIAlreadyHave);
463 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
466 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
470 int ghostLevel, vtkDistributedDataFilterSTLCloak *idMap);
486 int ptId, vtkDistributedDataFilterSTLCloak *globalToLocal);
503 const char *arrayName,
unsigned char val);
505 const char *arrayName,
unsigned char val);
510 static void RemoveRemoteCellsFromList(
vtkIdList *cellList,
520 int useGlobalNodeIds,
float pointMergeTolerance,
521 int useGlobalCellIds);
539 int NumConvexSubRegions;
540 double *ConvexSubRegionBounds;
545 int IncludeAllIntersectingCells;
547 int AssignBoundaryCellsToOneRegion;
548 int AssignBoundaryCellsToAllIntersectingRegions;
549 int DivideBoundaryCells;
553 int NextProgressStep;
554 double ProgressIncrement;
556 int UseMinimalMemory;
564 vtkInternals* Internals;