From 7f51676da2d9329071c9a7f199988bb737c000bd Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Thu, 7 May 2026 17:03:08 +0200 Subject: [PATCH] Custom Mock Model: Add extent and offset fields to dialog Expose XYZ extent and XY UTM offset as user-editable fields in the Customize Mock Model dialog instead of hard-coding them in RimEclipseResultCase. Defaults match the previous hard-coded values (6000/12000/500 extent, 400000/6000000 offset). --- .../ProjectDataModel/RimEclipseResultCase.cpp | 12 ++++++------ .../ProjectDataModel/RimMockModelSettings.cpp | 19 +++++++++++++++++++ .../ProjectDataModel/RimMockModelSettings.h | 7 +++++++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp b/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp index 848f87ef7a..2c86c0efca 100644 --- a/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp @@ -534,13 +534,13 @@ cvf::ref RimEclipseResultCase::createMockModel( QString mode double startY = 0; double startZ = 0; - double widthX = 6000; - double widthY = 12000; - double widthZ = 500; + double widthX = mockModelSettings->extentX; + double widthY = mockModelSettings->extentY; + double widthZ = mockModelSettings->extentZ; - // Test code to simulate UTM coordinates - double offsetX = 400000; - double offsetY = 6000000; + // Offset to simulate UTM coordinates + double offsetX = mockModelSettings->offsetX; + double offsetY = mockModelSettings->offsetY; double offsetZ = 0; mockFileInterface->setWorldCoordinates( cvf::Vec3d( startX + offsetX, startY + offsetY, startZ + offsetZ ), diff --git a/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.cpp b/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.cpp index 661a2b8640..0fcaabede9 100644 --- a/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.cpp @@ -35,6 +35,16 @@ RimMockModelSettings::RimMockModelSettings() CAF_PDM_InitFieldNoDefault( &totalCellCount, "TotalCellCount", "Total Cell Count" ); totalCellCount.uiCapability()->setUiReadOnly( true ); + CAF_PDM_InitField( &extentX, "ExtentX", 6000.0, "Extent X" ); + extentX.setMinValue( 0.0 ); + CAF_PDM_InitField( &extentY, "ExtentY", 12000.0, "Extent Y" ); + extentY.setMinValue( 0.0 ); + CAF_PDM_InitField( &extentZ, "ExtentZ", 500.0, "Extent Z" ); + extentZ.setMinValue( 0.0 ); + + CAF_PDM_InitField( &offsetX, "OffsetX", 400000.0, "Offset X" ); + CAF_PDM_InitField( &offsetY, "OffsetY", 6000000.0, "Offset Y" ); + CAF_PDM_InitField( &resultCount, "ResultCount", quint64( 3 ), "Result Count" ); CAF_PDM_InitField( &timeStepCount, "TimeStepCount", quint64( 10 ), "Time Step Count" ); } @@ -71,6 +81,15 @@ void RimMockModelSettings::defineUiOrdering( QString uiConfigName, caf::PdmUiOrd gridSizeGroup->add( &cellCountZ ); gridSizeGroup->add( &totalCellCount ); + caf::PdmUiGroup* extentGroup = uiOrdering.addNewGroup( "Extent" ); + extentGroup->add( &extentX ); + extentGroup->add( &extentY ); + extentGroup->add( &extentZ ); + + caf::PdmUiGroup* offsetGroup = uiOrdering.addNewGroup( "Offset" ); + offsetGroup->add( &offsetX ); + offsetGroup->add( &offsetY ); + caf::PdmUiGroup* resultGroup = uiOrdering.addNewGroup( "Results" ); resultGroup->add( &resultCount ); resultGroup->add( &timeStepCount ); diff --git a/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.h b/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.h index 226a77ca33..b32d29b6d1 100644 --- a/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.h +++ b/ApplicationLibCode/ProjectDataModel/RimMockModelSettings.h @@ -41,6 +41,13 @@ public: caf::PdmField totalCellCount; + caf::PdmField extentX; + caf::PdmField extentY; + caf::PdmField extentZ; + + caf::PdmField offsetX; + caf::PdmField offsetY; + caf::PdmField resultCount; caf::PdmField timeStepCount;