(#401) Added access to the ViewLinker from the main view

This commit is contained in:
Jacob Støren
2015-09-14 09:53:10 +02:00
parent 187ebf114d
commit 984656cbfa
3 changed files with 27 additions and 3 deletions
@@ -706,3 +706,22 @@ bool RimView::isBoundingBoxesOverlappingOrClose(const cvf::BoundingBox& sourceBB
return false; return false;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimViewLinker* RimView::dependentViews()
{
RimViewLinker* viewLinker = NULL;
std::vector<caf::PdmObjectHandle*> reffingObjs;
this->objectsWithReferringPtrFields(reffingObjs);
for (size_t i = 0; i < reffingObjs.size(); ++i)
{
viewLinker = dynamic_cast<RimViewLinker*>(reffingObjs[i]);
if (viewLinker ) break;
}
return viewLinker;
}
@@ -35,6 +35,7 @@ class Rim3dOverlayInfoConfig;
class RimCase; class RimCase;
class RimCellRangeFilterCollection; class RimCellRangeFilterCollection;
class RiuViewer; class RiuViewer;
class RimViewLinker;
namespace cvf namespace cvf
{ {
@@ -128,6 +129,7 @@ public:
virtual caf::PdmFieldHandle* userDescriptionField() { return &name; } virtual caf::PdmFieldHandle* userDescriptionField() { return &name; }
protected: protected:
RimViewLinker* dependentViews();
void setDefaultView(); void setDefaultView();
void addWellPathsToModel(cvf::ModelBasicList* wellPathModelBasicList, void addWellPathsToModel(cvf::ModelBasicList* wellPathModelBasicList,
@@ -284,10 +284,10 @@ void RimViewLink::configureOverridesUpdateDisplayModel()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimViewLink::configureOverrides() void RimViewLink::configureOverrides()
{ {
RimViewLinker* linkedViews = NULL; RimViewLinker* viewLinker = NULL;
this->firstAnchestorOrThisOfType(linkedViews); this->firstAnchestorOrThisOfType(viewLinker);
RimView* masterView = linkedViews->mainView(); RimView* masterView = viewLinker->mainView();
CVF_ASSERT(masterView); CVF_ASSERT(masterView);
if (!masterView) return; if (!masterView) return;
@@ -304,6 +304,9 @@ void RimViewLink::configureOverrides()
if (manGeoView) manGeoView->setOverridePropertyFilterCollection(NULL); if (manGeoView) manGeoView->setOverridePropertyFilterCollection(NULL);
// Todo: set up the managed view with the visible cell override. // Todo: set up the managed view with the visible cell override.
// Create Cell-mapping if necessary
// Set VisibleCellsOverrider object on the managed view,
// with master view and mapper object
} }
else else
{ {