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
This commit is contained in:
Magne Sjaastad
2023-10-03 09:04:46 +02:00
committed by GitHub
parent 21843820e6
commit 10189da362
16 changed files with 130 additions and 64 deletions

View File

@@ -594,7 +594,8 @@ bool RimGridCaseSurface::exportStructSurfaceFromGridCase( std::vector<cvf::Vec3d
QString RimGridCaseSurface::fullName() const
{
QString retval = RimSurface::fullName();
retval += " - K:";
if ( !retval.isEmpty() ) retval += " - ";
retval += "K:";
retval += QString::number( m_oneBasedSliceIndex );
return retval;
}

View File

@@ -234,7 +234,11 @@ QString RimSurface::fullName() const
{
if ( depthOffset() != 0.0 )
{
return QString( "%1 - Offset:%2" ).arg( m_userDescription, QString::number( depthOffset() ) );
QString name = m_userDescription;
if ( !name.isEmpty() ) name += " - ";
name += QString( "Offset:%1" ).arg( QString::number( depthOffset() ) );
return name;
}
return QString( "%1" ).arg( m_userDescription );

View File

@@ -30,6 +30,7 @@
#include "RimGridView.h"
#include "RimProject.h"
#include "RimRegularLegendConfig.h"
#include "RimSeismicSectionCollection.h"
#include "RimSurface.h"
#include "RimSurfaceInView.h"
#include "RimSurfaceResultDefinition.h"
@@ -241,7 +242,6 @@ RimSurface* RimSurfaceCollection::addGridCaseSurface( RimCase* sourceCase, int o
s->setCase( sourceCase );
s->setOneBasedIndex( oneBasedSliceIndex );
s->setUserDescription( "Surface" );
if ( !s->onLoadData() )
{
@@ -305,6 +305,12 @@ void RimSurfaceCollection::updateViews( const std::vector<RimSurface*>& surfsToR
for ( auto view : views )
{
view->updateSurfacesInViewTreeItems();
if ( auto gridView = dynamic_cast<RimGridView*>( view ) )
{
auto seismicCollection = gridView->seismicSectionCollection();
seismicCollection->setSurfacesVisible( surfsToReload );
}
}
std::set<Rim3dView*> viewsNeedingUpdate;