mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2331 Shell of 2dIntersectionView shell added. Fixed access to views on a case including the intersection views also.
This commit is contained in:
parent
548c065290
commit
d616548cd0
@ -61,6 +61,7 @@ ${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.h
|
||||
${CEE_CURRENT_LIST_DIR}RimViewWindow.h
|
||||
${CEE_CURRENT_LIST_DIR}Rim3dView.h
|
||||
${CEE_CURRENT_LIST_DIR}RimGridView.h
|
||||
${CEE_CURRENT_LIST_DIR}Rim2dIntersectionView.h
|
||||
${CEE_CURRENT_LIST_DIR}RimViewManipulator.h
|
||||
${CEE_CURRENT_LIST_DIR}RimCase.h
|
||||
${CEE_CURRENT_LIST_DIR}RimViewController.h
|
||||
@ -163,6 +164,7 @@ ${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimViewWindow.cpp
|
||||
${CEE_CURRENT_LIST_DIR}Rim3dView.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimGridView.cpp
|
||||
${CEE_CURRENT_LIST_DIR}Rim2dIntersectionView.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimViewManipulator.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimCase.cpp
|
||||
${CEE_CURRENT_LIST_DIR}RimViewController.cpp
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -17,194 +17,64 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
#include "RiuViewerToViewInterface.h"
|
||||
#include "RimViewWindow.h"
|
||||
|
||||
#include "cafAppEnum.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmFieldCvfColor.h"
|
||||
#include "cafPdmFieldCvfMat4d.h"
|
||||
#include "cafPdmFieldCvfVec3d.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "Rim3dView.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
|
||||
#include "RivCellSetEnum.h"
|
||||
|
||||
#include "cvfArray.h"
|
||||
#include "cvfBase.h"
|
||||
#include "cvfCollection.h"
|
||||
#include "cvfObject.h"
|
||||
|
||||
#include <QPointer>
|
||||
|
||||
|
||||
class Rim3dOverlayInfoConfig;
|
||||
class RimCase;
|
||||
class RimCellRangeFilter;
|
||||
class RimCellRangeFilterCollection;
|
||||
class RimIntersectionCollection;
|
||||
class RimGridCollection;
|
||||
class RimPropertyFilterCollection;
|
||||
class RimViewController;
|
||||
class RimViewLinker;
|
||||
class RiuViewer;
|
||||
class RimWellPathCollection;
|
||||
class RimIntersection;
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
class BoundingBox;
|
||||
class ModelBasicList;
|
||||
class Scene;
|
||||
class String;
|
||||
class Transform;
|
||||
class Part;
|
||||
class ModelBasicList;
|
||||
}
|
||||
|
||||
namespace caf
|
||||
{
|
||||
class DisplayCoordTransform;
|
||||
}
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class Rim2dIntersectionView : public RimViewWindow, public RiuViewerToViewInterface
|
||||
class Rim2dIntersectionView : public Rim3dView
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
public:
|
||||
Rim2dIntersectionView(void);
|
||||
virtual ~Rim2dIntersectionView(void);
|
||||
|
||||
// Public fields:
|
||||
|
||||
caf::PdmField<QString> name;
|
||||
caf::PdmField<double> scaleZ;
|
||||
caf::PdmField<int> maximumFrameRate;
|
||||
caf::PdmField<bool> hasUserRequestedAnimation;
|
||||
virtual bool isUsingFormationNames() const override;
|
||||
virtual void scheduleGeometryRegen(RivCellSetEnum geometryType) override;
|
||||
virtual RimCase* ownerCase() const override;
|
||||
virtual void selectOverlayInfoConfig() override {}
|
||||
|
||||
// Draw style
|
||||
virtual RimViewLinker* assosiatedViewLinker() const override { return nullptr; }
|
||||
virtual RimViewController* viewController() const override { return nullptr; }
|
||||
|
||||
enum MeshModeType { FULL_MESH, FAULTS_MESH, NO_MESH };
|
||||
enum SurfaceModeType { SURFACE, NO_SURFACE };
|
||||
|
||||
caf::PdmField< caf::AppEnum< MeshModeType > > meshMode;
|
||||
caf::PdmField< caf::AppEnum< SurfaceModeType > > surfaceMode;
|
||||
|
||||
RiuViewer* viewer();
|
||||
|
||||
void setMeshOnlyDrawstyle();
|
||||
void setMeshSurfDrawstyle();
|
||||
void setSurfOnlyDrawstyle();
|
||||
void setFaultMeshSurfDrawstyle();
|
||||
void setSurfaceDrawstyle();
|
||||
|
||||
void disableLighting(bool disable);
|
||||
bool isLightingDisabled() const;
|
||||
|
||||
void showGridCells(bool enableGridCells);
|
||||
bool isGridVisualizationMode() const;
|
||||
|
||||
void setScaleZAndUpdate(double scaleZ);
|
||||
virtual bool showActiveCellsOnly();
|
||||
virtual bool isUsingFormationNames() const = 0;
|
||||
|
||||
virtual QImage snapshotWindowContent() override;
|
||||
virtual void zoomAll() override;
|
||||
void forceShowWindowOn();
|
||||
|
||||
// Animation
|
||||
int currentTimeStep() const { return m_currentTimeStep;}
|
||||
void setCurrentTimeStep(int frameIdx);
|
||||
void setCurrentTimeStepAndUpdate(int frameIdx) override;
|
||||
|
||||
// Updating
|
||||
void updateCurrentTimeStepAndRedraw() override;
|
||||
virtual void scheduleGeometryRegen(RivCellSetEnum geometryType) = 0;
|
||||
void scheduleCreateDisplayModelAndRedraw();
|
||||
void createDisplayModelAndRedraw();
|
||||
void createHighlightDisplayModelWithRedraw();
|
||||
void updateAnnotationItems();
|
||||
|
||||
cvf::ref<caf::DisplayCoordTransform> displayCoordTransform() const override;
|
||||
|
||||
virtual RimCase* ownerCase() const = 0;
|
||||
//Rim3dOverlayInfoConfig* overlayInfoConfig() const;
|
||||
|
||||
protected:
|
||||
|
||||
void setDefaultView();
|
||||
caf::PdmPtrField<RimIntersection*> m_intersection;
|
||||
|
||||
RimWellPathCollection* wellPathCollection();
|
||||
void addWellPathsToModel(cvf::ModelBasicList* wellPathModelBasicList,
|
||||
const cvf::BoundingBox& wellPathClipBoundingBox);
|
||||
virtual void axisLabels(cvf::String* xLabel, cvf::String* yLabel, cvf::String* zLabel) override;
|
||||
virtual void createDisplayModel() override;
|
||||
virtual void createPartCollectionFromSelection(cvf::Collection<cvf::Part>* parts) override;
|
||||
virtual void updateDisplayModelVisibility() override;
|
||||
virtual void clampCurrentTimestep() override;
|
||||
virtual void updateCurrentTimeStep() override;
|
||||
virtual void onTimeStepChanged() override;
|
||||
virtual void updateStaticCellColors() override;
|
||||
virtual void updateScaleTransform() override;
|
||||
virtual cvf::Transform* scaleTransform() override;
|
||||
virtual void resetLegendsInViewer() override;
|
||||
virtual void onLoadDataAndUpdate() override;
|
||||
|
||||
void addDynamicWellPathsToModel(cvf::ModelBasicList* wellPathModelBasicList,
|
||||
const cvf::BoundingBox& wellPathClipBoundingBox);
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
virtual void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) override;
|
||||
|
||||
void createHighlightDisplayModel();
|
||||
cvf::ref<cvf::ModelBasicList> m_intersectionVizModel;
|
||||
cvf::ref<cvf::Transform> m_scaleTransform;
|
||||
|
||||
// Abstract methods to implement in subclasses
|
||||
|
||||
virtual void createDisplayModel() = 0;
|
||||
virtual void createPartCollectionFromSelection(cvf::Collection<cvf::Part>* parts) = 0;
|
||||
|
||||
virtual void updateDisplayModelVisibility() = 0;
|
||||
virtual void clampCurrentTimestep() = 0;
|
||||
|
||||
virtual void updateCurrentTimeStep() = 0;
|
||||
virtual void updateStaticCellColors() = 0;
|
||||
|
||||
virtual void updateScaleTransform() = 0;
|
||||
virtual cvf::Transform* scaleTransform() = 0;
|
||||
|
||||
virtual void resetLegendsInViewer() = 0;
|
||||
|
||||
// Overridden PdmObject methods:
|
||||
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() override { return &name; }
|
||||
virtual void setupBeforeSave() override;
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
|
||||
// Overridden ViewWindow methods:
|
||||
|
||||
virtual QWidget* createViewWidget(QWidget* mainWindowParent) override;
|
||||
virtual void updateViewWidgetAfterCreation() override;
|
||||
virtual void updateMdiWindowTitle() override;
|
||||
virtual void deleteViewWidget() override;
|
||||
virtual QWidget* viewWidget() override;
|
||||
|
||||
protected: // Fields
|
||||
caf::PdmField<int> m_currentTimeStep;
|
||||
//caf::PdmChildField<Rim3dOverlayInfoConfig*> m_overlayInfoConfig;
|
||||
|
||||
protected:
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
|
||||
cvf::ref<cvf::ModelBasicList> m_wellPathPipeVizModel;
|
||||
cvf::ref<cvf::ModelBasicList> m_crossSectionVizModel;
|
||||
cvf::ref<cvf::ModelBasicList> m_highlightVizModel;
|
||||
|
||||
private:
|
||||
// Implementation of RiuViewerToViewInterface
|
||||
|
||||
virtual cvf::Color3f backgroundColor() const override { return m_backgroundColor();}
|
||||
virtual void setCameraPosition(const cvf::Mat4d& cameraPosition) override { m_cameraPosition = cameraPosition; }
|
||||
virtual void setCameraPointOfInterest(const cvf::Vec3d& cameraPointOfInterest) override { m_cameraPointOfInterest = cameraPointOfInterest;}
|
||||
virtual QString timeStepName(int frameIdx) const override;
|
||||
virtual void endAnimation() override;
|
||||
virtual caf::PdmObjectHandle* implementingPdmObject() override { return this; }
|
||||
virtual void handleMdiWindowClosed() override;
|
||||
virtual void setMdiWindowGeometry(const RimMdiWindowGeometry& windowGeometry) override;
|
||||
virtual void selectOverlayInfoConfig() override;
|
||||
|
||||
private:
|
||||
bool m_previousGridModeMeshLinesWasFaults;
|
||||
caf::PdmField<bool> m_disableLighting;
|
||||
caf::PdmField<cvf::Mat4d> m_cameraPosition;
|
||||
caf::PdmField<cvf::Vec3d> m_cameraPointOfInterest;
|
||||
caf::PdmField< cvf::Color3f > m_backgroundColor;
|
||||
};
|
||||
|
||||
|
||||
|
@ -28,6 +28,8 @@
|
||||
|
||||
#include "cafPdmObjectFactory.h"
|
||||
|
||||
#include "Rim2dIntersectionView.h"
|
||||
|
||||
|
||||
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimCase, "RimCase");
|
||||
|
||||
@ -35,7 +37,7 @@ CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimCase, "RimCase");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimCase::RimCase()
|
||||
RimCase::RimCase() : m_isInActiveDestruction(false)
|
||||
{
|
||||
CAF_PDM_InitField(&caseUserDescription, "CaseUserDescription", QString(), "Case Name", "", "" ,"");
|
||||
|
||||
@ -48,6 +50,11 @@ RimCase::RimCase()
|
||||
m_timeStepFilter.uiCapability()->setUiHidden(true);
|
||||
m_timeStepFilter.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_timeStepFilter = new RimTimeStepFilter;
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_intersectionViews, "IntersectionViews", "Intersection Views", ":/CrossSections16x16.png", "", "");
|
||||
m_intersectionViews.uiCapability()->setUiTreeHidden(true);
|
||||
//m_intersectionViews.push_back(new Rim2dIntersectionView());
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -55,7 +62,23 @@ RimCase::RimCase()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimCase::~RimCase()
|
||||
{
|
||||
m_isInActiveDestruction = true; // Needed because destruction of m_intersectionViews results in call to views()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<Rim3dView*> RimCase::views() const
|
||||
{
|
||||
if (m_isInActiveDestruction) return std::vector<Rim3dView*>();
|
||||
|
||||
std::vector<Rim3dView*> allViews = this->allSpecialViews();
|
||||
for (auto view: m_intersectionViews)
|
||||
{
|
||||
allViews.push_back(view);
|
||||
}
|
||||
|
||||
return allViews;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
|
||||
#include "cvfBase.h"
|
||||
#include "cvfVector3.h"
|
||||
@ -32,6 +33,7 @@
|
||||
class Rim3dView;
|
||||
class RimFormationNames;
|
||||
class RimTimeStepFilter;
|
||||
class Rim2dIntersectionView;
|
||||
|
||||
namespace cvf {
|
||||
class BoundingBox;
|
||||
@ -49,7 +51,7 @@ public:
|
||||
|
||||
caf::PdmPtrField<RimFormationNames*> activeFormationNames;
|
||||
|
||||
virtual std::vector<Rim3dView*> views() = 0;
|
||||
std::vector<Rim3dView*> views() const;
|
||||
|
||||
virtual void updateFilePathsFromProjectPath(const QString& projectPath, const QString& oldProjectPath) = 0;
|
||||
|
||||
@ -71,11 +73,17 @@ public:
|
||||
|
||||
protected:
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
|
||||
virtual std::vector<Rim3dView*> allSpecialViews() const = 0;
|
||||
|
||||
private:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() override { return &caseUserDescription; }
|
||||
|
||||
protected:
|
||||
caf::PdmChildField<RimTimeStepFilter*> m_timeStepFilter;
|
||||
caf::PdmChildArrayField<Rim2dIntersectionView*> m_intersectionViews;
|
||||
|
||||
private:
|
||||
bool m_isInActiveDestruction;
|
||||
};
|
||||
|
||||
|
||||
|
@ -673,13 +673,14 @@ bool RimEclipseCase::openReserviorCase()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<Rim3dView*> RimEclipseCase::views()
|
||||
std::vector<Rim3dView*> RimEclipseCase::allSpecialViews() const
|
||||
{
|
||||
std::vector<Rim3dView*> views;
|
||||
for (size_t vIdx = 0; vIdx < reservoirViews.size(); ++vIdx)
|
||||
{
|
||||
views.push_back(reservoirViews[vIdx]);
|
||||
}
|
||||
|
||||
return views;
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,6 @@ public:
|
||||
|
||||
RimCaseCollection* parentCaseCollection();
|
||||
|
||||
virtual std::vector<Rim3dView*> views();
|
||||
virtual QStringList timeStepStrings() const override;
|
||||
virtual QString timeStepName(int frameIdx) const override;
|
||||
virtual std::vector<QDateTime> timeStepDates() const override;
|
||||
@ -122,6 +121,7 @@ protected:
|
||||
|
||||
private:
|
||||
void createTimeStepFormatString();
|
||||
virtual std::vector<Rim3dView*> allSpecialViews() const override;
|
||||
|
||||
private:
|
||||
cvf::ref<RigEclipseCaseData> m_rigEclipseCase;
|
||||
|
@ -221,7 +221,7 @@ void RimGeoMechCase::updateFilePathsFromProjectPath(const QString& newProjectPat
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<Rim3dView*> RimGeoMechCase::views()
|
||||
std::vector<Rim3dView*> RimGeoMechCase::allSpecialViews() const
|
||||
{
|
||||
std::vector<Rim3dView*> views;
|
||||
for (size_t vIdx = 0; vIdx < geoMechViews.size(); ++vIdx)
|
||||
|
@ -57,7 +57,6 @@ public:
|
||||
RimGeoMechView* createAndAddReservoirView();
|
||||
|
||||
virtual void updateFilePathsFromProjectPath(const QString& projectPath, const QString& oldProjectPath);
|
||||
virtual std::vector<Rim3dView*> views() override;
|
||||
|
||||
virtual std::vector<QDateTime> timeStepDates() const override;
|
||||
virtual QStringList timeStepStrings() const override;
|
||||
@ -91,6 +90,7 @@ private:
|
||||
|
||||
void closeSelectedElementPropertyFiles();
|
||||
void reloadSelectedElementPropertyFiles();
|
||||
virtual std::vector<Rim3dView*> allSpecialViews() const override;
|
||||
|
||||
private:
|
||||
cvf::ref<RigGeoMechCaseData> m_geoMechCaseData;
|
||||
|
Loading…
Reference in New Issue
Block a user