Skip to content

Commit

Permalink
ENH: Add MLC support
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelColonel authored and Sunderlandkyl committed Nov 26, 2019
1 parent 2e914b3 commit 357d9db
Show file tree
Hide file tree
Showing 6 changed files with 663 additions and 59 deletions.
30 changes: 30 additions & 0 deletions Beams/Logic/vtkSlicerBeamsModuleLogic.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <vtkMRMLScene.h>
#include <vtkMRMLLinearTransformNode.h>
#include <vtkMRMLMarkupsFiducialNode.h>
#include <vtkMRMLTableNode.h>

// VTK includes
#include <vtkNew.h>
Expand Down Expand Up @@ -105,6 +106,12 @@ void vtkSlicerBeamsModuleLogic::OnMRMLSceneNodeAdded(vtkMRMLNode* node)
events->InsertNextValue(vtkMRMLRTPlanNode::BeamAdded);
vtkObserveMRMLNodeEventsMacro(node, events);
}
else if (node->IsA("vtkMRMLTableNode"))
{
vtkSmartPointer<vtkIntArray> events = vtkSmartPointer<vtkIntArray>::New();
events->InsertNextValue(vtkCommand::ModifiedEvent);
vtkObserveMRMLNodeEventsMacro(node, events);
}
}

//---------------------------------------------------------------------------
Expand Down Expand Up @@ -224,4 +231,27 @@ void vtkSlicerBeamsModuleLogic::ProcessMRMLNodesEvents(vtkObject* caller, unsign
beamNode->UpdateGeometry();
}
}
else if (caller->IsA("vtkMRMLTableNode"))
{
vtkMRMLTableNode* tableNode = vtkMRMLTableNode::SafeDownCast(caller);
if (event == vtkCommand::ModifiedEvent)
{
// Iterate through all beam nodes
std::vector<vtkMRMLNode*> beamNodes;
mrmlScene->GetNodesByClass("vtkMRMLRTBeamNode", beamNodes);
for (std::vector<vtkMRMLNode*>::iterator beamIterator = beamNodes.begin();
beamIterator != beamNodes.end(); ++beamIterator)
{
// if caller node and referenced table node is the same
// update beam polydata
vtkMRMLRTBeamNode* beamNode = vtkMRMLRTBeamNode::SafeDownCast(*beamIterator);
vtkMRMLTableNode* beamMLCTableNode = beamNode->GetMLCPositionTableNode();
if (beamMLCTableNode == tableNode)
{
// Update beam model
beamNode->UpdateGeometry();
}
}
}
}
}
Loading

0 comments on commit 357d9db

Please sign in to comment.