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
121 pub fn setup(
122 mut commands: Commands,
123 mut meshes: ResMut<Assets<Mesh>>,
124 mut materials: ResMut<Assets<ColorMaterial>>,
125 ) {
126 commands.spawn((Camera2d, DespawnOnExit(super::Scene::Shapes)));
127
128 let shapes = [
129 meshes.add(Circle::new(50.0)),
130 meshes.add(CircularSector::new(50.0, 1.0)),
131 meshes.add(CircularSegment::new(50.0, 1.25)),
132 meshes.add(Ellipse::new(25.0, 50.0)),
133 meshes.add(Annulus::new(25.0, 50.0)),
134 meshes.add(Capsule2d::new(25.0, 50.0)),
135 meshes.add(Rhombus::new(75.0, 100.0)),
136 meshes.add(Rectangle::new(50.0, 100.0)),
137 meshes.add(RegularPolygon::new(50.0, 6)),
138 meshes.add(Triangle2d::new(
139 Vec2::Y * 50.0,
140 Vec2::new(-50.0, -50.0),
141 Vec2::new(50.0, -50.0),
142 )),
143 ];
144 let num_shapes = shapes.len();
145
146 for (i, shape) in shapes.into_iter().enumerate() {
147 // Distribute colors evenly across the rainbow.
148 let color = Color::hsl(360. * i as f32 / num_shapes as f32, 0.95, 0.7);
149
150 commands.spawn((
151 Mesh2d(shape),
152 MeshMaterial2d(materials.add(color)),
153 Transform::from_xyz(
154 // Distribute shapes from -X_EXTENT/2 to +X_EXTENT/2.
155 -X_EXTENT / 2. + i as f32 / (num_shapes - 1) as f32 * X_EXTENT,
156 0.0,
157 0.0,
158 ),
159 DespawnOnExit(super::Scene::Shapes),
160 ));
161 }
162 }
163}
164
165mod bloom {
166 use bevy::{core_pipeline::tonemapping::Tonemapping, post_process::bloom::Bloom, prelude::*};
167
168 pub fn setup(
169 mut commands: Commands,
170 mut meshes: ResMut<Assets<Mesh>>,
171 mut materials: ResMut<Assets<ColorMaterial>>,
172 ) {
173 commands.spawn((
174 Camera2d,
175 Tonemapping::TonyMcMapface,
176 Bloom::default(),
177 DespawnOnExit(super::Scene::Bloom),
178 ));
179
180 commands.spawn((
181 Mesh2d(meshes.add(Circle::new(100.))),
182 MeshMaterial2d(materials.add(Color::srgb(7.5, 0.0, 7.5))),
183 Transform::from_translation(Vec3::new(-200., 0., 0.)),
184 DespawnOnExit(super::Scene::Bloom),
185 ));
186
187 commands.spawn((
188 Mesh2d(meshes.add(RegularPolygon::new(100., 6))),
189 MeshMaterial2d(materials.add(Color::srgb(6.25, 9.4, 9.1))),
190 Transform::from_translation(Vec3::new(200., 0., 0.)),
191 DespawnOnExit(super::Scene::Bloom),
192 ));
193 }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}68fn setup(
69 mut commands: Commands,
70 mut meshes: ResMut<Assets<Mesh>>,
71 mut materials: ResMut<Assets<ColorMaterial>>,
72) {
73 commands.spawn(Camera2d);
74
75 let shapes = [
76 meshes.add(Circle::new(50.0)),
77 meshes.add(CircularSector::new(50.0, 1.0)),
78 meshes.add(CircularSegment::new(50.0, 1.25)),
79 meshes.add(Ellipse::new(25.0, 50.0)),
80 meshes.add(Annulus::new(25.0, 50.0)),
81 meshes.add(Capsule2d::new(25.0, 50.0)),
82 meshes.add(Rhombus::new(75.0, 100.0)),
83 meshes.add(Rectangle::new(50.0, 100.0)),
84 meshes.add(RegularPolygon::new(50.0, 6)),
85 meshes.add(Triangle2d::new(
86 Vec2::Y * 50.0,
87 Vec2::new(-50.0, -50.0),
88 Vec2::new(50.0, -50.0),
89 )),
90 meshes.add(Segment2d::new(
91 Vec2::new(-50.0, 50.0),
92 Vec2::new(50.0, -50.0),
93 )),
94 meshes.add(Polyline2d::new(vec![
95 Vec2::new(-50.0, 50.0),
96 Vec2::new(0.0, -50.0),
97 Vec2::new(50.0, 50.0),
98 ])),
99 ];
100 let num_shapes = shapes.len();
101
102 for (i, shape) in shapes.into_iter().enumerate() {
103 // Distribute colors evenly across the rainbow.
104 let color = Color::hsl(360. * i as f32 / num_shapes as f32, 0.95, 0.7);
105
106 commands.spawn((
107 Mesh2d(shape),
108 MeshMaterial2d(materials.add(color)),
109 Transform::from_xyz(
110 // Distribute shapes from -X_EXTENT/2 to +X_EXTENT/2.
111 -X_EXTENT / 2. + i as f32 / (num_shapes - 1) as f32 * X_EXTENT,
112 Y_EXTENT / 2.,
113 0.0,
114 ),
115 ));
116 }
117
118 let rings = [
119 meshes.add(Circle::new(50.0).to_ring(THICKNESS)),
120 // this visually produces an arc segment but this is not technically accurate
121 meshes.add(Ring::new(
122 CircularSector::new(50.0, 1.0),
123 CircularSector::new(45.0, 1.0),
124 )),
125 meshes.add(CircularSegment::new(50.0, 1.25).to_ring(THICKNESS)),
126 meshes.add({
127 // This is an approximation; Ellipse does not implement Inset as concentric ellipses do not have parallel curves
128 let outer = Ellipse::new(25.0, 50.0);
129 let mut inner = outer;
130 inner.half_size -= Vec2::splat(THICKNESS);
131 Ring::new(outer, inner)
132 }),
133 // this is equivalent to the Annulus::new(25.0, 50.0) above
134 meshes.add(Ring::new(Circle::new(50.0), Circle::new(25.0))),
135 meshes.add(Capsule2d::new(25.0, 50.0).to_ring(THICKNESS)),
136 meshes.add(Rhombus::new(75.0, 100.0).to_ring(THICKNESS)),
137 meshes.add(Rectangle::new(50.0, 100.0).to_ring(THICKNESS)),
138 meshes.add(RegularPolygon::new(50.0, 6).to_ring(THICKNESS)),
139 meshes.add(
140 Triangle2d::new(
141 Vec2::Y * 50.0,
142 Vec2::new(-50.0, -50.0),
143 Vec2::new(50.0, -50.0),
144 )
145 .to_ring(THICKNESS),
146 ),
147 ];
148 // Allow for 2 empty spaces
149 let num_rings = rings.len() + 2;
150
151 for (i, shape) in rings.into_iter().enumerate() {
152 // Distribute colors evenly across the rainbow.
153 let color = Color::hsl(360. * i as f32 / num_rings as f32, 0.95, 0.7);
154
155 commands.spawn((
156 Mesh2d(shape),
157 MeshMaterial2d(materials.add(color)),
158 Transform::from_xyz(
159 // Distribute shapes from -X_EXTENT/2 to +X_EXTENT/2.
160 -X_EXTENT / 2. + i as f32 / (num_rings - 1) as f32 * X_EXTENT,
161 -Y_EXTENT / 2.,
162 0.0,
163 ),
164 ));
165 }
166 spawn_buttons(&mut commands);
167}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 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RegularPolygon
Source§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 Inset for RegularPolygon
impl Inset for RegularPolygon
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 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
impl Primitive2d for RegularPolygon
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 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 RegularPolygon
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>
Auto Trait Implementations§
impl Freeze for RegularPolygon
impl RefUnwindSafe for RegularPolygon
impl Send for RegularPolygon
impl Sync for RegularPolygon
impl Unpin for RegularPolygon
impl UnsafeUnpin 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
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.