#3283 Editable well path. Set default unit system to match grid

This commit is contained in:
Bjørn Erik Jensen
2018-08-28 11:12:05 +02:00
parent d07b7d1456
commit 9ec2bc6922
4 changed files with 43 additions and 28 deletions

View File

@@ -123,31 +123,10 @@ void RimFractureTemplateCollection::setDefaultUnitSystemBasedOnLoadedCases()
{
RimProject* proj = RiaApplication::instance()->project();
std::vector<RimCase*> rimCases;
proj->allCases(rimCases);
RiaEclipseUnitTools::UnitSystem commonUnitSystemForAllCases = RiaEclipseUnitTools::UNITS_UNKNOWN;
for (const auto& c : rimCases)
auto commonUnitSystem = proj->commonUnitSystemForAllCases();
if (commonUnitSystem != RiaEclipseUnitTools::UNITS_UNKNOWN)
{
auto eclipseCase = dynamic_cast<RimEclipseCase*>(c);
if (eclipseCase && eclipseCase->eclipseCaseData())
{
if (commonUnitSystemForAllCases == RiaEclipseUnitTools::UNITS_UNKNOWN)
{
commonUnitSystemForAllCases = eclipseCase->eclipseCaseData()->unitsType();
}
else if (commonUnitSystemForAllCases != eclipseCase->eclipseCaseData()->unitsType())
{
commonUnitSystemForAllCases = RiaEclipseUnitTools::UNITS_UNKNOWN;
break;
}
}
}
if (commonUnitSystemForAllCases != RiaEclipseUnitTools::UNITS_UNKNOWN)
{
m_defaultUnitsForFracTemplates = commonUnitSystemForAllCases;
m_defaultUnitsForFracTemplates = commonUnitSystem;
}
}

View File

@@ -529,7 +529,7 @@ void RimProject::assignIdToCaseGroup(RimIdenticalGridCaseGroup* caseGroup)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimProject::allCases(std::vector<RimCase*>& cases)
void RimProject::allCases(std::vector<RimCase*>& cases) const
{
for (size_t oilFieldIdx = 0; oilFieldIdx < oilFields().size(); oilFieldIdx++)
{
@@ -1015,6 +1015,36 @@ std::vector<RimFractureTemplate*> RimProject::allFractureTemplates() const
return templates;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaEclipseUnitTools::UnitSystem RimProject::commonUnitSystemForAllCases() const
{
std::vector<RimCase*> rimCases;
allCases(rimCases);
RiaEclipseUnitTools::UnitSystem commonUnitSystem = RiaEclipseUnitTools::UNITS_UNKNOWN;
for (const auto& c : rimCases)
{
auto eclipseCase = dynamic_cast<RimEclipseCase*>(c);
if (eclipseCase && eclipseCase->eclipseCaseData())
{
if (commonUnitSystem == RiaEclipseUnitTools::UNITS_UNKNOWN)
{
commonUnitSystem = eclipseCase->eclipseCaseData()->unitsType();
}
else if (commonUnitSystem != eclipseCase->eclipseCaseData()->unitsType())
{
commonUnitSystem = RiaEclipseUnitTools::UNITS_UNKNOWN;
break;
}
}
}
return commonUnitSystem;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -21,6 +21,7 @@
#pragma once
#include "RiaDefines.h"
#include "RiaEclipseUnitTools.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmChildField.h"
@@ -105,7 +106,7 @@ public:
void assignCaseIdToCase(RimCase* reservoirCase);
void assignIdToCaseGroup(RimIdenticalGridCaseGroup* caseGroup);
void allCases(std::vector<RimCase*>& cases);
void allCases(std::vector<RimCase*>& cases) const;
std::vector<RimSummaryCase*> allSummaryCases() const;
std::vector<RimSummaryCaseCollection*> summaryGroups() const;
@@ -147,6 +148,8 @@ public:
std::vector<RimFractureTemplateCollection*> allFractureTemplateCollections() const;
std::vector<RimFractureTemplate*> allFractureTemplates() const;
RiaEclipseUnitTools::UnitSystem commonUnitSystemForAllCases() const;
protected:
// Overridden methods
void initScriptDirectories();