Skip to main content

Capsule3d

Struct Capsule3d 

Source
pub struct Capsule3d {
    pub radius: f32,
    pub half_length: f32,
}
Expand description

A 3D capsule primitive centered on the origin A three-dimensional capsule is defined as a surface at a distance (radius) from a line

Fields§

§radius: f32

The radius of the capsule

§half_length: f32

Half the height of the capsule, excluding the hemispheres

Implementations§

Source§

impl Capsule3d

Source

pub const fn new(radius: f32, length: f32) -> Capsule3d

Create a new Capsule3d from a radius and length

Examples found in repository?
examples/3d/ssr.rs (line 315)
310fn spawn_capsules(
311    commands: &mut Commands,
312    meshes: &mut Assets<Mesh>,
313    standard_materials: &mut Assets<StandardMaterial>,
314) {
315    let capsule_mesh = meshes.add(Capsule3d::new(0.4, 0.5));
316    let parent = commands
317        .spawn((
318            Transform::from_xyz(0.0, 0.5, 0.0),
319            Visibility::Hidden,
320            CapsulesParent,
321        ))
322        .id();
323
324    for i in 0..5 {
325        let roughness = i as f32 * 0.25;
326        let child = commands
327            .spawn((
328                Mesh3d(capsule_mesh.clone()),
329                MeshMaterial3d(standard_materials.add(StandardMaterial {
330                    base_color: Color::BLACK,
331                    perceptual_roughness: roughness.max(0.08),
332                    ..default()
333                })),
334                Transform::from_xyz(i as f32 * 1.1 - (1.1 * 2.0), 0.5, 0.0),
335                CapsuleModel,
336            ))
337            .id();
338        commands.entity(parent).add_child(child);
339    }
340}
More examples
Hide additional examples
examples/gizmos/3d_gizmos.rs (line 169)
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}
examples/3d/lighting.rs (line 160)
42fn setup(
43    parameters: Res<Parameters>,
44    mut commands: Commands,
45    mut meshes: ResMut<Assets<Mesh>>,
46    mut materials: ResMut<Assets<StandardMaterial>>,
47    asset_server: Res<AssetServer>,
48) {
49    // ground plane
50    commands.spawn((
51        Mesh3d(meshes.add(Plane3d::default().mesh().size(10.0, 10.0))),
52        MeshMaterial3d(materials.add(StandardMaterial {
53            base_color: Color::WHITE,
54            perceptual_roughness: 1.0,
55            ..default()
56        })),
57    ));
58
59    // left wall
60    let mut transform = Transform::from_xyz(2.5, 2.5, 0.0);
61    transform.rotate_z(PI / 2.);
62    commands.spawn((
63        Mesh3d(meshes.add(Cuboid::new(5.0, 0.15, 5.0))),
64        MeshMaterial3d(materials.add(StandardMaterial {
65            base_color: INDIGO.into(),
66            perceptual_roughness: 1.0,
67            ..default()
68        })),
69        transform,
70    ));
71    // back (right) wall
72    let mut transform = Transform::from_xyz(0.0, 2.5, -2.5);
73    transform.rotate_x(PI / 2.);
74    commands.spawn((
75        Mesh3d(meshes.add(Cuboid::new(5.0, 0.15, 5.0))),
76        MeshMaterial3d(materials.add(StandardMaterial {
77            base_color: INDIGO.into(),
78            perceptual_roughness: 1.0,
79            ..default()
80        })),
81        transform,
82    ));
83
84    // Bevy logo to demonstrate alpha mask shadows
85    let mut transform = Transform::from_xyz(-2.2, 0.5, 1.0);
86    transform.rotate_y(PI / 8.);
87    commands.spawn((
88        Mesh3d(meshes.add(Rectangle::new(2.0, 0.5))),
89        MeshMaterial3d(materials.add(StandardMaterial {
90            base_color_texture: Some(asset_server.load("branding/bevy_logo_light.png")),
91            perceptual_roughness: 1.0,
92            alpha_mode: AlphaMode::Mask(0.5),
93            cull_mode: None,
94            ..default()
95        })),
96        transform,
97        Movable,
98    ));
99
100    // cube
101    commands.spawn((
102        Mesh3d(meshes.add(Cuboid::default())),
103        MeshMaterial3d(materials.add(StandardMaterial {
104            base_color: DEEP_PINK.into(),
105            ..default()
106        })),
107        Transform::from_xyz(0.0, 0.5, 0.0),
108        Movable,
109    ));
110    // sphere
111    commands.spawn((
112        Mesh3d(meshes.add(Sphere::new(0.5).mesh().uv(32, 18))),
113        MeshMaterial3d(materials.add(StandardMaterial {
114            base_color: LIMEGREEN.into(),
115            ..default()
116        })),
117        Transform::from_xyz(1.5, 1.0, 1.5),
118        Movable,
119    ));
120
121    // ambient light
122    // ambient lights' brightnesses are measured in candela per meter square, calculable as (color * brightness)
123    commands.insert_resource(GlobalAmbientLight {
124        color: ORANGE_RED.into(),
125        brightness: 200.0,
126        ..default()
127    });
128
129    // red point light
130    commands.spawn((
131        PointLight {
132            intensity: 100_000.0,
133            color: RED.into(),
134            shadow_maps_enabled: true,
135            ..default()
136        },
137        Transform::from_xyz(1.0, 2.0, 0.0),
138        children![(
139            Mesh3d(meshes.add(Sphere::new(0.1).mesh().uv(32, 18))),
140            MeshMaterial3d(materials.add(StandardMaterial {
141                base_color: RED.into(),
142                emissive: LinearRgba::new(4.0, 0.0, 0.0, 0.0),
143                ..default()
144            })),
145        )],
146    ));
147
148    // green spot light
149    commands.spawn((
150        SpotLight {
151            intensity: 100_000.0,
152            color: LIME.into(),
153            shadow_maps_enabled: true,
154            inner_angle: 0.6,
155            outer_angle: 0.8,
156            ..default()
157        },
158        Transform::from_xyz(-1.0, 2.0, 0.0).looking_at(Vec3::new(-1.0, 0.0, 0.0), Vec3::Z),
159        children![(
160            Mesh3d(meshes.add(Capsule3d::new(0.1, 0.125))),
161            MeshMaterial3d(materials.add(StandardMaterial {
162                base_color: LIME.into(),
163                emissive: LinearRgba::new(0.0, 4.0, 0.0, 0.0),
164                ..default()
165            })),
166            Transform::from_rotation(Quat::from_rotation_x(PI / 2.0)),
167        )],
168    ));
169
170    // blue point light
171    commands.spawn((
172        PointLight {
173            intensity: 100_000.0,
174            color: BLUE.into(),
175            shadow_maps_enabled: true,
176            ..default()
177        },
178        Transform::from_xyz(0.0, 4.0, 0.0),
179        children![(
180            Mesh3d(meshes.add(Sphere::new(0.1).mesh().uv(32, 18))),
181            MeshMaterial3d(materials.add(StandardMaterial {
182                base_color: BLUE.into(),
183                emissive: LinearRgba::new(0.0, 0.0, 713.0, 0.0),
184                ..default()
185            })),
186        )],
187    ));
188
189    // directional 'sun' light
190    commands.spawn((
191        DirectionalLight {
192            illuminance: light_consts::lux::OVERCAST_DAY,
193            shadow_maps_enabled: true,
194            ..default()
195        },
196        Transform {
197            translation: Vec3::new(0.0, 2.0, 0.0),
198            rotation: Quat::from_rotation_x(-PI / 4.),
199            ..default()
200        },
201        // The default cascade config is designed to handle large scenes.
202        // As this example has a much smaller world, we can tighten the shadow
203        // bounds for better visual quality.
204        CascadeShadowConfigBuilder {
205            first_cascade_far_bound: 4.0,
206            maximum_distance: 10.0,
207            ..default()
208        }
209        .build(),
210    ));
211
212    // example instructions
213
214    commands.spawn((
215        Text::default(),
216        Node {
217            position_type: PositionType::Absolute,
218            top: px(12),
219            left: px(12),
220            ..default()
221        },
222        children![
223            TextSpan::new("Ambient light is on\n"),
224            TextSpan(format!("Aperture: f/{:.0}\n", parameters.aperture_f_stops,)),
225            TextSpan(format!(
226                "Shutter speed: 1/{:.0}s\n",
227                1.0 / parameters.shutter_speed_s
228            )),
229            TextSpan(format!(
230                "Sensitivity: ISO {:.0}\n",
231                parameters.sensitivity_iso
232            )),
233            TextSpan::new("\n\n"),
234            TextSpan::new("Controls\n"),
235            TextSpan::new("---------------\n"),
236            TextSpan::new("Arrow keys - Move objects\n"),
237            TextSpan::new("Space - Toggle ambient light\n"),
238            TextSpan::new("1/2 - Decrease/Increase aperture\n"),
239            TextSpan::new("3/4 - Decrease/Increase shutter speed\n"),
240            TextSpan::new("5/6 - Decrease/Increase sensitivity\n"),
241            TextSpan::new("R - Reset exposure"),
242        ],
243    ));
244
245    // camera
246    commands.spawn((
247        Camera3d::default(),
248        Transform::from_xyz(-2.0, 2.5, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
249        Exposure::from_physical_camera(**parameters),
250    ));
251}
Source

pub const fn to_cylinder(&self) -> Cylinder

Get the part connecting the hemispherical ends of the capsule as a Cylinder

Trait Implementations§

Source§

impl Bounded3d for Capsule3d

Source§

fn aabb_3d(&self, isometry: impl Into<Isometry3d>) -> Aabb3d

Get an axis-aligned bounding box for the shape translated and rotated by the given isometry.
Source§

fn bounding_sphere(&self, isometry: impl Into<Isometry3d>) -> BoundingSphere

Get a bounding sphere for the shape translated and rotated by the given isometry.
Source§

impl Clone for Capsule3d

Source§

fn clone(&self) -> Capsule3d

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Capsule3d

Source§

impl Debug for Capsule3d

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for Capsule3d

Source§

fn default() -> Capsule3d

Returns the default Capsule3d with a radius of 0.5 and a segment length of 1.0. The total height is 2.0.

Source§

impl<'de> Deserialize<'de> for Capsule3d

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<Capsule3d, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<Capsule3d> for Mesh

Source§

fn from(capsule: Capsule3d) -> Mesh

Converts to this type from the input type.
Source§

impl FromArg for Capsule3d

Source§

type This<'from_arg> = Capsule3d

The type to convert into. Read more
Source§

fn from_arg(arg: Arg<'_>) -> Result<<Capsule3d as FromArg>::This<'_>, ArgError>

Creates an item from an argument. Read more
Source§

impl FromReflect for Capsule3d

Source§

fn from_reflect(reflect: &(dyn PartialReflect + 'static)) -> Option<Capsule3d>

Constructs a concrete instance of Self from a reflected value.
Source§

fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
Source§

impl GetOwnership for Capsule3d

Source§

fn ownership() -> Ownership

Returns the ownership of Self.
Source§

impl GetTypeRegistration for Capsule3d

Source§

fn get_type_registration() -> TypeRegistration

Returns the default TypeRegistration for this type.
Source§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers other types needed by this type. Read more
Source§

impl<Config, Clear> GizmoPrimitive3d<Capsule3d> for GizmoBuffer<Config, Clear>
where Config: GizmoConfigGroup, Clear: 'static + Send + Sync,

Source§

type Output<'a> = Capsule3dBuilder<'a, Config, Clear> where GizmoBuffer<Config, Clear>: 'a

The output of primitive_3d. This is a builder to set non-default values.
Source§

fn primitive_3d( &mut self, primitive: &Capsule3d, isometry: impl Into<Isometry3d>, color: impl Into<Color>, ) -> <GizmoBuffer<Config, Clear> as GizmoPrimitive3d<Capsule3d>>::Output<'_>

Renders a 3D primitive with its associated details.
Source§

impl IntoReturn for Capsule3d

Source§

fn into_return<'into_return>(self) -> Return<'into_return>
where Capsule3d: 'into_return,

Converts Self into a Return value.
Source§

impl Measured3d for Capsule3d

Source§

fn area(&self) -> f32

Get the surface area of the capsule

Source§

fn volume(&self) -> f32

Get the volume of the capsule

Source§

impl Meshable for Capsule3d

Source§

type Output = Capsule3dMeshBuilder

The output of Self::mesh. This will be a MeshBuilder used for creating a Mesh.
Source§

fn mesh(&self) -> <Capsule3d as Meshable>::Output

Creates a Mesh for a shape.
Source§

impl PartialEq for Capsule3d

Source§

fn eq(&self, other: &Capsule3d) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialReflect for Capsule3d

Source§

fn get_represented_type_info(&self) -> Option<&'static TypeInfo>

Returns the TypeInfo of the type represented by this value. Read more
Source§

fn try_apply( &mut self, value: &(dyn PartialReflect + 'static), ) -> Result<(), ApplyError>

Tries to apply a reflected value to this value. Read more
Source§

fn reflect_kind(&self) -> ReflectKind

Returns a zero-sized enumeration of “kinds” of type. Read more
Source§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an immutable enumeration of “kinds” of type. Read more
Source§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
Source§

fn reflect_owned(self: Box<Capsule3d>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
Source§

fn try_into_reflect( self: Box<Capsule3d>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>

Attempts to cast this type to a boxed, fully-reflected value.
Source§

fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>

Attempts to cast this type to a fully-reflected value.
Source§

fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>

Attempts to cast this type to a mutable, fully-reflected value.
Source§

fn into_partial_reflect(self: Box<Capsule3d>) -> Box<dyn PartialReflect>

Casts this type to a boxed, reflected value. Read more
Source§

fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)

Casts this type to a reflected value. Read more
Source§

fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)

Casts this type to a mutable, reflected value. Read more
Source§

fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>

Returns a “partial equality” comparison result. Read more
Source§

fn reflect_partial_cmp( &self, value: &(dyn PartialReflect + 'static), ) -> Option<Ordering>

Returns a “partial comparison” result. Read more
Source§

fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Debug formatter for the value. Read more
Source§

fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>

Attempts to clone Self using reflection. Read more
Source§

fn apply(&mut self, value: &(dyn PartialReflect + 'static))

Applies a reflected value to this value. Read more
Source§

fn to_dynamic(&self) -> Result<Box<dyn PartialReflect>, ReflectCloneError>

Converts this reflected value into its dynamic representation based on its kind. Read more
Source§

fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
where T: 'static, Self: Sized + TypePath,

For a type implementing 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>

Returns a hash of the value (which includes the type). Read more
Source§

fn is_dynamic(&self) -> bool

Indicates whether or not this type is a dynamic type. Read more
Source§

impl Primitive3d for Capsule3d

Source§

impl Reflect for Capsule3d

Source§

fn into_any(self: Box<Capsule3d>) -> Box<dyn Any>

Returns the value as a Box<dyn Any>. Read more
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns the value as a &dyn Any. Read more
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Returns the value as a &mut dyn Any. Read more
Source§

fn into_reflect(self: Box<Capsule3d>) -> Box<dyn Reflect>

Casts this type to a boxed, fully-reflected value.
Source§

fn as_reflect(&self) -> &(dyn Reflect + 'static)

Casts this type to a fully-reflected value.
Source§

fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)

Casts this type to a mutable, fully-reflected value.
Source§

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>

Performs a type-checked assignment of a reflected value to this value. Read more
Source§

impl Serialize for Capsule3d

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ShapeSample for Capsule3d

Source§

type Output = Vec3

The type of vector returned by the sample methods, Vec2 for 2D shapes and Vec3 for 3D shapes.
Source§

fn sample_interior<R>(&self, rng: &mut R) -> Vec3
where R: RngExt + ?Sized,

Uniformly sample a point from inside the area/volume of this shape, centered on 0. Read more
Source§

fn sample_boundary<R>(&self, rng: &mut R) -> Vec3
where R: RngExt + ?Sized,

Uniformly sample a point from the surface of this shape, centered on 0. Read more
Source§

fn interior_dist(self) -> impl Distribution<Self::Output>
where Self: Sized,

Extract a Distribution whose samples are points of this shape’s interior, taken uniformly. Read more
Source§

fn boundary_dist(self) -> impl Distribution<Self::Output>
where Self: Sized,

Extract a Distribution whose samples are points of this shape’s boundary, taken uniformly. Read more
Source§

impl Struct for Capsule3d

Source§

fn field(&self, name: &str) -> Option<&(dyn PartialReflect + 'static)>

Gets a reference to the value of the field named name as a &dyn PartialReflect.
Source§

fn field_mut( &mut self, name: &str, ) -> Option<&mut (dyn PartialReflect + 'static)>

Gets a mutable reference to the value of the field named name as a &mut dyn PartialReflect.
Source§

fn field_at(&self, index: usize) -> Option<&(dyn PartialReflect + 'static)>

Gets a reference to the value of the field with index index as a &dyn PartialReflect.
Source§

fn field_at_mut( &mut self, index: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>

Gets a mutable reference to the value of the field with index index as a &mut dyn PartialReflect.
Source§

fn name_at(&self, index: usize) -> Option<&str>

Gets the name of the field with index index.
Source§

fn index_of_name(&self, name: &str) -> Option<usize>

Gets the index of the field with the given name.
Source§

fn field_len(&self) -> usize

Returns the number of fields in the struct.
Source§

fn iter_fields(&self) -> FieldIter<'_> ⓘ

Returns an iterator over the values of the reflectable fields for this struct.
Source§

fn to_dynamic_struct(&self) -> Result<DynamicStruct, ReflectCloneError>

Creates a new DynamicStruct from this struct. Read more
Source§

fn get_represented_struct_info(&self) -> Option<&'static StructInfo>

Will return None if TypeInfo is not available.
Source§

impl StructuralPartialEq for Capsule3d

Source§

impl TypePath for Capsule3d

Source§

fn type_path() -> &'static str

Returns the fully qualified path of the underlying type. Read more
Source§

fn short_type_path() -> &'static str

Returns a short, pretty-print enabled path to the type. Read more
Source§

fn type_ident() -> Option<&'static str>

Returns the name of the type, or None if it is anonymous. Read more
Source§

fn crate_name() -> Option<&'static str>

Returns the name of the crate the type is in, or None if it is anonymous. Read more
Source§

fn module_path() -> Option<&'static str>

Returns the path to the module the type is in, or None if it is anonymous. Read more
Source§

impl Typed for Capsule3d

Source§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Brush for T
where T: Clone + PartialEq + Default + Debug,

Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts 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>

Converts 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)

Converts &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)

Converts &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 T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

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.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

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

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> DynamicTypePath for T
where T: TypePath,

Source§

impl<T> DynamicTyped for T
where T: Typed,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> FromTemplate for T
where T: Clone + Default + Unpin,

Source§

type Template = T

The Template for this type.
Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

Source§

impl<S> GetField for S
where S: Struct,

Source§

fn get_field<T>(&self, name: &str) -> Option<&T>
where T: Reflect,

Gets a reference to the value of the field named name, downcast to T.
Source§

fn get_field_mut<T>(&mut self, name: &str) -> Option<&mut T>
where T: Reflect,

Gets a mutable reference to the value of the field named name, downcast to T.
Source§

impl<T> GetPath for T
where T: Reflect + ?Sized,

Source§

fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
Source§

fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
Source§

fn path<'p, T>( &self, path: impl ReflectPath<'p>, ) -> Result<&T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
Source§

fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> HitDataExtra for T
where T: Send + Sync + Debug + Any + 'static,

Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> InitializeFromFunction<T> for T

Source§

fn initialize_from_function(f: fn() -> T) -> T

Create an instance of this type from an initialization function
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<T> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
Source§

impl<G> PatchFromTemplate for G
where G: FromTemplate,

Source§

type Template = <G as FromTemplate>::Template

The Template that will be patched.
Source§

fn patch<F>(func: F) -> TemplatePatch<F, <G as PatchFromTemplate>::Template>
where F: FnOnce(&mut <G as PatchFromTemplate>::Template, &mut ResolveContext<'_>),

Takes a “patch function” func, and turns it into a TemplatePatch.
Source§

impl<T> PatchTemplate for T
where T: Template,

Source§

fn patch_template<F>(func: F) -> TemplatePatch<F, T>
where F: FnOnce(&mut T, &mut ResolveContext<'_>),

Takes a “patch function” func that patches this Template, and turns it into a TemplatePatch.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Reflectable for T

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

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

Source§

impl<Ret> SpawnIfAsync<(), Ret> for Ret

Source§

fn spawn(self) -> Ret

Spawn the value into the dioxus runtime if it is an async block
Source§

impl<T, O> SuperFrom<T> for O
where O: From<T>,

Source§

fn super_from(input: T) -> O

Convert from a type to another type.
Source§

impl<T, O, M> SuperInto<O, M> for T
where O: SuperFrom<T, M>,

Source§

fn super_into(self) -> O

Convert from a type to another type.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .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
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .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
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> Template for T
where T: Clone + Unpin,

Source§

type Output = T

The type of value produced by this Template.
Source§

fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>

Uses this template and the given entity context to produce a Template::Output.
Source§

fn clone_template(&self) -> T

Clones this template. See Clone.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn clone_type_data(&self) -> Box<dyn TypeData>

Creates a type-erased clone of self.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more