FreeMat

- Main Page
- Related Pages

vtkAbstractTransform

Section: Visualization Toolkit Common Classes

# Usage

vtkAbstractTransform is the superclass for all VTK geometric transformations. The VTK transform hierarchy is split into two major branches: warp transformations and homogeneous (including linear) transformations. The latter can be represented in terms of a 4x4 transformation matrix, the former cannot.

Transformations can be pipelined through two mechanisms:

1) GetInverse() returns the pipelined inverse of a transformation i.e. if you modify the original transform, any transform previously returned by the GetInverse() method will automatically update itself according to the change.

2) You can do pipelined concatenation of transformations through the vtkGeneralTransform class, the vtkPerspectiveTransform class, or the vtkTransform class.

To create an instance of class vtkAbstractTransform, simply invoke its constructor as follows

      obj = vtkAbstractTransform

# Methods

The class vtkAbstractTransform has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, `obj` is an instance of the vtkAbstractTransform class.

- `string = obj.GetClassName ()`
- `int = obj.IsA (string name)`
- `vtkAbstractTransform = obj.NewInstance ()`
- `vtkAbstractTransform = obj.SafeDownCast (vtkObject o)`
- `obj.TransformPoint (float in[3], float out[3])` - Apply the transformation to a coordinate. You can use the same array to store both the input and output point.
- `obj.TransformPoint (double in[3], double out[3])` - Apply the transformation to a double-precision coordinate. You can use the same array to store both the input and output point.
- `double = obj.TransformPoint (double x, double y, double z)` - Apply the transformation to a double-precision coordinate. Use this if you are programming in Python, tcl or Java.
- `double = obj.TransformPoint (double point[3])` - Apply the transformation to a double-precision coordinate. Use this if you are programming in Python, tcl or Java.
- `float = obj.TransformFloatPoint (float x, float y, float z)` - Apply the transformation to an (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java.
- `float = obj.TransformFloatPoint (float point[3])` - Apply the transformation to an (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java.
- `double = obj.TransformDoublePoint (double x, double y, double z)` - Apply the transformation to a double-precision (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java.
- `double = obj.TransformDoublePoint (double point[3])` - Apply the transformation to a double-precision (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java.
- `obj.TransformNormalAtPoint (float point[3], float in[3], float out[3])` - Apply the transformation to a normal at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformNormal() instead.
- `obj.TransformNormalAtPoint (double point[3], double in[3], double out[3])` - Apply the transformation to a normal at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformNormal() instead.
- `double = obj.TransformNormalAtPoint (double point[3], double normal[3])`
- `double = obj.TransformDoubleNormalAtPoint (double point[3], double normal[3])` - Apply the transformation to a double-precision normal at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformDoubleNormal() instead.
- `float = obj.TransformFloatNormalAtPoint (float point[3], float normal[3])` - Apply the transformation to a single-precision normal at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformFloatNormal() instead.
- `obj.TransformVectorAtPoint (float point[3], float in[3], float out[3])` - Apply the transformation to a vector at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformVector() instead.
- `obj.TransformVectorAtPoint (double point[3], double in[3], double out[3])` - Apply the transformation to a vector at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformVector() instead.
- `double = obj.TransformVectorAtPoint (double point[3], double vector[3])`
- `double = obj.TransformDoubleVectorAtPoint (double point[3], double vector[3])` - Apply the transformation to a double-precision vector at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformDoubleVector() instead.
- `float = obj.TransformFloatVectorAtPoint (float point[3], float vector[3])` - Apply the transformation to a single-precision vector at the specified vertex. If the transformation is a vtkLinearTransform, you can use TransformFloatVector() instead.
- `obj.TransformPoints (vtkPoints inPts, vtkPoints outPts)` - Apply the transformation to a series of points, and append the results to outPts.
- `obj.TransformPointsNormalsVectors (vtkPoints inPts, vtkPoints outPts, vtkDataArray inNms, vtkDataArray outNms, vtkDataArray inVrs, vtkDataArray outVrs)` - Apply the transformation to a combination of points, normals and vectors.
- `vtkAbstractTransform = obj.GetInverse ()` - Get the inverse of this transform. If you modify this transform, the returned inverse transform will automatically update. If you want the inverse of a vtkTransform, you might want to use GetLinearInverse() instead which will type cast the result from vtkAbstractTransform to vtkLinearTransform.
- `obj.SetInverse (vtkAbstractTransform transform)` - Set a transformation that this transform will be the inverse of. This transform will automatically update to agree with the inverse transform that you set.
- `obj.Inverse ()` - Invert the transformation.
- `obj.DeepCopy (vtkAbstractTransform )` - Copy this transform from another of the same type.
- `obj.Update ()` - Update the transform to account for any changes which have been made. You do not have to call this method yourself, it is called automatically whenever the transform needs an update.
- `obj.InternalTransformPoint (float in[3], float out[3])` - This will calculate the transformation without calling Update. Meant for use only within other VTK classes.
- `obj.InternalTransformPoint (double in[3], double out[3])` - This will calculate the transformation without calling Update. Meant for use only within other VTK classes.
- `vtkAbstractTransform = obj.MakeTransform ()` - Make another transform of the same type.
- `int = obj.CircuitCheck (vtkAbstractTransform transform)` - Check for self-reference. Will return true if concatenating with the specified transform, setting it to be our inverse, or setting it to be our input will create a circular reference. CircuitCheck is automatically called by SetInput(), SetInverse(), and Concatenate(vtkXTransform *). Avoid using this function, it is experimental.
- `long = obj.GetMTime ()` - Override GetMTime necessary because of inverse transforms.
- `obj.UnRegister (vtkObjectBase O)` - Needs a special UnRegister() implementation to avoid circular references.
- `obj.Identity ()` -