///////////////////////////////////////////////////////////////////////////////// // // 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. // ///////////////////////////////////////////////////////////////////////////////// #pragma once #include "cvfBase.h" #include "cvfObject.h" #include #include #include #include struct RigWellPathFormation { double mdTop; double mdBase; QString formationName; }; class RigWellPathFormations : public cvf::Object { public: RigWellPathFormations(const std::vector& formations, const QString& filePath, const QString& key); enum FormationLevel { GROUP, LEVEL0, LEVEL1, LEVEL2, LEVEL3, LEVEL4, LEVEL5, LEVEL6, LEVEL7, LEVEL8, LEVEL9, LEVEL10, ALL, UNKNOWN, NONE }; void measuredDepthAndFormationNamesUpToLevel(FormationLevel level, std::vector* names, std::vector* measuredDepths, bool includeFluids) const; std::vector formationsLevelsPresent() const; QString filePath() const; QString keyInFile() const; size_t formationNamesCount() const; private: void measuredDepthAndFormationNamesWithoutDuplicatesOnDepth(std::vector* names, std::vector* measuredDepths) const; bool isFluid(QString formationName); FormationLevel detectLevel(QString formationName); private: QString m_filePath; QString m_keyInFile; std::map m_formationsLevelsPresent; std::vector> m_formations; std::vector m_fluids; };