Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Transform3D¶
A 3×4 matrix representing a 3D transformation.
Description¶
A 3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. It can represent transformations such as translation, rotation, and 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.
Note
There are notable differences when using this API with C#. See Différences de l'API C# par rapport à GDScript for more information.
Tutorials¶
Properties¶
|
||
|
Constructors¶
Transform3D ( ) |
|
Transform3D ( Transform3D from ) |
|
Transform3D ( Basis basis, Vector3 origin ) |
|
Transform3D ( Projection from ) |
|
Transform3D ( Vector3 x_axis, Vector3 y_axis, Vector3 z_axis, Vector3 origin ) |
Methods¶
affine_inverse ( ) const |
|
interpolate_with ( Transform3D xform, float weight ) const |
|
inverse ( ) const |
|
is_equal_approx ( Transform3D xform ) const |
|
is_finite ( ) const |
|
looking_at ( Vector3 target, Vector3 up=Vector3(0, 1, 0), bool use_model_front=false ) const |
|
orthonormalized ( ) const |
|
rotated_local ( Vector3 axis, float angle ) const |
|
scaled_local ( Vector3 scale ) const |
|
translated ( Vector3 offset ) const |
|
translated_local ( Vector3 offset ) const |
Operators¶
operator != ( Transform3D right ) |
|
operator * ( AABB right ) |
|
operator * ( PackedVector3Array right ) |
|
operator * ( Plane right ) |
|
operator * ( Transform3D right ) |
|
operator * ( Vector3 right ) |
|
operator * ( float right ) |
|
operator * ( int right ) |
|
operator == ( Transform3D right ) |
Constants¶
IDENTITY = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
Transform3D with no translation, rotation or scaling applied. When applied to other data structures, IDENTITY performs no transformation.
FLIP_X = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
Transform3D with mirroring applied perpendicular to the YZ plane.
FLIP_Y = Transform3D(1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0)
Transform3D with mirroring applied perpendicular to the XZ plane.
FLIP_Z = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0)
Transform3D with mirroring applied perpendicular to the XY plane.
Property Descriptions¶
Basis basis = 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 = Vector3(0, 0, 0)
The translation offset of the transform (column 3, the fourth column). Equivalent to array index 3
.
Constructor Descriptions¶
Transform3D Transform3D ( )
Constructs a default-initialized Transform3D set to IDENTITY.
Transform3D Transform3D ( Transform3D from )
Constructs a Transform3D as a copy of the given Transform3D.
Transform3D Transform3D ( Basis basis, Vector3 origin )
Constructs a Transform3D from a Basis and Vector3.
Transform3D Transform3D ( Projection from )
Constructs a Transform3D from a Projection by trimming the last row of the projection matrix (from.x.w
, from.y.w
, from.z.w
, and from.w.w
are not copied over).
Transform3D Transform3D ( Vector3 x_axis, Vector3 y_axis, Vector3 z_axis, Vector3 origin )
Constructs a Transform3D from four Vector3 values (matrix columns). Each axis corresponds to local basis vectors (some of which may be scaled).
Method Descriptions¶
Transform3D affine_inverse ( ) const
Returns the inverse of the transform, under the assumption that the basis is invertible (must have non-zero determinant).
Transform3D interpolate_with ( Transform3D xform, float weight ) const
Returns a transform interpolated between this transform and another by a given weight
(on the range of 0.0 to 1.0).
Transform3D inverse ( ) const
Returns the inverse of the transform, under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection is fine, scaling/skew is not). Use affine_inverse for non-orthonormal transforms (e.g. with scaling).
bool is_equal_approx ( Transform3D xform ) const
Returns true