Add support for connecting a lateral to a parent well from Python (#12613)

* Updates well path connection logic.

Refactors well path connection to ensure tie-in location is updated correctly after connecting to a parent well. This ensures the visualization and data consistency are maintained.

* Updates connected editors after target manipulation

Ensures that connected editors are updated whenever the target is manipulated through the 3D manipulator.

* #12613 Adds functionality to append lateral well paths
This commit is contained in:
Magne Sjaastad authored and GitHub committed 2025-09-08 15:33:16 +02:00
1 parent 0255d98a2b
commit 01ad456a3b
8 files changed
+315 -1

No files matched your search

@@ -267,6 +267,8 @@ void RimModeledWellPath::updateTieInLocationFromParentWell()
m_geometryDefinition->setIsAttachedToParentWell( false );
m_geometryDefinition->setFixedWellPathPoints( {} );
m_geometryDefinition->setFixedMeasuredDepths( {} );
updateWellPathVisualization();
}
}
@@ -286,3 +288,13 @@ void RimModeledWellPath::updateReferencePoint()
auto refPoint = topLevelModelledWell->geometryDefinition()->anchorPointXyz();
m_geometryDefinition->setReferencePointXyz( refPoint );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimModeledWellPath::connectWellPaths( RimWellPath* parentWell, double tieInMeasuredDepth )
{
RimWellPath::connectWellPaths( parentWell, tieInMeasuredDepth );
updateTieInLocationFromParentWell();
}
@@ -42,6 +42,8 @@ public:
void updateTieInLocationFromParentWell();
void updateReferencePoint();
virtual void connectWellPaths( RimWellPath* parentWell, double tieInMeasuredDepth ) override;
private:
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName ) override;
void onGeometryDefinitionChanged( const caf::SignalEmitter* emitter, bool fullUpdate );
@@ -172,7 +172,7 @@ public:
std::vector<RimWellPath*> wellPathLaterals() const;
RimWellPathTieIn* wellPathTieIn() const;
void connectWellPaths( RimWellPath* parentWell, double tieInMeasuredDepth );
virtual void connectWellPaths( RimWellPath* parentWell, double tieInMeasuredDepth );
protected:
// Override PdmObject