------------------------------------------------------------------------------
| 2009 | |
| 2010 | //------------------------------------------------------------------------------ |
| 2011 | void vtkStructuredAMRGridConnectivity::GetCellRefinedExtent( |
| 2012 | int orient[3], int ndim, int i, int j, int k, int fromLevel, int toLevel, int ext[6]) |
| 2013 | { |
| 2014 | // STEP 0: Initialize ext |
| 2015 | IMIN(ext) = IMAX(ext) = i; |
| 2016 | JMIN(ext) = JMAX(ext) = j; |
| 2017 | KMIN(ext) = KMAX(ext) = k; |
| 2018 | |
| 2019 | // STEP 1: Compute refined cell extent |
| 2020 | if (this->HasConstantRefinementRatio()) |
| 2021 | { |
| 2022 | assert("pre: invalid constant refinement ratio" && this->RefinementRatio >= 2); |
| 2023 | int levelDifference = std::abs(fromLevel - toLevel); |
| 2024 | int ratio = levelDifference * this->RefinementRatio; |
| 2025 | for (int dim = 0; dim < ndim; ++dim) |
| 2026 | { |
| 2027 | int dimIdx = orient[dim]; |
| 2028 | ext[dimIdx * 2] *= ratio; |
| 2029 | ext[dimIdx * 2 + 1] = (ext[dimIdx * 2] + (ratio - 1)); |
| 2030 | } // END for all dimensions |
| 2031 | } // END if constant refinement ratio |
| 2032 | else |
| 2033 | { |
| 2034 | for (int l = fromLevel; l < toLevel; ++l) |
| 2035 | { |
| 2036 | int ratio = this->GetRefinementRatioAtLevel(l); |
| 2037 | for (int dim = 0; dim < ndim; ++dim) |
| 2038 | { |
| 2039 | int dimIdx = orient[dim]; |
| 2040 | ext[dimIdx * 2] *= ratio; |
| 2041 | ext[dimIdx * 2 + 1] = (ext[dimIdx * 2] + (ratio - 1)); |
| 2042 | } // END for all dimensions |
| 2043 | } // END for each level |
| 2044 | } // END else varying refinement ratio |
| 2045 | } |
| 2046 | |
| 2047 | //------------------------------------------------------------------------------ |
| 2048 | void vtkStructuredAMRGridConnectivity::GetWholeExtentAtLevel(int level, int ext[6]) |
no test coverage detected