mirror of
https://github.com/OPM/ResInsight.git
synced 2025-01-26 16:26:48 -06:00
148 lines
5.8 KiB
C++
148 lines
5.8 KiB
C++
/////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (C) 2015- Statoil ASA
|
|
// Copyright (C) 2015- Ceetron Solutions AS
|
|
//
|
|
// 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 <http://www.gnu.org/licenses/gpl.html>
|
|
// for more details.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "RimFishboneWellPathCollection.h"
|
|
|
|
#include "Rim3dView.h"
|
|
#include "RimFishboneWellPath.h"
|
|
#include "RimFishbonesCollection.h"
|
|
#include "RimProject.h"
|
|
|
|
#include "RigWellPath.h"
|
|
|
|
#include "RifWellPathImporter.h"
|
|
|
|
#include "Riu3DMainWindowTools.h"
|
|
|
|
CAF_PDM_SOURCE_INIT( RimFishboneWellPathCollection, "WellPathCompletionCollection" );
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
RimFishboneWellPathCollection::RimFishboneWellPathCollection()
|
|
{
|
|
CAF_PDM_InitObject( "WellPathCompletions", ":/FishBoneGroupFromFile16x16.png", "", "" );
|
|
|
|
nameField()->uiCapability()->setUiHidden( true );
|
|
this->setName( "Imported Laterals" );
|
|
|
|
CAF_PDM_InitFieldNoDefault( &m_wellPaths, "WellPaths", "Imported Laterals", "", "", "" );
|
|
m_wellPaths.uiCapability()->setUiHidden( true );
|
|
|
|
CAF_PDM_InitFieldNoDefault( &m_pipeProperties, "PipeProperties", "Pipe Properties", "", "", "" );
|
|
m_pipeProperties.uiCapability()->setUiHidden( true );
|
|
m_pipeProperties.uiCapability()->setUiTreeHidden( true );
|
|
m_pipeProperties.uiCapability()->setUiTreeChildrenHidden( true );
|
|
m_pipeProperties = new RimFishbonesPipeProperties;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RimFishboneWellPathCollection::importCompletionsFromFile( const QStringList& filePaths )
|
|
{
|
|
RifWellPathImporter wellPathImporter;
|
|
|
|
for ( const QString& filePath : filePaths )
|
|
{
|
|
size_t wellDataCount = wellPathImporter.wellDataCount( filePath );
|
|
|
|
for ( size_t i = 0; i < wellDataCount; ++i )
|
|
{
|
|
RifWellPathImporter::WellData wellData = wellPathImporter.readWellData( filePath, i );
|
|
RimFishboneWellPath* wellCompletion = new RimFishboneWellPath();
|
|
wellCompletion->setName( wellData.m_name );
|
|
wellCompletion->setCoordinates( wellData.m_wellPathGeometry->m_wellPathPoints );
|
|
wellCompletion->setMeasuredDepths( wellData.m_wellPathGeometry->m_measuredDepths );
|
|
appendCompletion( wellCompletion );
|
|
}
|
|
}
|
|
|
|
RimFishbonesCollection* fishbonesCollection;
|
|
firstAncestorOrThisOfType( fishbonesCollection );
|
|
if ( fishbonesCollection != nullptr )
|
|
{
|
|
fishbonesCollection->recalculateStartMD();
|
|
}
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RimFishboneWellPathCollection::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
|
|
const QVariant& oldValue,
|
|
const QVariant& newValue )
|
|
{
|
|
RimProject* proj;
|
|
this->firstAncestorOrThisOfTypeAsserted( proj );
|
|
proj->scheduleCreateDisplayModelAndRedrawAllViews();
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
std::vector<const RimFishboneWellPath*> RimFishboneWellPathCollection::wellPaths() const
|
|
{
|
|
std::vector<const RimFishboneWellPath*> paths;
|
|
|
|
for ( const RimFishboneWellPath* path : m_wellPaths )
|
|
{
|
|
paths.push_back( path );
|
|
}
|
|
|
|
return paths;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RimFishboneWellPathCollection::setUnitSystemSpecificDefaults()
|
|
{
|
|
m_pipeProperties->setUnitSystemSpecificDefaults();
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RimFishboneWellPathCollection::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
|
{
|
|
caf::PdmUiGroup* wellPropertiesGroup = uiOrdering.addNewGroup( "Well Properties" );
|
|
m_pipeProperties->uiOrdering( uiConfigName, *wellPropertiesGroup );
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RimFishboneWellPathCollection::appendCompletion( RimFishboneWellPath* completion )
|
|
{
|
|
m_wellPaths.push_back( completion );
|
|
|
|
updateConnectedEditors();
|
|
Riu3DMainWindowTools::selectAsCurrentItem( completion );
|
|
|
|
uiCapability()->setUiHidden( !m_wellPaths.empty() );
|
|
|
|
RimProject* project = nullptr;
|
|
firstAncestorOrThisOfTypeAsserted( project );
|
|
if ( project )
|
|
{
|
|
project->reloadCompletionTypeResultsInAllViews();
|
|
}
|
|
}
|