Transform
3D transformation (3×4 matrix).
Description
3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. It can represent transformations such as translation, rotation, or scaling. It consists of a basis (first 3 columns) and a Vector3 for the origin (last column).
For more information, read the "Matrices and transforms" documentation article.
Tutorials
Properties
Basis | basis | Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 ) |
Vector3 | origin | Vector3( 0, 0, 0 ) |
Methods
Transform | Transform ( Vector3 x_axis, Vector3 y_axis, Vector3 z_axis, Vector3 origin ) |
Transform | Transform ( Basis basis, Vector3 origin ) |
Transform | Transform ( Transform2D from ) |
Transform | Transform ( Quat from ) |
Transform | Transform ( Basis from ) |
Transform | affine_inverse ( ) |
Transform | interpolate_with ( Transform transform, float weight ) |
Transform | inverse ( ) |
bool | is_equal_approx ( Transform transform ) |
Transform | looking_at ( Vector3 target, Vector3 up ) |
Transform | orthonormalized ( ) |
Transform | rotated ( Vector3 axis, float phi ) |
Transform | scaled ( Vector3 scale ) |
Transform | translated ( Vector3 offset ) |
Variant | xform ( Variant v ) |
Variant | xform_inv ( Variant v ) |
Constants
-
IDENTITY = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) ---
Transform
with no translation, rotation or scaling applied. When applied to other data structures, IDENTITY performs no transformation. -
FLIP_X = Transform( -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) ---
Transform
with mirroring applied perpendicular to the YZ plane. -
FLIP_Y = Transform( 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0 ) ---
Transform
with mirroring applied perpendicular to the XZ plane. -
FLIP_Z = Transform( 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0 ) ---
Transform
with mirroring applied perpendicular to the XY plane.
Property Descriptions
Basis basis
Default | Basis( 1, 0, 0, 0, 1, 0, 0, 0, 1 ) |
The basis is a matrix containing 3 Vector3 as its columns: X axis, Y axis, and Z axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object.
Vector3 origin
Default | Vector3( 0, 0, 0 ) |
The translation offset of the transform (column 3, the fourth column). Equivalent to array index 3
.
Method Descriptions
Transform Transform ( Vector3 x_axis, Vector3 y_axis, Vector3 z_axis, Vector3 origin )
Constructs a Transform from four Vector3 values (matrix columns). Each axis corresponds to local basis vectors (some of which may be scaled).
Constructs a Transform from a Basis and Vector3.
- Transform Transform ( Transform2D from )
Constructs a Transform from a Transform2D.
Constructs a Transform from a Quat. The origin will be Vector3(0, 0, 0)
.
Constructs the Transform from a Basis. The origin will be Vector3(0, 0, 0).
Transform affine_inverse ( )
Returns the inverse of the transform, under the assumption that the transformation is composed of rotation, scaling and translation.
Transform interpolate_with ( Transform transform, float weight )
Interpolates the transform to other Transform by weight amount (on the range of 0.0 to 1.0).
Transform inverse ( )
Returns the inverse of the transform, under the assumption that the transformation is composed of rotation and translation (no scaling, use affine_inverse for transforms with scaling).
bool is_equal_approx ( Transform transform )
Returns true
if this transform and transform
are approximately equal, by calling is_equal_approx
on each component.
Transform looking_at ( Vector3 target, Vector3 up )
Returns a copy of the transform rotated such that its -Z axis points towards the target
position.
The transform will first be rotated around the given up
vector, and then fully aligned to the target by a further rotation around an axis perpendicular to both the target
and up
vectors.
Operations take place in global space.
Transform orthonormalized ( )
Returns the transform with the basis orthogonal (90 degrees), and normalized axis vectors.
Transform rotated ( Vector3 axis, float phi )
Rotates the transform around the given axis by the given angle (in radians), using matrix multiplication. The axis must be a normalized vector.
Transform scaled ( Vector3 scale )
Scales basis and origin of the transform by the given scale factor, using matrix multiplication.
Transform translated ( Vector3 offset )
Translates the transform by the given offset, relative to the transform's basis vectors.
Unlike rotated and scaled, this does not use matrix multiplication.
Variant xform ( Variant v )
Transforms the given Vector3, Plane, AABB, or PoolVector3Array by this transform.
Variant xform_inv ( Variant v )
Inverse-transforms the given Vector3, Plane, AABB, or PoolVector3Array by this transform.
© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.2/classes/class_transform.html