///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2016- 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. // ///////////////////////////////////////////////////////////////////////////////// #include "RimWellPathFractureCollection.h" #include "RimProject.h" #include "RimWellPathFracture.h" #include "cafPdmObject.h" CAF_PDM_SOURCE_INIT( RimWellPathFractureCollection, "WellPathFractureCollection" ); //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RimWellPathFractureCollection::RimWellPathFractureCollection() { CAF_PDM_InitObject( "Fractures", ":/FractureLayout16x16.png" ); CAF_PDM_InitFieldNoDefault( &m_fractures, "Fractures", "" ); m_fractures.uiCapability()->setUiTreeHidden( true ); setName( "Fractures" ); nameField()->uiCapability()->setUiHidden( true ); setDeletable( true ); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RimWellPathFractureCollection::~RimWellPathFractureCollection() { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RimWellPathFractureCollection::hasFractures() const { return !m_fractures.empty(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimWellPathFractureCollection::addFracture( RimWellPathFracture* fracture ) { m_fractures.push_back( fracture ); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimWellPathFractureCollection::removeFracture( RimWellPathFracture* fracture ) { m_fractures.removeChild( fracture ); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimWellPathFractureCollection::deleteFractures() { m_fractures.deleteChildren(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- std::vector RimWellPathFractureCollection::allFractures() const { return m_fractures.childrenByType(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- std::vector RimWellPathFractureCollection::activeFractures() const { std::vector active; if ( isChecked() ) { for ( const auto& f : allFractures() ) { if ( f->isChecked() ) { active.push_back( f ); } } } return active; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimWellPathFractureCollection::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) { if ( changedField == &m_isChecked ) { RimProject::current()->reloadCompletionTypeResultsInAllViews(); } else { RimProject::current()->scheduleCreateDisplayModelAndRedrawAllViews(); } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimWellPathFractureCollection::onChildDeleted( caf::PdmChildArrayFieldHandle* childArray, std::vector& referringObjects ) { RimProject::current()->scheduleCreateDisplayModelAndRedrawAllViews(); }