VTK  9.0.1
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 
49 class vtkDataArray;
50 class vtkImageData;
51 class vtkMatrix3x3;
52 class vtkMatrix4x4;
53 class vtkPointSet;
54 
55 class VTKCOMMONDATAMODEL_EXPORT vtkImageTransform : public vtkObject
56 {
57 public:
59 
63  vtkTypeMacro(vtkImageTransform, vtkObject);
64  void PrintSelf(ostream& os, vtkIndent indent) override;
66 
77 
84  static void TranslatePoints(double* t, vtkDataArray* da);
85 
90  static void TransformPoints(vtkMatrix4x4* m4, vtkDataArray* da);
91 
96  static void TransformNormals(vtkMatrix3x3* m3, double spacing[3], vtkDataArray* da);
97 
102  static void TransformVectors(vtkMatrix3x3* m3, double spacing[3], vtkDataArray* da);
103 
104 protected:
106  ~vtkImageTransform() override {}
107 
108 private:
109  vtkImageTransform(const vtkImageTransform&) = delete;
110  void operator=(const vtkImageTransform&) = delete;
111 };
112 
113 #endif
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:50
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
helper class to transform output of non-axis-aligned images
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.
~vtkImageTransform() override
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.
static vtkImageTransform * New()
Standard methods for construction, type information, printing.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:34
represent and manipulate 3x3 transformation matrices
Definition: vtkMatrix3x3.h:34
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:36
abstract base class for most VTK objects
Definition: vtkObject.h:54
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:63
@ spacing
Definition: vtkX3D.h:487