89 vtkBooleanMacro(Timing,
int);
90 vtkSetMacro(Timing,
int);
91 vtkGetMacro(Timing,
int);
96 vtkSetMacro(MinCells,
int);
97 vtkGetMacro(MinCells,
int);
105 vtkGetMacro(NumberOfRegionsOrLess,
int);
106 vtkSetMacro(NumberOfRegionsOrLess,
int);
112 vtkGetMacro(NumberOfRegionsOrMore,
int);
113 vtkSetMacro(NumberOfRegionsOrMore,
int);
120 vtkGetMacro(FudgeFactor,
double);
121 vtkSetMacro(FudgeFactor,
double);
135 void OmitXPartitioning();
138 void OmitYPartitioning();
141 void OmitZPartitioning();
144 void OmitXYPartitioning();
147 void OmitYZPartitioning();
150 void OmitZXPartitioning();
153 void OmitNoPartitioning();
173 virtual void RemoveDataSet(
int index);
175 virtual void RemoveAllDataSets();
179 int GetNumberOfDataSets();
203 void GetBounds(
double *bounds);
211 void SetNewBounds(
double *bounds);
215 vtkGetMacro(NumberOfRegions,
int);
219 void GetRegionBounds(
int regionID,
double bounds[6]);
222 void GetRegionDataBounds(
int regionID,
double bounds[6]);
227 void PrintVerboseTree();
231 void PrintRegion(
int id);
241 void CreateCellLists(
int dataSetIndex,
int *regionReqList,
243 void CreateCellLists(
vtkDataSet *set,
int *regionReqList,
245 void CreateCellLists(
int *regionReqList,
int listSize);
246 void CreateCellLists();
253 vtkSetMacro(IncludeRegionBoundaryCells,
int);
254 vtkGetMacro(IncludeRegionBoundaryCells,
int);
255 vtkBooleanMacro(IncludeRegionBoundaryCells,
int);
259 void DeleteCellLists();
272 vtkIdList *GetBoundaryCellList(
int regionID);
302 int GetRegionContainingCell(
int set,
vtkIdType cellID);
303 int GetRegionContainingCell(
vtkIdType cellID);
310 int *AllGetRegionContainingCell();
313 int GetRegionContainingPoint(
double x,
double y,
double z);
331 int MinimalNumberOfConvexSubRegions(
vtkIntArray *regionIdList,
332 double **convexRegionBounds);
336 VTK_LEGACY(
int DepthOrderAllRegions(
double *dop,
vtkIntArray *orderedList));
341 VTK_LEGACY(
int DepthOrderRegions(
vtkIntArray *regionIds,
double *dop,
352 int ViewOrderAllRegionsInDirection(
const double directionOfProjection[3],
362 int ViewOrderRegionsInDirection(
vtkIntArray *regionIds,
363 const double directionOfProjection[3],
374 int ViewOrderAllRegionsFromPosition(
const double directionOfProjection[3],
384 int ViewOrderRegionsFromPosition(
vtkIntArray *regionIds,
385 const double directionOfProjection[3],
398 void BuildLocatorFromPoints(
vtkPointSet *pointset);
399 void BuildLocatorFromPoints(
vtkPoints *ptArray);
400 void BuildLocatorFromPoints(
vtkPoints **ptArray,
int numPtArrays);
419 vtkIdType FindPoint(
double x,
double y,
double z);
426 vtkIdType FindClosestPoint(
double *x,
double &dist2);
427 vtkIdType FindClosestPoint(
double x,
double y,
double z,
double &dist2);
435 double radius,
const double x[3],
double& dist2);
442 vtkIdType FindClosestPointInRegion(
int regionId,
double *x,
double &dist2);
443 vtkIdType FindClosestPointInRegion(
int regionId,
double x,
double y,
double z,
451 void FindPointsWithinRadius(
double R,
const double x[3],
vtkIdList *result);
459 void FindClosestNPoints(
int N,
const double x[3],
vtkIdList *result);
482 vtkBooleanMacro(GenerateRepresentationUsingDataBounds,
int);
483 vtkSetMacro(GenerateRepresentationUsingDataBounds,
int);
484 vtkGetMacro(GenerateRepresentationUsingDataBounds,
int);
488 virtual void PrintTiming(ostream& os,
vtkIndent indent);
492 virtual int NewGeometry();
496 virtual int NewGeometry(
vtkDataSet **sets,
int numDataSets);
501 virtual void InvalidateGeometry();
512 void FindPointsInArea(
double* area,
vtkIdTypeArray* ids,
bool clearArray =
true);
524 int ProcessUserDefinedCuts(
double *bounds);
526 void SetCuts(
vtkBSPCuts *cuts,
int userDefined);
531 void UpdateBuildTime();
538 int DivideTest(
int numberOfPoints,
int level);
555 static void DeleteAllDescendants(
vtkKdNode *nd);
557 void BuildRegionList();
558 virtual int SelectCutDirection(
vtkKdNode *kd);
564 void GetRegionsAtLevel(
int level,
vtkKdNode **nodes);
574 int GetNumberOfCells();
578 int GetDataSetsNumberOfCells(
int set1,
int set2);
584 void ComputeCellCenter(
vtkDataSet *set,
int cellId,
float *center);
585 void ComputeCellCenter(
vtkDataSet *set,
int cellId,
double *center);
593 float *ComputeCellCenters();
594 float *ComputeCellCenters(
int set);
603 void UpdateProgress(
double amount);
607 vtkSetClampMacro(Progress,
double,0.0,1.0);
608 vtkGetMacro(Progress,
double);
622 void UpdateSubOperationProgress(
double amount);
624 static void _SetNewBounds(
vtkKdNode *kd,
double *b,
int *fixDim);
627 static void SetDataBoundsToSpatialBounds(
vtkKdNode *kd);
628 static void ZeroNumberOfPoints(
vtkKdNode *kd);
632 void FindPointsWithinRadius(
vtkKdNode* node,
double R2,
644 int DivideRegion(
vtkKdNode *kd,
float *c1,
int *ids,
int nlevels);
646 void DoMedianFind(
vtkKdNode *kd,
float *c1,
int *ids,
int d1,
int d2,
int d3);
660 void InitializeCellLists();
663 void ComputeCellCenter(vtkCell* cell,
double *center,
double *weights);
665 void GenerateRepresentationDataBounds(
int level,
vtkPolyData *pd);
669 void GenerateRepresentationWholeSpace(
int level,
vtkPolyData *pd);
675 void _printTree(
int verbose);
677 int SearchNeighborsForDuplicate(
int regionId,
float *point,
678 int **pointsSoFar,
int *len,
679 float tolerance,
float tolerance2);
681 int SearchRegionForDuplicate(
float *point,
int *pointsSoFar,
682 int len,
float tolerance2);
684 int _FindClosestPointInRegion(
int regionId,
685 double x,
double y,
double z,
double &dist2);
687 int FindClosestPointInSphere(
double x,
double y,
double z,
double radius,
688 int skipRegion,
double &dist2);
690 int _ViewOrderRegionsInDirection(
vtkIntArray *IdsOfInterest,
696 const double dir[3],
int nextId);
698 int _ViewOrderRegionsFromPosition(
vtkIntArray *IdsOfInterest,
704 const double pos[3],
int nextId);
709 void NewParitioningRequest(
int req);
710 void SetInputDataInfo(
int i,
711 int dims[3],
double origin[3],
double spacing[3]);
712 int CheckInputDataInfo(
int i,
713 int dims[3],
double origin[3],
double spacing[3]);
714 void ClearLastBuildCache();
717 static void __printTree(
vtkKdNode *kd,
int depth,
int verbose);
720 static int MidValue(
int dim,
float *c1,
int nvals,
double &coord);
722 static int Select(
int dim,
float *c1,
int *ids,
int nvals,
double &coord);
723 static float FindMaxLeftHalf(
int dim,
float *c1,
int K);
724 static void _Select(
int dim,
float *X,
int *ids,
int L,
int R,
int K);
728 static int SelfOrder(
int id,
vtkKdNode *kd);
729 static int findRegion(
vtkKdNode *node,
float x,
float y,
float z);
730 static int findRegion(
vtkKdNode *node,
double x,
double y,
double z);
736 static void AddNewRegions(
vtkKdNode *kd,
float *c1,
737 int midpt,
int dim,
double coord);
739 void NewPartitioningRequest(
int req);
745 double CellBoundsCache[6];