Commit Graph
54 Commits
Author SHA1 Message Date
Magne Sjaastad 7032832774 Avoid crash when displacements are missing for GeoMech intersections 2026-08-24 09:10:22 +02:00
Magne Sjaastad 1c4c304064 #14476 ApplicationLibCode: Remove unused cvf includes
Remove 95 cvf include lines that the including file does not use. Found by
extracting the symbols declared by every VizFwk header, including symbols they
re-export, and flagging includes where none of those symbols appear anywhere in
the file. Each removal is verified by a full build.

Most of them are cvfVector3.h and cvfObject.h, left behind as the files they
were once needed by changed.

pch.h is left untouched. It includes cvfObject.h and cvfVector3.h on purpose, so
that the files using the precompiled header do not have to.

Note that a clean build after removing an include does not prove the include was
unnecessary, only that the declarations still arrive some other way. That path
can differ between platforms and with RESINSIGHT_ENABLE_UNITY_BUILD, so this
needs a CI round on Linux as well.
2026-08-07 15:05:57 +02:00
Magne Sjaastad 56e98ba1c4 #14476 ApplicationLibCode: Replace CVF_ASSERT with CAF_ASSERT
Migrate all assert macros in ApplicationLibCode to CAF_ASSERT and remove every
use of cvfAssert.h.

CVF_ASSERT is replaced one to one. CVF_TIGHT_ASSERT is also replaced by
CAF_ASSERT, which is semantically exact: CVF_ENABLE_TIGHT_ASSERTS is 1 only
under _DEBUG, and that is what CAF_ASSERT now does. The two CVF_FAIL_MSG sites
become CAF_ASSERT( false && "message" ), preserving the message with the idiom
already used elsewhere in the code base.

Counts before and after: CVF_ASSERT 1044 to 0, CVF_TIGHT_ASSERT 66 to 0,
CVF_FAIL_MSG 2 to 0, cvfAssert.h references 154 to 0.

Include handling: files that included cvfAssert.h directly now include
cafAssert.h instead, includes left dead by the migration are removed, and files
that were relying on cvfAssert.h transitively get an explicit cafAssert.h. Files
that reach cafAssert.h through another caf header are left unchanged; a missing
include here is a compile error, not a silently disabled assert.

ResultStatisticsCache links only LibCore and therefore had no path to
cafAssert.h. Add the cafPdmCore directory as a private include path rather than
linking the library, since cafAssert.h is header only.

Note that this stops these asserts from firing in Release and RelWithDebInfo,
where CVF_ASSERT was previously active.
2026-08-07 15:05:57 +02:00
Magne Sjaastad 0012a65922 #14436 Surface intersection curves and bands for Intersection Box and I/J/K Intersection
* Add RivSurfaceIntersectionCurveTools for shared surface intersection curve geometry
* Move the surface intersection collection to RimIntersection
* Add surface curtain footprints for the box and i/j/k intersections
* Build surface intersection curves for the box and i/j/k intersections
* Follow the pillar tilt when projecting a surface onto an intersection
* Estimate the surface intersection by continuing the pillar past the curtain
2026-08-06 08:06:53 +02:00
Kristian Bendiksen 5dc3374733 #14226 intersection along ijk axis
* #14226 Add intersection along i/j/k axis

Add a new persistent intersection type that follows the grid pillars at a
fixed i, j or k index. Unlike the axis-aligned intersection box, the surface
is built from the grid cell faces and therefore steps along faults and curved
pillars, which is useful for structural restoration analysis.

The user selects the axis, the fixed index, the two perpendicular index
ranges and which cell face (front/back pillar) to use. The geometry generator
emits the chosen cell face of every cell in the index plane directly from the
native pillar corners, so cell result colors map exactly.

The feature is available from the Intersections context menu for Eclipse
views and supports 3D-view picking and cell result readout.
2026-07-27 11:21:05 +02:00
Magne Sjaastad 071d6cc19e #14050 CMake: Remove dead variable definitions and references
* CMake: Remove dead CODE_HEADER_FILES variable
* CMake: Remove dead COMMAND_CODE_HEADER_FILES and COMMAND_MOC_SOURCE_FILES
* CMake: Remove dead MOC_SOURCE_FILES and FORM_FILES_CPP references
* CMake: Remove dead HEADER_FILES reference
* CMake: Delete unused CustomPCH.cmake superseded by target_precompile_headers
2026-05-26 13:10:20 +02:00
Jon Jenssen 0726f20694 Protect flattening code against polylines with a single point 2026-05-02 13:51:40 +02:00
Kristian Bendiksen a0dbbf6cb1 Remove deprecated size_t overloads from RigActiveCellInfo
Migrate all callers to use type-safe ReservoirCellIndex and
ActiveCellIndex wrappers, then remove the deprecated isActive(size_t),
cellResultIndex(size_t), and setCellResultIndex(size_t, size_t) methods.
2026-03-31 12:32:05 +02:00
Kristian Bendiksen 414cf1df04 #13466 Allow display of intersection bands and curves without intersection geometry
Add a "Show Intersection Geometry" checkbox to RimExtrudedCurveIntersection that
controls visibility of intersection faces and mesh lines independently from the
surface intersection bands and curves.

When unchecked, the intersection geometry is hidden but bands and curves continue
to display based on their individual checked states.

Fixes #13466.
2026-01-22 07:17:46 +01:00
Kristian Bendiksen 4a8af2ff9d Add [[nodiscard]] to new api. 2025-09-03 14:21:19 +02:00
Kristian Bendiksen 10182e99a7 Refactor: Change RigGridBase::cellCornerVertices to return std::array
Refactored RigGridBase::cellCornerVertices to return std::array<cvf::Vec3d, 8> by value instead of taking a reference to std::array as an output parameter. This change improves code readability and leverages modern C++ return value optimizations.

Updated all call sites across the codebase to reflect the new function signature.
2025-09-03 14:21:19 +02:00
Kristian Bendiksen da69eef72b #1584 Replace cvf::vec3d[8] with std::array<cvf::vec3d, 8> 2025-09-03 14:21:19 +02:00
Magne Sjaastad 25346e6cfe Move RigSurface classes into Surface folder 2025-05-21 18:09:22 +02:00
Magne Sjaastad ca0179d118 Remove obsolete CMake statements
When using modern CMake and Qt6 we can remove obsolete source_group() and QT_MOC_HEADERS
2025-01-28 07:01:42 +01:00
jonjenssen 88118ee4e1 Privatize grid cell array 2024-10-29 18:17:31 +01:00
jonjenssen e006fe52c9 2d intersection view filter support (#11711)
Enable filters in 2d intersection view. Controlled by "Use Cell Filters for Intersections" setting in Intersection Collection properties
2024-09-19 08:41:57 +02:00
Kristian Bendiksen 7836181ad1 Refactor: use lambda instead of define. 2024-04-10 13:34:41 +02:00
Kristian Bendiksen 544e6974e7 Refactor: improve interface for finding intersecting cells. 2024-01-03 13:00:09 +01:00
jonjenssen 1fab743d56 INP import updates (#10952)
Support reading element type results
Automatically load properties from INP include files generated by Fault Reactivation Model exporter
Some refactoring of element and result types.
2023-12-14 08:46:41 +01:00
Magne Sjaastad 10189da362 Fix display of intersection lines in 3D view
* 10675 Fix missing intersection line geometry
* Change to list of visible surface intersection lines
* Enable surface intersection band for any intersection
* Show labels for intersection curves in 3D

The polylines are defined in the display coordinate system without Z-scaling. The z-scaling is applied to the visualization parts using Part::setTransform(Transform* transform)
The annotation objects are defined by display coordinates, so apply the Z-scaling to the coordinates.

* Improve naming of surfaces
* Use scaling factor of 1.0 for flat intersection views
2023-10-03 09:04:46 +02:00
Magne Sjaastad 21843820e6 Update clang-tidy.yml
* Make sure clang-tidy action use .clang-tidy config file
Use add-paths to instruct create-pull-request to a sub folder to avoid diff from Qt and vcpkg

* Use empty() in macro to avoid clang-tidy warning
* Add NOLINT to CAF_ASSERT
* Add NOLINT to cvfAssert
2023-10-03 09:04:08 +02:00
Kristian Bendiksen 959c9d48fa #10649 ApplicationLibCode: Use collection.empty() instead of comparing with size 2023-09-27 10:16:37 +02:00
Magne Sjaastad fb75d0471e Move line and surface intersection methods to RigSurfaceResampler 2023-08-31 13:50:39 +02:00
Magne Sjaastad bb293539d5 Additional refactoring for POR-Bar result handling
* Always use element-nodal for POR calculations
* Add RigFemAddressDefines
Add special handling for "POR-Bar" result, always use element_nodal

* 9362 Show unit text "sg" when normalized by hydrostatic pressure
2023-08-23 13:29:54 +02:00
Kristian Bendiksen 5bf2c2a89d #10367 Janitor: Remove unneccessary 'this' pointers 2023-08-07 13:38:27 +02:00
jonjenssen 17f09878d2 Enable filters for curve intersections (#10329)
* Enable cell filters
* Enable property filters
* Clean up fault collection interface and use similar setting for controlling filters as in intersection collection
* Enable cell/property filters on geomech intersections
* Enable cell and property filters for box intersections
2023-06-05 07:33:04 +02:00
jonjenssen 1063d7f3d3 Add support for K filter to polyline intersections (#10302)
* Add support for K filter to polyline intersections
2023-05-25 08:14:43 +02:00
Jørgen Herje b83fe73395 Displacement curves fault faces (#10243) 2023-05-22 11:37:57 +02:00
Magne Sjaastad 0c90f67dcc Change API for PdmObjectHandle and PdmFieldHandle
* Refactor interface to PdmObjectHandle and PdmFieldHandle
Return objects instead of passing in structures as parameters

* Add nodiscard to several functions
* Remove redundant this->
* Rename to ptrReferencedObjectsByType
2023-05-12 21:41:34 +02:00
Magne Sjaastad 5ee764af48 Refactor result definition 2023-05-11 08:37:58 +02:00
Magne Sjaastad 952e766c2f Update clang-format.yml (#10068)
* Update to clang-format-15
Removed two custom .clang-format files in subfolders of AppFwk

* Fixes by clang-format
2023-04-13 07:05:53 +02:00
Magne Sjaastad f8c5cf389f clang-format: Set column width to 140
* Set column width to 140
* Use c++20
* Remove redundant virtual
2023-02-26 10:48:40 +01:00
jonjenssen 85f1b004cb Geomech frames support (#9678)
Support for showing frames in geomech data.
2023-01-18 14:42:33 +01:00
Jon Jenssen 2e3ac5b02b Fix intersection depth filter limit calculations 2022-08-02 09:07:24 +02:00
Jon Jenssen 89773da26e Fix intersection crash by making sure we do nothing when top limit is below bottom limit 2022-06-02 06:54:45 +02:00
Magne Sjaastad 9c987855f2 Merge remote-tracking branch 'origin/patch_2021.10.3' into dev 2022-03-28 09:06:38 +02:00
Kristian Bendiksen fda4d1d608 #8651 Surface Intersection Curve: Fix crash when non-overlapping surface and intersection (#8737) 2022-03-25 15:06:11 +01:00
Magne Sjaastadandmagnesj 64bed86f8f Intersection : Add Python support for triangle and result values (#8505)
#8508 Python : Make sure an empty list will be received as empty list in Python

Co-authored-by: magnesj <magnesj@users.noreply.github.com>
2022-02-07 17:38:19 +00:00
jonjenssen d9bb82de91 Merge pull request #8447 from OPM/intersection_filterupdate
Intersection: depth filter updates
2022-01-16 23:56:00 +01:00
Magne Sjaastad dfd8b9986f Janitor: Make sure the default legend is configured for intersection results 2022-01-07 10:38:56 +01:00
jonjenssen 55ba4bc802 Intersection depthfilter (#8408)
* Implement a simple depth filter to cut all geometry below a certain level for intersections
* Add option to override all curve intersection cut depths from collection.
* Add support for showing intersection above or below threshold. Update label texts.
2022-01-05 15:52:04 +01:00
Magne Sjaastad 44f588be27 #8312 2D/3D Intersections: Fix missing display of polyline 2021-12-01 16:27:28 +01:00
Magne Sjaastad 2b6767c328 #8312 2D/3D Intersections: Fix missing display of polyline 2021-11-24 09:24:35 +01:00
jonjenssen 059f30236b Merge pull request #8168 from OPM/intersection_displacement
GeoMech: Support showing displacements on intersections, too
2021-10-20 01:41:14 +02:00
jonjenssen b169900c41 GeoMech Intersection updates: support multiple parts (#8160)
* Rearrange intersection classes, split single file into one-per-class

* Support multi-part geomech case intersections
2021-10-15 16:57:18 +02:00
Magne Sjaastad 515168600f Improved UI for surface band and curves (#8026)
* Add surface intersection bands and curves
* #8024 Ensemble Surface : Fix mix of files for a ensemble layer surface
2021-09-23 09:59:29 +02:00
Magne Sjaastad 7b1185cec4 Surface Folders
* #7978 Ensemble Surface : Use collection instead of specialized class
* Review updates
2021-09-13 10:16:09 +02:00
Magne Sjaastad 638f926429 cmake-format: Allow dangling parenthesis 2021-09-01 08:13:16 +02:00
Magne Sjaastad b78cf3a4bb Use cmake-format on all cmake files 2021-08-26 19:46:38 +02:00
Magne Sjaastad 2fc65a3b62 #7892 Basic support for display of surface lines and bands on intersections
Guard divide by zero issues
2D Intersection View: Do not add parts with wrong coordinates
Add bounding box search tree
Add support display of intersection lines for selected surfaces
Show band between two first intersection lines
2021-08-26 08:13:03 +02:00