#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

@ -60,14 +60,17 @@ bool RicNewEditableWellPathFeature::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicNewEditableWellPathFeature::onActionTriggered(bool isChecked)
{
if ( RiaApplication::instance()->project() && RiaApplication::instance()->project()->activeOilField() )
RimProject* project = RiaApplication::instance()->project();
if (project && RiaApplication::instance()->project()->activeOilField() )
{
RimWellPathCollection* wellPathCollection = RiaApplication::instance()->project()->activeOilField()->wellPathCollection();
if ( wellPathCollection )
{
std::vector<RimWellPath*> newWellPaths;
newWellPaths.push_back(new RimModeledWellPath());
auto newModeledWellPath = new RimModeledWellPath();
newModeledWellPath->setUnitSystem(project->commonUnitSystemForAllCases());
newWellPaths.push_back(newModeledWellPath);
newWellPaths.back()->setName("UWell-" + QString::number(wellPathCollection->modelledWellPathCount()+1));
wellPathCollection->addWellPaths(newWellPaths);
wellPathCollection->uiCapability()->updateConnectedEditors();

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();