Merge pull request #8230 from OPM/dev

Release 2021.10.0
This commit is contained in:
Magne Sjaastad 2021-11-03 08:28:44 +01:00 committed by GitHub
commit 0ed7932f48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
935 changed files with 70739 additions and 10487 deletions

View File

@ -8,7 +8,6 @@ on:
# build cache is
- cron: '0 1 * * * '
env:
NINJA_VERSION: 1.9.0
BUILD_TYPE: Release
BUILDCACHE_VERSION: 0.24.4
BUILDCACHE_DIR: ${{ github.workspace }}/buildcache_dir
@ -73,10 +72,11 @@ jobs:
python-version: '3.8'
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Download Ninja
uses: seanmiddleditch/gha-setup-ninja@master
with:
version: ${{ env.NINJA_VERSION }}
# workaround a poor interaction between github actions/cmake/vcpkg, see https://github.com/lukka/run-vcpkg/issues/88#issuecomment-885758902
- name: Use CMake 3.20.1
uses: lukka/get-cmake@v3.20.1
- name: Download buildcache
id: buildcache-download
shell: cmake -P {0}
@ -152,7 +152,7 @@ jobs:
vcpkgArguments: '@${{ github.workspace }}/${{ matrix.config.vcpkg-response-file }}'
vcpkgDirectory: '${{ github.workspace }}/ThirdParty/vcpkg'
# Ensure the cache key changes any time the content of the response file changes.
appendedCacheKey: ${{ hashFiles(env.VCPKGRESPONSEFILE) }}-v01
appendedCacheKey: ${{ hashFiles(env.VCPKGRESPONSEFILE) }}-cache-key-v2
- name: Cache dynamic version of OpenSSL (Linux)
if: "contains( matrix.config.os, 'ubuntu_disabled')"

View File

@ -11,7 +11,7 @@ jobs:
container:
image: centos:7
steps:
- name: Intall Dependencies
- name: Install Dependencies
run: |
yum install -y centos-release-scl
yum-config-manager --enable rhel-server-rhscl-7-rpms
@ -30,12 +30,12 @@ jobs:
yum install -y mesa-libGL-devel
yum install -y freeglut-devel
yum install -y devtoolset-7
yum install -y devtoolset-10
yum install -y rh-python36
- name: Build QtCharts
run: |
source /opt/rh/devtoolset-7/enable
source /opt/rh/devtoolset-10/enable
git clone git://code.qt.io/qt/qtcharts.git
cd qtcharts/
git checkout v5.9.7
@ -55,7 +55,7 @@ jobs:
echo "::set-output name=PYTHON_EXECUTABLE::$(python -c 'import sys; import pathlib; print (pathlib.PurePath(sys.executable).as_posix())')"
- name: Build ResInsight
run: |
source /opt/rh/devtoolset-7/enable
source /opt/rh/devtoolset-10/enable
source /opt/rh/rh-python36/enable
cmake3 --version

View File

@ -6,7 +6,7 @@ jobs:
cmake-format-job:
runs-on: ubuntu-latest
steps:
- name: Install cmakelang for cmake-format
- name: Install cmakelang for cmake-format
run: |
python3 -m pip install --user cmakelang
- uses: actions/checkout@v2
@ -16,6 +16,7 @@ jobs:
cd ApplicationLibCode
find -name CMake*.txt | xargs ~/.local/bin/cmake-format -c ${{ github.workspace }}/cmake/cmake-format.py -i
find -name CMake*.cmake | xargs ~/.local/bin/cmake-format -c ${{ github.workspace }}/cmake/cmake-format.py -i
cd ..
cd ApplicationExeCode

3
.gitignore vendored
View File

@ -64,6 +64,7 @@ out
build
CMakeSettings.json
enc_temp_folder
CMakePresets.json
#Visual Studio Code files
.vscode
@ -78,3 +79,5 @@ enc_temp_folder
#Python
*.pyc
*.ESMRY

3
.gitmodules vendored
View File

@ -4,3 +4,6 @@
[submodule "ThirdParty/vcpkg"]
path = ThirdParty/vcpkg
url = https://github.com/CeetronSolutions/vcpkg
[submodule "ThirdParty/fast_float"]
path = ThirdParty/fast_float
url = https://github.com/fastfloat/fast_float

View File

@ -14,7 +14,8 @@ endif()
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-deprecated-declarations")
"${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-deprecated-declarations"
)
endif()
# Open GL
@ -23,7 +24,8 @@ find_package(OpenGL)
find_package(
Qt5
COMPONENTS Core
QUIET)
QUIET
)
if(Qt5Core_FOUND)
find_package(
@ -38,7 +40,8 @@ if(Qt5Core_FOUND)
Concurrent
PrintSupport
Svg
OPTIONAL_COMPONENTS Charts)
OPTIONAL_COMPONENTS Charts
)
set(QT_LIBRARIES
Qt5::Core
Qt5::Gui
@ -49,7 +52,8 @@ if(Qt5Core_FOUND)
Qt5::Xml
Qt5::Concurrent
Qt5::PrintSupport
Qt5::Svg)
Qt5::Svg
)
if(Qt5Charts_FOUND)
list(APPEND QT_LIBRARIES Qt5::Charts)
endif(Qt5Charts_FOUND)
@ -70,12 +74,15 @@ set(CODE_SOURCE_FILES RiaMain.cpp)
if(RESINSIGHT_ENABLE_GRPC)
list(APPEND CODE_HEAD_FILES RiaGrpcConsoleApplication.h
RiaGrpcGuiApplication.h)
RiaGrpcGuiApplication.h
)
list(APPEND CODE_SOURCE_FILES RiaGrpcConsoleApplication.cpp
RiaGrpcGuiApplication.cpp)
RiaGrpcGuiApplication.cpp
)
list(APPEND QT_MOC_HEADERS RiaGrpcConsoleApplication.h
RiaGrpcGuiApplication.h)
RiaGrpcGuiApplication.h
)
# Find Protobuf installation Looks for protobuf-config.cmake file installed by
# Protobuf's cmake installation.
@ -88,12 +95,14 @@ if(RESINSIGHT_ENABLE_GRPC)
find_package(gRPC CONFIG REQUIRED)
set(_PROTOBUF_LIBPROTOBUF protobuf::libprotobuf)
set(_GRPC_GRPCPP_UNSECURE gRPC::grpc++_unsecure gRPC::grpc_unsecure
gRPC::gpr)
gRPC::gpr
)
set(GRPC_LINK_LIBRARIES ${_GRPC_GRPCPP_UNSECURE} ${_PROTOBUF_LIBPROTOBUF})
else()
set(RESINSIGHT_GRPC_INSTALL_PREFIX
""
CACHE PATH "gRPC : Install prefix for gRPC")
CACHE PATH "gRPC : Install prefix for gRPC"
)
set(ENV{PKG_CONFIG_PATH} "${RESINSIGHT_GRPC_INSTALL_PREFIX}/lib/pkgconfig")
find_package(PkgConfig REQUIRED)
pkg_check_modules(
@ -104,7 +113,8 @@ if(RESINSIGHT_ENABLE_GRPC)
grpc_unsecure
gpr
protobuf
libcares)
libcares
)
endif()
endif()
@ -156,7 +166,8 @@ set(EXE_FILES
${HEADER_FILES}
${REFERENCED_CMAKE_FILES}
.clang-format
.clang-tidy)
.clang-tidy
)
add_executable(ResInsight ${EXE_FILES})
@ -165,7 +176,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
ResInsight
PROPERTIES
COMPILE_FLAGS
"-Wall -Wno-unused-parameter -Wno-reorder -Wno-parentheses -Wno-switch")
"-Wall -Wno-unused-parameter -Wno-reorder -Wno-parentheses -Wno-switch"
)
# Treat warnings as errors if asked to do so
if(RESINSIGHT_TREAT_WARNINGS_AS_ERRORS)
set_target_properties(
@ -212,8 +224,9 @@ if(MSVC)
endif()
message(STATUS "BUILD_FLAGS_FOR_MSVC ${BUILD_FLAGS_FOR_MSVC}")
set_target_properties(ResInsight PROPERTIES COMPILE_FLAGS
${BUILD_FLAGS_FOR_MSVC})
set_target_properties(
ResInsight PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS_FOR_MSVC}
)
endif()
@ -227,22 +240,27 @@ if(APPLE)
COMMAND
sips -s format icns ${CMAKE_CURRENT_SOURCE_DIR}/Resources/AppLogo48x48.png
--out ${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns
COMMENT Converting application icon)
COMMENT Converting application icon
)
add_custom_target(
ResInsight-icns
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns)
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns
)
add_dependencies(ResInsight ResInsight-icns)
set_target_properties(
ResInsight PROPERTIES MACOSX_BUNDLE_ICON_FILE
${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns)
${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns
)
endif()
if(RESINSIGHT_ENABLE_GRPC)
list(APPEND THIRD_PARTY_LIBRARIES ${GRPC_LINK_LIBRARIES})
if(MSVC)
set_target_properties(ResInsight PROPERTIES LINK_FLAGS_RELWITHDEBINFO
"/NODEFAULTLIB:MSVCRTD.lib")
set_target_properties(
ResInsight PROPERTIES LINK_FLAGS_RELWITHDEBINFO
"/NODEFAULTLIB:MSVCRTD.lib"
)
endif()
endif()
@ -264,7 +282,8 @@ set(LINK_LIBRARIES
${APP_FWK_LIBRARIES}
${VIZ_FWK_LIBRARIES}
ApplicationLibCode
Commands)
Commands
)
if(RESINSIGHT_ENABLE_GRPC)
list(APPEND LINK_LIBRARIES GrpcInterface)
@ -291,12 +310,14 @@ set(UNITY_EXCLUDE_FILES
qrc_cafCommandFeatures.cpp
# Exclude files including opm-common
ProjectDataModel/RimVfpTableExtractor.cpp
ProjectDataModel/RimVfpPlot.cpp)
ProjectDataModel/RimVfpPlot.cpp
)
if(RESINSIGHT_ENABLE_UNITY_BUILD)
foreach(fileToExclude ${UNITY_EXCLUDE_FILES})
set_source_files_properties(${fileToExclude}
PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)
set_source_files_properties(
${fileToExclude} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE
)
endforeach(fileToExclude)
endif()
@ -330,7 +351,8 @@ if(MSVC)
set(HDF5_DLL_NAMES hdf5 hdf5_cpp szip zlib)
foreach(HDF5_DLL_NAME ${HDF5_DLL_NAMES})
list(APPEND RI_DLL_FILENAMES
${RESINSIGHT_HDF5_DIR}/bin/${HDF5_DLL_NAME}.dll)
${RESINSIGHT_HDF5_DIR}/bin/${HDF5_DLL_NAME}.dll
)
endforeach(HDF5_DLL_NAME)
endif()
@ -342,7 +364,8 @@ foreach(FILE_TO_COPY ${RI_DLL_FILENAMES})
TARGET ResInsight
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FILE_TO_COPY}
$<TARGET_FILE_DIR:ResInsight>)
$<TARGET_FILE_DIR:ResInsight>
)
endforeach()
# Generate Python code in a target that is part of ALL_BUILD and depends on
@ -355,9 +378,11 @@ if(RESINSIGHT_ENABLE_GRPC)
OUTPUT ${GENERATED_CLASSES_FILE}
COMMAND ResInsight ARGS --console --generate ${GENERATED_CLASSES_FILE}
DEPENDS ResInsight
COMMENT "Generating ${GENERATED_CLASSES_FILE}")
add_custom_target(RipsGeneratedPythonClasses ALL
SOURCES ${GENERATED_CLASSES_FILE})
COMMENT "Generating ${GENERATED_CLASSES_FILE}"
)
add_custom_target(
RipsGeneratedPythonClasses ALL SOURCES ${GENERATED_CLASSES_FILE}
)
source_group("Source Files" ${GENERATED_CLASSES_FILE})
add_dependencies(RipsGeneratedPythonClasses ResInsight)
@ -369,7 +394,8 @@ if(RESINSIGHT_ENABLE_GRPC)
COMMAND
${CMAKE_COMMAND} -E copy_directory
"${CMAKE_SOURCE_DIR}/GrpcInterface/Python"
$<TARGET_FILE_DIR:ResInsight>/Python)
$<TARGET_FILE_DIR:ResInsight>/Python
)
endif(RESINSIGHT_ENABLE_GRPC)
@ -389,19 +415,22 @@ if(RESINSIGHT_PRIVATE_INSTALL)
# different installoptions that does things this way, and really do copy
# them when doing PRIVATE_INSTALL
set(RESINSIGHT_INSTALL_RPATH ${RESINSIGHT_INSTALL_RPATH}
${RESINSIGHT_ODB_API_DIR}/lib)
${RESINSIGHT_ODB_API_DIR}/lib
)
endif()
if(EXISTS ${RESINSIGHT_ERT_EXTERNAL_LIB_ROOT})
# append the external ERT lib root
set(RESINSIGHT_INSTALL_RPATH ${RESINSIGHT_INSTALL_RPATH}
${RESINSIGHT_ERT_EXTERNAL_LIB_ROOT})
${RESINSIGHT_ERT_EXTERNAL_LIB_ROOT}
)
endif()
# message("RESINSIGHT_INSTALL_RPATH : " "${RESINSIGHT_INSTALL_RPATH}")
set_target_properties(ResInsight PROPERTIES INSTALL_RPATH
"${RESINSIGHT_INSTALL_RPATH}")
set_target_properties(
ResInsight PROPERTIES INSTALL_RPATH "${RESINSIGHT_INSTALL_RPATH}"
)
# bundle Qt5 libraries
option(RESINSIGHT_QT5_BUNDLE_LIBRARIES "Bundle Qt5 libraries" OFF)
@ -413,7 +442,8 @@ if(RESINSIGHT_PRIVATE_INSTALL)
get_property(
_filepath
TARGET "Qt5::Core"
PROPERTY LOCATION_RELEASE)
PROPERTY LOCATION_RELEASE
)
get_filename_component(_dir ${_filepath} PATH)
foreach(qtlib ${QT_LIBRARIES})
@ -436,7 +466,8 @@ if(RESINSIGHT_PRIVATE_INSTALL)
install(
FILES ${FILE_AND_SYMLINKS}
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
OPTIONAL)
OPTIONAL
)
endforeach()
set(QT_PLUGIN_PATH "$ENV{QT_PLUGIN_PATH}")
@ -447,21 +478,26 @@ if(RESINSIGHT_PRIVATE_INSTALL)
# include platform files
install(FILES ${QT_PLUGIN_PATH}/platforms/libqxcb.so
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/platforms/)
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/platforms/
)
install(FILES ${QT_PLUGIN_PATH}/imageformats/libqsvg.so
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/imageformats/)
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/imageformats/
)
install(FILES ${QT_PLUGIN_PATH}/iconengines/libqsvgicon.so
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/iconengines/)
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/iconengines/
)
# Required by xcb module used to create OpenGL widgets
install(
FILES ${QT_PLUGIN_PATH}/xcbglintegrations/libqxcb-egl-integration.so
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/plugins/xcbglintegrations/
OPTIONAL)
OPTIONAL
)
install(
FILES ${QT_PLUGIN_PATH}/xcbglintegrations/libqxcb-glx-integration.so
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/plugins/xcbglintegrations/
OPTIONAL)
OPTIONAL
)
endif(RESINSIGHT_QT5_BUNDLE_LIBRARIES)
@ -477,14 +513,16 @@ if(RESINSIGHT_PRIVATE_INSTALL)
if(WIN32
AND TARGET Qt5::qmake
AND NOT TARGET Qt5::windeployqt)
AND NOT TARGET Qt5::windeployqt
)
get_target_property(_qt5_qmake_location Qt5::qmake IMPORTED_LOCATION)
execute_process(
COMMAND "${_qt5_qmake_location}" -query QT_INSTALL_PREFIX
RESULT_VARIABLE return_code
OUTPUT_VARIABLE qt5_install_prefix
OUTPUT_STRIP_TRAILING_WHITESPACE)
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(imported_location "${qt5_install_prefix}/bin/windeployqt.exe")
@ -494,8 +532,9 @@ if(RESINSIGHT_PRIVATE_INSTALL)
if(EXISTS ${imported_location})
add_executable(Qt5::windeployqt IMPORTED)
set_target_properties(Qt5::windeployqt PROPERTIES IMPORTED_LOCATION
${imported_location})
set_target_properties(
Qt5::windeployqt PROPERTIES IMPORTED_LOCATION ${imported_location}
)
endif()
endif()
@ -514,7 +553,8 @@ if(RESINSIGHT_PRIVATE_INSTALL)
Qt5::windeployqt --no-compiler-runtime --no-system-d3d-compiler
--no-quick-import --no-translations --verbose 0 --dir
"${CMAKE_CURRENT_BINARY_DIR}/windeployqt"
"$<TARGET_FILE_DIR:ResInsight>/$<TARGET_FILE_NAME:ResInsight>")
"$<TARGET_FILE_DIR:ResInsight>/$<TARGET_FILE_NAME:ResInsight>"
)
# Qt DLLs
message(STATUS "Creating post build step for copying Qt DLLs")
@ -527,11 +567,13 @@ if(RESINSIGHT_PRIVATE_INSTALL)
COMMAND
${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_BINARY_DIR}/windeployqt/"
$<TARGET_FILE_DIR:ResInsight>)
$<TARGET_FILE_DIR:ResInsight>
)
# copy deployment directory during installation
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/windeployqt/"
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
endif()
# install GRPC-related DLLs and generated_classes.py
@ -541,12 +583,14 @@ if(RESINSIGHT_PRIVATE_INSTALL)
set(GRPC_DLL_NAMES ${PROTOBUF_DLL} cares ${ZLIB_DLL} abseil_dll)
foreach(dllname ${GRPC_DLL_NAMES})
install(FILES $<TARGET_FILE_DIR:ResInsight>/${dllname}.dll
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
endforeach(dllname ${GRPC_DLL_NAMES})
install(
FILES
${CMAKE_SOURCE_DIR}/GrpcInterface/Python/rips/generated/generated_classes.py
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/Python/rips/generated)
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/Python/rips/generated
)
endif()
# Boost
@ -555,7 +599,8 @@ if(RESINSIGHT_PRIVATE_INSTALL)
get_property(
_filepath
TARGET "Boost::filesystem"
PROPERTY LOCATION_RELEASE)
PROPERTY LOCATION_RELEASE
)
message("_filepath: ${_filepath}")
# The location of Boost is based on the file structure as installed by vcpkg
@ -571,14 +616,16 @@ if(RESINSIGHT_PRIVATE_INSTALL)
install(
FILES ${RI_BOOST_DLLS}
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
CONFIGURATIONS Debug Release RelWithDebInfo)
CONFIGURATIONS Debug Release RelWithDebInfo
)
# CRT
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP ON)
set(CMAKE_INSTALL_OPENMP_LIBRARIES ON)
include(InstallRequiredSystemLibraries)
install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
endif()
@ -597,7 +644,8 @@ if(RESINSIGHT_PRIVATE_INSTALL)
GROUP_READ
GROUP_EXECUTE
WORLD_READ
WORLD_EXECUTE)
WORLD_EXECUTE
)
endif()
else(RESINSIGHT_PRIVATE_INSTALL)
@ -609,13 +657,17 @@ else(RESINSIGHT_PRIVATE_INSTALL)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/Resources/AppLogo48x48.png
DESTINATION share/icons/hicolor/48x48/apps
RENAME ResInsight.png)
RENAME ResInsight.png
)
# desktop environment icon; remember to call `update-desktop-database` in
# package post-install scripts
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resinsight.desktop.in
${CMAKE_CURRENT_BINARY_DIR}/resinsight.desktop @ONLY)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/resinsight.desktop.in
${CMAKE_CURRENT_BINARY_DIR}/resinsight.desktop @ONLY
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/resinsight.desktop
DESTINATION share/applications)
DESTINATION share/applications
)
endif(RESINSIGHT_PRIVATE_INSTALL)
# OpenSSL
@ -633,25 +685,32 @@ if(RESINSIGHT_BUNDLE_OPENSSL)
message("OpenSSL binary dir: ${OPENSSL_BIN_DIR}")
install(FILES ${OPENSSL_BIN_DIR}/libcrypto-1_1-x64.dll
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
install(FILES ${OPENSSL_BIN_DIR}/libssl-1_1-x64.dll
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
endif(OPENSSL_FOUND)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
# Assumes that OpenSSL is installed by ./vcpkg install
# --overlay-triplets=custom-triplets --triplet x64-linux-dynamic openssl
set(OPENSSL_BIN_DIR
${CMAKE_SOURCE_DIR}/ThirdParty/vcpkg/installed/x64-linux-dynamic/lib)
${CMAKE_SOURCE_DIR}/ThirdParty/vcpkg/installed/x64-linux-dynamic/lib
)
message("OpenSSL binary dir: ${OPENSSL_BIN_DIR}")
install(FILES ${OPENSSL_BIN_DIR}/libcrypto.so
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
install(FILES ${OPENSSL_BIN_DIR}/libcrypto.so.1.1
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
install(FILES ${OPENSSL_BIN_DIR}/libssl.so
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
install(FILES ${OPENSSL_BIN_DIR}/libssl.so.1.1
DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
)
endif()
endif(RESINSIGHT_BUNDLE_OPENSSL)
@ -687,7 +746,8 @@ endif()
if(NOT ${OCTAVE_VERSION_STRING} EQUAL "")
set(RESINSIGHT_PACKAGE_NAME
"${RESINSIGHT_PACKAGE_NAME}_oct-${OCTAVE_VERSION_STRING}")
"${RESINSIGHT_PACKAGE_NAME}_oct-${OCTAVE_VERSION_STRING}"
)
endif()
if(RESINSIGHT_BUNDLE_OPENSSL AND OPENSSL_FOUND)
@ -697,7 +757,8 @@ endif()
# Append el5 when compiled on RHEL5 and el6 if compiled on RHEL6
if(NOT "${RESINSIGHT_RHEL_SYSTEM_NAME}" STREQUAL "")
set(RESINSIGHT_PACKAGE_NAME
"${RESINSIGHT_PACKAGE_NAME}_${RESINSIGHT_RHEL_SYSTEM_NAME}")
"${RESINSIGHT_PACKAGE_NAME}_${RESINSIGHT_RHEL_SYSTEM_NAME}"
)
else()
set(RESINSIGHT_PACKAGE_NAME "${RESINSIGHT_PACKAGE_NAME}_${CPACK_SYSTEM_NAME}")
endif()

View File

@ -239,6 +239,7 @@
<file>redo.png</file>
<file>ComboBoxDown.svg</file>
<file>ComboBoxUp.svg</file>
<file>WellIntAnalysis.png</file>
</qresource>
<qresource prefix="/Shader">
<file>fs_CellFace.glsl</file>

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

View File

@ -38,7 +38,7 @@ RiaApplication* createApplication( int& argc, char* argv[] )
{
for ( int i = 1; i < argc; ++i )
{
if ( !qstrcmp( argv[i], "--console" ) || !qstrcmp( argv[i], "--unittest" ) )
if ( !qstrcmp( argv[i], "--console" ) || !qstrcmp( argv[i], "--unittest" ) || !qstrcmp( argv[i], "--version" ) )
{
#ifdef ENABLE_GRPC
return new RiaGrpcConsoleApplication( argc, argv );

View File

@ -1,5 +1,5 @@
---
Checks: '-*,modernize-use-override,modernize-use-nullptr,modernize-deprecated-headers'
Checks: '-*,modernize-use-override,modernize-use-nullptr,modernize-deprecated-headers,bugprone-bool-pointer-implicit-conversion,bugprone-parent-virtual-call,bugprone-redundant-branch-condition,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare'
WarningsAsErrors: ''
HeaderFilterRegex: 'ApplicationLibCode/*.*$'
FormatStyle: 'file'

View File

@ -486,3 +486,57 @@ CRAVA is a software package for seismic inversion and conditioning of
Modifications and other icons are Copyright (C) Equinor ASA
===============================================================================
Notice for the mio library
===============================================================================
Copyright 2017 https://github.com/mandreyel
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
===============================================================================
Notice for the fast_float library
===============================================================================
https://github.com/fastfloat/fast_float
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,393 @@
// ResInsight version string : 2021.06.0
// Report generated : man. jun 14 11:41:04 2021
//
//
AnalysisPlot
AnalysisPlotCollection
AnalysisPlotDataEntry
Annotations
AsciiDataCurve
CalcScript
CalculatedSummaryCase
CellEdgeResultSlot
CellPropertyFilter
CellPropertyFilters
CellRangeFilter
CellRangeFilterCollection
ChangeDataSourceFeatureUi
CmdFieldChangeExecData
ColorLegend
ColorLegendCollection
ColorLegendItem
CompletionTemplateCollection
CorrelationMatrixPlot
CorrelationPlot
CorrelationPlotCollection
CorrelationReportPlot
CrossSection
CrossSectionCollection
DataContainerFloat
DataContainerString
DataContainerTime
DepthTrackPlot
DoubleParameter
Eclipse2dViewCollection
EclipseCase
EclipseGeometrySelectionItem
ElasticProperties
ElasticPropertyScaling
ElasticPropertyScalingCollection
EnsembleFractureStatistics
EnsembleFractureStatisticsPlot
EnsembleFractureStatisticsPlotCollection
FaciesInitialPressureConfig
FaciesProperties
Fault
Faults
FileSummaryCase
FishbonesCollection
FishbonesMultipleSubs
FishbonesPipeProperties
FlowCharacteristicsPlot
FlowDiagSolution
FlowPlotCollection
FormationNames
FormationNamesCollectionObject
FractureContainment
FractureDefinitionCollection
FractureGroupStatisticsCollection
GeoMech2dViewCollection
GeoMechGeometrySelectionItem
GeoMechPropertyFilter
GeoMechPropertyFilters
GeoMechResultDefinition
GeoMechResultSlot
GeoMechView
GridCaseSurface
GridCollection
GridCrossPlotCurve
GridCrossPlotCurveSet
GridInfo
GridInfoCollection
GridStatisticsPlot
GridStatisticsPlotCollection
GridSummaryCase
GridTimeHistoryCurve
IntegerParameter
Intersection2dView
Intersection2dViewCollection
IntersectionBox
IntersectionResultDefinition
Legend
MainPlotCollection
MdiWindowController
MockModelSettings
ModeledWellPath
MultiPlot
MultiSnapshotDefinition
NonNetLayers
ObservedDataCollection
ObservedFmuRftData
ParameterGroup
ParameterResultCrossPlot
PdmDocument
PdmObjectCollection
PdmObjectGroup
Perforation
PerforationCollection
PlotDataFilterCollection
PlotDataFilterItem
PlotTemplateCollection
PlotTemplateFileItem
PolyLineFilter
PolygonFilter
PolylineTarget
PolylinesFromFileAnnotation
PressureTable
PressureTableItem
PropertyFilter
ResInsightAnalysisModels
ResInsightGeoMechCase
ResInsightGeoMechModels
ResInsightOilField
ResInsightProject
ResampleData
ReservoirCellResultStorage
ReservoirView
ResultDefinition
ResultSlot
ResultStorageEntryInfo
RftAddress
RiaMemoryCleanup
RiaPreferences
RiaPreferencesGeoMech
RiaPreferencesSummary
RiaRegressionTest
RicCaseAndFileExportSettingsUi
RicCellRangeUi
RicDeleteItemExecData
RicExportCarfinUi
RicExportCompletionDataSettingsUi
RicExportContourMapToTextUi
RicExportEclipseInputGridUi
RicExportLgrUi
RicExportToLasFileObj
RicExportToLasFileResampleUi
RicExportWellPathsUi
RicHoloLensCreateSessionUi
RicHoloLensExportToFolderUi
RicHoloLensServerSettings
RicLinkVisibleViewsFeatureUi
RicPasteAsciiDataToSummaryPlotFeatureUi
RicSaturationPressureUi
RicSaveEclipseInputVisibleCellsUi
RicSelectPlotTemplateUi
RicSelectSummaryPlotUI
RicSelectViewUI
RicSummaryAddressSelection
RicSummaryCurveCalculator
RicSummaryCurveCreator
RicWellPathsUnitSystemSettingsUi
RifReaderSettings
Rim3dWellLogCurveCollection
Rim3dWellLogExtractionCurve
Rim3dWellLogFileCurve
Rim3dWellLogRftCurve
RimAnnotationCollection
RimAnnotationCollectionBase
RimAnnotationGroupCollection
RimAnnotationLineAppearance
RimAnnotationTextAppearance
RimBinaryExportSettings
RimCaseCollection
RimCellFilterCollection
RimCommandExecuteScript
RimCommandIssueFieldChanged
RimCommandObject
RimContourMapView
RimCsvUserData
RimCustomObjectiveFunction
RimCustomObjectiveFunctionCollection
RimCustomObjectiveFunctionWeight
RimDerivedEnsembleCase
RimDerivedEnsembleCaseCollection
RimDialogData
RimEclipseContourMapProjection
RimElementVectorResult
RimEllipseFractureTemplate
RimEnsembleCurveFilter
RimEnsembleCurveFilterCollection
RimEnsembleCurveSet
RimEnsembleCurveSetCollection
RimEnsembleStatistics
RimEquilibriumAxisAnnotation
RimExportInputSettings
RimFaultRAPreprocSettings
RimFaultRASettings
RimFaultResultSlot
RimFractureExportSettings
RimGeoMechContourMapProjection
RimGeoMechContourMapView
RimGridCrossPlot
RimGridCrossPlotCollection
RimGridCrossPlotCurveSetNameConfig
RimGridCrossPlotNameConfig
RimIdenticalGridCaseGroup
RimInputProperty
RimInputPropertyCollection
RimInputReservoir
RimIntersectionResultsDefinitionCollection
RimMeasurement
RimMswCompletionParameters
RimMudWeightWindowParameters
RimMultiPlotCollection
RimMultipleValveLocations
RimNonDarcyPerforationParameters
RimObjectiveFunction
RimObservedEclipseUserData
RimOilFieldEntry
RimOilRegionEntry
RimPlotAxisAnnotation
RimPlotCellFilterCollection
RimPlotCellPropertyFilter
RimPolylineAppearance
RimPolylinesAnnotationInView
RimPolylinesFromFileAnnotationInView
RimProcess
RimReachCircleAnnotation
RimReachCircleAnnotationInView
RimSaturationPressurePlot
RimSaturationPressurePlotCollection
RimStatisticalCalculation
RimStatisticalCollection
RimStimPlanColors
RimStimPlanFractureTemplate
RimStimPlanLegendConfig
RimSummaryCalculation
RimSummaryCalculationCollection
RimSummaryCalculationVariable
RimSummaryCurveCollection
RimSummaryCurveCollectionModifier
RimTensorResults
RimTernaryLegendConfig
RimTextAnnotation
RimTextAnnotationInView
RimTimeAxisAnnotation
RimTimeStepFilter
RimUserDefinedPolylinesAnnotationInView
RimVfpPlotCollection
RimViewLinkerCollection
RimViewNameConfig
RimVirtualPerforationResults
RimWellLogExtractionCurve
RimWellLogExtractionCurveNameConfig
RimWellLogFileCurveNameConfig
RimWellLogPlotNameConfig
RimWellLogRftCurveNameConfig
RimWellLogWbsCurve
RimWellPathEntry
RimWellPathImport
RimWellPathTieIn
RiuCreateMultipleFractionsUi
RiuMultipleFractionsOptions
ScriptLocation
SimWellFracture
SimWellFractureCollection
StimPlanModel
StimPlanModelCollection
StimPlanModelCurve
StimPlanModelPlot
StimPlanModelPlotCollection
StimPlanModelTemplate
StimPlanModelTemplateCollection
StreamlineInViewCollection
StringParameter
SummaryAddress
SummaryCaseCollection
SummaryCaseSubCollection
SummaryCrossPlot
SummaryCrossPlotCollection
SummaryCurve
SummaryCurveAutoName
SummaryCurveFilter
SummaryFilterSettings
SummaryObservedDataFile
SummaryPageDownloadEntity
SummaryPlot
SummaryPlotCollection
SummaryPlotFilterTextCurveSetEditor
SummaryTimeAxisProperties
SummaryYAxisProperties
Surface
SurfaceCollection
SurfaceInView
SurfaceInViewCollection
SurfaceResultDefinition
TofAccumulatedPhaseFractionsPlot
TotalWellAllocationPlot
UserDefinedFilter
UserDefinedPolylinesAnnotation
ValveTemplate
ValveTemplateCollection
VfpPlot
View3dOverlayInfoConfig
ViewController
ViewLinker
WbsParameters
Well
WellAllocationPlot
WellAllocationPlotLegend
WellBoreStabilityPlot
WellDistributionPlot
WellDistributionPlotCollection
WellFlowRateCurve
WellLogFile
WellLogFileChannel
WellLogFileCurve
WellLogPlot
WellLogPlotCollection
WellLogPlotTrack
WellLogRftCurve
WellMeasurement
WellMeasurementCurve
WellMeasurementFilePath
WellMeasurementInView
WellMeasurements
WellMeasurementsInView
WellPath
WellPathAicdParameters
WellPathAttribute
WellPathAttributes
WellPathBase
WellPathCompletionSettings
WellPathCompletions
WellPathFracture
WellPathFractureCollection
WellPathGeometry
WellPathGeometryDef
WellPathGroup
WellPathTarget
WellPathValve
WellPaths
WellPltPlot
WellPltPlotCollection
WellRftEnsembleCurveSet
WellRftPlot
WellRftPlotCollection
Wells
cafNamedTreeNode
cafObjectReferenceTreeNode
cafTreeNode
cloneView
closeProject
computeCaseGroupStatistics
createGridCaseGroup
createGridCaseGroupResult
createLgrForCompletions
createMultiPlot
createMultipleFractures
createSaturationPressurePlots
createStatisticsCase
createStatisticsCaseResult
createView
createViewResult
createWbsPlotResult
createWellBoreStabilityPlot
exportContourMapToText
exportFlowCharacteristics
exportLgrForCompletions
exportMsw
exportMultiCaseSnapshots
exportProperty
exportPropertyInViews
exportSimWellFractureCompletions
exportSnapshots
exportVisibleCells
exportWellLogPlotData
exportWellLogPlotDataResult
exportWellPathCompletions
exportWellPaths
importFormationNames
importWellLogFiles
importWellLogFilesResult
importWellPaths
importWellPathsResult
loadCase
loadCaseResult
openProject
replaceCase
replaceMultipleCases
replaceSourceCases
runOctaveScript
saveProject
saveProjectAs
scaleFractureTemplate
setExportFolder
setFractureContainment
setMainWindowSize
setPlotWindowSize
setStartDir
setTimeStep
stackCurves
unstackCurves

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,420 @@
// ResInsight version string : 2021.10.0-RC_01
// Report generated : Mon Nov 1 15:35:12 2021
//
//
AnalysisPlot
AnalysisPlotCollection
AnalysisPlotDataEntry
Annotations
AsciiDataCurve
CalcScript
CalculatedSummaryCase
CellEdgeResultSlot
CellFilterCollection
CellPropertyFilter
CellPropertyFilters
CellRangeFilter
CellRangeFilterCollection
ChangeDataSourceFeatureUi
CmdFieldChangeExecData
ColorLegend
ColorLegendCollection
ColorLegendItem
CompletionTemplateCollection
CorrelationMatrixPlot
CorrelationPlot
CorrelationPlotCollection
CorrelationReportPlot
CrossSection
CrossSectionCollection
DataContainerFloat
DataContainerString
DataContainerTime
DepthTrackPlot
DoubleParameter
Eclipse2dViewCollection
EclipseCase
EclipseGeometrySelectionItem
ElasticProperties
ElasticPropertyScaling
ElasticPropertyScalingCollection
EnsembleFractureStatistics
EnsembleFractureStatisticsPlot
EnsembleFractureStatisticsPlotCollection
EnsembleStatisticsSurface
EnsembleSurface
EnsembleWellLogStatisticsCurve
EnsembleWellLogs
EnsembleWellLogsCollection
FaciesInitialPressureConfig
FaciesProperties
Fault
Faults
FileSummaryCase
FileSurface
FishbonesCollection
FishbonesMultipleSubs
FishbonesPipeProperties
FlowCharacteristicsPlot
FlowDiagSolution
FlowPlotCollection
FormationNames
FormationNamesCollectionObject
FractureContainment
FractureDefinitionCollection
FractureGroupStatisticsCollection
FractureTemplateCollection
GeoMech2dViewCollection
GeoMechGeometrySelectionItem
GeoMechPart
GeoMechPartCollection
GeoMechPropertyFilter
GeoMechPropertyFilters
GeoMechResultDefinition
GeoMechResultSlot
GeoMechView
GridCaseSurface
GridCollection
GridCrossPlotCurve
GridCrossPlotCurveSet
GridInfo
GridInfoCollection
GridStatisticsPlot
GridStatisticsPlotCollection
GridSummaryCase
GridTimeHistoryCurve
IntegerParameter
Intersection2dView
Intersection2dViewCollection
IntersectionBox
IntersectionResultDefinition
Legend
ListParameter
MainPlotCollection
MdiWindowController
MockModelSettings
ModeledWellPath
MultiPlot
MultiSnapshotDefinition
NonNetLayers
ObservedDataCollection
ObservedFmuRftData
ParameterGroup
ParameterResultCrossPlot
PdmDocument
PdmObjectCollection
PdmObjectGroup
Perforation
PerforationCollection
PlotDataFilterCollection
PlotDataFilterItem
PlotTemplateCollection
PlotTemplateFileItem
PolyLineFilter
PolygonFilter
PolylineTarget
PolylinesFromFileAnnotation
PressureTable
PressureTableItem
PropertyFilter
ResInsightAnalysisModels
ResInsightGeoMechCase
ResInsightGeoMechModels
ResInsightOilField
ResInsightProject
ResampleData
ReservoirCellResultStorage
ReservoirView
ResultDefinition
ResultSlot
ResultStorageEntryInfo
RftAddress
RiaMemoryCleanup
RiaPreferences
RiaPreferencesGeoMech
RiaPreferencesSummary
RiaPreferencesSystem
RiaRegressionTest
RicCaseAndFileExportSettingsUi
RicCellRangeUi
RicCreateEnsembleSurfaceUi
RicCreateEnsembleWellLogUi
RicCreateMultipleWellPathLateralsUi
RicDeleteItemExecData
RicExportCarfinUi
RicExportCompletionDataSettingsUi
RicExportContourMapToTextUi
RicExportEclipseInputGridUi
RicExportLgrUi
RicExportToLasFileObj
RicExportToLasFileResampleUi
RicExportWellPathsUi
RicHoloLensCreateSessionUi
RicHoloLensExportToFolderUi
RicHoloLensServerSettings
RicLinkVisibleViewsFeatureUi
RicPasteAsciiDataToSummaryPlotFeatureUi
RicSaturationPressureUi
RicSaveEclipseInputVisibleCellsUi
RicSelectPlotTemplateUi
RicSelectSummaryPlotUI
RicSelectViewUI
RicSummaryAddressSelection
RicSummaryCurveCalculator
RicSummaryCurveCreator
RicWellPathsUnitSystemSettingsUi
RifReaderSettings
Rim3dWellLogCurveCollection
Rim3dWellLogExtractionCurve
Rim3dWellLogFileCurve
Rim3dWellLogRftCurve
RimAnnotationCollection
RimAnnotationCollectionBase
RimAnnotationGroupCollection
RimAnnotationLineAppearance
RimAnnotationTextAppearance
RimBinaryExportSettings
RimCaseCollection
RimCellFilterCollection
RimCommandExecuteScript
RimCommandIssueFieldChanged
RimCommandObject
RimCommandRouter
RimContourMapView
RimCsvUserData
RimCustomObjectiveFunction
RimCustomObjectiveFunctionCollection
RimCustomObjectiveFunctionWeight
RimDerivedEnsembleCase
RimDerivedEnsembleCaseCollection
RimDialogData
RimEclipseContourMapProjection
RimElementVectorResult
RimEllipseFractureTemplate
RimEnsembleCurveFilter
RimEnsembleCurveFilterCollection
RimEnsembleCurveSet
RimEnsembleCurveSetCollection
RimEnsembleStatistics
RimEnsembleWellLogCurveSet
RimEquilibriumAxisAnnotation
RimExportInputSettings
RimFaultRAPreprocSettings
RimFaultRASettings
RimFaultResultSlot
RimFractureExportSettings
RimGeoMechContourMapProjection
RimGeoMechContourMapView
RimGridCrossPlot
RimGridCrossPlotCollection
RimGridCrossPlotCurveSetNameConfig
RimGridCrossPlotNameConfig
RimIdenticalGridCaseGroup
RimInputProperty
RimInputPropertyCollection
RimInputReservoir
RimIntersectionResultsDefinitionCollection
RimMeasurement
RimMswCompletionParameters
RimMudWeightWindowParameters
RimMultiPlotCollection
RimMultipleLocations
RimMultipleValveLocations
RimNonDarcyPerforationParameters
RimObjectiveFunction
RimObservedEclipseUserData
RimOilFieldEntry
RimOilRegionEntry
RimPlotAxisAnnotation
RimPlotCellFilterCollection
RimPlotCellPropertyFilter
RimPolylineAppearance
RimPolylinesAnnotationInView
RimPolylinesFromFileAnnotationInView
RimProcess
RimReachCircleAnnotation
RimReachCircleAnnotationInView
RimSaturationPressurePlot
RimSaturationPressurePlotCollection
RimStatisticalCalculation
RimStatisticalCollection
RimStimPlanColors
RimStimPlanFractureTemplate
RimStimPlanLegendConfig
RimSummaryCalculation
RimSummaryCalculationCollection
RimSummaryCalculationVariable
RimSummaryCurveCollection
RimSummaryCurveCollectionModifier
RimSurfaceIntersectionBand
RimSurfaceIntersectionCollection
RimSurfaceIntersectionCurve
RimTensorResults
RimTernaryLegendConfig
RimTextAnnotation
RimTextAnnotationInView
RimTimeAxisAnnotation
RimTimeStepFilter
RimUserDefinedPolylinesAnnotationInView
RimVfpPlotCollection
RimViewLinkerCollection
RimViewNameConfig
RimVirtualPerforationResults
RimWellIASettings
RimWellIASettingsCollection
RimWellLogExtractionCurve
RimWellLogExtractionCurveNameConfig
RimWellLogFileCurveNameConfig
RimWellLogPlotNameConfig
RimWellLogRftCurveNameConfig
RimWellLogWbsCurve
RimWellPathEntry
RimWellPathImport
RimWellPathTieIn
RiuCreateMultipleFractionsUi
RiuMultipleFractionsOptions
ScriptLocation
SimWellFracture
SimWellFractureCollection
StimPlanFractureTemplate
StimPlanModel
StimPlanModelCollection
StimPlanModelCurve
StimPlanModelPlot
StimPlanModelPlotCollection
StimPlanModelTemplate
StimPlanModelTemplateCollection
StreamlineInViewCollection
StringParameter
SummaryAddress
SummaryCaseCollection
SummaryCaseSubCollection
SummaryCrossPlot
SummaryCrossPlotCollection
SummaryCurve
SummaryCurveAutoName
SummaryCurveFilter
SummaryFilterSettings
SummaryObservedDataFile
SummaryPageDownloadEntity
SummaryPlot
SummaryPlotCollection
SummaryPlotFilterTextCurveSetEditor
SummaryTimeAxisProperties
SummaryYAxisProperties
Surface
SurfaceCollection
SurfaceInView
SurfaceInViewCollection
SurfaceResultDefinition
TC2
TestCommand1
TofAccumulatedPhaseFractionsPlot
TotalWellAllocationPlot
UserDefinedFilter
UserDefinedPolylinesAnnotation
ValveTemplate
ValveTemplateCollection
VfpPlot
View3dOverlayInfoConfig
ViewController
ViewLinker
WbsParameters
Well
WellAllocationPlot
WellAllocationPlotLegend
WellBoreStabilityPlot
WellDistributionPlot
WellDistributionPlotCollection
WellFlowRateCurve
WellLogExtractionCurve
WellLogFile
WellLogFileChannel
WellLogFileCurve
WellLogPlot
WellLogPlotCollection
WellLogPlotTrack
WellLogRftCurve
WellMeasurement
WellMeasurementCurve
WellMeasurementFilePath
WellMeasurementInView
WellMeasurements
WellMeasurementsInView
WellPath
WellPathAicdParameters
WellPathAttribute
WellPathAttributes
WellPathBase
WellPathCompletionSettings
WellPathCompletions
WellPathFracture
WellPathFractureCollection
WellPathGeometry
WellPathGeometryDef
WellPathGroup
WellPathTarget
WellPathValve
WellPaths
WellPltPlot
WellPltPlotCollection
WellRftEnsembleCurveSet
WellRftPlot
WellRftPlotCollection
Wells
cafNamedTreeNode
cafObjectReferenceTreeNode
cafTreeNode
cloneView
closeProject
computeCaseGroupStatistics
createGridCaseGroup
createGridCaseGroupResult
createLgrForCompletions
createMultiPlot
createMultipleFractures
createSaturationPressurePlots
createStatisticsCase
createStatisticsCaseResult
createView
createViewResult
createWbsPlotResult
createWellBoreStabilityPlot
exportContourMapToText
exportFlowCharacteristics
exportLgrForCompletions
exportMsw
exportMultiCaseSnapshots
exportProperty
exportPropertyInViews
exportSimWellFractureCompletions
exportSnapshots
exportVisibleCells
exportWellLogPlotData
exportWellLogPlotDataResult
exportWellPathCompletions
exportWellPaths
importFormationNames
importWellLogFiles
importWellLogFilesResult
importWellPaths
importWellPathsResult
loadCase
loadCaseResult
openProject
replaceCase
replaceMultipleCases
replaceSourceCases
runOctaveScript
saveProject
saveProjectAs
scaleFractureTemplate
setExportFolder
setFractureContainment
setMainWindowSize
setPlotWindowSize
setStartDir
setTimeStep
stackCurves
unstackCurves

View File

@ -1,74 +1,73 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaConsoleApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaGuiApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaCompletionTypeCalculationScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaFractureDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaPreferences.h
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesSummary.h
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesGeoMech.h
${CMAKE_CURRENT_LIST_DIR}/RiaPorosityModel.h
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveDefinition.h
${CMAKE_CURRENT_LIST_DIR}/RiaCurveSetDefinition.h
${CMAKE_CURRENT_LIST_DIR}/RiaRftPltCurveDefinition.h
${CMAKE_CURRENT_LIST_DIR}/RiaViewRedrawScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaPlotWindowRedrawScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaMemoryCleanup.h
${CMAKE_CURRENT_LIST_DIR}/RiaFontCache.h
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseFileNameTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaFeatureCommandContext.h
${CMAKE_CURRENT_LIST_DIR}/RiaStringListSerializer.h
${CMAKE_CURRENT_LIST_DIR}/RiaNncDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaStimPlanModelDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaResultNames.h
${CMAKE_CURRENT_LIST_DIR}/RiaNumberFormat.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaConsoleApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaGuiApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaCompletionTypeCalculationScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaFractureDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaPreferences.h
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesSummary.h
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesGeoMech.h
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesSystem.h
${CMAKE_CURRENT_LIST_DIR}/RiaPorosityModel.h
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveDefinition.h
${CMAKE_CURRENT_LIST_DIR}/RiaCurveSetDefinition.h
${CMAKE_CURRENT_LIST_DIR}/RiaRftPltCurveDefinition.h
${CMAKE_CURRENT_LIST_DIR}/RiaViewRedrawScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaPlotWindowRedrawScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaMemoryCleanup.h
${CMAKE_CURRENT_LIST_DIR}/RiaFontCache.h
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseFileNameTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaFeatureCommandContext.h
${CMAKE_CURRENT_LIST_DIR}/RiaStringListSerializer.h
${CMAKE_CURRENT_LIST_DIR}/RiaNncDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaStimPlanModelDefines.h
${CMAKE_CURRENT_LIST_DIR}/RiaResultNames.h
${CMAKE_CURRENT_LIST_DIR}/RiaNumberFormat.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaApplication.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaConsoleApplication.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaGuiApplication.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCompletionTypeCalculationScheduler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFractureDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPreferences.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesSummary.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesGeoMech.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPorosityModel.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveDefinition.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCurveSetDefinition.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaRftPltCurveDefinition.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaViewRedrawScheduler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPlotWindowRedrawScheduler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaMemoryCleanup.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFontCache.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseFileNameTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFeatureCommandContext.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStringListSerializer.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaNncDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStimPlanModelDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaResultNames.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaNumberFormat.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaApplication.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaConsoleApplication.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaGuiApplication.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCompletionTypeCalculationScheduler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFractureDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPreferences.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesSummary.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesGeoMech.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPreferencesSystem.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPorosityModel.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveDefinition.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCurveSetDefinition.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaRftPltCurveDefinition.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaViewRedrawScheduler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaPlotWindowRedrawScheduler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaMemoryCleanup.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFontCache.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseFileNameTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFeatureCommandContext.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStringListSerializer.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaNncDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStimPlanModelDefines.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaResultNames.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaNumberFormat.cpp
)
list(APPEND CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
set(QT_MOC_HEADERS
${QT_MOC_HEADERS}
${CMAKE_CURRENT_LIST_DIR}/RiaConsoleApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaGuiApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaCompletionTypeCalculationScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaViewRedrawScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaPlotWindowRedrawScheduler.h
)
list(APPEND CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
source_group(
"Application" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
set (QT_MOC_HEADERS
${QT_MOC_HEADERS}
${CMAKE_CURRENT_LIST_DIR}/RiaConsoleApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaGuiApplication.h
${CMAKE_CURRENT_LIST_DIR}/RiaCompletionTypeCalculationScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaViewRedrawScheduler.h
${CMAKE_CURRENT_LIST_DIR}/RiaPlotWindowRedrawScheduler.h
)
source_group( "Application" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -25,6 +25,7 @@
#include "RiaImportEclipseCaseTools.h"
#include "RiaLogging.h"
#include "RiaPreferences.h"
#include "RiaPreferencesSystem.h"
#include "RiaProjectModifier.h"
#include "RiaSocketServer.h"
#include "RiaTextStringTools.h"
@ -37,6 +38,7 @@
#include "RicfCommandFileExecutor.h"
#include "RicfCommandObject.h"
#include "CommandRouter/RimCommandRouter.h"
#include "Rim2dIntersectionViewCollection.h"
#include "RimAnnotationCollection.h"
#include "RimAnnotationInViewCollection.h"
@ -46,6 +48,7 @@
#include "RimCompletionTemplateCollection.h"
#include "RimEclipseCaseCollection.h"
#include "RimEclipseView.h"
#include "RimEnsembleWellLogsCollection.h"
#include "RimFormationNamesCollection.h"
#include "RimFractureTemplateCollection.h"
#include "RimGeoMechCase.h"
@ -148,6 +151,8 @@ RiaApplication::RiaApplication()
#endif
setLastUsedDialogDirectory( "MULTICASEIMPORT", "/" );
m_commandRouter = std::make_unique<RimCommandRouter>();
}
//--------------------------------------------------------------------------------------------------
@ -229,7 +234,9 @@ void RiaApplication::createMockModelCustomized()
//--------------------------------------------------------------------------------------------------
void RiaApplication::createInputMockModel()
{
RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( QStringList( RiaDefines::mockModelBasicInputCase() ) );
bool createView = true;
RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( QStringList( RiaDefines::mockModelBasicInputCase() ),
createView );
}
//--------------------------------------------------------------------------------------------------
@ -300,6 +307,14 @@ RimProject* RiaApplication::project()
return m_project.get();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimCommandRouter* RiaApplication::commandRouter()
{
return m_commandRouter.get();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -324,7 +339,10 @@ bool RiaApplication::openFile( const QString& fileName )
}
else if ( int( fileType ) & int( RiaDefines::ImportFileType::ANY_ECLIPSE_FILE ) )
{
loadingSucceded = RicImportGeneralDataFeature::openEclipseFilesFromFileNames( QStringList{ fileName }, true );
bool createView = true;
bool createPlot = true;
loadingSucceded =
RicImportGeneralDataFeature::openEclipseFilesFromFileNames( QStringList{ fileName }, createPlot, createView );
lastUsedDialogTag = RiaDefines::defaultDirectoryLabel( fileType );
}
@ -499,6 +517,7 @@ bool RiaApplication::loadProject( const QString& projectFileName,
}
oilField->wellPathCollection->loadDataAndUpdate();
oilField->ensembleWellLogsCollection->loadDataAndUpdate();
}
{
@ -652,6 +671,12 @@ bool RiaApplication::loadProject( const QString& projectFileName,
}
oilField->annotationCollection()->loadDataAndUpdate();
for ( auto well : oilField->wellPathCollection()->allWellPaths() )
{
for ( auto stimPlan : well->stimPlanModelCollection()->allStimPlanModels() )
stimPlan->resetAnchorPositionAndThicknessDirection();
}
}
// Some procedures in onProjectOpened() may rely on the display model having been created
@ -867,6 +892,7 @@ bool RiaApplication::openOdbCaseFromFile( const QString& fileName, bool applyTim
m_project->updateConnectedEditors();
Riu3DMainWindowTools::setExpanded( riv );
Riu3DMainWindowTools::selectAsCurrentItem( riv );
return true;
}
@ -1188,7 +1214,7 @@ void RiaApplication::applyPreferences()
this->project()->updateConnectedEditors();
}
caf::ProgressInfoStatic::setEnabled( m_preferences->showProgressBar() );
caf::ProgressInfoStatic::setEnabled( RiaPreferencesSystem::current()->showProgressBar() );
m_preferences->writePreferencesToApplicationStore();
}
@ -1335,7 +1361,7 @@ int RiaApplication::launchUnitTests()
//
// Use the gtest filter to execute a subset of tests
QString filterText = RiaPreferences::current()->gtestFilter();
QString filterText = RiaPreferencesSystem::current()->gtestFilter();
if ( !filterText.isEmpty() )
{
::testing::GTEST_FLAG( filter ) = filterText.toStdString();

View File

@ -52,6 +52,7 @@ class RiaSocketServer;
class RigEclipseCaseData;
class RimCommandObject;
class RimCommandRouter;
class RimEclipseCase;
class RimEclipseView;
class RimWellPath;
@ -115,7 +116,8 @@ public:
RimGridView* activeMainOrComparisonGridView();
int currentScriptCaseId() const;
RimProject* project();
RimProject* project();
RimCommandRouter* commandRouter();
void createMockModel();
void createResultsMockModel();
@ -234,6 +236,8 @@ protected:
caf::PdmPointer<Rim3dView> m_activeReservoirView;
std::unique_ptr<RimProject> m_project;
std::unique_ptr<RimCommandRouter> m_commandRouter;
QPointer<RiaSocketServer> m_socketServer;
std::unique_ptr<caf::UiProcess> m_workerProcess;

View File

@ -114,12 +114,6 @@ void RiaCompletionTypeCalculationScheduler::slotRecalculateCompletionType()
Rim3dView* activeView = RiaApplication::instance()->activeReservoirView();
QModelIndex mi;
if ( RiuMainWindow::instance() )
{
mi = RiuMainWindow::instance()->projectTreeView()->treeView()->currentIndex();
}
for ( RimEclipseCase* eclipseCase : uniqueCases )
{
if ( eclipseCase )
@ -148,11 +142,6 @@ void RiaCompletionTypeCalculationScheduler::slotRecalculateCompletionType()
RiuMainWindow::instance()->setActiveViewer( activeView->viewer()->layoutWidget() );
}
}
if ( mi.isValid() && RiuMainWindow::instance() )
{
RiuMainWindow::instance()->projectTreeView()->treeView()->setCurrentIndex( mi );
}
}
//--------------------------------------------------------------------------------------------------

View File

@ -22,6 +22,7 @@
#include "RiaPreferences.h"
#include "RiaProjectModifier.h"
#include "RiaSocketServer.h"
#include "RiaVersionInfo.h"
#include "RicImportGeneralDataFeature.h"
@ -127,6 +128,15 @@ RiaApplication::ApplicationStatus RiaConsoleApplication::handleArguments( gsl::n
return RiaApplication::ApplicationStatus::EXIT_COMPLETED;
}
if ( progOpt->option( "version" ) )
{
QString text = QString( STRPRODUCTVER ) + "\n";
this->showFormattedTextInMessageBoxOrConsole( text );
return RiaApplication::ApplicationStatus::EXIT_COMPLETED;
}
// Code generation
// -----------------
if ( cvf::Option o = progOpt->option( "generate" ) )
@ -275,7 +285,9 @@ RiaApplication::ApplicationStatus RiaConsoleApplication::handleArguments( gsl::n
QStringList fileNames =
RicImportGeneralDataFeature::fileNamesFromCaseNames( cvfqt::Utils::toQStringList( o.values() ) );
RicImportGeneralDataFeature::openEclipseFilesFromFileNames( fileNames, true );
bool createView = true;
bool createPlot = true;
RicImportGeneralDataFeature::openEclipseFilesFromFileNames( fileNames, createPlot, createView );
}
if ( cvf::Option o = progOpt->option( "commandFile" ) )

View File

@ -28,6 +28,7 @@
#include "RiaLogging.h"
#include "RiaPlotWindowRedrawScheduler.h"
#include "RiaPreferences.h"
#include "RiaPreferencesSystem.h"
#include "RiaProjectModifier.h"
#include "RiaRegressionTestRunner.h"
#include "RiaSocketServer.h"
@ -239,7 +240,8 @@ QString RiaGuiApplication::promptForProjectSaveAsFileName() const
//--------------------------------------------------------------------------------------------------
bool RiaGuiApplication::askUserToSaveModifiedProject()
{
if ( m_preferences->showProjectChangedDialog() && caf::PdmUiModelChangeDetector::instance()->isModelChanged() )
if ( RiaPreferencesSystem::current()->showProjectChangedDialog() &&
caf::PdmUiModelChangeDetector::instance()->isModelChanged() )
{
QMessageBox msgBox;
msgBox.setIcon( QMessageBox::Question );
@ -377,7 +379,7 @@ RimViewWindow* RiaGuiApplication::activePlotWindow() const
//--------------------------------------------------------------------------------------------------
bool RiaGuiApplication::useShaders() const
{
if ( !m_preferences->useShaders() ) return false;
if ( !RiaPreferencesSystem::current()->useShaders() ) return false;
bool isShadersSupported = true;
if ( platformName() != "offscreen" ) // Avoid opengl access if we are in qt offscreen mode
@ -674,8 +676,11 @@ RiaApplication::ApplicationStatus RiaGuiApplication::handleArguments( gsl::not_n
QStringList fileNames =
RicImportGeneralDataFeature::fileNamesFromCaseNames( cvfqt::Utils::toQStringList( o.values() ) );
bool createView = true;
bool createPlot = true;
RicImportGeneralDataFeature::OpenCaseResults results =
RicImportGeneralDataFeature::openEclipseFilesFromFileNames( fileNames, true );
RicImportGeneralDataFeature::openEclipseFilesFromFileNames( fileNames, createPlot, createView );
if ( results && !results.eclipseSummaryFiles.empty() )
{
getOrCreateAndShowMainPlotWindow();
@ -1350,7 +1355,7 @@ void RiaGuiApplication::applyGuiPreferences( const RiaPreferences*
if ( m_activeReservoirView && m_activeReservoirView->viewer() )
{
m_activeReservoirView->viewer()->updateNavigationPolicy();
m_activeReservoirView->viewer()->enablePerfInfoHud( m_preferences->show3dInformation() );
m_activeReservoirView->viewer()->enablePerfInfoHud( RiaPreferencesSystem::current()->show3dInformation() );
}
if ( useShaders() )
@ -1364,10 +1369,11 @@ void RiaGuiApplication::applyGuiPreferences( const RiaPreferences*
if ( m_mainWindow && m_mainWindow->projectTreeView() )
{
m_mainWindow->projectTreeView()->enableAppendOfClassNameToUiItemText( m_preferences->appendClassNameToUiText() );
m_mainWindow->projectTreeView()->enableAppendOfClassNameToUiItemText(
RiaPreferencesSystem::current()->appendClassNameToUiText() );
if ( mainPlotWindow() )
mainPlotWindow()->projectTreeView()->enableAppendOfClassNameToUiItemText(
m_preferences->appendClassNameToUiText() );
RiaPreferencesSystem::current()->appendClassNameToUiText() );
}
for ( auto fontObject : defaultFontObjects )
@ -1533,7 +1539,7 @@ void RiaGuiApplication::applyGuiPreferences( const RiaPreferences*
uiItem->updateConnectedEditors();
}
}
caf::PdmUiItem::enableExtraDebugText( m_preferences->appendFieldKeywordToToolTipText() );
caf::PdmUiItem::enableExtraDebugText( RiaPreferencesSystem::current()->appendFieldKeywordToToolTipText() );
if ( oldPreferences )
{

View File

@ -149,18 +149,23 @@ std::vector<RigEclipseResultAddress> RiaMemoryCleanup::selectedEclipseResults()
std::set<RigFemResultAddress> RiaMemoryCleanup::findGeoMechCaseResultsInUse() const
{
std::set<RigFemResultAddress> resultsInUse;
RimGeoMechCase* geoMechCase = dynamic_cast<RimGeoMechCase*>( m_case() );
auto geoMechCase = dynamic_cast<RimGeoMechCase*>( m_case() );
if ( geoMechCase )
{
std::vector<RimFemResultObserver*> geoMechResults;
geoMechCase->descendantsIncludingThisOfType( geoMechResults );
for ( RimFemResultObserver* resultDef : geoMechResults )
{
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( resultDef->objectToggleField() );
if ( !field || ( *field )() )
auto pdmObj = dynamic_cast<caf::PdmObject*>( resultDef );
if ( pdmObj )
{
std::vector<RigFemResultAddress> required = resultDef->observedResults();
resultsInUse.insert( required.begin(), required.end() );
auto field = dynamic_cast<caf::PdmField<bool>*>( pdmObj->objectToggleField() );
if ( !field || ( *field )() )
{
std::vector<RigFemResultAddress> required = resultDef->observedResults();
resultsInUse.insert( required.begin(), required.end() );
}
}
}
}

View File

@ -25,6 +25,7 @@
#include "RiaColorTables.h"
#include "RiaPreferencesGeoMech.h"
#include "RiaPreferencesSummary.h"
#include "RiaPreferencesSystem.h"
#include "RiaValidRegExpValidator.h"
#include "RifReaderSettings.h"
@ -173,46 +174,6 @@ RiaPreferences::RiaPreferences()
CAF_PDM_InitFieldNoDefault( &defaultWellLabelFontSize, "defaultWellLabelFontSizePt", "Well Label Font Size", "", "", "" );
CAF_PDM_InitFieldNoDefault( &defaultPlotFontSize, "defaultPlotFontSizePt", "Plot Font Size", "", "", "" );
CAF_PDM_InitField( &showLasCurveWithoutTvdWarning,
"showLasCurveWithoutTvdWarning",
true,
"Show LAS Curve Without TVD Warning",
"",
"",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &showLasCurveWithoutTvdWarning );
CAF_PDM_InitField( &m_useShaders, "useShaders", true, "Use Shaders", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useShaders );
CAF_PDM_InitField( &m_showHud, "showHud", false, "Show 3D Information", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showHud );
CAF_PDM_InitField( &m_appendClassNameToUiText, "appendClassNameToUiText", false, "Show Class Names", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_appendClassNameToUiText );
CAF_PDM_InitField( &m_appendFieldKeywordToToolTipText,
"appendFieldKeywordToToolTipText",
false,
"Show Field Keyword in ToolTip",
"",
"",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_appendFieldKeywordToToolTipText );
CAF_PDM_InitField( &m_showViewIdInProjectTree, "showViewIdInTree", false, "Show View Id in Project Tree", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showViewIdInProjectTree );
CAF_PDM_InitField( &m_showTestToolbar, "showTestToolbar", false, "Enable Test Toolbar", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showTestToolbar );
CAF_PDM_InitField( &m_includeFractureDebugInfoFile,
"includeFractureDebugInfoFile",
false,
"Include Fracture Debug Info for Completion Export",
"",
"",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_includeFractureDebugInfoFile );
CAF_PDM_InitField( &m_showLegendBackground, "showLegendBackground", true, "Show Box around Legends", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showLegendBackground );
@ -240,10 +201,6 @@ RiaPreferences::RiaPreferences()
CAF_PDM_InitField( &loadAndShowSoil, "loadAndShowSoil", true, "Load and Show SOIL", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &loadAndShowSoil );
CAF_PDM_InitFieldNoDefault( &m_holoLensExportFolder, "holoLensExportFolder", "HoloLens Export Folder", "", "", "" );
m_holoLensExportFolder.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
m_holoLensExportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
CAF_PDM_InitField( &holoLensDisableCertificateVerification,
"holoLensDisableCertificateVerification",
false,
@ -261,15 +218,6 @@ RiaPreferences::RiaPreferences()
"",
"" );
CAF_PDM_InitField( &m_showProjectChangedDialog,
"showProjectChangedDialog",
true,
"Show 'Project has changed' dialog",
"",
"",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showProjectChangedDialog );
CAF_PDM_InitFieldNoDefault( &m_readerSettings, "readerSettings", "Reader Settings", "", "", "" );
m_readerSettings = new RifReaderSettings;
CAF_PDM_InitFieldNoDefault( &m_dateFormat, "dateFormat", "Date Format", "", "", "" );
@ -280,9 +228,6 @@ RiaPreferences::RiaPreferences()
m_timeFormat.uiCapability()->setUiEditorTypeName( caf::PdmUiComboBoxEditor::uiEditorTypeName() );
m_timeFormat = RiaQDateTimeTools::supportedTimeFormats().front();
CAF_PDM_InitField( &m_showProgressBar, "showProgressBar", true, "Show Progress Bar", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showProgressBar );
CAF_PDM_InitField( &m_useUndoRedo, "useUndoRedo", true, "Enable Undo/Redo for Property Editor changes", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useUndoRedo );
@ -309,8 +254,6 @@ RiaPreferences::RiaPreferences()
CAF_PDM_InitField( &m_openExportedPdfInViewer, "openExportedPdfInViewer", false, "Open Exported PDF in Viewer", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_openExportedPdfInViewer );
CAF_PDM_InitField( &m_gtestFilter, "gtestFilter", QString(), "Unit Test Filter (gtest)", "", "", "" );
CAF_PDM_InitField( &m_surfaceImportResamplingDistance,
"SurfaceImportResamplingDistance",
100.0,
@ -336,6 +279,9 @@ RiaPreferences::RiaPreferences()
CAF_PDM_InitFieldNoDefault( &m_geoMechPreferences, "geoMechPreferences", "geoMechPreferences", "", "", "" );
m_geoMechPreferences = new RiaPreferencesGeoMech;
CAF_PDM_InitFieldNoDefault( &m_systemPreferences, "systemPreferences", "systemPreferences", "", "", "" );
m_systemPreferences = new RiaPreferencesSystem;
}
//--------------------------------------------------------------------------------------------------
@ -375,14 +321,6 @@ void RiaPreferences::defineEditorAttribute( const caf::PdmFieldHandle* field,
}
}
if ( field == &m_holoLensExportFolder )
{
caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast<caf::PdmUiFilePathEditorAttribute*>( attribute );
if ( myAttr )
{
myAttr->m_selectDirectory = true;
}
}
if ( field == &defaultSceneFontSize || field == &defaultWellLabelFontSize || field == &defaultAnnotationFontSize ||
field == &defaultPlotFontSize )
{
@ -435,7 +373,6 @@ void RiaPreferences::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering&
caf::PdmUiGroup* otherGroup = uiOrdering.addNewGroup( "Other" );
otherGroup->add( &ssihubAddress );
otherGroup->add( &showLasCurveWithoutTvdWarning );
otherGroup->add( &holoLensDisableCertificateVerification );
otherGroup->add( &m_useUndoRedo );
}
@ -522,25 +459,7 @@ void RiaPreferences::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering&
}
else if ( RiaApplication::enableDevelopmentFeatures() && uiConfigName == RiaPreferences::tabNameSystem() )
{
{
caf::PdmUiGroup* group = uiOrdering.addNewGroup( "Project Tree" );
group->add( &m_appendClassNameToUiText );
group->add( &m_appendFieldKeywordToToolTipText );
group->add( &m_showViewIdInProjectTree );
}
{
caf::PdmUiGroup* group = uiOrdering.addNewGroup( "3D View" );
group->add( &m_useShaders );
group->add( &m_showHud );
}
uiOrdering.add( &m_gtestFilter );
uiOrdering.add( &m_showProgressBar );
uiOrdering.add( &m_showProjectChangedDialog );
uiOrdering.add( &m_showTestToolbar );
uiOrdering.add( &m_includeFractureDebugInfoFile );
uiOrdering.add( &m_holoLensExportFolder );
m_systemPreferences()->uiOrdering( uiConfigName, uiOrdering );
}
uiOrdering.skipRemainingFields( true );
@ -733,96 +652,6 @@ const RifReaderSettings* RiaPreferences::readerSettings() const
return m_readerSettings;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::appendClassNameToUiText() const
{
return RiaApplication::enableDevelopmentFeatures() && m_appendClassNameToUiText();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::appendFieldKeywordToToolTipText() const
{
return RiaApplication::enableDevelopmentFeatures() && m_appendFieldKeywordToToolTipText();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::showViewIdInProjectTree() const
{
return RiaApplication::enableDevelopmentFeatures() && m_showViewIdInProjectTree();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::showTestToolbar() const
{
return RiaApplication::enableDevelopmentFeatures() && m_showTestToolbar();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::includeFractureDebugInfoFile() const
{
return RiaApplication::enableDevelopmentFeatures() && m_includeFractureDebugInfoFile();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::showProjectChangedDialog() const
{
if ( !RiaApplication::enableDevelopmentFeatures() )
{
return true;
}
return m_showProjectChangedDialog();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferences::holoLensExportFolder() const
{
return m_holoLensExportFolder();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::useShaders() const
{
if ( !RiaApplication::enableDevelopmentFeatures() )
{
return true;
}
return m_useShaders();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::show3dInformation() const
{
return RiaApplication::enableDevelopmentFeatures() && m_showHud();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferences::gtestFilter() const
{
return m_gtestFilter();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -916,14 +745,6 @@ void RiaPreferences::setDefaultPlotTemplatePath( const QString& templatePath )
m_defaultPlotTemplate = templatePath;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferences::showProgressBar() const
{
return m_showProgressBar;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -1076,6 +897,14 @@ RiaPreferencesSummary* RiaPreferences::summaryPreferences() const
return m_summaryPreferences();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSystem* RiaPreferences::systemPreferences() const
{
return m_systemPreferences();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -42,6 +42,7 @@
class RifReaderSettings;
class RiaPreferencesSummary;
class RiaPreferencesGeoMech;
class RiaPreferencesSystem;
//--------------------------------------------------------------------------------------------------
///
@ -70,18 +71,7 @@ public:
const RifReaderSettings* readerSettings() const;
// Debug settings
bool appendClassNameToUiText() const;
bool appendFieldKeywordToToolTipText() const;
bool showViewIdInProjectTree() const;
bool showTestToolbar() const;
bool includeFractureDebugInfoFile() const;
bool showProjectChangedDialog() const;
QString holoLensExportFolder() const;
bool useShaders() const;
bool show3dInformation() const;
QString gtestFilter() const;
bool useUndoRedo() const;
bool useUndoRedo() const;
const QString& dateFormat() const;
const QString& timeFormat() const;
@ -93,7 +83,6 @@ public:
void appendPlotTemplateFolders( const QString& folder );
QString defaultPlotTemplateAbsolutePath() const;
void setDefaultPlotTemplatePath( const QString& templatePath );
bool showProgressBar() const;
bool openExportedPdfInViewer() const;
RiaDefines::ThemeEnum guiTheme() const;
@ -123,6 +112,7 @@ public:
RiaPreferencesGeoMech* geoMechPreferences() const;
RiaPreferencesSummary* summaryPreferences() const;
RiaPreferencesSystem* systemPreferences() const;
public:
caf::PdmField<bool> enableGrpcServer;
@ -139,7 +129,6 @@ public:
caf::PdmField<cvf::Color3f> defaultFaultGridLineColors;
caf::PdmField<cvf::Color3f> defaultViewerBackgroundColor;
caf::PdmField<cvf::Color3f> defaultWellLabelColor;
caf::PdmField<bool> showLasCurveWithoutTvdWarning;
caf::PdmField<FontSizeEnum> defaultSceneFontSize;
caf::PdmField<FontSizeEnum> defaultWellLabelFontSize;
@ -180,23 +169,10 @@ private:
private:
caf::PdmChildField<RifReaderSettings*> m_readerSettings;
caf::PdmField<bool> m_appendClassNameToUiText;
caf::PdmField<bool> m_appendFieldKeywordToToolTipText;
caf::PdmField<bool> m_showViewIdInProjectTree;
caf::PdmField<bool> m_useShaders;
caf::PdmField<bool> m_showHud;
caf::PdmField<bool> m_showProjectChangedDialog;
caf::PdmField<bool> m_showTestToolbar;
caf::PdmField<bool> m_includeFractureDebugInfoFile;
caf::PdmField<QString> m_holoLensExportFolder;
caf::PdmField<QString> m_dateFormat;
caf::PdmField<QString> m_timeFormat;
caf::PdmField<bool> m_showProgressBar;
caf::PdmField<QString> m_gtestFilter;
caf::PdmField<bool> m_useUndoRedo;
caf::PdmField<bool> m_useUndoRedo;
caf::PdmField<caf::AppEnum<RiaDefines::ThemeEnum>> m_guiTheme;
@ -228,6 +204,9 @@ private:
// Summary data
caf::PdmChildField<RiaPreferencesSummary*> m_summaryPreferences;
// System settings
caf::PdmChildField<RiaPreferencesSystem*> m_systemPreferences;
// 3d view
caf::PdmField<caf::AppEnum<RiaDefines::MeshModeType>> m_defaultMeshModeType;
caf::PdmField<caf::AppEnum<RiaDefines::RINavigationPolicy>> m_navigationPolicy;

View File

@ -64,6 +64,14 @@ RiaPreferencesGeoMech::RiaPreferencesGeoMech()
m_geomechFRADefaultAdvXML.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
m_geomechFRADefaultAdvXML.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
CAF_PDM_InitFieldNoDefault( &m_geomechWIADefaultXML, "geomechWIADefaultXML", "Default Parameter XML File", "", "", "" );
m_geomechWIADefaultXML.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
m_geomechWIADefaultXML.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
CAF_PDM_InitFieldNoDefault( &m_geomechWIACommand, "geomechWIACommand", "Command to run", "", "", "" );
m_geomechWIACommand.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
m_geomechWIACommand.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
CAF_PDM_InitField( &m_keepTemporaryFiles,
"keepTemporaryFile",
false,
@ -88,18 +96,22 @@ RiaPreferencesGeoMech* RiaPreferencesGeoMech::current()
void RiaPreferencesGeoMech::appendItems( caf::PdmUiOrdering& uiOrdering ) const
{
caf::PdmUiGroup* faultRAGroup = uiOrdering.addNewGroup( "Fault Reactivation Assessment" );
caf::PdmUiGroup* cmdGroup = faultRAGroup->addNewGroup( "Commands (without parameters)" );
caf::PdmUiGroup* cmdFRAGroup = faultRAGroup->addNewGroup( "Commands (without parameters)" );
cmdGroup->add( &m_geomechFRAPreprocCommand );
cmdGroup->add( &m_geomechFRAPostprocCommand );
cmdGroup->add( &m_geomechFRAMacrisCommand );
cmdFRAGroup->add( &m_geomechFRAPreprocCommand );
cmdFRAGroup->add( &m_geomechFRAPostprocCommand );
cmdFRAGroup->add( &m_geomechFRAMacrisCommand );
caf::PdmUiGroup* paramGroup = faultRAGroup->addNewGroup( "Parameters" );
paramGroup->add( &m_geomechFRADefaultBasicXML );
paramGroup->add( &m_geomechFRADefaultAdvXML );
caf::PdmUiGroup* paramFRAGroup = faultRAGroup->addNewGroup( "Parameters" );
paramFRAGroup->add( &m_geomechFRADefaultBasicXML );
paramFRAGroup->add( &m_geomechFRADefaultAdvXML );
caf::PdmUiGroup* settingsGroup = faultRAGroup->addNewGroup( "Settings" );
settingsGroup->add( &m_keepTemporaryFiles );
caf::PdmUiGroup* wellIAGroup = uiOrdering.addNewGroup( "Well Integrity Analysis" );
wellIAGroup->add( &m_geomechWIACommand );
wellIAGroup->add( &m_geomechWIADefaultXML );
caf::PdmUiGroup* commonGroup = uiOrdering.addNewGroup( "Common Settings" );
commonGroup->add( &m_keepTemporaryFiles );
}
//--------------------------------------------------------------------------------------------------
@ -149,6 +161,22 @@ QString RiaPreferencesGeoMech::geomechFRADefaultAdvXML() const
return m_geomechFRADefaultAdvXML;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferencesGeoMech::geomechWIACommand() const
{
return m_geomechWIACommand;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferencesGeoMech::geomechWIADefaultXML() const
{
return m_geomechWIADefaultXML;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -169,12 +197,31 @@ bool RiaPreferencesGeoMech::validateFRASettings() const
files << geomechFRADefaultBasicXML();
files << geomechFRADefaultAdvXML();
return filesExists( files );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesGeoMech::validateWIASettings() const
{
QStringList files;
files << geomechWIACommand();
files << geomechWIADefaultXML();
return filesExists( files );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesGeoMech::filesExists( QStringList& files ) const
{
for ( int i = 0; i < files.size(); i++ )
{
if ( files[i].isEmpty() ) return false;
QFile file( files[i] );
if ( !file.exists() ) return false;
}
return true;
}

View File

@ -35,7 +35,9 @@ public:
static RiaPreferencesGeoMech* current();
void appendItems( caf::PdmUiOrdering& uiOrdering ) const;
bool validateFRASettings() const;
bool validateWIASettings() const;
// geomech settings
QString geomechFRAPreprocCommand() const;
@ -43,16 +45,26 @@ public:
QString geomechFRAMacrisCommand() const;
QString geomechFRADefaultBasicXML() const;
QString geomechFRADefaultAdvXML() const;
bool keepTemporaryFiles() const;
QString geomechWIADefaultXML() const;
QString geomechWIACommand() const;
bool keepTemporaryFiles() const;
protected:
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
private:
bool filesExists( QStringList& filelist ) const;
caf::PdmField<QString> m_geomechFRAPreprocCommand;
caf::PdmField<QString> m_geomechFRAPostprocCommand;
caf::PdmField<QString> m_geomechFRAMacrisCommand;
caf::PdmField<QString> m_geomechFRADefaultBasicXML;
caf::PdmField<QString> m_geomechFRADefaultAdvXML;
caf::PdmField<bool> m_keepTemporaryFiles;
caf::PdmField<QString> m_geomechWIADefaultXML;
caf::PdmField<QString> m_geomechWIACommand;
caf::PdmField<bool> m_keepTemporaryFiles;
};

View File

@ -52,8 +52,8 @@ void RiaPreferencesSummary::SummaryReaderModeType::setUp()
{
addItem( RiaPreferencesSummary::SummaryReaderMode::LIBECL, "LIBECL", "UNSMRY (libecl)" );
addItem( RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON, "HDF5_OPM_COMMON", "h5 (HDF5)" );
addItem( RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON, "OPM_COMMON", "LODSMRY (opm-common)" );
setDefault( RiaPreferencesSummary::SummaryReaderMode::HDF5_OPM_COMMON );
addItem( RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON, "OPM_COMMON", "ESMRY (opm-common)" );
setDefault( RiaPreferencesSummary::SummaryReaderMode::OPM_COMMON );
}
} // namespace caf
@ -110,23 +110,23 @@ RiaPreferencesSummary::RiaPreferencesSummary()
"Semicolon separated list of filters used to create curves in new summary plots",
"" );
CAF_PDM_InitField( &m_createOptimizedSummaryDataFile,
"createOptimizedSummaryDataFile",
false,
"Create LODSMRY Summary Files",
"",
"If not present, create summary file with extension '*.LODSMRY'",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_createOptimizedSummaryDataFile );
CAF_PDM_InitField( &m_useOptimizedSummaryDataFile,
"useOptimizedSummaryDataFile",
CAF_PDM_InitField( &m_createEnhancedSummaryDataFile,
"createEnhancedSummaryDataFile",
true,
"Use LODSMRY Summary Files",
"Create ESMRY Summary Files",
"",
"If present, import summary files with extension '*.LODSMRY'",
"If not present, create summary file with extension '*.ESMRY'",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useOptimizedSummaryDataFile );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_createEnhancedSummaryDataFile );
CAF_PDM_InitField( &m_useEnhancedSummaryDataFile,
"useEnhancedSummaryDataFile",
true,
"Use ESMRY Files",
"",
"If present, import summary files with extension '*.ESMRY'",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useEnhancedSummaryDataFile );
CAF_PDM_InitField( &m_createH5SummaryDataFile,
"createH5SummaryDataFile",
@ -194,17 +194,17 @@ RiaPreferencesSummary::SummaryReaderMode RiaPreferencesSummary::summaryDataReade
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::useOptimizedSummaryDataFiles() const
bool RiaPreferencesSummary::useEnhancedSummaryDataFiles() const
{
return m_useOptimizedSummaryDataFile();
return m_useEnhancedSummaryDataFile();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSummary::createOptimizedSummaryDataFiles() const
bool RiaPreferencesSummary::createEnhancedSummaryDataFiles() const
{
return m_createOptimizedSummaryDataFile();
return m_createEnhancedSummaryDataFile();
}
//--------------------------------------------------------------------------------------------------
@ -341,8 +341,8 @@ void RiaPreferencesSummary::defineUiOrdering( QString uiConfigName, caf::PdmUiOr
if ( m_summaryReader == SummaryReaderMode::OPM_COMMON )
{
uiOrdering.add( &m_useOptimizedSummaryDataFile );
uiOrdering.add( &m_createOptimizedSummaryDataFile );
uiOrdering.add( &m_useEnhancedSummaryDataFile );
uiOrdering.add( &m_createEnhancedSummaryDataFile );
}
else if ( m_summaryReader == SummaryReaderMode::HDF5_OPM_COMMON )
{

View File

@ -60,8 +60,8 @@ public:
static RiaPreferencesSummary* current();
SummaryReaderMode summaryDataReader() const;
bool useOptimizedSummaryDataFiles() const;
bool createOptimizedSummaryDataFiles() const;
bool useEnhancedSummaryDataFiles() const;
bool createEnhancedSummaryDataFiles() const;
bool createH5SummaryDataFiles() const;
bool checkH5SummaryDataTimeStamp() const;
@ -98,8 +98,8 @@ private:
caf::PdmField<bool> m_showSummaryTimeAsLongString;
caf::PdmField<bool> m_useMultipleThreadsWhenLoadingSummaryCases;
caf::PdmField<bool> m_createOptimizedSummaryDataFile;
caf::PdmField<bool> m_useOptimizedSummaryDataFile;
caf::PdmField<bool> m_createEnhancedSummaryDataFile;
caf::PdmField<bool> m_useEnhancedSummaryDataFile;
caf::PdmField<bool> m_createH5SummaryDataFile;
caf::PdmField<bool> m_checkH5FileTimeStamp;

View File

@ -0,0 +1,274 @@
/////////////////////////////////////////////////////////////////////////////////
//
// 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 "RiaApplication.h"
#include "RiaPreferences.h"
#include "RiaPreferencesSystem.h"
#include "cafPdmUiCheckBoxEditor.h"
#include "cafPdmUiFilePathEditor.h"
namespace caf
{
template <>
void RiaPreferencesSystem::EclipseTextFileReaderModeType::setUp()
{
addItem( RiaPreferencesSystem::EclipseTextFileReaderMode::MEMORY_MAPPED_FILE,
"MEMORY_MAPPED_FILE",
"Memory Mapped File Import" );
addItem( RiaPreferencesSystem::EclipseTextFileReaderMode::FILE, "FILE", "Default File Import" );
setDefault( RiaPreferencesSystem::EclipseTextFileReaderMode::FILE );
}
} // namespace caf
CAF_PDM_SOURCE_INIT( RiaPreferencesSystem, "RiaPreferencesSystem" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSystem::RiaPreferencesSystem()
{
CAF_PDM_InitField( &m_useShaders, "useShaders", true, "Use Shaders", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useShaders );
CAF_PDM_InitField( &m_showHud, "showHud", false, "Show 3D Information", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showHud );
CAF_PDM_InitField( &m_appendClassNameToUiText, "appendClassNameToUiText", false, "Show Class Names", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_appendClassNameToUiText );
CAF_PDM_InitField( &m_appendFieldKeywordToToolTipText,
"appendFieldKeywordToToolTipText",
false,
"Show Field Keyword in ToolTip",
"",
"",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_appendFieldKeywordToToolTipText );
CAF_PDM_InitField( &m_showViewIdInProjectTree, "showViewIdInTree", false, "Show View Id in Project Tree", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showViewIdInProjectTree );
CAF_PDM_InitField( &m_showTestToolbar, "showTestToolbar", false, "Enable Test Toolbar", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showTestToolbar );
CAF_PDM_InitField( &m_includeFractureDebugInfoFile,
"includeFractureDebugInfoFile",
false,
"Include Fracture Debug Info for Completion Export",
"",
"",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_includeFractureDebugInfoFile );
CAF_PDM_InitFieldNoDefault( &m_holoLensExportFolder, "holoLensExportFolder", "HoloLens Export Folder", "", "", "" );
m_holoLensExportFolder.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
m_holoLensExportFolder.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() );
CAF_PDM_InitField( &m_showProjectChangedDialog,
"showProjectChangedDialog",
true,
"Show 'Project has changed' dialog",
"",
"",
"" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showProjectChangedDialog );
CAF_PDM_InitField( &m_showProgressBar, "showProgressBar", true, "Show Progress Bar", "", "", "" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showProgressBar );
CAF_PDM_InitField( &m_gtestFilter, "gtestFilter", QString(), "Unit Test Filter (gtest)", "", "", "" );
CAF_PDM_InitField( &m_eclipseReaderMode,
"eclipseReaderMode",
EclipseTextFileReaderModeType( RiaPreferencesSystem::EclipseTextFileReaderMode::FILE ),
"Eclipse Text File Import mode (GRDECL)",
"",
"",
"" );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSystem* RiaPreferencesSystem::current()
{
return RiaApplication::instance()->preferences()->systemPreferences();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::appendClassNameToUiText() const
{
return RiaApplication::enableDevelopmentFeatures() && m_appendClassNameToUiText();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::appendFieldKeywordToToolTipText() const
{
return RiaApplication::enableDevelopmentFeatures() && m_appendFieldKeywordToToolTipText();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::showViewIdInProjectTree() const
{
return RiaApplication::enableDevelopmentFeatures() && m_showViewIdInProjectTree();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::showTestToolbar() const
{
return RiaApplication::enableDevelopmentFeatures() && m_showTestToolbar();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::includeFractureDebugInfoFile() const
{
return RiaApplication::enableDevelopmentFeatures() && m_includeFractureDebugInfoFile();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::showProjectChangedDialog() const
{
if ( !RiaApplication::enableDevelopmentFeatures() )
{
return true;
}
return m_showProjectChangedDialog();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferencesSystem::holoLensExportFolder() const
{
return m_holoLensExportFolder();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::useShaders() const
{
if ( !RiaApplication::enableDevelopmentFeatures() )
{
return true;
}
return m_useShaders();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::show3dInformation() const
{
return RiaApplication::enableDevelopmentFeatures() && m_showHud();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferencesSystem::gtestFilter() const
{
return m_gtestFilter();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaPreferencesSystem::showProgressBar() const
{
return m_showProgressBar();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaPreferencesSystem::EclipseTextFileReaderMode RiaPreferencesSystem::eclipseTextFileReaderMode() const
{
return m_eclipseReaderMode();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSystem::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
{
caf::PdmUiGroup* group = uiOrdering.addNewGroup( "Project Tree" );
group->add( &m_appendClassNameToUiText );
group->add( &m_appendFieldKeywordToToolTipText );
group->add( &m_showViewIdInProjectTree );
}
{
caf::PdmUiGroup* group = uiOrdering.addNewGroup( "3D View" );
group->add( &m_useShaders );
group->add( &m_showHud );
}
uiOrdering.add( &m_gtestFilter );
uiOrdering.add( &m_showProjectChangedDialog );
uiOrdering.add( &m_showTestToolbar );
uiOrdering.add( &m_includeFractureDebugInfoFile );
uiOrdering.add( &m_holoLensExportFolder );
uiOrdering.add( &m_showProgressBar );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo>
RiaPreferencesSystem::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly )
{
QList<caf::PdmOptionItemInfo> options;
*useOptionsOnly = true;
return options;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaPreferencesSystem::defineEditorAttribute( const caf::PdmFieldHandle* field,
QString uiConfigName,
caf::PdmUiEditorAttribute* attribute )
{
if ( field == &m_holoLensExportFolder )
{
caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast<caf::PdmUiFilePathEditorAttribute*>( attribute );
if ( myAttr )
{
myAttr->m_selectDirectory = true;
}
}
}

View File

@ -0,0 +1,84 @@
/////////////////////////////////////////////////////////////////////////////////
//
// 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 "cafAppEnum.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
class RiaPreferencesSystem : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
enum class EclipseTextFileReaderMode
{
MEMORY_MAPPED_FILE,
FILE,
};
using EclipseTextFileReaderModeType = caf::AppEnum<EclipseTextFileReaderMode>;
public:
RiaPreferencesSystem();
static RiaPreferencesSystem* current();
bool appendClassNameToUiText() const;
bool appendFieldKeywordToToolTipText() const;
bool showViewIdInProjectTree() const;
bool showTestToolbar() const;
bool includeFractureDebugInfoFile() const;
bool showProjectChangedDialog() const;
QString holoLensExportFolder() const;
bool useShaders() const;
bool show3dInformation() const;
QString gtestFilter() const;
bool showProgressBar() const;
EclipseTextFileReaderMode eclipseTextFileReaderMode() const;
protected:
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
bool* useOptionsOnly ) override;
void defineEditorAttribute( const caf::PdmFieldHandle* field,
QString uiConfigName,
caf::PdmUiEditorAttribute* attribute ) override;
private:
caf::PdmField<bool> m_appendClassNameToUiText;
caf::PdmField<bool> m_appendFieldKeywordToToolTipText;
caf::PdmField<bool> m_showViewIdInProjectTree;
caf::PdmField<bool> m_useShaders;
caf::PdmField<bool> m_showHud;
caf::PdmField<bool> m_showProjectChangedDialog;
caf::PdmField<bool> m_showTestToolbar;
caf::PdmField<bool> m_includeFractureDebugInfoFile;
caf::PdmField<QString> m_holoLensExportFolder;
caf::PdmField<bool> m_showProgressBar;
caf::PdmField<QString> m_gtestFilter;
caf::PdmField<EclipseTextFileReaderModeType> m_eclipseReaderMode;
};

View File

@ -71,6 +71,19 @@ bool RiaResultNames::isPerCellFaceResult( const QString& resultName )
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaResultNames::isLogarithmicResult( const QString& resultName )
{
QStringList subStringsToMatch{ "TRAN", "MULT", "PERM" };
for ( const auto& s : subStringsToMatch )
if ( resultName.contains( s, Qt::CaseInsensitive ) ) return true;
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -313,6 +326,30 @@ QString RiaResultNames::formationAllanResultName()
return "Formation Allan";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaResultNames::indexIResultName()
{
return "INDEX_I";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaResultNames::indexJResultName()
{
return "INDEX_J";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaResultNames::indexKResultName()
{
return "INDEX_K";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -27,6 +27,7 @@
namespace RiaResultNames
{
bool isPerCellFaceResult( const QString& resultName );
bool isLogarithmicResult( const QString& resultName );
QString undefinedResultName();
QString undefinedGridFaultName();
@ -64,6 +65,10 @@ QString faultReactAssessmentPrefix();
QString completionTypeResultName();
QString indexIResultName();
QString indexJResultName();
QString indexKResultName();
// Well path derived results
QString wbsAzimuthResult();
QString wbsInclinationResult();

View File

@ -57,6 +57,7 @@ void AppEnum<RiaDefines::CurveProperty>::setUp()
addItem( RiaDefines::CurveProperty::POROSITY_UNSCALED, "POROSITY_UNSCALED", "Porosity (Unscaled)" );
addItem( RiaDefines::CurveProperty::EQLNUM, "EQLNUM", "Equilibration Number" );
addItem( RiaDefines::CurveProperty::PRESSURE_GRADIENT, "PRESSURE_GRADIENT", "Pressure Gradient" );
addItem( RiaDefines::CurveProperty::FORMATIONS, "FORMATIONS", "Formations" );
setDefault( RiaDefines::CurveProperty::UNDEFINED );
}
@ -71,7 +72,7 @@ double defaultPorosity()
double defaultPermeability()
{
return 1.0e-5;
return 1.0e-4;
}
double zeroReplacementForLogarithmicPlot()

View File

@ -52,6 +52,7 @@ enum class CurveProperty
POROSITY_UNSCALED,
EQLNUM,
PRESSURE_GRADIENT,
FORMATIONS
};
double defaultPorosity();

View File

@ -37,7 +37,7 @@ RiaSummaryCurveDefinition::RiaSummaryCurveDefinition()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaSummaryCurveDefinition::RiaSummaryCurveDefinition( gsl::not_null<RimSummaryCase*> summaryCase,
RiaSummaryCurveDefinition::RiaSummaryCurveDefinition( RimSummaryCase* summaryCase,
const RifEclipseSummaryAddress& summaryAddress,
bool isEnsembleCurve )
: m_summaryCase( summaryCase )
@ -55,8 +55,8 @@ RiaSummaryCurveDefinition::RiaSummaryCurveDefinition( gsl::not_null<RimSummaryCa
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaSummaryCurveDefinition::RiaSummaryCurveDefinition( gsl::not_null<RimSummaryCaseCollection*> ensemble,
const RifEclipseSummaryAddress& summaryAddress )
RiaSummaryCurveDefinition::RiaSummaryCurveDefinition( RimSummaryCaseCollection* ensemble,
const RifEclipseSummaryAddress& summaryAddress )
: m_summaryCase( nullptr )
, m_summaryAddress( summaryAddress )
, m_ensemble( ensemble )

View File

@ -37,11 +37,10 @@ class RiaSummaryCurveDefinition
{
public:
RiaSummaryCurveDefinition();
explicit RiaSummaryCurveDefinition( gsl::not_null<RimSummaryCase*> summaryCase,
explicit RiaSummaryCurveDefinition( RimSummaryCase* summaryCase,
const RifEclipseSummaryAddress& summaryAddress,
bool isEnsembleCurve );
explicit RiaSummaryCurveDefinition( gsl::not_null<RimSummaryCaseCollection*> ensemble,
const RifEclipseSummaryAddress& summaryAddress );
explicit RiaSummaryCurveDefinition( RimSummaryCaseCollection* ensemble, const RifEclipseSummaryAddress& summaryAddress );
RimSummaryCase* summaryCase() const;
const RifEclipseSummaryAddress& summaryAddress() const;

View File

@ -1,106 +1,106 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaArgumentParser.h
${CMAKE_CURRENT_LIST_DIR}/RiaDateStringParser.h
${CMAKE_CURRENT_LIST_DIR}/RiaColorTables.h
${CMAKE_CURRENT_LIST_DIR}/RiaColorTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseUnitTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaImageCompareReporter.h
${CMAKE_CURRENT_LIST_DIR}/RiaImageFileCompare.h
${CMAKE_CURRENT_LIST_DIR}/RiaImageTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaLogging.h
${CMAKE_CURRENT_LIST_DIR}/RiaProjectModifier.h
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTest.h
${CMAKE_CURRENT_LIST_DIR}/RiaImportEclipseCaseTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaQDateTimeTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellNameComparer.h
${CMAKE_CURRENT_LIST_DIR}/RiaStdStringTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaInterpolationTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveAnalyzer.h
${CMAKE_CURRENT_LIST_DIR}/RiaSimWellBranchTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaProjectFileVersionTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaStringEncodingTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaTextStringTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaTextFileCompare.h
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTestRunner.h
${CMAKE_CURRENT_LIST_DIR}/RiaExtractionTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaFilePathTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaCurveMerger.h
${CMAKE_CURRENT_LIST_DIR}/RiaCurveMerger.inl
${CMAKE_CURRENT_LIST_DIR}/RiaCurveDataTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaTimeHistoryCurveResampler.h
${CMAKE_CURRENT_LIST_DIR}/RiaStatisticsTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaOffshoreSphericalCoords.h
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedMeanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaMedianCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedMeanCalculator.inl
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedGeometricMeanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedHarmonicMeanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaOptionItemFactory.h
${CMAKE_CURRENT_LIST_DIR}/RiaGitDiff.h
${CMAKE_CURRENT_LIST_DIR}/RiaCellDividingTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaFieldHandleTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaBoundingBoxTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogUnitTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogUnitTools.inl
${CMAKE_CURRENT_LIST_DIR}/RiaTimeTTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaValidRegExpValidator.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaArgumentParser.h
${CMAKE_CURRENT_LIST_DIR}/RiaDateStringParser.h
${CMAKE_CURRENT_LIST_DIR}/RiaColorTables.h
${CMAKE_CURRENT_LIST_DIR}/RiaColorTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseUnitTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaImageCompareReporter.h
${CMAKE_CURRENT_LIST_DIR}/RiaImageFileCompare.h
${CMAKE_CURRENT_LIST_DIR}/RiaImageTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaLogging.h
${CMAKE_CURRENT_LIST_DIR}/RiaProjectModifier.h
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTest.h
${CMAKE_CURRENT_LIST_DIR}/RiaImportEclipseCaseTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaQDateTimeTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellNameComparer.h
${CMAKE_CURRENT_LIST_DIR}/RiaStdStringTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaInterpolationTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveAnalyzer.h
${CMAKE_CURRENT_LIST_DIR}/RiaSimWellBranchTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaProjectFileVersionTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaStringEncodingTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaTextStringTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaTextFileCompare.h
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTestRunner.h
${CMAKE_CURRENT_LIST_DIR}/RiaExtractionTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaFilePathTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaCurveMerger.h
${CMAKE_CURRENT_LIST_DIR}/RiaCurveMerger.inl
${CMAKE_CURRENT_LIST_DIR}/RiaCurveDataTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogCurveMerger.h
${CMAKE_CURRENT_LIST_DIR}/RiaTimeHistoryCurveResampler.h
${CMAKE_CURRENT_LIST_DIR}/RiaStatisticsTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaOffshoreSphericalCoords.h
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedMeanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaMedianCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedMeanCalculator.inl
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedGeometricMeanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedHarmonicMeanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaOptionItemFactory.h
${CMAKE_CURRENT_LIST_DIR}/RiaGitDiff.h
${CMAKE_CURRENT_LIST_DIR}/RiaCellDividingTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaFieldHandleTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaBoundingBoxTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogUnitTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogUnitTools.inl
${CMAKE_CURRENT_LIST_DIR}/RiaTimeTTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaValidRegExpValidator.h
${CMAKE_CURRENT_LIST_DIR}/RiaVec3Tools.h
${CMAKE_CURRENT_LIST_DIR}/RiaEnsembleNameTools.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaArgumentParser.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaDateStringParser.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaColorTables.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaColorTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseUnitTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImageCompareReporter.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImageFileCompare.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImageTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaLogging.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaProjectModifier.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTest.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImportEclipseCaseTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaQDateTimeTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWellNameComparer.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStdStringTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaInterpolationTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveAnalyzer.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSimWellBranchTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaProjectFileVersionTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStringEncodingTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTextStringTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTextFileCompare.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTestRunner.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaExtractionTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFilePathTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCurveMerger.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCurveDataTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTimeHistoryCurveResampler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStatisticsTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedGeometricMeanCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedHarmonicMeanCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaOptionItemFactory.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaGitDiff.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCellDividingTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFieldHandleTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaBoundingBoxTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTimeTTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaValidRegExpValidator.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaArgumentParser.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaDateStringParser.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaColorTables.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaColorTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaEclipseUnitTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImageCompareReporter.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImageFileCompare.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImageTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaLogging.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaProjectModifier.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTest.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaImportEclipseCaseTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaQDateTimeTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWellNameComparer.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStdStringTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaInterpolationTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryCurveAnalyzer.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSimWellBranchTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaProjectFileVersionTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStringEncodingTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTextStringTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTextFileCompare.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaRegressionTestRunner.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaExtractionTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFilePathTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCurveMerger.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCurveDataTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogCurveMerger.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTimeHistoryCurveResampler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaStatisticsTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedGeometricMeanCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWeightedHarmonicMeanCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaOptionItemFactory.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaGitDiff.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCellDividingTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFieldHandleTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaBoundingBoxTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTimeTTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaValidRegExpValidator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaEnsembleNameTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaVec3Tools.cpp
)
list(APPEND CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
set(QT_MOC_HEADERS ${QT_MOC_HEADERS})
source_group(
"Application\\Tools"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
list(APPEND CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
set (QT_MOC_HEADERS
${QT_MOC_HEADERS}
)
source_group( "Application\\Tools" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -142,6 +142,7 @@ bool RiaArgumentParser::parseArguments( cvf::ProgramOptions* progOpt )
#endif
progOpt->registerOption( "generate", "[<outputFile>]", "Generate code or documentation", cvf::ProgramOptions::SINGLE_VALUE );
progOpt->registerOption( "ignoreArgs", "", "System command. Ignore all arguments. Mostly for testing purposes" );
progOpt->registerOption( "version", "", "Display the application version string" );
progOpt->setOptionPrefix( cvf::ProgramOptions::DOUBLE_DASH );

View File

@ -557,6 +557,22 @@ RiaColorTables::WellPathComponentColors RiaColorTables::wellPathComponentColors(
{ RiaDefines::WellPathComponentType::UNDEFINED_COMPONENT, cvf::Color3::MAGENTA } };
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const caf::ColorTable& RiaColorTables::structuralUncertaintyColors()
{
static std::vector<cvf::Color3ub> colors{
cvf::Color3ub( 255, 183, 198 ), // Large band
cvf::Color3ub( 255, 113, 142 ), // Narrow band
cvf::Color3ub( 255, 18, 67 ), // Mean curve
};
static caf::ColorTable colorTable = caf::ColorTable( colors );
return colorTable;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -67,6 +67,9 @@ public:
static WellPathComponentColors wellPathComponentColors();
// Colors used in WebViz
static const caf::ColorTable& structuralUncertaintyColors();
// Default 3d View colors
static cvf::Color3f defaultGridLineColor();
static cvf::Color3f defaultFaultLineColor();

View File

@ -57,6 +57,9 @@ public:
// See ExpressionParserImpl::assignVector()
std::vector<double>& interpolatedYValuesForAllXValues( size_t curveIdx );
static void removeValuesForPartialCurves( std::set<XValueType, XComparator>& unionOfXValues,
const std::vector<std::pair<XValueType, XValueType>>& originalXBounds );
public:
// Helper methods, available as public to be able to access from unit tests

View File

@ -194,33 +194,40 @@ void RiaCurveMerger<XValueType>::computeUnionOfXValues( bool includeValuesForPar
originalXBounds.push_back( std::make_pair( *( minmax_it.first ), *( minmax_it.second ) ) );
}
if ( !includeValuesForPartialCurves )
{
for ( auto it = unionOfXValues.begin(); it != unionOfXValues.end(); )
{
bool outsideBounds = false;
for ( const auto& curveXBounds : originalXBounds )
{
if ( *it < curveXBounds.first || *it > curveXBounds.second )
{
outsideBounds = true;
break;
}
}
if ( outsideBounds )
{
it = unionOfXValues.erase( it );
}
else
{
++it;
}
}
}
if ( !includeValuesForPartialCurves ) removeValuesForPartialCurves( unionOfXValues, originalXBounds );
m_allXValues = std::vector<XValueType>( unionOfXValues.begin(), unionOfXValues.end() );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
template <typename XValueType>
void RiaCurveMerger<XValueType>::removeValuesForPartialCurves( std::set<XValueType, XComparator>& unionOfXValues,
const std::vector<std::pair<XValueType, XValueType>>& originalXBounds )
{
for ( auto it = unionOfXValues.begin(); it != unionOfXValues.end(); )
{
bool outsideBounds = false;
for ( const auto& curveXBounds : originalXBounds )
{
if ( *it < curveXBounds.first || *it > curveXBounds.second )
{
outsideBounds = true;
break;
}
}
if ( outsideBounds )
{
it = unionOfXValues.erase( it );
}
else
{
++it;
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -0,0 +1,287 @@
/////////////////////////////////////////////////////////////////////////////////
//
// 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 "RiaEnsembleNameTools.h"
#include "RiaFilePathTools.h"
#include "RiaTextStringTools.h"
#include "RimCaseDisplayNameTools.h"
#include "cafAppEnum.h"
#include <QFileInfo>
#include <QRegularExpression>
template <>
void caf::AppEnum<RiaEnsembleNameTools::EnsembleGroupingMode>::setUp()
{
addItem( RiaEnsembleNameTools::EnsembleGroupingMode::FMU_FOLDER_STRUCTURE, "FMU_FOLDER_MODE", "Sub Folder" );
addItem( RiaEnsembleNameTools::EnsembleGroupingMode::EVEREST_FOLDER_STRUCTURE, "EVEREST_FOLDER_MODE", "Main Folder" );
addItem( RiaEnsembleNameTools::EnsembleGroupingMode::NONE, "None", "None" );
setDefault( RiaEnsembleNameTools::EnsembleGroupingMode::FMU_FOLDER_STRUCTURE );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaEnsembleNameTools::findSuitableEnsembleName( const QStringList& fileNames, EnsembleGroupingMode folderLevel )
{
if ( folderLevel == EnsembleGroupingMode::EVEREST_FOLDER_STRUCTURE )
{
QString commonRoot = RiaTextStringTools::commonRoot( fileNames );
commonRoot = commonRoot.left( commonRoot.lastIndexOf( '/' ) );
QStringList rootComponents = RiaFilePathTools::splitPathIntoComponents( commonRoot );
if ( !rootComponents.empty() )
{
return rootComponents.back();
}
}
std::vector<QStringList> componentsForAllFilePaths;
for ( const auto& filePath : fileNames )
{
QStringList components = RiaFilePathTools::splitPathIntoComponents( filePath );
componentsForAllFilePaths.push_back( components );
}
QStringList iterations = findUniqueEnsembleNames( fileNames, componentsForAllFilePaths, folderLevel );
if ( iterations.size() == 1u )
{
return iterations.front();
}
if ( !iterations.empty() )
{
return QString( "Multiple iterations: %1" ).arg( iterations.join( ", " ) );
}
QString root = RiaFilePathTools::commonRootOfFileNames( fileNames );
QRegularExpression trimRe( "[^a-zA-Z0-9]+$" );
QString trimmedRoot = root.replace( trimRe, "" );
if ( trimmedRoot.length() >= 4 )
{
return trimmedRoot;
}
return "Ensemble";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<QStringList> RiaEnsembleNameTools::groupFilesByEnsemble( const QStringList& fileNames,
EnsembleGroupingMode groupingMode )
{
std::vector<QStringList> componentsForAllFilePaths;
for ( const auto& filePath : fileNames )
{
QStringList components = RiaFilePathTools::splitPathIntoComponents( filePath );
componentsForAllFilePaths.push_back( components );
}
QStringList iterations = findUniqueEnsembleNames( fileNames, componentsForAllFilePaths, groupingMode );
if ( iterations.size() <= 1 )
{
// All the files are in the same ensemble
return { fileNames };
}
std::vector<QStringList> groupedByIteration;
for ( const auto& iteration : iterations )
{
QStringList fileNamesFromIteration;
for ( int i = 0; i < fileNames.size(); i++ )
{
auto components = componentsForAllFilePaths[i];
bool foundMatch = false;
for ( const auto& component : components )
{
if ( component == iteration ) foundMatch = true;
}
if ( foundMatch )
{
fileNamesFromIteration << fileNames[i];
}
}
groupedByIteration.push_back( fileNamesFromIteration );
}
return groupedByIteration;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RiaEnsembleNameTools::findUniqueEnsembleNames( const QStringList& fileNames,
const std::vector<QStringList>& fileNameComponents,
EnsembleGroupingMode groupingMode )
{
QStringList iterations;
if ( groupingMode == EnsembleGroupingMode::EVEREST_FOLDER_STRUCTURE )
{
QString commonRoot = RiaTextStringTools::commonRoot( fileNames );
QStringList rootComponents = RiaFilePathTools::splitPathIntoComponents( commonRoot );
auto commonComponentCount = rootComponents.size();
// Example:
// /myPath/batch_01/realization-1/....
// /myPath/batch_01/realization-2/....
// /myPath/batch_01/realization-N/....
// /myPath/batch_02/realization-1/....
// /myPath/batch_02/realization-2/....
// /myPath/batch_02/realization-N/....
// commonRoot will return /myPath/batch_
// ensembleNameSet will contain [batch_01, batch_02]
std::set<QString> ensembleNameSet;
for ( const auto& componentsForFile : fileNameComponents )
{
if ( commonComponentCount - 1 < componentsForFile.size() )
{
ensembleNameSet.insert( componentsForFile[commonComponentCount - 1] );
}
}
for ( const auto& ensembleName : ensembleNameSet )
{
iterations.push_back( ensembleName );
}
}
else if ( groupingMode == EnsembleGroupingMode::FMU_FOLDER_STRUCTURE )
{
// Find list of all folders inside a folder matching realization-*
QRegularExpression realizationRe( "realization\\-\\d+" );
for ( const auto& fileComponents : fileNameComponents )
{
QString lastComponent = "";
for ( auto it = fileComponents.rbegin(); it != fileComponents.rend(); ++it )
{
if ( realizationRe.match( *it ).hasMatch() )
{
iterations.push_back( lastComponent );
}
lastComponent = *it;
}
}
}
iterations.removeDuplicates();
return iterations;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaEnsembleNameTools::findCommonBaseName( const QStringList& fileNames )
{
QStringList baseNames;
for ( const auto& f : fileNames )
{
QFileInfo fi( f );
baseNames.push_back( fi.baseName() );
}
if ( baseNames.isEmpty() ) return "Empty";
auto firstName = baseNames.front();
for ( int i = 0; i < firstName.size(); i++ )
{
auto candidate = firstName.left( firstName.size() - i );
bool identicalNames = true;
for ( const auto& baseName : baseNames )
{
auto str = baseName.left( firstName.size() - i );
if ( candidate != str ) identicalNames = false;
}
if ( identicalNames )
{
return candidate;
}
}
return "Mixed Items";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaEnsembleNameTools::uniqueShortName( const QString& sourceFileName,
const QStringList& allFileNames,
const QString& ensembleCaseName )
{
std::map<QString, QStringList> keyFileComponentsForAllFiles =
RiaFilePathTools::keyPathComponentsForEachFilePath( allFileNames );
return uniqueShortNameFromComponents( sourceFileName, keyFileComponentsForAllFiles, ensembleCaseName );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaEnsembleNameTools::uniqueShortNameFromComponents( const QString& sourceFileName,
const std::map<QString, QStringList>& keyFileComponentsForAllFiles,
const QString& ensembleCaseName )
{
QRegularExpression trimRe( "^[^a-zA-Z0-9]+" );
auto modifyableMap( keyFileComponentsForAllFiles );
QStringList keyFileComponents = modifyableMap[sourceFileName];
if ( keyFileComponents.empty() ) return "Unnamed";
if ( !ensembleCaseName.isEmpty() )
{
for ( auto& component : keyFileComponents )
{
component = component.replace( ensembleCaseName, "" );
component = component.replace( trimRe, "" );
}
}
QStringList shortNameComponents;
QRegularExpression numberRe( "[0-9]+" );
for ( auto keyComponent : keyFileComponents )
{
QStringList subComponents;
QString numberGroup = numberRe.match( keyComponent ).captured();
if ( !numberGroup.isEmpty() )
{
keyComponent = keyComponent.replace( numberGroup, "" );
QString stem = keyComponent.left( RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH );
if ( !stem.isEmpty() ) subComponents.push_back( stem );
subComponents.push_back( numberGroup );
}
else
{
subComponents.push_back( keyComponent.left( RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH ) );
}
shortNameComponents.push_back( subComponents.join( "-" ) );
}
return shortNameComponents.join( "," );
}

View File

@ -0,0 +1,56 @@
/////////////////////////////////////////////////////////////////////////////////
//
// 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 <QString>
#include <map>
#include <vector>
//==================================================================================================
//
//==================================================================================================
class RiaEnsembleNameTools
{
public:
enum class EnsembleGroupingMode
{
FMU_FOLDER_STRUCTURE,
EVEREST_FOLDER_STRUCTURE,
NONE
};
public:
static QString findSuitableEnsembleName( const QStringList& fileNames, EnsembleGroupingMode groupingMode );
static QString findCommonBaseName( const QStringList& fileNames );
static QString uniqueShortName( const QString& sourceFileName,
const QStringList& allFileNames,
const QString& ensembleCaseName = QString() );
static QString uniqueShortNameFromComponents( const QString& sourceFileName,
const std::map<QString, QStringList>& keyFileComponentsForAllFiles,
const QString& ensembleCaseName );
static std::vector<QStringList> groupFilesByEnsemble( const QStringList& fileNames, EnsembleGroupingMode groupingMode );
private:
static QStringList findUniqueEnsembleNames( const QStringList& fileNames,
const std::vector<QStringList>& fileNameComponents,
EnsembleGroupingMode groupingMode );
};

View File

@ -19,6 +19,8 @@
#include "RiaFieldHandleTools.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmChildField.h"
#include "cafPdmFieldHandle.h"
#include "cafPdmUiFieldHandle.h"
#include "cafPdmXmlFieldHandle.h"
@ -34,7 +36,11 @@ void RiaFieldhandleTools::disableWriteAndSetFieldHidden( caf::PdmFieldHandle* fi
if ( fieldHandle->uiCapability() )
{
fieldHandle->uiCapability()->setUiHidden( true );
if ( dynamic_cast<caf::PdmChildFieldHandle*>( fieldHandle ) ||
dynamic_cast<caf::PdmChildArrayFieldHandle*>( fieldHandle ) )
fieldHandle->uiCapability()->setUiTreeHidden( true );
else
fieldHandle->uiCapability()->setUiHidden( true );
}
if ( fieldHandle->xmlCapability() )

View File

@ -29,6 +29,7 @@
#include "RiaLogging.h"
#include "RifEclipseSummaryTools.h"
#include "RifReaderSettings.h"
#include "RifSummaryCaseRestartSelector.h"
#include "RigGridManager.h"
@ -69,16 +70,18 @@
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList& fileNames,
FileCaseIdMap* openedFilesOut,
bool noDialog )
bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList& fileNames,
bool createView,
FileCaseIdMap* openedFilesOut,
bool noDialog,
std::shared_ptr<RifReaderSettings> readerSettings )
{
RiaApplication* app = RiaApplication::instance();
RimProject* project = app->project();
// Get list of files to import
RifSummaryCaseRestartSelector selector;
if ( noDialog ) selector.showDialog( false );
if ( noDialog || !RiaGuiApplication::isRunning() ) selector.showDialog( false );
selector.determineFilesToImportFromGridFiles( fileNames );
std::vector<RifSummaryCaseFileResultInfo> summaryFileInfos = selector.summaryFileInfos();
@ -87,7 +90,7 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList& fil
// Import eclipse case files
for ( const QString& gridCaseFile : selector.gridCaseFiles() )
{
int caseId = RiaImportEclipseCaseTools::openEclipseCaseFromFile( gridCaseFile );
int caseId = RiaImportEclipseCaseTools::openEclipseCaseFromFile( gridCaseFile, createView, readerSettings );
if ( caseId >= 0 )
{
openedFiles.insert( std::make_pair( gridCaseFile, caseId ) );
@ -103,7 +106,8 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList& fil
}
// Import summary cases
if ( !summaryFileInfos.empty() )
bool importSummaryCases = readerSettings && readerSettings->importSummaryData;
if ( importSummaryCases && !summaryFileInfos.empty() )
{
RimSummaryCaseMainCollection* sumCaseColl =
project->activeOilField() ? project->activeOilField()->summaryCaseMainCollection() : nullptr;
@ -120,8 +124,8 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList& fil
{
RimSummaryCase* existingSummaryCase =
sumCaseColl->findSummaryCaseFromFileName( newSumCase->summaryHeaderFilename() );
RimGridSummaryCase* existingGridSummaryCase = dynamic_cast<RimGridSummaryCase*>( existingSummaryCase );
RimFileSummaryCase* existingFileSummaryCase = dynamic_cast<RimFileSummaryCase*>( existingSummaryCase );
auto* existingGridSummaryCase = dynamic_cast<RimGridSummaryCase*>( existingSummaryCase );
auto* existingFileSummaryCase = dynamic_cast<RimFileSummaryCase*>( existingSummaryCase );
if ( existingGridSummaryCase )
{
delete newSumCase; // No need to add anything new. Already have one.
@ -223,11 +227,17 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList& fil
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RiaImportEclipseCaseTools::openEclipseCaseFromFile( const QString& fileName )
int RiaImportEclipseCaseTools::openEclipseCaseFromFile( const QString& fileName,
bool createView,
std::shared_ptr<RifReaderSettings> readerSettings )
{
if ( !caf::Utils::fileExists( fileName ) ) return -1;
return RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( fileName, false );
bool showTimeStepFilter = false;
return RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( fileName,
showTimeStepFilter,
createView,
readerSettings );
}
//--------------------------------------------------------------------------------------------------
@ -237,16 +247,20 @@ bool RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilter( const QString
{
if ( !caf::Utils::fileExists( fileName ) ) return false;
return RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( fileName, true ) >= 0;
bool showTimeStepFilter = true;
bool createView = true;
return RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( fileName,
showTimeStepFilter,
createView,
nullptr ) >= 0;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringList& fileNames,
QString* fileContainingGrid /*=nullptr*/ )
int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringList& fileNames, bool createDefaultView )
{
RimEclipseInputCase* rimInputReservoir = new RimEclipseInputCase();
auto* rimInputReservoir = new RimEclipseInputCase();
RiaApplication* app = RiaApplication::instance();
RimProject* project = app->project();
@ -266,24 +280,26 @@ int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringL
analysisModels->cases.push_back( rimInputReservoir );
RimEclipseView* riv = rimInputReservoir->createAndAddReservoirView();
riv->cellResult()->setResultType( RiaDefines::ResultCatType::INPUT_PROPERTY );
riv->loadDataAndUpdate();
if ( !riv->cellResult()->hasResult() )
RimEclipseView* eclipseView = nullptr;
if ( createDefaultView )
{
riv->cellResult()->setResultVariable( RiaResultNames::undefinedResultName() );
eclipseView = rimInputReservoir->createAndAddReservoirView();
eclipseView->cellResult()->setResultType( RiaDefines::ResultCatType::INPUT_PROPERTY );
eclipseView->loadDataAndUpdate();
if ( !eclipseView->cellResult()->hasResult() )
{
eclipseView->cellResult()->setResultVariable( RiaResultNames::undefinedResultName() );
}
}
analysisModels->updateConnectedEditors();
Riu3DMainWindowTools::selectAsCurrentItem( riv->cellResult() );
if ( fileContainingGrid )
if ( eclipseView )
{
*fileContainingGrid = rimInputReservoir->gridFileName();
Riu3DMainWindowTools::selectAsCurrentItem( eclipseView->cellResult() );
}
return rimInputReservoir->caseId();
@ -294,19 +310,25 @@ int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringL
//--------------------------------------------------------------------------------------------------
bool RiaImportEclipseCaseTools::openMockModel( const QString& name )
{
return RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( name, false );
bool showTimeStepFilter = false;
bool createView = true;
return RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( name, showTimeStepFilter, createView, nullptr );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QString& fileName, bool showTimeStepFilter )
int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QString& fileName,
bool showTimeStepFilter,
bool createView,
std::shared_ptr<RifReaderSettings> readerSettings )
{
QFileInfo gridFileName( fileName );
QString caseName = gridFileName.completeBaseName();
RimEclipseResultCase* rimResultReservoir = new RimEclipseResultCase();
auto* rimResultReservoir = new RimEclipseResultCase();
rimResultReservoir->setCaseInfo( caseName, fileName );
rimResultReservoir->setReaderSettings( readerSettings );
RiaApplication* app = RiaApplication::instance();
RimProject* project = app->project();
@ -335,21 +357,33 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
return -1;
}
RimEclipseView* riv = rimResultReservoir->createAndAddReservoirView();
riv->loadDataAndUpdate();
if ( !riv->cellResult()->hasResult() )
if ( createView )
{
riv->cellResult()->setResultVariable( RiaResultNames::undefinedResultName() );
RimEclipseView* riv = rimResultReservoir->createAndAddReservoirView();
riv->loadDataAndUpdate();
if ( !riv->cellResult()->hasResult() )
{
riv->cellResult()->setResultVariable( RiaResultNames::undefinedResultName() );
}
analysisModels->updateConnectedEditors();
if ( RiaGuiApplication::isRunning() )
{
RiuMainWindow::instance()->selectAsCurrentItem( riv->cellResult() );
}
}
else
{
// Make sure the placeholder result entries are created, as this functionality is triggered when creating a
// view. See RimEclipseView::onLoadDataAndUpdate() and the call to openReserviorCase()
rimResultReservoir->openReserviorCase();
analysisModels->updateConnectedEditors();
}
analysisModels->updateConnectedEditors();
if ( RiaGuiApplication::isRunning() )
{
RiuMainWindow::instance()->selectAsCurrentItem( riv->cellResult() );
}
return rimResultReservoir->caseId();
}
@ -359,7 +393,7 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fileNames,
RimIdenticalGridCaseGroup** resultingCaseGroup /*=nullptr*/ )
{
if ( fileNames.size() == 0 ) return true;
if ( fileNames.empty() ) return true;
// First file is read completely including grid.
// The main grid from the first case is reused directly in for the other cases.
@ -377,7 +411,7 @@ bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fil
QString caseName = gridFileName.completeBaseName();
RimEclipseResultCase* rimResultReservoir = new RimEclipseResultCase();
auto* rimResultReservoir = new RimEclipseResultCase();
rimResultReservoir->setCaseInfo( caseName, firstFileName );
if ( !rimResultReservoir->openEclipseGridFile() )
{
@ -405,7 +439,7 @@ bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fil
QString caseName = gridFileName.completeBaseName();
RimEclipseResultCase* rimResultReservoir = new RimEclipseResultCase();
auto* rimResultReservoir = new RimEclipseResultCase();
rimResultReservoir->setCaseInfo( caseName, caseFileName );
std::vector<std::vector<int>> caseGridDimensions;
@ -448,7 +482,7 @@ bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fil
project->activeOilField()->analysisModels()->updateConnectedEditors();
if ( RiaGuiApplication::isRunning() && gridCaseGroup && gridCaseGroup->statisticsCaseCollection()->reservoirs.size() > 0 )
if ( RiaGuiApplication::isRunning() && gridCaseGroup && !gridCaseGroup->statisticsCaseCollection()->reservoirs.empty() )
{
RiuMainWindow::instance()->selectAsCurrentItem( gridCaseGroup->statisticsCaseCollection()->reservoirs[0] );
}

View File

@ -19,11 +19,13 @@
#pragma once
#include <map>
#include <memory>
class QString;
class QStringList;
class RimIdenticalGridCaseGroup;
class RifReaderSettings;
//==================================================================================================
///
@ -33,18 +35,26 @@ class RiaImportEclipseCaseTools
public:
typedef std::map<QString, int> FileCaseIdMap;
static bool openEclipseCasesFromFile( const QStringList& fileNames,
FileCaseIdMap* openedFilesOut = nullptr,
bool noDialog = false );
static bool openEclipseCasesFromFile( const QStringList& fileNames,
bool createView,
FileCaseIdMap* openedFilesOut,
bool noDialog,
std::shared_ptr<RifReaderSettings> readerSettings = nullptr );
static bool openEclipseCaseShowTimeStepFilter( const QString& fileName );
static int openEclipseInputCaseFromFileNames( const QStringList& fileNames, QString* fileContainingGrid = nullptr );
static int openEclipseInputCaseFromFileNames( const QStringList& fileNames, bool createDefaultView );
static bool openMockModel( const QString& name );
static bool addEclipseCases( const QStringList& fileNames, RimIdenticalGridCaseGroup** resultingCaseGroup = nullptr );
static int openEclipseCaseFromFile( const QString& fileName );
static int openEclipseCaseFromFile( const QString& fileName,
bool createView,
std::shared_ptr<RifReaderSettings> readerSettings = nullptr );
private:
static int openEclipseCaseShowTimeStepFilterImpl( const QString& fileName, bool showTimeStepFilter );
static int openEclipseCaseShowTimeStepFilterImpl( const QString& fileName,
bool showTimeStepFilter,
bool createView,
std::shared_ptr<RifReaderSettings> readerSettings );
};

View File

@ -20,6 +20,9 @@
#include "Rim3dView.h"
#include "RimCase.h"
#include "RimEnsembleCurveSet.h"
#include "RimMainPlotCollection.h"
#include "RimProject.h"
//--------------------------------------------------------------------------------------------------
///
@ -35,3 +38,19 @@ void RiaOptionItemFactory::appendOptionItemFromViewNameAndCaseName( Rim3dView*
optionItems->push_back( caf::PdmOptionItemInfo( displayName, view, false, iconProvider ) );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaOptionItemFactory::appendOptionItemsForEnsembleCurveSets( QList<caf::PdmOptionItemInfo>* options )
{
options->push_back( caf::PdmOptionItemInfo( "None", nullptr ) );
RimMainPlotCollection* mainPlotColl = RimProject::current()->mainPlotCollection();
std::vector<RimEnsembleCurveSet*> ensembleCurveSets;
mainPlotColl->descendantsOfType( ensembleCurveSets );
for ( auto ensembleCurveSet : ensembleCurveSets )
{
options->push_back( caf::PdmOptionItemInfo( ensembleCurveSet->name(), ensembleCurveSet ) );
}
}

View File

@ -28,4 +28,5 @@ class RiaOptionItemFactory
{
public:
static void appendOptionItemFromViewNameAndCaseName( Rim3dView* view, QList<caf::PdmOptionItemInfo>* optionItems );
static void appendOptionItemsForEnsembleCurveSets( QList<caf::PdmOptionItemInfo>* options );
};

View File

@ -20,39 +20,8 @@
#include "RiaStatisticsTools.h"
#include "RifEclipseSummaryAddress.h"
#include "RigStatisticsMath.h"
#include "cafAssert.h"
#include <QString>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const QString RiaStatisticsTools::replacePercentileByPValueText( const QString& percentile )
{
QString result = percentile;
if ( result == ENSEMBLE_STAT_P10_QUANTITY_NAME )
{
result = ENSEMBLE_STAT_P90_QUANTITY_NAME;
}
else if ( result == ENSEMBLE_STAT_P90_QUANTITY_NAME )
{
result = ENSEMBLE_STAT_P10_QUANTITY_NAME;
}
else if ( percentile.contains( QString( "%1:" ).arg( ENSEMBLE_STAT_P10_QUANTITY_NAME ) ) )
{
result.replace( ENSEMBLE_STAT_P10_QUANTITY_NAME, ENSEMBLE_STAT_P90_QUANTITY_NAME );
}
else if ( percentile.contains( QString( "%1:" ).arg( ENSEMBLE_STAT_P90_QUANTITY_NAME ) ) )
{
result.replace( ENSEMBLE_STAT_P90_QUANTITY_NAME, ENSEMBLE_STAT_P10_QUANTITY_NAME );
}
return result;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -24,8 +24,6 @@
#include <numeric>
#include <vector>
class QString;
//==================================================================================================
//
//
@ -34,8 +32,6 @@ class QString;
class RiaStatisticsTools
{
public:
static const QString replacePercentileByPValueText( const QString& percentile );
template <class NumberType>
static bool isInvalidNumber( NumberType value )
{

View File

@ -18,6 +18,11 @@
#include "RiaStdStringTools.h"
#include "fast_float/include/fast_float/fast_float.h"
#include <cctype>
#include <charconv>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -105,6 +110,37 @@ bool RiaStdStringTools::startsWithAlphabetic( const std::string& s )
return isalpha( s[0] ) != 0;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaStdStringTools::toDouble( const std::string_view& s, double& value )
{
auto resultObject = fast_float::from_chars( s.data(), s.data() + s.size(), value );
return ( resultObject.ec == std::errc() );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaStdStringTools::toInt( const std::string_view& s, int& value )
{
auto resultObject = std::from_chars( s.data(), s.data() + s.size(), value );
return ( resultObject.ec == std::errc() );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::string RiaStdStringTools::toUpper( const std::string& s )
{
auto strCopy( s );
std::transform( strCopy.begin(), strCopy.end(), strCopy.begin(), []( unsigned char c ) { return std::toupper( c ); } );
return strCopy;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -120,15 +156,25 @@ bool RiaStdStringTools::endsWith( const std::string& mainStr, const std::string&
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<std::string> RiaStdStringTools::splitStringBySpace( const std::string& s )
std::vector<std::string> RiaStdStringTools::splitString( const std::string& s, char delimiter )
{
std::vector<std::string> words;
splitByDelimiter( s, words );
splitByDelimiter( s, words, delimiter );
return words;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::string RiaStdStringTools::joinStrings( const std::vector<std::string>& s, char delimiter )
{
std::string delimiterString( 1, delimiter );
return join( s.begin(), s.end(), delimiterString );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -20,7 +20,7 @@
#include <algorithm>
#include <iterator>
#include <sstream>
#include <numeric>
#include <string>
#include <vector>
@ -39,9 +39,16 @@ public:
static bool containsAlphabetic( const std::string& s );
static bool startsWithAlphabetic( const std::string& s );
// Conversion using fastest known approach
static bool toDouble( const std::string_view& s, double& value );
static bool toInt( const std::string_view& s, int& value );
static std::string toUpper( const std::string& s );
static bool endsWith( const std::string& mainStr, const std::string& toMatch );
static std::vector<std::string> splitStringBySpace( const std::string& s );
static std::vector<std::string> splitString( const std::string& s, char delimiter );
static std::string joinStrings( const std::vector<std::string>& s, char delimiter );
static int computeEditDistance( const std::string& x, const std::string& y );
@ -57,13 +64,22 @@ private:
template <class Container>
void RiaStdStringTools::splitByDelimiter( const std::string& str, Container& cont, char delimiter )
{
std::stringstream ss( str );
std::string token;
while ( std::getline( ss, token, delimiter ) )
size_t start;
size_t end = 0;
while ( ( start = str.find_first_not_of( delimiter, end ) ) != std::string::npos )
{
if ( token.find_first_not_of( delimiter ) != std::string::npos )
{
cont.push_back( token );
}
end = str.find( delimiter, start );
cont.push_back( str.substr( start, end - start ) );
}
}
template <typename InputIt>
std::string join( InputIt begin, InputIt end, const std::string& separator = ", " )
{
auto compose_key = [&separator]( std::string& key, const std::string& key_part ) -> std::string {
return key.empty() ? key_part : key + separator + key_part;
};
return std::accumulate( begin, end, std::string(), compose_key );
}

View File

@ -215,59 +215,6 @@ void RiaSummaryTools::getSummaryCasesAndAddressesForCalculation( int
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaSummaryTools::findSuitableEnsembleName( const QStringList& summaryCaseFileNames )
{
std::vector<QStringList> componentsForAllFilePaths;
for ( auto filePath : summaryCaseFileNames )
{
QStringList components = RiaFilePathTools::splitPathIntoComponents( filePath );
componentsForAllFilePaths.push_back( components );
}
// Find list of all folders inside a folder matching realization-*
QRegularExpression realizationRe( "realization\\-\\d+" );
QStringList iterations;
for ( const auto& fileComponents : componentsForAllFilePaths )
{
QString lastComponent = "";
for ( auto it = fileComponents.rbegin(); it != fileComponents.rend(); ++it )
{
if ( realizationRe.match( *it ).hasMatch() )
{
iterations.push_back( lastComponent );
}
lastComponent = *it;
}
}
iterations.removeDuplicates();
if ( iterations.size() == 1u )
{
return iterations.front();
}
else if ( !iterations.empty() )
{
return QString( "Multiple iterations: %1" ).arg( iterations.join( ", " ) );
}
QString root = RiaFilePathTools::commonRootOfFileNames( summaryCaseFileNames );
QRegularExpression trimRe( "[^a-zA-Z0-9]+$" );
QString trimmedRoot = root.replace( trimRe, "" );
if ( trimmedRoot.length() >= 4 )
{
return trimmedRoot;
}
return "Ensemble";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -64,8 +64,6 @@ public:
std::vector<RimSummaryCase*>& cases,
std::vector<RifEclipseSummaryAddress>& addresses );
static QString findSuitableEnsembleName( const QStringList& summaryCaseFileNames );
static std::pair<std::vector<time_t>, std::vector<double>>
resampledValuesForPeriod( const RifEclipseSummaryAddress& address,
const std::vector<time_t>& timeSteps,

View File

@ -0,0 +1,67 @@
////////////////////////////////////////////////////////////////////////////////
//
// 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 "RiaVec3Tools.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Vec3d RiaVec3Tools::invertZSign( const cvf::Vec3d& source )
{
return { source.x(), source.y(), -source.z() };
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<cvf::Vec3d> RiaVec3Tools::invertZSign( const std::vector<cvf::Vec3d>& source )
{
std::vector<cvf::Vec3d> points;
points.reserve( source.size() );
for ( const auto& p : source )
{
points.emplace_back( invertZSign( p ) );
}
return points;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Vec3f RiaVec3Tools::invertZSign( const cvf::Vec3f& source )
{
return { source.x(), source.y(), -source.z() };
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<cvf::Vec3f> RiaVec3Tools::invertZSign( const std::vector<cvf::Vec3f>& source )
{
std::vector<cvf::Vec3f> points;
points.reserve( source.size() );
for ( const auto& p : source )
{
points.emplace_back( invertZSign( p ) );
}
return points;
}

View File

@ -0,0 +1,36 @@
////////////////////////////////////////////////////////////////////////////////
//
// 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 "cvfVector3.h"
#include <vector>
//==================================================================================================
///
//==================================================================================================
class RiaVec3Tools
{
public:
static cvf::Vec3d invertZSign( const cvf::Vec3d& source );
static std::vector<cvf::Vec3d> invertZSign( const std::vector<cvf::Vec3d>& source );
static cvf::Vec3f invertZSign( const cvf::Vec3f& source );
static std::vector<cvf::Vec3f> invertZSign( const std::vector<cvf::Vec3f>& source );
};

View File

@ -0,0 +1,195 @@
/////////////////////////////////////////////////////////////////////////////////
//
// 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 "RiaWellLogCurveMerger.h"
#include "RiaCurveMerger.h"
#include <algorithm>
#include <cmath>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaWellLogCurveMerger::RiaWellLogCurveMerger()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaWellLogCurveMerger::addCurveData( const std::vector<double>& xValues, const std::vector<double>& yValues )
{
CVF_ASSERT( xValues.size() == yValues.size() );
if ( !xValues.empty() )
{
m_originalValues.push_back( std::make_pair( xValues, yValues ) );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RiaWellLogCurveMerger::curveCount() const
{
return m_lookupValuesForAllCurves.size();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaCurveDataTools::CurveIntervals RiaWellLogCurveMerger::validIntervalsForAllXValues() const
{
return m_validIntervalsForAllXValues;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<double>& RiaWellLogCurveMerger::allXValues() const
{
return m_allXValues;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
const std::vector<double>& RiaWellLogCurveMerger::lookupYValuesForAllXValues( size_t curveIdx ) const
{
CVF_ASSERT( curveIdx < m_lookupValuesForAllCurves.size() );
return m_lookupValuesForAllCurves[curveIdx];
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaWellLogCurveMerger::computeLookupValues( bool includeValuesFromPartialCurves )
{
m_validIntervalsForAllXValues.clear();
m_allXValues.clear();
m_lookupValuesForAllCurves.clear();
computeUnionOfXValues( includeValuesFromPartialCurves );
const size_t curveCount = m_originalValues.size();
if ( curveCount == 0 )
{
return;
}
const size_t dataValueCount = m_allXValues.size();
if ( dataValueCount == 0 )
{
return;
}
m_lookupValuesForAllCurves.resize( curveCount );
std::vector<double> accumulatedValidValues( dataValueCount, 1.0 );
for ( size_t curveIdx = 0; curveIdx < curveCount; curveIdx++ )
{
std::vector<double>& curveValues = m_lookupValuesForAllCurves[curveIdx];
curveValues.resize( dataValueCount );
for ( size_t valueIndex = 0; valueIndex < dataValueCount; valueIndex++ )
{
double interpolValue = lookupYValue( m_allXValues[valueIndex],
m_originalValues[curveIdx].first,
m_originalValues[curveIdx].second );
if ( !RiaCurveDataTools::isValidValue( interpolValue, false ) )
{
accumulatedValidValues[valueIndex] = HUGE_VAL;
}
curveValues[valueIndex] = interpolValue;
}
}
m_validIntervalsForAllXValues = RiaCurveDataTools::calculateIntervalsOfValidValues( accumulatedValidValues, false );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaWellLogCurveMerger::computeUnionOfXValues( bool includeValuesForPartialCurves )
{
m_allXValues.clear();
std::set<double, XValueComparator<double>> unionOfXValues;
std::vector<std::pair<double, double>> originalXBounds;
for ( const auto& curveData : m_originalValues )
{
if ( curveData.first.empty() ) continue;
// Well log data has top and bottom depth for each zone
// Find the mid point in the zone to
const std::vector<double>& xValues = curveData.first;
for ( size_t i = 0; i < xValues.size(); i += 2 )
{
if ( i + 1 < xValues.size() )
{
double top = xValues.at( i );
double bottom = xValues.at( i + 1 );
double mid = ( top + bottom ) / 2.0;
unionOfXValues.insert( mid );
}
}
auto minmax_it = std::minmax_element( curveData.first.begin(), curveData.first.end() );
originalXBounds.push_back( std::make_pair( *( minmax_it.first ), *( minmax_it.second ) ) );
}
if ( !includeValuesForPartialCurves )
RiaCurveMerger<double>::removeValuesForPartialCurves( unionOfXValues, originalXBounds );
m_allXValues = std::vector<double>( unionOfXValues.begin(), unionOfXValues.end() );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RiaWellLogCurveMerger::lookupYValue( const double& interpolationXValue,
const std::vector<double>& xValues,
const std::vector<double>& yValues )
{
if ( yValues.size() != xValues.size() ) return HUGE_VAL;
const bool removeInterpolatedValues = false;
if ( interpolationXValue < xValues[0] ) return HUGE_VAL;
for ( size_t firstI = 0; firstI < xValues.size(); firstI++ )
{
if ( xValues.at( firstI ) >= interpolationXValue )
{
double firstValue = yValues.at( firstI );
if ( !RiaCurveDataTools::isValidValue( firstValue, removeInterpolatedValues ) )
{
return HUGE_VAL;
}
return firstValue;
}
}
return HUGE_VAL;
}

View File

@ -0,0 +1,55 @@
/////////////////////////////////////////////////////////////////////////////////
//
// 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 "RiaCurveDataTools.h"
#include <ctime>
//==================================================================================================
///
//==================================================================================================
class RiaWellLogCurveMerger
{
public:
RiaWellLogCurveMerger();
void addCurveData( const std::vector<double>& xValues, const std::vector<double>& yValues );
size_t curveCount() const;
void computeLookupValues( bool includeValuesFromPartialCurves = true );
RiaCurveDataTools::CurveIntervals validIntervalsForAllXValues() const;
const std::vector<double>& allXValues() const;
const std::vector<double>& lookupYValuesForAllXValues( size_t curveIdx ) const;
private:
void computeUnionOfXValues( bool includeValuesFromPartialCurves );
static double lookupYValue( const double& xValue,
const std::vector<double>& curveXValues,
const std::vector<double>& curveYValues );
std::vector<std::pair<std::vector<double>, std::vector<double>>> m_originalValues;
RiaCurveDataTools::CurveIntervals m_validIntervalsForAllXValues;
std::vector<double> m_allXValues;
std::vector<std::vector<double>> m_lookupValuesForAllCurves;
};

View File

@ -1,34 +1,29 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaPolyArcLineSampler.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellPlanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaSCurveCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaArcCurveCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaJCurveCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaLineArcWellPathCalculator.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaPolyArcLineSampler.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellPlanCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaSCurveCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaArcCurveCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaJCurveCalculator.h
${CMAKE_CURRENT_LIST_DIR}/RiaLineArcWellPathCalculator.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaPolyArcLineSampler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWellPlanCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSCurveCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaArcCurveCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaJCurveCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaLineArcWellPathCalculator.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaPolyArcLineSampler.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaWellPlanCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaSCurveCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaArcCurveCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaJCurveCalculator.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaLineArcWellPathCalculator.cpp
)
list(APPEND CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
set(QT_MOC_HEADERS ${QT_MOC_HEADERS})
source_group(
"Application\\Tools\\WellPathTools"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
list(APPEND CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
set (QT_MOC_HEADERS
${QT_MOC_HEADERS}
)
source_group( "Application\\Tools\\WellPathTools" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -14,19 +14,22 @@ endif()
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-deprecated-declarations")
"${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-deprecated-declarations"
)
endif()
# Open GL
find_package(OpenGL)
option(RESINSIGHT_TREAT_WARNINGS_AS_ERRORS
"Treat warnings as errors (stops build)" OFF)
"Treat warnings as errors (stops build)" OFF
)
find_package(
Qt5
COMPONENTS Core
QUIET)
QUIET
)
if(Qt5Core_FOUND)
find_package(
@ -41,7 +44,8 @@ if(Qt5Core_FOUND)
Concurrent
PrintSupport
Svg
OPTIONAL_COMPONENTS Charts)
OPTIONAL_COMPONENTS Charts
)
set(QT_LIBRARIES
Qt5::Core
Qt5::Gui
@ -52,7 +56,8 @@ if(Qt5Core_FOUND)
Qt5::Xml
Qt5::Concurrent
Qt5::PrintSupport
Qt5::Svg)
Qt5::Svg
)
if(Qt5Charts_FOUND)
list(APPEND QT_LIBRARIES Qt5::Charts)
endif(Qt5Charts_FOUND)
@ -60,11 +65,15 @@ endif(Qt5Core_FOUND)
# NB: The generated file is written to Cmake binary folder to avoid source tree
# pollution This folder is added to include_directories
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Adm/RiaVersionInfo.h.cmake
${CMAKE_BINARY_DIR}/Generated/RiaVersionInfo.h)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Adm/RiaVersionInfo.h.cmake
${CMAKE_BINARY_DIR}/Generated/RiaVersionInfo.h
)
configure_file(${CMAKE_CURRENT_LIST_DIR}/RiuThemesDirectory.h.cmake
${CMAKE_BINARY_DIR}/Generated/RiuThemesDirectory.h)
configure_file(
${CMAKE_CURRENT_LIST_DIR}/RiuThemesDirectory.h.cmake
${CMAKE_BINARY_DIR}/Generated/RiuThemesDirectory.h
)
if(MSVC)
# Avoid Qt warnings about macro redefinitions for math constants
add_definitions(-D_USE_MATH_DEFINES)
@ -106,9 +115,13 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/StimPlanModel
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Summary
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Surfaces
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Intersections
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Streamlines
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/CellFilters
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/ProcessControl
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellLog
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellMeasurement
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellPath
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModelCommands
${CMAKE_CURRENT_SOURCE_DIR}/ResultStatisticsCache
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel
@ -117,7 +130,8 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechDataModel
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechVisualization
${CMAKE_BINARY_DIR}/Generated
${CMAKE_CURRENT_BINARY_DIR})
${CMAKE_CURRENT_BINARY_DIR}
)
# ##############################################################################
# Eigen
@ -144,7 +158,8 @@ set(SOCKET_INTERFACE_FILES
SocketInterface/RiaPropertyDataCommands.cpp
SocketInterface/RiaWellDataCommands.cpp
SocketInterface/RiaSocketTools.cpp
SocketInterface/RiaSocketDataTransfer.cpp)
SocketInterface/RiaSocketDataTransfer.cpp
)
list(APPEND CPP_SOURCES ${SOCKET_INTERFACE_FILES} ${UNIT_TEST_FILES})
@ -175,9 +190,14 @@ list(
ProjectDataModel/StimPlanModel/CMakeLists_files.cmake
ProjectDataModel/Streamlines/CMakeLists_files.cmake
ProjectDataModel/Surfaces/CMakeLists_files.cmake
ProjectDataModel/Intersections/CMakeLists_files.cmake
ProjectDataModel/CellFilters/CMakeLists_files.cmake
ProjectDataModel/ProcessControl/CMakeLists_files.cmake
ProjectDataModel/WellLog/CMakeLists_files.cmake
ProjectDataModel/WellMeasurement/CMakeLists_files.cmake
ProjectDataModel/WellPath/CMakeLists_files.cmake
ProjectDataModelCommands/CMakeLists_files.cmake
ProjectDataModelCommands/CommandRouter/CMakeLists_files.cmake
GeoMech/GeoMechVisualization/CMakeLists_files.cmake
ModelVisualization/CMakeLists_files.cmake
ModelVisualization/GridBox/CMakeLists_files.cmake
@ -188,10 +208,12 @@ list(
UserInterface/CMakeLists_files.cmake
UserInterface/AnalysisPlots/CMakeLists_files.cmake
CommandFileInterface/CMakeLists_files.cmake
CommandFileInterface/Core/CMakeLists_files.cmake)
CommandFileInterface/Core/CMakeLists_files.cmake
)
option(RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS
"Include ApplicationCode Unit Tests" OFF)
"Include ApplicationCode Unit Tests" OFF
)
mark_as_advanced(FORCE RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS)
if(RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS)
add_definitions(-DUSE_UNIT_TESTS)
@ -199,7 +221,8 @@ if(RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS)
list(APPEND REFERENCED_CMAKE_FILES UnitTests/CMakeLists_files.cmake)
list(APPEND CPP_SOURCES
${ResInsight_SOURCE_DIR}/ThirdParty/gtest/gtest-all.cc)
${ResInsight_SOURCE_DIR}/ThirdParty/gtest/gtest-all.cc
)
endif()
@ -246,7 +269,8 @@ if(RESINSIGHT_FOUND_HDF5)
FileInterface/RifHdf5Exporter.h
FileInterface/RifHdf5Exporter.cpp
FileInterface/RifHdf5SummaryExporter.h
FileInterface/RifHdf5SummaryExporter.cpp)
FileInterface/RifHdf5SummaryExporter.cpp
)
list(APPEND CPP_SOURCES ${HDF5_FILES})
@ -273,7 +297,9 @@ endif()
set(QT_MOC_HEADERS
${QT_MOC_HEADERS} ProjectDataModel/RimMimeData.h
ProjectDataModel/RimBoxIntersection.h SocketInterface/RiaSocketServer.h)
ProjectDataModel/Intersections/RimBoxIntersection.h
SocketInterface/RiaSocketServer.h
)
qt5_wrap_cpp(MOC_SOURCE_FILES ${QT_MOC_HEADERS})
qt5_wrap_ui(FORM_FILES_CPP ${QT_UI_FILES})
@ -296,7 +322,8 @@ list(
../ResInsightVersion.cmake
.clang-format
.clang-tidy
Adm/RiaVersionInfo.h.cmake)
Adm/RiaVersionInfo.h.cmake
)
add_library(${PROJECT_NAME} OBJECT ${ALL_SOURCE_FILES})
@ -308,7 +335,8 @@ if(RESINSIGHT_ENABLE_PRECOMPILED_HEADERS)
set_source_files_properties(
${ResInsight_SOURCE_DIR}/ThirdParty/gtest/gtest-all.cc
PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
PROPERTIES SKIP_PRECOMPILE_HEADERS ON
)
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
@ -316,7 +344,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
${PROJECT_NAME}
PROPERTIES
COMPILE_FLAGS
"-Wall -Wno-unused-parameter -Wno-reorder -Wno-parentheses -Wno-switch")
"-Wall -Wno-unused-parameter -Wno-reorder -Wno-parentheses -Wno-switch"
)
# Treat warnings as errors if asked to do so
if(RESINSIGHT_TREAT_WARNINGS_AS_ERRORS)
set_target_properties(
@ -363,8 +392,9 @@ if(MSVC)
endif()
message(STATUS "BUILD_FLAGS_FOR_MSVC ${BUILD_FLAGS_FOR_MSVC}")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
${BUILD_FLAGS_FOR_MSVC})
set_target_properties(
${PROJECT_NAME} PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS_FOR_MSVC}
)
endif()
@ -380,7 +410,8 @@ set(LINK_LIBRARIES
${OPM_LIBRARIES}
${APP_FWK_LIBRARIES}
${VIZ_FWK_LIBRARIES}
${RI_LIBRARIES})
${RI_LIBRARIES}
)
# According to ivarun this is needed on OpenSuse, and Fedora. See:
# https://github.com/OPM/ResInsight/pull/7
@ -388,13 +419,15 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
list(APPEND EXTERNAL_LINK_LIBRARIES rt)
endif()
target_link_libraries(${PROJECT_NAME} ${LINK_LIBRARIES}
${EXTERNAL_LINK_LIBRARIES})
target_link_libraries(
${PROJECT_NAME} ${LINK_LIBRARIES} ${EXTERNAL_LINK_LIBRARIES}
)
target_include_directories(
${PROJECT_NAME}
PRIVATE ${CMAKE_BINARY_DIR}/Generated
PUBLIC ${CMAKE_SOURCE_DIR}/ApplicationLibCode/Application
PUBLIC ${CMAKE_SOURCE_DIR}/ApplicationLibCode
${CMAKE_SOURCE_DIR}/ApplicationLibCode/Application
${CMAKE_SOURCE_DIR}/ApplicationLibCode/Application/Tools
${CMAKE_SOURCE_DIR}/ApplicationLibCode/CommandFileInterface
${CMAKE_SOURCE_DIR}/ApplicationLibCode/CommandFileInterface/Core
@ -403,9 +436,11 @@ target_include_directories(
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ModelVisualization
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel/Flow
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel/Intersections
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ReservoirDataModel
${CMAKE_SOURCE_DIR}/ApplicationLibCode/SocketInterface
${CMAKE_SOURCE_DIR}/ApplicationLibCode/UserInterface)
${CMAKE_SOURCE_DIR}/ApplicationLibCode/UserInterface
)
# ##############################################################################
# Unity builds
@ -420,11 +455,13 @@ set(UNITY_EXCLUDE_FILES
qrc_cafCommandFeatures.cpp
# Exclude files including opm-common
ProjectDataModel/RimVfpTableExtractor.cpp
ProjectDataModel/RimVfpPlot.cpp)
ProjectDataModel/RimVfpPlot.cpp
)
if(RESINSIGHT_ENABLE_UNITY_BUILD)
foreach(fileToExclude ${UNITY_EXCLUDE_FILES})
set_source_files_properties(${fileToExclude}
PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)
set_source_files_properties(
${fileToExclude} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE
)
endforeach(fileToExclude)
endif()

View File

@ -1,92 +1,91 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicfCloseProject.h
${CMAKE_CURRENT_LIST_DIR}/RicfCommandFileExecutor.h
${CMAKE_CURRENT_LIST_DIR}/RicfComputeCaseGroupStatistics.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportMsw.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportMultiCaseSnapshots.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportProperty.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportSimWellFractureCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportSnapshots.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPathCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfLoadCase.h
${CMAKE_CURRENT_LIST_DIR}/RicfOpenProject.h
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceCase.h
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceSourceCases.h
${CMAKE_CURRENT_LIST_DIR}/RicfRunOctaveScript.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetExportFolder.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetMainWindowSize.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetPlotWindowSize.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetStartDir.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetTimeStep.h
${CMAKE_CURRENT_LIST_DIR}/RicfScaleFractureTemplate.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetFractureContainment.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateMultipleFractures.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPaths.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportVisibleCells.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportPropertyInViews.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportLgrForCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateLgrForCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfApplicationTools.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateSaturationPressurePlots.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportFlowCharacteristics.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateGridCaseGroup.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateStatisticsCase.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateView.h
${CMAKE_CURRENT_LIST_DIR}/RicfCloneView.h
${CMAKE_CURRENT_LIST_DIR}/RicfNewWellBoreStabilityPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicfImportWellLogFiles.h
${CMAKE_CURRENT_LIST_DIR}/RicfImportFormationNames.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellLogPlotData.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicfCloseProject.h
${CMAKE_CURRENT_LIST_DIR}/RicfCommandFileExecutor.h
${CMAKE_CURRENT_LIST_DIR}/RicfComputeCaseGroupStatistics.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportMsw.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportMultiCaseSnapshots.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportProperty.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportSimWellFractureCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportSnapshots.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPathCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfLoadCase.h
${CMAKE_CURRENT_LIST_DIR}/RicfOpenProject.h
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceCase.h
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceSourceCases.h
${CMAKE_CURRENT_LIST_DIR}/RicfRunOctaveScript.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetExportFolder.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetMainWindowSize.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetPlotWindowSize.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetStartDir.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetTimeStep.h
${CMAKE_CURRENT_LIST_DIR}/RicfScaleFractureTemplate.h
${CMAKE_CURRENT_LIST_DIR}/RicfSetFractureContainment.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateMultipleFractures.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPaths.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportVisibleCells.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportPropertyInViews.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportLgrForCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateLgrForCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicfApplicationTools.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateSaturationPressurePlots.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportFlowCharacteristics.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateGridCaseGroup.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateStatisticsCase.h
${CMAKE_CURRENT_LIST_DIR}/RicfCreateView.h
${CMAKE_CURRENT_LIST_DIR}/RicfCloneView.h
${CMAKE_CURRENT_LIST_DIR}/RicfNewWellBoreStabilityPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicfImportWellLogFiles.h
${CMAKE_CURRENT_LIST_DIR}/RicfImportFormationNames.h
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellLogPlotData.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicfCloseProject.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCommandFileExecutor.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfComputeCaseGroupStatistics.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportMsw.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportMultiCaseSnapshots.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportProperty.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportSimWellFractureCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportSnapshots.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPathCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfLoadCase.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfOpenProject.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceCase.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceSourceCases.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfRunOctaveScript.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetExportFolder.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetMainWindowSize.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetPlotWindowSize.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetStartDir.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetTimeStep.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfScaleFractureTemplate.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetFractureContainment.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateMultipleFractures.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPaths.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportVisibleCells.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportPropertyInViews.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportLgrForCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateLgrForCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfApplicationTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateSaturationPressurePlots.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportFlowCharacteristics.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateGridCaseGroup.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateStatisticsCase.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateView.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCloneView.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateWellBoreStabilityPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfImportWellLogFiles.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfImportFormationNames.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellLogPlotData.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicfCloseProject.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCommandFileExecutor.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfComputeCaseGroupStatistics.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportMsw.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportMultiCaseSnapshots.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportProperty.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportSimWellFractureCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportSnapshots.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPathCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfLoadCase.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfOpenProject.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceCase.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfReplaceSourceCases.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfRunOctaveScript.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetExportFolder.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetMainWindowSize.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetPlotWindowSize.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetStartDir.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetTimeStep.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfScaleFractureTemplate.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfSetFractureContainment.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateMultipleFractures.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellPaths.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportVisibleCells.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportPropertyInViews.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportLgrForCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateLgrForCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfApplicationTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateSaturationPressurePlots.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportFlowCharacteristics.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateGridCaseGroup.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateStatisticsCase.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateView.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCloneView.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfCreateWellBoreStabilityPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfImportWellLogFiles.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfImportFormationNames.cpp
${CMAKE_CURRENT_LIST_DIR}/RicfExportWellLogPlotData.cpp
)
list(APPEND CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
)
list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group( "CommandFileInterface" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )
source_group(
"CommandFileInterface"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)

View File

@ -1,20 +1,18 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicfCommandObject.h
${CMAKE_CURRENT_LIST_DIR}/RifcCommandFileReader.h
set(SOURCE_GROUP_HEADER_FILES ${CMAKE_CURRENT_LIST_DIR}/RicfCommandObject.h
${CMAKE_CURRENT_LIST_DIR}/RifcCommandFileReader.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicfCommandObject.cpp
${CMAKE_CURRENT_LIST_DIR}/RifcCommandFileReader.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicfCommandObject.cpp
${CMAKE_CURRENT_LIST_DIR}/RifcCommandFileReader.cpp
)
list(APPEND CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
)
list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group( "CommandFileInterface\\Core" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )
source_group(
"CommandFileInterface\\Core"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)

View File

@ -56,16 +56,16 @@ caf::PdmScriptResponse RicfCreateView::execute()
if ( eclipseCase )
{
RimEclipseView* view = eclipseCase->createAndAddReservoirView();
viewId = view->id();
view->loadDataAndUpdate();
viewId = view->id();
eclipseCase->updateConnectedEditors();
Riu3DMainWindowTools::setExpanded( view );
}
else if ( geoMechCase )
{
RimGeoMechView* view = geoMechCase->createAndAddReservoirView();
viewId = view->id();
view->loadDataAndUpdate();
viewId = view->id();
geoMechCase->updateConnectedEditors();
Riu3DMainWindowTools::setExpanded( view );
}

View File

@ -20,9 +20,10 @@
#include "RicfLoadCase.h"
#include "RiaApplication.h"
#include "RiaImportEclipseCaseTools.h"
#include "RiaLogging.h"
#include "RicImportGeneralDataFeature.h"
#include "RifReaderSettings.h"
#include "cafPdmFieldScriptingCapability.h"
#include <QDir>
@ -48,6 +49,7 @@ CAF_PDM_SOURCE_INIT( RicfLoadCase, "loadCase" );
RicfLoadCase::RicfLoadCase()
{
CAF_PDM_InitScriptableField( &m_path, "path", QString(), "Path to Case File", "", "", "" );
CAF_PDM_InitScriptableField( &m_gridOnly, "gridOnly", false, "Load Grid Data Only", "", "", "" );
}
//--------------------------------------------------------------------------------------------------
@ -63,16 +65,24 @@ caf::PdmScriptResponse RicfLoadCase::execute()
absolutePath = startDir.absoluteFilePath( m_path );
}
RiaImportEclipseCaseTools::FileCaseIdMap fileCaseIdMap;
bool ok = RiaImportEclipseCaseTools::openEclipseCasesFromFile( QStringList( { absolutePath } ), &fileCaseIdMap, true );
if ( !ok )
std::shared_ptr<RifReaderSettings> readerSettings;
if ( m_gridOnly ) readerSettings = RifReaderSettings::createGridOnlyReaderSettings();
bool createPlot = false;
bool createView = false;
auto fileOpenMetaData = RicImportGeneralDataFeature::openEclipseFilesFromFileNames( QStringList{ absolutePath },
createPlot,
createView,
readerSettings );
if ( fileOpenMetaData.createdCaseIds.empty() )
{
QString error = QString( "loadCase: Unable to load case from %1" ).arg( absolutePath );
RiaLogging::error( error );
return caf::PdmScriptResponse( caf::PdmScriptResponse::COMMAND_ERROR, error );
}
CAF_ASSERT( fileCaseIdMap.size() == 1u );
caf::PdmScriptResponse response;
response.setResult( new RicfLoadCaseResult( fileCaseIdMap.begin()->second ) );
response.setResult( new RicfLoadCaseResult( fileOpenMetaData.createdCaseIds.front() ) );
return response;
}

View File

@ -50,4 +50,5 @@ public:
private:
caf::PdmField<QString> m_path;
caf::PdmField<bool> m_gridOnly;
};

View File

@ -1,20 +1,19 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewAnalysisPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPlotDataFilterFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewAnalysisPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPlotDataFilterFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewAnalysisPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPlotDataFilterFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewAnalysisPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPlotDataFilterFeature.cpp
)
list(APPEND COMMAND_COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
)
list(APPEND COMMAND_COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group( "CommandFeature\\AnalysisPlotCommands" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )
source_group(
"CommandFeature\\AnalysisPlotCommands"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)

View File

@ -1,34 +1,32 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportPolylinesAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationIn3dViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateReachCircleAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateUserDefinedPolylinesAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicTextAnnotation3dEditor.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportPolylinesAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationIn3dViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateReachCircleAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateUserDefinedPolylinesAnnotationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicTextAnnotation3dEditor.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportPolylinesAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationIn3dViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateReachCircleAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateUserDefinedPolylinesAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicTextAnnotation3dEditor.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportPolylinesAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateTextAnnotationIn3dViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateReachCircleAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateUserDefinedPolylinesAnnotationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicTextAnnotation3dEditor.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
set(COMMAND_QT_MOC_HEADERS
${COMMAND_QT_MOC_HEADERS}
${CMAKE_CURRENT_LIST_DIR}/RicTextAnnotation3dEditor.h
)
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
source_group(
"CommandFeature\\AnnotationCommands"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
set (COMMAND_QT_MOC_HEADERS
${COMMAND_QT_MOC_HEADERS}
${CMAKE_CURRENT_LIST_DIR}/RicTextAnnotation3dEditor.h
)
source_group( "CommandFeature\\AnnotationCommands" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -1,61 +1,57 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicLaunchUnitTestsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotWindowFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowMainWindowFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicTileWindowsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicOpenProjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicOpenLastUsedFileFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectAsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExitApplicationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseProjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicHelpFeatures.h
${CMAKE_CURRENT_LIST_DIR}/RicEditPreferencesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicLaunchRegressionTestsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicRunCommandFileFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowMemoryCleanupDialogFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigEclipseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigGeoMechFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportObjectAndFieldKeywordsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectNoGlobalPathsFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicLaunchUnitTestsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotWindowFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowMainWindowFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicTileWindowsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicOpenProjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicOpenLastUsedFileFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectAsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExitApplicationFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseProjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicHelpFeatures.h
${CMAKE_CURRENT_LIST_DIR}/RicEditPreferencesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicLaunchRegressionTestsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicRunCommandFileFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowMemoryCleanupDialogFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigEclipseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigGeoMechFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportObjectAndFieldKeywordsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectNoGlobalPathsFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicLaunchUnitTestsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotWindowFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowMainWindowFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicTileWindowsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicOpenProjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicOpenLastUsedFileFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectAsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExitApplicationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseProjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicHelpFeatures.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEditPreferencesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicLaunchRegressionTestsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicRunCommandFileFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowMemoryCleanupDialogFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigEclipseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigGeoMechFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportObjectAndFieldKeywordsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectNoGlobalPathsFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicLaunchUnitTestsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotWindowFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowMainWindowFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicTileWindowsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicOpenProjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicOpenLastUsedFileFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectAsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExitApplicationFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseProjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicHelpFeatures.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEditPreferencesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowPlotDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicLaunchRegressionTestsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicRunCommandFileFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowMemoryCleanupDialogFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigEclipseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDefaultDockConfigGeoMechFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportObjectAndFieldKeywordsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSaveProjectNoGlobalPathsFeature.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
set(COMMAND_QT_MOC_HEADERS ${COMMAND_QT_MOC_HEADERS})
source_group(
"CommandFeature\\Application"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
set (COMMAND_QT_MOC_HEADERS
${COMMAND_QT_MOC_HEADERS}
)
source_group( "CommandFeature\\Application" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -40,7 +40,8 @@ set(COMMAND_REFERENCED_CMAKE_FILES
WellLogCommands/CMakeLists_files.cmake
WellPathCommands/CMakeLists_files.cmake
PlotTemplateCommands/CMakeLists_files.cmake
FractureCommands/CMakeLists_files.cmake)
FractureCommands/CMakeLists_files.cmake
)
# Include source file lists from *.cmake files
foreach(referencedfile ${COMMAND_REFERENCED_CMAKE_FILES})
@ -55,13 +56,15 @@ qt5_wrap_cpp(COMMAND_MOC_SOURCE_FILES ${COMMAND_QT_MOC_HEADERS})
add_library(
${PROJECT_NAME} OBJECT
${COMMAND_CODE_SOURCE_FILES} ${COMMAND_CODE_HEADER_FILES}
${COMMAND_MOC_SOURCE_FILES})
${COMMAND_MOC_SOURCE_FILES}
)
target_include_directories(
${PROJECT_NAME}
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/ThirdParty
${CMAKE_SOURCE_DIR}/ThirdParty/custom-opm-common/generated-opm-common
${CMAKE_SOURCE_DIR}/ThirdParty/custom-opm-common/opm-common)
${CMAKE_SOURCE_DIR}/ThirdParty/custom-opm-common/opm-common
)
if(MSVC)
# The following warnings are supposed to be used in ResInsight, but
@ -88,8 +91,9 @@ if(MSVC)
set(BUILD_FLAGS_FOR_MSVC "${BUILD_FLAGS_FOR_MSVC} /wd4505")
endif()
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
${BUILD_FLAGS_FOR_MSVC})
set_target_properties(
${PROJECT_NAME} PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS_FOR_MSVC}
)
endif()
@ -105,7 +109,8 @@ set(LINK_LIBRARIES
nightcharts
qwt
${QT_LIBRARIES}
Eigen3::Eigen)
Eigen3::Eigen
)
target_link_libraries(${PROJECT_NAME} PRIVATE ${LINK_LIBRARIES})

View File

@ -1,194 +1,196 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicWellLogTools.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseInCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseObservedDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateSummaryCaseCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewContourMapViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportFaciesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportFormationNamesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadFormationNamesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellPathFormationNamesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionBoxFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportElementPropertyFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSelectColorResult.h
${CMAKE_CURRENT_LIST_DIR}/RicTogglePerspectiveViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCasesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataInMenuFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataInMenuFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportGeneralDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicSelectOrCreateViewFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicPickEventHandler.h
${CMAKE_CURRENT_LIST_DIR}/Ric3dViewPickEventHandler.h
${CMAKE_CURRENT_LIST_DIR}/RicContourMapPickEventHandler.h
${CMAKE_CURRENT_LIST_DIR}/RicVec3dPickEventHandler.h
# General delete of any object in a child array field
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExec.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExecData.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSubItemsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSummaryCaseCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteWellMeasurementFilePathFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellMeasurementsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicWellMeasurementImportTools.h
${CMAKE_CURRENT_LIST_DIR}/RicImportElasticPropertiesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicElasticPropertiesImportTools.h
${CMAKE_CURRENT_LIST_DIR}/RicFaciesPropertiesImportTools.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseSourSimDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReplaceCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReplaceSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicFlyToObjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicGridStatisticsDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicShowGridStatisticsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicRecursiveFileSearchDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCaseRestartDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryGroupFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicConvertGroupToEnsembleFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicResampleDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateTemporaryLgrFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteTemporaryLgrsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextUi.h
${CMAKE_CURRENT_LIST_DIR}/RicNewMultiPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportStimPlanModelToFileFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicStackSelectedCurvesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicUnstackSelectedCurvesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicThemeColorEditorFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewVfpPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionWeightFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPressureTableItemFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeletePressureTableItemFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCurveFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicWellLogTools.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseInCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseObservedDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateSummaryCaseCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewContourMapViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportFaciesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportFormationNamesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadFormationNamesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellPathFormationNamesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionBoxFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportElementPropertyFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSelectColorResult.h
${CMAKE_CURRENT_LIST_DIR}/RicTogglePerspectiveViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCasesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataInMenuFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataInMenuFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportGeneralDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicSelectOrCreateViewFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicPickEventHandler.h
${CMAKE_CURRENT_LIST_DIR}/Ric3dViewPickEventHandler.h
${CMAKE_CURRENT_LIST_DIR}/RicContourMapPickEventHandler.h
${CMAKE_CURRENT_LIST_DIR}/RicVec3dPickEventHandler.h
# General delete of any object in a child array field
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExec.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExecData.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSubItemsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSummaryCaseCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteWellMeasurementFilePathFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellMeasurementsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicWellMeasurementImportTools.h
${CMAKE_CURRENT_LIST_DIR}/RicImportElasticPropertiesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicElasticPropertiesImportTools.h
${CMAKE_CURRENT_LIST_DIR}/RicFaciesPropertiesImportTools.h
${CMAKE_CURRENT_LIST_DIR}/RicCloseSourSimDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReplaceCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReloadSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicReplaceSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicFlyToObjectFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicGridStatisticsDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicShowGridStatisticsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicRecursiveFileSearchDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCaseRestartDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryGroupFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleSurfaceFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicConvertGroupToEnsembleFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleWellLogsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicResampleDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateTemporaryLgrFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteTemporaryLgrsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextUi.h
${CMAKE_CURRENT_LIST_DIR}/RicNewMultiPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportStimPlanModelToFileFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicStackSelectedCurvesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicUnstackSelectedCurvesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicThemeColorEditorFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewVfpPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionWeightFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPressureTableItemFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeletePressureTableItemFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCurveFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleSurfaceFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleSurfaceUi.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleWellLogFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleWellLogUi.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateSurfaceIntersectionBandFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateSurfaceIntersectionCurveFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicWellLogTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseInCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseObservedDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateSummaryCaseCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewContourMapViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportFaciesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportFormationNamesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadFormationNamesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellPathFormationNamesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionBoxFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportElementPropertyFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSelectColorResult.cpp
${CMAKE_CURRENT_LIST_DIR}/RicTogglePerspectiveViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCasesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataInMenuFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataInMenuFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportGeneralDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSelectOrCreateViewFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/Ric3dViewPickEventHandler.cpp
${CMAKE_CURRENT_LIST_DIR}/RicContourMapPickEventHandler.cpp
${CMAKE_CURRENT_LIST_DIR}/RicVec3dPickEventHandler.cpp
# General delete of any object in a child array field
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExecData.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSubItemsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSummaryCaseCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteWellMeasurementFilePathFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellMeasurementsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellMeasurementImportTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportElasticPropertiesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicElasticPropertiesImportTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicFaciesPropertiesImportTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseSourSimDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReplaceCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReplaceSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicFlyToObjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicGridStatisticsDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowGridStatisticsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicRecursiveFileSearchDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCaseRestartDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryGroupFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicConvertGroupToEnsembleFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicResampleDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateTemporaryLgrFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteTemporaryLgrsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewMultiPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportStimPlanModelToFileFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicStackSelectedCurvesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicUnstackSelectedCurvesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicThemeColorEditorFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewVfpPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionWeightFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPressureTableItemFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeletePressureTableItemFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCurveFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicWellLogTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseSummaryCaseInCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseObservedDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateSummaryCaseCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewContourMapViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportFaciesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportFormationNamesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadFormationNamesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellPathFormationNamesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicHideIntersectionBoxFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportElementPropertyFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSelectColorResult.cpp
${CMAKE_CURRENT_LIST_DIR}/RicTogglePerspectiveViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCasesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedDataInMenuFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportObservedFmuDataInMenuFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportGeneralDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSelectOrCreateViewFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/Ric3dViewPickEventHandler.cpp
${CMAKE_CURRENT_LIST_DIR}/RicContourMapPickEventHandler.cpp
${CMAKE_CURRENT_LIST_DIR}/RicVec3dPickEventHandler.cpp
# General delete of any object in a child array field
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemExecData.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteItemFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSubItemsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteSummaryCaseCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteWellMeasurementFilePathFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadWellMeasurementsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellMeasurementImportTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportElasticPropertiesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicElasticPropertiesImportTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicFaciesPropertiesImportTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCloseSourSimDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReplaceCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReloadSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicReplaceSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicFlyToObjectFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicGridStatisticsDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowGridStatisticsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicRecursiveFileSearchDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCaseRestartDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryGroupFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleSurfaceFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicConvertGroupToEnsembleFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleWellLogsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicResampleDialog.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateTemporaryLgrFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteTemporaryLgrsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportContourMapToTextUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewMultiPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportStimPlanModelToFileFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicStackSelectedCurvesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicUnstackSelectedCurvesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicThemeColorEditorFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewVfpPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCustomObjectiveFunctionWeightFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPressureTableItemFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeletePressureTableItemFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportGridModelFromSummaryCurveFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleSurfaceFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleSurfaceUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleWellLogFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleWellLogUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateSurfaceIntersectionBandFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateSurfaceIntersectionCurveFeature.cpp
)
if(Qt5Charts_FOUND)
list(APPEND SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleFractureStatisticsPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridStatisticsPlotFeature.h)
list(APPEND SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleFractureStatisticsPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridStatisticsPlotFeature.cpp)
list(
APPEND SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleFractureStatisticsPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridStatisticsPlotFeature.h
)
list(
APPEND SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicCreateEnsembleFractureStatisticsPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridStatisticsPlotFeature.cpp
)
endif()
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
list(
APPEND
COMMAND_QT_MOC_HEADERS
${CMAKE_CURRENT_LIST_DIR}/RicGridStatisticsDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicRecursiveFileSearchDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCaseRestartDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicResampleDialog.h
)
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
source_group(
"CommandFeature"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
list(APPEND COMMAND_QT_MOC_HEADERS
${CMAKE_CURRENT_LIST_DIR}/RicGridStatisticsDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicRecursiveFileSearchDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCaseRestartDialog.h
${CMAKE_CURRENT_LIST_DIR}/RicResampleDialog.h
)
source_group( "CommandFeature" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -1,35 +1,33 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewUserDefinedFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCellRangeFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceIFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceJFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceKFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSlice3dviewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilter3dviewFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewUserDefinedFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCellRangeFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceIFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceJFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceKFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSlice3dviewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilter3dviewFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewUserDefinedFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCellRangeFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceIFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceJFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceKFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSlice3dviewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilter3dviewFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewUserDefinedFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCellRangeFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceIFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceJFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSliceKFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewRangeFilterSlice3dviewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPolygonFilter3dviewFeature.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group(
"CommandFeature\\CellFilterCommands"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
source_group( "CommandFeature\\CellFilterCommands" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -1,25 +1,23 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportColorCategoriesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCopyStandardLegendFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendItemFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportColorCategoriesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCopyStandardLegendFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendItemFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportColorCategoriesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCopyStandardLegendFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendItemFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportColorCategoriesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCopyStandardLegendFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicInsertColorLegendItemFeature.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group(
"CommandFeature\\ColorLegend"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
source_group( "CommandFeature\\ColorLegend" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -1,43 +1,41 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicEditPerforationCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportFishbonesLateralsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsAtMeasuredDepthFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalAtMeasuredDepthFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewValveFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewValveTemplateFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewValveAtMeasuredDepthFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteValveTemplateFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathImportPerforationIntervalsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewStimPlanModelPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFractureStatisticsFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicEditPerforationCollectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportFishbonesLateralsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsAtMeasuredDepthFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalAtMeasuredDepthFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewValveFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewValveTemplateFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewValveAtMeasuredDepthFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicDeleteValveTemplateFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathImportPerforationIntervalsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewStimPlanModelPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFractureStatisticsFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicEditPerforationCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportFishbonesLateralsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsAtMeasuredDepthFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalAtMeasuredDepthFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewValveFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewValveTemplateFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewValveAtMeasuredDepthFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteValveTemplateFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathImportPerforationIntervalsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewStimPlanModelPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFractureStatisticsFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicEditPerforationCollectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportFishbonesLateralsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsAtMeasuredDepthFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewFishbonesSubsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPerforationIntervalAtMeasuredDepthFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewValveFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewValveTemplateFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewValveAtMeasuredDepthFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicDeleteValveTemplateFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathImportPerforationIntervalsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewStimPlanModelPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEnsembleFractureStatisticsFeature.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group(
"CommandFeature\\Completion"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
source_group( "CommandFeature\\Completion" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )

View File

@ -18,6 +18,7 @@
#include "RicImportEnsembleFractureStatisticsFeature.h"
#include "RiaEnsembleNameTools.h"
#include "RiaGuiApplication.h"
#include "RicRecursiveFileSearchDialog.h"
@ -28,6 +29,8 @@
#include "RimOilField.h"
#include "RimProject.h"
#include "cafProgressInfo.h"
#include <QAction>
#include <QFileInfo>
@ -52,9 +55,37 @@ bool RicImportEnsembleFractureStatisticsFeature::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicImportEnsembleFractureStatisticsFeature::onActionTriggered( bool isChecked )
{
RiaGuiApplication* app = RiaGuiApplication::instance();
QString pathCacheName = "INPUT_FILES";
QStringList fileNames = runRecursiveFileSearchDialog( "Import StimPlan Fractures", pathCacheName );
RiaGuiApplication* app = RiaGuiApplication::instance();
QString pathCacheName = "INPUT_FILES";
auto [fileNames, groupByEnsemble] = runRecursiveFileSearchDialog( "Import StimPlan Fractures", pathCacheName );
if ( groupByEnsemble == RiaEnsembleNameTools::EnsembleGroupingMode::NONE )
{
importSingleEnsembleFractureStatistics( fileNames );
}
else
{
std::vector<QStringList> groupedByEnsemble =
RiaEnsembleNameTools::groupFilesByEnsemble( fileNames, groupByEnsemble );
for ( const QStringList& groupedFileNames : groupedByEnsemble )
{
importSingleEnsembleFractureStatistics( groupedFileNames );
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicImportEnsembleFractureStatisticsFeature::importSingleEnsembleFractureStatistics( const QStringList& fileNames )
{
auto fractureGroupStatistics = new RimEnsembleFractureStatistics;
QString ensembleNameSuggestion =
RiaEnsembleNameTools::findSuitableEnsembleName( fileNames,
RiaEnsembleNameTools::EnsembleGroupingMode::FMU_FOLDER_STRUCTURE );
fractureGroupStatistics->setName( ensembleNameSuggestion );
caf::ProgressInfo progInfo( fileNames.size() + 1, "Creating Ensemble Fracture Statistics" );
RimProject* project = RimProject::current();
CVF_ASSERT( project );
@ -69,14 +100,17 @@ void RicImportEnsembleFractureStatisticsFeature::onActionTriggered( bool isCheck
completionTemplateCollection->fractureGroupStatisticsCollection();
if ( !fractureGroupStatisticsCollection ) return;
auto fractureGroupStatistics = new RimEnsembleFractureStatistics;
fractureGroupStatistics->setName( "Ensemble Fracture Statistics" );
for ( auto f : fileNames )
{
auto task = progInfo.task( "Loading files", 1 );
fractureGroupStatistics->addFilePath( f );
}
{
auto task = progInfo.task( "Generating statistics", 1 );
fractureGroupStatistics->loadAndUpdateData();
}
fractureGroupStatisticsCollection->addFractureGroupStatistics( fractureGroupStatistics );
fractureGroupStatisticsCollection->updateConnectedEditors();
@ -93,8 +127,9 @@ void RicImportEnsembleFractureStatisticsFeature::setupActionLook( QAction* actio
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RicImportEnsembleFractureStatisticsFeature::runRecursiveFileSearchDialog( const QString& dialogTitle,
const QString& pathCacheName )
std::pair<QStringList, RiaEnsembleNameTools::EnsembleGroupingMode>
RicImportEnsembleFractureStatisticsFeature::runRecursiveFileSearchDialog( const QString& dialogTitle,
const QString& pathCacheName )
{
RiaApplication* app = RiaApplication::instance();
QString defaultDir = app->lastUsedDialogDirectory( pathCacheName );
@ -111,10 +146,10 @@ QStringList RicImportEnsembleFractureStatisticsFeature::runRecursiveFileSearchDi
m_pathFilter = result.pathFilter;
m_fileNameFilter = result.fileNameFilter;
if ( !result.ok ) return QStringList();
if ( !result.ok ) return std::make_pair( QStringList(), RiaEnsembleNameTools::EnsembleGroupingMode::NONE );
// Remember the path to next time
app->setLastUsedDialogDirectory( pathCacheName, QFileInfo( result.rootDir ).absoluteFilePath() );
return result.files;
return std::make_pair( result.files, result.groupingMode );
}

View File

@ -20,6 +20,8 @@
#include "cafCmdFeature.h"
#include "RiaEnsembleNameTools.h"
#include <QString>
//==================================================================================================
@ -32,9 +34,12 @@ class RicImportEnsembleFractureStatisticsFeature : public caf::CmdFeature
public:
RicImportEnsembleFractureStatisticsFeature() {}
static QStringList runRecursiveFileSearchDialog( const QString& dialogTitle, const QString& pathCacheName );
static std::pair<QStringList, RiaEnsembleNameTools::EnsembleGroupingMode>
runRecursiveFileSearchDialog( const QString& dialogTitle, const QString& pathCacheName );
protected:
static void importSingleEnsembleFractureStatistics( const QStringList& fileNames );
// Overrides
bool isCommandEnabled() override;
void onActionTriggered( bool isChecked ) override;

View File

@ -40,7 +40,7 @@ CAF_CMD_SOURCE_INIT( RicNewFishbonesSubsAtMeasuredDepthFeature, "RicNewFishbones
//--------------------------------------------------------------------------------------------------
void RicNewFishbonesSubsAtMeasuredDepthFeature::onActionTriggered( bool isChecked )
{
RiuWellPathSelectionItem* wellPathSelItem = wellPathSelectionItem();
RiuWellPathSelectionItem* wellPathSelItem = RiuWellPathSelectionItem::wellPathSelectionItem();
CVF_ASSERT( wellPathSelItem );
RimWellPath* wellPath = wellPathSelItem->m_wellpath;
@ -63,19 +63,6 @@ void RicNewFishbonesSubsAtMeasuredDepthFeature::onActionTriggered( bool isChecke
proj->reloadCompletionTypeResultsInAllViews();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiuWellPathSelectionItem* RicNewFishbonesSubsAtMeasuredDepthFeature::wellPathSelectionItem()
{
Riu3dSelectionManager* riuSelManager = Riu3dSelectionManager::instance();
RiuSelectionItem* selItem = riuSelManager->selectedItem( Riu3dSelectionManager::RUI_TEMPORARY );
RiuWellPathSelectionItem* wellPathItem = dynamic_cast<RiuWellPathSelectionItem*>( selItem );
return wellPathItem;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -90,7 +77,7 @@ void RicNewFishbonesSubsAtMeasuredDepthFeature::setupActionLook( QAction* action
//--------------------------------------------------------------------------------------------------
bool RicNewFishbonesSubsAtMeasuredDepthFeature::isCommandEnabled()
{
if ( wellPathSelectionItem() )
if ( RiuWellPathSelectionItem::wellPathSelectionItem() )
{
return true;
}

View File

@ -20,8 +20,6 @@
#include "cafCmdFeature.h"
class RiuWellPathSelectionItem;
//==================================================================================================
///
//==================================================================================================
@ -33,7 +31,4 @@ protected:
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
bool isCommandEnabled() override;
private:
static RiuWellPathSelectionItem* wellPathSelectionItem();
};

View File

@ -41,7 +41,7 @@ CAF_CMD_SOURCE_INIT( RicNewPerforationIntervalAtMeasuredDepthFeature, "RicNewPer
//--------------------------------------------------------------------------------------------------
void RicNewPerforationIntervalAtMeasuredDepthFeature::onActionTriggered( bool isChecked )
{
RiuWellPathSelectionItem* wellPathSelItem = wellPathSelectionItem();
RiuWellPathSelectionItem* wellPathSelItem = RiuWellPathSelectionItem::wellPathSelectionItem();
CVF_ASSERT( wellPathSelItem );
RimWellPath* wellPath = wellPathSelItem->m_wellpath;
@ -64,19 +64,6 @@ void RicNewPerforationIntervalAtMeasuredDepthFeature::onActionTriggered( bool is
Riu3DMainWindowTools::selectAsCurrentItem( perforationInterval );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiuWellPathSelectionItem* RicNewPerforationIntervalAtMeasuredDepthFeature::wellPathSelectionItem()
{
Riu3dSelectionManager* riuSelManager = Riu3dSelectionManager::instance();
RiuSelectionItem* selItem = riuSelManager->selectedItem( Riu3dSelectionManager::RUI_TEMPORARY );
RiuWellPathSelectionItem* wellPathItem = dynamic_cast<RiuWellPathSelectionItem*>( selItem );
return wellPathItem;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -91,7 +78,7 @@ void RicNewPerforationIntervalAtMeasuredDepthFeature::setupActionLook( QAction*
//--------------------------------------------------------------------------------------------------
bool RicNewPerforationIntervalAtMeasuredDepthFeature::isCommandEnabled()
{
if ( wellPathSelectionItem() )
if ( RiuWellPathSelectionItem::wellPathSelectionItem() )
{
return true;
}

View File

@ -33,7 +33,4 @@ protected:
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
bool isCommandEnabled() override;
private:
static RiuWellPathSelectionItem* wellPathSelectionItem();
};

View File

@ -23,6 +23,8 @@
#include "RiaGuiApplication.h"
#include "RiaLogging.h"
#include "RiaStimPlanModelDefines.h"
#include "RimPlotCurveAppearance.h"
#include "WellLogCommands/RicNewWellLogPlotFeatureImpl.h"
#include "RigWellPath.h"
@ -76,13 +78,16 @@ RimStimPlanModelPlot* RicNewStimPlanModelPlotFeature::createPlot( RimStimPlanMod
plot->setStimPlanModel( stimPlanModel );
{
auto task = progInfo.task( "Creating formation track", 2 );
createFormationTrack( plot, stimPlanModel, eclipseCase );
auto task = progInfo.task( "Creating formation track", 2 );
RimEclipseCase* formationEclipseCase =
stimPlanModel->eclipseCaseForType( RimExtractionConfiguration::EclipseCaseType::STATIC_CASE );
createFormationTrack( plot, stimPlanModel, formationEclipseCase );
}
{
auto task = progInfo.task( "Creating facies track", 2 );
createFaciesTrack( plot, stimPlanModel, eclipseCase );
auto task = progInfo.task( "Creating facies track", 2 );
RimEclipseCase* faciesEclipseCase = stimPlanModel->eclipseCaseForProperty( RiaDefines::CurveProperty::FACIES );
createFaciesTrack( plot, stimPlanModel, faciesEclipseCase );
}
{
@ -93,12 +98,12 @@ RimStimPlanModelPlot* RicNewStimPlanModelPlotFeature::createPlot( RimStimPlanMod
{
auto task = progInfo.task( "Creating parameters track", 15 );
std::map<QString, std::vector<RiaDefines::CurveProperty>> plots;
plots["Porosity"] = { RiaDefines::CurveProperty::POROSITY, RiaDefines::CurveProperty::POROSITY_UNSCALED };
plots["Pressure"] = { RiaDefines::CurveProperty::INITIAL_PRESSURE, RiaDefines::CurveProperty::PRESSURE };
plots["Permeability"] = { RiaDefines::CurveProperty::PERMEABILITY_X, RiaDefines::CurveProperty::PERMEABILITY_Z };
plots["Net-To-Gross"] = { RiaDefines::CurveProperty::NET_TO_GROSS };
plots["EQLNUM"] = { RiaDefines::CurveProperty::EQLNUM };
std::vector<std::pair<QString, std::vector<RiaDefines::CurveProperty>>> plots =
{ { "Porosity", { RiaDefines::CurveProperty::POROSITY, RiaDefines::CurveProperty::POROSITY_UNSCALED } },
{ "Permeability", { RiaDefines::CurveProperty::PERMEABILITY_X, RiaDefines::CurveProperty::PERMEABILITY_Z } },
{ "Pressure", { RiaDefines::CurveProperty::INITIAL_PRESSURE, RiaDefines::CurveProperty::PRESSURE } },
{ "Net-To-Gross", { RiaDefines::CurveProperty::NET_TO_GROSS } },
{ "EQLNUM", { RiaDefines::CurveProperty::EQLNUM } } };
std::set<QString> logarithmicPlots;
logarithmicPlots.insert( "Permeability" );
@ -165,7 +170,7 @@ RimStimPlanModelPlot* RicNewStimPlanModelPlotFeature::createPlot( RimStimPlanMod
plot->nameConfig()->setAutoNameTags( false, false, false, false, false );
plot->setPlotTitleVisible( true );
plot->setLegendsVisible( true );
plot->setLegendsHorizontal( true );
plot->setLegendsHorizontal( false );
plot->setDepthType( RiaDefines::DepthTypeEnum::TRUE_VERTICAL_DEPTH );
plot->setAutoScaleDepthEnabled( true );
}
@ -219,6 +224,10 @@ void RicNewStimPlanModelPlotFeature::createFormationTrack( RimStimPlanModelPlot*
formationTrack->setFormationWellPath( stimPlanModel->thicknessDirectionWellPath() );
formationTrack->setFormationCase( eclipseCase );
formationTrack->setAnnotationType( RiuPlotAnnotationTool::RegionAnnotationType::FORMATION_ANNOTATIONS );
formationTrack->setXAxisGridVisibility( RimWellLogPlot::AxisGridVisibility::AXIS_GRID_NONE );
formationTrack->setShowWellPathAttributes( true );
formationTrack->setShowBothSidesOfWell( false );
formationTrack->setWellPathAttributesSource( stimPlanModel->thicknessDirectionWellPath() );
formationTrack->setVisibleXRange( 0.0, 0.0 );
formationTrack->setOverburdenHeight( stimPlanModel->overburdenHeight() );
formationTrack->setUnderburdenHeight( stimPlanModel->underburdenHeight() );
@ -247,9 +256,10 @@ void RicNewStimPlanModelPlotFeature::createFaciesTrack( RimStimPlanModelPlot* pl
faciesTrack->setFormationCase( eclipseCase );
faciesTrack->setAnnotationType( RiuPlotAnnotationTool::RegionAnnotationType::RESULT_PROPERTY_ANNOTATIONS );
faciesTrack->setRegionPropertyResultType( faciesDefinition->resultType(), faciesDefinition->resultVariable() );
faciesTrack->setAnnotationDisplay( RiuPlotAnnotationTool::COLOR_SHADING );
faciesTrack->setOverburdenHeight( stimPlanModel->overburdenHeight() );
faciesTrack->setUnderburdenHeight( stimPlanModel->underburdenHeight() );
faciesTrack->setLegendsVisible( true );
faciesTrack->setLegendsVisible( false );
faciesTrack->setPlotTitleVisible( true );
RimColorLegend* faciesColors = faciesProperties->colorLegend();
@ -257,6 +267,9 @@ void RicNewStimPlanModelPlotFeature::createFaciesTrack( RimStimPlanModelPlot* pl
faciesTrack->setVisibleXRange( 0.0, 0.0 );
faciesTrack->setColSpan( RimPlot::ONE );
faciesTrack->setAutoScaleXEnabled( false );
faciesTrack->setVisibleXRange( 0.0, 0.0 );
faciesTrack->setXAxisGridVisibility( RimWellLogPlot::AxisGridVisibility::AXIS_GRID_NONE );
caf::ColorTable colors = RiaColorTables::wellLogPlotPaletteColors();
@ -266,12 +279,11 @@ void RicNewStimPlanModelPlotFeature::createFaciesTrack( RimStimPlanModelPlot* pl
curve->setEclipseResultCategory( faciesDefinition->resultType() );
curve->setEclipseResultVariable( faciesDefinition->resultVariable() );
curve->setColor( colors.cycledColor3f( 0 ) );
curve->setLineStyle( RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_SOLID );
curve->setLineStyle( RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_NONE );
curve->setLineThickness( 2 );
curve->setAutoNameComponents( false, true, false, false, false );
faciesTrack->addCurve( curve );
faciesTrack->setAutoScaleXEnabled( true );
curve->loadDataAndUpdate( true );
curve->updateConnectedEditors();
@ -346,15 +358,15 @@ void RicNewStimPlanModelPlotFeature::createParametersTrack( RimStimPlanModelPlot
const std::vector<RiaDefines::CurveProperty>& propertyTypes,
bool isPlotLogarithmic )
{
CAF_ASSERT( !propertyTypes.empty() );
RimWellLogTrack* plotTrack = RicNewWellLogPlotFeatureImpl::createWellLogPlotTrack( false, trackTitle, plot );
plotTrack->setFormationCase( eclipseCase );
plotTrack->setFormationWellPath( stimPlanModel->thicknessDirectionWellPath() );
plotTrack->setColSpan( RimPlot::TWO );
plotTrack->setColSpan( defaultColSpan( propertyTypes[0] ) );
plotTrack->setLegendsVisible( true );
plotTrack->setPlotTitleVisible( true );
plotTrack->setShowWindow( shouldShowByDefault( propertyTypes ) );
caf::ColorTable colors = RiaColorTables::wellLogPlotPaletteColors();
plotTrack->setShowWindow( shouldShowByDefault( propertyTypes, stimPlanModel->useDetailedFluidLoss() ) );
int colorIndex = 0;
for ( const RiaDefines::CurveProperty& propertyType : propertyTypes )
@ -370,8 +382,16 @@ void RicNewStimPlanModelPlotFeature::createParametersTrack( RimStimPlanModelPlot
curve->setStimPlanModel( stimPlanModel );
curve->setEclipseResultVariable( resultVariable );
curve->setEclipseResultCategory( resultCategoryType );
curve->setColor( colors.cycledColor3f( colorIndex ) );
curve->setLineStyle( RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_SOLID );
curve->setColor( defaultColor( propertyType, colorIndex ) );
RimPlotCurveAppearance::FillStyle fillStyle = defaultFillStyle( propertyType );
if ( fillStyle != Qt::NoBrush )
{
curve->setFillStyle( fillStyle );
curve->setFillColor( defaultFillColor( propertyType ) );
}
curve->setLineStyle( defaultLineStyle( propertyType ) );
curve->setLineThickness( 2 );
if ( propertyType == RiaDefines::CurveProperty::STRESS_GRADIENT )
@ -402,6 +422,8 @@ void RicNewStimPlanModelPlotFeature::createParametersTrack( RimStimPlanModelPlot
plotTrack->setShowRegionLabels( true );
plotTrack->setLogarithmicScale( isPlotLogarithmic );
plotTrack->setAutoScaleXEnabled( true );
plotTrack->setMinAndMaxTicksOnly( useMinMaxTicksOnly( propertyTypes[0] ) );
plotTrack->updateConnectedEditors();
plot->updateConnectedEditors();
@ -468,11 +490,16 @@ RimStimPlanModelPlotCollection* RicNewStimPlanModelPlotFeature::stimPlanModelPlo
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicNewStimPlanModelPlotFeature::shouldShowByDefault( const std::vector<RiaDefines::CurveProperty>& propertyTypes )
bool RicNewStimPlanModelPlotFeature::shouldShowByDefault( const std::vector<RiaDefines::CurveProperty>& propertyTypes,
bool useDetailedFluidLoss )
{
std::vector<RiaDefines::CurveProperty> defaultPropertyTypes = {
RiaDefines::CurveProperty::FACIES,
RiaDefines::CurveProperty::POROSITY,
RiaDefines::CurveProperty::INITIAL_PRESSURE,
RiaDefines::CurveProperty::PRESSURE,
RiaDefines::CurveProperty::PERMEABILITY_X,
RiaDefines::CurveProperty::PERMEABILITY_Z,
RiaDefines::CurveProperty::STRESS,
RiaDefines::CurveProperty::INITIAL_STRESS,
RiaDefines::CurveProperty::STRESS_GRADIENT,
@ -480,9 +507,15 @@ bool RicNewStimPlanModelPlotFeature::shouldShowByDefault( const std::vector<RiaD
RiaDefines::CurveProperty::POISSONS_RATIO,
RiaDefines::CurveProperty::K_IC,
RiaDefines::CurveProperty::PROPPANT_EMBEDMENT,
RiaDefines::CurveProperty::FLUID_LOSS_COEFFICIENT,
RiaDefines::CurveProperty::BIOT_COEFFICIENT,
RiaDefines::CurveProperty::K0,
};
if ( !useDetailedFluidLoss )
{
defaultPropertyTypes.push_back( RiaDefines::CurveProperty::FLUID_LOSS_COEFFICIENT );
}
for ( auto propertyType : propertyTypes )
{
for ( auto defaultPropertyType : defaultPropertyTypes )
@ -492,3 +525,122 @@ bool RicNewStimPlanModelPlotFeature::shouldShowByDefault( const std::vector<RiaD
}
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Color3f RicNewStimPlanModelPlotFeature::defaultColor( RiaDefines::CurveProperty property, int colorIndex )
{
std::map<RiaDefines::CurveProperty, cvf::Color3f> colorMap;
colorMap[RiaDefines::CurveProperty::LAYERS] = cvf::Color3f( 0.000f, 0.000f, 1.000f );
colorMap[RiaDefines::CurveProperty::POROSITY] = cvf::Color3f( 0.804f, 0.522f, 0.247f );
colorMap[RiaDefines::CurveProperty::POROSITY_UNSCALED] = cvf::Color3f::BLACK;
colorMap[RiaDefines::CurveProperty::PERMEABILITY_X] = cvf::Color3f( 0.745f, 0.000f, 0.000f );
colorMap[RiaDefines::CurveProperty::PERMEABILITY_Z] = cvf::Color3f::RED;
colorMap[RiaDefines::CurveProperty::INITIAL_PRESSURE] = cvf::Color3f::BLACK;
colorMap[RiaDefines::CurveProperty::PRESSURE] = cvf::Color3f( 0.000f, 0.333f, 1.000f );
colorMap[RiaDefines::CurveProperty::INITIAL_STRESS] = cvf::Color3f::BLACK;
colorMap[RiaDefines::CurveProperty::STRESS] = cvf::Color3f( 0.541f, 0.169f, 0.886f );
colorMap[RiaDefines::CurveProperty::STRESS_GRADIENT] = cvf::Color3f( 0.522f, 0.522f, 0.784f );
colorMap[RiaDefines::CurveProperty::YOUNGS_MODULUS] = cvf::Color3f( 0.565f, 0.565f, 0.424f );
colorMap[RiaDefines::CurveProperty::POISSONS_RATIO] = cvf::Color3f( 0.804f, 0.522f, 0.247f );
colorMap[RiaDefines::CurveProperty::BIOT_COEFFICIENT] = cvf::Color3f( 0.000f, 0.506f, 0.761f );
colorMap[RiaDefines::CurveProperty::K0] = cvf::Color3f( 0.294f, 0.765f, 0.529f );
colorMap[RiaDefines::CurveProperty::K_IC] = cvf::Color3f( 0.576f, 0.576f, 0.000f );
colorMap[RiaDefines::CurveProperty::PROPPANT_EMBEDMENT] = cvf::Color3f( 0.667f, 0.333f, 0.498f );
if ( colorMap.count( property ) > 0 ) return colorMap[property];
caf::ColorTable colors = RiaColorTables::wellLogPlotPaletteColors();
return colors.cycledColor3f( colorIndex );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::Color3f RicNewStimPlanModelPlotFeature::defaultFillColor( RiaDefines::CurveProperty property )
{
std::map<RiaDefines::CurveProperty, cvf::Color3f> colorMap;
colorMap[RiaDefines::CurveProperty::POROSITY] = cvf::Color3f( 0.988f, 0.635f, 0.302f );
colorMap[RiaDefines::CurveProperty::PERMEABILITY_X] = cvf::Color3f( 1.000f, 0.486f, 0.486f );
colorMap[RiaDefines::CurveProperty::PERMEABILITY_Z] = cvf::Color3f( 1.000f, 0.486f, 0.486f );
colorMap[RiaDefines::CurveProperty::STRESS_GRADIENT] = cvf::Color3f( 0.667f, 0.667f, 1.000f );
colorMap[RiaDefines::CurveProperty::YOUNGS_MODULUS] = cvf::Color3f( 0.667f, 0.667f, 0.498f );
colorMap[RiaDefines::CurveProperty::POISSONS_RATIO] = cvf::Color3f( 1.000f, 0.667f, 0.498f );
colorMap[RiaDefines::CurveProperty::BIOT_COEFFICIENT] = cvf::Color3f( 0.647f, 0.847f, 1.000f );
colorMap[RiaDefines::CurveProperty::K0] = cvf::Color3f( 0.482f, 0.765f, 0.573f );
colorMap[RiaDefines::CurveProperty::K_IC] = cvf::Color3f( 0.839f, 0.729f, 0.941f );
colorMap[RiaDefines::CurveProperty::PROPPANT_EMBEDMENT] = cvf::Color3f( 0.882f, 0.439f, 0.663f );
if ( colorMap.count( property ) > 0 ) return colorMap[property];
return cvf::Color3f::LIGHT_GRAY;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimPlotCurveAppearance::FillStyle RicNewStimPlanModelPlotFeature::defaultFillStyle( RiaDefines::CurveProperty property )
{
std::set<RiaDefines::CurveProperty> solids = {
RiaDefines::CurveProperty::POROSITY,
RiaDefines::CurveProperty::PERMEABILITY_X,
RiaDefines::CurveProperty::PERMEABILITY_Z,
RiaDefines::CurveProperty::STRESS_GRADIENT,
RiaDefines::CurveProperty::YOUNGS_MODULUS,
RiaDefines::CurveProperty::POISSONS_RATIO,
RiaDefines::CurveProperty::BIOT_COEFFICIENT,
RiaDefines::CurveProperty::K0,
RiaDefines::CurveProperty::K_IC,
RiaDefines::CurveProperty::PROPPANT_EMBEDMENT,
};
if ( solids.count( property ) > 0 ) return RimPlotCurveAppearance::FillStyle( Qt::SolidPattern );
return RimPlotCurveAppearance::FillStyle( Qt::NoBrush );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiuQwtPlotCurveDefines::LineStyleEnum RicNewStimPlanModelPlotFeature::defaultLineStyle( RiaDefines::CurveProperty property )
{
std::set<RiaDefines::CurveProperty> dashedProperties = { RiaDefines::CurveProperty::INITIAL_STRESS,
RiaDefines::CurveProperty::INITIAL_PRESSURE };
if ( dashedProperties.count( property ) > 0 ) return RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_DASH;
return RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_SOLID;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimPlot::RowOrColSpan RicNewStimPlanModelPlotFeature::defaultColSpan( RiaDefines::CurveProperty property )
{
std::set<RiaDefines::CurveProperty> wideProperties = { RiaDefines::CurveProperty::STRESS,
RiaDefines::CurveProperty::INITIAL_STRESS,
RiaDefines::CurveProperty::PRESSURE,
RiaDefines::CurveProperty::INITIAL_PRESSURE };
if ( wideProperties.count( property ) > 0 ) return RimPlot::TWO;
return RimPlot::ONE;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicNewStimPlanModelPlotFeature::useMinMaxTicksOnly( RiaDefines::CurveProperty property )
{
std::set<RiaDefines::CurveProperty> useMajorAndMinorTickmarks = { RiaDefines::CurveProperty::STRESS,
RiaDefines::CurveProperty::INITIAL_STRESS,
RiaDefines::CurveProperty::PRESSURE,
RiaDefines::CurveProperty::INITIAL_PRESSURE };
if ( useMajorAndMinorTickmarks.count( property ) ) return false;
return true;
}

View File

@ -22,6 +22,10 @@
#include "RiaDefines.h"
#include "RiaStimPlanModelDefines.h"
#include "RimPlot.h"
#include "RimPlotCurveAppearance.h"
#include "cvfColor3.h"
class RimEclipseCase;
class RimStimPlanModelPlot;
@ -60,9 +64,17 @@ private:
const std::vector<RiaDefines::CurveProperty>& propertyTypes,
bool isPlotLogarithmic = false );
static bool shouldShowByDefault( const std::vector<RiaDefines::CurveProperty>& propertyTypes );
static bool shouldShowByDefault( const std::vector<RiaDefines::CurveProperty>& propertyTypes,
bool useDetailedFluidLoss );
static RimStimPlanModelPlot* createStimPlanModelPlot( bool showAfterCreation, const QString& plotDescription );
static RimStimPlanModelPlotCollection* stimPlanModelPlotCollection();
static cvf::Color3f defaultColor( RiaDefines::CurveProperty property, int colorIndex );
static cvf::Color3f defaultFillColor( RiaDefines::CurveProperty property );
static RimPlotCurveAppearance::FillStyle defaultFillStyle( RiaDefines::CurveProperty property );
static RiuQwtPlotCurveDefines::LineStyleEnum defaultLineStyle( RiaDefines::CurveProperty property );
static RimPlot::RowOrColSpan defaultColSpan( RiaDefines::CurveProperty property );
static bool useMinMaxTicksOnly( RiaDefines::CurveProperty property );
};

View File

@ -41,7 +41,7 @@ CAF_CMD_SOURCE_INIT( RicNewValveAtMeasuredDepthFeature, "RicNewValveAtMeasuredDe
//--------------------------------------------------------------------------------------------------
void RicNewValveAtMeasuredDepthFeature::onActionTriggered( bool isChecked )
{
RiuWellPathSelectionItem* wellPathSelItem = wellPathSelectionItem();
RiuWellPathSelectionItem* wellPathSelItem = RiuWellPathSelectionItem::wellPathSelectionItem();
CVF_ASSERT( wellPathSelItem );
RimWellPath* wellPath = wellPathSelItem->m_wellpath;
@ -91,23 +91,11 @@ void RicNewValveAtMeasuredDepthFeature::setupActionLook( QAction* actionToSetup
//--------------------------------------------------------------------------------------------------
bool RicNewValveAtMeasuredDepthFeature::isCommandEnabled()
{
if ( wellPathSelectionItem() && dynamic_cast<RimPerforationInterval*>( wellPathSelectionItem()->m_wellPathComponent ) )
auto wellPathSelectionItem = RiuWellPathSelectionItem::wellPathSelectionItem();
if ( wellPathSelectionItem && dynamic_cast<RimPerforationInterval*>( wellPathSelectionItem->m_wellPathComponent ) )
{
return true;
}
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiuWellPathSelectionItem* RicNewValveAtMeasuredDepthFeature::wellPathSelectionItem()
{
Riu3dSelectionManager* riuSelManager = Riu3dSelectionManager::instance();
RiuSelectionItem* selItem = riuSelManager->selectedItem( Riu3dSelectionManager::RUI_TEMPORARY );
RiuWellPathSelectionItem* wellPathItem = dynamic_cast<RiuWellPathSelectionItem*>( selItem );
return wellPathItem;
}

View File

@ -20,8 +20,6 @@
#include "cafCmdFeature.h"
class RiuWellPathSelectionItem;
//==================================================================================================
///
//==================================================================================================
@ -33,7 +31,4 @@ protected:
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
bool isCommandEnabled() override;
private:
static RiuWellPathSelectionItem* wellPathSelectionItem();
};

View File

@ -1,61 +1,59 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionDataSettingsUi.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportMswCompletionsImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionsFileTools.h
${CMAKE_CURRENT_LIST_DIR}/RicFishbonesTransmissibilityCalculationFeatureImp.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsWellSegmentsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCaseAndFileExportSettingsUi.h
${CMAKE_CURRENT_LIST_DIR}/RicExportFractureCompletionsImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleWellPathsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleSimWellsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicMswBranch.h
${CMAKE_CURRENT_LIST_DIR}/RicMswCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicMswExportInfo.h
${CMAKE_CURRENT_LIST_DIR}/RicMswItem.h
${CMAKE_CURRENT_LIST_DIR}/RicMswSegment.h
${CMAKE_CURRENT_LIST_DIR}/RicMswSegmentCellIntersection.h
${CMAKE_CURRENT_LIST_DIR}/RicMswValveAccumulators.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureTextReportFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureReportItem.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForTemporaryLgrsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicMswTableFormatterTools.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionDataSettingsUi.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportMswCompletionsImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionsFileTools.h
${CMAKE_CURRENT_LIST_DIR}/RicFishbonesTransmissibilityCalculationFeatureImp.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsWellSegmentsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCaseAndFileExportSettingsUi.h
${CMAKE_CURRENT_LIST_DIR}/RicExportFractureCompletionsImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleWellPathsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleSimWellsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicMswBranch.h
${CMAKE_CURRENT_LIST_DIR}/RicMswCompletions.h
${CMAKE_CURRENT_LIST_DIR}/RicMswExportInfo.h
${CMAKE_CURRENT_LIST_DIR}/RicMswItem.h
${CMAKE_CURRENT_LIST_DIR}/RicMswSegment.h
${CMAKE_CURRENT_LIST_DIR}/RicMswSegmentCellIntersection.h
${CMAKE_CURRENT_LIST_DIR}/RicMswValveAccumulators.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureTextReportFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureReportItem.h
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForTemporaryLgrsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicMswTableFormatterTools.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionDataSettingsUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportMswCompletionsImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionsFileTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicFishbonesTransmissibilityCalculationFeatureImp.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsWellSegmentsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCaseAndFileExportSettingsUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportFractureCompletionsImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleWellPathsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleSimWellsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswBranch.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswExportInfo.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswItem.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswSegment.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswSegmentCellIntersection.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswValveAccumulators.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureTextReportFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureReportItem.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForTemporaryLgrsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswTableFormatterTools.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionDataSettingsUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionDataFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportMswCompletionsImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathExportCompletionsFileTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RicFishbonesTransmissibilityCalculationFeatureImp.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsWellSegmentsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCaseAndFileExportSettingsUi.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportFractureCompletionsImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleWellPathsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForVisibleSimWellsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswBranch.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswCompletions.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswExportInfo.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswItem.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswSegment.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswSegmentCellIntersection.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswValveAccumulators.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureTextReportFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicWellPathFractureReportItem.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportCompletionsForTemporaryLgrsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicMswTableFormatterTools.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
)
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group( "CommandFeature\\CompletionExport" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )
source_group(
"CommandFeature\\CompletionExport"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)

View File

@ -278,6 +278,14 @@ std::unique_ptr<RicMswCompletion> RicMswSegment::removeCompletion( RicMswComplet
return removedCompletion;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicMswSegment::deleteAllCompletions()
{
m_completions.clear();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -76,6 +76,7 @@ public:
void addCompletion( std::unique_ptr<RicMswCompletion> completion );
std::unique_ptr<RicMswCompletion> removeCompletion( RicMswCompletion* completion );
void deleteAllCompletions();
void addIntersection( std::shared_ptr<RicMswSegmentCellIntersection> intersection );

View File

@ -550,36 +550,29 @@ void RicMswTableFormatterTools::generateWsegvalvTableRecursively( gsl::not_null<
{
if ( RigCompletionData::isWsegValveTypes( completion->completionType() ) )
{
auto wsegValve = static_cast<RicMswWsegValve*>( completion );
if ( !wsegValve->segments().empty() )
// Related function RicWellPathExportMswCompletionsImpl::moveIntersectionsToSuperICDsOrAICDs
auto wsegValve = static_cast<RicMswWsegValve*>( completion );
int segmentNumber = -1;
for ( auto seg : wsegValve->segments() )
{
CVF_ASSERT( wsegValve->segments().size() == 1u );
if ( seg->segmentNumber() > -1 ) segmentNumber = seg->segmentNumber();
if ( seg->intersections().empty() ) continue;
auto firstSubSegment = wsegValve->segments().front();
size_t cellIndex = seg->intersections().front()->globalCellIndex();
// TODO: The following line was blocking export of valves for fishbones
// Unclear why this line was included. Remove when MSW export has ben verified correctly
// if ( !firstSubSegment->intersections().empty() )
QString comment;
if ( wsegValve->completionType() == RigCompletionData::CompletionType::PERFORATION_ICD ||
wsegValve->completionType() == RigCompletionData::CompletionType::PERFORATION_ICV )
{
QString comment;
if ( wsegValve->completionType() == RigCompletionData::CompletionType::PERFORATION_ICD ||
wsegValve->completionType() == RigCompletionData::CompletionType::PERFORATION_ICV )
{
comment = wsegValve->label();
}
size_t cellIndex = std::numeric_limits<size_t>::max();
if ( !firstSubSegment->intersections().empty() )
{
cellIndex = firstSubSegment->intersections().front()->globalCellIndex();
}
wsegvalveData[cellIndex].push_back( WsegvalveData( wellNameForExport,
comment,
firstSubSegment->segmentNumber(),
wsegValve->flowCoefficient(),
wsegValve->area() ) );
comment = wsegValve->label();
}
wsegvalveData[cellIndex].push_back( WsegvalveData( wellNameForExport,
comment,
segmentNumber,
wsegValve->flowCoefficient(),
wsegValve->area() ) );
}
}
}
@ -739,22 +732,19 @@ void RicMswTableFormatterTools::generateWsegAicdTableRecursively( RicMswExportIn
auto aicd = static_cast<const RicMswPerforationAICD*>( completion );
if ( aicd->isValid() )
{
if ( !aicd->segments().empty() )
int segmentNumber = -1;
for ( auto seg : aicd->segments() )
{
CVF_ASSERT( aicd->segments().size() == 1u );
auto firstSegment = aicd->segments().front();
if ( seg->segmentNumber() > -1 ) segmentNumber = seg->segmentNumber();
if ( seg->intersections().empty() ) continue;
size_t cellIndex = std::numeric_limits<size_t>::max();
if ( !firstSegment->intersections().empty() )
{
cellIndex = firstSegment->intersections().front()->globalCellIndex();
}
size_t cellIndex = seg->intersections().front()->globalCellIndex();
auto wellName = exportInfo.mainBoreBranch()->wellPath()->completionSettings()->wellNameForExport();
auto comment = aicd->label();
aicdValveData[cellIndex].push_back( AicdWsegvalveData( wellName,
comment,
firstSegment->segmentNumber(),
segmentNumber,
aicd->flowScalingFactor(),
aicd->isOpen(),
aicd->values() ) );
@ -879,17 +869,41 @@ void RicMswTableFormatterTools::writeValveWelsegsSegment( const RicMswSegment*
auto segments = valve->segments();
auto subSegment = segments.front();
subSegment->setSegmentNumber( *segmentNumber );
double startMD = 0.0;
double endMD = 0.0;
double startMD = subSegment->startMD();
double endMD = subSegment->endMD();
if ( valve->completionType() == RigCompletionData::CompletionType::PERFORATION_ICD ||
valve->completionType() == RigCompletionData::CompletionType::PERFORATION_AICD )
{
CVF_ASSERT( segments.size() > 1 );
double midPointMD = 0.5 * ( startMD + endMD );
double midPointTVD = tvdFromMeasuredDepth( valve->wellPath(), midPointMD );
// The 0.1 valve segment is the first, the perforated segment is the second
auto subSegment = segments[0];
subSegment->setSegmentNumber( *segmentNumber );
subSegment->setOutputMD( midPointMD );
subSegment->setOutputTVD( midPointTVD );
double midPointMD = subSegment->outputMD();
startMD = midPointMD;
endMD = startMD + 0.1;
double midPointTVD = tvdFromMeasuredDepth( valve->wellPath(), midPointMD );
subSegment->setOutputMD( midPointMD );
subSegment->setOutputTVD( midPointTVD );
}
else
{
auto subSegment = segments.front();
subSegment->setSegmentNumber( *segmentNumber );
startMD = subSegment->startMD();
endMD = subSegment->endMD();
double midPointMD = 0.5 * ( startMD + endMD );
double midPointTVD = tvdFromMeasuredDepth( valve->wellPath(), midPointMD );
subSegment->setOutputMD( midPointMD );
subSegment->setOutputTVD( midPointTVD );
}
std::vector<std::pair<double, double>> splitSegments = createSubSegmentMDPairs( startMD, endMD, maxSegmentLength );

View File

@ -22,7 +22,7 @@
#include "RiaFilePathTools.h"
#include "RiaFractureDefines.h"
#include "RiaLogging.h"
#include "RiaPreferences.h"
#include "RiaPreferencesSystem.h"
#include "RiaWeightedMeanCalculator.h"
#include "ExportCommands/RicExportLgrFeature.h"
@ -94,6 +94,7 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions( const std::v
return;
}
if ( exportSettings.customFileName().isEmpty() )
{
QDir folder( exportSettings.folder );
if ( !folder.exists() )
@ -112,7 +113,7 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions( const std::v
std::unique_ptr<QTextStream> fractureTransmissibilityExportInformationStream = nullptr;
QFile fractureTransmissibilityExportInformationFile;
RiaPreferences* prefs = RiaPreferences::current();
RiaPreferencesSystem* prefs = RiaPreferencesSystem::current();
if ( prefs->includeFractureDebugInfoFile() )
{
QDir outputDir = QDir( exportSettings.folder );
@ -267,11 +268,22 @@ void RicWellPathExportCompletionDataFeatureImpl::exportCompletions( const std::v
if ( exportSettings.fileSplit == RicExportCompletionDataSettingsUi::ExportSplit::UNIFIED_FILE )
{
QString fileName = exportSettings.customFileName();
if ( fileName.isEmpty() ) fileName = QString( "UnifiedCompletions_%1" ).arg( eclipseCaseName );
QString fileName;
QString folderName;
if ( exportSettings.customFileName().isEmpty() )
{
fileName = QString( "UnifiedCompletions_%1" ).arg( eclipseCaseName );
folderName = exportSettings.folder;
}
else
{
fileName = exportSettings.customFileName();
QFileInfo fi( fileName );
folderName = fi.absolutePath();
}
sortAndExportCompletionsToFile( exportSettings.caseToApply,
exportSettings.folder,
folderName,
fileName,
completions,
fractureDataReportItems,
@ -883,7 +895,10 @@ void RicWellPathExportCompletionDataFeatureImpl::sortAndExportCompletionsToFile(
{
QFileInfo fi( fileName );
std::shared_ptr<QFile> exportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( folderName, fi.baseName(), fi.suffix() );
RicWellPathExportCompletionsFileTools::openFileForExport( folderName,
fi.baseName(),
fi.suffix(),
exportDataSourceAsComment );
std::map<QString, std::vector<RigCompletionData>> completionsForGrid;
completionsForGrid.insert( std::pair<QString, std::vector<RigCompletionData>>( "", completionsForMainGrid ) );
@ -908,7 +923,10 @@ void RicWellPathExportCompletionDataFeatureImpl::sortAndExportCompletionsToFile(
QString lgrFileName = fi.baseName() + "_LGR";
std::shared_ptr<QFile> exportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( folderName, lgrFileName, fi.suffix() );
RicWellPathExportCompletionsFileTools::openFileForExport( folderName,
lgrFileName,
fi.suffix(),
exportDataSourceAsComment );
exportWellPathFractureReport( eclipseCase, exportFile, wellPathFractureReportItems );
if ( exportWelspec )

View File

@ -20,6 +20,8 @@
#include "RiaFilePathTools.h"
#include "RiaLogging.h"
#include "RiaPreferences.h"
#include "RiaRegressionTestRunner.h"
#include "RimProject.h"
#include "RimWellPath.h"
@ -27,7 +29,9 @@
#include "cafUtils.h"
#include <QDateTime>
#include <QDir>
#include <QTextStream>
//--------------------------------------------------------------------------------------------------
///
@ -40,18 +44,9 @@ RicWellPathExportCompletionsFileTools::OpenFileException::OpenFileException( con
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::shared_ptr<QFile> RicWellPathExportCompletionsFileTools::openFileForExport( const QString& fullFileName )
{
std::pair<QString, QString> folderAndFileName = RiaFilePathTools::toFolderAndFileName( fullFileName );
return openFileForExport( folderAndFileName.first, folderAndFileName.second );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::shared_ptr<QFile> RicWellPathExportCompletionsFileTools::openFileForExport( const QString& folderName,
const QString& fileName,
const QString& suffix )
std::shared_ptr<QFile> RicWellPathExportCompletionsFileTools::openFile( const QString& folderName,
const QString& fileName,
const QString& suffix )
{
QString validFileName = caf::Utils::makeValidFileBasename( fileName );
@ -81,15 +76,6 @@ std::shared_ptr<QFile> RicWellPathExportCompletionsFileTools::openFileForExport(
return exportFile;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::shared_ptr<QFile> RicWellPathExportCompletionsFileTools::openFileForExport( const QString& folderName,
const QString& fileName )
{
return openFileForExport( folderName, fileName, "" );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -103,3 +89,60 @@ const RimWellPath* RicWellPathExportCompletionsFileTools::findWellPathFromExport
}
return nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::shared_ptr<QFile> RicWellPathExportCompletionsFileTools::openFileForExport( const QString& folderName,
const QString& fileName,
const QString& suffix,
bool writeInfoHeader )
{
auto file = openFile( folderName, fileName, suffix );
// Do not write header when running regression tests to make sure the text content is stable
if ( file && writeInfoHeader && !RiaRegressionTestRunner::instance()->isRunningRegressionTests() )
{
QString header = createProjectFileHeader();
if ( !header.isEmpty() )
{
QTextStream stream( file.get() );
stream << header;
}
}
return file;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RicWellPathExportCompletionsFileTools::createProjectFileHeader()
{
QString txt = QString( "-- Exported from ResInsight " );
auto dateTimeFormatString = RiaPreferences::current()->dateTimeFormat();
if ( !dateTimeFormatString.isEmpty() )
{
auto currentDateTime = QDateTime::currentDateTime();
auto dateStampString = currentDateTime.toString( dateTimeFormatString );
txt += dateStampString;
}
txt += "\n";
auto proj = RimProject::current();
if ( proj && !proj->fileName().isEmpty() )
{
QString fileName = proj->fileName();
if ( !fileName.isEmpty() )
{
txt += "-- " + fileName + "\n";
}
txt += "\n";
}
return txt;
}

View File

@ -35,9 +35,13 @@ public:
QString message;
};
static std::shared_ptr<QFile> openFileForExport( const QString& folderName, const QString& fileName );
static const RimWellPath* findWellPathFromExportName( const QString& wellNameForExport );
static std::shared_ptr<QFile>
openFileForExport( const QString& folderName, const QString& fileName, const QString& suffix );
static std::shared_ptr<QFile> openFileForExport( const QString& fullFileName );
static const RimWellPath* findWellPathFromExportName( const QString& wellNameForExport );
openFileForExport( const QString& folderName, const QString& fileName, const QString& suffix, bool writeInfoHeader );
private:
static std::shared_ptr<QFile> openFile( const QString& folderName, const QString& fileName, const QString& suffix );
static QString createProjectFileHeader();
};

View File

@ -71,28 +71,49 @@ void RicWellPathExportMswCompletionsImpl::exportWellSegmentsForAllCompletions(
if ( exportSettings.fileSplit() == RicExportCompletionDataSettingsUi::ExportSplit::UNIFIED_FILE )
{
{
QString fileName;
QString fileName;
QString folderName;
QFileInfo fi( exportSettings.customFileName() );
if ( !exportSettings.customFileName().isEmpty() )
fileName = fi.baseName() + "_MSW";
{
fileName = fi.baseName() + "_MSW";
folderName = fi.absolutePath();
}
else
{
fileName = QString( "UnifiedCompletions_MSW_%1" ).arg( exportSettings.caseToApply->caseUserDescription() );
folderName = exportSettings.folder;
}
unifiedExportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, fileName, fi.suffix() );
RicWellPathExportCompletionsFileTools::openFileForExport( folderName,
fileName,
fi.suffix(),
exportSettings.exportDataSourceAsComment() );
}
{
QString lgrFileName;
QString folderName;
QFileInfo fi( exportSettings.customFileName() );
if ( !exportSettings.customFileName().isEmpty() )
{
lgrFileName = fi.baseName() + "_LGR_MSW";
folderName = fi.absolutePath();
}
else
{
lgrFileName =
QString( "UnifiedCompletions_LGR_MSW_%1" ).arg( exportSettings.caseToApply->caseUserDescription() );
folderName = exportSettings.folder;
}
unifiedLgrExportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, lgrFileName, fi.suffix() );
RicWellPathExportCompletionsFileTools::openFileForExport( folderName,
lgrFileName,
fi.suffix(),
exportSettings.exportDataSourceAsComment() );
}
}
@ -121,9 +142,15 @@ void RicWellPathExportMswCompletionsImpl::exportWellSegmentsForAllCompletions(
QString wellFileName = QString( "%1_UnifiedCompletions_MSW_%2" )
.arg( wellPath->name(), exportSettings.caseToApply->caseUserDescription() );
unifiedWellPathFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, wellFileName );
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
wellFileName,
"",
exportSettings.exportDataSourceAsComment() );
unifiedLgrWellPathFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, wellFileName + "_LGR" );
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
wellFileName + "_LGR",
"",
exportSettings.exportDataSourceAsComment() );
}
{
@ -156,9 +183,16 @@ void RicWellPathExportMswCompletionsImpl::exportWellSegmentsForAllCompletions(
QString fileName =
QString( "%1_%2MSW_%3" )
.arg( wellPath->name(), perforationText, exportSettings.caseToApply->caseUserDescription() );
exportFile = RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, fileName );
exportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
fileName,
"",
exportSettings.exportDataSourceAsComment() );
lgrExportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, fileName + "_LGR" );
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
fileName + "_LGR",
"",
exportSettings.exportDataSourceAsComment() );
}
exportWellSegmentsForPerforations( exportSettings.caseToApply,
exportFile,
@ -188,9 +222,16 @@ void RicWellPathExportMswCompletionsImpl::exportWellSegmentsForAllCompletions(
{
QString fileName =
QString( "%1_Fracture_MSW_%2" ).arg( wellPath->name(), exportSettings.caseToApply->caseUserDescription() );
exportFile = RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, fileName );
exportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
fileName,
"",
exportSettings.exportDataSourceAsComment() );
lgrExportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, fileName + "_LGR" );
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
fileName + "_LGR",
"",
exportSettings.exportDataSourceAsComment() );
}
exportWellSegmentsForFractures( exportSettings.caseToApply,
exportFile,
@ -219,9 +260,16 @@ void RicWellPathExportMswCompletionsImpl::exportWellSegmentsForAllCompletions(
{
QString fileName =
QString( "%1_Fishbones_MSW_%2" ).arg( wellPath->name(), exportSettings.caseToApply->caseUserDescription() );
exportFile = RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, fileName );
exportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
fileName,
"",
exportSettings.exportDataSourceAsComment() );
lgrExportFile =
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder, fileName + "_LGR" );
RicWellPathExportCompletionsFileTools::openFileForExport( exportSettings.folder,
fileName + "_LGR",
"",
exportSettings.exportDataSourceAsComment() );
}
exportWellSegmentsForFishbones( exportSettings.caseToApply,
exportFile,
@ -276,6 +324,7 @@ void RicWellPathExportMswCompletionsImpl::exportWellSegmentsForPerforations( Rim
{
QTextStream stream( exportFile.get() );
RifTextDataTableFormatter formatter( stream );
formatter.setOptionalComment( exportDataSourceAsComment );
RicMswTableFormatterTools::generateWelsegsTable( formatter,
exportInfo,
@ -291,6 +340,7 @@ void RicWellPathExportMswCompletionsImpl::exportWellSegmentsForPerforations( Rim
{
QTextStream stream( lgrExportFile.get() );
RifTextDataTableFormatter formatter( stream );
formatter.setOptionalComment( exportDataSourceAsComment );
RicMswTableFormatterTools::generateWelsegsTable( formatter,
exportInfo,
@ -1574,13 +1624,13 @@ void RicWellPathExportMswCompletionsImpl::moveIntersectionsToSuperICDsOrAICDs( g
std::vector<RicMswCompletion*> perforations;
for ( auto completion : segment->completions() )
{
if ( RigCompletionData::isPerforationValve( completion->completionType() ) )
if ( completion->completionType() == RigCompletionData::CompletionType::PERFORATION_ICD ||
completion->completionType() == RigCompletionData::CompletionType::PERFORATION_AICD )
{
superValve = completion;
}
else
else if ( completion->completionType() == RigCompletionData::CompletionType::PERFORATION )
{
CVF_ASSERT( completion->completionType() == RigCompletionData::CompletionType::PERFORATION );
perforations.push_back( completion );
}
}
@ -1588,20 +1638,52 @@ void RicWellPathExportMswCompletionsImpl::moveIntersectionsToSuperICDsOrAICDs( g
if ( superValve == nullptr ) continue;
CVF_ASSERT( superValve->segments().size() == 1u );
// Remove and take over ownership of the superValve completion
auto completionPtr = segment->removeCompletion( superValve );
for ( auto perforation : perforations )
{
for ( auto subSegment : perforation->segments() )
{
// The valve completions on the main branch will be deleted. Create a segment with startMD and
// endMD representing the perforation along main well path to be connected to the valve. When COMPSEGS
// data is exported, the startMD and endMD of the segment is used to define the Start Length and End
// Length of the COMPSEGS keyword
//
// Example output
//
// COMPSEGS
// --Name
// Well - 1 /
// --I J K Branch no Start Length End Length
// 17 17 9 2 3030.71791 3034.01331 /
// 17 18 9 3 3034.01331 3125.47617 /
auto valveInflowSegment =
std::make_unique<RicMswSegment>( QString( "%1 real valve segment " ).arg( branch->label() ),
subSegment->startMD(),
subSegment->endMD(),
subSegment->startTVD(),
subSegment->endTVD() );
for ( auto intersectionPtr : subSegment->intersections() )
{
completionPtr->segments()[0]->addIntersection( intersectionPtr );
valveInflowSegment->addIntersection( intersectionPtr );
}
{
double midpoint = ( segment->startMD() + segment->endMD() ) * 0.5;
// Set the output MD to the midpoint of the segment, this info is used when exporting WELSEGS in
// RicMswTableFormatterTools::writeValveWelsegsSegment
completionPtr->segments()[0]->setOutputMD( midpoint );
}
completionPtr->addSegment( std::move( valveInflowSegment ) );
}
}
// Remove all completions and re-add the super valve
segment->completions().clear();
segment->deleteAllCompletions();
segment->addCompletion( std::move( completionPtr ) );
}
}

View File

@ -1,24 +1,23 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationReportPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationMatrixPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewParameterResultCrossPlotFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationReportPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationMatrixPlotFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewParameterResultCrossPlotFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationMatrixPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewParameterResultCrossPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationReportPlotFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationMatrixPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewParameterResultCrossPlotFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewCorrelationReportPlotFeature.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
)
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group( "CommandFeature\\CorrelationPlotCommands" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )
source_group(
"CommandFeature\\CorrelationPlotCommands"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)

View File

@ -1,30 +1,29 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAppendIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicAppendSeparateIntersectionResultFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewSimWellIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewWellPathIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPolylineIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewAzimuthDipIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCopyIntersectionsToAllViewsInCaseFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAppendIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicAppendSeparateIntersectionResultFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewSimWellIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewWellPathIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewPolylineIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewAzimuthDipIntersectionFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCopyIntersectionsToAllViewsInCaseFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAppendIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicAppendSeparateIntersectionResultFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewSimWellIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewWellPathIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPolylineIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewAzimuthDipIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCopyIntersectionsToAllViewsInCaseFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAppendIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicAppendSeparateIntersectionResultFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewSimWellIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewWellPathIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewPolylineIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewAzimuthDipIntersectionFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCopyIntersectionsToAllViewsInCaseFeature.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
)
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group( "CommandFeature\\CrossSection" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )
source_group(
"CommandFeature\\CrossSection"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)

View File

@ -64,8 +64,8 @@ void RicAppendSeparateIntersectionResultFeature::onActionTriggered( bool isCheck
//--------------------------------------------------------------------------------------------------
void RicAppendSeparateIntersectionResultFeature::setupActionLook( QAction* actionToSetup )
{
// actionToSetup->setIcon( QIcon( ":/CrossSection16x16.png" ) );
actionToSetup->setText( "New Separate Intersection Result" );
actionToSetup->setText( "New Result Definition" );
actionToSetup->setIcon( QIcon( ":/CellResult.png" ) );
}
//--------------------------------------------------------------------------------------------------

View File

@ -110,8 +110,7 @@ void RicNewAzimuthDipIntersectionFeatureCmd::redo()
RimExtrudedCurveIntersection* intersection = new RimExtrudedCurveIntersection();
intersection->setName( "Azimuth and Dip" );
intersection->type = RimExtrudedCurveIntersection::CS_AZIMUTHLINE;
intersection->inputTwoAzimuthPointsFromViewerEnabled = true;
intersection->configureForAzimuthLine();
RimCase* rimCase;
m_intersectionCollection->firstAncestorOrThisOfTypeAsserted( rimCase );

View File

@ -109,8 +109,7 @@ void RicNewPolylineIntersectionFeatureCmd::redo()
RimExtrudedCurveIntersection* intersection = new RimExtrudedCurveIntersection();
intersection->setName( "Polyline" );
intersection->type = RimExtrudedCurveIntersection::CS_POLYLINE;
intersection->inputPolyLineFromViewerEnabled = true;
intersection->configureForPolyLine();
m_intersectionCollection->appendIntersectionAndUpdate( intersection, false );

View File

@ -105,8 +105,7 @@ void RicNewSimWellIntersectionCmd::redo()
RimExtrudedCurveIntersection* intersection = new RimExtrudedCurveIntersection();
intersection->setName( m_simWell->name );
intersection->type = RimExtrudedCurveIntersection::CS_SIMULATION_WELL;
intersection->simulationWell = m_simWell;
intersection->configureForSimulationWell( m_simWell );
m_intersectionCollection->appendIntersectionAndUpdate( intersection, false );
}

View File

@ -114,8 +114,7 @@ void RicNewWellPathIntersectionFeatureCmd::redo()
RimExtrudedCurveIntersection* intersection = new RimExtrudedCurveIntersection();
intersection->setName( m_wellPath->name() );
intersection->type = RimExtrudedCurveIntersection::CS_WELL_PATH;
intersection->wellPath = m_wellPath;
intersection->configureForWellPath( m_wellPath );
m_intersectionCollection->appendIntersectionAndUpdate( intersection, false );
}

View File

@ -1,52 +1,51 @@
set (SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAddEclipseInputPropertyFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicComputeStatisticsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridCaseGroupFromFilesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupExec.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertExec.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewExec.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCasesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportInputEclipseCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewStatisticsCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicApplyPropertyFilterAsCellResultFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseTimeStepFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewInViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipseHideFaultFeature.h
set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAddEclipseInputPropertyFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicComputeStatisticsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridCaseGroupFromFilesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupExec.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertExec.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewExec.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCasesFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportInputEclipseCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicNewStatisticsCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicApplyPropertyFilterAsCellResultFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseTimeStepFilterFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewInViewFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicEclipseHideFaultFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAddEclipseInputPropertyFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicComputeStatisticsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridCaseGroupFromFilesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCasesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportInputEclipseCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewStatisticsCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicApplyPropertyFilterAsCellResultFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseTimeStepFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewInViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipseHideFaultFeature.cpp
set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicAddEclipseInputPropertyFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicComputeStatisticsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCreateGridCaseGroupFromFilesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipseCaseNewGroupFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterInsertFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewExec.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCasesFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportInputEclipseCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicNewStatisticsCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicApplyPropertyFilterAsCellResultFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportEclipseCaseTimeStepFilterFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipsePropertyFilterNewInViewFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicEclipseHideFaultFeature.cpp
)
list(APPEND COMMAND_CODE_HEADER_FILES
${SOURCE_GROUP_HEADER_FILES}
)
list(APPEND COMMAND_CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND COMMAND_CODE_SOURCE_FILES
${SOURCE_GROUP_SOURCE_FILES}
)
list(APPEND COMMAND_CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
source_group( "CommandFeature\\Eclipse" FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES} ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake )
source_group(
"CommandFeature\\Eclipse"
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
)

Some files were not shown because too many files have changed in this diff Show More