00001 /*=auto========================================================================= 00002 00003 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved. 00004 00005 See Doc/copyright/copyright.txt 00006 or http://www.slicer.org/copyright/copyright.txt for details. 00007 00008 Program: 3D Slicer 00009 Module: $RCSfile: vtkMRMLLinearTransformNode.h,v $ 00010 Date: $Date: 2006/03/19 17:12:29 $ 00011 Version: $Revision: 1.13 $ 00012 00013 =========================================================================auto=*/ 00020 00021 #ifndef __vtkMRMLLinearTransformNode_h 00022 #define __vtkMRMLLinearTransformNode_h 00023 00024 #include "vtkMRMLTransformNode.h" 00025 00026 class vtkMRMLStorageNode; 00027 00028 class VTK_MRML_EXPORT vtkMRMLLinearTransformNode : public vtkMRMLTransformNode 00029 { 00030 public: 00031 static vtkMRMLLinearTransformNode *New(); 00032 vtkTypeMacro(vtkMRMLLinearTransformNode,vtkMRMLTransformNode); 00033 void PrintSelf(ostream& os, vtkIndent indent); 00034 00035 virtual vtkMRMLNode* CreateNodeInstance(); 00036 00039 virtual void ReadXMLAttributes( const char** atts); 00040 00043 virtual void WriteXML(ostream& of, int indent); 00044 00047 virtual void Copy(vtkMRMLNode *node); 00048 00051 virtual const char* GetNodeTagName() {return "LinearTransform";}; 00052 00055 virtual int IsLinear() {return 1;}; 00056 00059 virtual vtkGeneralTransform* GetTransformToParent(); 00060 00063 vtkGetObjectMacro(MatrixTransformToParent, vtkMatrix4x4); 00064 void SetAndObserveMatrixTransformToParent(vtkMatrix4x4 *matrix); 00065 00068 virtual int GetMatrixTransformToWorld(vtkMatrix4x4* transformToWorld); 00069 00072 virtual int GetMatrixTransformToNode(vtkMRMLTransformNode* node, 00073 vtkMatrix4x4* transformToNode); 00074 00077 virtual void ProcessMRMLEvents ( vtkObject * /*caller*/, 00078 unsigned long /*event*/, 00079 void * /*callData*/ ); 00080 00081 virtual bool CanApplyNonLinearTransforms() { return false; } 00082 virtual void ApplyTransform(vtkMatrix4x4* transformMatrix); 00083 virtual void ApplyTransform(vtkAbstractTransform* transform); 00084 00087 virtual vtkMRMLStorageNode* CreateDefaultStorageNode() 00088 { 00089 return Superclass::CreateDefaultStorageNode(); 00090 }; 00091 00092 protected: 00093 vtkMRMLLinearTransformNode(); 00094 ~vtkMRMLLinearTransformNode(); 00095 vtkMRMLLinearTransformNode(const vtkMRMLLinearTransformNode&); 00096 void operator=(const vtkMRMLLinearTransformNode&); 00097 00098 vtkSetObjectMacro(MatrixTransformToParent, vtkMatrix4x4); 00099 vtkMatrix4x4* MatrixTransformToParent; 00100 00101 }; 00102 00103 #endif 00104
1.6.1