pub struct ComputedAngularInertia { /* private fields */ }
Expand description
The total local angular inertia computed for a dynamic rigid body as a 3x3 tensor matrix, taking into account colliders and descendants. Represents resistance to angular acceleration.
The total angular inertia is computed as the sum of the inertias of all attached colliders
and the angular inertia of the rigid body entity itself, taking into account offsets from the center of mass.
The angular inertia of an entity is determined by its AngularInertia
component, or if it is not present,
from an attached Collider
based on its shape and mass.
This is computed in local space, so the object’s orientation is not taken into account.
The world-space version is stored in GlobalAngularInertia
, which is automatically recomputed
whenever the local angular inertia or rotation is changed.
To manually compute the world-space version that takes the body’s rotation into account,
use the associated rotated
method.
A total angular inertia of zero is a special case, and is interpreted as infinite angular inertia, meaning the rigid body will not be affected by any torques.
§Representation
Internally, the angular inertia is actually stored as the inverse angular inertia tensor angular_inertia_matrix.inverse()
.
This is because most physics calculations operate on the inverse angular inertia, and storing it directly
allows for fewer inversions and guards against division by zero.
When using ComputedAngularInertia
, you shouldn’t need to worry about this internal representation.
The provided constructors and getters abstract away the implementation details.
In terms of performance, the main thing to keep in mind is that inverse
is a no-op
and value
contains an inversion. When multiplying by the inverse angular inertia, it’s better to use
angular_inertia.inverse() * foo
than angular_inertia.value().inverse() * foo
.
§Related Types
AngularInertia
can be used to set the local angular inertia associated with an individual entity.GlobalAngularInertia
stores the world-space angular inertia tensor, which is automatically recomputed whenever the local angular inertia or rotation is changed.ComputedMass
stores the total mass of a rigid body, taking into account colliders and descendants.ComputedCenterOfMass
stores the total center of mass of a rigid body, taking into account colliders and descendants.MassPropertyHelper
is aSystemParam
with utilities for computing and updating mass properties.
Implementations§
source§impl ComputedAngularInertia
impl ComputedAngularInertia
sourcepub fn new(principal_angular_inertia: Vector) -> Self
pub fn new(principal_angular_inertia: Vector) -> Self
Creates a new ComputedAngularInertia
from the given principal angular inertia.
The principal angular inertia represents the torque needed for a desired angular acceleration about the local coordinate axes.
Note that this involves an invertion because ComputedAngularInertia
internally stores the inverse angular inertia.
To specify the orientation of the local inertial frame, consider using ComputedAngularInertia::new_with_local_frame
.
§Panics
Panics if any component of the principal angular inertia is negative or NaN when debug_assertions
are enabled.
sourcepub fn try_new(
principal_angular_inertia: Vector,
) -> Result<Self, AngularInertiaError>
pub fn try_new( principal_angular_inertia: Vector, ) -> Result<Self, AngularInertiaError>
Tries to create a new ComputedAngularInertia
from the given principal angular inertia.
The principal angular inertia represents the torque needed for a desired angular acceleration
about the local coordinate axes. To specify the orientation of the local inertial frame,
consider using ComputedAngularInertia::try_new_with_local_frame
.
Note that this involves an invertion because ComputedAngularInertia
internally stores the inverse angular inertia.
§Errors
Returns Err(AngularInertiaError)
if any component of the principal angular inertia is negative or NaN.
sourcepub fn new_with_local_frame(
principal_angular_inertia: Vector,
orientation: Quaternion,
) -> Self
pub fn new_with_local_frame( principal_angular_inertia: Vector, orientation: Quaternion, ) -> Self
Creates a new ComputedAngularInertia
from the given principal angular inertia
and the orientation of the local inertial frame.
The principal angular inertia represents the torque needed for a desired angular acceleration
about the local coordinate axes defined by the given orientation
.
Note that this involves an invertion because ComputedAngularInertia
internally stores the inverse angular inertia.
§Panics
Panics if any component of the principal angular inertia is negative or NaN when debug_assertions
are enabled.
sourcepub fn try_new_with_local_frame(
principal_angular_inertia: Vector,
orientation: Quaternion,
) -> Result<Self, AngularInertiaError>
pub fn try_new_with_local_frame( principal_angular_inertia: Vector, orientation: Quaternion, ) -> Result<Self, AngularInertiaError>
Tries to create a new ComputedAngularInertia
from the given principal angular inertia
and the orientation of the local inertial frame.
The principal angular inertia represents the torque needed for a desired angular acceleration
about the local coordinate axes defined by the given orientation
.
Note that this involves an invertion because ComputedAngularInertia
internally stores the inverse angular inertia.
§Errors
Returns Err(AngularInertiaError)
if any component of the principal angular inertia is negative or NaN.
sourcepub fn from_tensor(tensor: Matrix) -> Self
pub fn from_tensor(tensor: Matrix) -> Self
Creates a new ComputedAngularInertia
from the given angular inertia tensor.
The tensor should be symmetric and positive definite.
Note that this involves an invertion because ComputedAngularInertia
internally stores the inverse angular inertia.
sourcepub fn from_inverse_tensor(inverse_tensor: Matrix) -> Self
pub fn from_inverse_tensor(inverse_tensor: Matrix) -> Self
Creates a new ComputedAngularInertia
from the given inverse angular inertia tensor.
The tensor should be symmetric and positive definite.
sourcepub fn value(self) -> Matrix
pub fn value(self) -> Matrix
Returns the angular inertia tensor. If it is infinite, returns zero.
Note that this involves an invertion because ComputedAngularInertia
internally stores the inverse angular inertia.
If multiplying by the inverse angular inertia, consider using angular_inertia.inverse() * foo
instead of angular_inertia.value().inverse() * foo
.
Equivalent to ComputedAngularInertia::tensor
.
sourcepub fn inverse(self) -> Matrix
pub fn inverse(self) -> Matrix
Returns the inverse of the angular inertia tensor.
Note that this is a no-op because ComputedAngularInertia
internally stores the inverse angular inertia.
Equivalent to ComputedAngularInertia::inverse_tensor
.
sourcepub fn tensor(self) -> Matrix
pub fn tensor(self) -> Matrix
Returns the angular inertia tensor.
Note that this involves an invertion because ComputedAngularInertia
internally stores the inverse angular inertia.
If multiplying by the inverse angular inertia, consider using angular_inertia.inverse() * foo
instead of angular_inertia.value().inverse() * foo
.
sourcepub fn inverse_tensor(self) -> Matrix
pub fn inverse_tensor(self) -> Matrix
Returns the inverse of the angular inertia tensor.
Note that this is a no-op because ComputedAngularInertia
internally stores the inverse angular inertia.
sourcepub fn inverse_tensor_mut(&mut self) -> &mut Matrix
pub fn inverse_tensor_mut(&mut self) -> &mut Matrix
Returns a mutable reference to the inverse of the angular inertia tensor.
Note that this is a no-op because ComputedAngularInertia
internally stores the inverse angular inertia.
sourcepub fn set(&mut self, angular_inertia: impl Into<ComputedAngularInertia>)
pub fn set(&mut self, angular_inertia: impl Into<ComputedAngularInertia>)
Sets the angular inertia tensor.
sourcepub fn principal_angular_inertia_with_local_frame(&self) -> (Vector, Quaternion)
pub fn principal_angular_inertia_with_local_frame(&self) -> (Vector, Quaternion)
Computes the principal angular inertia and local inertial frame by diagonalizing the 3x3 tensor matrix.
The principal angular inertia represents the torque needed for a desired angular acceleration about the local coordinate axes defined by the local inertial frame.
sourcepub fn rotated(self, rotation: Quaternion) -> Self
pub fn rotated(self, rotation: Quaternion) -> Self
Computes the angular inertia tensor with the given rotation.
This can be used to transform local angular inertia to world space.
sourcepub fn shifted_tensor(&self, mass: Scalar, offset: Vector) -> Matrix3
pub fn shifted_tensor(&self, mass: Scalar, offset: Vector) -> Matrix3
Computes the angular inertia tensor shifted by the given offset, taking into account the given mass.
sourcepub fn shifted_inverse_tensor(&self, mass: Scalar, offset: Vector) -> Matrix3
pub fn shifted_inverse_tensor(&self, mass: Scalar, offset: Vector) -> Matrix3
Computes the inverse angular inertia tensor shifted by the given offset, taking into account the given mass.
sourcepub fn is_finite(self) -> bool
pub fn is_finite(self) -> bool
Returns true
if the angular inertia is neither infinite nor NaN.
sourcepub fn is_infinite(self) -> bool
pub fn is_infinite(self) -> bool
Returns true
if the angular inertia is positive infinity or negative infinity.
Trait Implementations§
source§impl Clone for ComputedAngularInertia
impl Clone for ComputedAngularInertia
source§fn clone(&self) -> ComputedAngularInertia
fn clone(&self) -> ComputedAngularInertia
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Component for ComputedAngularInertia
impl Component for ComputedAngularInertia
source§const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table
source§fn register_required_components(
requiree: ComponentId,
components: &mut Components,
storages: &mut Storages,
required_components: &mut RequiredComponents,
inheritance_depth: u16,
)
fn register_required_components( requiree: ComponentId, components: &mut Components, storages: &mut Storages, required_components: &mut RequiredComponents, inheritance_depth: u16, )
source§fn register_component_hooks(hooks: &mut ComponentHooks)
fn register_component_hooks(hooks: &mut ComponentHooks)
ComponentHooks
.source§impl Debug for ComputedAngularInertia
impl Debug for ComputedAngularInertia
source§impl Default for ComputedAngularInertia
impl Default for ComputedAngularInertia
source§impl From<AngularInertia> for ComputedAngularInertia
impl From<AngularInertia> for ComputedAngularInertia
source§fn from(inertia: AngularInertia) -> Self
fn from(inertia: AngularInertia) -> Self
source§impl From<ComputedAngularInertia> for AngularInertia
impl From<ComputedAngularInertia> for AngularInertia
source§fn from(inertia: ComputedAngularInertia) -> Self
fn from(inertia: ComputedAngularInertia) -> Self
source§impl From<ComputedAngularInertia> for GlobalAngularInertia
impl From<ComputedAngularInertia> for GlobalAngularInertia
source§fn from(value: ComputedAngularInertia) -> Self
fn from(value: ComputedAngularInertia) -> Self
source§impl From<GlobalAngularInertia> for ComputedAngularInertia
impl From<GlobalAngularInertia> for ComputedAngularInertia
source§fn from(inertia: GlobalAngularInertia) -> Self
fn from(inertia: GlobalAngularInertia) -> Self
source§impl From<Mat3> for ComputedAngularInertia
impl From<Mat3> for ComputedAngularInertia
source§impl FromReflect for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl FromReflect for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
source§fn from_reflect(reflect: &dyn PartialReflect) -> Option<Self>
fn from_reflect(reflect: &dyn PartialReflect) -> Option<Self>
Self
from a reflected value.source§fn take_from_reflect(
reflect: Box<dyn PartialReflect>,
) -> Result<Self, Box<dyn PartialReflect>>
fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>
Self
using,
constructing the value using from_reflect
if that fails. Read moresource§impl GetTypeRegistration for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl GetTypeRegistration for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration
for this type.source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
source§impl Mul<Vec3> for ComputedAngularInertia
impl Mul<Vec3> for ComputedAngularInertia
source§impl PartialEq for ComputedAngularInertia
impl PartialEq for ComputedAngularInertia
source§impl PartialReflect for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl PartialReflect for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
source§fn clone_value(&self) -> Box<dyn PartialReflect>
fn clone_value(&self) -> Box<dyn PartialReflect>
Reflect
trait object. Read moresource§fn try_apply(&mut self, value: &dyn PartialReflect) -> Result<(), ApplyError>
fn try_apply(&mut self, value: &dyn PartialReflect) -> Result<(), ApplyError>
source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
source§fn reflect_owned(self: Box<Self>) -> ReflectOwned
fn reflect_owned(self: Box<Self>) -> ReflectOwned
source§fn try_into_reflect(
self: Box<Self>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<Self>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
source§fn try_as_reflect(&self) -> Option<&dyn Reflect>
fn try_as_reflect(&self) -> Option<&dyn Reflect>
source§fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
fn try_as_reflect_mut(&mut self) -> Option<&mut dyn Reflect>
source§fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<Self>) -> Box<dyn PartialReflect>
source§fn as_partial_reflect(&self) -> &dyn PartialReflect
fn as_partial_reflect(&self) -> &dyn PartialReflect
source§fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
fn as_partial_reflect_mut(&mut self) -> &mut dyn PartialReflect
source§fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
fn reflect_partial_eq(&self, value: &dyn PartialReflect) -> Option<bool>
source§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
source§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
source§impl Reflect for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl Reflect for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
&mut dyn Any
. Read moresource§fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Self>) -> Box<dyn Reflect>
source§fn as_reflect(&self) -> &dyn Reflect
fn as_reflect(&self) -> &dyn Reflect
source§fn as_reflect_mut(&mut self) -> &mut dyn Reflect
fn as_reflect_mut(&mut self) -> &mut dyn Reflect
source§impl Struct for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl Struct for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
source§fn field(&self, name: &str) -> Option<&dyn PartialReflect>
fn field(&self, name: &str) -> Option<&dyn PartialReflect>
name
as a &dyn PartialReflect
.source§fn field_mut(&mut self, name: &str) -> Option<&mut dyn PartialReflect>
fn field_mut(&mut self, name: &str) -> Option<&mut dyn PartialReflect>
name
as a
&mut dyn PartialReflect
.source§fn field_at(&self, index: usize) -> Option<&dyn PartialReflect>
fn field_at(&self, index: usize) -> Option<&dyn PartialReflect>
index
as a
&dyn PartialReflect
.source§fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>
fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>
index
as a &mut dyn PartialReflect
.source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
index
.source§fn iter_fields(&self) -> FieldIter<'_>
fn iter_fields(&self) -> FieldIter<'_>
source§fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
DynamicStruct
.source§fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
None
if TypeInfo
is not available.source§impl TypePath for ComputedAngularInertia
impl TypePath for ComputedAngularInertia
source§fn type_path() -> &'static str
fn type_path() -> &'static str
source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
source§impl Typed for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl Typed for ComputedAngularInertiawhere
ComputedAngularInertia: Any + Send + Sync,
Matrix: FromReflect + TypePath + MaybeTyped + RegisterForReflection,
impl Copy for ComputedAngularInertia
impl StructuralPartialEq for ComputedAngularInertia
Auto Trait Implementations§
impl Freeze for ComputedAngularInertia
impl RefUnwindSafe for ComputedAngularInertia
impl Send for ComputedAngularInertia
impl Sync for ComputedAngularInertia
impl Unpin for ComputedAngularInertia
impl UnwindSafe for ComputedAngularInertia
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId), )
unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
source§fn register_required_components(
components: &mut Components,
storages: &mut Storages,
required_components: &mut RequiredComponents,
)
fn register_required_components( components: &mut Components, storages: &mut Storages, required_components: &mut RequiredComponents, )
Bundle
.source§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>),
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))
source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path
.source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident
.source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name
.source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
source§impl<T> DynamicTyped for Twhere
T: Typed,
impl<T> DynamicTyped for Twhere
T: Typed,
source§fn reflect_type_info(&self) -> &'static TypeInfo
fn reflect_type_info(&self) -> &'static TypeInfo
Typed::type_info
.source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self
using default()
.
source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
source§impl<T> GetPath for T
impl<T> GetPath for T
source§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>
path
. Read moresource§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>
path
. Read moresource§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>(
&self,
path: impl ReflectPath<'p>,
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moresource§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>,
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
path
. Read moresource§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.