Slicer  4.11
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 | Static Protected Member Functions | Protected Attributes
vtkMRMLSegmentationNode Class Reference

MRML node containing segmentationsSegmentation node stores a set of segments (also known as contours or segmented regions). Segments may overlap and may be stored in various representations (binary labelmap image, closed surface mesh, fractional labelmap image, etc). Segments can be stored in multiple data representations to facilitate visualization and processing. More...

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

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

Public Types

enum  {
  EditAllowedEverywhere = 0, EditAllowedInsideAllSegments, EditAllowedInsideVisibleSegments, EditAllowedOutsideAllSegments,
  EditAllowedOutsideVisibleSegments, EditAllowedInsideSingleSegment, EditAllowed_Last
}
 
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

std::string AddSegmentFromBinaryLabelmapRepresentation (vtkOrientedImageData *imageData, std::string segmentName="", double color[3]=nullptr, std::string segmentId="")
 
virtual std::string AddSegmentFromClosedSurfaceRepresentation (vtkPolyData *polyData, std::string segmentName="", double color[3]=nullptr, std::string segmentId="")
 
void ApplyTransform (vtkAbstractTransform *transform) override
 
void ApplyTransformMatrix (vtkMatrix4x4 *transformMatrix) override
 
bool CanApplyNonLinearTransforms () const override
 
void Copy (vtkMRMLNode *node) override
 Copy the node's attributes to this object. More...
 
virtual bool CreateBinaryLabelmapRepresentation ()
 Generate binary labelmap representation for all segments. More...
 
virtual bool CreateClosedSurfaceRepresentation ()
 
void CreateDefaultDisplayNodes () override
 Create and observe a segmentation display node. More...
 
vtkMRMLStorageNodeCreateDefaultStorageNode () override
 Create a segmentation storage node. More...
 
vtkMRMLNodeCreateNodeInstance () override
 Create instance of a GAD node. More...
 
virtual void DeepCopy (vtkMRMLNode *node)
 Copy the entire contents of the node into this node. More...
 
virtual bool GenerateEditMask (vtkOrientedImageData *maskImage, int editMode, vtkOrientedImageData *referenceGeometry, std::string editedSegmentID="", std::string maskSegmentID="", vtkOrientedImageData *masterVolume=nullptr, double editableIntensityRange[2]=nullptr, vtkMRMLSegmentationDisplayNode *displayNode=nullptr)
 
virtual bool GenerateMergedLabelmap (vtkOrientedImageData *mergedImageData, int extentComputationMode, vtkOrientedImageData *mergedLabelmapGeometry=nullptr, const std::vector< std::string > &segmentIDs=std::vector< std::string >())
 
virtual bool GenerateMergedLabelmapForAllSegments (vtkOrientedImageData *mergedImageData, int extentComputationMode=vtkSegmentation::EXTENT_UNION_OF_EFFECTIVE_SEGMENTS, vtkOrientedImageData *mergedLabelmapGeometry=nullptr, vtkStringArray *segmentIDs=nullptr)
 
virtual vtkOrientedImageDataGetBinaryLabelmapInternalRepresentation (const std::string segmentId)
 
virtual void GetBinaryLabelmapRepresentation (const std::string segmentId, vtkOrientedImageData *outputBinaryLabelmap)
 
void GetBounds (double bounds[6]) override
 
virtual const char * GetClassName ()
 
virtual vtkPolyData * GetClosedSurfaceInternalRepresentation (const std::string segmentId)
 
virtual void GetClosedSurfaceRepresentation (const std::string segmentId, vtkPolyData *outputClosedSurface)
 
const char * GetNodeTagName () override
 Get unique node XML tag name (like Volume, Model) More...
 
void GetRASBounds (double bounds[6]) override
 
virtual vtkSegmentationGetSegmentation ()
 Get segmentation object. More...
 
double * GetSegmentCenter (const std::string &segmentID) VTK_SIZEHINT(3)
 Get position of the segment's center (in the segmentation node's coordinate system) More...
 
void GetSegmentCenter (const std::string &segmentID, double center[3])
 
double * GetSegmentCenterRAS (const std::string &segmentID) VTK_SIZEHINT(3)
 
void GetSegmentCenterRAS (const std::string &segmentID, double centerRAS[3])
 
virtual bool GetSegmentListFilterEnabled ()
 
virtual std::string GetSegmentListFilterOptions ()
 
virtual vtkIdType GetSegmentSubjectHierarchyItem (std::string segmentID, vtkMRMLSubjectHierarchyNode *shNode)
 
virtual int IsA (const char *type)
 
virtual void OnSubjectHierarchyUIDAdded (vtkMRMLSubjectHierarchyNode *shNode, vtkIdType itemWithNewUID)
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
void ReadXMLAttributes (const char **atts) override
 Set node attributes from name/value pairs. More...
 
virtual void RemoveBinaryLabelmapRepresentation ()
 Remove binary labelmap representation for all segments. More...
 
virtual void RemoveClosedSurfaceRepresentation ()
 Remove closed surface representation for all segments. More...
 
void RemoveSegment (const std::string &segmentID)
 Delete segment from segmentation. More...
 
virtual void SegmentListFilterEnabledOff ()
 
virtual void SegmentListFilterEnabledOn ()
 
void SetAndObserveSegmentation (vtkSegmentation *segmentation)
 Set and observe segmentation object. More...
 
virtual bool SetMasterRepresentationToBinaryLabelmap ()
 
virtual bool SetMasterRepresentationToClosedSurface ()
 
virtual void SetReferenceImageGeometryParameterFromVolumeNode (vtkMRMLScalarVolumeNode *volumeNode)
 Set reference image geometry conversion parameter from the volume node, keeping reference. More...
 
virtual void SetSegmentListFilterEnabled (bool)
 Indicates whether or not the segment filter is visible in the segments view. More...
 
virtual void SetSegmentListFilterOptions (std::string)
 Contains a serialized representation of the filtering options used by the segments view. More...
 
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)
 
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 ProcessMRMLEvents (vtkObject *, unsigned long, void *) override
 
alternative method to propagate events generated in Display nodes More...
 
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)=0, 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
 
void ProcessMRMLEvents (vtkObject *, unsigned long, void *) override
 
alternative method to propagate events generated in Transform nodes More...
 
void ReadXMLAttributes (const char **atts) override
 
Read node attributes from XML file More...
 
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)
 
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 vtkMRMLStorableNode
void AddAndObserveStorageNodeID (const char *storageNodeID)
 
virtual bool AddDefaultStorageNode (const char *filename=nullptr)
 
void Copy (vtkMRMLNode *node) override
 
Copy the node's attributes to this object More...
 
virtual std::string GetDefaultStorageNodeClassName (const char *filename=nullptr)
 
virtual bool GetModifiedSinceRead ()
 
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...
 
void SetSlicerDataType (const char *type)
 
virtual void StorableModified ()
 
void UpdateScene (vtkMRMLScene *scene) override
 
Finds the storage node and read the data More...
 
- 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 CopyReferences (vtkMRMLNode *node)
 Copy the references of the node into this. More...
 
void CopyWithoutModifiedEvent (vtkMRMLNode *node)
 
void CopyWithScene (vtkMRMLNode *node)
 Copy everything (including Scene and ID) from another node of the same type. More...
 
void CopyWithSceneWithSingleModifiedEvent (vtkMRMLNode *node)
 Copy everything (including Scene and ID) from another node of the same type. More...
 
void CopyWithSingleModifiedEvent (vtkMRMLNode *node)
 
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 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 bool GetUndoEnabled ()
 
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 std::string GetReferenceImageGeometryReferenceRole ()
 Expose reference identifier to get the volume node defining the reference image geometry if any. More...
 
static const char * GetSegmentIDAttributeName ()
 
static int IsTypeOf (const char *type)
 
static vtkMRMLSegmentationNodeNew ()
 
static vtkMRMLSegmentationNodeSafeDownCast (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

void OnMasterRepresentationModified ()
 
void OnSegmentAdded (const char *segmentId)
 
void OnSegmentModified (const char *segmentId)
 
void OnSegmentRemoved (const char *segmentId)
 
void operator= (const vtkMRMLSegmentationNode &)
 
virtual void SetSegmentation (vtkSegmentation *)
 Set segmentation object. More...
 
 vtkMRMLSegmentationNode ()
 
 vtkMRMLSegmentationNode (const vtkMRMLSegmentationNode &)
 
 ~vtkMRMLSegmentationNode () override
 
- Protected Member Functions inherited from vtkMRMLDisplayableNode
virtual const char * GetDisplayNodeReferenceMRMLAttributeName ()
 
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 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 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 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::map< std::string, std::string > &references)
 
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...
 

Static Protected Member Functions

static void SegmentationModifiedCallback (vtkObject *caller, unsigned long eid, void *clientData, void *callData)
 Callback function for all events from the segmentation object. More...
 
- Static Protected Member Functions inherited from vtkMRMLNode
static void MRMLCallback (vtkObject *caller, unsigned long eid, void *clientData, void *callData)
 

Protected Attributes

vtkSegmentationSegmentation
 Segmentation object to store the actual data. More...
 
vtkSmartPointer< vtkCallbackCommand > SegmentationModifiedCallbackCommand
 Command handling events from segmentation object. More...
 
double SegmentCenterTmp [4]
 
bool SegmentListFilterEnabled
 
std::string SegmentListFilterOptions
 
- Protected Attributes inherited from vtkMRMLStorableNode
std::string SlicerDataType
 
vtkTimeStamp StorableModifiedTime
 
vtkTagTableUserTagTable
 
- Protected Attributes inherited from vtkMRMLNode
int AddToScene
 
AttributesType Attributes
 
char * Description
 
int HideFromEditors
 
char * ID
 
int InMRMLCallbackFlag
 
Flag to avoid event loops More...
 
vtkCallbackCommand * MRMLCallbackCommand
 Holders for MRML callbacks. More...
 
vtkObserverManagerMRMLObserverManager
 
char * Name
 
NodeReferenceEventsType NodeReferenceEvents
 
std::map< std::string, std::string > NodeReferenceMRMLAttributeNames
 
NodeReferencesType NodeReferences
 
int SaveWithScene
 
vtkWeakPointer< vtkMRMLSceneScene
 
int Selectable
 
int Selected
 
bool UndoEnabled
 

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 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 containing segmentations

Segmentation node stores a set of segments (also known as contours or segmented regions). Segments may overlap and may be stored in various representations (binary labelmap image, closed surface mesh, fractional labelmap image, etc). Segments can be stored in multiple data representations to facilitate visualization and processing.

Storage and automatic conversion between representations are provided by

See also
vtkSegmentation object.

Definition at line 52 of file vtkMRMLSegmentationNode.h.

Member Typedef Documentation

◆ Superclass

Definition at line 59 of file vtkMRMLSegmentationNode.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
EditAllowedEverywhere 

Modification is allowed everywhere.

EditAllowedInsideAllSegments 

Modification is allowed inside all segments.

EditAllowedInsideVisibleSegments 

Modification is allowed inside all visible segments.

EditAllowedOutsideAllSegments 

Modification is allowed outside all segments.

EditAllowedOutsideVisibleSegments 

Modification is allowed outside all visible segments.

EditAllowedInsideSingleSegment 

Modification is allowed only over the area covered by segment specified in MaskSegmentID.

EditAllowed_Last 

Insert valid types above this line.

Definition at line 146 of file vtkMRMLSegmentationNode.h.

Constructor & Destructor Documentation

◆ vtkMRMLSegmentationNode() [1/2]

vtkMRMLSegmentationNode::vtkMRMLSegmentationNode ( )
protected

◆ ~vtkMRMLSegmentationNode()

vtkMRMLSegmentationNode::~vtkMRMLSegmentationNode ( )
overrideprotected

◆ vtkMRMLSegmentationNode() [2/2]

vtkMRMLSegmentationNode::vtkMRMLSegmentationNode ( const vtkMRMLSegmentationNode )
protected

Member Function Documentation

◆ AddSegmentFromBinaryLabelmapRepresentation()

std::string vtkMRMLSegmentationNode::AddSegmentFromBinaryLabelmapRepresentation ( vtkOrientedImageData imageData,
std::string  segmentName = "",
double  color[3] = nullptr,
std::string  segmentId = "" 
)

Add new segment from a binary labelmap.

Returns
Segment ID of the new segment. Empty string if an error occurred.

◆ AddSegmentFromClosedSurfaceRepresentation()

virtual std::string vtkMRMLSegmentationNode::AddSegmentFromClosedSurfaceRepresentation ( vtkPolyData *  polyData,
std::string  segmentName = "",
double  color[3] = nullptr,
std::string  segmentId = "" 
)
virtual

Add new segment from a closed surface.

Returns
Segment ID of the new segment. Empty string if an error occurred.

◆ ApplyTransform()

void vtkMRMLSegmentationNode::ApplyTransform ( vtkAbstractTransform *  transform)
overridevirtual

Apply a transform on the segmentation

See also
SetAndObserveTransformNodeID, CanApplyNonLinearTransforms

Reimplemented from vtkMRMLTransformableNode.

◆ ApplyTransformMatrix()

void vtkMRMLSegmentationNode::ApplyTransformMatrix ( vtkMatrix4x4 *  transformMatrix)
overridevirtual

Apply a transform matrix on the segmentation

See also
SetAndObserveTransformNodeID, ApplyTransform, CanApplyNonLinearTransforms

Reimplemented from vtkMRMLTransformableNode.

◆ CanApplyNonLinearTransforms()

bool vtkMRMLSegmentationNode::CanApplyNonLinearTransforms ( ) const
overridevirtual

Returns true if the transformable node can apply non linear transforms

See also
ApplyTransform

Reimplemented from vtkMRMLTransformableNode.

◆ Copy()

void vtkMRMLSegmentationNode::Copy ( vtkMRMLNode node)
overridevirtual

Copy the node's attributes to this object.

Reimplemented from vtkMRMLDisplayableNode.

◆ CreateBinaryLabelmapRepresentation()

virtual bool vtkMRMLSegmentationNode::CreateBinaryLabelmapRepresentation ( )
virtual

Generate binary labelmap representation for all segments.

◆ CreateClosedSurfaceRepresentation()

virtual bool vtkMRMLSegmentationNode::CreateClosedSurfaceRepresentation ( )
virtual

Generate closed surface representation for all segments. Useful for 3D visualization.

◆ CreateDefaultDisplayNodes()

void vtkMRMLSegmentationNode::CreateDefaultDisplayNodes ( )
overridevirtual

Create and observe a segmentation display node.

Reimplemented from vtkMRMLDisplayableNode.

◆ CreateDefaultStorageNode()

vtkMRMLStorageNode* vtkMRMLSegmentationNode::CreateDefaultStorageNode ( )
overridevirtual

Create a segmentation storage node.

Reimplemented from vtkMRMLStorableNode.

◆ CreateNodeInstance()

vtkMRMLNode* vtkMRMLSegmentationNode::CreateNodeInstance ( )
overridevirtual

Create instance of a GAD node.

Implements vtkMRMLDisplayableNode.

◆ DeepCopy()

virtual void vtkMRMLSegmentationNode::DeepCopy ( vtkMRMLNode node)
virtual

Copy the entire contents of the node into this node.

◆ GenerateEditMask()

virtual bool vtkMRMLSegmentationNode::GenerateEditMask ( vtkOrientedImageData maskImage,
int  editMode,
vtkOrientedImageData referenceGeometry,
std::string  editedSegmentID = "",
std::string  maskSegmentID = "",
vtkOrientedImageData masterVolume = nullptr,
double  editableIntensityRange[2] = nullptr,
vtkMRMLSegmentationDisplayNode displayNode = nullptr 
)
virtual

Generates an edit mask image. If a mask voxel is non-zero it means that the image at that position is editable.

Parameters
maskImageoutput image, contains non-zero voxels where editing is not allowed
editModedefines editable regions based on existing segments
referenceGeometrydefines image geometry (extent and IJK to world matrix) of the output
editedSegmentIDthis segment will be always editable (regardless of editMode), optional
masterVolumeused for intensity-based masking
editableIntensityRangeused for intensity-based masking
displayNodeused when edit mode refers to visible segments. If not specified then the first display node is used.
Returns
Returns true is mask is successfully generated.

◆ GenerateMergedLabelmap()

virtual bool vtkMRMLSegmentationNode::GenerateMergedLabelmap ( vtkOrientedImageData mergedImageData,
int  extentComputationMode,
vtkOrientedImageData mergedLabelmapGeometry = nullptr,
const std::vector< std::string > &  segmentIDs = std::vector< std::string >() 
)
virtual

Build merged labelmap of the binary labelmap representations of the specified segments

Parameters
mergedImageDataOutput image data for the merged labelmap image data. Voxels of background volume will be of signed short type. Label value of n-th segment in segmentIDs list will be (n + 1). Label value of background = 0.
extentComputationModeDetermines how to compute extents (EXTENT_REFERENCE_GEOMETRY, EXTENT_UNION_OF_SEGMENTS, EXTENT_UNION_OF_SEGMENTS_PADDED, EXTENT_UNION_OF_EFFECTIVE_SEGMENTS, or EXTENT_UNION_OF_EFFECTIVE_SEGMENTS_PADDED).
mergedLabelmapGeometryDetermines geometry of merged labelmap if not nullptr, automatically determined otherwise
segmentIDsList of IDs of segments to include in the merged labelmap. If empty or missing, then all segments are included
Returns
Success flag

◆ GenerateMergedLabelmapForAllSegments()

virtual bool vtkMRMLSegmentationNode::GenerateMergedLabelmapForAllSegments ( vtkOrientedImageData mergedImageData,
int  extentComputationMode = vtkSegmentation::EXTENT_UNION_OF_EFFECTIVE_SEGMENTS,
vtkOrientedImageData mergedLabelmapGeometry = nullptr,
vtkStringArray *  segmentIDs = nullptr 
)
virtual

Python-accessible version of the more generic

See also
GenerateMergedLabelmap. The last argument specifying the list of segments to be included is omitted, which means that all the segments will be merged.
GenerateMergedLabelmap

◆ GetBinaryLabelmapInternalRepresentation()

virtual vtkOrientedImageData* vtkMRMLSegmentationNode::GetBinaryLabelmapInternalRepresentation ( const std::string  segmentId)
virtual

Get a segment as binary labelmap. If representation does not exist yet then call CreateBinaryLabelmapRepresentation() before. This function returns a pointer to the original labelmap representation in the segment. The binary labelmap can be a shared labelmap containing multiple segments. To get a list of all segments in a shared labelmap, call vtkSegmentation::GetSegmentIDsSharingRepresentation() The label value used for each segment can be retreived using vtkSegment::GetLabelValue().

◆ GetBinaryLabelmapRepresentation()

virtual void vtkMRMLSegmentationNode::GetBinaryLabelmapRepresentation ( const std::string  segmentId,
vtkOrientedImageData outputBinaryLabelmap 
)
virtual

Get a segment as binary labelmap. If representation does not exist yet then call CreateBinaryLabelmapRepresentation() before. This function returns a copy of the segment binary labelmap.

◆ GetBounds()

void vtkMRMLSegmentationNode::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.

◆ GetClassName()

virtual const char* vtkMRMLSegmentationNode::GetClassName ( )
virtual

Reimplemented from vtkMRMLDisplayableNode.

◆ GetClosedSurfaceInternalRepresentation()

virtual vtkPolyData* vtkMRMLSegmentationNode::GetClosedSurfaceInternalRepresentation ( const std::string  segmentId)
virtual

Get a segment as binary labelmap. If representation does not exist yet then call CreateClosedSurfaceRepresentation() before. This function returns a copy of the segment closed surface.

◆ GetClosedSurfaceRepresentation()

virtual void vtkMRMLSegmentationNode::GetClosedSurfaceRepresentation ( const std::string  segmentId,
vtkPolyData *  outputClosedSurface 
)
virtual

Get a segment as binary labelmap. If representation does not exist yet then call CreateClosedSurfaceRepresentation() before. This function returns a copy of the segment closed surface.

◆ GetNodeTagName()

const char* vtkMRMLSegmentationNode::GetNodeTagName ( )
inlineoverridevirtual

Get unique node XML tag name (like Volume, Model)

Implements vtkMRMLDisplayableNode.

Definition at line 78 of file vtkMRMLSegmentationNode.h.

◆ GetRASBounds()

void vtkMRMLSegmentationNode::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
GetBounds()

Reimplemented from vtkMRMLDisplayableNode.

◆ GetReferenceImageGeometryReferenceRole()

static std::string vtkMRMLSegmentationNode::GetReferenceImageGeometryReferenceRole ( )
inlinestatic

Expose reference identifier to get the volume node defining the reference image geometry if any.

Definition at line 182 of file vtkMRMLSegmentationNode.h.

◆ GetSegmentation()

virtual vtkSegmentation* vtkMRMLSegmentationNode::GetSegmentation ( )
virtual

Get segmentation object.

◆ GetSegmentCenter() [1/2]

double* vtkMRMLSegmentationNode::GetSegmentCenter ( const std::string &  segmentID)

Get position of the segment's center (in the segmentation node's coordinate system)

◆ GetSegmentCenter() [2/2]

void vtkMRMLSegmentationNode::GetSegmentCenter ( const std::string &  segmentID,
double  center[3] 
)

Python-accessible version of

See also
GetSegmentCenter. Get position of the segment's center (in the segmentation node's coordinate system)

◆ GetSegmentCenterRAS() [1/2]

double* vtkMRMLSegmentationNode::GetSegmentCenterRAS ( const std::string &  segmentID)

Get position of the segment's center in world coordinate system. It is the position returned by

See also
GetSegmentCenter() transformed by the segmentation node's parent transform.

◆ GetSegmentCenterRAS() [2/2]

void vtkMRMLSegmentationNode::GetSegmentCenterRAS ( const std::string &  segmentID,
double  centerRAS[3] 
)

Python-accessible version of

See also
GetSegmentCenterRAS. Get position of the segment's center in world coordinate system.

◆ GetSegmentIDAttributeName()

static const char* vtkMRMLSegmentationNode::GetSegmentIDAttributeName ( )
inlinestatic

Definition at line 56 of file vtkMRMLSegmentationNode.h.

◆ GetSegmentListFilterEnabled()

virtual bool vtkMRMLSegmentationNode::GetSegmentListFilterEnabled ( )
virtual

◆ GetSegmentListFilterOptions()

virtual std::string vtkMRMLSegmentationNode::GetSegmentListFilterOptions ( )
virtual

◆ GetSegmentSubjectHierarchyItem()

virtual vtkIdType vtkMRMLSegmentationNode::GetSegmentSubjectHierarchyItem ( std::string  segmentID,
vtkMRMLSubjectHierarchyNode shNode 
)
virtual

Get subject hierarchy item belonging to a certain segment

Parameters
segmentIDID of segment contained by this segmentation to get the subject hierarchy virtual item for
shNodeSubject hierarchy node to search in (there should be only one in the scene and it can be got using vtkMRMLSubjectHierarchyNode::GetSubjectHierarchyNode)

◆ IsA()

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

Reimplemented from vtkMRMLDisplayableNode.

◆ IsTypeOf()

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

◆ New()

static vtkMRMLSegmentationNode* vtkMRMLSegmentationNode::New ( )
static

◆ OnMasterRepresentationModified()

void vtkMRMLSegmentationNode::OnMasterRepresentationModified ( )
protected

Callback function observing the master representation of the segmentation (and each segment within) Invalidates all representations other than the master. These representations will be automatically converted later on demand.

◆ OnSegmentAdded()

void vtkMRMLSegmentationNode::OnSegmentAdded ( const char *  segmentId)
protected

Callback function observing segment added events. Triggers update of display properties

◆ OnSegmentModified()

void vtkMRMLSegmentationNode::OnSegmentModified ( const char *  segmentId)
protected

Callback function observing segment modified events. Forwards event from the node.

◆ OnSegmentRemoved()

void vtkMRMLSegmentationNode::OnSegmentRemoved ( const char *  segmentId)
protected

Callback function observing segment removed events. Triggers update of display properties

◆ OnSubjectHierarchyUIDAdded()

virtual void vtkMRMLSegmentationNode::OnSubjectHierarchyUIDAdded ( vtkMRMLSubjectHierarchyNode shNode,
vtkIdType  itemWithNewUID 
)
virtual

Function called from segmentation logic when UID is added in a subject hierarchy node. In case the newly added UID is a volume node referenced from this segmentation, its geometry will be set as image geometry conversion parameter. The "other order", i.e. when the volume is loaded first and the segmentation second, should be handled at loading time of the segmentation (because then we already know about the volume)

Parameters
shNodeSubject hierarchy node that contains the item (should be the only SH node in the scene)
itemWithNewUIDID of subject hierarchy item that just got a new UID

◆ operator=()

void vtkMRMLSegmentationNode::operator= ( const vtkMRMLSegmentationNode )
protected

◆ PrintSelf()

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

◆ ReadXMLAttributes()

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

Set node attributes from name/value pairs.

Reimplemented from vtkMRMLDisplayableNode.

◆ RemoveBinaryLabelmapRepresentation()

virtual void vtkMRMLSegmentationNode::RemoveBinaryLabelmapRepresentation ( )
virtual

Remove binary labelmap representation for all segments.

◆ RemoveClosedSurfaceRepresentation()

virtual void vtkMRMLSegmentationNode::RemoveClosedSurfaceRepresentation ( )
virtual

Remove closed surface representation for all segments.

◆ RemoveSegment()

void vtkMRMLSegmentationNode::RemoveSegment ( const std::string &  segmentID)

Delete segment from segmentation.

◆ SafeDownCast()

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

◆ SegmentationModifiedCallback()

static void vtkMRMLSegmentationNode::SegmentationModifiedCallback ( vtkObject *  caller,
unsigned long  eid,
void *  clientData,
void *  callData 
)
staticprotected

Callback function for all events from the segmentation object.

◆ SegmentListFilterEnabledOff()

virtual void vtkMRMLSegmentationNode::SegmentListFilterEnabledOff ( )
virtual

◆ SegmentListFilterEnabledOn()

virtual void vtkMRMLSegmentationNode::SegmentListFilterEnabledOn ( )
virtual

◆ SetAndObserveSegmentation()

void vtkMRMLSegmentationNode::SetAndObserveSegmentation ( vtkSegmentation segmentation)

Set and observe segmentation object.

◆ SetMasterRepresentationToBinaryLabelmap()

virtual bool vtkMRMLSegmentationNode::SetMasterRepresentationToBinaryLabelmap ( )
virtual

Change master representation. All other representations are automatically computed from the master representation.

◆ SetMasterRepresentationToClosedSurface()

virtual bool vtkMRMLSegmentationNode::SetMasterRepresentationToClosedSurface ( )
virtual

Change master representation. All other representations are automatically computed from the master representation.

◆ SetReferenceImageGeometryParameterFromVolumeNode()

virtual void vtkMRMLSegmentationNode::SetReferenceImageGeometryParameterFromVolumeNode ( vtkMRMLScalarVolumeNode volumeNode)
virtual

Set reference image geometry conversion parameter from the volume node, keeping reference.

◆ SetSegmentation()

virtual void vtkMRMLSegmentationNode::SetSegmentation ( vtkSegmentation )
protectedvirtual

Set segmentation object.

◆ SetSegmentListFilterEnabled()

virtual void vtkMRMLSegmentationNode::SetSegmentListFilterEnabled ( bool  )
virtual

Indicates whether or not the segment filter is visible in the segments view.

◆ SetSegmentListFilterOptions()

virtual void vtkMRMLSegmentationNode::SetSegmentListFilterOptions ( std::string  )
virtual

Contains a serialized representation of the filtering options used by the segments view.

◆ WriteXML()

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

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

Reimplemented from vtkMRMLDisplayableNode.

Member Data Documentation

◆ Segmentation

vtkSegmentation* vtkMRMLSegmentationNode::Segmentation
protected

Segmentation object to store the actual data.

Definition at line 302 of file vtkMRMLSegmentationNode.h.

◆ SegmentationModifiedCallbackCommand

vtkSmartPointer<vtkCallbackCommand> vtkMRMLSegmentationNode::SegmentationModifiedCallbackCommand
protected

Command handling events from segmentation object.

Definition at line 305 of file vtkMRMLSegmentationNode.h.

◆ SegmentCenterTmp

double vtkMRMLSegmentationNode::SegmentCenterTmp[4]
protected

Temporary buffer that holds value returned by GetSegmentCenter(...) and GetSegmentCenterRAS(...) Has 4 components to allow usage in homogeneous transformations

Definition at line 309 of file vtkMRMLSegmentationNode.h.

◆ SegmentListFilterEnabled

bool vtkMRMLSegmentationNode::SegmentListFilterEnabled
protected

Definition at line 311 of file vtkMRMLSegmentationNode.h.

◆ SegmentListFilterOptions

std::string vtkMRMLSegmentationNode::SegmentListFilterOptions
protected

Definition at line 312 of file vtkMRMLSegmentationNode.h.


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