Skip to content

Commit ee9423d

Browse files
fix: Synchronize pipeline manager render window to LayerDM
- Ensure the pipeline manager renderer and render window are synchronized to the LayerDM in case it's changed. - Fix NodeReferenceObserverTest.cxx missing node registration
1 parent 1689cc5 commit ee9423d

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

LayerDM/MRMLDM/vtkMRMLLayerDisplayableManager.cxx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,18 @@ void vtkMRMLLayerDisplayableManager::Create()
182182
this->UpdateFromMRML();
183183
}
184184

185+
void vtkMRMLLayerDisplayableManager::SetRenderer(vtkRenderer* newRenderer)
186+
{
187+
Superclass::SetRenderer(newRenderer);
188+
if (!this->m_pipelineManager)
189+
{
190+
return;
191+
}
192+
193+
this->m_pipelineManager->SetRenderWindow(newRenderer ? newRenderer->GetRenderWindow() : nullptr);
194+
this->m_pipelineManager->SetRenderer(newRenderer);
195+
}
196+
185197
void vtkMRMLLayerDisplayableManager::SetHasFocus(bool hasFocus, vtkMRMLInteractionEventData* eventData)
186198
{
187199
Superclass ::SetHasFocus(hasFocus, eventData);

LayerDM/MRMLDM/vtkMRMLLayerDisplayableManager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class VTK_SLICER_LAYERDM_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT vtkMRMLLayerDispla
6363
void operator=(const vtkMRMLLayerDisplayableManager&) = delete;
6464

6565
void Create() override;
66+
void SetRenderer(vtkRenderer* newRenderer) override;
6667

6768
void OnMRMLDisplayableNodeModifiedEvent(vtkObject* caller) override;
6869
void OnMRMLSceneStartBatchProcess() override;

LayerDM/Testing/Cxx/NodeReferenceObserverTest.cxx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
#include <vtkSmartPointer.h>
1212

1313
// CTK includes
14+
#include "vtkSlicerLayerDMLogic.h"
15+
1416
#include <ctkTest.h>
1517

1618
namespace
@@ -199,6 +201,7 @@ private slots:
199201
void testTriggersAddedWhenSettingAlreadyExistingScene() const
200202
{
201203
auto scene = vtkSmartPointer<vtkMRMLScene>::New();
204+
vtkSlicerLayerDMLogic::RegisterNodeIfNeeded<vtkMRMLMarkupsFiducialDisplayNode>(scene);
202205
auto markups = vtkMRMLMarkupsFiducialNode::SafeDownCast(scene->AddNode(vtkNew<vtkMRMLMarkupsFiducialNode>{}));
203206
markups->CreateDefaultDisplayNodes();
204207

@@ -217,6 +220,8 @@ private slots:
217220
void testNodesRemovedFromSceneAreCorrectlyRemovedFromObserver()
218221
{
219222
auto scene = vtkSmartPointer<vtkMRMLScene>::New();
223+
vtkSlicerLayerDMLogic::RegisterNodeIfNeeded<vtkMRMLMarkupsFiducialDisplayNode>(scene);
224+
220225
auto markups = vtkMRMLMarkupsFiducialNode::SafeDownCast(scene->AddNode(vtkNew<vtkMRMLMarkupsFiducialNode>{}));
221226
markups->CreateDefaultDisplayNodes();
222227

0 commit comments

Comments
 (0)