#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::Vec3d boxSize() const;
SinglePlaneState singlePlaneState() const;
void setFromOriginAndSize(const cvf::Vec3d& origin, const cvf::Vec3d& size);
bool show3dManipulator() const;
RivIntersectionBoxPartMgr* intersectionBoxPartMgr();
@ -91,12 +90,16 @@ protected slots:
void slotUpdateGeometry(const cvf::Vec3d& origin, const cvf::Vec3d& size);
private:
friend class RimIntersectionCollection;
void updateBoxManipulatorGeometry();
void rebuildGeometryAndScheduleCreateDisplayModel();
void updateVisibility();
void clampSinglePlaneValues();
void switchSingelPlaneState();
void setFromOriginAndSize(const cvf::Vec3d& origin, const cvf::Vec3d& size);
cvf::BoundingBox currentCellBoundingBox();
RiuViewer* viewer();

View File

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

View File

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

View File

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