------------------------------------------------------------------------------
| 751 | |
| 752 | //------------------------------------------------------------------------------ |
| 753 | void vtkStructuredGridConnectivity::DetectNeighbors( |
| 754 | int i, int j, int ex1[6], int ex2[6], int orientation[3], int ndim) |
| 755 | { |
| 756 | std::vector<int> status; |
| 757 | status.resize(ndim); |
| 758 | |
| 759 | int A[2]; |
| 760 | int B[2]; |
| 761 | int overlap[2]; |
| 762 | int iOrientation[3]; |
| 763 | int jOrientation[3]; |
| 764 | |
| 765 | int overlapExtent[6]; |
| 766 | for (int ii = 0; ii < 3; ++ii) |
| 767 | { |
| 768 | overlapExtent[ii * 2] = overlapExtent[ii * 2 + 1] = 0; |
| 769 | iOrientation[ii] = vtkStructuredNeighbor::UNDEFINED; |
| 770 | jOrientation[ii] = vtkStructuredNeighbor::UNDEFINED; |
| 771 | } |
| 772 | |
| 773 | int dim = 0; |
| 774 | int idx = 0; |
| 775 | for (dim = 0; dim < ndim; ++dim) |
| 776 | { |
| 777 | idx = orientation[dim]; |
| 778 | A[0] = ex1[idx * 2]; |
| 779 | A[1] = ex1[idx * 2 + 1]; |
| 780 | B[0] = ex2[idx * 2]; |
| 781 | B[1] = ex2[idx * 2 + 1]; |
| 782 | status[idx] = this->IntervalOverlap(A, B, overlap); |
| 783 | if (status[idx] == VTK_NO_OVERLAP) |
| 784 | { |
| 785 | return; /* No neighbors */ |
| 786 | } |
| 787 | |
| 788 | overlapExtent[idx * 2] = overlap[0]; |
| 789 | overlapExtent[idx * 2 + 1] = overlap[1]; |
| 790 | |
| 791 | this->DetermineNeighborOrientation(idx, A, B, overlap, iOrientation); |
| 792 | this->DetermineNeighborOrientation(idx, B, A, overlap, jOrientation); |
| 793 | } // END for all dimensions |
| 794 | |
| 795 | this->SetNeighbors(i, j, iOrientation, jOrientation, overlapExtent); |
| 796 | } |
| 797 | |
| 798 | //------------------------------------------------------------------------------ |
| 799 | void vtkStructuredGridConnectivity::SetBlockTopology(int gridID) |
no test coverage detected