22#ifndef __vtkMRMLSequenceBrowserNode_h
23#define __vtkMRMLSequenceBrowserNode_h
25#include "vtkSlicerSequencesModuleMRMLExport.h"
45 void PrintSelf(ostream& os, vtkIndent indent)
override;
91 void WriteXML(ostream& of,
int indent)
override;
250 static bool warningLogged =
false;
253 vtkWarningMacro(
"vtkMRMLSequenceBrowserNode::GetVirtualOutputDataNode is deprecated, use vtkMRMLSequenceBrowserNode::GetProxyNode method instead");
254 warningLogged =
true;
262 static bool warningLogged =
false;
265 vtkWarningMacro(
"vtkMRMLSequenceBrowserNode::SetOverwriteTargetNodeName is deprecated,"
266 <<
" use vtkMRMLSequenceBrowserNode::SetOverwriteProxyName method instead");
267 warningLogged =
true;
275 static bool warningLogged =
false;
278 vtkWarningMacro(
"vtkMRMLSequenceBrowserNode::SetDeepCopyVirtualNodes is deprecated, use vtkMRMLSequenceBrowserNode::SetSaveChanges method instead");
279 warningLogged =
true;
293 static bool warningLogged =
false;
296 vtkWarningMacro(
"vtkMRMLSequenceBrowserNode::GetAllVirtualOutputDataNodes is deprecated,"
297 <<
" use vtkMRMLSequenceBrowserNode::GetAllProxyNodes method instead");
298 warningLogged =
true;
367 const std::string& requestedFormat,
const std::string& typeString);
412 struct SynchronizationProperties;
413 std::map< std::string, SynchronizationProperties* > SynchronizationPropertiesMap;
414 SynchronizationProperties* GetSynchronizationPropertiesForSequence(
vtkMRMLSequenceNode* sequenceNode);
415 SynchronizationProperties* GetSynchronizationPropertiesForPostfix(
const std::string& rolePostfix);
Class to hold information about a node reference.
void ReadXMLAttributes(const char **atts) override
Set node attributes from name/value pairs.
void GetSynchronizedSequenceNodes(std::vector< vtkMRMLSequenceNode * > &synchronizedDataNodes, bool includeMasterNode=false)
Returns all synchronized sequence nodes (does not include the master sequence node)
void RemoveAllSequenceNodes()
Remove all sequence nodes (including the master sequence node)
virtual std::string GetIndexDisplayModeAsString()
std::string AddSynchronizedSequenceNodeID(const char *synchronizedSequenceNodeId)
Adds a node for synchronized browsing. Returns the new proxy node postfix.
void SetRecordingActive(bool recording)
bool GetOverwriteProxyName(vtkMRMLSequenceNode *sequenceNode)
Overwrite proxy node name with name automatically generated from sequence base name and current item ...
void GetAllProxyNodes(std::vector< vtkMRMLNode * > &nodes)
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
void OnNodeReferenceRemoved(vtkMRMLNodeReference *nodeReference) override
Called whenever a node reference is removed.
@ IndexDisplayFormatModifiedEvent
@ SequenceNodeModifiedEvent
const char * GetNodeTagName() override
Get unique node XML tag name (like Volume, Model)
std::string AddSynchronizedSequenceNode(vtkMRMLSequenceNode *synchronizedSequenceNode)
Adds a node for synchronized browsing. Returns the new proxy node postfix.
double RecordingTimeOffsetSec
vtkMRMLSequenceBrowserNode(const vtkMRMLSequenceBrowserNode &)
void PrintSelf(ostream &os, vtkIndent indent) override
void Copy(vtkMRMLNode *node) override
Copy the node's attributes to this object.
vtkMRMLNode * CreateNodeInstance() override
Create instance of a GAD node.
std::string GetSynchronizationPostfixFromSequenceID(const char *sequenceNodeID)
std::vector< std::string > SynchronizationPostfixes
static MissingItemModeType GetMissingItemModeFromString(const std::string &missingItemModeString)
void SetRecording(vtkMRMLSequenceNode *sequenceNode, bool recording)
void SetDeepCopyVirtualNodes(bool deepcopy)
Deprecated method!
void SetIndexDisplayModeFromString(const char *indexDisplayModeString)
bool IsSynchronizedSequenceNode(const char *sequenceNodeId, bool includeMasterNode=false)
Deprecated. Use IsSynchronizedSequenceNodeID instead.
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
Process MRML node events for recording of the proxy nodes.
int RecordingSamplingMode
void GetAllVirtualOutputDataNodes(vtkCollection *nodes)
Deprecated method!
bool SetSelectedItemByIndexValue(const std::string &indexValue, bool exactMatchRequired=true)
virtual std::string GetRecordingSamplingModeAsString()
void GetSynchronizedSequenceNodes(vtkCollection *synchronizedDataNodes, bool includeMasterNode=false)
void OnNodeReferenceAdded(vtkMRMLNodeReference *nodeReference) override
Called whenever a new node reference is added.
void RemoveAllProxyNodes()
std::string IndexDisplayFormat
void SetOverwriteProxyName(vtkMRMLSequenceNode *sequenceNode, bool overwrite)
double LastSaveProxyNodesStateTimeSec
static std::string GetRecordingSamplingModeAsString(int recordingSamplingMode)
Helper functions for converting between string and code representation of recording sampling modes.
vtkMRMLNode * GetVirtualOutputDataNode(vtkMRMLSequenceNode *sequenceNode)
Deprecated method!
std::string GetFormattedIndexValue(int index)
int SelectNextItem(int selectionIncrement=1)
Selects a sequence item for display, returns current selected item number.
bool GetSaveChanges(vtkMRMLSequenceNode *sequenceNode)
int GetNumberOfItems()
Returns number of items in the sequence (number of data nodes in master sequence node)
void FixSequenceNodeReferenceRoleName()
bool GetRecording(vtkMRMLSequenceNode *sequenceNode)
Add new items to the sequence when sequence recording is activated.
bool IsProxyNodeID(const char *nodeId)
Returns true if the nodeId belongs to a proxy node managed by this browser node.
vtkMRMLNode * GetProxyNode(vtkMRMLSequenceNode *sequenceNode)
Get proxy corresponding to a sequence node.
vtkMRMLSequenceBrowserNode()
bool IsProxyNode(const char *nodeId)
Deprecated. Use IsProxyNodeID instead.
void SetPlayback(vtkMRMLSequenceNode *sequenceNode, bool playback)
void operator=(const vtkMRMLSequenceBrowserNode &)
vtkMRMLSequenceNode * GetSequenceNode(vtkMRMLNode *proxyNode)
Get sequence node corresponding to a proxy node.
bool PlaybackItemSkippingEnabled
std::string AddSynchronizedSequenceNode(const char *synchronizedSequenceNodeId)
Deprecated. Use AddSynchronizedSequenceNodeID instead.
void SetMissingItemMode(vtkMRMLSequenceNode *sequenceNode, MissingItemModeType missingItemMode)
MissingItemModeType GetMissingItemMode(vtkMRMLSequenceNode *sequenceNode)
bool IsAnySequenceNodeRecording()
Returns true if any of the sequence node is allowed to record.
void SetSaveChanges(vtkMRMLSequenceNode *sequenceNode, bool save)
bool GetPlayback(vtkMRMLSequenceNode *sequenceNode)
Update the proxy node with the content of the sequence.
static std::string GetMissingItemModeAsString(int missingItemMode)
Helper functions for converting between string and code representation of recording sampling modes.
int GetNumberOfSynchronizedSequenceNodes(bool includeMasterNode=false)
Returns number of synchronized sequence nodes.
void GetAllProxyNodes(vtkCollection *nodes)
void RemoveSynchronizedSequenceNode(const char *nodeId)
Removes a node from synchronized browsing.
static vtkMRMLSequenceBrowserNode * New()
static int GetRecordingSamplingModeFromString(const std::string &recordingSamplingModeString)
bool IsSynchronizedSequenceNodeID(const char *sequenceNodeId, bool includeMasterNode=false)
Returns true if the node is selected for synchronized browsing.
std::string GetSynchronizationPostfixFromSequence(vtkMRMLSequenceNode *sequenceNode)
void SetIndexDisplayFormat(std::string displayFormat)
Get/set format of index value display (used if index type is numeric)
IndexDisplayModeType
Modes displaying index for the user.
@ NumberOfIndexDisplayModes
@ IndexDisplayAsIndexValue
void RemoveProxyNode(const std::string &postfix)
static int GetIndexDisplayModeFromString(const std::string &indexDisplayModeString)
@ MissingItemInvalid
mode is invalid
@ MissingItemSetToDefault
the proxy node is set to the default (empty) node; new item is not created
@ MissingItemCreateFromPrevious
previous item is used for initializing the new item (this is the default mode)
@ NumberOfMissingItemModes
@ MissingItemCreateFromDefault
the new item is created from the default node (typically an empty node)
~vtkMRMLSequenceBrowserNode() override
void SetRecordingSamplingModeFromString(const char *recordingSamplingModeString)
static std::string GetIndexDisplayModeAsString(int indexDisplayMode)
Helper functions for converting between string and code representation of index display modes.
bool IsSynchronizedSequenceNode(vtkMRMLSequenceNode *sequenceNode, bool includeMasterNode=false)
void SetOverwriteTargetNodeName(bool overwrite)
Deprecated method!
vtkMRMLSequenceNode * GetMasterSequenceNode()
Get the sequence data node.
std::string SetAndObserveMasterSequenceNodeID(const char *sequenceNodeID)
virtual void SaveProxyNodesState()
Save state of all proxy nodes that recording is enabled for.
std::string GenerateSynchronizationPostfix()
vtkMRMLNode * AddProxyNode(vtkMRMLNode *sourceProxyNode, vtkMRMLSequenceNode *sequenceNode, bool copy=true)
Adds proxy nodes from another scene (typically from the main scene). The data node is optionally copi...
RecordingSamplingModeType
Modes for determining recording frame rate.
@ SamplingLimitedToPlaybackFrameRate
@ NumberOfRecordingSamplingModes
static bool ValidateFormatString(std::string &validatedFormat, std::string &prefix, std::string &suffix, const std::string &requestedFormat, const std::string &typeString)
MRML node for representing a sequence of MRML nodes.