#13807 Add a case-less Data View and merge it with Eclipse views in the tree

- Added RimGeneric3dView, a 3D view that is not tied to any grid case,
  useful for wells, surfaces and other data not requiring a reservoir
  grid. The view supports a custom name.
- Introduced RimGenericViewCollection, a new top-level collection that
  holds both Eclipse views and RimGeneric3dView instances. It overrides
  defineUiTreeOrdering() to display both types as a single flat list
  under the top-level 'Views' node.
- RimOilField now exposes a single genericViewCollection instead of a
  plain eclipseViewCollection field.
- RimEclipseViewCollection is unchanged and continues to be used for
  per-case and ensemble view collections.
- Updated RimEclipseCase::globalViewCollection() and related helpers to
  use RimGenericViewCollection, and added matching overloads in
  RicNewViewFeature for creating eclipse views from the merged
  collection.
- Added RicNewGenericDataViewFeature to create a new generic data view
  from the context menu.
This commit is contained in:
Magne Sjaastad committed 2026-09-28 18:35:28 +02:00
1 parent a57e53db05
commit 7838290a4d
28 files changed
+1222 -17

No files matched your search

@@ -78,6 +78,8 @@
#include "cafPdmUiTreeOrdering.h"
#include "cafProgressInfo.h"
#include "cvfBoundingBox.h"
#include <QCollator>
#include <QFile>
#include <QFileInfo>
@@ -401,6 +403,24 @@ std::vector<RimWellPath*> RimWellPathCollection::allWellPaths() const
return m_wellPaths.childrenByType();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::BoundingBox RimWellPathCollection::wellPathsBoundingBox() const
{
cvf::BoundingBox bb;
for ( const auto wellPath : allWellPaths() )
{
if ( !wellPath || !wellPath->wellPathGeometry() ) continue;
for ( const auto& point : wellPath->wellPathGeometry()->wellPathPoints() )
bb.add( point );
}
return bb;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -111,6 +111,7 @@ public:
bool loadDataAndUpdate();
std::vector<RimWellPath*> addWellPaths( QStringList filePaths, QStringList* errorMessages );
std::vector<RimWellPath*> allWellPaths() const;
cvf::BoundingBox wellPathsBoundingBox() const;
void removeWellPath( RimWellPath* wellPath );
void deleteAllWellPaths();