MCPcopy Create free account
hub / github.com/Kitware/VTK / GetCellRefinedExtent

Method GetCellRefinedExtent

Filters/Geometry/vtkStructuredAMRGridConnectivity.cxx:2011–2045  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

2009
2010//------------------------------------------------------------------------------
2011void 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//------------------------------------------------------------------------------
2048void vtkStructuredAMRGridConnectivity::GetWholeExtentAtLevel(int level, int ext[6])

Calls 4

assertFunction · 0.50
absFunction · 0.50

Tested by

no test coverage detected