mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-24 22:27:55 -05:00
#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
This commit is contained in:
1 parent
d87a0d3048
commit
0012a65922
31 files changed
+1234
-398
No files matched your search
+26
-40
@@ -47,6 +47,7 @@
|
||||
|
||||
#include "RivExtrudedCurveIntersectionPartMgr.h"
|
||||
|
||||
#include "cafCmdFeatureMenuBuilder.h"
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
#include "cafPdmFieldScriptingCapabilityCvfVec3d.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
@@ -253,10 +254,6 @@ RimExtrudedCurveIntersection::RimExtrudedCurveIntersection()
|
||||
caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &m_inputTwoAzimuthPointsFromViewerEnabled );
|
||||
m_inputTwoAzimuthPointsFromViewerEnabled = false;
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_surfaceIntersections, "SurfaceIntersections", "Surface Intersections" );
|
||||
m_surfaceIntersections = new RimSurfaceIntersectionCollection;
|
||||
m_surfaceIntersections->objectChanged.connect( this, &RimExtrudedCurveIntersection::onSurfaceIntersectionsChanged );
|
||||
|
||||
CAF_PDM_InitField( &m_depthUpperThreshold, "UpperThreshold", -300000.0, "Upper Threshold" );
|
||||
m_depthUpperThreshold.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||
|
||||
@@ -731,19 +728,26 @@ QList<caf::PdmOptionItemInfo> RimExtrudedCurveIntersection::calculateValueOption
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimExtrudedCurveIntersection::appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const
|
||||
{
|
||||
appendCommonMenuItems( menuBuilder );
|
||||
|
||||
menuBuilder << "RicSeismicSectionFromIntersectionFeature";
|
||||
menuBuilder.addSeparator();
|
||||
menuBuilder << "RicNewIntersectionViewFeature";
|
||||
menuBuilder.addSeparator();
|
||||
menuBuilder << "RicCopyIntersectionsToAllViewsInCaseFeature";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimExtrudedCurveIntersection::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName )
|
||||
{
|
||||
for ( auto c : m_surfaceIntersections->surfaceIntersectionCurves() )
|
||||
{
|
||||
uiTreeOrdering.add( c );
|
||||
}
|
||||
for ( auto c : m_surfaceIntersections->surfaceIntersectionBands() )
|
||||
{
|
||||
uiTreeOrdering.add( c );
|
||||
}
|
||||
appendSurfaceIntersectionsToTreeOrdering( uiTreeOrdering );
|
||||
|
||||
uiTreeOrdering.skipRemainingChildren( true );
|
||||
}
|
||||
@@ -1298,33 +1302,24 @@ bool RimExtrudedCurveIntersection::showIntersectionGeometry() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSurfaceIntersectionCurve*> RimExtrudedCurveIntersection::surfaceIntersectionCurves() const
|
||||
bool RimExtrudedCurveIntersection::supportsSurfaceIntersectionCurves() const
|
||||
{
|
||||
return m_surfaceIntersections->surfaceIntersectionCurves();
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// The first polyline is used, as the surface intersection curve follows the same line as the
|
||||
/// intersection geometry itself. The curtain is treated as a vertical extrusion, also when the
|
||||
/// intersection has a tilted extrusion direction.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSurfaceIntersectionBand*> RimExtrudedCurveIntersection::surfaceIntersectionBands() const
|
||||
RimIntersectionCurtain RimExtrudedCurveIntersection::surfaceCurtain() const
|
||||
{
|
||||
return m_surfaceIntersections->surfaceIntersectionBands();
|
||||
}
|
||||
auto lines = polyLines();
|
||||
if ( lines.empty() ) return {};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSurfaceIntersectionCurve* RimExtrudedCurveIntersection::addIntersectionCurve()
|
||||
{
|
||||
return m_surfaceIntersections->addIntersectionCurve();
|
||||
}
|
||||
const double extent = defaultCurtainExtent();
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSurfaceIntersectionBand* RimExtrudedCurveIntersection::addIntersectionBand()
|
||||
{
|
||||
return m_surfaceIntersections->addIntersectionBand();
|
||||
return verticalCurtain( lines.front(), extent, -extent );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1388,15 +1383,6 @@ void RimExtrudedCurveIntersection::appendOptionItemsForSources( int
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimExtrudedCurveIntersection::onSurfaceIntersectionsChanged( const caf::SignalEmitter* emitter )
|
||||
{
|
||||
updateAllRequiredEditors();
|
||||
rebuildGeometryAndScheduleCreateDisplayModel();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user