pub struct RegularPolygon {
pub circumcircle: Circle,
pub sides: u32,
}Expand description
A polygon centered on the origin where all vertices lie on a circle, equally far apart.
Fields§
§circumcircle: CircleThe circumcircle on which all vertices lie
sides: u32The number of sides
Implementations§
Source§impl RegularPolygon
impl RegularPolygon
Sourcepub const fn new(circumradius: f32, sides: u32) -> RegularPolygon
pub const fn new(circumradius: f32, sides: u32) -> RegularPolygon
Create a new RegularPolygon
from the radius of the circumcircle and a number of sides
§Panics
Panics if circumradius is negative
Examples found in repository?
104fn setup_scene(
105 mut commands: Commands,
106 mut meshes: ResMut<Assets<Mesh>>,
107 mut materials: ResMut<Assets<ColorMaterial>>,
108) {
109 commands.spawn(Camera2d);
110
111 let named_shapes = [
112 (Name::new("Annulus"), meshes.add(Annulus::new(25.0, 50.0))),
113 (
114 Name::new("Bestagon"),
115 meshes.add(RegularPolygon::new(50.0, 6)),
116 ),
117 (Name::new("Rhombus"), meshes.add(Rhombus::new(75.0, 100.0))),
118 ];
119 let num_shapes = named_shapes.len();
120
121 for (i, (name, shape)) in named_shapes.into_iter().enumerate() {
122 // Distribute colors evenly across the rainbow.
123 let color = Color::hsl(360. * i as f32 / num_shapes as f32, 0.95, 0.7);
124
125 commands.spawn((
126 name,
127 DisableOnClick,
128 Mesh2d(shape),
129 MeshMaterial2d(materials.add(color)),
130 Transform::from_xyz(
131 // Distribute shapes from -X_EXTENT/2 to +X_EXTENT/2.
132 -X_EXTENT / 2. + i as f32 / (num_shapes - 1) as f32 * X_EXTENT,
133 0.0,
134 0.0,
135 ),
136 ));
137 }
138}More examples
66 pub fn setup(
67 mut commands: Commands,
68 mut meshes: ResMut<Assets<Mesh>>,
69 mut materials: ResMut<Assets<ColorMaterial>>,
70 ) {
71 commands.spawn((Camera2d, DespawnOnExit(super::Scene::Shapes)));
72
73 let shapes = [
74 meshes.add(Circle::new(50.0)),
75 meshes.add(CircularSector::new(50.0, 1.0)),
76 meshes.add(CircularSegment::new(50.0, 1.25)),
77 meshes.add(Ellipse::new(25.0, 50.0)),
78 meshes.add(Annulus::new(25.0, 50.0)),
79 meshes.add(Capsule2d::new(25.0, 50.0)),
80 meshes.add(Rhombus::new(75.0, 100.0)),
81 meshes.add(Rectangle::new(50.0, 100.0)),
82 meshes.add(RegularPolygon::new(50.0, 6)),
83 meshes.add(Triangle2d::new(
84 Vec2::Y * 50.0,
85 Vec2::new(-50.0, -50.0),
86 Vec2::new(50.0, -50.0),
87 )),
88 ];
89 let num_shapes = shapes.len();
90
91 for (i, shape) in shapes.into_iter().enumerate() {
92 // Distribute colors evenly across the rainbow.
93 let color = Color::hsl(360. * i as f32 / num_shapes as f32, 0.95, 0.7);
94
95 commands.spawn((
96 Mesh2d(shape),
97 MeshMaterial2d(materials.add(color)),
98 Transform::from_xyz(
99 // Distribute shapes from -X_EXTENT/2 to +X_EXTENT/2.
100 -X_EXTENT / 2. + i as f32 / (num_shapes - 1) as f32 * X_EXTENT,
101 0.0,
102 0.0,
103 ),
104 DespawnOnExit(super::Scene::Shapes),
105 ));
106 }
107 }
108}
109
110mod bloom {
111 use bevy::{core_pipeline::tonemapping::Tonemapping, post_process::bloom::Bloom, prelude::*};
112
113 pub fn setup(
114 mut commands: Commands,
115 mut meshes: ResMut<Assets<Mesh>>,
116 mut materials: ResMut<Assets<ColorMaterial>>,
117 ) {
118 commands.spawn((
119 Camera2d,
120 Tonemapping::TonyMcMapface,
121 Bloom::default(),
122 DespawnOnExit(super::Scene::Bloom),
123 ));
124
125 commands.spawn((
126 Mesh2d(meshes.add(Circle::new(100.))),
127 MeshMaterial2d(materials.add(Color::srgb(7.5, 0.0, 7.5))),
128 Transform::from_translation(Vec3::new(-200., 0., 0.)),
129 DespawnOnExit(super::Scene::Bloom),
130 ));
131
132 commands.spawn((
133 Mesh2d(meshes.add(RegularPolygon::new(100., 6))),
134 MeshMaterial2d(materials.add(Color::srgb(6.25, 9.4, 9.1))),
135 Transform::from_translation(Vec3::new(200., 0., 0.)),
136 DespawnOnExit(super::Scene::Bloom),
137 ));
138 }202fn setup(mut commands: Commands) {
203 commands.spawn(Camera2d);
204
205 commands.spawn((
206 Transform::from_xyz(-OFFSET_X, OFFSET_Y, 0.),
207 Shape::Circle(Circle::new(45.)),
208 DesiredVolume::Aabb,
209 Intersects::default(),
210 ));
211
212 commands.spawn((
213 Transform::from_xyz(0., OFFSET_Y, 0.),
214 Shape::Rectangle(Rectangle::new(80., 80.)),
215 Spin,
216 DesiredVolume::Circle,
217 Intersects::default(),
218 ));
219
220 commands.spawn((
221 Transform::from_xyz(OFFSET_X, OFFSET_Y, 0.),
222 Shape::Triangle(Triangle2d::new(
223 Vec2::new(-40., -40.),
224 Vec2::new(-20., 40.),
225 Vec2::new(40., 50.),
226 )),
227 Spin,
228 DesiredVolume::Aabb,
229 Intersects::default(),
230 ));
231
232 commands.spawn((
233 Transform::from_xyz(-OFFSET_X, -OFFSET_Y, 0.),
234 Shape::Line(Segment2d::from_direction_and_length(
235 Dir2::from_xy(1., 0.3).unwrap(),
236 90.,
237 )),
238 Spin,
239 DesiredVolume::Circle,
240 Intersects::default(),
241 ));
242
243 commands.spawn((
244 Transform::from_xyz(0., -OFFSET_Y, 0.),
245 Shape::Capsule(Capsule2d::new(25., 50.)),
246 Spin,
247 DesiredVolume::Aabb,
248 Intersects::default(),
249 ));
250
251 commands.spawn((
252 Transform::from_xyz(OFFSET_X, -OFFSET_Y, 0.),
253 Shape::Polygon(RegularPolygon::new(50., 6)),
254 Spin,
255 DesiredVolume::Circle,
256 Intersects::default(),
257 ));
258
259 commands.spawn((
260 Text::default(),
261 Node {
262 position_type: PositionType::Absolute,
263 top: px(12),
264 left: px(12),
265 ..default()
266 },
267 ));
268}17fn setup(
18 mut commands: Commands,
19 mut meshes: ResMut<Assets<Mesh>>,
20 mut materials: ResMut<Assets<ColorMaterial>>,
21 asset_server: Res<AssetServer>,
22) {
23 commands.spawn((
24 Camera2d,
25 Camera {
26 clear_color: ClearColorConfig::Custom(Color::BLACK),
27 ..default()
28 },
29 Tonemapping::TonyMcMapface, // 1. Using a tonemapper that desaturates to white is recommended
30 Bloom::default(), // 2. Enable bloom for the camera
31 DebandDither::Enabled, // Optional: bloom causes gradients which cause banding
32 ));
33
34 // Sprite
35 commands.spawn(Sprite {
36 image: asset_server.load("branding/bevy_bird_dark.png"),
37 color: Color::srgb(5.0, 5.0, 5.0), // 3. Put something bright in a dark environment to see the effect
38 custom_size: Some(Vec2::splat(160.0)),
39 ..default()
40 });
41
42 // Circle mesh
43 commands.spawn((
44 Mesh2d(meshes.add(Circle::new(100.))),
45 // 3. Put something bright in a dark environment to see the effect
46 MeshMaterial2d(materials.add(Color::srgb(7.5, 0.0, 7.5))),
47 Transform::from_translation(Vec3::new(-200., 0., 0.)),
48 ));
49
50 // Hexagon mesh
51 commands.spawn((
52 Mesh2d(meshes.add(RegularPolygon::new(100., 6))),
53 // 3. Put something bright in a dark environment to see the effect
54 MeshMaterial2d(materials.add(Color::srgb(6.25, 9.4, 9.1))),
55 Transform::from_translation(Vec3::new(200., 0., 0.)),
56 ));
57
58 // UI
59 commands.spawn((
60 Text::default(),
61 Node {
62 position_type: PositionType::Absolute,
63 top: px(12),
64 left: px(12),
65 ..default()
66 },
67 ));
68}35fn setup(
36 mut commands: Commands,
37 mut meshes: ResMut<Assets<Mesh>>,
38 mut materials: ResMut<Assets<ColorMaterial>>,
39) {
40 commands.spawn(Camera2d);
41
42 let shapes = [
43 meshes.add(Circle::new(50.0)),
44 meshes.add(CircularSector::new(50.0, 1.0)),
45 meshes.add(CircularSegment::new(50.0, 1.25)),
46 meshes.add(Ellipse::new(25.0, 50.0)),
47 meshes.add(Annulus::new(25.0, 50.0)),
48 meshes.add(Capsule2d::new(25.0, 50.0)),
49 meshes.add(Rhombus::new(75.0, 100.0)),
50 meshes.add(Rectangle::new(50.0, 100.0)),
51 meshes.add(RegularPolygon::new(50.0, 6)),
52 meshes.add(Triangle2d::new(
53 Vec2::Y * 50.0,
54 Vec2::new(-50.0, -50.0),
55 Vec2::new(50.0, -50.0),
56 )),
57 meshes.add(Segment2d::new(
58 Vec2::new(-50.0, 50.0),
59 Vec2::new(50.0, -50.0),
60 )),
61 meshes.add(Polyline2d::new(vec![
62 Vec2::new(-50.0, 50.0),
63 Vec2::new(0.0, -50.0),
64 Vec2::new(50.0, 50.0),
65 ])),
66 ];
67 let num_shapes = shapes.len();
68
69 for (i, shape) in shapes.into_iter().enumerate() {
70 // Distribute colors evenly across the rainbow.
71 let color = Color::hsl(360. * i as f32 / num_shapes as f32, 0.95, 0.7);
72
73 commands.spawn((
74 Mesh2d(shape),
75 MeshMaterial2d(materials.add(color)),
76 Transform::from_xyz(
77 // Distribute shapes from -X_EXTENT/2 to +X_EXTENT/2.
78 -X_EXTENT / 2. + i as f32 / (num_shapes - 1) as f32 * X_EXTENT,
79 0.0,
80 0.0,
81 ),
82 ));
83 }
84
85 #[cfg(not(target_arch = "wasm32"))]
86 commands.spawn((
87 Text::new("Press space to toggle wireframes"),
88 Node {
89 position_type: PositionType::Absolute,
90 top: px(12),
91 left: px(12),
92 ..default()
93 },
94 ));
95}Sourcepub const fn circumradius(&self) -> f32
pub const fn circumradius(&self) -> f32
Get the radius of the circumcircle on which all vertices of the regular polygon lie
Sourcepub fn inradius(&self) -> f32
pub fn inradius(&self) -> f32
Get the inradius or apothem of the regular polygon. This is the radius of the largest circle that can be drawn within the polygon
Sourcepub fn side_length(&self) -> f32
pub fn side_length(&self) -> f32
Get the length of one side of the regular polygon
Sourcepub const fn internal_angle_degrees(&self) -> f32
pub const fn internal_angle_degrees(&self) -> f32
Get the internal angle of the regular polygon in degrees.
This is the angle formed by two adjacent sides with points within the angle being in the interior of the polygon
Sourcepub const fn internal_angle_radians(&self) -> f32
pub const fn internal_angle_radians(&self) -> f32
Get the internal angle of the regular polygon in radians.
This is the angle formed by two adjacent sides with points within the angle being in the interior of the polygon
Sourcepub const fn external_angle_degrees(&self) -> f32
pub const fn external_angle_degrees(&self) -> f32
Get the external angle of the regular polygon in degrees.
This is the angle formed by two adjacent sides with points within the angle being in the exterior of the polygon
Sourcepub const fn external_angle_radians(&self) -> f32
pub const fn external_angle_radians(&self) -> f32
Get the external angle of the regular polygon in radians.
This is the angle formed by two adjacent sides with points within the angle being in the exterior of the polygon
Sourcepub fn vertices(self, rotation: f32) -> impl IntoIterator<Item = Vec2>
pub fn vertices(self, rotation: f32) -> impl IntoIterator<Item = Vec2>
Returns an iterator over the vertices of the regular polygon, rotated counterclockwise by the given angle in radians.
With a rotation of 0, a vertex will be placed at the top (0.0, circumradius).
Trait Implementations§
Source§impl Bounded2d for RegularPolygon
impl Bounded2d for RegularPolygon
Source§fn aabb_2d(&self, isometry: impl Into<Isometry2d>) -> Aabb2d
fn aabb_2d(&self, isometry: impl Into<Isometry2d>) -> Aabb2d
Source§fn bounding_circle(&self, isometry: impl Into<Isometry2d>) -> BoundingCircle
fn bounding_circle(&self, isometry: impl Into<Isometry2d>) -> BoundingCircle
Source§impl BoundedExtrusion for RegularPolygon
impl BoundedExtrusion for RegularPolygon
Source§fn extrusion_aabb_3d(
&self,
half_depth: f32,
isometry: impl Into<Isometry3d>,
) -> Aabb3d
fn extrusion_aabb_3d( &self, half_depth: f32, isometry: impl Into<Isometry3d>, ) -> Aabb3d
half_depth, transformed by the given translation and rotation.Source§fn extrusion_bounding_sphere(
&self,
half_depth: f32,
isometry: impl Into<Isometry3d>,
) -> BoundingSphere
fn extrusion_bounding_sphere( &self, half_depth: f32, isometry: impl Into<Isometry3d>, ) -> BoundingSphere
base_shape with the given half_depth with the given translation and rotationSource§impl Clone for RegularPolygon
impl Clone for RegularPolygon
Source§fn clone(&self) -> RegularPolygon
fn clone(&self) -> RegularPolygon
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RegularPolygon
impl Debug for RegularPolygon
Source§impl Default for RegularPolygon
impl Default for RegularPolygon
Source§fn default() -> RegularPolygon
fn default() -> RegularPolygon
Returns the default RegularPolygon with six sides (a hexagon) and a circumradius of 0.5.
Source§impl<'de> Deserialize<'de> for RegularPolygon
impl<'de> Deserialize<'de> for RegularPolygon
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RegularPolygon, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RegularPolygon, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<RegularPolygon> for Mesh
impl From<RegularPolygon> for Mesh
Source§fn from(polygon: RegularPolygon) -> Mesh
fn from(polygon: RegularPolygon) -> Mesh
Source§impl FromArg for RegularPolygon
impl FromArg for RegularPolygon
Source§impl FromReflect for RegularPolygon
impl FromReflect for RegularPolygon
Source§fn from_reflect(
reflect: &(dyn PartialReflect + 'static),
) -> Option<RegularPolygon>
fn from_reflect( reflect: &(dyn PartialReflect + 'static), ) -> Option<RegularPolygon>
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 RegularPolygon
impl GetOwnership for RegularPolygon
Source§impl GetTypeRegistration for RegularPolygon
impl GetTypeRegistration for RegularPolygon
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<Config, Clear> GizmoPrimitive2d<RegularPolygon> for GizmoBuffer<Config, Clear>
impl<Config, Clear> GizmoPrimitive2d<RegularPolygon> for GizmoBuffer<Config, Clear>
Source§type Output<'a> = ()
where
GizmoBuffer<Config, Clear>: 'a
type Output<'a> = () where GizmoBuffer<Config, Clear>: 'a
primitive_2d. This is a builder to set non-default values.Source§fn primitive_2d(
&mut self,
primitive: &RegularPolygon,
isometry: impl Into<Isometry2d>,
color: impl Into<Color>,
) -> <GizmoBuffer<Config, Clear> as GizmoPrimitive2d<RegularPolygon>>::Output<'_>
fn primitive_2d( &mut self, primitive: &RegularPolygon, isometry: impl Into<Isometry2d>, color: impl Into<Color>, ) -> <GizmoBuffer<Config, Clear> as GizmoPrimitive2d<RegularPolygon>>::Output<'_>
Source§impl IntoReturn for RegularPolygon
impl IntoReturn for RegularPolygon
Source§fn into_return<'into_return>(self) -> Return<'into_return>where
RegularPolygon: 'into_return,
fn into_return<'into_return>(self) -> Return<'into_return>where
RegularPolygon: 'into_return,
Source§impl Measured2d for RegularPolygon
impl Measured2d for RegularPolygon
Source§impl Meshable for RegularPolygon
impl Meshable for RegularPolygon
Source§impl PartialEq for RegularPolygon
impl PartialEq for RegularPolygon
Source§impl PartialReflect for RegularPolygon
impl PartialReflect for RegularPolygon
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<RegularPolygon>) -> ReflectOwned
fn reflect_owned(self: Box<RegularPolygon>) -> ReflectOwned
Source§fn try_into_reflect(
self: Box<RegularPolygon>,
) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>
fn try_into_reflect( self: Box<RegularPolygon>, ) -> 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<RegularPolygon>) -> Box<dyn PartialReflect>
fn into_partial_reflect(self: Box<RegularPolygon>) -> 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 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) -> Box<dyn PartialReflect>
fn to_dynamic(&self) -> Box<dyn PartialReflect>
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. Read moreSource§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 RegularPolygon
impl Reflect for RegularPolygon
Source§fn into_any(self: Box<RegularPolygon>) -> Box<dyn Any>
fn into_any(self: Box<RegularPolygon>) -> 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<RegularPolygon>) -> Box<dyn Reflect>
fn into_reflect(self: Box<RegularPolygon>) -> 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 Serialize for RegularPolygon
impl Serialize for RegularPolygon
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 RegularPolygon
impl Struct for RegularPolygon
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 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 to_dynamic_struct(&self) -> DynamicStruct
fn to_dynamic_struct(&self) -> DynamicStruct
DynamicStruct from this struct.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 RegularPolygon
impl TypePath for RegularPolygon
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 RegularPolygon
impl Typed for RegularPolygon
impl Copy for RegularPolygon
impl Primitive2d for RegularPolygon
impl StructuralPartialEq for RegularPolygon
Auto Trait Implementations§
impl Freeze for RegularPolygon
impl RefUnwindSafe for RegularPolygon
impl Send for RegularPolygon
impl Sync for RegularPolygon
impl Unpin for RegularPolygon
impl UnwindSafe for RegularPolygon
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
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> 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> 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,
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<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.Source§impl<T> Pointable for T
impl<T> Pointable for T
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().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>
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.