///////////////////////////////////////////////////////////////////////////////// // // 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 // for more details. // ///////////////////////////////////////////////////////////////////////////////// #include "RifWellPathFormationsImporter.h" #include "RifWellPathFormationReader.h" //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- cvf::ref RifWellPathFormationsImporter::readWellPathFormations(const QString& formationFilePath, const QString& wellName) { readAllWellPathFormations(formationFilePath); if (m_fileNameToWellPathFormationMap[formationFilePath].find(wellName) != m_fileNameToWellPathFormationMap[formationFilePath].end()) { return m_fileNameToWellPathFormationMap[formationFilePath][wellName]; } else { return nullptr; } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- cvf::ref RifWellPathFormationsImporter::reloadWellPathFormations(const QString& formationFilePath, const QString& wellName) { m_fileNameToWellPathFormationMap.erase(formationFilePath); return readWellPathFormations(formationFilePath, wellName); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- std::map> RifWellPathFormationsImporter::readWellPathFormationsFromPath(const QString& filePath) { // If we have the file in the map, assume it is already read. if (m_fileNameToWellPathFormationMap.find(filePath) != m_fileNameToWellPathFormationMap.end()) { return m_fileNameToWellPathFormationMap[filePath]; } std::map> wellPathToFormationMap = RifWellPathFormationReader::readWellFormationsToGeometry(filePath); m_fileNameToWellPathFormationMap[filePath] = wellPathToFormationMap; return wellPathToFormationMap; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RifWellPathFormationsImporter::reloadAllWellPathFormations() { std::vector allFilePaths; for (auto it = m_fileNameToWellPathFormationMap.begin(); it != m_fileNameToWellPathFormationMap.end(); it++) { allFilePaths.push_back(it->first); } m_fileNameToWellPathFormationMap.clear(); for (const QString& filePath : allFilePaths) { readWellPathFormationsFromPath(filePath); } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RifWellPathFormationsImporter::readAllWellPathFormations(const QString& filePath) { // If we have the file in the map, assume it is already read. if (m_fileNameToWellPathFormationMap.find(filePath) != m_fileNameToWellPathFormationMap.end()) { return; } std::map> wellPathToFormationMap = RifWellPathFormationReader::readWellFormationsToGeometry(filePath); m_fileNameToWellPathFormationMap[filePath] = wellPathToFormationMap; }