107 vtkGetMacro(RegionAssignment,
int);
270 int ViewOrderAllProcessesInDirection(
271 const double directionOfProjection[3],
vtkIntArray* orderedList);
280 int ViewOrderAllProcessesFromPosition(
const double cameraPosition[3],
vtkIntArray* orderedList);
308 int RegionAssignment;
314 void StrDupWithNew(
const char* s, std::string& output);
322 std::vector<int> RegionAssignmentMap;
323 std::vector<std::vector<int>> ProcessAssignmentMap;
324 std::vector<int> NumRegionsAssigned;
326 int UpdateRegionAssignment();
331 std::vector<char> DataLocationMap;
333 std::vector<int> NumProcessesInRegion;
334 std::vector<std::vector<int>> ProcessList;
336 std::vector<int> NumRegionsInProcess;
337 std::vector<std::vector<int>> ParallelRegionList;
339 std::vector<std::vector<vtkIdType>> CellCountList;
341 std::vector<double> CellDataMin;
342 std::vector<double> CellDataMax;
343 std::vector<double> PointDataMin;
344 std::vector<double> PointDataMax;
345 std::vector<std::string> CellDataName;
346 std::vector<std::string> PointDataName;
352 int BuildGlobalIndexLists(
vtkIdType ncells);
354 std::vector<vtkIdType> StartVal;
355 std::vector<vtkIdType> EndVal;
356 std::vector<vtkIdType> NumCells;
362 int _whoHas(
int L,
int R,
int pos);
363 float* GetLocalVal(
int pos);
364 float* GetLocalValNext(
int pos);
365 void SetLocalVal(
int pos,
float* val);
366 void ExchangeVals(
int pos1,
int pos2);
367 void ExchangeLocalVals(
int pos1,
int pos2);
373 float* CurrentPtArray;
377 std::vector<int> SelectBuffer;
381 int AllCheckForFailure(
int rc,
const char* where,
const char* how);
382 void AllCheckParameters();
389 bool VolumeBounds(
double*);
391 int BreadthFirstDivide(
double* bounds);
392 void enQueueNode(
vtkKdNode* kd,
int L,
int level,
int tag);
395 int Select(
int dim,
int L,
int R);
396 void _select(
int L,
int R,
int K,
int dim);
397 void DoTransfer(
int from,
int to,
int fromIndex,
int toIndex,
int count);
399 int* PartitionAboutMyValue(
int L,
int R,
int K,
int dim);
400 int* PartitionAboutOtherValue(
int L,
int R,
float T,
int dim);
401 int* PartitionSubArray(
int L,
int R,
int K,
int dim,
int p1,
int p2);
404#ifdef YIELDS_INCONSISTENT_REGION_BOUNDARIES
405 void RetrieveData(
vtkKdNode* kd,
int* buf);
407 void ReduceData(
vtkKdNode* kd,
int* sources);
411 void GetDataBounds(
int L,
int K,
int R,
float dataBounds[12]);
412 void GetLocalMinMax(
int L,
int R,
int me,
float* min,
float*
max);
414 static int FillOutTree(
vtkKdNode* kd,
int level);
416 static void PackData(
vtkKdNode* kd,
double* data);
417 static void UnpackData(
vtkKdNode* kd,
double* data);
418 static void CheckFixRegionBoundaries(
vtkKdNode* tree);
422 int AllocateDoubleBuffer();
423 void FreeDoubleBuffer();
424 void SwitchDoubleBuffer();
425 void AllocateSelectBuffer();
426 void FreeSelectBuffer();
428 void InitializeGlobalIndexLists();
429 void AllocateAndZeroGlobalIndexLists();
430 void FreeGlobalIndexLists();
431 void InitializeRegionAssignmentLists();
432 void AllocateAndZeroRegionAssignmentLists();
433 void FreeRegionAssignmentLists();
434 void InitializeProcessDataLists();
435 void AllocateAndZeroProcessDataLists();
436 void FreeProcessDataLists();
437 void InitializeFieldArrayMinMax();
438 void AllocateAndZeroFieldArrayMinMax();
439 void FreeFieldArrayMinMax();
441 void ReleaseTables();
445 void AddProcessRegions(
int procId,
vtkKdNode* kd);
446 void BuildRegionListsForProcesses();
450 bool CollectLocalRegionProcessData(std::vector<int>&);
451 int BuildRegionProcessTables();
452 int BuildFieldArrayMinMax();
453 void AddEntry(
int* list,
int len,
int id);
454#ifdef VTK_USE_64BIT_IDS
459 static int FindNextLocalArrayIndex(
460 const char* n,
const std::vector<std::string>& names,
int len,
int start = 0);