Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Hybrid/vtkLandmarkTransform.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkLandmarkTransform.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00046 #ifndef __vtkLandmarkTransform_h
    00047 #define __vtkLandmarkTransform_h
    00048
    00049 #include "vtkLinearTransform.h"
    00050
    00051 #define VTK_LANDMARK_RIGIDBODY 6
    00052 #define VTK_LANDMARK_SIMILARITY 7
    00053 #define VTK_LANDMARK_AFFINE 12
    00054
    00055 class VTK_HYBRID_EXPORT vtkLandmarkTransform : public vtkLinearTransform
    00056 {
    00057 public:
    00058   static vtkLandmarkTransform *New();
    00059
    00060   vtkTypeRevisionMacro(vtkLandmarkTransform,vtkLinearTransform);
    00061   void PrintSelf(ostream& os, vtkIndent indent);
    00062
    00064
    00068   void SetSourceLandmarks(vtkPoints *points);
    00069   void SetTargetLandmarks(vtkPoints *points);
    00070   vtkGetObjectMacro(SourceLandmarks, vtkPoints);
    00071   vtkGetObjectMacro(TargetLandmarks, vtkPoints);
    00073
    00075
    00078   vtkSetMacro(Mode,int);
    00079   void SetModeToRigidBody() { this->SetMode(VTK_LANDMARK_RIGIDBODY); };
    00080   void SetModeToSimilarity() { this->SetMode(VTK_LANDMARK_SIMILARITY); };
    00081   void SetModeToAffine() { this->SetMode(VTK_LANDMARK_AFFINE); };
    00082   vtkGetMacro(Mode,int);
    00083   const char *GetModeAsString();
    00085
    00088   void Inverse();
    00089
    00091   unsigned long GetMTime();
    00092
    00094   vtkAbstractTransform *MakeTransform();
    00095
    00096 protected:
    00097   vtkLandmarkTransform();
    00098   ~vtkLandmarkTransform();
    00099
    00100   // Update the matrix from the quaternion.
    00101   void InternalUpdate();
    00102
    00104   void InternalDeepCopy(vtkAbstractTransform *transform);
    00105
    00106   vtkPoints* SourceLandmarks;
    00107   vtkPoints* TargetLandmarks;
    00108
    00109   int Mode;
    00110 private:
    00111   vtkLandmarkTransform(const vtkLandmarkTransform&);  // Not implemented.
    00112   void operator=(const vtkLandmarkTransform&);  // Not implemented.
    00113 };
    00114
    00115 //BTX
    00116 inline const char *vtkLandmarkTransform::GetModeAsString()
    00117 {
    00118   switch (this->Mode)
    00119     {
    00120     case VTK_LANDMARK_RIGIDBODY:
    00121       return "RigidBody";
    00122     case VTK_LANDMARK_SIMILARITY:
    00123       return "Similarity";
    00124     case VTK_LANDMARK_AFFINE:
    00125       return "Affine";
    00126     default:
    00127       return "Unrecognized";
    00128     }
    00129 }
    00130 //ETX
    00131 #endif