mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#657) Create new display model when adding / deleting a cross section
This commit is contained in:
@@ -22,8 +22,6 @@
|
|||||||
#include "RimCrossSection.h"
|
#include "RimCrossSection.h"
|
||||||
#include "RimCrossSectionCollection.h"
|
#include "RimCrossSectionCollection.h"
|
||||||
|
|
||||||
#include "RiuMainWindow.h"
|
|
||||||
|
|
||||||
#include "cafCmdExecCommandManager.h"
|
#include "cafCmdExecCommandManager.h"
|
||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManager.h"
|
||||||
|
|
||||||
@@ -96,11 +94,8 @@ void RicAppendCrossSectionFeatureCmd::redo()
|
|||||||
CVF_ASSERT(m_crossSectionCollection);
|
CVF_ASSERT(m_crossSectionCollection);
|
||||||
|
|
||||||
RimCrossSection* crossSection = new RimCrossSection();
|
RimCrossSection* crossSection = new RimCrossSection();
|
||||||
crossSection->name = QString("Cross Section (%1)").arg(m_crossSectionCollection->crossSections.size() + 1);
|
crossSection->name = QString("Cross Section");
|
||||||
m_crossSectionCollection->crossSections.push_back(crossSection);
|
m_crossSectionCollection->appendCrossSection(crossSection);
|
||||||
|
|
||||||
m_crossSectionCollection->updateConnectedEditors();
|
|
||||||
RiuMainWindow::instance()->setCurrentObjectInTreeView(crossSection);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -24,8 +24,6 @@
|
|||||||
#include "RimEclipseView.h"
|
#include "RimEclipseView.h"
|
||||||
#include "RimEclipseWell.h"
|
#include "RimEclipseWell.h"
|
||||||
|
|
||||||
#include "RiuMainWindow.h"
|
|
||||||
|
|
||||||
#include "cafCmdExecCommandManager.h"
|
#include "cafCmdExecCommandManager.h"
|
||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManager.h"
|
||||||
|
|
||||||
@@ -109,10 +107,7 @@ void RicNewSimWellCrossSectionCmd::redo()
|
|||||||
crossSection->type = RimCrossSection::CS_SIMULATION_WELL;
|
crossSection->type = RimCrossSection::CS_SIMULATION_WELL;
|
||||||
crossSection->simulationWell = m_wellPath;
|
crossSection->simulationWell = m_wellPath;
|
||||||
|
|
||||||
m_crossSectionCollection->crossSections.push_back(crossSection);
|
m_crossSectionCollection->appendCrossSection(crossSection);
|
||||||
|
|
||||||
m_crossSectionCollection->updateConnectedEditors();
|
|
||||||
RiuMainWindow::instance()->setCurrentObjectInTreeView(crossSection);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
#include "RimCrossSectionCollection.h"
|
#include "RimCrossSectionCollection.h"
|
||||||
#include "RimWellPath.h"
|
#include "RimWellPath.h"
|
||||||
|
|
||||||
#include "RiuMainWindow.h"
|
|
||||||
|
|
||||||
#include "cafCmdExecCommandManager.h"
|
#include "cafCmdExecCommandManager.h"
|
||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManager.h"
|
||||||
|
|
||||||
@@ -123,10 +121,7 @@ void RicNewWellPathCrossSectionFeatureCmd::redo()
|
|||||||
crossSection->type = RimCrossSection::CS_WELL_PATH;
|
crossSection->type = RimCrossSection::CS_WELL_PATH;
|
||||||
crossSection->wellPath = m_wellPath;
|
crossSection->wellPath = m_wellPath;
|
||||||
|
|
||||||
m_crossSectionCollection->crossSections.push_back(crossSection);
|
m_crossSectionCollection->appendCrossSection(crossSection);
|
||||||
|
|
||||||
m_crossSectionCollection->updateConnectedEditors();
|
|
||||||
RiuMainWindow::instance()->setCurrentObjectInTreeView(crossSection);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include "RicDeleteItemExecData.h"
|
#include "RicDeleteItemExecData.h"
|
||||||
|
|
||||||
#include "RimCellRangeFilterCollection.h"
|
#include "RimCellRangeFilterCollection.h"
|
||||||
|
#include "RimCrossSectionCollection.h"
|
||||||
#include "RimEclipsePropertyFilterCollection.h"
|
#include "RimEclipsePropertyFilterCollection.h"
|
||||||
#include "RimGeoMechPropertyFilterCollection.h"
|
#include "RimGeoMechPropertyFilterCollection.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
@@ -102,6 +103,13 @@ void RicDeleteItemExec::redo()
|
|||||||
view->scheduleCreateDisplayModelAndRedraw();
|
view->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RimCrossSectionCollection* crossSectionColl;
|
||||||
|
parentObj->firstAnchestorOrThisOfType(crossSectionColl);
|
||||||
|
if (view && crossSectionColl)
|
||||||
|
{
|
||||||
|
view->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
}
|
||||||
|
|
||||||
RimWellPathCollection* wellPathColl;
|
RimWellPathCollection* wellPathColl;
|
||||||
parentObj->firstAnchestorOrThisOfType(wellPathColl);
|
parentObj->firstAnchestorOrThisOfType(wellPathColl);
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include "RimCrossSection.h"
|
#include "RimCrossSection.h"
|
||||||
#include "RivCrossSectionPartMgr.h"
|
#include "RivCrossSectionPartMgr.h"
|
||||||
|
#include "RiuMainWindow.h"
|
||||||
|
#include "RimView.h"
|
||||||
|
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(RimCrossSectionCollection, "CrossSectionCollection");
|
CAF_PDM_SOURCE_INIT(RimCrossSectionCollection, "CrossSectionCollection");
|
||||||
@@ -32,8 +34,8 @@ RimCrossSectionCollection::RimCrossSectionCollection()
|
|||||||
{
|
{
|
||||||
CAF_PDM_InitObject("Cross Sections", ":/undefined_image.png", "", "");
|
CAF_PDM_InitObject("Cross Sections", ":/undefined_image.png", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&crossSections, "CrossSections", "Cross Sections", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_crossSections, "CrossSections", "Cross Sections", "", "", "");
|
||||||
crossSections.uiCapability()->setUiHidden(true);
|
m_crossSections.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
CAF_PDM_InitField(&isActive, "Active", true, "Active", "", "", "");
|
CAF_PDM_InitField(&isActive, "Active", true, "Active", "", "", "");
|
||||||
isActive.uiCapability()->setUiHidden(true);
|
isActive.uiCapability()->setUiHidden(true);
|
||||||
@@ -52,9 +54,9 @@ caf::PdmFieldHandle* RimCrossSectionCollection::objectToggleField()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimCrossSectionCollection::applySingleColorEffect()
|
void RimCrossSectionCollection::applySingleColorEffect()
|
||||||
{
|
{
|
||||||
for (size_t csIdx = 0; csIdx < crossSections.size(); ++csIdx)
|
for (size_t csIdx = 0; csIdx < m_crossSections.size(); ++csIdx)
|
||||||
{
|
{
|
||||||
RimCrossSection* cs = crossSections[csIdx];
|
RimCrossSection* cs = m_crossSections[csIdx];
|
||||||
cs->crossSectionPartMgr()->applySingleColorEffect();
|
cs->crossSectionPartMgr()->applySingleColorEffect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -64,9 +66,9 @@ void RimCrossSectionCollection::applySingleColorEffect()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimCrossSectionCollection::updateCellResultColor(size_t timeStepIndex, RimEclipseCellColors* cellResultColors)
|
void RimCrossSectionCollection::updateCellResultColor(size_t timeStepIndex, RimEclipseCellColors* cellResultColors)
|
||||||
{
|
{
|
||||||
for (size_t csIdx = 0; csIdx < crossSections.size(); ++csIdx)
|
for (size_t csIdx = 0; csIdx < m_crossSections.size(); ++csIdx)
|
||||||
{
|
{
|
||||||
RimCrossSection* cs = crossSections[csIdx];
|
RimCrossSection* cs = m_crossSections[csIdx];
|
||||||
cs->crossSectionPartMgr()->updateCellResultColor(timeStepIndex, cellResultColors);
|
cs->crossSectionPartMgr()->updateCellResultColor(timeStepIndex, cellResultColors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -76,9 +78,9 @@ void RimCrossSectionCollection::updateCellResultColor(size_t timeStepIndex, RimE
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimCrossSectionCollection::appendPartsToModel(cvf::ModelBasicList* model, cvf::Transform* scaleTransform)
|
void RimCrossSectionCollection::appendPartsToModel(cvf::ModelBasicList* model, cvf::Transform* scaleTransform)
|
||||||
{
|
{
|
||||||
for (size_t csIdx = 0; csIdx < crossSections.size(); ++csIdx)
|
for (size_t csIdx = 0; csIdx < m_crossSections.size(); ++csIdx)
|
||||||
{
|
{
|
||||||
RimCrossSection* cs = crossSections[csIdx];
|
RimCrossSection* cs = m_crossSections[csIdx];
|
||||||
if (cs->isActive)
|
if (cs->isActive)
|
||||||
{
|
{
|
||||||
cs->crossSectionPartMgr()->appendNativeCrossSectionFacesToModel(model, scaleTransform);
|
cs->crossSectionPartMgr()->appendNativeCrossSectionFacesToModel(model, scaleTransform);
|
||||||
@@ -86,3 +88,21 @@ void RimCrossSectionCollection::appendPartsToModel(cvf::ModelBasicList* model, c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimCrossSectionCollection::appendCrossSection(RimCrossSection* crossSection)
|
||||||
|
{
|
||||||
|
m_crossSections.push_back(crossSection);
|
||||||
|
|
||||||
|
updateConnectedEditors();
|
||||||
|
RiuMainWindow::instance()->setCurrentObjectInTreeView(crossSection);
|
||||||
|
|
||||||
|
RimView* rimView = NULL;
|
||||||
|
firstAnchestorOrThisOfType(rimView);
|
||||||
|
if (rimView)
|
||||||
|
{
|
||||||
|
rimView->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -44,15 +44,21 @@ public:
|
|||||||
RimCrossSectionCollection();
|
RimCrossSectionCollection();
|
||||||
|
|
||||||
caf::PdmField<bool> isActive;
|
caf::PdmField<bool> isActive;
|
||||||
caf::PdmChildArrayField<RimCrossSection*> crossSections;
|
|
||||||
|
void appendCrossSection(RimCrossSection* crossSection);
|
||||||
|
|
||||||
|
|
||||||
|
// Visualization interface
|
||||||
|
|
||||||
void applySingleColorEffect();
|
void applySingleColorEffect();
|
||||||
void updateCellResultColor(size_t timeStepIndex, RimEclipseCellColors* cellResultColors);
|
void updateCellResultColor(size_t timeStepIndex, RimEclipseCellColors* cellResultColors);
|
||||||
|
|
||||||
void appendPartsToModel(cvf::ModelBasicList* model, cvf::Transform* scaleTransform);
|
void appendPartsToModel(cvf::ModelBasicList* model, cvf::Transform* scaleTransform);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
//virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
//virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName);
|
//virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName);
|
||||||
virtual caf::PdmFieldHandle* objectToggleField();
|
virtual caf::PdmFieldHandle* objectToggleField();
|
||||||
|
|
||||||
|
private:
|
||||||
|
caf::PdmChildArrayField<RimCrossSection*> m_crossSections;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user