21#ifndef __vtkMRMLLayerDMPipelineFactory_h
22#define __vtkMRMLLayerDMPipelineFactory_h
24#include "vtkSlicerLayerDMModuleMRMLDisplayableManagerExport.h"
27#include <vtkCommand.h>
29#include <vtkSmartPointer.h>
30#include <vtkWeakPointer.h>
57 void PrintSelf(ostream& os, vtkIndent indent)
override;
60 static vtkSmartPointer<vtkMRMLLayerDMPipelineFactory>
GetInstance();
110 void SortPipelineCreators();
112 std::vector<vtkSmartPointer<vtkMRMLLayerDMPipelineCreator>> PipelineCreators;
113 vtkSmartPointer<vtkMRMLLayerDMObjectEventObserver> Observer;
114 vtkWeakPointer<vtkMRMLAbstractViewNode> LastView;
115 vtkWeakPointer<vtkMRMLNode> LastNode;
116 vtkWeakPointer<vtkMRMLLayerDMPipeline> LastPipeline;
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D,...
VTK object observer with one callback endpoint when an event is triggered. Can observe multiple objec...
Interface responsible for creating new pipelines given input pairs of viewNode and node.
vtkSmartPointer< vtkMRMLLayerDMPipeline > CreatePipeline(vtkMRMLAbstractViewNode *viewNode, vtkMRMLNode *node, vtkSmartPointer< vtkMRMLLayerDMPipelineCreator > *creator)
void RemovePipelineCreator(const vtkSmartPointer< vtkMRMLLayerDMPipelineCreator > &creator)
Remove the input creator from the list of creators. If the factory doesn't contain the creator,...
@ PipelineAboutToBeCreatedEvent
void AddPipelineCreator(const vtkSmartPointer< vtkMRMLLayerDMPipelineCreator > &creator)
Add the input creator to the list of creators. If the factory already contains the creator,...
vtkMRMLNode * GetLastNode() const
vtkSmartPointer< vtkMRMLLayerDMPipelineCreator > AddPipelineCreator(const std::function< vtkSmartPointer< vtkMRMLLayerDMPipeline >(vtkMRMLAbstractViewNode *, vtkMRMLNode *)> &creatorCallBack, int priority=0)
vtkSmartPointer< vtkMRMLLayerDMPipeline > CreatePipeline(vtkMRMLAbstractViewNode *viewNode, vtkMRMLNode *node)
bool ContainsPipelineCreator(const vtkSmartPointer< vtkMRMLLayerDMPipelineCreator > &creator) const
true if the given creator is contained in the factory, false otherwise.
~vtkMRMLLayerDMPipelineFactory() override=default
vtkMRMLLayerDMPipelineFactory()
static vtkMRMLLayerDMPipelineFactory * New()
vtkMRMLAbstractViewNode * GetLastViewNode() const
vtkMRMLLayerDMPipeline * GetLastPipeline() const
static vtkSmartPointer< vtkMRMLLayerDMPipelineFactory > GetInstance()
Singleton instance of the factory used by the displayable manager.
void PrintSelf(ostream &os, vtkIndent indent) override
Interface for the layered displayable manager pipelines.
Abstract Superclass for all specific types of MRML nodes.