pub struct Transform {
    pub translation: Vec3,
    pub rotation: Quat,
    pub scale: Vec3,
}
Expand description

Describe the position of an entity. If the entity has a parent, the position is relative to its parent position.

Transform and GlobalTransform

Transform is the position of an entity relative to its parent position, or the reference frame if it doesn’t have a Parent.

GlobalTransform is the position of an entity relative to the reference frame.

GlobalTransform is updated from Transform in the system transform_propagate_system.

This system runs in stage CoreStage::PostUpdate. If you update the Transform of an entity in this stage or after, you will notice a 1 frame lag before the GlobalTransform is updated.

Examples

Fields

translation: Vec3

Position of the entity. In 2d, the last value of the Vec3 is used for z-ordering.

See the translations example for usage.

rotation: Quat

Rotation of the entity.

See the 3d_rotation example for usage.

scale: Vec3

Scale of the entity.

See the scale example for usage.

Implementations

An identity Transform with no translation, rotation, and a scale of 1 on all axes.

Creates a new Transform at the position (x, y, z). In 2d, the z component is used for z-ordering elements: higher z-value will be in front of lower z-value.

Extracts the translation, rotation, and scale from matrix. It must be a 3d affine transformation matrix.

Creates a new Transform, with translation. Rotation will be 0 and scale 1 on all axes.

Creates a new Transform, with rotation. Translation will be 0 and scale 1 on all axes.

Creates a new Transform, with scale. Translation will be 0 and rotation 0 on all axes.

Updates and returns this Transform by rotating it so that its unit vector in the local negative Z direction is toward target and its unit vector in the local Y direction is toward up.

Returns this Transform with a new translation.

Returns this Transform with a new rotation.

Returns this Transform with a new scale.

Returns the 3d affine transformation matrix from this transforms translation, rotation, and scale.

Returns the 3d affine transformation matrix from this transforms translation, rotation, and scale.

Get the unit vector in the local X direction.

Equivalent to -local_x()

Equivalent to local_x()

Get the unit vector in the local Y direction.

Equivalent to local_y()

Equivalent to -local_y()

Get the unit vector in the local Z direction.

Equivalent to -local_z()

Equivalent to local_z()

Rotates this Transform by the given rotation.

If this Transform has a parent, the rotation is relative to the rotation of the parent.

Examples

Rotates this Transform around the given axis by angle (in radians).

If this Transform has a parent, the axis is relative to the rotation of the parent.

Rotates this Transform around the X axis by angle (in radians).

If this Transform has a parent, the axis is relative to the rotation of the parent.

Rotates this Transform around the Y axis by angle (in radians).

If this Transform has a parent, the axis is relative to the rotation of the parent.

Rotates this Transform around the Z axis by angle (in radians).

If this Transform has a parent, the axis is relative to the rotation of the parent.

Rotates this Transform by the given rotation.

The rotation is relative to this Transform’s current rotation.

Rotates this Transform around its local axis by angle (in radians).

Rotates this Transform around its local X axis by angle (in radians).

Rotates this Transform around its local Y axis by angle (in radians).

Rotates this Transform around its local Z axis by angle (in radians).

Translates this Transform around a point in space.

If this Transform has a parent, the point is relative to the Transform of the parent.

Rotates this Transform around a point in space.

If this Transform has a parent, the point is relative to the Transform of the parent.

Rotates this Transform so that its local negative Z direction is toward target and its local Y direction is toward up.

Multiplies self with transform component by component, returning the resulting Transform

Transforms the given point, applying scale, rotation and translation.

If this Transform has a parent, this will transform a point that is relative to the parent’s Transform into one relative to this Transform.

If this Transform does not have a parent, this will transform a point that is in global space into one relative to this Transform.

If you want to transform a point in global space to the local space of this Transform, consider using GlobalTransform::transform_point() instead.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

The transform is expected to be non-degenerate and without shearing, or the output will be invalid.

Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Constructs a concrete instance of Self from a reflected value.
The resulting type after applying the * operator.
Performs the * operation. Read more
The resulting type after applying the * operator.
Performs the * operation. Read more
The resulting type after applying the * operator.
Performs the * operation. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Returns the type name of the underlying type.
Returns the TypeInfo of the underlying type. Read more
Returns the value as a Box<dyn Any>.
Returns the value as a &dyn Any.
Returns the value as a &mut dyn Any.
Casts this type to a boxed reflected value.
Casts this type to a reflected value.
Casts this type to a mutable reflected value.
Clones the value as a Reflect trait object. Read more
Performs a type-checked assignment of a reflected value to this value. Read more
Applies a reflected value to this value. Read more
Returns an enumeration of “kinds” of type. Read more
Returns a mutable enumeration of “kinds” of type. Read more
Returns an owned enumeration of “kinds” of type. Read more
Returns a “partial equality” comparison result. Read more
Returns a hash of the value (which includes the type). Read more
Debug formatter for the value. Read more
Returns a serializable version of the value. Read more
Returns a reference to the value of the field named name as a &dyn Reflect. Read more
Returns a mutable reference to the value of the field named name as a &mut dyn Reflect. Read more
Returns a reference to the value of the field with index index as a &dyn Reflect. Read more
Returns a mutable reference to the value of the field with index index as a &mut dyn Reflect. Read more
Returns the name of the field with index index.
Returns the number of fields in the struct.
Returns an iterator over the values of the reflectable fields for this struct.
Clones the struct into a DynamicStruct.
Returns the compile-time info for the underlying type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more
Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Returns the argument unchanged.

Creates Self using data from the given World
Returns a reference to the value of the field named name, downcast to T. Read more
Returns a mutable reference to the value of the field named name, downcast to T. Read more
Returns a reference to the value specified by path. Read more
Returns a mutable reference to the value specified by path. Read more
Returns a statically typed reference to the value specified by path.
Returns a statically typed mutable reference to the value specified by path. Read more
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more