pub struct Isometry3d {
pub rotation: Quat,
pub translation: Vec3A,
}Expand description
An isometry in three dimensions, representing a rotation followed by a translation. This can often be useful for expressing relative positions and transformations from one position to another.
In particular, this type represents a distance-preserving transformation known as a rigid motion or a direct motion, and belongs to the special Euclidean group SE(3). This includes translation and rotation, but excludes reflection.
For the two-dimensional version, see Isometry2d.
§Example
Isometries can be created from a given translation and rotation:
let iso = Isometry3d::new(Vec3::new(2.0, 1.0, 3.0), Quat::from_rotation_z(FRAC_PI_2));Or from separate parts:
let iso1 = Isometry3d::from_translation(Vec3::new(2.0, 1.0, 3.0));
let iso2 = Isometry3d::from_rotation(Quat::from_rotation_z(FRAC_PI_2));The isometries can be used to transform points:
let iso = Isometry3d::new(Vec3::new(2.0, 1.0, 3.0), Quat::from_rotation_z(FRAC_PI_2));
let point = Vec3::new(4.0, 4.0, 4.0);
// These are equivalent
let result = iso.transform_point(point);
let result = iso * point;
assert_relative_eq!(result, Vec3::new(-2.0, 5.0, 7.0));Isometries can also be composed together:
assert_eq!(iso1 * iso2, iso);One common operation is to compute an isometry representing the relative positions of two objects for things like intersection tests. This can be done with an inverse transformation:
let sphere_iso = Isometry3d::from_translation(Vec3::new(2.0, 1.0, 3.0));
let cuboid_iso = Isometry3d::from_rotation(Quat::from_rotation_z(FRAC_PI_2));
// Compute the relative position and orientation between the two shapes
let relative_iso = sphere_iso.inverse() * cuboid_iso;
// Or alternatively, to skip an extra rotation operation:
let relative_iso = sphere_iso.inverse_mul(cuboid_iso);Fields§
§rotation: QuatThe rotational part of a three-dimensional isometry.
translation: Vec3AThe translational part of a three-dimensional isometry.
Implementations§
Source§impl Isometry3d
impl Isometry3d
Sourcepub const IDENTITY: Isometry3d
pub const IDENTITY: Isometry3d
The identity isometry which represents the rigid motion of not doing anything.
Sourcepub fn new(translation: impl Into<Vec3A>, rotation: Quat) -> Isometry3d
pub fn new(translation: impl Into<Vec3A>, rotation: Quat) -> Isometry3d
Create a three-dimensional isometry from a rotation and a translation.
Examples found in repository?
25fn hello_world(mut text_gizmos: Gizmos, time: Res<Time>) {
26 let t = 0.2 * time.elapsed_secs();
27
28 text_gizmos.text(
29 Isometry3d::new(Vec3::new(0.0, 1.5, 0.0), Quat::from_rotation_y(-t)),
30 "Hello",
31 1.,
32 Vec2::ZERO,
33 RED,
34 );
35
36 text_gizmos.text(
37 Isometry3d::new(Vec3::new(0.0, 0.0, 0.0), Quat::from_rotation_y(t + 0.25)),
38 "Text",
39 1.,
40 Vec2::ZERO,
41 ORANGE,
42 );
43
44 text_gizmos.text(
45 Isometry3d::new(Vec3::new(0.0, -1.5, 0.0), Quat::from_rotation_y(-t - 0.5)),
46 "Gizmos",
47 1.,
48 Vec2::ZERO,
49 YELLOW,
50 );
51}More examples
348fn draw_camera_gizmo(cameras: Query<(&Camera, &GlobalTransform)>, mut gizmos: Gizmos) {
349 for (camera, transform) in &cameras {
350 // As above, we use the order as a cheap tag to tell the depth texture
351 // apart from the main texture.
352 if camera.order >= 0 {
353 continue;
354 }
355
356 // Draw a cone representing the camera.
357 gizmos.primitive_3d(
358 &Cone {
359 radius: 1.0,
360 height: 3.0,
361 },
362 Isometry3d::new(
363 transform.translation(),
364 // We have to rotate here because `Cone` primitives are oriented
365 // along +Y and cameras point along +Z.
366 transform.rotation() * Quat::from_rotation_x(FRAC_PI_2),
367 ),
368 LIME,
369 );
370 }
371}13fn draw_cursor(
14 camera_query: Single<(&Camera, &GlobalTransform)>,
15 ground: Single<&GlobalTransform, With<Ground>>,
16 window: Single<&Window>,
17 mut gizmos: Gizmos,
18) {
19 let (camera, camera_transform) = *camera_query;
20
21 if let Some(cursor_position) = window.cursor_position()
22 // Calculate a ray pointing from the camera into the world based on the cursor's position.
23 && let Ok(ray) = camera.viewport_to_world(camera_transform, cursor_position)
24 // Calculate if and where the ray is hitting the ground plane.
25 && let Some(point) = ray.plane_intersection_point(ground.translation(), InfinitePlane3d::new(ground.up()))
26 {
27 // Draw a circle just above the ground plane at that position.
28 gizmos.circle(
29 Isometry3d::new(
30 point + ground.up() * 0.01,
31 Quat::from_rotation_arc(Vec3::Z, ground.up().as_vec3()),
32 ),
33 0.2,
34 Color::WHITE,
35 );
36 }
37}673fn draw_gizmos_3d(mut gizmos: Gizmos, state: Res<State<PrimitiveSelected>>, time: Res<Time>) {
674 const POSITION: Vec3 = Vec3::new(LEFT_RIGHT_OFFSET_3D, 0.0, 0.0);
675 let rotation = Quat::from_rotation_arc(
676 Vec3::Z,
677 Vec3::new(
678 ops::sin(time.elapsed_secs()),
679 ops::cos(time.elapsed_secs()),
680 ops::sin(time.elapsed_secs()) * 0.5,
681 )
682 .try_normalize()
683 .unwrap_or(Vec3::Z),
684 );
685 let isometry = Isometry3d::new(POSITION, rotation);
686 let color = Color::WHITE;
687 let resolution = 10;
688
689 #[expect(
690 clippy::match_same_arms,
691 reason = "Certain primitives don't have any 3D rendering support yet."
692 )]
693 match state.get() {
694 PrimitiveSelected::RectangleAndCuboid => {
695 gizmos.primitive_3d(&CUBOID, isometry, color);
696 }
697 PrimitiveSelected::CircleAndSphere => drop(
698 gizmos
699 .primitive_3d(&SPHERE, isometry, color)
700 .resolution(resolution),
701 ),
702 PrimitiveSelected::Ellipse => {}
703 PrimitiveSelected::Triangle => gizmos.primitive_3d(&TRIANGLE_3D, isometry, color),
704 PrimitiveSelected::Plane => drop(gizmos.primitive_3d(&PLANE_3D, isometry, color)),
705 PrimitiveSelected::Line => gizmos.primitive_3d(&LINE_3D, isometry, color),
706 PrimitiveSelected::Segment => gizmos.primitive_3d(&SEGMENT_3D, isometry, color),
707 PrimitiveSelected::Polyline => gizmos.primitive_3d(
708 &Polyline3d {
709 vertices: POLYLINE_3D_VERTICES.to_vec(),
710 },
711 isometry,
712 color,
713 ),
714 PrimitiveSelected::Polygon => {}
715 PrimitiveSelected::ConvexPolygon => {}
716 PrimitiveSelected::RegularPolygon => {}
717 PrimitiveSelected::Capsule => drop(
718 gizmos
719 .primitive_3d(&CAPSULE_3D, isometry, color)
720 .resolution(resolution),
721 ),
722 PrimitiveSelected::Cylinder => drop(
723 gizmos
724 .primitive_3d(&CYLINDER, isometry, color)
725 .resolution(resolution),
726 ),
727 PrimitiveSelected::Cone => drop(
728 gizmos
729 .primitive_3d(&CONE, isometry, color)
730 .resolution(resolution),
731 ),
732 PrimitiveSelected::ConicalFrustum => {
733 gizmos.primitive_3d(&CONICAL_FRUSTUM, isometry, color);
734 }
735
736 PrimitiveSelected::Torus => drop(
737 gizmos
738 .primitive_3d(&TORUS, isometry, color)
739 .minor_resolution(resolution)
740 .major_resolution(resolution),
741 ),
742 PrimitiveSelected::Tetrahedron => {
743 gizmos.primitive_3d(&TETRAHEDRON, isometry, color);
744 }
745
746 PrimitiveSelected::Arc => {}
747 PrimitiveSelected::CircularSector => {}
748 PrimitiveSelected::CircularSegment => {}
749 }
750}107fn draw_example_collection(
108 mut gizmos: Gizmos,
109 mut my_gizmos: Gizmos<MyRoundGizmos>,
110 time: Res<Time>,
111) {
112 gizmos.grid(
113 Quat::from_rotation_x(PI / 2.),
114 UVec2::splat(20),
115 Vec2::new(2., 2.),
116 // Light gray
117 LinearRgba::gray(0.65),
118 );
119 gizmos.grid(
120 Isometry3d::new(Vec3::splat(10.0), Quat::from_rotation_x(PI / 3. * 2.)),
121 UVec2::splat(20),
122 Vec2::new(2., 2.),
123 PURPLE,
124 );
125 gizmos.sphere(Vec3::splat(10.0), 1.0, PURPLE);
126
127 gizmos
128 .primitive_3d(
129 &Plane3d {
130 normal: Dir3::Y,
131 half_size: Vec2::splat(1.0),
132 },
133 Isometry3d::new(
134 Vec3::splat(4.0) + Vec2::from(ops::sin_cos(time.elapsed_secs())).extend(0.0),
135 Quat::from_rotation_x(PI / 2. + time.elapsed_secs()),
136 ),
137 GREEN,
138 )
139 .cell_count(UVec2::new(5, 10))
140 .spacing(Vec2::new(0.2, 0.1));
141
142 gizmos.cube(
143 Transform::from_translation(Vec3::Y * 0.5).with_scale(Vec3::splat(1.25)),
144 BLACK,
145 );
146 gizmos.rect(
147 Isometry3d::new(
148 Vec3::new(ops::cos(time.elapsed_secs()) * 2.5, 1., 0.),
149 Quat::from_rotation_y(PI / 2.),
150 ),
151 Vec2::splat(2.),
152 LIME,
153 );
154
155 gizmos.cross(Vec3::new(-1., 1., 1.), 0.5, FUCHSIA);
156
157 let domain = Interval::EVERYWHERE;
158 let curve = FunctionCurve::new(domain, |t| {
159 (Vec2::from(ops::sin_cos(t * 10.0))).extend(t - 6.0)
160 });
161 let resolution = ((ops::sin(time.elapsed_secs()) + 1.0) * 100.0) as usize;
162 let times_and_colors = (0..=resolution)
163 .map(|n| n as f32 / resolution as f32)
164 .map(|t| t * 5.0)
165 .map(|t| (t, TEAL.mix(&HOT_PINK, t / 5.0)));
166 gizmos.curve_gradient_3d(curve, times_and_colors);
167
168 gizmos.primitive_3d(
169 &Capsule3d::new(0.35, 0.5),
170 Isometry3d::new(
171 Vec3::new(-1.75, 0.75, 0.75),
172 Quat::from_rotation_y(ops::cos(time.elapsed_secs() / 2.0) * 10.0)
173 * Quat::from_rotation_z(PI / 3.0),
174 ),
175 YELLOW_GREEN,
176 );
177
178 my_gizmos.sphere(Vec3::new(1., 0.5, 0.), 0.5, RED);
179
180 my_gizmos
181 .rounded_cuboid(Vec3::new(-2.0, 0.75, -0.75), Vec3::splat(0.9), TURQUOISE)
182 .edge_radius(0.1)
183 .arc_resolution(4);
184
185 for y in [0., 0.5, 1.] {
186 gizmos.ray(
187 Vec3::new(1., y, 0.),
188 Vec3::new(-3., ops::sin(time.elapsed_secs() * 3.), 0.),
189 BLUE,
190 );
191 }
192
193 my_gizmos
194 .arc_3d(
195 180.0_f32.to_radians(),
196 0.2,
197 Isometry3d::new(
198 Vec3::ONE,
199 Quat::from_rotation_arc(Vec3::Y, Vec3::ONE.normalize()),
200 ),
201 ORANGE,
202 )
203 .resolution(10);
204
205 // Circles have 32 line-segments by default.
206 my_gizmos.circle(Quat::from_rotation_arc(Vec3::Z, Vec3::Y), 3., BLACK);
207
208 // You may want to increase this for larger circles or spheres.
209 my_gizmos
210 .circle(Quat::from_rotation_arc(Vec3::Z, Vec3::Y), 3.1, NAVY)
211 .resolution(64);
212 my_gizmos
213 .sphere(Isometry3d::IDENTITY, 3.2, BLACK)
214 .resolution(64);
215
216 gizmos.arrow(Vec3::ZERO, Vec3::splat(1.5), YELLOW);
217
218 // You can create more complex arrows using the arrow builder.
219 gizmos
220 .arrow(Vec3::new(2., 0., 2.), Vec3::new(2., 2., 2.), ORANGE_RED)
221 .with_double_end()
222 .with_tip_length(0.5);
223
224 let from = Vec3::new(1.0, 2.0, 3.0);
225 let to = Vec3::new(3.0, 2.5, 4.0);
226 gizmos.rect(from, Vec2::ONE, RED);
227 my_gizmos.short_arc_3d_between((from + to) / 2.0, from, to, YELLOW_GREEN);
228 gizmos.rect(to, Vec2::ONE, RED);
229}Sourcepub const fn from_rotation(rotation: Quat) -> Isometry3d
pub const fn from_rotation(rotation: Quat) -> Isometry3d
Create a three-dimensional isometry from a rotation.
Sourcepub fn from_translation(translation: impl Into<Vec3A>) -> Isometry3d
pub fn from_translation(translation: impl Into<Vec3A>) -> Isometry3d
Create a three-dimensional isometry from a translation.
Examples found in repository?
388 pub fn draw_gizmos(mut gizmos: Gizmos) {
389 gizmos.cube(
390 Transform::from_translation(Vec3::X * -1.75).with_scale(Vec3::splat(1.25)),
391 RED,
392 );
393 gizmos
394 .sphere(Isometry3d::from_translation(Vec3::X * -3.5), 0.75, GREEN)
395 .resolution(30_000 / 3);
396
397 gizmos.text(
398 Isometry3d::from_translation(Vec3::Y * 1.5),
399 "text gizmo",
400 0.3,
401 Vec2 { x: 0., y: 0. },
402 Color::WHITE,
403 );
404
405 // 3d grids with all variations of outer edges on or off
406 for i in 0..8 {
407 let x = 1.5 * (i % 4) as f32;
408 let y = 1.0 * (0.5 - (i / 4) as f32);
409 let mut grid = gizmos.grid_3d(
410 Isometry3d::from_translation(Vec3::new(x, y, 0.0)),
411 UVec3::new(5, 4, 3),
412 Vec3::splat(0.175),
413 Color::WHITE,
414 );
415 if i & 1 > 0 {
416 grid = grid.outer_edges_x();
417 }
418 if i & 2 > 0 {
419 grid = grid.outer_edges_y();
420 }
421 if i & 4 > 0 {
422 grid.outer_edges_z();
423 }
424 }
425 }Sourcepub const fn from_xyz(x: f32, y: f32, z: f32) -> Isometry3d
pub const fn from_xyz(x: f32, y: f32, z: f32) -> Isometry3d
Create a three-dimensional isometry from a translation with the given x, y, and z components.
Sourcepub fn inverse(&self) -> Isometry3d
pub fn inverse(&self) -> Isometry3d
The inverse isometry that undoes this one.
Sourcepub fn inverse_mul(&self, rhs: Isometry3d) -> Isometry3d
pub fn inverse_mul(&self, rhs: Isometry3d) -> Isometry3d
Compute iso1.inverse() * iso2 in a more efficient way for one-shot cases.
If the same isometry is used multiple times, it is more efficient to instead compute the inverse once and use that for each transformation.
Sourcepub fn transform_point(&self, point: impl Into<Vec3A>) -> Vec3A
pub fn transform_point(&self, point: impl Into<Vec3A>) -> Vec3A
Transform a point by rotating and translating it using this isometry.
Sourcepub fn inverse_transform_point(&self, point: impl Into<Vec3A>) -> Vec3A
pub fn inverse_transform_point(&self, point: impl Into<Vec3A>) -> Vec3A
Transform a point by rotating and translating it using the inverse of this isometry.
This is more efficient than iso.inverse().transform_point(point) for one-shot cases.
If the same isometry is used multiple times, it is more efficient to instead compute
the inverse once and use that for each transformation.
Trait Implementations§
Source§impl AbsDiffEq for Isometry3d
Available on crate feature approx only.
impl AbsDiffEq for Isometry3d
approx only.Source§fn default_epsilon() -> <Isometry3d as AbsDiffEq>::Epsilon
fn default_epsilon() -> <Isometry3d as AbsDiffEq>::Epsilon
Source§fn abs_diff_eq(
&self,
other: &Isometry3d,
epsilon: <Isometry3d as AbsDiffEq>::Epsilon,
) -> bool
fn abs_diff_eq( &self, other: &Isometry3d, epsilon: <Isometry3d as AbsDiffEq>::Epsilon, ) -> bool
Source§fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
fn abs_diff_ne(&self, other: &Rhs, epsilon: Self::Epsilon) -> bool
AbsDiffEq::abs_diff_eq.Source§impl Clone for Isometry3d
impl Clone for Isometry3d
Source§fn clone(&self) -> Isometry3d
fn clone(&self) -> Isometry3d
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Isometry3d
Source§impl Debug for Isometry3d
impl Debug for Isometry3d
Source§impl Default for Isometry3d
impl Default for Isometry3d
Source§fn default() -> Isometry3d
fn default() -> Isometry3d
Source§impl<'de> Deserialize<'de> for Isometry3d
impl<'de> Deserialize<'de> for Isometry3d
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Isometry3d, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Isometry3d, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Ease for Isometry3d
impl Ease for Isometry3d
Source§fn interpolating_curve_unbounded(
start: Isometry3d,
end: Isometry3d,
) -> impl Curve<Isometry3d>
fn interpolating_curve_unbounded( start: Isometry3d, end: Isometry3d, ) -> impl Curve<Isometry3d>
Source§impl From<Isometry3d> for Affine3
impl From<Isometry3d> for Affine3
Source§fn from(iso: Isometry3d) -> Affine3
fn from(iso: Isometry3d) -> Affine3
Source§impl From<Isometry3d> for Affine3A
impl From<Isometry3d> for Affine3A
Source§fn from(iso: Isometry3d) -> Affine3A
fn from(iso: Isometry3d) -> Affine3A
Source§impl From<Quat> for Isometry3d
impl From<Quat> for Isometry3d
Source§fn from(rotation: Quat) -> Isometry3d
fn from(rotation: Quat) -> Isometry3d
Source§impl From<Vec3> for Isometry3d
impl From<Vec3> for Isometry3d
Source§fn from(translation: Vec3) -> Isometry3d
fn from(translation: Vec3) -> Isometry3d
Source§impl From<Vec3A> for Isometry3d
impl From<Vec3A> for Isometry3d
Source§fn from(translation: Vec3A) -> Isometry3d
fn from(translation: Vec3A) -> Isometry3d
Source§impl FromArg for Isometry3d
impl FromArg for Isometry3d
Source§impl FromReflect for Isometry3d
impl FromReflect for Isometry3d
Source§fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<Isometry3d>
fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<Isometry3d>
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 GetOwnership for Isometry3d
impl GetOwnership for Isometry3d
Source§impl GetTypeRegistration for Isometry3d
impl GetTypeRegistration for Isometry3d
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 IntoReturn for Isometry3d
impl IntoReturn for Isometry3d
Source§fn into_return<'into_return>(self) -> Return<'into_return>where
Isometry3d: 'into_return,
fn into_return<'into_return>(self) -> Return<'into_return>where
Isometry3d: 'into_return,
Source§impl Mul for Isometry3d
impl Mul for Isometry3d
Source§type Output = Isometry3d
type Output = Isometry3d
* operator.Source§fn mul(self, rhs: Isometry3d) -> <Isometry3d as Mul>::Output
fn mul(self, rhs: Isometry3d) -> <Isometry3d as Mul>::Output
* operation. Read moreSource§impl Mul<Dir3> for Isometry3d
impl Mul<Dir3> for Isometry3d
Source§impl Mul<Vec3> for Isometry3d
impl Mul<Vec3> for Isometry3d
Source§impl Mul<Vec3A> for Isometry3d
impl Mul<Vec3A> for Isometry3d
Source§impl PartialEq for Isometry3d
impl PartialEq for Isometry3d
Source§impl PartialReflect for Isometry3d
impl PartialReflect for Isometry3d
Source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
Source§fn try_apply(
&mut self,
value: &(dyn PartialReflect + 'static),
) -> Result<(), ApplyError>
fn try_apply( &mut self, value: &(dyn PartialReflect + 'static), ) -> 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<Isometry3d>) -> ReflectOwned
fn reflect_owned(self: Box<Isometry3d>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<Isometry3d>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<Isometry3d>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
Source§fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>
Source§fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>
Source§fn into_partial_reflect(self: Box<Isometry3d>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<Isometry3d>) -> Box<dyn PartialReflect>
Source§fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)
Source§fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)
Source§fn reflect_partial_eq(
&self,
value: &(dyn PartialReflect + 'static),
) -> Option<bool>
fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>
Source§fn reflect_partial_cmp(
&self,
value: &(dyn PartialReflect + 'static),
) -> Option<Ordering>
fn reflect_partial_cmp( &self, value: &(dyn PartialReflect + 'static), ) -> Option<Ordering>
Source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Source§fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>
Self using reflection. Read moreSource§fn apply(&mut self, value: &(dyn PartialReflect + 'static))
fn apply(&mut self, value: &(dyn PartialReflect + 'static))
Source§fn to_dynamic(&self) -> Result<Box<dyn PartialReflect>, ReflectCloneError>
fn to_dynamic(&self) -> Result<Box<dyn PartialReflect>, ReflectCloneError>
Source§fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
PartialReflect, combines reflect_clone and
take in a useful fashion, automatically constructing an appropriate
ReflectCloneError if the downcast fails.Source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
Source§impl Reflect for Isometry3d
impl Reflect for Isometry3d
Source§fn into_any(self: Box<Isometry3d>) -> Box<dyn Any>
fn into_any(self: Box<Isometry3d>) -> Box<dyn Any>
Box<dyn Any>. Read moreSource§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any. Read moreSource§fn into_reflect(self: Box<Isometry3d>) -> Box<dyn Reflect>
fn into_reflect(self: Box<Isometry3d>) -> Box<dyn Reflect>
Source§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
Source§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
Source§impl RelativeEq for Isometry3d
Available on crate feature approx only.
impl RelativeEq for Isometry3d
approx only.Source§fn default_max_relative() -> <Isometry3d as AbsDiffEq>::Epsilon
fn default_max_relative() -> <Isometry3d as AbsDiffEq>::Epsilon
Source§fn relative_eq(
&self,
other: &Isometry3d,
epsilon: <Isometry3d as AbsDiffEq>::Epsilon,
max_relative: <Isometry3d as AbsDiffEq>::Epsilon,
) -> bool
fn relative_eq( &self, other: &Isometry3d, epsilon: <Isometry3d as AbsDiffEq>::Epsilon, max_relative: <Isometry3d as AbsDiffEq>::Epsilon, ) -> bool
Source§fn relative_ne(
&self,
other: &Rhs,
epsilon: Self::Epsilon,
max_relative: Self::Epsilon,
) -> bool
fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool
RelativeEq::relative_eq.Source§impl Serialize for Isometry3d
impl Serialize for Isometry3d
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Source§impl Struct for Isometry3d
impl Struct for Isometry3d
Source§fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>
name as a &dyn PartialReflect.Source§fn field_mut(
&mut self,
name: &str,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_mut( &mut self, name: &str, ) -> Option<&mut (dyn PartialReflect + 'static)>
name as a
&mut dyn PartialReflect.Source§fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>
index as a
&dyn PartialReflect.Source§fn field_at_mut(
&mut self,
index: usize,
) -> Option<&mut (dyn PartialReflect + 'static)>
fn field_at_mut( &mut self, index: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>
index
as a &mut dyn PartialReflect.Source§fn index_of_name(&self, name: &str) -> Option<usize>
fn index_of_name(&self, name: &str) -> Option<usize>
Source§fn iter_fields(&self) -> FieldIter<'_> ⓘ
fn iter_fields(&self) -> FieldIter<'_> ⓘ
Source§fn to_dynamic_struct(&self) -> Result<DynamicStruct, ReflectCloneError>
fn to_dynamic_struct(&self) -> Result<DynamicStruct, ReflectCloneError>
DynamicStruct from this struct. Read moreSource§fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
fn get_represented_struct_info(&self) -> Option<&'static StructInfo>
None if TypeInfo is not available.impl StructuralPartialEq for Isometry3d
Source§impl TransformPoint for Isometry3d
impl TransformPoint for Isometry3d
Source§impl TypePath for Isometry3d
impl TypePath for Isometry3d
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 Isometry3d
impl Typed for Isometry3d
Source§impl UlpsEq for Isometry3d
Available on crate feature approx only.
impl UlpsEq for Isometry3d
approx only.Source§fn default_max_ulps() -> u32
fn default_max_ulps() -> u32
Source§fn ulps_eq(
&self,
other: &Isometry3d,
epsilon: <Isometry3d as AbsDiffEq>::Epsilon,
max_ulps: u32,
) -> bool
fn ulps_eq( &self, other: &Isometry3d, epsilon: <Isometry3d as AbsDiffEq>::Epsilon, max_ulps: u32, ) -> bool
Auto Trait Implementations§
impl Freeze for Isometry3d
impl RefUnwindSafe for Isometry3d
impl Send for Isometry3d
impl Sync for Isometry3d
impl Unpin for Isometry3d
impl UnsafeUnpin for Isometry3d
impl UnwindSafe for Isometry3d
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
impl<T> Brush for T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ConditionalSend for Twhere
T: Send,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>, which can then be
downcast into Box<dyn 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>, which 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> 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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
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.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> FromTemplate for T
impl<T> FromTemplate for T
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, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T> HitDataExtra for T
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
Source§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
Source§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> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Source§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<G> PatchFromTemplate for Gwhere
G: FromTemplate,
impl<G> PatchFromTemplate for Gwhere
G: FromTemplate,
Source§fn patch<F>(func: F) -> TemplatePatch<F, <G as PatchFromTemplate>::Template>
fn patch<F>(func: F) -> TemplatePatch<F, <G as PatchFromTemplate>::Template>
func, and turns it into a TemplatePatch.Source§impl<T> PatchTemplate for Twhere
T: Template,
impl<T> PatchTemplate for Twhere
T: Template,
Source§fn patch_template<F>(func: F) -> TemplatePatch<F, T>
fn patch_template<F>(func: F) -> TemplatePatch<F, T>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().impl<T> Reflectable for T
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
impl<T> Settings for T
Source§impl<Ret> SpawnIfAsync<(), Ret> for Ret
impl<Ret> SpawnIfAsync<(), Ret> for Ret
Source§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
Source§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Source§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
Source§fn super_into(self) -> O
fn super_into(self) -> O
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T> Template for T
impl<T> Template for T
Source§fn build_template(
&self,
_context: &mut TemplateContext<'_, '_>,
) -> Result<<T as Template>::Output, BevyError>
fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>
entity context to produce a Template::Output.Source§fn clone_template(&self) -> T
fn clone_template(&self) -> T
Clone.Source§impl<T, U> ToSample<U> for Twhere
U: FromSample<T>,
impl<T, U> ToSample<U> for Twhere
U: FromSample<T>,
fn to_sample_(self) -> U
Source§impl<T> TypeData for T
impl<T> TypeData for T
Source§fn clone_type_data(&self) -> Box<dyn TypeData>
fn clone_type_data(&self) -> Box<dyn TypeData>
self.