Struct bevy::prelude::Transform[]

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

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.

In pseudo code:

for entity in entities_without_parent:
    set entity.global_transform to entity.transform
    recursively:
        set parent to current entity
        for child in parent.children:
            set child.global_transform to parent.global_transform * child.transform

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

Fields

translation: Vec3

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

rotation: Quat

Rotation of the entity.

scale: Vec3

Scale of the entity.

Implementations

impl Transform

pub fn from_xyz(x: f32, y: f32, z: f32) -> Transform

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.

pub const fn identity() -> Transform

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

pub fn from_matrix(matrix: Mat4) -> Transform

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

pub fn from_translation(translation: Vec3) -> Transform

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

pub fn from_rotation(rotation: Quat) -> Transform

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

pub fn from_scale(scale: Vec3) -> Transform

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

pub fn looking_at(self, target: Vec3, up: Vec3) -> Transform

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

pub fn compute_matrix(&self) -> Mat4

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

pub fn local_x(&self) -> Vec3

Get the unit vector in the local x direction.

pub fn local_y(&self) -> Vec3

Get the unit vector in the local y direction.

pub fn local_z(&self) -> Vec3

Get the unit vector in the local z direction.

pub fn rotate(&mut self, rotation: Quat)

Rotates the transform by the given rotation.

pub fn mul_transform(&self, transform: Transform) -> Transform

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

pub fn mul_vec3(&self, value: Vec3) -> Vec3

Returns a Vec3 of this Transform applied to value.

pub fn apply_non_uniform_scale(&mut self, scale_factor: Vec3)

Changes the scale of this Transform, multiplying the current scale by scale_factor.

pub fn look_at(&mut self, target: Vec3, up: Vec3)

Rotates this Transform so that its unit vector in the local z direction is toward target and its unit vector in the local y direction is toward up.

Trait Implementations

impl Clone for Transform

impl Copy for Transform

impl Debug for Transform

impl Default for Transform

impl From<GlobalTransform> for Transform

impl From<Transform> for GlobalTransform

impl GetTypeRegistration for Transform

impl Mul<Transform> for GlobalTransform

type Output = GlobalTransform

The resulting type after applying the * operator.

impl Mul<Transform> for Transform

type Output = Transform

The resulting type after applying the * operator.

impl Mul<Vec3> for Transform

type Output = Vec3

The resulting type after applying the * operator.

impl PartialEq<Transform> for Transform

impl Reflect for Transform

impl Struct for Transform

impl StructuralPartialEq for Transform

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Any for T where
    T: Any

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CloneAny for T where
    T: Any + Clone

impl<T> Component for T where
    T: 'static + Send + Sync

impl<T> Downcast for T where
    T: Any

impl<T> Downcast<T> for T

impl<T> DowncastSync for T where
    T: Any + Send + Sync

impl<T> From<T> for T[src]

impl<T> FromWorld for T where
    T: Default

impl<S> GetField for S where
    S: Struct

impl<T> GetPath for T where
    T: Reflect

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> TypeData for T where
    T: 'static + Send + Sync + Clone

impl<T> Upcast<T> for T

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,