mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 23:46:00 -06:00
Merge pull request #8376 from OPM/fault_visibilityupdates
Faults: Add Visibiliy mode for overlapping area
This commit is contained in:
parent
8ad2ffa471
commit
985a2c8f30
@ -17,6 +17,7 @@ set(SOURCE_GROUP_HEADER_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseTimeStepFilterFeature.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewInViewFeature.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicEclipseHideFaultFeature.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicEclipseShowOnlyFaultFeature.h
|
||||
)
|
||||
|
||||
set(SOURCE_GROUP_SOURCE_FILES
|
||||
@ -38,6 +39,7 @@ set(SOURCE_GROUP_SOURCE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseTimeStepFilterFeature.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewInViewFeature.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicEclipseHideFaultFeature.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicEclipseShowOnlyFaultFeature.cpp
|
||||
)
|
||||
|
||||
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
|
||||
|
@ -0,0 +1,105 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2021 Equinor 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 <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RicEclipseShowOnlyFaultFeature.h"
|
||||
|
||||
#include "RicEclipsePropertyFilterFeatureImpl.h"
|
||||
#include "RicEclipsePropertyFilterNewExec.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimEclipseCellColors.h"
|
||||
#include "RimEclipsePropertyFilterCollection.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimFaultInView.h"
|
||||
#include "RimFaultInViewCollection.h"
|
||||
|
||||
#include "RigFault.h"
|
||||
#include "RigMainGrid.h"
|
||||
|
||||
#include "cafCmdExecCommandManager.h"
|
||||
#include "cafPdmUiObjectHandle.h"
|
||||
#include "cvfStructGrid.h"
|
||||
|
||||
#include <QAction>
|
||||
|
||||
CAF_CMD_SOURCE_INIT( RicEclipseShowOnlyFaultFeature, "RicEclipseShowOnlyFaultFeature" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicEclipseShowOnlyFaultFeature::isCommandEnabled()
|
||||
{
|
||||
Rim3dView* view = RiaApplication::instance()->activeReservoirView();
|
||||
if ( !view ) return false;
|
||||
|
||||
RimEclipseView* eclView = dynamic_cast<RimEclipseView*>( view );
|
||||
if ( !eclView ) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicEclipseShowOnlyFaultFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
QVariant userData = this->userData();
|
||||
if ( userData.isNull() || userData.type() != QVariant::String ) return;
|
||||
|
||||
QString faultName = userData.toString();
|
||||
|
||||
Rim3dView* view = RiaApplication::instance()->activeReservoirView();
|
||||
if ( !view ) return;
|
||||
|
||||
RimEclipseView* eclView = dynamic_cast<RimEclipseView*>( view );
|
||||
if ( !eclView ) return;
|
||||
|
||||
RimFaultInViewCollection* coll = eclView->faultCollection();
|
||||
RimFaultInView* rimFault = coll->findFaultByName( faultName );
|
||||
if ( !rimFault ) return;
|
||||
if ( !rimFault->parentField() ) return;
|
||||
|
||||
std::vector<caf::PdmObjectHandle*> children;
|
||||
rimFault->parentField()->childObjects( &children );
|
||||
|
||||
for ( auto& child : children )
|
||||
{
|
||||
caf::PdmUiObjectHandle* childUiObject = uiObj( child );
|
||||
if ( childUiObject && childUiObject->objectToggleField() )
|
||||
{
|
||||
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( childUiObject->objectToggleField() );
|
||||
|
||||
if ( field ) field->setValueWithFieldChanged( false );
|
||||
}
|
||||
}
|
||||
|
||||
if ( rimFault )
|
||||
{
|
||||
rimFault->showFault.setValueWithFieldChanged( true );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicEclipseShowOnlyFaultFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setIcon( QIcon( ":/draw_style_faults_24x24.png" ) );
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2021 Equinor 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 <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafCmdFeature.h"
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class RicEclipseShowOnlyFaultFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
|
||||
protected:
|
||||
bool isCommandEnabled() override;
|
||||
void onActionTriggered( bool isChecked ) override;
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
};
|
@ -29,16 +29,20 @@
|
||||
#include "cvfScalarMapper.h"
|
||||
|
||||
#include "RigFault.h"
|
||||
#include "RigNNCData.h"
|
||||
#include "RigNncConnection.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RivFaultGeometryGenerator::RivFaultGeometryGenerator( const cvf::StructGridInterface* grid,
|
||||
const RigFault* fault,
|
||||
RigNNCData* nncData,
|
||||
bool computeNativeFaultFaces )
|
||||
: m_grid( grid )
|
||||
, m_fault( fault )
|
||||
, m_computeNativeFaultFaces( computeNativeFaultFaces )
|
||||
, m_nncData( nncData )
|
||||
{
|
||||
m_quadMapper = new cvf::StructGridQuadToCellFaceMapper;
|
||||
m_triangleMapper = new cvf::StuctGridTriangleToCellFaceMapper( m_quadMapper.p() );
|
||||
@ -54,9 +58,9 @@ RivFaultGeometryGenerator::~RivFaultGeometryGenerator()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Generate surface drawable geo from the specified region
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::ref<cvf::DrawableGeo> RivFaultGeometryGenerator::generateSurface()
|
||||
cvf::ref<cvf::DrawableGeo> RivFaultGeometryGenerator::generateSurface( bool onlyShowFacesWithDefinedNeighbors )
|
||||
{
|
||||
computeArrays();
|
||||
computeArrays( onlyShowFacesWithDefinedNeighbors );
|
||||
|
||||
CVF_ASSERT( m_vertices.notNull() );
|
||||
|
||||
@ -119,7 +123,28 @@ cvf::ref<cvf::DrawableGeo> RivFaultGeometryGenerator::createOutlineMeshDrawable(
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivFaultGeometryGenerator::computeArrays()
|
||||
bool RivFaultGeometryGenerator::hasConnection( size_t cellIdx,
|
||||
cvf::StructGridInterface::FaceType face,
|
||||
RigConnectionContainer& conns )
|
||||
{
|
||||
cvf::StructGridInterface::FaceType oppositeFace = cvf::StructGridInterface::oppositeFace( face );
|
||||
|
||||
for ( size_t i = 0; i < conns.size(); i++ )
|
||||
{
|
||||
auto& r = conns[i];
|
||||
|
||||
if ( ( r.c1GlobIdx() == cellIdx ) && ( r.face() == face ) && r.hasCommonArea() ) return true;
|
||||
|
||||
if ( ( r.c2GlobIdx() == cellIdx ) && ( r.face() == oppositeFace ) && r.hasCommonArea() ) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivFaultGeometryGenerator::computeArrays( bool onlyShowFacesWithDefinedNeighbors )
|
||||
{
|
||||
std::vector<cvf::Vec3f> vertices;
|
||||
m_quadMapper->quadToCellIndexMap().clear();
|
||||
@ -127,6 +152,8 @@ void RivFaultGeometryGenerator::computeArrays()
|
||||
|
||||
cvf::Vec3d offset = m_grid->displayModelOffset();
|
||||
|
||||
auto& connections = m_nncData->connections();
|
||||
|
||||
const std::vector<RigFault::FaultFace>& faultFaces = m_fault->faultFaces();
|
||||
|
||||
#pragma omp parallel for
|
||||
@ -135,23 +162,25 @@ void RivFaultGeometryGenerator::computeArrays()
|
||||
size_t cellIndex = faultFaces[fIdx].m_nativeReservoirCellIndex;
|
||||
cvf::StructGridInterface::FaceType face = faultFaces[fIdx].m_nativeFace;
|
||||
|
||||
if ( cellIndex >= m_cellVisibility->size() ) continue;
|
||||
|
||||
if ( !m_computeNativeFaultFaces )
|
||||
{
|
||||
cellIndex = faultFaces[fIdx].m_oppositeReservoirCellIndex;
|
||||
face = cvf::StructGridInterface::oppositeFace( faultFaces[fIdx].m_nativeFace );
|
||||
face = cvf::StructGridInterface::oppositeFace( face );
|
||||
}
|
||||
|
||||
if ( cellIndex >= m_cellVisibility->size() ) continue;
|
||||
|
||||
if ( !( *m_cellVisibility )[cellIndex] ) continue;
|
||||
|
||||
if ( onlyShowFacesWithDefinedNeighbors && !hasConnection( cellIndex, face, connections ) ) continue;
|
||||
|
||||
cvf::Vec3d cornerVerts[8];
|
||||
m_grid->cellCornerVertices( cellIndex, cornerVerts );
|
||||
|
||||
cvf::ubyte faceConn[4];
|
||||
m_grid->cellFaceVertexIndices( face, faceConn );
|
||||
|
||||
// Critical section to avoid two threads accessing the arrays at the same time.
|
||||
// Critical section to avoid two threads accessing the arrays at the same time.
|
||||
#pragma omp critical( critical_section_RivFaultGeometryGenerator_computeArrays )
|
||||
{
|
||||
int n;
|
||||
|
@ -32,6 +32,8 @@ class Transform;
|
||||
class Part;
|
||||
} // namespace cvf
|
||||
|
||||
class RigNNCData;
|
||||
class RigConnectionContainer;
|
||||
class RigFault;
|
||||
|
||||
//==================================================================================================
|
||||
@ -42,7 +44,10 @@ class RigFault;
|
||||
class RivFaultGeometryGenerator : public cvf::Object
|
||||
{
|
||||
public:
|
||||
RivFaultGeometryGenerator( const cvf::StructGridInterface* grid, const RigFault* fault, bool computeNativeFaultFaces );
|
||||
RivFaultGeometryGenerator( const cvf::StructGridInterface* grid,
|
||||
const RigFault* fault,
|
||||
RigNNCData* nncData,
|
||||
bool computeNativeFaultFaces );
|
||||
~RivFaultGeometryGenerator() override;
|
||||
|
||||
void setCellVisibility( const cvf::UByteArray* cellVisibilities );
|
||||
@ -53,18 +58,21 @@ public:
|
||||
const cvf::StuctGridTriangleToCellFaceMapper* triangleToCellFaceMapper() { return m_triangleMapper.p(); }
|
||||
|
||||
// Generated geometry
|
||||
cvf::ref<cvf::DrawableGeo> generateSurface();
|
||||
cvf::ref<cvf::DrawableGeo> generateSurface( bool onlyShowFacesWithDefinedNeighbors );
|
||||
cvf::ref<cvf::DrawableGeo> createMeshDrawable();
|
||||
cvf::ref<cvf::DrawableGeo> createOutlineMeshDrawable( double creaseAngle );
|
||||
|
||||
private:
|
||||
void computeArrays();
|
||||
void computeArrays( bool onlyShowFacesWithDefinedNeighbors );
|
||||
|
||||
bool hasConnection( size_t cellIdx, cvf::StructGridInterface::FaceType face, RigConnectionContainer& conns );
|
||||
|
||||
private:
|
||||
// Input
|
||||
cvf::cref<cvf::StructGridInterface> m_grid;
|
||||
cvf::cref<RigFault> m_fault;
|
||||
cvf::cref<cvf::UByteArray> m_cellVisibility;
|
||||
cvf::ref<RigNNCData> m_nncData;
|
||||
|
||||
bool m_computeNativeFaultFaces;
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigMainGrid.h"
|
||||
#include "RigNNCData.h"
|
||||
#include "RigResultAccessor.h"
|
||||
|
||||
#include "RimEclipseCase.h"
|
||||
@ -74,8 +75,11 @@ RivFaultPartMgr::RivFaultPartMgr( const RigGridBase* grid,
|
||||
cvf::ref<cvf::Array<size_t>> connIdxes = new cvf::Array<size_t>;
|
||||
connIdxes->assign( rimFault->faultGeometry()->connectionIndices() );
|
||||
|
||||
m_nativeFaultGenerator = new RivFaultGeometryGenerator( grid, rimFault->faultGeometry(), true );
|
||||
m_oppositeFaultGenerator = new RivFaultGeometryGenerator( grid, rimFault->faultGeometry(), false );
|
||||
m_nativeFaultGenerator =
|
||||
new RivFaultGeometryGenerator( grid, rimFault->faultGeometry(), grid->mainGrid()->nncData(), true );
|
||||
|
||||
m_oppositeFaultGenerator =
|
||||
new RivFaultGeometryGenerator( grid, rimFault->faultGeometry(), grid->mainGrid()->nncData(), false );
|
||||
|
||||
m_nativeFaultFacesTextureCoords = new cvf::Vec2fArray;
|
||||
m_oppositeFaultFacesTextureCoords = new cvf::Vec2fArray;
|
||||
@ -280,7 +284,8 @@ void RivFaultPartMgr::generatePartGeometry()
|
||||
bool useBufferObjects = true;
|
||||
// Surface geometry
|
||||
{
|
||||
cvf::ref<cvf::DrawableGeo> geo = m_nativeFaultGenerator->generateSurface();
|
||||
cvf::ref<cvf::DrawableGeo> geo =
|
||||
m_nativeFaultGenerator->generateSurface( m_rimFaultCollection->onlyShowFacesWithDefinedNeighbor() );
|
||||
if ( geo.notNull() )
|
||||
{
|
||||
geo->computeNormals();
|
||||
@ -333,7 +338,8 @@ void RivFaultPartMgr::generatePartGeometry()
|
||||
|
||||
// Surface geometry
|
||||
{
|
||||
cvf::ref<cvf::DrawableGeo> geo = m_oppositeFaultGenerator->generateSurface();
|
||||
cvf::ref<cvf::DrawableGeo> geo =
|
||||
m_oppositeFaultGenerator->generateSurface( m_rimFaultCollection->onlyShowFacesWithDefinedNeighbor() );
|
||||
if ( geo.notNull() )
|
||||
{
|
||||
geo->computeNormals();
|
||||
|
@ -37,6 +37,7 @@ class RimEclipseCellColors;
|
||||
class RimCellEdgeColors;
|
||||
class RimFaultInViewCollection;
|
||||
class RigGridBase;
|
||||
|
||||
class RimFaultInViewCollection;
|
||||
class RimFaultInView;
|
||||
class RivFaultGeometryGenerator;
|
||||
|
@ -118,8 +118,6 @@ void RivReservoirFaultsPartMgr::appendPartsToModel( cvf::ModelBasicList* model )
|
||||
forceDisplayOfFault = true;
|
||||
}
|
||||
|
||||
// qDebug() << forceDisplayOfFault;
|
||||
|
||||
cvf::ModelBasicList parts;
|
||||
|
||||
for ( size_t i = 0; i < faultCollection->faults.size(); i++ )
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "cafAppEnum.h"
|
||||
#include "cafPdmFieldCvfColor.h"
|
||||
#include "cafPdmFieldCvfMat4d.h"
|
||||
#include "cafPdmUiCheckBoxEditor.h"
|
||||
#include "cafPdmUiTreeOrdering.h"
|
||||
|
||||
namespace caf
|
||||
@ -65,31 +66,38 @@ RimFaultInViewCollection::RimFaultInViewCollection()
|
||||
CAF_PDM_InitField( &showFaultCollection, "Active", true, "Active", "", "", "" );
|
||||
showFaultCollection.uiCapability()->setUiHidden( true );
|
||||
|
||||
CAF_PDM_InitField( &showFaultFaces, "ShowFaultFaces", true, "Show Defined faces", "", "", "" );
|
||||
CAF_PDM_InitField( &showOppositeFaultFaces, "ShowOppositeFaultFaces", true, "Show Opposite Faces", "", "", "" );
|
||||
CAF_PDM_InitField( &m_showFaultsOutsideFilters, "ShowFaultsOutsideFilters", true, "Show Faults Outside Filters", "", "", "" );
|
||||
CAF_PDM_InitField( &showFaultFaces, "ShowFaultFaces", true, "Show Defined faces" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &showFaultFaces );
|
||||
|
||||
CAF_PDM_InitField( &showOppositeFaultFaces, "ShowOppositeFaultFaces", true, "Show Opposite Faces" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &showOppositeFaultFaces );
|
||||
|
||||
CAF_PDM_InitField( &m_showFaultsOutsideFilters, "ShowFaultsOutsideFilters", true, "Show Faults Outside Filters" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showFaultsOutsideFilters );
|
||||
|
||||
CAF_PDM_InitField( &m_onlyShowWithNeighbor, "OnlyShowWithDefNeighbor", false, "Only Show Faces With Defined Cell Neighbor" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_onlyShowWithNeighbor );
|
||||
|
||||
CAF_PDM_InitField( &faultResult,
|
||||
"FaultFaceCulling",
|
||||
caf::AppEnum<RimFaultInViewCollection::FaultFaceCullingMode>(
|
||||
RimFaultInViewCollection::FAULT_BACK_FACE_CULLING ),
|
||||
"Dynamic Face Selection",
|
||||
"",
|
||||
"",
|
||||
"" );
|
||||
"Dynamic Face Selection" );
|
||||
|
||||
CAF_PDM_InitField( &showFaultLabel, "ShowFaultLabel", false, "Show Labels" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &showFaultLabel );
|
||||
|
||||
CAF_PDM_InitField( &showFaultLabel, "ShowFaultLabel", false, "Show Labels", "", "", "" );
|
||||
cvf::Color3f defWellLabelColor = RiaPreferences::current()->defaultWellLabelColor();
|
||||
CAF_PDM_InitField( &faultLabelColor, "FaultLabelColor", defWellLabelColor, "Label Color", "", "", "" );
|
||||
|
||||
CAF_PDM_InitField( &showNNCs, "ShowNNCs", true, "Show NNCs", "", "", "" );
|
||||
CAF_PDM_InitField( &showNNCs, "ShowNNCs", true, "Show NNCs" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &showNNCs );
|
||||
|
||||
CAF_PDM_InitField( &hideNncsWhenNoResultIsAvailable,
|
||||
"HideNncsWhenNoResultIsAvailable",
|
||||
true,
|
||||
"Hide NNC Geometry if No NNC Result is Available",
|
||||
"",
|
||||
"",
|
||||
"" );
|
||||
"Hide NNC Geometry if No NNC Result is Available" );
|
||||
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &hideNncsWhenNoResultIsAvailable );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &faults, "Faults", "Faults", "", "", "" );
|
||||
faults.uiCapability()->setUiTreeHidden( true );
|
||||
@ -127,10 +135,16 @@ void RimFaultInViewCollection::fieldChangedByUi( const caf::PdmFieldHandle* chan
|
||||
parentView()->intersectionCollection()->scheduleCreateDisplayModelAndRedraw2dIntersectionViews();
|
||||
}
|
||||
|
||||
if ( changedField == &m_onlyShowWithNeighbor )
|
||||
{
|
||||
parentView()->scheduleReservoirGridGeometryRegen();
|
||||
}
|
||||
|
||||
if ( &showFaultFaces == changedField || &showOppositeFaultFaces == changedField ||
|
||||
&showFaultCollection == changedField || &showFaultLabel == changedField ||
|
||||
&m_showFaultsOutsideFilters == changedField || &faultLabelColor == changedField ||
|
||||
&faultResult == changedField || &showNNCs == changedField || &hideNncsWhenNoResultIsAvailable == changedField )
|
||||
&m_onlyShowWithNeighbor == changedField || &faultResult == changedField || &showNNCs == changedField ||
|
||||
&hideNncsWhenNoResultIsAvailable == changedField )
|
||||
{
|
||||
parentView()->scheduleCreateDisplayModelAndRedraw();
|
||||
parentView()->intersectionCollection()->scheduleCreateDisplayModelAndRedraw2dIntersectionViews();
|
||||
@ -286,6 +300,7 @@ void RimFaultInViewCollection::uiOrderingFaults( QString uiConfigName, caf::PdmU
|
||||
ffviz->add( &showFaultFaces );
|
||||
ffviz->add( &showOppositeFaultFaces );
|
||||
ffviz->add( &faultResult );
|
||||
ffviz->add( &m_onlyShowWithNeighbor );
|
||||
|
||||
caf::PdmUiGroup* nncViz = uiOrdering.addNewGroup( "NNC Visibility" );
|
||||
nncViz->setCollapsedByDefault( true );
|
||||
@ -368,6 +383,14 @@ void RimFaultInViewCollection::setShowFaultsOutsideFilter( bool show )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimFaultInViewCollection::onlyShowFacesWithDefinedNeighbor() const
|
||||
{
|
||||
return m_onlyShowWithNeighbor;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFaultRASettings* RimFaultInViewCollection::faultRASettings() const
|
||||
{
|
||||
return m_faultRASettings();
|
||||
|
@ -62,6 +62,8 @@ public:
|
||||
bool isShowingFaultsAndFaultsOutsideFilters() const;
|
||||
void setShowFaultsOutsideFilter( bool show );
|
||||
|
||||
bool onlyShowFacesWithDefinedNeighbor() const;
|
||||
|
||||
RimFaultRASettings* faultRASettings() const;
|
||||
bool faultRAEnabled() const;
|
||||
bool faultRAAdvancedEnabled() const;
|
||||
@ -95,6 +97,7 @@ private:
|
||||
|
||||
private:
|
||||
caf::PdmField<bool> m_showFaultsOutsideFilters;
|
||||
caf::PdmField<bool> m_onlyShowWithNeighbor;
|
||||
|
||||
caf::PdmChildField<RimFaultRASettings*> m_faultRASettings;
|
||||
caf::PdmField<bool> m_enableFaultRA;
|
||||
|
@ -447,6 +447,12 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
QString( "Hide " ) + faultName,
|
||||
hideFaultList );
|
||||
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicEclipseShowOnlyFaultFeature",
|
||||
QString( "Show " ) + faultName + QString( " - Others Off" ),
|
||||
QVariant( fault->name() ) );
|
||||
|
||||
menuBuilder.addSeparator();
|
||||
|
||||
if ( eclipseView->faultCollection() && eclipseView->faultCollection()->faultRAEnabled() )
|
||||
{
|
||||
menuBuilder.subMenuStart( "Reactivation Assessment" );
|
||||
|
Loading…
Reference in New Issue
Block a user