#927 Intersection box: 3D manipulator not updated when changing scale

This commit is contained in:
Magne Sjaastad 2016-10-25 09:50:33 +02:00
parent 1e7e0fdc7a
commit 3dd0829efa
4 changed files with 20 additions and 2 deletions

View File

@ -68,7 +68,6 @@ public:
cvf::Mat4d boxOrigin() const; cvf::Mat4d boxOrigin() const;
cvf::Vec3d boxSize() const; cvf::Vec3d boxSize() const;
SinglePlaneState singlePlaneState() const; SinglePlaneState singlePlaneState() const;
void setFromOriginAndSize(const cvf::Vec3d& origin, const cvf::Vec3d& size);
bool show3dManipulator() const; bool show3dManipulator() const;
RivIntersectionBoxPartMgr* intersectionBoxPartMgr(); RivIntersectionBoxPartMgr* intersectionBoxPartMgr();
@ -91,12 +90,16 @@ protected slots:
void slotUpdateGeometry(const cvf::Vec3d& origin, const cvf::Vec3d& size); void slotUpdateGeometry(const cvf::Vec3d& origin, const cvf::Vec3d& size);
private: private:
friend class RimIntersectionCollection;
void updateBoxManipulatorGeometry(); void updateBoxManipulatorGeometry();
void rebuildGeometryAndScheduleCreateDisplayModel(); void rebuildGeometryAndScheduleCreateDisplayModel();
void updateVisibility(); void updateVisibility();
void clampSinglePlaneValues(); void clampSinglePlaneValues();
void switchSingelPlaneState(); void switchSingelPlaneState();
void setFromOriginAndSize(const cvf::Vec3d& origin, const cvf::Vec3d& size);
cvf::BoundingBox currentCellBoundingBox(); cvf::BoundingBox currentCellBoundingBox();
RiuViewer* viewer(); RiuViewer* viewer();

View File

@ -215,3 +215,14 @@ bool RimIntersectionCollection::hasActiveCrossSectionForSimulationWell(RimEclips
return false; return false;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimIntersectionCollection::updateIntersectionBoxGeometry()
{
for (auto intersectionBox : m_intersectionBoxes)
{
intersectionBox->updateBoxManipulatorGeometry();
}
}

View File

@ -53,6 +53,8 @@ public:
bool hasActiveCrossSectionForSimulationWell(RimEclipseWell* eclipseWell) const; bool hasActiveCrossSectionForSimulationWell(RimEclipseWell* eclipseWell) const;
void updateIntersectionBoxGeometry();
// Visualization interface // Visualization interface
void applySingleColorEffect(); void applySingleColorEffect();

View File

@ -7,10 +7,10 @@
#include "Rim3dOverlayInfoConfig.h" #include "Rim3dOverlayInfoConfig.h"
#include "RimCellRangeFilterCollection.h" #include "RimCellRangeFilterCollection.h"
#include "RimIntersectionCollection.h"
#include "RimEclipseCase.h" #include "RimEclipseCase.h"
#include "RimEclipseView.h" #include "RimEclipseView.h"
#include "RimGridCollection.h" #include "RimGridCollection.h"
#include "RimIntersectionCollection.h"
#include "RimOilField.h" #include "RimOilField.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimPropertyFilterCollection.h" #include "RimPropertyFilterCollection.h"
@ -535,6 +535,8 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
RimWellPathCollection* wellPathCollection = (oilFields) ? oilFields->wellPathCollection() : NULL; RimWellPathCollection* wellPathCollection = (oilFields) ? oilFields->wellPathCollection() : NULL;
if (wellPathCollection) wellPathCollection->wellPathCollectionPartMgr()->scheduleGeometryRegen(); if (wellPathCollection) wellPathCollection->wellPathCollectionPartMgr()->scheduleGeometryRegen();
crossSectionCollection->updateIntersectionBoxGeometry();
if (m_viewer) if (m_viewer)
{ {
cvf::Vec3d poi = m_viewer->pointOfInterest(); cvf::Vec3d poi = m_viewer->pointOfInterest();