diff --git a/ApplicationCode/ReservoirDataModel/RigReservoirGridTools.h b/ApplicationCode/ReservoirDataModel/RigReservoirGridTools.h index 9690ca8b10..1dde9a155c 100644 --- a/ApplicationCode/ReservoirDataModel/RigReservoirGridTools.h +++ b/ApplicationCode/ReservoirDataModel/RigReservoirGridTools.h @@ -1,23 +1,27 @@ ///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2017 Statoil ASA -// +// // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. -// +// // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. -// -// See the GNU General Public License at +// +// See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #pragma once +#include "RigMainGrid.h" + +#include + class RigActiveCellInfo; class RigFemPartCollection; class RigMainGrid; @@ -26,14 +30,14 @@ class Rim3dView; namespace cvf { - class StructGridInterface; +class StructGridInterface; } class QString; //================================================================================================== -/// -/// +/// +/// //================================================================================================== class RigReservoirGridTools { @@ -43,10 +47,36 @@ public: static const cvf::StructGridInterface* gridByIndex(RimCase* rimCase, int gridIndex); static QString gridName(RimCase* rimCase, int gridIndex); - static const RigActiveCellInfo* activeCellInfo(Rim3dView* rimView); + static const RigActiveCellInfo* activeCellInfo(Rim3dView* rimView); + + template + static QString globalCellIndicesToOneBasedIJKText(InputIterator first, InputIterator last, const RigMainGrid* mainGrid) + { + QString txt; + + if (mainGrid) + { + while (first != last) + { + size_t globalCellIndex = *first; + size_t i, j, k; + mainGrid->ijkFromCellIndex(globalCellIndex, &i, &j, &k); + i++; + j++; + k++; + + QString itemText = QString("%1 %2 %3").arg(i).arg(j).arg(k); + + txt += itemText + "\n"; + + ++first; + } + } + + return txt; + } private: - static RigMainGrid* eclipseMainGrid(RimCase* rimCase); - static RigFemPartCollection* geoMechPartCollection(RimCase* rimCase); + static RigMainGrid* eclipseMainGrid(RimCase* rimCase); + static RigFemPartCollection* geoMechPartCollection(RimCase* rimCase); }; -