91 #ifndef __vtkDistributedDataFilter_h
92 #define __vtkDistributedDataFilter_h
98 class vtkDistributedDataFilterSTLCloak;
148 vtkBooleanMacro(RetainKdtree,
int);
149 vtkGetMacro(RetainKdtree,
int);
150 vtkSetMacro(RetainKdtree,
int);
161 vtkBooleanMacro(IncludeAllIntersectingCells,
int);
162 vtkGetMacro(IncludeAllIntersectingCells,
int);
163 vtkSetMacro(IncludeAllIntersectingCells,
int);
169 vtkBooleanMacro(ClipCells,
int);
170 vtkGetMacro(ClipCells,
int);
171 vtkSetMacro(ClipCells,
int);
175 ASSIGN_TO_ONE_REGION=0,
176 ASSIGN_TO_ALL_INTERSECTING_REGIONS=1,
177 SPLIT_BOUNDARY_CELLS=2
183 void SetBoundaryMode(
int mode);
184 void SetBoundaryModeToAssignToOneRegion()
186 void SetBoundaryModeToAssignToAllIntersectingRegions()
187 { this->SetBoundaryMode(
190 void SetBoundaryModeToSplitBoundaryCells()
192 int GetBoundaryMode();
205 vtkBooleanMacro(UseMinimalMemory,
int);
206 vtkGetMacro(UseMinimalMemory,
int);
207 vtkSetMacro(UseMinimalMemory,
int);
212 vtkBooleanMacro(Timing,
int);
213 vtkSetMacro(Timing,
int);
214 vtkGetMacro(Timing,
int);
234 void SetUserRegionAssignments(
const int *map,
int numRegions);
245 void AssignBoundaryCellsToOneRegionOn();
246 void AssignBoundaryCellsToOneRegionOff();
247 void SetAssignBoundaryCellsToOneRegion(
int val);
256 void AssignBoundaryCellsToAllIntersectingRegionsOn();
257 void AssignBoundaryCellsToAllIntersectingRegionsOff();
258 void SetAssignBoundaryCellsToAllIntersectingRegions(
int val);
266 void DivideBoundaryCellsOn();
267 void DivideBoundaryCellsOff();
268 void SetDivideBoundaryCells(
int val);
303 DuplicateCellsNo = 0,
304 DuplicateCellsYes = 1
317 int PartitionDataAndAssignToProcesses(
vtkDataSet *
set);
329 void ComputeMyRegionBounds();
342 vtkIdList **GetCellIdsForProcess(
int proc,
int *nlists);
346 void SetUpPairWiseExchange();
351 static void FreeIdLists(
vtkIdList**lists,
int nlists);
365 int deleteSendArrays,
int tag);
367 int deleteSendArrays,
int tag);
369 int deleteSendArrays,
int tag);
375 int deleteSendArrays,
int tag);
377 int deleteSendArrays,
int tag);
379 int deleteSendArrays,
int tag);
386 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
390 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
395 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
400 int filterOutDuplicateCells,
int ghostCellFlag,
int tag);
438 vtkDistributedDataFilterSTLCloak *procs);
445 vtkDistributedDataFilterSTLCloak *ptIdMap);
450 int InMySpatialRegion(
float x,
float y,
float z);
451 int InMySpatialRegion(
double x,
double y,
double z);
452 int StrictlyInsideMyBounds(
float x,
float y,
float z);
453 int StrictlyInsideMyBounds(
double x,
double y,
double z);
459 int AddCellsIAlreadyHave);
462 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
465 vtkDistributedDataFilterSTLCloak *globalToLocalMap);
469 int ghostLevel, vtkDistributedDataFilterSTLCloak *idMap);
485 int ptId, vtkDistributedDataFilterSTLCloak *globalToLocal);
502 const char *arrayName,
unsigned char val);
504 const char *arrayName,
unsigned char val);
509 static void RemoveRemoteCellsFromList(
vtkIdList *cellList,
519 int useGlobalNodeIds,
float pointMergeTolerance,
520 int useGlobalCellIds);
538 int NumConvexSubRegions;
539 double *ConvexSubRegionBounds;
544 int IncludeAllIntersectingCells;
546 int AssignBoundaryCellsToOneRegion;
547 int AssignBoundaryCellsToAllIntersectingRegions;
548 int DivideBoundaryCells;
552 int NextProgressStep;
553 double ProgressIncrement;
555 int UseMinimalMemory;
563 vtkInternals* Internals;