.. _program_listing_file_Logic_vtkSlicerLayerDMLogic.cxx: Program Listing for File vtkSlicerLayerDMLogic.cxx ================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``Logic/vtkSlicerLayerDMLogic.cxx``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include "vtkSlicerLayerDMLogic.h" // LayerDM includes #include // Slicer includes #include // VTK includes #include vtkStandardNewMacro(vtkSlicerLayerDMLogic); void vtkSlicerLayerDMLogic::RegisterNodes() { RegisterNodeIfNeeded(GetMRMLScene()); } int vtkSlicerLayerDMLogic::GetVersionMajor() { return vtkSlicerLayerDM_VERSION_MAJOR; } int vtkSlicerLayerDMLogic::GetVersionMinor() { return vtkSlicerLayerDM_VERSION_MINOR; } int vtkSlicerLayerDMLogic::GetVersionPatch() { return vtkSlicerLayerDM_VERSION_PATCH; } std::string vtkSlicerLayerDMLogic::GetVersion() { return vtkSlicerLayerDM_VERSION; } void vtkSlicerLayerDMLogic::SetWidgetEventTranslationNode(vtkMRMLNode* node, vtkMRMLLayerDMWidgetEventTranslationNode* translationNode) { SetReferenceNode(node, translationNode, EventTranslationRole); } vtkMRMLLayerDMWidgetEventTranslationNode* vtkSlicerLayerDMLogic::GetWidgetEventTranslationNode(vtkMRMLNode* node) { return GetReferenceNode(node, EventTranslationRole); } vtkMRMLLayerDMWidgetEventTranslationNode* vtkSlicerLayerDMLogic::GetWidgetEventTranslationSingleton(vtkMRMLScene* scene, const std::string& singletonId) { if (!scene) { return {}; } return vtkMRMLLayerDMWidgetEventTranslationNode::SafeDownCast(scene->GetNodeByID(singletonId)); } vtkMRMLLayerDMWidgetEventTranslationNode* vtkSlicerLayerDMLogic::GetWidgetEventTranslationSingleton( vtkMRMLScene* scene, const std::string& singletonId, const std::function& configureF) { auto node = GetWidgetEventTranslationSingleton(scene, singletonId); if (!node) { node = CreateWidgetEventTranslationSingleton(scene, singletonId); configureF(node); } return node; } vtkMRMLLayerDMWidgetEventTranslationNode* vtkSlicerLayerDMLogic::CreateWidgetEventTranslationSingleton(vtkMRMLScene* scene, const std::string& singletonId) { if (auto node = GetWidgetEventTranslationSingleton(scene, singletonId)) { return node; } if (!scene) { return {}; } vtkNew newNode; newNode->SetSingletonTag(singletonId.c_str()); newNode->SetSaveWithScene(false); return vtkMRMLLayerDMWidgetEventTranslationNode::SafeDownCast(scene->AddNode(newNode)); } void vtkSlicerLayerDMLogic::CreateDefaultEventTranslation(vtkMRMLNode* node, const std::string& singletonId, const std::function& configureF) { if (GetWidgetEventTranslationNode(node)) { return; } SetWidgetEventTranslationNode(node, GetWidgetEventTranslationSingleton(node ? node->GetScene() : nullptr, singletonId, configureF)); } std::string vtkSlicerLayerDMLogic::GetEventTranslationRole() { return EventTranslationRole; } std::string vtkSlicerLayerDMLogic::GetDisplayRole() { return DisplayRole; }