Slicer 5.13
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLLayerDMPipeline Class Reference

Interface for the layered displayable manager pipelines. More...

#include <Modules/Loadable/LayerDM/MRMLDM/vtkMRMLLayerDMPipeline.h>

Inheritance diagram for vtkMRMLLayerDMPipeline:
Collaboration diagram for vtkMRMLLayerDMPipeline:

Public Types

enum  Events { RenderGroupingModified = vtkCommand::UserEvent + 1 }
 
typedef vtkObject Superclass
 

Public Member Functions

bool BlockUpdateDisplay (bool isBlocked)
 If.
 
virtual bool CanProcessInteractionEvent (vtkMRMLInteractionEventData *eventData, double &distance2)
 
virtual const char * GetClassName ()
 
virtual vtkCamera * GetCustomCamera () const
 
virtual vtkCamera * GetCustomCamera (unsigned int renderOrder) const
 
vtkMRMLNode * GetDisplayNode () const
 Returns the current display node.
 
unsigned int GetMaxRenderOrder () const
 Maximum render order handled by the DM.
 
virtual int GetMouseCursor () const
 
vtkMRMLLayerDMPipeline * GetNodePipeline (vtkMRMLNode *node) const
 
vtkMRMLLayerDMPipelineManager * GetPipelineManager () const
 Returns the instance of pipeline manager which created the pipeline.
 
vtkRenderer * GetRenderer () const
 
vtkRenderer * GetRenderer (unsigned int renderOrder) const
 
std::vector< vtkRenderer * > GetRenderers () const
 Returns the current renderers attached to the pipeline in increasing order of GetRenderOrders.
 
virtual unsigned int GetRenderOrder () const
 
virtual std::vector< unsigned int > GetRenderOrders () const
 
vtkMRMLScene * GetScene () const
 Returns the current scene.
 
vtkMRMLAbstractViewNode * GetViewNode () const
 Returns the current view node.
 
unsigned int GetVtkRendererOrder (const vtkRenderer *renderer) const
 
virtual int GetWidgetState () const
 
virtual int IsA (const char *type)
 
virtual void LoseFocus (vtkMRMLInteractionEventData *eventData)
 
virtual void OnDefaultCameraModified (vtkCamera *camera)
 
virtual void OnRendererAdded (vtkRenderer *renderer)
 
virtual void OnRendererRemoved (vtkRenderer *renderer)
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
virtual bool ProcessInteractionEvent (vtkMRMLInteractionEventData *eventData)
 
void RemoveObservations (vtkObject *prevObj) const
 
void RequestRender () const
 
virtual void SetDisplayNode (vtkMRMLNode *displayNode)
 
virtual void SetPipelineManager (vtkMRMLLayerDMPipelineManager *pipelineManager)
 
void SetRenderer (vtkRenderer *renderer)
 
void SetRenderers (const std::vector< vtkRenderer * > &renderers, const std::vector< unsigned int > &renderOrders)
 
virtual void SetScene (vtkMRMLScene *scene)
 
virtual void SetViewNode (vtkMRMLAbstractViewNode *viewNode)
 
void UpdateDisplay ()
 
virtual void UpdateFromMRML ()
 
virtual void OnReferenceToDisplayNodeAdded (vtkMRMLNode *fromNode, const std::string &role)
 
virtual void OnReferenceToDisplayNodeRemoved (vtkMRMLNode *fromNode, const std::string &role)
 
bool BlockInteractionProcessing (bool isBlocked)
 
bool IsInteractionProcessingBlocked () const
 
bool BlockUpdateObserver (bool isBlocked) const
 
bool IsUpdateObserverBlocked () const
 
void SetFrozen (bool isFrozen)
 
bool IsFrozen () const
 
bool UpdateObservation (vtkObject *prevObj, vtkObject *obj, const std::vector< unsigned long > &events) const
 
bool UpdateObservation (vtkObject *prevObj, vtkObject *obj, unsigned long event=vtkCommand::ModifiedEvent) const
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkMRMLLayerDMPipeline * New ()
 
static vtkMRMLLayerDMPipeline * SafeDownCast (vtkObject *o)
 

Protected Member Functions

virtual void OnUpdate (vtkObject *obj, unsigned long eventId, void *callData)
 
 vtkMRMLLayerDMPipeline ()
 
 ~vtkMRMLLayerDMPipeline () override=default
 

Detailed Description

Interface for the layered displayable manager pipelines.

Contains empty implementation and default behavior for the different API calls. Implementation can be limited to

See also
UpdateFromMRML and reactivity on node changes for pure display pipelines.

Widget pipelines should also implement the

See also
CanProcessInteractionEvent and
ProcessInteractionEvent methods.

A python main class is available from

See also
vtkMRMLLayerDMScriptedPipeline.py

Definition at line 53 of file vtkMRMLLayerDMPipeline.h.

Member Typedef Documentation

◆ Superclass

Definition at line 57 of file vtkMRMLLayerDMPipeline.h.

Member Enumeration Documentation

◆ Events

Enumerator
RenderGroupingModified 

To emit when the pipeline grouping configuration changes (e.g., custom camera or render orders).

See also
vtkMRMLLayerDMLayerManager

Definition at line 60 of file vtkMRMLLayerDMPipeline.h.

Constructor & Destructor Documentation

◆ vtkMRMLLayerDMPipeline()

vtkMRMLLayerDMPipeline::vtkMRMLLayerDMPipeline ( )
protected

◆ ~vtkMRMLLayerDMPipeline()

vtkMRMLLayerDMPipeline::~vtkMRMLLayerDMPipeline ( )
overrideprotecteddefault

Member Function Documentation

◆ BlockInteractionProcessing()

bool vtkMRMLLayerDMPipeline::BlockInteractionProcessing ( bool isBlocked)

If

Parameters
isBlockedis true, blocks
See also
CanProcessInteractionEvent and
ProcessInteractionEvent to be called.
vtkMRMLLayerDMInteractionLogic

◆ BlockUpdateDisplay()

bool vtkMRMLLayerDMPipeline::BlockUpdateDisplay ( bool isBlocked)

If.

Parameters
isBlockedis true,
See also
UpdateFromMRML is not called during
UpdateDisplay.

◆ BlockUpdateObserver()

bool vtkMRMLLayerDMPipeline::BlockUpdateObserver ( bool isBlocked) const

If

Parameters
isBlockedis true, blocks
See also
OnUpdate method from being triggered by external changes.

◆ CanProcessInteractionEvent()

virtual bool vtkMRMLLayerDMPipeline::CanProcessInteractionEvent ( vtkMRMLInteractionEventData * eventData,
double & distance2 )
virtual

true if the pipeline can process the input event data

Parameters
eventDataThe MRML event needing to be processed
distance2Return value for the distance to the interaction (preferably actual RAS distance)
Returns
true if the pipeline can process the input event data. Default = false;

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ GetClassName()

virtual const char * vtkMRMLLayerDMPipeline::GetClassName ( )
virtual

◆ GetCustomCamera() [1/2]

virtual vtkCamera * vtkMRMLLayerDMPipeline::GetCustomCamera ( ) const
virtual

Custom pipeline camera. If the returned value is not nullptr, then the pipeline (or dedicated logic) is expected to handle its own camera. Otherwise, the pipeline will be moved in a renderer with a default camera synchronized on its view default camera.

See also
vtkMRMLLayerDMCameraSynchronizer
Returns
nullptr by default.

◆ GetCustomCamera() [2/2]

virtual vtkCamera * vtkMRMLLayerDMPipeline::GetCustomCamera ( unsigned int renderOrder) const
virtual

◆ GetDisplayNode()

vtkMRMLNode * vtkMRMLLayerDMPipeline::GetDisplayNode ( ) const

Returns the current display node.

◆ GetMaxRenderOrder()

unsigned int vtkMRMLLayerDMPipeline::GetMaxRenderOrder ( ) const

Maximum render order handled by the DM.

◆ GetMouseCursor()

virtual int vtkMRMLLayerDMPipeline::GetMouseCursor ( ) const
virtual

Custom mouse cursor from VTK mouse cursor enum. This value is only used if the pipeline actually processes an event and is ignore otherwise.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ GetNodePipeline()

vtkMRMLLayerDMPipeline * vtkMRMLLayerDMPipeline::GetNodePipeline ( vtkMRMLNode * node) const

Returns the pipeline associated with the input node. Delegates to

See also
vtkMRMLLayerDMPipelineManager::GetNodePipeline. nullptr if not found or pipelineManager instance is nullptr.

◆ GetPipelineManager()

vtkMRMLLayerDMPipelineManager * vtkMRMLLayerDMPipeline::GetPipelineManager ( ) const

Returns the instance of pipeline manager which created the pipeline.

◆ GetRenderer() [1/2]

vtkRenderer * vtkMRMLLayerDMPipeline::GetRenderer ( ) const

Returns a renderer from the map of renderers attached to the pipeline. The returned renderer corresponds to the lowest render order key in the render map. Use GetRenderOrders() and GetRenderer(renderOrder) for access to all attached renderers.

See also
OnRendererAdded
OnRendererRemoved
GetRenderOrders
GetRenderer(unsigned int)

◆ GetRenderer() [2/2]

vtkRenderer * vtkMRMLLayerDMPipeline::GetRenderer ( unsigned int renderOrder) const

Returns the renderer associated with the input render order If the renderer with the given render order isn't found, returns nullptr.

◆ GetRenderers()

std::vector< vtkRenderer * > vtkMRMLLayerDMPipeline::GetRenderers ( ) const

Returns the current renderers attached to the pipeline in increasing order of GetRenderOrders.

◆ GetRenderOrder()

virtual unsigned int vtkMRMLLayerDMPipeline::GetRenderOrder ( ) const
virtual

Arbitrary render order number where the pipeline wants to be displayed. Return 0 to be at the default order (main 3D Slicer pipelines) Return larger values to be rendered on top of pipelines with lower render orders. Order number is read-only during update and is expected to be static per pipeline.

See also
vtkMRMLLayerDMLayerManager
Returns
default = 0

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ GetRenderOrders()

virtual std::vector< unsigned int > vtkMRMLLayerDMPipeline::GetRenderOrders ( ) const
virtual

Pipeline render orders.

See also
GetRenderOrder

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ GetScene()

vtkMRMLScene * vtkMRMLLayerDMPipeline::GetScene ( ) const

Returns the current scene.

◆ GetViewNode()

vtkMRMLAbstractViewNode * vtkMRMLLayerDMPipeline::GetViewNode ( ) const

Returns the current view node.

◆ GetVtkRendererOrder()

unsigned int vtkMRMLLayerDMPipeline::GetVtkRendererOrder ( const vtkRenderer * renderer) const

Get the render order associated with the input renderer If the renderer is not associated with the pipeline or nullptr, returns 0

◆ GetWidgetState()

virtual int vtkMRMLLayerDMPipeline::GetWidgetState ( ) const
virtual

Current widget state of the pipeline.

Returns
default = WidgetStateIdle

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ IsA()

virtual int vtkMRMLLayerDMPipeline::IsA ( const char * type)
virtual

◆ IsFrozen()

bool vtkMRMLLayerDMPipeline::IsFrozen ( ) const

◆ IsInteractionProcessingBlocked()

bool vtkMRMLLayerDMPipeline::IsInteractionProcessingBlocked ( ) const

◆ IsTypeOf()

static int vtkMRMLLayerDMPipeline::IsTypeOf ( const char * type)
static

◆ IsUpdateObserverBlocked()

bool vtkMRMLLayerDMPipeline::IsUpdateObserverBlocked ( ) const

◆ LoseFocus()

virtual void vtkMRMLLayerDMPipeline::LoseFocus ( vtkMRMLInteractionEventData * eventData)
virtual

Triggered when the pipeline had focus (processed an interaction) and loses the focus (other pipeline handled the new interaction or window leave event). default behavior: does nothing.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ New()

static vtkMRMLLayerDMPipeline * vtkMRMLLayerDMPipeline::New ( )
static

◆ OnDefaultCameraModified()

virtual void vtkMRMLLayerDMPipeline::OnDefaultCameraModified ( vtkCamera * camera)
virtual

Triggered when the default camera is modified. default behavior: does nothing.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ OnReferenceToDisplayNodeAdded()

virtual void vtkMRMLLayerDMPipeline::OnReferenceToDisplayNodeAdded ( vtkMRMLNode * fromNode,
const std::string & role )
virtual

Triggered when a reference to the display node is added / removed default behavior: Triggers onUpdate with the display node as argument and ReferenceAdded / Removed eventId.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ OnReferenceToDisplayNodeRemoved()

virtual void vtkMRMLLayerDMPipeline::OnReferenceToDisplayNodeRemoved ( vtkMRMLNode * fromNode,
const std::string & role )
virtual

◆ OnRendererAdded()

virtual void vtkMRMLLayerDMPipeline::OnRendererAdded ( vtkRenderer * renderer)
virtual

Triggered when the pipeline is displayed on a new renderer. default behavior: does nothing.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ OnRendererRemoved()

virtual void vtkMRMLLayerDMPipeline::OnRendererRemoved ( vtkRenderer * renderer)
virtual

Triggered when the pipeline is removed from its previous renderer. default behavior: does nothing.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ OnUpdate()

virtual void vtkMRMLLayerDMPipeline::OnUpdate ( vtkObject * obj,
unsigned long eventId,
void * callData )
protectedvirtual

Observer update callback. Triggered when any object & events observed using UpdateObservation is triggered.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ PrintSelf()

void vtkMRMLLayerDMPipeline::PrintSelf ( ostream & os,
vtkIndent indent )
override

◆ ProcessInteractionEvent()

virtual bool vtkMRMLLayerDMPipeline::ProcessInteractionEvent ( vtkMRMLInteractionEventData * eventData)
virtual

Triggered when the pipeline can process the interaction and is at the top of the priority list. default behavior: does nothing and returns false.

Parameters
eventDataThe MRML event needing to be processed
Returns
True if event was processed. False otherwise (default = false)

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ RemoveObservations()

void vtkMRMLLayerDMPipeline::RemoveObservations ( vtkObject * prevObj) const

Remove all observed events for the input object. For updating the observer, use

See also
UpdateObservation instead.
Warning
prevObj is not mutated by this call.

◆ RequestRender()

void vtkMRMLLayerDMPipeline::RequestRender ( ) const

Request rendering and camera clipping reset. Calls are delegated to

See also
vtkMRMLLayerDMPipelineManager::RequestRender.
UpdateDisplay

◆ SafeDownCast()

static vtkMRMLLayerDMPipeline * vtkMRMLLayerDMPipeline::SafeDownCast ( vtkObject * o)
static

◆ SetDisplayNode()

virtual void vtkMRMLLayerDMPipeline::SetDisplayNode ( vtkMRMLNode * displayNode)
virtual

Set the display node for the pipeline has changed (initialization). default behavior: Stored and display node is observed for vtkCommand::ModifiedEvent.

See also
UpdateObservation
OnUpdate

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ SetFrozen()

void vtkMRMLLayerDMPipeline::SetFrozen ( bool isFrozen)

If

Parameters
isFrozenis true, blocks all reactiveness from the pipeline (UpdateDisplay, Interaction and Update). Reactiveness cannot be toggled back on unless the pipeline is unfrozen first. Used to deactivate pipelines during removal.
See also
BlockUpdateDisplay
BlockInteractionProcessing
BlockUpdateObserver

◆ SetPipelineManager()

virtual void vtkMRMLLayerDMPipeline::SetPipelineManager ( vtkMRMLLayerDMPipelineManager * pipelineManager)
virtual

Set the pipeline manager (initialization). default behavior: Stores the pipeline manager to delegate request render calls (no active observer).

Parameters
pipelineManagerThe instance of pipeline manager managing the current pipeline

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ SetRenderer()

void vtkMRMLLayerDMPipeline::SetRenderer ( vtkRenderer * renderer)

Set the new renderer. Triggers

See also
OnRendererAdded and
OnRendererRemoved if renderer has changed. Used for testing purposes mainly. Please use
SetRenderers for a complete definition of the renderers for each render order.
Deprecated
Usage outside of testing is deprecated.
See also
SetRenderers

◆ SetRenderers()

void vtkMRMLLayerDMPipeline::SetRenderers ( const std::vector< vtkRenderer * > & renderers,
const std::vector< unsigned int > & renderOrders )

Set the new renderers. Triggers

See also
OnRendererAdded and
OnRendererRemoved.

◆ SetScene()

virtual void vtkMRMLLayerDMPipeline::SetScene ( vtkMRMLScene * scene)
virtual

Set the pipeline scene (initialization). default behavior: Stores the scene for access (no active observer).

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ SetViewNode()

virtual void vtkMRMLLayerDMPipeline::SetViewNode ( vtkMRMLAbstractViewNode * viewNode)
virtual

Set the pipeline view node (initialization). default behavior: Stored and view node is observed for vtkCommand::ModifiedEvent.

Parameters
viewNodeThe instance of viewNode the pipeline is attached to

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ UpdateDisplay()

void vtkMRMLLayerDMPipeline::UpdateDisplay ( )

Updates the pipeline display and requests a new render

See also
RequestRender. Delegates actual work to
UpdateFromMRML. Called the first time after pipeline initialization.

◆ UpdateFromMRML()

virtual void vtkMRMLLayerDMPipeline::UpdateFromMRML ( )
virtual

Triggered on

See also
UpdateDisplay calls default behavior: does nothing.

Reimplemented in vtkMRMLLayerDMScriptedPipelineBridge.

◆ UpdateObservation() [1/2]

bool vtkMRMLLayerDMPipeline::UpdateObservation ( vtkObject * prevObj,
vtkObject * obj,
const std::vector< unsigned long > & events ) const

Remove previous monitored events from

Parameters
prevObjand observe events from the
objIf both obj are the same, does nothing. On event triggered, calls
See also
OnUpdate
Warning
prevObj is not mutated by this call. To update the pointer, a manual set is required after update.

◆ UpdateObservation() [2/2]

bool vtkMRMLLayerDMPipeline::UpdateObservation ( vtkObject * prevObj,
vtkObject * obj,
unsigned long event = vtkCommand::ModifiedEvent ) const

The documentation for this class was generated from the following file: