Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLTransformableNode.h
Go to the documentation of this file.
1/*=auto=========================================================================
2
3 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8 Program: 3D Slicer
9 Module: $RCSfile: vtkMRMLTransformableNode.h,v $
10 Date: $Date: 2006/03/19 17:12:29 $
11 Version: $Revision: 1.13 $
12
13=========================================================================auto=*/
14
15#ifndef __vtkMRMLTransformableNode_h
16#define __vtkMRMLTransformableNode_h
17
18// MRML includes
19#include "vtkMRMLStorableNode.h"
20#include "vtkVector.h"
22
23// VTK includes
24class vtkAbstractTransform;
25class vtkMatrix4x4;
26
31class VTK_MRML_EXPORT vtkMRMLTransformableNode : public vtkMRMLStorableNode
32{
33public:
35 void PrintSelf(ostream& os, vtkIndent indent) override;
36
38
41 void ReadXMLAttributes( const char** atts) override;
42
45 void WriteXML(ostream& of, int indent) override;
46
49 const char* GetNodeTagName() override = 0;
50
59 bool SetAndObserveTransformNodeID(const char *transformNodeID);
60
64
67 void ProcessMRMLEvents ( vtkObject * /*caller*/,
68 unsigned long /*event*/,
69 void * /*callData*/ ) override;
70
72 enum
73 {
74 TransformModifiedEvent = 15000
75 };
76
80 virtual bool CanApplyNonLinearTransforms()const;
81
85 virtual void ApplyTransformMatrix(vtkMatrix4x4* transformMatrix);
86
89 virtual void ApplyTransform(vtkAbstractTransform* transform);
90
96 virtual void TransformPointToWorld(const double inLocal[3], double outWorld[3]);
97
100 virtual void TransformPointToWorld(const vtkVector3d &inLocal, vtkVector3d &outWorld);
101
104 virtual void TransformPointFromWorld(const double inWorld[3], double outLocal[3]);
105
108 virtual void TransformPointFromWorld(const vtkVector3d &inWorld, vtkVector3d &outLocal);
109
111 const char *GetTransformNodeID();
112
116
117protected:
122
123 static const char* TransformNodeReferenceRole;
125
126 virtual const char* GetTransformNodeReferenceRole();
128
132
136
140
143
144private:
145 char* TransformNodeIDInternal;
146 vtkSetStringMacro(TransformNodeIDInternal);
147 vtkGetStringMacro(TransformNodeIDInternal);
148
149};
150
151#endif
Class to hold information about a node reference.
Abstract Superclass for all specific types of MRML nodes.
MRML node to represent a 3D surface model.
MRML node for representing a transformation between this node space and a parent node space.
MRML node for representing a node with a transform.
bool SetAndObserveTransformNodeID(const char *transformNodeID)
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
virtual const char * GetTransformNodeReferenceMRMLAttributeName()
~vtkMRMLTransformableNode() override
static const char * TransformNodeReferenceRole
virtual void TransformPointToWorld(const vtkVector3d &inLocal, vtkVector3d &outWorld)
static const char * TransformNodeReferenceMRMLAttributeName
void PrintSelf(ostream &os, vtkIndent indent) override
vtkMRMLNode * CreateNodeInstance() override=0
MRMLNode methods.
void OnNodeReferenceRemoved(vtkMRMLNodeReference *reference) override
Called after a node reference ID is removed (list size decreased).
void OnNodeReferenceModified(vtkMRMLNodeReference *reference) override
Called when a node reference ID is modified.
virtual const char * GetTransformNodeReferenceRole()
virtual bool CanApplyNonLinearTransforms() const
virtual void TransformPointToWorld(const double inLocal[3], double outWorld[3])
virtual void ApplyTransformMatrix(vtkMatrix4x4 *transformMatrix)
const char * GetTransformNodeID()
Get referenced transform node id.
virtual void OnTransformNodeReferenceChanged(vtkMRMLTransformNode *transformNode)
Called when transform node reference added/modified/removed.
vtkMRMLTransformableNode(const vtkMRMLTransformableNode &)
void OnNodeReferenceAdded(vtkMRMLNodeReference *reference) override
Called when a node reference ID is added (list size increased).
virtual void TransformPointFromWorld(const double inWorld[3], double outLocal[3])
void operator=(const vtkMRMLTransformableNode &)
void ProcessMRMLEvents(vtkObject *, unsigned long, void *) override
alternative method to propagate events generated in Transform nodes
virtual void ApplyTransform(vtkAbstractTransform *transform)
const char * GetNodeTagName() override=0
Get node XML tag name (like Volume, Model)
virtual void TransformPointFromWorld(const vtkVector3d &inWorld, vtkVector3d &outLocal)
vtkMRMLTransformNode * GetParentTransformNode()
Associated transform MRML node.
void ReadXMLAttributes(const char **atts) override
Read node attributes from XML file.