vtkMRMLLinearTransformNode.h

Go to the documentation of this file.
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 

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1