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:
parent
29973bbcf6
commit
089c9d47da
@ -22,8 +22,6 @@
|
||||
#include "RimCrossSection.h"
|
||||
#include "RimCrossSectionCollection.h"
|
||||
|
||||
#include "RiuMainWindow.h"
|
||||
|
||||
#include "cafCmdExecCommandManager.h"
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
@ -96,11 +94,8 @@ void RicAppendCrossSectionFeatureCmd::redo()
|
||||
CVF_ASSERT(m_crossSectionCollection);
|
||||
|
||||
RimCrossSection* crossSection = new RimCrossSection();
|
||||
crossSection->name = QString("Cross Section (%1)").arg(m_crossSectionCollection->crossSections.size() + 1);
|
||||
m_crossSectionCollection->crossSections.push_back(crossSection);
|
||||
|
||||
m_crossSectionCollection->updateConnectedEditors();
|
||||
RiuMainWindow::instance()->setCurrentObjectInTreeView(crossSection);
|
||||
crossSection->name = QString("Cross Section");
|
||||
m_crossSectionCollection->appendCrossSection(crossSection);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -24,8 +24,6 @@
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimEclipseWell.h"
|
||||
|
||||
#include "RiuMainWindow.h"
|
||||
|
||||
#include "cafCmdExecCommandManager.h"
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
@ -109,10 +107,7 @@ void RicNewSimWellCrossSectionCmd::redo()
|
||||
crossSection->type = RimCrossSection::CS_SIMULATION_WELL;
|
||||
crossSection->simulationWell = m_wellPath;
|
||||
|
||||
m_crossSectionCollection->crossSections.push_back(crossSection);
|
||||
|
||||
m_crossSectionCollection->updateConnectedEditors();
|
||||
RiuMainWindow::instance()->setCurrentObjectInTreeView(crossSection);
|
||||
m_crossSectionCollection->appendCrossSection(crossSection);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -23,8 +23,6 @@
|
||||
#include "RimCrossSectionCollection.h"
|
||||
#include "RimWellPath.h"
|
||||
|
||||
#include "RiuMainWindow.h"
|
||||
|
||||
#include "cafCmdExecCommandManager.h"
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
@ -123,10 +121,7 @@ void RicNewWellPathCrossSectionFeatureCmd::redo()
|
||||
crossSection->type = RimCrossSection::CS_WELL_PATH;
|
||||
crossSection->wellPath = m_wellPath;
|
||||
|
||||
m_crossSectionCollection->crossSections.push_back(crossSection);
|
||||
|
||||
m_crossSectionCollection->updateConnectedEditors();
|
||||
RiuMainWindow::instance()->setCurrentObjectInTreeView(crossSection);
|
||||
m_crossSectionCollection->appendCrossSection(crossSection);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "RicDeleteItemExecData.h"
|
||||
|
||||
#include "RimCellRangeFilterCollection.h"
|
||||
#include "RimCrossSectionCollection.h"
|
||||
#include "RimEclipsePropertyFilterCollection.h"
|
||||
#include "RimGeoMechPropertyFilterCollection.h"
|
||||
#include "RimProject.h"
|
||||
@ -102,6 +103,13 @@ void RicDeleteItemExec::redo()
|
||||
view->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
|
||||
RimCrossSectionCollection* crossSectionColl;
|
||||
parentObj->firstAnchestorOrThisOfType(crossSectionColl);
|
||||
if (view && crossSectionColl)
|
||||
{
|
||||
view->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
|
||||
RimWellPathCollection* wellPathColl;
|
||||
parentObj->firstAnchestorOrThisOfType(wellPathColl);
|
||||
|
||||
|
@ -21,6 +21,8 @@
|
||||
|
||||
#include "RimCrossSection.h"
|
||||
#include "RivCrossSectionPartMgr.h"
|
||||
#include "RiuMainWindow.h"
|
||||
#include "RimView.h"
|
||||
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimCrossSectionCollection, "CrossSectionCollection");
|
||||
@ -32,8 +34,8 @@ RimCrossSectionCollection::RimCrossSectionCollection()
|
||||
{
|
||||
CAF_PDM_InitObject("Cross Sections", ":/undefined_image.png", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&crossSections, "CrossSections", "Cross Sections", "", "", "");
|
||||
crossSections.uiCapability()->setUiHidden(true);
|
||||
CAF_PDM_InitFieldNoDefault(&m_crossSections, "CrossSections", "Cross Sections", "", "", "");
|
||||
m_crossSections.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&isActive, "Active", true, "Active", "", "", "");
|
||||
isActive.uiCapability()->setUiHidden(true);
|
||||
@ -52,9 +54,9 @@ caf::PdmFieldHandle* RimCrossSectionCollection::objectToggleField()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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();
|
||||
}
|
||||
}
|
||||
@ -64,9 +66,9 @@ void RimCrossSectionCollection::applySingleColorEffect()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -76,9 +78,9 @@ void RimCrossSectionCollection::updateCellResultColor(size_t timeStepIndex, RimE
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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)
|
||||
{
|
||||
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();
|
||||
|
||||
caf::PdmField<bool> isActive;
|
||||
caf::PdmChildArrayField<RimCrossSection*> crossSections;
|
||||
|
||||
void appendCrossSection(RimCrossSection* crossSection);
|
||||
|
||||
|
||||
// Visualization interface
|
||||
|
||||
void applySingleColorEffect();
|
||||
void updateCellResultColor(size_t timeStepIndex, RimEclipseCellColors* cellResultColors);
|
||||
|
||||
void appendPartsToModel(cvf::ModelBasicList* model, cvf::Transform* scaleTransform);
|
||||
|
||||
protected:
|
||||
//virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
//virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName);
|
||||
virtual caf::PdmFieldHandle* objectToggleField();
|
||||
|
||||
private:
|
||||
caf::PdmChildArrayField<RimCrossSection*> m_crossSections;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user