mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Z-Scale working for geomech views
Alligned GeoMech and Reservoir views through RimView
This commit is contained in:
parent
7a2640b52f
commit
af2699d362
@ -37,7 +37,6 @@ public:
|
||||
RivReservoirViewPartMgr(RimReservoirView * resv);
|
||||
|
||||
cvf::Transform* scaleTransform() { return m_scaleTransform.p();}
|
||||
void setScaleTransform(cvf::Mat4d scale) { m_scaleTransform->setLocalTransform(scale);}
|
||||
|
||||
enum ReservoirGeometryCacheType
|
||||
{
|
||||
|
@ -106,6 +106,8 @@ void RimGeoMechView::updateViewerWidgetWindowTitle()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechView::loadDataAndUpdate()
|
||||
{
|
||||
updateScaleTransform();
|
||||
|
||||
if (m_geomechCase)
|
||||
{
|
||||
m_geomechCase->openGeoMechCase();
|
||||
@ -130,12 +132,10 @@ void RimGeoMechView::loadDataAndUpdate()
|
||||
|
||||
void RimGeoMechView::updateScaleTransform()
|
||||
{
|
||||
CVF_ASSERT(m_scaleTransform.notNull());
|
||||
|
||||
cvf::Mat4d scale = cvf::Mat4d::IDENTITY;
|
||||
scale(2, 2) = scaleZ();
|
||||
|
||||
m_scaleTransform->setLocalTransform(scale);
|
||||
this->scaleTransform()->setLocalTransform(scale);
|
||||
|
||||
if (m_viewer) m_viewer->updateCachedValuesInScene();
|
||||
}
|
||||
@ -406,6 +406,14 @@ bool RimGeoMechView::isTimeStepDependentDataVisible()
|
||||
return (cellResult->resultFieldName() != "");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::Transform* RimGeoMechView::scaleTransform()
|
||||
{
|
||||
return m_scaleTransform.p();
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
|
@ -67,7 +67,8 @@ public:
|
||||
private:
|
||||
virtual void createDisplayModel();
|
||||
virtual void updateDisplayModelVisibility();
|
||||
void updateScaleTransform();
|
||||
virtual void updateScaleTransform();
|
||||
virtual cvf::Transform* scaleTransform();
|
||||
|
||||
virtual void clampCurrentTimestep();
|
||||
|
||||
@ -78,6 +79,7 @@ private:
|
||||
virtual void resetLegendsInViewer();
|
||||
|
||||
void updateLegends();
|
||||
|
||||
caf::PdmPointer<RimGeoMechCase> m_geomechCase;
|
||||
cvf::ref<RivGeoMechPartMgr> m_geoMechFullModel;
|
||||
bool m_isGeoMechFullGenerated;
|
||||
|
@ -188,37 +188,7 @@ void RimReservoirView::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
{
|
||||
RimView::fieldChangedByUi(changedField, oldValue, newValue);
|
||||
|
||||
if (changedField == &scaleZ)
|
||||
{
|
||||
if (scaleZ < 1) scaleZ = 1;
|
||||
|
||||
// Regenerate well paths
|
||||
RimOilField* oilFields = RiaApplication::instance()->project() ? RiaApplication::instance()->project()->activeOilField() : NULL;
|
||||
RimWellPathCollection* wellPathCollection = (oilFields) ? oilFields->wellPathCollection() : NULL;
|
||||
if (wellPathCollection) wellPathCollection->wellPathCollectionPartMgr()->scheduleGeometryRegen();
|
||||
|
||||
if (m_viewer)
|
||||
{
|
||||
cvf::Vec3d poi = m_viewer->pointOfInterest();
|
||||
cvf::Vec3d eye, dir, up;
|
||||
eye = m_viewer->mainCamera()->position();
|
||||
dir = m_viewer->mainCamera()->direction();
|
||||
up = m_viewer->mainCamera()->up();
|
||||
|
||||
eye[2] = poi[2]*scaleZ()/m_reservoirGridPartManager->scaleTransform()->worldTransform()(2, 2) + (eye[2] - poi[2]);
|
||||
poi[2] = poi[2]*scaleZ()/m_reservoirGridPartManager->scaleTransform()->worldTransform()(2, 2);
|
||||
|
||||
m_viewer->mainCamera()->setFromLookAt(eye, eye + dir, up);
|
||||
m_viewer->setPointOfInterest(poi);
|
||||
|
||||
updateScaleTransform();
|
||||
createDisplayModelAndRedraw();
|
||||
m_viewer->update();
|
||||
}
|
||||
|
||||
RiuMainWindow::instance()->updateScaleValue();
|
||||
}
|
||||
else if (changedField == &showWindow)
|
||||
if (changedField == &showWindow)
|
||||
{
|
||||
if (showWindow)
|
||||
{
|
||||
@ -279,14 +249,11 @@ void RimReservoirView::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
|
||||
void RimReservoirView::updateScaleTransform()
|
||||
{
|
||||
CVF_ASSERT(m_reservoirGridPartManager.notNull());
|
||||
CVF_ASSERT(m_pipesPartManager.notNull());
|
||||
|
||||
cvf::Mat4d scale = cvf::Mat4d::IDENTITY;
|
||||
scale(2, 2) = scaleZ();
|
||||
|
||||
m_reservoirGridPartManager->setScaleTransform(scale);
|
||||
m_pipesPartManager->setScaleTransform(m_reservoirGridPartManager->scaleTransform());
|
||||
this->scaleTransform()->setLocalTransform(scale);
|
||||
m_pipesPartManager->setScaleTransform(this->scaleTransform());
|
||||
|
||||
if (m_viewer) m_viewer->updateCachedValuesInScene();
|
||||
}
|
||||
@ -1484,3 +1451,11 @@ void RimReservoirView::resetLegendsInViewer()
|
||||
m_viewer->addColorLegendToBottomLeftCorner(this->cellEdgeResult()->legendConfig->legend());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::Transform* RimReservoirView::scaleTransform()
|
||||
{
|
||||
return m_reservoirGridPartManager->scaleTransform();
|
||||
}
|
||||
|
||||
|
@ -143,7 +143,9 @@ private:
|
||||
virtual void updateCurrentTimeStep();
|
||||
|
||||
void indicesToVisibleGrids(std::vector<size_t>* gridIndices);
|
||||
void updateScaleTransform();
|
||||
virtual void updateScaleTransform();
|
||||
virtual cvf::Transform* scaleTransform();
|
||||
|
||||
virtual void updateStaticCellColors();
|
||||
void updateStaticCellColors(unsigned short geometryType);
|
||||
void updateLegends();
|
||||
|
@ -13,6 +13,10 @@
|
||||
#include "cafFrameAnimationControl.h"
|
||||
|
||||
#include <limits.h>
|
||||
#include "RimOilField.h"
|
||||
#include "RimWellPathCollection.h"
|
||||
#include "RimProject.h"
|
||||
#include "RivWellPathCollectionPartMgr.h"
|
||||
|
||||
|
||||
namespace caf {
|
||||
@ -379,6 +383,36 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
|
||||
updateDisplayModelVisibility();
|
||||
RiuMainWindow::instance()->refreshDrawStyleActions();
|
||||
}
|
||||
else if (changedField == &scaleZ)
|
||||
{
|
||||
if (scaleZ < 1) scaleZ = 1;
|
||||
|
||||
// Regenerate well paths
|
||||
RimOilField* oilFields = RiaApplication::instance()->project() ? RiaApplication::instance()->project()->activeOilField() : NULL;
|
||||
RimWellPathCollection* wellPathCollection = (oilFields) ? oilFields->wellPathCollection() : NULL;
|
||||
if (wellPathCollection) wellPathCollection->wellPathCollectionPartMgr()->scheduleGeometryRegen();
|
||||
|
||||
if (m_viewer)
|
||||
{
|
||||
cvf::Vec3d poi = m_viewer->pointOfInterest();
|
||||
cvf::Vec3d eye, dir, up;
|
||||
eye = m_viewer->mainCamera()->position();
|
||||
dir = m_viewer->mainCamera()->direction();
|
||||
up = m_viewer->mainCamera()->up();
|
||||
|
||||
eye[2] = poi[2]*scaleZ()/this->scaleTransform()->worldTransform()(2, 2) + (eye[2] - poi[2]);
|
||||
poi[2] = poi[2]*scaleZ()/this->scaleTransform()->worldTransform()(2, 2);
|
||||
|
||||
m_viewer->mainCamera()->setFromLookAt(eye, eye + dir, up);
|
||||
m_viewer->setPointOfInterest(poi);
|
||||
|
||||
updateScaleTransform();
|
||||
createDisplayModelAndRedraw();
|
||||
m_viewer->update();
|
||||
}
|
||||
|
||||
RiuMainWindow::instance()->updateScaleValue();
|
||||
}
|
||||
else if (changedField == &surfaceMode)
|
||||
{
|
||||
createDisplayModel();
|
||||
|
@ -28,6 +28,11 @@
|
||||
class RiuViewer;
|
||||
class Rim3dOverlayInfoConfig;
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
class Transform;
|
||||
}
|
||||
|
||||
#define CAF_PDM_ABSTRACT_SOURCE_INIT(ClassName, keyword) \
|
||||
bool ClassName::Error_You_forgot_to_add_the_macro_CAF_PDM_HEADER_INIT_and_or_CAF_PDM_SOURCE_INIT_to_your_cpp_file_for_this_class() { return false;} \
|
||||
QString ClassName::classKeywordStatic() { assert(PdmObject::isValidXmlElementName(keyword)); return keyword; }
|
||||
@ -107,6 +112,9 @@ protected:
|
||||
virtual void updateCurrentTimeStep() = 0;
|
||||
virtual void updateStaticCellColors() = 0;
|
||||
|
||||
virtual void updateScaleTransform() = 0;
|
||||
virtual cvf::Transform* scaleTransform() = 0;
|
||||
|
||||
void updateViewerWidget();
|
||||
virtual void updateViewerWidgetWindowTitle() = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user