VTK  9.1.0
vtkImageTransform.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkImageTransform.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=========================================================================*/
43#ifndef vtkImageTransform_h
44#define vtkImageTransform_h
45
46#include "vtkCommonDataModelModule.h" // For export macro
47#include "vtkObject.h"
48
49class vtkDataArray;
50class vtkImageData;
51class vtkMatrix3x3;
52class vtkMatrix4x4;
53class vtkPointSet;
54
55class VTKCOMMONDATAMODEL_EXPORT vtkImageTransform : public vtkObject
56{
57public:
59
64 void PrintSelf(ostream& os, vtkIndent indent) override;
66
68
80 static void TransformPointSet(
81 vtkImageData* im, vtkPointSet* ps, bool transNormals, bool transVectors);
83
90 static void TranslatePoints(double* t, vtkDataArray* da);
91
97
102 static void TransformNormals(vtkMatrix3x3* m3, double spacing[3], vtkDataArray* da);
103
108 static void TransformVectors(vtkMatrix3x3* m3, double spacing[3], vtkDataArray* da);
109
110protected:
111 vtkImageTransform() = default;
112 ~vtkImageTransform() override = default;
113
114private:
115 vtkImageTransform(const vtkImageTransform&) = delete;
116 void operator=(const vtkImageTransform&) = delete;
117};
118
119#endif
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:159
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
helper class to transform output of non-axis-aligned images
static vtkImageTransform * New()
Standard methods for construction, type information, printing.
static void TransformVectors(vtkMatrix3x3 *m3, double spacing[3], vtkDataArray *da)
Given three-component vectors represented by a vtkDataArray, transform the vectors using the matrix p...
static void TransformPoints(vtkMatrix4x4 *m4, vtkDataArray *da)
Given x-y-z points represented by a vtkDataArray, transform the points using the matrix provided.
static void TransformPointSet(vtkImageData *im, vtkPointSet *ps)
Given a vtkImageData (and hence its associated orientation matrix), and an instance of vtkPointSet,...
static void TransformNormals(vtkMatrix3x3 *m3, double spacing[3], vtkDataArray *da)
Given three-component normals represented by a vtkDataArray, transform the normals using the matrix p...
static void TranslatePoints(double *t, vtkDataArray *da)
Given x-y-z points represented by a vtkDataArray, translate the points using the image origin.
vtkImageTransform()=default
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for construction, type information, printing.
~vtkImageTransform() override=default
static void TransformPointSet(vtkImageData *im, vtkPointSet *ps, bool transNormals, bool transVectors)
Given a vtkImageData (and hence its associated orientation matrix), and an instance of vtkPointSet,...
a simple class to control print indentation
Definition: vtkIndent.h:113
represent and manipulate 3x3 transformation matrices
Definition: vtkMatrix3x3.h:63
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:145
abstract base class for most VTK objects
Definition: vtkObject.h:82
concrete class for storing a set of points
Definition: vtkPointSet.h:106