------------------------------------------------------------------------------
| 1040 | |
| 1041 | //------------------------------------------------------------------------------ |
| 1042 | void vtkKdTree::SetNewBounds_(vtkKdNode* kd, double* b, int* fixDim) |
| 1043 | { |
| 1044 | int go = 0; |
| 1045 | int fixDimLeft[6], fixDimRight[6]; |
| 1046 | |
| 1047 | double kdb[6]; |
| 1048 | kd->GetBounds(kdb); |
| 1049 | |
| 1050 | for (int i = 0; i < 6; i++) |
| 1051 | { |
| 1052 | if (fixDim[i]) |
| 1053 | { |
| 1054 | kdb[i] = b[i]; |
| 1055 | go = 1; |
| 1056 | } |
| 1057 | fixDimLeft[i] = fixDim[i]; |
| 1058 | fixDimRight[i] = fixDim[i]; |
| 1059 | } |
| 1060 | |
| 1061 | if (go) |
| 1062 | { |
| 1063 | kd->SetBounds(kdb[0], kdb[1], kdb[2], kdb[3], kdb[4], kdb[5]); |
| 1064 | |
| 1065 | if (kd->GetLeft()) |
| 1066 | { |
| 1067 | int cutDim = kd->GetDim() * 2; |
| 1068 | |
| 1069 | fixDimLeft[cutDim + 1] = 0; |
| 1070 | vtkKdTree::SetNewBounds_(kd->GetLeft(), b, fixDimLeft); |
| 1071 | |
| 1072 | fixDimRight[cutDim] = 0; |
| 1073 | vtkKdTree::SetNewBounds_(kd->GetRight(), b, fixDimRight); |
| 1074 | } |
| 1075 | } |
| 1076 | } |
| 1077 | |
| 1078 | //------------------------------------------------------------------------------ |
| 1079 | vtkKdNode* vtkKdTree::CopyTree(vtkKdNode* kd) |