#2917 Vector Selection Dialog: Rename method for retreiving all expanded curve defintions. Add method to retreive only the selection (one definition pr ensemble curve set)

This commit is contained in:
Jacob Støren
2018-05-15 13:56:25 +02:00
parent 1b5c1b5e56
commit a222c096f3
4 changed files with 50 additions and 8 deletions

View File

@@ -249,12 +249,12 @@ RiuSummaryCurveDefSelection::~RiuSummaryCurveDefSelection()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::selectedCurveDefinitions() const
std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::allCurveDefinitionsFromSelection() const
{
std::vector<RiaSummaryCurveDefinition> curveDefVector;
{
std::set<RiaSummaryCurveDefinition> caseAndAddressPairs;
std::set<RiaSummaryCurveDefinition> curveDefinitions;
std::set<RifEclipseSummaryAddress> selectedAddressesFromUi = buildAddressListFromSelections();
@@ -289,19 +289,59 @@ std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::selectedCurv
{
if (selectedAddressesFromUi.count(readerAddress) > 0)
{
caseAndAddressPairs.insert(RiaSummaryCurveDefinition(currCase, readerAddress, ensemble));
curveDefinitions.insert(RiaSummaryCurveDefinition(currCase, readerAddress, ensemble));
}
}
}
}
}
std::copy(caseAndAddressPairs.begin(), caseAndAddressPairs.end(), std::back_inserter(curveDefVector));
std::copy(curveDefinitions.begin(), curveDefinitions.end(), std::back_inserter(curveDefVector));
}
return curveDefVector;
}
//--------------------------------------------------------------------------------------------------
/// One CurveDefinition pr ensemble curve set
//--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::selection() const
{
std::vector<RiaSummaryCurveDefinition> curveDefSelection;
std::set<RifEclipseSummaryAddress> selectedAddressesFromUi = buildAddressListFromSelections();
for (SummarySource* currSource : selectedSummarySources())
{
RimSummaryCaseCollection* ensemble = dynamic_cast<RimSummaryCaseCollection*>(currSource);
RimSummaryCase* sourceCase = dynamic_cast<RimSummaryCase*>(currSource);
if (ensemble)
{
std::set<RifEclipseSummaryAddress> addressUnion = ensemble->calculateUnionOfSummaryAddresses();
for ( const auto& addr : selectedAddressesFromUi)
{
if (addressUnion.count(addr))
{
curveDefSelection.push_back(RiaSummaryCurveDefinition(nullptr, addr, ensemble));
}
}
}
else
{
if (!(sourceCase && sourceCase->summaryReader())) continue;
const std::vector<RifEclipseSummaryAddress>& readerAddresses = sourceCase->summaryReader()->allResultAddresses();
for ( const auto& addr : readerAddresses)
{
if (selectedAddressesFromUi.count(addr))
{
curveDefSelection.push_back(RiaSummaryCurveDefinition(sourceCase, addr, nullptr));
}
}
}
}
return curveDefSelection;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------