diff --git a/ApplicationCode/ModelVisualization/RivWellPathPartMgr.cpp b/ApplicationCode/ModelVisualization/RivWellPathPartMgr.cpp index 0c20b0b1d1..8bda6e44cf 100644 --- a/ApplicationCode/ModelVisualization/RivWellPathPartMgr.cpp +++ b/ApplicationCode/ModelVisualization/RivWellPathPartMgr.cpp @@ -159,8 +159,7 @@ void RivWellPathPartMgr::appendImportedFishbonesToModel(cvf::ModelBasicList* mod //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RivWellPathPartMgr::appendPerforationsToModel(const QDateTime& currentViewDate, - cvf::ModelBasicList* model, +void RivWellPathPartMgr::appendPerforationsToModel(cvf::ModelBasicList* model, const caf::DisplayCoordTransform* displayCoordTransform, double characteristicCellSize) { @@ -172,6 +171,18 @@ void RivWellPathPartMgr::appendPerforationsToModel(const QDateTime& currentViewD RigWellPath* wellPathGeometry = m_rimWellPath->wellPathGeometry(); if (!wellPathGeometry) return; + QDateTime currentTimeStamp; + RimEclipseCase* eclipseCase = nullptr; + m_rimView->firstAncestorOrThisOfTypeAsserted(eclipseCase); + + size_t timeStepIndex = m_rimView->currentTimeStep(); + + std::vector timeStamps = eclipseCase->timeStepDates(); + if (timeStepIndex < static_cast(timeStamps.size())) + { + currentTimeStamp = timeStamps[timeStepIndex]; + } + // Since we're using the index of measured depths to find the index of a point, ensure they're equal CVF_ASSERT(wellPathGeometry->m_measuredDepths.size() == wellPathGeometry->m_wellPathPoints.size()); @@ -186,7 +197,7 @@ void RivWellPathPartMgr::appendPerforationsToModel(const QDateTime& currentViewD if (!perforation->isChecked()) continue; if (perforation->startMD() > perforation->endMD()) continue; - if (currentViewDate.isValid() && !perforation->isActiveOnDate(currentViewDate)) continue; + if (currentTimeStamp.isValid() && !perforation->isActiveOnDate(currentTimeStamp)) continue; using namespace std; pair, vector > displayCoordsAndMD = wellPathGeometry->clippedPointSubset(perforation->startMD(), @@ -229,7 +240,9 @@ void RivWellPathPartMgr::appendVirtualTransmissibilitiesToModel(cvf::ModelBasicL { m_virtualConnectionFactorPartMgr = new RivVirtualConnFactorPartMgr(m_rimWellPath, eclView->virtualPerforationResult()); - m_virtualConnectionFactorPartMgr->appendDynamicGeometryPartsToModel(model, 0); + size_t timeStepIndex = m_rimView->currentTimeStep(); + + m_virtualConnectionFactorPartMgr->appendDynamicGeometryPartsToModel(model, timeStepIndex); } } @@ -422,14 +435,12 @@ void RivWellPathPartMgr::appendStaticGeometryPartsToModel(cvf::ModelBasicList* m appendFishboneSubsPartsToModel(model, displayCoordTransform, characteristicCellSize); appendImportedFishbonesToModel(model, displayCoordTransform, characteristicCellSize); - appendVirtualTransmissibilitiesToModel(model, displayCoordTransform, characteristicCellSize); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RivWellPathPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model, - const QDateTime& timeStamp, double characteristicCellSize, const cvf::BoundingBox& wellPathClipBoundingBox, const caf::DisplayCoordTransform* displayCoordTransform) @@ -447,7 +458,8 @@ void RivWellPathPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicList* if (wellPathCollection->wellPathVisibility() != RimWellPathCollection::FORCE_ALL_ON && m_rimWellPath->showWellPath() == false) return; - appendPerforationsToModel(timeStamp, model, displayCoordTransform, characteristicCellSize); + appendPerforationsToModel(model, displayCoordTransform, characteristicCellSize); + appendVirtualTransmissibilitiesToModel(model, displayCoordTransform, characteristicCellSize); m_3dWellLogCurvePartMgr = new Riv3dWellLogPlanePartMgr(m_rimWellPath->wellPathGeometry()); m_3dWellLogCurvePartMgr->append3dWellLogCurvesToModel(model, displayCoordTransform, m_rimWellPath->vectorOf3dWellLogCurves()); diff --git a/ApplicationCode/ModelVisualization/RivWellPathPartMgr.h b/ApplicationCode/ModelVisualization/RivWellPathPartMgr.h index a1871b9821..afd6aea4ea 100644 --- a/ApplicationCode/ModelVisualization/RivWellPathPartMgr.h +++ b/ApplicationCode/ModelVisualization/RivWellPathPartMgr.h @@ -67,7 +67,6 @@ public: void appendStaticFracturePartsToModel(cvf::ModelBasicList* model); void appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model, - const QDateTime& timeStamp, double characteristicCellSize, const cvf::BoundingBox& wellPathClipBoundingBox, const caf::DisplayCoordTransform* displayCoordTransform); @@ -83,8 +82,7 @@ private: const caf::DisplayCoordTransform* displayCoordTransform, double characteristicCellSize); - void appendPerforationsToModel(const QDateTime& currentViewDate, - cvf::ModelBasicList* model, + void appendPerforationsToModel(cvf::ModelBasicList* model, const caf::DisplayCoordTransform* displayCoordTransform, double characteristicCellSize); diff --git a/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.cpp b/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.cpp index 13de516a3c..a8807ed255 100644 --- a/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.cpp +++ b/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.cpp @@ -74,7 +74,6 @@ void RivWellPathsPartMgr::appendStaticFracturePartsToModel(cvf::ModelBasicList* /// //-------------------------------------------------------------------------------------------------- void RivWellPathsPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model, - const QDateTime& timeStamp, double characteristicCellSize, const cvf::BoundingBox& wellPathClipBoundingBox, const caf::DisplayCoordTransform* displayCoordTransform) @@ -86,7 +85,6 @@ void RivWellPathsPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicList* for (auto& partMgr : m_wellPatshsPartMgrs) { partMgr->appendDynamicGeometryPartsToModel(model, - timeStamp, characteristicCellSize, wellPathClipBoundingBox, displayCoordTransform); diff --git a/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.h b/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.h index 164f1ddf00..4124ce1093 100644 --- a/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.h +++ b/ApplicationCode/ModelVisualization/RivWellPathsPartMgr.h @@ -64,7 +64,6 @@ public: void appendStaticFracturePartsToModel(cvf::ModelBasicList* model); void appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model, - const QDateTime& timeStamp, double characteristicCellSize, const cvf::BoundingBox& wellPathClipBoundingBox, const caf::DisplayCoordTransform* displayCoordTransform); diff --git a/ApplicationCode/ProjectDataModel/Rim3dView.cpp b/ApplicationCode/ProjectDataModel/Rim3dView.cpp index 926b2f635f..41fae6450b 100644 --- a/ApplicationCode/ProjectDataModel/Rim3dView.cpp +++ b/ApplicationCode/ProjectDataModel/Rim3dView.cpp @@ -681,15 +681,7 @@ void Rim3dView::addDynamicWellPathsToModel(cvf::ModelBasicList* wellPathModelBas cvf::ref transForm = displayCoordTransform(); - QDateTime currentTimeStamp; - std::vector timeStamps = ownerCase()->timeStepDates(); - if (currentTimeStep() < static_cast(timeStamps.size())) - { - currentTimeStamp = timeStamps[currentTimeStep()]; - } - m_wellPathsPartManager->appendDynamicGeometryPartsToModel(wellPathModelBasicList, - currentTimeStamp, this->ownerCase()->characteristicCellSize(), wellPathClipBoundingBox, transForm.p());