///////////////////////////////////////////////////////////////////////////////// // // 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 "RifEclipseSummaryAddress.h" #include #include #include class RimSummaryCurveCollection; class QString; //================================================================================================== // //================================================================================================== class RiaSummaryCurveAnalyzer { public: RiaSummaryCurveAnalyzer(); void appendAdresses(const std::set& allAddresses); void appendAdresses(const std::vector& allAddresses); void clear(); std::set quantities() const; std::set quantityNamesWithHistory() const; std::set quantityNamesNoHistory() const; std::string quantityNameForTitle() const; std::set wellNames() const; std::set wellGroupNames() const; std::set regionNumbers() const; std::set categories() const; std::vector identifierTexts(RifEclipseSummaryAddress::SummaryVarCategory category) const; static std::vector addressesForCategory(const std::set& addresses, RifEclipseSummaryAddress::SummaryVarCategory category); static std::string correspondingHistorySummaryCurveName(const std::string& curveName); private: void assignCategoryToQuantities() const; void computeQuantityNamesWithHistory() const; void analyzeSingleAddress(const RifEclipseSummaryAddress& address); private: std::set m_quantities; mutable std::set m_quantitiesWithMatchingHistory; mutable std::set m_quantitiesNoMatchingHistory; std::set m_wellNames; std::set m_wellGroupNames; std::set m_regionNumbers; std::set m_categories; };