Slicer  5.3
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkMRMLVolumeNode Class Referenceabstract

MRML node for representing a volume (image stack). More...

#include <Libs/MRML/Core/vtkMRMLVolumeNode.h>

Inheritance diagram for vtkMRMLVolumeNode:
Inheritance graph
[legend]
Collaboration diagram for vtkMRMLVolumeNode:
Collaboration graph
[legend]

Public Types

enum  {
  VoxelVectorTypeUndefined, VoxelVectorTypeSpatial, VoxelVectorTypeColorRGB, VoxelVectorTypeColorRGBA,
  VoxelVectorType_Last
}
 
enum  { ImageDataModifiedEvent = 18001 }
 ImageDataModifiedEvent is generated when image data is changed. More...
 
typedef vtkMRMLDisplayableNode Superclass
 
- Public Types inherited from vtkMRMLDisplayableNode
enum  { DisplayModifiedEvent = 17000 }
 
typedef vtkMRMLTransformableNode Superclass
 
- Public Types inherited from vtkMRMLTransformableNode
enum  { TransformModifiedEvent = 15000 }
 TransformModifiedEvent is send when the parent transform is modidied. More...
 
typedef vtkMRMLStorableNode Superclass
 
- Public Types inherited from vtkMRMLStorableNode
typedef vtkMRMLNode Superclass
 
- Public Types inherited from vtkMRMLNode
enum  {
  HierarchyModifiedEvent = 16000, IDChangedEvent = 16001, ReferenceAddedEvent, ReferenceModifiedEvent,
  ReferenceRemovedEvent, ReferencedNodeModifiedEvent
}
 
typedef vtkObject Superclass
 

Public Member Functions

bool AddCenteringTransform ()
 
virtual void ApplyNonLinearTransform (vtkAbstractTransform *transform)
 
void ApplyTransform (vtkAbstractTransform *transform) override
 
void ApplyTransformMatrix (vtkMatrix4x4 *transformMatrix) override
 
bool CanApplyNonLinearTransforms () const override
 
void CopyOrientation (vtkMRMLVolumeNode *node)
 
Copy the node's attributes to this object More...
 
void CreateDefaultSequenceDisplayNodes () override
 Creates the most appropriate display node class for storing a sequence of these nodes. More...
 
vtkMRMLNodeCreateNodeInstance () override=0
 MRMLNode methods. More...
 
void GetBounds (double bounds[6]) override
 
virtual const char * GetClassName ()
 
void GetIJKToRASDirectionMatrix (vtkMatrix4x4 *mat)
 
void GetIJKToRASDirections (double dirs[3][3])
 
void GetIJKToRASMatrix (vtkMatrix4x4 *mat)
 
virtual double GetImageBackgroundScalarComponentAsDouble (int component)
 
virtual vtkImageData * GetImageData ()
 
virtual vtkAlgorithmOutput * GetImageDataConnection ()
 Return the input image data pipeline. More...
 
void GetIToRASDirection (double dirs[3])
 
void GetJToRASDirection (double dirs[3])
 
void GetKToRASDirection (double dirs[3])
 
double GetMaxSpacing ()
 
Utility function that returns the max spacing between the 3 orientations More...
 
const itk::MetaDataDictionary & GetMetaDataDictionary () const
 
double GetMinSpacing ()
 
Utility function that returns the min spacing between the 3 orientations More...
 
bool GetModifiedSinceRead () override
 
const char * GetNodeTagName () override=0
 
Get node XML tag name (like Volume, Model) More...
 
virtual void GetOrigin (double &, double &, double &)
 
virtual void GetOrigin (double [3])
 
virtual double * GetOrigin ()
 
void GetRASBounds (double bounds[6]) override
 
void GetRASToIJKMatrix (vtkMatrix4x4 *mat)
 
void GetSliceBounds (double bounds[6], vtkMatrix4x4 *rasToSlice, bool useVoxelCenter=false)
 
virtual void GetSpacing (double &, double &, double &)
 
virtual double * GetSpacing ()
 
virtual void GetSpacing (double [3])
 
virtual vtkMRMLVolumeDisplayNodeGetVolumeDisplayNode ()
 
Associated display MRML node More...
 
virtual int GetVoxelVectorType ()
 
virtual int IsA (const char *type)
 
bool IsCentered ()
 Returns true if the volume center is in the origin. More...
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
void ProcessMRMLEvents (vtkObject *, unsigned long, void *) override
 
alternative method to propagate events generated in Display nodes More...
 
void ReadXMLAttributes (const char **atts) override
 
Read node attributes from XML file More...
 
virtual void SetAndObserveImageData (vtkImageData *ImageData)
 
void SetIJKToRASDirectionMatrix (vtkMatrix4x4 *mat)
 
void SetIJKToRASDirections (double dirs[3][3])
 
void SetIJKToRASDirections (double ir, double ia, double is, double jr, double ja, double js, double kr, double ka, double ks)
 
void SetIJKToRASMatrix (vtkMatrix4x4 *mat)
 
virtual void SetImageDataConnection (vtkAlgorithmOutput *inputPort)
 
void SetIToRASDirection (double ir, double ia, double is)
 
void SetJToRASDirection (double jr, double ja, double js)
 
void SetKToRASDirection (double kr, double ka, double ks)
 
void SetMetaDataDictionary (const itk::MetaDataDictionary &)
 
Set/Get the ITK MetaDataDictionary More...
 
virtual void SetOrigin (double arg1, double arg2, double arg3)
 
virtual void SetOrigin (double arg[3])
 
void SetRASToIJKMatrix (vtkMatrix4x4 *mat)
 
virtual void SetSpacing (double arg1, double arg2, double arg3)
 
virtual void SetSpacing (double arg[3])
 
virtual void SetVoxelVectorType (int)
 
void ShiftImageDataExtentToZeroStart ()
 
void UpdateScene (vtkMRMLScene *scene) override
 
Finds the storage node and read the data More...
 
 vtkMRMLCopyContentMacro (vtkMRMLVolumeNode)
 
void WriteXML (ostream &of, int indent) override
 
Write this node's information to a MRML file in XML format. More...
 
- Public Member Functions inherited from vtkMRMLDisplayableNode
void AddAndObserveDisplayNodeID (const char *displayNodeID)
 
void Copy (vtkMRMLNode *node) override
 
Copy the node's attributes to this object More...
 
virtual void CreateDefaultDisplayNodes ()
 
virtual int GetDisplayClassVisibility (const char *nodeClass)
 
vtkMRMLDisplayNodeGetDisplayNode ()
 
const char * GetDisplayNodeID ()
 
virtual const char * GetDisplayNodeReferenceRole ()
 
virtual int GetDisplayVisibility ()
 
vtkMRMLDisplayNodeGetNthDisplayNode (int n)
 
const char * GetNthDisplayNodeID (int n)
 
int GetNumberOfDisplayNodes ()
 
bool HasDisplayNodeID (const char *displayNodeID)
 
Return true if displayNodeID is in the display node ID list. More...
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
void RemoveAllDisplayNodeIDs ()
 
Remove all display node IDs and associated display nodes. More...
 
void RemoveNthDisplayNodeID (int n)
 
void SetAndObserveDisplayNodeID (const char *displayNodeID)
 
void SetAndObserveNthDisplayNodeID (int n, const char *displayNodeID)
 
virtual void SetDisplayClassVisibility (const char *nodeClass, int visible)
 
virtual void SetDisplayVisibility (int visible)
 
void SetSelectable (int) override
 
virtual void WriteCLI (std::vector< std::string > &vtkNotUsed(commandLine), std::string vtkNotUsed(prefix), int vtkNotUsed(coordinateSystemFlag)=vtkMRMLStorageNode::CoordinateSystemRAS, int vtkNotUsed(multipleFlag)=1)
 
- Public Member Functions inherited from vtkMRMLTransformableNode
vtkMRMLTransformNodeGetParentTransformNode ()
 
Associated transform MRML node More...
 
const char * GetTransformNodeID ()
 Get referenced transform node id. More...
 
bool HardenTransform ()
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
bool SetAndObserveTransformNodeID (const char *transformNodeID)
 
virtual void TransformPointFromWorld (const double inWorld[3], double outLocal[3])
 
virtual void TransformPointFromWorld (const vtkVector3d &inWorld, vtkVector3d &outLocal)
 
virtual void TransformPointToWorld (const double inLocal[3], double outWorld[3])
 
virtual void TransformPointToWorld (const vtkVector3d &inLocal, vtkVector3d &outWorld)
 
- Public Member Functions inherited from vtkMRMLStorableNode
void AddAndObserveStorageNodeID (const char *storageNodeID)
 
virtual bool AddDefaultStorageNode (const char *filename=nullptr)
 
void Copy (vtkMRMLNode *node) override
 Copy node contents from another node of the same type. Reimplemented to copy default sequence storage node class. More...
 
virtual vtkMRMLStorageNodeCreateDefaultSequenceStorageNode ()
 
virtual vtkMRMLStorageNodeCreateDefaultStorageNode ()
 
virtual std::string GetDefaultSequenceStorageNodeClassName ()
 
virtual std::string GetDefaultStorageNodeClassName (const char *filename=nullptr)
 
vtkMRMLStorageNodeGetNthStorageNode (int n)
 
Get associated display MRML node More...
 
const char * GetNthStorageNodeID (int n)
 
int GetNumberOfStorageNodes ()
 
const char * GetSlicerDataType ()
 
vtkMRMLStorageNodeGetStorageNode ()
 
const char * GetStorageNodeID ()
 
virtual vtkTagTableGetUserTagTable ()
 Methods for user-specified metadata. More...
 
bool HasStorageNodeID (const char *storageNodeID)
 
Return true if storageNodeID is in the storage node ID list. More...
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
void SetAndObserveNthStorageNodeID (int n, const char *storageNodeID)
 
void SetAndObserveStorageNodeID (const char *storageNodeID)
 
String ID of the storage MRML node More...
 
virtual void SetDefaultSequenceStorageNodeClassName (std::string)
 
void SetSlicerDataType (const char *type)
 
virtual void StorableModified ()
 
 vtkMRMLCopyContentMacro (vtkMRMLStorableNode)
 
- Public Member Functions inherited from vtkMRMLNode
vtkMRMLNodeAddAndObserveNodeReferenceID (const char *referenceRole, const char *referencedNodeID, vtkIntArray *events=nullptr)
 Add and observe a reference node from this node for a specific referenceRole. More...
 
vtkMRMLNodeAddNodeReferenceID (const char *referenceRole, const char *referencedNodeID)
 Convenience method that adds a referencedNodeID at the end of the list. More...
 
void AddNodeReferenceRole (const char *referenceRole, const char *mrmlAttributeName=nullptr, vtkIntArray *events=nullptr)
 Add a referenceRole. More...
 
virtual void AddToSceneOff ()
 
virtual void AddToSceneOn ()
 
virtual void CopyContent (vtkMRMLNode *node, bool deepCopy=true)
 Copy node contents from another node of the same type. Does not copy node ID, Scene, Name, SingletonTag, HideFromEditors, AddToScene, UndoEnabled, and node references. If deepCopy is set to false then a shallow copy of bulk data (such as image or mesh data) could be made; copying may be faster but the node may share some data with the source node instead of creating an independent copy. More...
 
virtual void CopyReferences (vtkMRMLNode *node)
 Copy the references of the node into this. More...
 
void CopyWithScene (vtkMRMLNode *node)
 Copy everything (including Scene and ID) from another node of the same type. More...
 
void DisableModifiedEventOff ()
 
void DisableModifiedEventOn ()
 
virtual int EndModify (int previousDisableModifiedEventState)
 End modifying the node. More...
 
virtual int GetAddToScene ()
 node added to MRML scene. More...
 
const char * GetAttribute (const char *name)
 Get value of a name value pair attribute. More...
 
std::vector< std::string > GetAttributeNames ()
 Get all attribute names. More...
 
void GetAttributeNames (vtkStringArray *attributeNames)
 Get all attribute names. Python-wrappable version. More...
 
virtual vtkIntArray * GetContentModifiedEvents ()
 
int GetCustomModifiedEventPending (int eventId)
 
virtual char * GetDescription ()
 
virtual int GetDisableModifiedEvent ()
 Turn on/off generating InvokeEvent for set macros. More...
 
virtual int GetHideFromEditors ()
 Describes if the node is hidden. More...
 
virtual char * GetID ()
 ID use by other nodes to reference this node in XML. More...
 
virtual int GetInMRMLCallbackFlag ()
 Flags to avoid event loops. More...
 
virtual int GetModifiedEventPending ()
 
virtual char * GetName ()
 
vtkMRMLNodeGetNodeReference (const char *referenceRole)
 
const char * GetNodeReferenceID (const char *referenceRole)
 Utility function that returns the first node id for a specific referenceRole. More...
 
void GetNodeReferenceIDs (const char *referenceRole, std::vector< const char *> &referencedNodeIDs)
 Return a list of the referenced node IDs. More...
 
void GetNodeReferenceRoles (std::vector< std::string > &roles)
 
void GetNodeReferences (const char *referenceRole, std::vector< vtkMRMLNode *> &nodes)
 Return a list of the referenced nodes. More...
 
vtkMRMLNodeGetNthNodeReference (const char *referenceRole, int n)
 Get referenced MRML node for a specific referenceRole. More...
 
const char * GetNthNodeReferenceID (const char *referenceRole, int n)
 Return the string of the Nth node ID for a specific reference role. More...
 
const char * GetNthNodeReferenceRole (int n)
 
int GetNumberOfNodeReferenceRoles ()
 
int GetNumberOfNodeReferences (const char *referenceRole)
 Return the number of node IDs for a specific reference role (and nodes as they always have the same size). More...
 
virtual int GetSaveWithScene ()
 Save node with MRML scene. More...
 
virtual vtkMRMLSceneGetScene ()
 Get the scene this node has been added to. More...
 
virtual int GetSelectable ()
 Describes if the node is selectable. More...
 
virtual int GetSelected ()
 Get/Set for Selected. More...
 
virtual char * GetSingletonTag ()
 
virtual const char * GetTypeDisplayName ()
 
virtual bool GetUndoEnabled ()
 
virtual bool HasCopyContent () const
 Returns true if the class supports deep and shallow copying node content. More...
 
bool HasNodeReferenceID (const char *referenceRole, const char *referencedNodeID)
 Return true if referencedNodeID is in the node ID list for a specific referenceRole. More...
 
virtual void HideFromEditorsOff ()
 
virtual void HideFromEditorsOn ()
 
virtual void InvokeCustomModifiedEvent (int eventId, void *callData=nullptr)
 This method allows the node to compress events. More...
 
virtual int InvokePendingModifiedEvent ()
 Invokes any modified events that are pending. More...
 
bool IsSingleton ()
 
void Modified () override
 Customized version of Modified() allowing to compress vtkCommand::ModifiedEvent. More...
 
virtual void OnNodeAddedToScene ()
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
virtual void ProcessChildNode (vtkMRMLNode *)
 Set dependencies between this node and a child node when parsing XML file. More...
 
void RemoveAttribute (const char *name)
 Remove attribute with the specified name. More...
 
void RemoveNodeReferenceIDs (const char *referenceRole)
 Remove all node IDs and associated nodes for a specific referenceRole. More...
 
void RemoveNthNodeReferenceID (const char *referenceRole, int n)
 Convenience method that removes the Nth node ID from the list. More...
 
virtual void Reset (vtkMRMLNode *defaultNode)
 Reset node attributes to the initial state as defined in the constructor or the passed default node. More...
 
virtual void SaveWithSceneOff ()
 
virtual void SaveWithSceneOn ()
 
virtual void SelectableOff ()
 
virtual void SelectableOn ()
 
virtual void SelectedOff ()
 
virtual void SelectedOn ()
 
virtual void SetAddToScene (int)
 
void SetAddToSceneNoModify (int value)
 
vtkMRMLNodeSetAndObserveNodeReferenceID (const char *referenceRole, const char *referencedNodeID, vtkIntArray *events=nullptr)
 Set and observe a reference node from this node for a specific referenceRole. More...
 
vtkMRMLNodeSetAndObserveNthNodeReferenceID (const char *referenceRole, int n, const char *referencedNodeID, vtkIntArray *events=nullptr)
 Set and observe the Nth node ID for a specific reference role. More...
 
void SetAttribute (const char *name, const char *value)
 Set a name value pair attribute. More...
 
virtual void SetDescription (const char *)
 Text description of this node, to be set by the user. More...
 
void SetDisableModifiedEvent (int onOff)
 
virtual void SetHideFromEditors (int)
 
void SetInMRMLCallbackFlag (int flag)
 
virtual void SetName (const char *)
 Name of this node, to be set by the user. More...
 
vtkMRMLNodeSetNodeReferenceID (const char *referenceRole, const char *referencedNodeID)
 Set a reference to a node with specified nodeID from this node for a specific referenceRole. More...
 
vtkMRMLNodeSetNthNodeReferenceID (const char *referenceRole, int n, const char *referencedNodeID)
 Set a N-th reference from this node with specified referencedNodeID for a specific referenceRole. More...
 
virtual void SetSaveWithScene (int)
 
virtual void SetScene (vtkMRMLScene *scene)
 This method is for internal use only. Use AddNode method of vtkMRMLScene to add a node to the scene. More...
 
virtual void SetSceneReferences ()
 Update the references of the node to the scene. More...
 
virtual void SetSelected (int)
 
void SetSingletonOff ()
 
void SetSingletonOn ()
 
virtual void SetSingletonTag (const char *)
 Tag that make this node a singleton in the scene. More...
 
virtual void SetUndoEnabled (bool)
 
virtual int StartModify ()
 Start modifying the node. Disable Modify events. More...
 
virtual void UndoEnabledOff ()
 
virtual void UndoEnabledOn ()
 
virtual void UpdateReferenceID (const char *oldID, const char *newID)
 Update the stored reference to another node in the scene. More...
 
virtual void UpdateReferences ()
 The method should remove all pointers and observations to all nodes that are not in the scene anymore. More...
 
const char * URLDecodeString (const char *inString)
 Decode a URL string. More...
 
const char * URLEncodeString (const char *inString)
 Encode a URL string. More...
 
virtual void WriteNodeBodyXML (ostream &of, int indent)
 Write this node's body to a MRML file in XML format. More...
 
std::string XMLAttributeDecodeString (const std::string &inString)
 Decode an XML attribute string. More...
 
std::string XMLAttributeEncodeString (const std::string &inString)
 Encode an XML attribute string (replaces special characters by code sequences) More...
 

Static Public Member Functions

static bool ComputeIJKToRASFromScanOrder (const char *order, const double *spacing, const int *dims, bool centerImage, vtkMatrix4x4 *IJKToRAS)
 RAS->IJK Matrix Calculation. More...
 
static const char * ComputeScanOrderFromIJKToRAS (vtkMatrix4x4 *IJKToRAS)
 
static const char * GetVoxelVectorTypeAsString (int id)
 Convert between voxel type ID and name. More...
 
static int GetVoxelVectorTypeFromString (const char *name)
 
static int IsTypeOf (const char *type)
 
static vtkMRMLVolumeNodeSafeDownCast (vtkObject *o)
 
- Static Public Member Functions inherited from vtkMRMLDisplayableNode
static int IsTypeOf (const char *type)
 
static vtkMRMLDisplayableNodeSafeDownCast (vtkObject *o)
 
- Static Public Member Functions inherited from vtkMRMLTransformableNode
static int IsTypeOf (const char *type)
 
static vtkMRMLTransformableNodeSafeDownCast (vtkObject *o)
 
- Static Public Member Functions inherited from vtkMRMLStorableNode
static int IsTypeOf (const char *type)
 
static vtkMRMLStorableNodeSafeDownCast (vtkObject *o)
 
- Static Public Member Functions inherited from vtkMRMLNode
static int IsTypeOf (const char *type)
 
static vtkMRMLNodeSafeDownCast (vtkObject *o)
 

Protected Member Functions

virtual void GetBoundsInternal (double bounds[6], vtkMatrix4x4 *rasToSlice, bool useTransform, bool useVoxelCenter=false)
 
void GetCenterPositionRAS (double *centerPositionRAS, bool useParentTransform=true)
 
virtual int GetResamplingInterpolationMode ()
 
void OnNodeReferenceAdded (vtkMRMLNodeReference *reference) override
 
Called when a node reference ID is added (list size increased). More...
 
void OnNodeReferenceModified (vtkMRMLNodeReference *reference) override
 
Called when a node reference ID is modified. More...
 
void operator= (const vtkMRMLVolumeNode &)
 
void SetImageDataToDisplayNode (vtkMRMLVolumeDisplayNode *displayNode)
 
void SetImageDataToDisplayNodes ()
 Set the image data pipeline to all the display nodes. More...
 
virtual void UpdateDisplayNodeImageData (vtkMRMLDisplayNode *dnode)
 
 vtkMRMLVolumeNode ()
 
 vtkMRMLVolumeNode (const vtkMRMLVolumeNode &)
 
 ~vtkMRMLVolumeNode () override
 
- Protected Member Functions inherited from vtkMRMLDisplayableNode
virtual const char * GetDisplayNodeReferenceMRMLAttributeName ()
 
void OnNodeReferenceRemoved (vtkMRMLNodeReference *reference) override
 
Called after a node reference ID is removed (list size decreased). More...
 
void operator= (const vtkMRMLDisplayableNode &)
 
 vtkMRMLDisplayableNode ()
 
 vtkMRMLDisplayableNode (const vtkMRMLDisplayableNode &)
 
 ~vtkMRMLDisplayableNode () override
 
- Protected Member Functions inherited from vtkMRMLTransformableNode
virtual const char * GetTransformNodeReferenceMRMLAttributeName ()
 
virtual const char * GetTransformNodeReferenceRole ()
 
void OnNodeReferenceRemoved (vtkMRMLNodeReference *reference) override
 
Called after a node reference ID is removed (list size decreased). More...
 
virtual void OnTransformNodeReferenceChanged (vtkMRMLTransformNode *transformNode)
 Called when transform node reference added/modified/removed. More...
 
void operator= (const vtkMRMLTransformableNode &)
 
 vtkMRMLTransformableNode ()
 
 vtkMRMLTransformableNode (const vtkMRMLTransformableNode &)
 
 ~vtkMRMLTransformableNode () override
 
- Protected Member Functions inherited from vtkMRMLStorableNode
virtual const char * GetStorageNodeReferenceMRMLAttributeName ()
 
virtual const char * GetStorageNodeReferenceRole ()
 
virtual vtkTimeStamp GetStoredTime ()
 
void operator= (const vtkMRMLStorableNode &)
 
 vtkMRMLStorableNode ()
 
 vtkMRMLStorableNode (const vtkMRMLStorableNode &)
 
 ~vtkMRMLStorableNode () override
 
- Protected Member Functions inherited from vtkMRMLNode
virtual const char * GetMRMLAttributeNameFromReferenceRole (const char *refRole)
 Return the mrml attribute name (if found) associated with a reference role. Return 0 otherwise. More...
 
virtual const char * GetReferenceRoleFromMRMLAttributeName (const char *attName)
 Return the reference role (if found) associated with the attribute name found in a MRML scene file. Return 0 otherwise. More...
 
virtual char * GetTempURLString ()
 
void GetUpdatedReferencedNodeEventList (int &oldReferencedNodeUseCount, int &newReferencedNodeUseCount, vtkIntArray *oldConsolidatedEventList, vtkIntArray *newConsolidatedEventList, vtkMRMLNode *oldReferencedNode, vtkMRMLNode *newReferencedNode, vtkMRMLNodeReference *referenceToIgnore, vtkIntArray *newEvents)
 
virtual void InvalidateNodeReferences ()
 
virtual bool IsReferenceRoleGeneric (const char *refRole)
 Return true if the reference role is generic (ends with '/') or false otherwise. More...
 
void operator= (const vtkMRMLNode &)
 
void ParseReferencesAttribute (const char *attValue, std::set< std::string > &references)
 
void RemoveInvalidReferences (const std::set< std::string > &validNodeIDs)
 
virtual void SetTempURLString (const char *)
 Get/Set the string used to manage encoding/decoding of strings/URLs with special characters. More...
 
vtkMRMLNodeUpdateNodeReferenceEventObserver (vtkMRMLNode *oldReferencedNode, vtkMRMLNode *newReferencedNode, vtkIntArray *newEvents, vtkMRMLNodeReference *referenceToIgnore)
 
virtual void UpdateNodeReferences (const char *referenceRole=nullptr)
 
virtual void UpdateNthNodeReference (const char *referenceRole, int n)
 
 vtkMRMLNode ()
 
 vtkMRMLNode (const vtkMRMLNode &)
 
 ~vtkMRMLNode () override
 critical to have a virtual destructor! More...
 

Protected Attributes

vtkEventForwarderCommand * DataEventForwarder
 
itk::MetaDataDictionary Dictionary
 
double IJKToRASDirections [3][3]
 these are unit length direction cosines More...
 
vtkAlgorithmOutput * ImageDataConnection
 
double Origin [3]
 
double Spacing [3]
 these are mappings to mm space More...
 
int VoxelVectorType
 
- Protected Attributes inherited from vtkMRMLStorableNode
std::string DefaultSequenceStorageNodeClassName
 
std::string SlicerDataType
 
vtkTimeStamp StorableModifiedTime
 
vtkTagTableUserTagTable
 
- Protected Attributes inherited from vtkMRMLNode
int AddToScene {1}
 
AttributesType Attributes
 
vtkIntArray * ContentModifiedEvents
 
char * Description {nullptr}
 
int HideFromEditors {0}
 
char * ID {nullptr}
 
int InMRMLCallbackFlag {0}
 
Flag to avoid event loops More...
 
vtkCallbackCommand * MRMLCallbackCommand
 Holders for MRML callbacks. More...
 
vtkObserverManagerMRMLObserverManager
 
char * Name {nullptr}
 
NodeReferenceEventsType NodeReferenceEvents
 
std::map< std::string, std::string > NodeReferenceMRMLAttributeNames
 
NodeReferencesType NodeReferences
 
int SaveWithScene {true}
 
vtkWeakPointer< vtkMRMLSceneScene
 
int Selectable {1}
 
int Selected {0}
 
bool UndoEnabled {false}
 

Additional Inherited Members

- Protected Types inherited from vtkMRMLNode
typedef std::map< std::string, std::string > AttributesType
 
typedef std::map< std::string, vtkSmartPointer< vtkIntArray > > NodeReferenceEventsType
 
typedef std::vector< vtkSmartPointer< vtkMRMLNodeReference > > NodeReferenceListType
 
typedef std::map< std::string, NodeReferenceListTypeNodeReferencesType
 
- Static Protected Member Functions inherited from vtkMRMLNode
static void MRMLCallback (vtkObject *caller, unsigned long eid, void *clientData, void *callData)
 
- Static Protected Attributes inherited from vtkMRMLDisplayableNode
static const char * DisplayNodeReferenceMRMLAttributeName
 
static const char * DisplayNodeReferenceRole
 
- Static Protected Attributes inherited from vtkMRMLTransformableNode
static const char * TransformNodeReferenceMRMLAttributeName
 
static const char * TransformNodeReferenceRole
 
- Static Protected Attributes inherited from vtkMRMLStorableNode
static const char * StorageNodeReferenceMRMLAttributeName
 
static const char * StorageNodeReferenceRole
 

Detailed Description

MRML node for representing a volume (image stack).

Volume nodes describe data sets that can be thought of as stacks of 2D images that form a 3D volume. Volume nodes describe where the images are stored on disk, how to render the data (window and level), and how to read the files. This information is extracted from the image headers (if they exist) at the time the MRML file is generated. Consequently, MRML files isolate MRML browsers from understanding how to read the myriad of file formats for medical data.

Definition at line 40 of file vtkMRMLVolumeNode.h.

Member Typedef Documentation

◆ Superclass

Definition at line 43 of file vtkMRMLVolumeNode.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
VoxelVectorTypeUndefined 
VoxelVectorTypeSpatial 
VoxelVectorTypeColorRGB 
VoxelVectorTypeColorRGBA 
VoxelVectorType_Last 

Definition at line 46 of file vtkMRMLVolumeNode.h.

◆ anonymous enum

anonymous enum

ImageDataModifiedEvent is generated when image data is changed.

Enumerator
ImageDataModifiedEvent 

Definition at line 206 of file vtkMRMLVolumeNode.h.

Constructor & Destructor Documentation

◆ vtkMRMLVolumeNode() [1/2]

vtkMRMLVolumeNode::vtkMRMLVolumeNode ( )
protected

◆ ~vtkMRMLVolumeNode()

vtkMRMLVolumeNode::~vtkMRMLVolumeNode ( )
overrideprotected

◆ vtkMRMLVolumeNode() [2/2]

vtkMRMLVolumeNode::vtkMRMLVolumeNode ( const vtkMRMLVolumeNode )
protected

Member Function Documentation

◆ AddCenteringTransform()

bool vtkMRMLVolumeNode::AddCenteringTransform ( )

Add a transform to the scene that puts the center of the volume in the origin. Returns true if the parent transform is changed.

◆ ApplyNonLinearTransform()

virtual void vtkMRMLVolumeNode::ApplyNonLinearTransform ( vtkAbstractTransform *  transform)
virtual

◆ ApplyTransform()

void vtkMRMLVolumeNode::ApplyTransform ( vtkAbstractTransform *  transform)
overridevirtual

Transforms the node with the provided non-linear transform.

See also
SetAndObserveTransformNodeID, ApplyTransformMatrix, CanApplyNonLinearTransforms

Reimplemented from vtkMRMLTransformableNode.

◆ ApplyTransformMatrix()

void vtkMRMLVolumeNode::ApplyTransformMatrix ( vtkMatrix4x4 *  transformMatrix)
overridevirtual

Convenience function to allow transforming a node by specifying a transformation matrix.

See also
ApplyTransformMatrix, ApplyTransform

Reimplemented from vtkMRMLTransformableNode.

◆ CanApplyNonLinearTransforms()

bool vtkMRMLVolumeNode::CanApplyNonLinearTransforms ( ) const
overridevirtual

Returns true if the transformable node can apply non-linear transforms. A transformable node is always expected to apply linear transforms.

See also
ApplyTransformMatrix, ApplyTransform

Reimplemented from vtkMRMLTransformableNode.

◆ ComputeIJKToRASFromScanOrder()

static bool vtkMRMLVolumeNode::ComputeIJKToRASFromScanOrder ( const char *  order,
const double *  spacing,
const int *  dims,
bool  centerImage,
vtkMatrix4x4 *  IJKToRAS 
)
static

RAS->IJK Matrix Calculation.

The order of slices in the volume. One of: LR (left-to-right), RL, AP, PA, IS, SI. This information is encoded in the rasToIJKMatrix. This matrix can be computed either from corner points, or just he scanOrder. Return true on success, false otherwise

◆ ComputeScanOrderFromIJKToRAS()

static const char* vtkMRMLVolumeNode::ComputeScanOrderFromIJKToRAS ( vtkMatrix4x4 *  IJKToRAS)
static

◆ CopyOrientation()

void vtkMRMLVolumeNode::CopyOrientation ( vtkMRMLVolumeNode node)


Copy the node's attributes to this object

◆ CreateDefaultSequenceDisplayNodes()

void vtkMRMLVolumeNode::CreateDefaultSequenceDisplayNodes ( )
overridevirtual

Creates the most appropriate display node class for storing a sequence of these nodes.

Reimplemented from vtkMRMLDisplayableNode.

◆ CreateNodeInstance()

vtkMRMLNode* vtkMRMLVolumeNode::CreateNodeInstance ( )
overridepure virtual

◆ GetBounds()

void vtkMRMLVolumeNode::GetBounds ( double  bounds[6])
overridevirtual

Get bounding box in global RAS form (xmin,xmax, ymin,ymax, zmin,zmax). This method always returns the bounds of the untransformed object.

See also
GetRASBounds()

Reimplemented from vtkMRMLDisplayableNode.

◆ GetBoundsInternal()

virtual void vtkMRMLVolumeNode::GetBoundsInternal ( double  bounds[6],
vtkMatrix4x4 *  rasToSlice,
bool  useTransform,
bool  useVoxelCenter = false 
)
protectedvirtual

Return the bounds of the node transformed or not depending on the useTransform parameter and the rasToSlice transform If useVoxelCenter is set to false (default) then bounds of voxel sides are returned (otherwise then bounds of voxels centers are returned).

◆ GetCenterPositionRAS()

void vtkMRMLVolumeNode::GetCenterPositionRAS ( double *  centerPositionRAS,
bool  useParentTransform = true 
)
protected

Returns the origin that would put the volume center in the origin. If useParentTransform is false then parent transform is ignored.

◆ GetClassName()

virtual const char* vtkMRMLVolumeNode::GetClassName ( )
virtual

◆ GetIJKToRASDirectionMatrix()

void vtkMRMLVolumeNode::GetIJKToRASDirectionMatrix ( vtkMatrix4x4 *  mat)

◆ GetIJKToRASDirections()

void vtkMRMLVolumeNode::GetIJKToRASDirections ( double  dirs[3][3])

◆ GetIJKToRASMatrix()

void vtkMRMLVolumeNode::GetIJKToRASMatrix ( vtkMatrix4x4 *  mat)

Get the IJKToRAS Matrix that includes the spacing and origin information (assumes the image data is Origin 0 0 0 and Spacing 1 1 1) RASToIJK is the inverse of this

◆ GetImageBackgroundScalarComponentAsDouble()

virtual double vtkMRMLVolumeNode::GetImageBackgroundScalarComponentAsDouble ( int  component)
virtual

Get background voxel value of the image. It can be used for assigning intensity value to "empty" voxels when the image is transformed. It is computed as median value of the 8 corner voxels.

◆ GetImageData()

virtual vtkImageData* vtkMRMLVolumeNode::GetImageData ( )
virtual

Reimplemented in vtkMRMLStreamingVolumeNode.

◆ GetImageDataConnection()

virtual vtkAlgorithmOutput* vtkMRMLVolumeNode::GetImageDataConnection ( )
virtual

Return the input image data pipeline.

Reimplemented in vtkMRMLStreamingVolumeNode.

◆ GetIToRASDirection()

void vtkMRMLVolumeNode::GetIToRASDirection ( double  dirs[3])

◆ GetJToRASDirection()

void vtkMRMLVolumeNode::GetJToRASDirection ( double  dirs[3])

◆ GetKToRASDirection()

void vtkMRMLVolumeNode::GetKToRASDirection ( double  dirs[3])

◆ GetMaxSpacing()

double vtkMRMLVolumeNode::GetMaxSpacing ( )


Utility function that returns the max spacing between the 3 orientations

◆ GetMetaDataDictionary()

const itk::MetaDataDictionary& vtkMRMLVolumeNode::GetMetaDataDictionary ( ) const

◆ GetMinSpacing()

double vtkMRMLVolumeNode::GetMinSpacing ( )


Utility function that returns the min spacing between the 3 orientations

◆ GetModifiedSinceRead()

bool vtkMRMLVolumeNode::GetModifiedSinceRead ( )
overridevirtual

Returns true if the node is more recent than the file on disk. This information can be used by the application to know which node has been modified since it has been last read or written. Only storable properties are considered: even if a "non storable" property (e.g. color of a mesh) is modified after the node is being loaded, GetModifiedSinceRead() should return false; the new property value won't be stored on file (only in the MRML scene). By default, calling Modified() on the node doesn't make the node "modified since read", only calling Modified() on StorableModifiedTime does. GetModifiedSinceRead() can be overwritten to handle special storable property modification time.

See also
GetStoredTime() StorableModifiedTime Modified() StorableModified()

Reimplemented from vtkMRMLStorableNode.

◆ GetNodeTagName()

const char* vtkMRMLVolumeNode::GetNodeTagName ( )
overridepure virtual

◆ GetOrigin() [1/3]

virtual double* vtkMRMLVolumeNode::GetOrigin ( )
virtual

◆ GetOrigin() [2/3]

virtual void vtkMRMLVolumeNode::GetOrigin ( double &  ,
double &  ,
double &   
)
virtual

◆ GetOrigin() [3/3]

virtual void vtkMRMLVolumeNode::GetOrigin ( double  [3])
virtual

◆ GetRASBounds()

void vtkMRMLVolumeNode::GetRASBounds ( double  bounds[6])
overridevirtual

Get bounding box in global RAS form (xmin,xmax, ymin,ymax, zmin,zmax). This method returns the bounds of the object with any transforms that may be applied to it.

See also
GetSliceBounds(), GetIJKToRASMatrix(), vtkMRMLSliceLogic::GetVolumeSliceBounds()
GetNodeBounds()

Reimplemented from vtkMRMLDisplayableNode.

◆ GetRASToIJKMatrix()

void vtkMRMLVolumeNode::GetRASToIJKMatrix ( vtkMatrix4x4 *  mat)

◆ GetResamplingInterpolationMode()

virtual int vtkMRMLVolumeNode::GetResamplingInterpolationMode ( )
protectedvirtual

Returns the interpolation algorithm that should be used for resampling the volume. The value is one of VTK_NEAREST_INTERPOLATION, VTK_LINEAR_INTERPOLATION, or VTK_CUBIC_INTERPOLATION.

Reimplemented in vtkMRMLLabelMapVolumeNode.

◆ GetSliceBounds()

void vtkMRMLVolumeNode::GetSliceBounds ( double  bounds[6],
vtkMatrix4x4 *  rasToSlice,
bool  useVoxelCenter = false 
)

Get bounding box in slice form (xmin,xmax, ymin,ymax, zmin,zmax). If not rasToSlice is passed, then it returns the bounds in global RAS form.

See also
GetRASBounds() If useVoxelCenter is set to false (default) then bounds of voxel sides are returned (otherwise then bounds of voxels centers are returned).

◆ GetSpacing() [1/3]

virtual double* vtkMRMLVolumeNode::GetSpacing ( )
virtual

Spacing and Origin, with the Directions, are the independent parameters that go to make up the IJKToRAS matrix In setter methods, StorableModifiedTime may need to be updated, which cannot be achieved by using vtkGetVector3Macro.

◆ GetSpacing() [2/3]

virtual void vtkMRMLVolumeNode::GetSpacing ( double &  ,
double &  ,
double &   
)
virtual

◆ GetSpacing() [3/3]

virtual void vtkMRMLVolumeNode::GetSpacing ( double  [3])
virtual

◆ GetVolumeDisplayNode()

virtual vtkMRMLVolumeDisplayNode* vtkMRMLVolumeNode::GetVolumeDisplayNode ( )
virtual


Associated display MRML node

◆ GetVoxelVectorType()

virtual int vtkMRMLVolumeNode::GetVoxelVectorType ( )
virtual

Get/Set how to interpret a scalar components of a voxel. VoxelVectorTypeUndefined: voxel type is not specified, scalar or independent scalar components. VoxelVectorTypeSpatialVector: 3-component spatial vector with RAS components, (sign of first two values are inverted when stored in files as LPS)/ VoxelVectorTypeColorRGB: 3-component vector stores red, green, blue values. VoxelVectorTypeColorRGBA: 4-component vector stores red, green, blue, alpha values.

◆ GetVoxelVectorTypeAsString()

static const char* vtkMRMLVolumeNode::GetVoxelVectorTypeAsString ( int  id)
static

Convert between voxel type ID and name.

◆ GetVoxelVectorTypeFromString()

static int vtkMRMLVolumeNode::GetVoxelVectorTypeFromString ( const char *  name)
static

◆ IsA()

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

◆ IsCentered()

bool vtkMRMLVolumeNode::IsCentered ( )

Returns true if the volume center is in the origin.

◆ IsTypeOf()

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

◆ OnNodeReferenceAdded()

void vtkMRMLVolumeNode::OnNodeReferenceAdded ( vtkMRMLNodeReference reference)
overrideprotectedvirtual


Called when a node reference ID is added (list size increased).

Reimplemented from vtkMRMLDisplayableNode.

◆ OnNodeReferenceModified()

void vtkMRMLVolumeNode::OnNodeReferenceModified ( vtkMRMLNodeReference reference)
overrideprotectedvirtual


Called when a node reference ID is modified.

Reimplemented from vtkMRMLDisplayableNode.

◆ operator=()

void vtkMRMLVolumeNode::operator= ( const vtkMRMLVolumeNode )
protected

◆ PrintSelf()

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

◆ ProcessMRMLEvents()

void vtkMRMLVolumeNode::ProcessMRMLEvents ( vtkObject *  ,
unsigned  long,
void *   
)
overridevirtual


alternative method to propagate events generated in Display nodes

Reimplemented from vtkMRMLDisplayableNode.

◆ ReadXMLAttributes()

void vtkMRMLVolumeNode::ReadXMLAttributes ( const char **  atts)
overridevirtual


Read node attributes from XML file

Reimplemented from vtkMRMLDisplayableNode.

◆ SafeDownCast()

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

◆ SetAndObserveImageData()

virtual void vtkMRMLVolumeNode::SetAndObserveImageData ( vtkImageData *  ImageData)
virtual

In the ImageData object origin must be set to (0,0,0) and spacing must be set to (1,1,1). If the variables are set to different values then the application's behavior is undefined. The reason for not using origin and spacing in vtkImageData is that vtkImageData cannot store image orientation, and so it cannot store all the information that is necessary to compute the mapping between voxel (IJK) and physical (RAS) coordinate systems. Instead of storing some information in vtkImageData and some outside, the decision was made to store all information in the MRML node (vtkMRMLVolumeNode::Origin, vtkMRMLVolumeNode::Spacing, and vtkMRMLVolumeNode::IJKToRASDirections).

See also
GetImageData(), SetImageDataConnection()

Reimplemented in vtkMRMLStreamingVolumeNode.

◆ SetIJKToRASDirectionMatrix()

void vtkMRMLVolumeNode::SetIJKToRASDirectionMatrix ( vtkMatrix4x4 *  mat)

◆ SetIJKToRASDirections() [1/2]

void vtkMRMLVolumeNode::SetIJKToRASDirections ( double  dirs[3][3])

◆ SetIJKToRASDirections() [2/2]

void vtkMRMLVolumeNode::SetIJKToRASDirections ( double  ir,
double  ia,
double  is,
double  jr,
double  ja,
double  js,
double  kr,
double  ka,
double  ks 
)

◆ SetIJKToRASMatrix()

void vtkMRMLVolumeNode::SetIJKToRASMatrix ( vtkMatrix4x4 *  mat)

Convenience methods to set the directions, spacing, and origin from a matrix

◆ SetImageDataConnection()

virtual void vtkMRMLVolumeNode::SetImageDataConnection ( vtkAlgorithmOutput *  inputPort)
virtual

Set and observe image data pipeline. It is propagated to the display nodes.

See also
GetImageDataConnection()

◆ SetImageDataToDisplayNode()

void vtkMRMLVolumeNode::SetImageDataToDisplayNode ( vtkMRMLVolumeDisplayNode displayNode)
protected

◆ SetImageDataToDisplayNodes()

void vtkMRMLVolumeNode::SetImageDataToDisplayNodes ( )
protected

Set the image data pipeline to all the display nodes.

◆ SetIToRASDirection()

void vtkMRMLVolumeNode::SetIToRASDirection ( double  ir,
double  ia,
double  is 
)

◆ SetJToRASDirection()

void vtkMRMLVolumeNode::SetJToRASDirection ( double  jr,
double  ja,
double  js 
)

◆ SetKToRASDirection()

void vtkMRMLVolumeNode::SetKToRASDirection ( double  kr,
double  ka,
double  ks 
)

◆ SetMetaDataDictionary()

void vtkMRMLVolumeNode::SetMetaDataDictionary ( const itk::MetaDataDictionary &  )


Set/Get the ITK MetaDataDictionary

◆ SetOrigin() [1/2]

virtual void vtkMRMLVolumeNode::SetOrigin ( double  arg1,
double  arg2,
double  arg3 
)
virtual

◆ SetOrigin() [2/2]

virtual void vtkMRMLVolumeNode::SetOrigin ( double  arg[3])
virtual

◆ SetRASToIJKMatrix()

void vtkMRMLVolumeNode::SetRASToIJKMatrix ( vtkMatrix4x4 *  mat)

◆ SetSpacing() [1/2]

virtual void vtkMRMLVolumeNode::SetSpacing ( double  arg1,
double  arg2,
double  arg3 
)
virtual

◆ SetSpacing() [2/2]

virtual void vtkMRMLVolumeNode::SetSpacing ( double  arg[3])
virtual

◆ SetVoxelVectorType()

virtual void vtkMRMLVolumeNode::SetVoxelVectorType ( int  )
virtual

◆ ShiftImageDataExtentToZeroStart()

void vtkMRMLVolumeNode::ShiftImageDataExtentToZeroStart ( )

Make sure image data of a volume node has extents that start at zero. This needs to be done for compatibility reasons, as many components assume the extent has a form of (0,dim[0],0,dim[1],0,dim[2]), which is not the case many times for segmentation merged labelmaps.

◆ UpdateDisplayNodeImageData()

virtual void vtkMRMLVolumeNode::UpdateDisplayNodeImageData ( vtkMRMLDisplayNode dnode)
protectedvirtual

Called when a display node is added/removed/modified. Propagate the polydata to the new display node.

◆ UpdateScene()

void vtkMRMLVolumeNode::UpdateScene ( vtkMRMLScene scene)
overridevirtual


Finds the storage node and read the data

Reimplemented from vtkMRMLStorableNode.

◆ vtkMRMLCopyContentMacro()

vtkMRMLVolumeNode::vtkMRMLCopyContentMacro ( vtkMRMLVolumeNode  )

Copy node content (excludes basic data, such as name and node references).

See also
vtkMRMLNode::CopyContent

◆ WriteXML()

void vtkMRMLVolumeNode::WriteXML ( ostream &  of,
int  indent 
)
overridevirtual


Write this node's information to a MRML file in XML format.

Reimplemented from vtkMRMLDisplayableNode.

Member Data Documentation

◆ DataEventForwarder

vtkEventForwarderCommand* vtkMRMLVolumeNode::DataEventForwarder
protected

Definition at line 300 of file vtkMRMLVolumeNode.h.

◆ Dictionary

itk::MetaDataDictionary vtkMRMLVolumeNode::Dictionary
protected

Definition at line 303 of file vtkMRMLVolumeNode.h.

◆ IJKToRASDirections

double vtkMRMLVolumeNode::IJKToRASDirections[3][3]
protected

these are unit length direction cosines

Definition at line 293 of file vtkMRMLVolumeNode.h.

◆ ImageDataConnection

vtkAlgorithmOutput* vtkMRMLVolumeNode::ImageDataConnection
protected

Definition at line 299 of file vtkMRMLVolumeNode.h.

◆ Origin

double vtkMRMLVolumeNode::Origin[3]
protected

Definition at line 297 of file vtkMRMLVolumeNode.h.

◆ Spacing

double vtkMRMLVolumeNode::Spacing[3]
protected

these are mappings to mm space

Definition at line 296 of file vtkMRMLVolumeNode.h.

◆ VoxelVectorType

int vtkMRMLVolumeNode::VoxelVectorType
protected

Definition at line 302 of file vtkMRMLVolumeNode.h.


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