/usr/include/vtk-7.1/vtkLandmarkTransform.h is in libvtk7-dev 7.1.1+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkLandmarkTransform.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkLandmarkTransform
* @brief a linear transform specified by two corresponding point sets
*
* A vtkLandmarkTransform is defined by two sets of landmarks, the
* transform computed gives the best fit mapping one onto the other, in a
* least squares sense. The indices are taken to correspond, so point 1
* in the first set will get mapped close to point 1 in the second set,
* etc. Call SetSourceLandmarks and SetTargetLandmarks to specify the two
* sets of landmarks, ensure they have the same number of points.
* @warning
* Whenever you add, subtract, or set points you must call Modified()
* on the vtkPoints object, or the transformation might not update.
* @sa
* vtkLinearTransform
*/
#ifndef vtkLandmarkTransform_h
#define vtkLandmarkTransform_h
#include "vtkCommonTransformsModule.h" // For export macro
#include "vtkLinearTransform.h"
#define VTK_LANDMARK_RIGIDBODY 6
#define VTK_LANDMARK_SIMILARITY 7
#define VTK_LANDMARK_AFFINE 12
class VTKCOMMONTRANSFORMS_EXPORT vtkLandmarkTransform : public vtkLinearTransform
{
public:
static vtkLandmarkTransform *New();
vtkTypeMacro(vtkLandmarkTransform,vtkLinearTransform);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
//@{
/**
* Specify the source and target landmark sets. The two sets must have
* the same number of points. If you add or change points in these objects,
* you must call Modified() on them or the transformation might not update.
*/
void SetSourceLandmarks(vtkPoints *points);
void SetTargetLandmarks(vtkPoints *points);
vtkGetObjectMacro(SourceLandmarks, vtkPoints);
vtkGetObjectMacro(TargetLandmarks, vtkPoints);
//@}
//@{
/**
* Set the number of degrees of freedom to constrain the solution to.
* Rigidbody (VTK_LANDMARK_RIGIDBODY): rotation and translation only.
* Similarity (VTK_LANDMARK_SIMILARITY): rotation, translation and
* isotropic scaling.
* Affine (VTK_LANDMARK_AFFINE): collinearity is preserved.
* Ratios of distances along a line are preserved.
* The default is similarity.
*/
vtkSetMacro(Mode,int);
void SetModeToRigidBody() { this->SetMode(VTK_LANDMARK_RIGIDBODY); };
void SetModeToSimilarity() { this->SetMode(VTK_LANDMARK_SIMILARITY); };
void SetModeToAffine() { this->SetMode(VTK_LANDMARK_AFFINE); };
//@}
//@{
/**
* Get the current transformation mode.
*/
vtkGetMacro(Mode,int);
const char *GetModeAsString();
//@}
/**
* Invert the transformation. This is done by switching the
* source and target landmarks.
*/
void Inverse() VTK_OVERRIDE;
/**
* Get the MTime.
*/
vtkMTimeType GetMTime() VTK_OVERRIDE;
/**
* Make another transform of the same type.
*/
vtkAbstractTransform *MakeTransform() VTK_OVERRIDE;
protected:
vtkLandmarkTransform();
~vtkLandmarkTransform() VTK_OVERRIDE;
// Update the matrix from the quaternion.
void InternalUpdate() VTK_OVERRIDE;
/**
* This method does no type checking, use DeepCopy instead.
*/
void InternalDeepCopy(vtkAbstractTransform *transform) VTK_OVERRIDE;
vtkPoints* SourceLandmarks;
vtkPoints* TargetLandmarks;
int Mode;
private:
vtkLandmarkTransform(const vtkLandmarkTransform&) VTK_DELETE_FUNCTION;
void operator=(const vtkLandmarkTransform&) VTK_DELETE_FUNCTION;
};
inline const char *vtkLandmarkTransform::GetModeAsString()
{
switch (this->Mode)
{
case VTK_LANDMARK_RIGIDBODY:
return "RigidBody";
case VTK_LANDMARK_SIMILARITY:
return "Similarity";
case VTK_LANDMARK_AFFINE:
return "Affine";
default:
return "Unrecognized";
}
}
#endif
|