Replace hard transparent/opaque edge cutoff with a weighted alpha
derived from the bilinear corner weights. Pixels at the boundary fade
proportionally to how much of their area falls within the defined
region, eliminating the hard staircase artefact.
Scale texture up 4x and bilinearly interpolate between adjacent vertex
values to eliminate block artefacts. Pixels adjacent to any undefined
(infinity) vertex are rendered transparent.
Extract and clean up prototype from contour-map-01 branch:
- RivContourMapProjectionPartMgr: add appendProjectionAsTexturedQuad(),
createSingleTexturedQuadPart(), createXYPlaneQuadGeoWithTexCoords(),
and createTexture() — renders the map as a single GPU-textured quad
with transparency (alpha=0) for undefined/infinity cells
- RimContourMapProjection: add m_showTextureImage (default true) and
m_showTrianglesWithColor (default false) PDM fields; guard triangle
mesh generation when showTrianglesWithColor() is false
- RimEclipseContourMapView, RimGeoMechContourMapView: branch
appendContourMapProjectionToModel() to use texture or triangle path
based on the new flags; Statistics view inherits Eclipse path
Prototype dead code (debug file save, SurfaceEffectGenerator fallback,
redundant createImage()) not carried forward.
Ensure that the well path collection's editors are updated whenever events are applied to the timeline, keeping the UI synchronized with model changes.
RimWellPath.cpp has a scriptable cvf::Color3f field but was missing the
Color3f IOHandler specialization header. In Unity builds, this caused
the primary template to be instantiated, conflicting with the
specialization in cafPdmScripting.lib.
Include cafPdmFieldScriptingCapabilityCvfColor3.h so the compiler sees
the Color3f template specialization instead of instantiating the primary
template, which caused duplicate symbols with cafPdmScripting.lib.
Make RimPolygonAppearance scriptable so polygon visual properties
(colors, line thickness, spheres, closed state, plane lock) can be
controlled from the Python API.
Make m_wellPathColor scriptable so it is accessible via the Python API
as well_path_color (hex string). Add a test and update the
import_well_paths_and_logs example to demonstrate setting colors.
Remove lastUsedProjectFileName from RiaPreferences and store it via the
existing recentFileList QSettings key. loadProject and saveProjectAs now
call addToRecentFiles instead of writing to preferences. A new static
method lastUsedProjectFileName() on RiuRecentFileActionProvider returns
the most recent .rsp entry from the list.
Update the preference lookup to search upward up to three levels from the test directory, allowing for shared configuration in nested folder structures. Also, ensure each test runs from a consistent baseline by saving the initial state once and restoring it after every test execution.
Add OS info (os.type, os.version, os.name) to all non-crash events in
reportEventAsync. Consolidate OS info and hashUsername into an anonymous
namespace with a shared addOsInfo helper function.
Adds a "Test Progress Bar" action under File->Testing that runs a
long task on a worker thread using caf::ProgressInfo to exercise
cross-thread progress updates. Uses QEventLoop to keep the GUI thread
responsive while the worker sleeps between steps.
ACTNUM is always present in the EGRID file, but not always in the INIT
file. The OPM reader's staticResult() searched only the INIT file, so
models that omit ACTNUM from INIT returned an empty result vector,
causing all cells to display as undefined.
Fix by deriving ACTNUM values directly from the active cell info, which
is populated from the EGRID during grid import via transferActiveCells().
Copy result metadata from main case to all cases after loading in shared
grid mode. Without this, findOrLoadKnownScalarResultForTimeStep() returned
UNDEFINED_SIZE_T for cases 1..N, silently excluding them from statistics.
Mirrors behavior of RimIdenticalGridCaseGroup::loadMainCaseAndActiveCellInfo().
RicImportGridAndSummaryEnsembleDialog: Enable 'realization-*' filter by default
and make tree view grow vertically on dialog resize.
For ensemble member cases used as individual sources in the Plot Editor,
createAddressesIfRequired() was never called, causing allResultAddresses()
to return an empty set for all non-representative realizations.
- Track pending network replies using an atomic counter
- Pump the event loop in `reportCrash` to allow asynchronous telemetry requests to complete before the process terminates
- Use a timeout to prevent the crash handler from hanging indefinitely if the network is unresponsive
- Replace manual telemetry event reporting with an intentional SIGSEGV
- This allows for testing the end-to-end crash reporting pipeline and signal handling instead of just simulating telemetry data
- Add RicImportGridAndSummaryEnsembleFeature with icon and menu/toolbar registration
- Register in main window toolbar, import menu (both windows)
- Add feature to plot window Standard toolbar
- Wire up post-import view and plot creation
- Skip grid/summary ensemble creation when no files of that type are found
- Keep focus in plot window when no grid ensembles are created
- Add new RicImportGridAndSummaryEnsembleDialog for searching and selecting
grid and summary ensemble files
- Extract firstLevelItems, setCheckedStateChildItems, findItemsMatching and
populateComboBoxHistoryFromRegistry to public static methods on
RicRecursiveFileSearchDialog to eliminate duplication
Extract auto-import logic into public static method
importPvdSurfacesForGridFiles() and call it from:
- Command line case loading (--case argument)
- Replace case menu action
Support (bool, something) pairs as tuples on python side.
Support custom outlet valve md
Add python test for custom outlet valve md
Use tie-in depth as default for custom valve md
Standalone valve creation and display updates
Update MSW valve export
Add valve open/shut flag.
Add python examples
Move private methods, DataContainer, and ClusterStatistics from
RigWellTargetMapping into a new RigWellTargetMappingTools class to reduce
header complexity. Change generateEnsembleCandidates to accept
std::vector<RimEclipseCase*> instead of RimEclipseCaseEnsemble.
Refactor RigActiveCellInfo to use ReservoirCellIndex and ActiveCellIndex
instead of raw size_t. Add ActiveCellIndexTag/ActiveCellIndex to
RigTypeSafeIndex.h and add inline comments describing both index types.
Deprecate raw size_t overloads.
* Adopts dynamic PDM buttons with lambda callbacks
Refactors PDM push buttons from boolean fields to use the `addNewButton` API with direct lambda callbacks.
This change enforces a new coding guideline to extract complex or multi-line lambdas to dedicated `on*Clicked()` methods, improving code readability and maintainability.
- Replaces `PdmField` button fields with `PdmUiOrdering::addNewButton` calls.
- Extracts multi-line/control-flow lambdas into named methods in `RimFlowCharacteristicsPlot`, `RimGeoMechCase`, and `RimStatisticsContourMap`.
- Removes obsolete `defineEditorAttribute` overrides and `fieldChangedByUi` logic for these buttons.
- Updates `RimWellPathFracture` to utilize base class-provided button creation.
- Adds new lambda line-count guideline to the coding style documentation.
- Includes minor build fixes, such as adding `cafPdmUiButton.h` and correcting tooltip API usage.
mainGrid(), unionOfActiveCells(), computeUnionOfActiveCells(), and statisticsCaseCollection() default to null/no-op. Remove redundant overrides from RimEclipseCaseEnsemble.
Introduces a flag to track if the application is currently in its destruction phase.
The `notify` method now checks this flag and, if set, delegates event processing directly to the base `QApplication::notify`.
This prevents custom event handlers from attempting to access member variables that may have already been destroyed or are in an invalid state, particularly when `close()` calls on main windows might trigger events during `RiaGuiApplication`'s destruction.
- Rename RifColorLegendData to RifFormationNamesReader to better reflect the
class purpose of reading formation names from .lyr files.
- Remove inheritance of cvf::Object
- Improve const correctness
When fewer than 9 valid realizations exist at a time step, the linear
interpolation percentile formula has no valid result for P10 and P90.
Previously HUGE_VAL (inf) was returned. Now clamp to min/max of the
available sorted values instead, avoiding inf in plotted curves.
OpenTelemetry initialization is now driven by the presence of a config
file: if no config file is found (connection string is empty), init is
skipped silently without writing to the log.
Adds a new menu item "What's New" to the Help menu that opens the
release notes page at https://resinsight.org/releases/release-notes/latest/.
Includes a new star-shaped SVG icon matching the existing help icon style.
Consolidate all urls into constants in RiaNetworkTools
* #12974 Fix zone colors to honor LYR-file specification
- Map formation colors by name instead of palette index in updateFormationNamesOnPlot()
- Map formation colors by categoryValue lookup in updateCellResultLegend(), fixing
incorrect colors when showOnlyVisibleCategoriesInLegend filters the active set
- Add RimColorLegendCollection::createColorLegendFromFormationNames() and call it
from readAllFormationNames() so LYR colors are available after project load
- Auto-assign formation color legend when a formation case is set on a well log track
- Rename fileNameWoPath() to shortName() and switch to baseName() (no extension)
- Remove addCustomColorLegend() from RicImportFormationNamesFeature; logic now lives
in RimColorLegendCollection
- Set formation legend when creating new Well Log Extraction Curve track