.. _program_listing_file_MRMLDM_vtkMRMLLayerDMPipelineCreateHelper.h: Program Listing for File vtkMRMLLayerDMPipelineCreateHelper.h ============================================================= |exhale_lsh| :ref:`Return to documentation for file ` (``MRMLDM/vtkMRMLLayerDMPipelineCreateHelper.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once // Layer DM includes #include "vtkMRMLLayerDMPipelineI.h" // VTK includes #include namespace layer_dm { template vtkSmartPointer TryCreateForView(vtkMRMLAbstractViewNode* viewNode, vtkMRMLNode* node) { if (TExpView::SafeDownCast(viewNode) && TExpNode::SafeDownCast(node)) { auto pipeline = vtkSmartPointer::New(); pipeline->SetViewNode(viewNode); pipeline->SetDisplayNode(node); return pipeline; } if constexpr (sizeof...(Rest) > 0) { return TryCreateForView(viewNode, node); } return nullptr; } template vtkSmartPointer TryCreate(vtkMRMLAbstractViewNode* viewNode, vtkMRMLNode* node) { if (auto pipeline = TryCreateForView(viewNode, node)) { return pipeline; } if constexpr (sizeof...(Rest) > 0) { return TryCreate(viewNode, node); } return nullptr; } }; // namespace layer_dm