mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#817 New intersection box is created at center of active cells with half the size of active cells bounding box. Grid cell is hidden.
This commit is contained in:
parent
259df01e0a
commit
bb81009b33
@ -18,8 +18,11 @@
|
|||||||
|
|
||||||
#include "RicAppendIntersectionBoxFeature.h"
|
#include "RicAppendIntersectionBoxFeature.h"
|
||||||
|
|
||||||
|
#include "RimCase.h"
|
||||||
#include "RimIntersectionBox.h"
|
#include "RimIntersectionBox.h"
|
||||||
#include "RimIntersectionBoxCollection.h"
|
#include "RimIntersectionBoxCollection.h"
|
||||||
|
#include "RimView.h"
|
||||||
|
#include "RiuMainWindow.h"
|
||||||
|
|
||||||
#include "cafCmdExecCommandManager.h"
|
#include "cafCmdExecCommandManager.h"
|
||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManager.h"
|
||||||
@ -35,7 +38,10 @@ CAF_CMD_SOURCE_INIT(RicAppendIntersectionBoxFeature, "RicAppendIntersectionBoxFe
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RicAppendIntersectionBoxFeature::isCommandEnabled()
|
bool RicAppendIntersectionBoxFeature::isCommandEnabled()
|
||||||
{
|
{
|
||||||
return true;
|
RimIntersectionBoxCollection* coll = RicAppendIntersectionBoxFeature::intersectionBoxCollection();
|
||||||
|
if (coll) return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -43,16 +49,33 @@ bool RicAppendIntersectionBoxFeature::isCommandEnabled()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicAppendIntersectionBoxFeature::onActionTriggered(bool isChecked)
|
void RicAppendIntersectionBoxFeature::onActionTriggered(bool isChecked)
|
||||||
{
|
{
|
||||||
std::vector<caf::PdmObjectHandle*> collection;
|
RimIntersectionBoxCollection* coll = RicAppendIntersectionBoxFeature::intersectionBoxCollection();
|
||||||
caf::SelectionManager::instance()->objectsByType(&collection);
|
|
||||||
CVF_ASSERT(collection.size() == 1);
|
|
||||||
|
|
||||||
RimIntersectionBoxCollection* crossSectionCollection = NULL;
|
if (coll)
|
||||||
collection[0]->firstAnchestorOrThisOfType(crossSectionCollection);
|
{
|
||||||
|
RimIntersectionBox* intersectionBox = new RimIntersectionBox();
|
||||||
|
intersectionBox->name = QString("Intersection Box");
|
||||||
|
|
||||||
CVF_ASSERT(crossSectionCollection);
|
RimCase* rimCase = NULL;
|
||||||
|
coll->firstAnchestorOrThisOfType(rimCase);
|
||||||
|
if (rimCase)
|
||||||
|
{
|
||||||
|
intersectionBox->setModelBoundingBox(rimCase->activeCellsBoundingBox());
|
||||||
|
}
|
||||||
|
|
||||||
crossSectionCollection->appendIntersectionBox();
|
coll->appendIntersectionBox(intersectionBox);
|
||||||
|
|
||||||
|
coll->updateConnectedEditors();
|
||||||
|
RiuMainWindow::instance()->selectAsCurrentItem(intersectionBox);
|
||||||
|
|
||||||
|
RimView* rimView = NULL;
|
||||||
|
coll->firstAnchestorOrThisOfType(rimView);
|
||||||
|
if (rimView)
|
||||||
|
{
|
||||||
|
rimView->showGridCells(false);
|
||||||
|
rimView->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -64,3 +87,20 @@ void RicAppendIntersectionBoxFeature::setupActionLook(QAction* actionToSetup)
|
|||||||
actionToSetup->setText("New Intersection Box");
|
actionToSetup->setText("New Intersection Box");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimIntersectionBoxCollection* RicAppendIntersectionBoxFeature::intersectionBoxCollection()
|
||||||
|
{
|
||||||
|
RimIntersectionBoxCollection* intersectionBoxColl = nullptr;
|
||||||
|
|
||||||
|
std::vector<caf::PdmObjectHandle*> selectedObjects;
|
||||||
|
caf::SelectionManager::instance()->objectsByType(&selectedObjects);
|
||||||
|
if (selectedObjects.size() == 1)
|
||||||
|
{
|
||||||
|
selectedObjects[0]->firstAnchestorOrThisOfType(intersectionBoxColl);
|
||||||
|
}
|
||||||
|
|
||||||
|
return intersectionBoxColl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -35,5 +35,8 @@ protected:
|
|||||||
virtual bool isCommandEnabled();
|
virtual bool isCommandEnabled();
|
||||||
virtual void onActionTriggered( bool isChecked );
|
virtual void onActionTriggered( bool isChecked );
|
||||||
virtual void setupActionLook( QAction* actionToSetup );
|
virtual void setupActionLook( QAction* actionToSetup );
|
||||||
|
|
||||||
|
private:
|
||||||
|
static RimIntersectionBoxCollection* intersectionBoxCollection();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -106,13 +106,13 @@ void RimIntersectionBox::setModelBoundingBox(cvf::BoundingBox& boundingBox)
|
|||||||
{
|
{
|
||||||
m_boundingBox = boundingBox;
|
m_boundingBox = boundingBox;
|
||||||
|
|
||||||
minXCoord = cvf::Math::floor(boundingBox.min().x());
|
minXCoord = boundingBox.min().x() + boundingBox.extent().x() / 4.0;
|
||||||
minYCoord = cvf::Math::floor(boundingBox.min().y());
|
minYCoord = boundingBox.min().y() + boundingBox.extent().y() / 4.0;
|
||||||
minZCoord = cvf::Math::floor(boundingBox.min().z());
|
minZCoord = boundingBox.min().z() + boundingBox.extent().z() / 4.0;
|
||||||
|
|
||||||
maxXCoord = cvf::Math::ceil(boundingBox.max().x());
|
maxXCoord = boundingBox.max().x() - boundingBox.extent().x() / 4.0;
|
||||||
maxYCoord = cvf::Math::ceil(boundingBox.max().y());
|
maxYCoord = boundingBox.max().y() - boundingBox.extent().y() / 4.0;
|
||||||
maxZCoord = cvf::Math::ceil(boundingBox.max().z());
|
maxZCoord = boundingBox.max().z() - boundingBox.extent().z() / 4.0;
|
||||||
|
|
||||||
updateLabelsFromBoundingBox();
|
updateLabelsFromBoundingBox();
|
||||||
}
|
}
|
||||||
|
@ -112,29 +112,9 @@ void RimIntersectionBoxCollection::appendPartsToModel(cvf::ModelBasicList* model
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimIntersectionBoxCollection::appendIntersectionBox()
|
void RimIntersectionBoxCollection::appendIntersectionBox(RimIntersectionBox* intersectionBox)
|
||||||
{
|
{
|
||||||
RimIntersectionBox* intersectionBox = new RimIntersectionBox();
|
|
||||||
intersectionBox->name = QString("Intersection Box");
|
|
||||||
|
|
||||||
RimCase* rimCase = NULL;
|
|
||||||
firstAnchestorOrThisOfType(rimCase);
|
|
||||||
if (rimCase)
|
|
||||||
{
|
|
||||||
intersectionBox->setModelBoundingBox(rimCase->activeCellsBoundingBox());
|
|
||||||
}
|
|
||||||
|
|
||||||
m_intersectionBoxes.push_back(intersectionBox);
|
m_intersectionBoxes.push_back(intersectionBox);
|
||||||
|
|
||||||
updateConnectedEditors();
|
|
||||||
RiuMainWindow::instance()->selectAsCurrentItem(intersectionBox);
|
|
||||||
|
|
||||||
RimView* rimView = NULL;
|
|
||||||
firstAnchestorOrThisOfType(rimView);
|
|
||||||
if (rimView)
|
|
||||||
{
|
|
||||||
rimView->scheduleCreateDisplayModelAndRedraw();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -46,7 +46,7 @@ public:
|
|||||||
|
|
||||||
caf::PdmField<bool> isActive;
|
caf::PdmField<bool> isActive;
|
||||||
|
|
||||||
void appendIntersectionBox();
|
void appendIntersectionBox(RimIntersectionBox* intersectionBox);
|
||||||
|
|
||||||
bool hasActiveCrossSectionForSimulationWell(RimEclipseWell* eclipseWell) const;
|
bool hasActiveCrossSectionForSimulationWell(RimEclipseWell* eclipseWell) const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user