Struct bevy::prelude::Transform [−]
Describe the position of an entity. If the entity has a parent, the position is relative to its parent position.
- To place or move an entity, you should set its
Transform
. - To be displayed, an entity must have both a
Transform
and aGlobalTransform
. - To get the global position of an entity, you should get its
GlobalTransform
.
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
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
pub fn clone(&self) -> Transform
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for Transform
impl Debug for Transform
impl Default for Transform
impl From<GlobalTransform> for Transform
pub fn from(transform: GlobalTransform) -> Transform
impl From<Transform> for GlobalTransform
pub fn from(transform: Transform) -> GlobalTransform
impl GetTypeRegistration for Transform
pub fn get_type_registration() -> TypeRegistration
impl Mul<Transform> for GlobalTransform
type Output = GlobalTransform
The resulting type after applying the *
operator.
pub fn mul(
self,
transform: Transform
) -> <GlobalTransform as Mul<Transform>>::Output
self,
transform: Transform
) -> <GlobalTransform as Mul<Transform>>::Output
impl Mul<Transform> for Transform
type Output = Transform
The resulting type after applying the *
operator.
pub fn mul(self, transform: Transform) -> <Transform as Mul<Transform>>::Output
impl Mul<Vec3> for Transform
type Output = Vec3
The resulting type after applying the *
operator.
pub fn mul(self, value: Vec3) -> <Transform as Mul<Vec3>>::Output
impl PartialEq<Transform> for Transform
impl Reflect for Transform
pub fn type_name(&self) -> &str
pub fn any(&self) -> &(dyn Any + 'static)
pub fn any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>
pub fn set(
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
pub fn apply(&mut self, value: &(dyn Reflect + 'static))
pub fn reflect_ref(&self) -> ReflectRef<'_>
pub fn reflect_mut(&mut self) -> ReflectMut<'_>
pub fn serializable(&self) -> Option<Serializable<'_>>
pub fn reflect_hash(&self) -> Option<u64>
pub fn reflect_partial_eq(
&self,
value: &(dyn Reflect + 'static)
) -> Option<bool>
&self,
value: &(dyn Reflect + 'static)
) -> Option<bool>
impl Struct for Transform
pub fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
pub fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
pub fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
pub fn field_at_mut(
&mut self,
index: usize
) -> Option<&mut (dyn Reflect + 'static)>
&mut self,
index: usize
) -> Option<&mut (dyn Reflect + 'static)>
pub fn name_at(&self, index: usize) -> Option<&str>
pub fn field_len(&self) -> usize
pub fn iter_fields(&self) -> FieldIter<'_>ⓘ
pub fn clone_dynamic(&self) -> DynamicStruct
impl StructuralPartialEq for Transform
Auto Trait Implementations
impl RefUnwindSafe for Transform
impl Send for Transform
impl Sync for Transform
impl Unpin for Transform
impl UnwindSafe for Transform
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CloneAny for T where
T: Any + Clone,
T: Any + Clone,
impl<T> Component for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Downcast for T where
T: Any,
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> Downcast<T> for T
impl<T> DowncastSync for T where
T: Any + Send + Sync,
T: Any + Send + Sync,
impl<T> From<T> for T
[src]
impl<T> FromWorld for T where
T: Default,
T: Default,
pub fn from_world(_world: &mut World) -> T
impl<S> GetField for S where
S: Struct,
S: Struct,
pub fn get_field<T>(&self, name: &str) -> Option<&T> where
T: Reflect,
T: Reflect,
pub fn get_field_mut<T>(&mut self, name: &str) -> Option<&mut T> where
T: Reflect,
T: Reflect,
impl<T> GetPath for T where
T: Reflect,
T: Reflect,
pub fn path(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
pub fn path_mut(
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
pub fn get_path<T>(
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
pub fn get_path_mut<T>(
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
T: Reflect,
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
T: Reflect,
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
[src]
Notable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
pub fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
[src]
Notable traits for Instrumented<T>
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
T: 'static + Send + Sync + Clone,
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
impl<T> Upcast<T> for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,