VTK  9.1.0
vtkLandmarkTransform.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkLandmarkTransform.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
41#ifndef vtkLandmarkTransform_h
42#define vtkLandmarkTransform_h
43
44#include "vtkCommonTransformsModule.h" // For export macro
45#include "vtkLinearTransform.h"
46
47#define VTK_LANDMARK_RIGIDBODY 6
48#define VTK_LANDMARK_SIMILARITY 7
49#define VTK_LANDMARK_AFFINE 12
50
51class VTKCOMMONTRANSFORMS_EXPORT vtkLandmarkTransform : public vtkLinearTransform
52{
53public:
55
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
60
67 vtkGetObjectMacro(SourceLandmarks, vtkPoints);
68 vtkGetObjectMacro(TargetLandmarks, vtkPoints);
70
72
81 vtkSetMacro(Mode, int);
82 void SetModeToRigidBody() { this->SetMode(VTK_LANDMARK_RIGIDBODY); }
84 void SetModeToAffine() { this->SetMode(VTK_LANDMARK_AFFINE); }
86
88
91 vtkGetMacro(Mode, int);
92 const char* GetModeAsString();
94
99 void Inverse() override;
100
105
110
111protected:
114
115 // Update the matrix from the quaternion.
116 void InternalUpdate() override;
117
121 void InternalDeepCopy(vtkAbstractTransform* transform) override;
122
125
126 int Mode;
127
128private:
130 void operator=(const vtkLandmarkTransform&) = delete;
131};
132
134{
135 switch (this->Mode)
136 {
138 return "RigidBody";
140 return "Similarity";
142 return "Affine";
143 default:
144 return "Unrecognized";
145 }
146}
147
148#endif
superclass for all geometric transformations
a simple class to control print indentation
Definition: vtkIndent.h:43
a linear transform specified by two corresponding point sets
vtkAbstractTransform * MakeTransform() override
Make another transform of the same type.
void SetModeToAffine()
Set the number of degrees of freedom to constrain the solution to.
void InternalDeepCopy(vtkAbstractTransform *transform) override
This method does no type checking, use DeepCopy instead.
void InternalUpdate() override
Perform any subclass-specific Update.
void SetTargetLandmarks(vtkPoints *target)
Specify the source and target landmark sets.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
const char * GetModeAsString()
Get the current transformation mode.
void SetSourceLandmarks(vtkPoints *source)
Specify the source and target landmark sets.
void Inverse() override
Invert the transformation.
~vtkLandmarkTransform() override
void SetModeToRigidBody()
Set the number of degrees of freedom to constrain the solution to.
static vtkLandmarkTransform * New()
void SetModeToSimilarity()
Set the number of degrees of freedom to constrain the solution to.
vtkMTimeType GetMTime() override
Get the MTime.
abstract superclass for linear transformations
represent and manipulate 3D points
Definition: vtkPoints.h:43
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_LANDMARK_AFFINE
#define VTK_LANDMARK_SIMILARITY
#define VTK_LANDMARK_RIGIDBODY
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287