Struct bevy_gizmos::gizmos::Gizmos

source ·
pub struct Gizmos<'w, 's, T: GizmoConfigGroup = DefaultGizmoConfigGroup> {
    pub config: &'w GizmoConfig,
    pub config_ext: &'w T,
    /* private fields */
}
Expand description

A SystemParam for drawing gizmos.

They are drawn in immediate mode, which means they will be rendered only for the frames in which they are spawned. Gizmos should be spawned before the Last schedule to ensure they are drawn.

Fields§

§config: &'w GizmoConfig

The currently used GizmoConfig

§config_ext: &'w T

The currently used GizmoConfigGroup

Implementations§

source§

impl<'w, 's, T: GizmoConfigGroup> Gizmos<'w, 's, T>

source

pub fn arc_2d( &mut self, position: Vec2, direction_angle: f32, arc_angle: f32, radius: f32, color: Color ) -> Arc2dBuilder<'_, 'w, 's, T>

Draw an arc, which is a part of the circumference of a circle, in 2D.

This should be called for each frame the arc needs to be rendered.

§Arguments
  • position sets the center of this circle.
  • radius controls the distance from position to this arc, and thus its curvature.
  • direction_angle sets the clockwise angle in radians between Vec2::Y and the vector from position to the midpoint of the arc.
  • arc_angle sets the length of this arc, in radians.
§Example
fn system(mut gizmos: Gizmos) {
    gizmos.arc_2d(Vec2::ZERO, 0., PI / 4., 1., Color::GREEN);

    // Arcs have 32 line-segments by default.
    // You may want to increase this for larger arcs.
    gizmos
        .arc_2d(Vec2::ZERO, 0., PI / 4., 5., Color::RED)
        .segments(64);
}
source§

impl<'w, 's, T: GizmoConfigGroup> Gizmos<'w, 's, T>

source

pub fn arc_3d( &mut self, angle: f32, radius: f32, position: Vec3, rotation: Quat, color: Color ) -> Arc3dBuilder<'_, 'w, 's, T>

Draw an arc, which is a part of the circumference of a circle, in 3D. For default values this is drawing a standard arc. A standard arc is defined as

  • an arc with a center at Vec3::ZERO
  • starting at Vec3::X
  • embedded in the XZ plane
  • rotates counterclockwise

This should be called for each frame the arc needs to be rendered.

§Arguments
  • angle: sets how much of a circle circumference is passed, e.g. PI is half a circle. This value should be in the range (-2 * PI..=2 * PI)
  • radius: distance between the arc and it’s center point
  • position: position of the arcs center point
  • rotation: defines orientation of the arc, by default we assume the arc is contained in a plane parallel to the XZ plane and the default starting point is (position + Vec3::X)
  • color: color of the arc
§Builder methods

The number of segments of the arc (i.e. the level of detail) can be adjusted with the .segments(...) method.

§Example
fn system(mut gizmos: Gizmos) {
    // rotation rotates normal to point in the direction of `Vec3::NEG_ONE`
    let rotation = Quat::from_rotation_arc(Vec3::Y, Vec3::NEG_ONE.normalize());

    gizmos
       .arc_3d(
         270.0_f32.to_radians(),
         0.25,
         Vec3::ONE,
         rotation,
         Color::ORANGE
         )
         .segments(100);
}
source

pub fn short_arc_3d_between( &mut self, center: Vec3, from: Vec3, to: Vec3, color: Color ) -> Arc3dBuilder<'_, 'w, 's, T>

Draws the shortest arc between two points (from and to) relative to a specified center point.

§Arguments
  • center: The center point around which the arc is drawn.
  • from: The starting point of the arc.
  • to: The ending point of the arc.
  • color: color of the arc
§Builder methods

The number of segments of the arc (i.e. the level of detail) can be adjusted with the .segments(...) method.

§Examples
fn system(mut gizmos: Gizmos) {
    gizmos.short_arc_3d_between(
       Vec3::ONE,
       Vec3::ONE + Vec3::NEG_ONE,
       Vec3::ZERO,
       Color::ORANGE
       )
       .segments(100);
}
§Notes
  • This method assumes that the points from and to are distinct from center. If one of the points is coincident with center, nothing is rendered.
  • The arc is drawn as a portion of a circle with a radius equal to the distance from the center to from. If the distance from center to to is not equal to the radius, then the results will behave as if this were the case
source

pub fn long_arc_3d_between( &mut self, center: Vec3, from: Vec3, to: Vec3, color: Color ) -> Arc3dBuilder<'_, 'w, 's, T>

Draws the longest arc between two points (from and to) relative to a specified center point.

§Arguments
  • center: The center point around which the arc is drawn.
  • from: The starting point of the arc.
  • to: The ending point of the arc.
  • color: color of the arc
§Builder methods

The number of segments of the arc (i.e. the level of detail) can be adjusted with the .segments(...) method.

§Examples
fn system(mut gizmos: Gizmos) {
    gizmos.long_arc_3d_between(
       Vec3::ONE,
       Vec3::ONE + Vec3::NEG_ONE,
       Vec3::ZERO,
       Color::ORANGE
       )
       .segments(100);
}
§Notes
  • This method assumes that the points from and to are distinct from center. If one of the points is coincident with center, nothing is rendered.
  • The arc is drawn as a portion of a circle with a radius equal to the distance from the center to from. If the distance from center to to is not equal to the radius, then the results will behave as if this were the case.
source§

impl<'w, 's, T: GizmoConfigGroup> Gizmos<'w, 's, T>

source

pub fn arrow( &mut self, start: Vec3, end: Vec3, color: Color ) -> ArrowBuilder<'_, 'w, 's, T>

Draw an arrow in 3D, from start to end. Has four tips for convenient viewing from any direction.

This should be called for each frame the arrow needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.arrow(Vec3::ZERO, Vec3::ONE, Color::GREEN);
}
source

pub fn arrow_2d( &mut self, start: Vec2, end: Vec2, color: Color ) -> ArrowBuilder<'_, 'w, 's, T>

Draw an arrow in 2D (on the xy plane), from start to end.

This should be called for each frame the arrow needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.arrow_2d(Vec2::ZERO, Vec2::X, Color::GREEN);
}
source§

impl<'w, 's, T: GizmoConfigGroup> Gizmos<'w, 's, T>

source

pub fn ellipse( &mut self, position: Vec3, rotation: Quat, half_size: Vec2, color: Color ) -> EllipseBuilder<'_, 'w, 's, T>

Draw an ellipse in 3D at position with the flat side facing normal.

This should be called for each frame the ellipse needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.ellipse(Vec3::ZERO, Quat::IDENTITY, Vec2::new(1., 2.), Color::GREEN);

    // Ellipses have 32 line-segments by default.
    // You may want to increase this for larger ellipses.
    gizmos
        .ellipse(Vec3::ZERO, Quat::IDENTITY, Vec2::new(5., 1.), Color::RED)
        .segments(64);
}
source

pub fn ellipse_2d( &mut self, position: Vec2, angle: f32, half_size: Vec2, color: Color ) -> Ellipse2dBuilder<'_, 'w, 's, T>

Draw an ellipse in 2D.

This should be called for each frame the ellipse needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.ellipse_2d(Vec2::ZERO, 180.0_f32.to_radians(), Vec2::new(2., 1.), Color::GREEN);

    // Ellipses have 32 line-segments by default.
    // You may want to increase this for larger ellipses.
    gizmos
        .ellipse_2d(Vec2::ZERO, 180.0_f32.to_radians(), Vec2::new(5., 1.), Color::RED)
        .segments(64);
}
source

pub fn circle( &mut self, position: Vec3, normal: Direction3d, radius: f32, color: Color ) -> EllipseBuilder<'_, 'w, 's, T>

Draw a circle in 3D at position with the flat side facing normal.

This should be called for each frame the circle needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.circle(Vec3::ZERO, Direction3d::Z, 1., Color::GREEN);

    // Circles have 32 line-segments by default.
    // You may want to increase this for larger circles.
    gizmos
        .circle(Vec3::ZERO, Direction3d::Z, 5., Color::RED)
        .segments(64);
}
source

pub fn circle_2d( &mut self, position: Vec2, radius: f32, color: Color ) -> Ellipse2dBuilder<'_, 'w, 's, T>

Draw a circle in 2D.

This should be called for each frame the circle needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.circle_2d(Vec2::ZERO, 1., Color::GREEN);

    // Circles have 32 line-segments by default.
    // You may want to increase this for larger circles.
    gizmos
        .circle_2d(Vec2::ZERO, 5., Color::RED)
        .segments(64);
}
source§

impl<'w, 's, T: GizmoConfigGroup> Gizmos<'w, 's, T>

source

pub fn line(&mut self, start: Vec3, end: Vec3, color: Color)

Draw a line in 3D from start to end.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.line(Vec3::ZERO, Vec3::X, Color::GREEN);
}
source

pub fn line_gradient( &mut self, start: Vec3, end: Vec3, start_color: Color, end_color: Color )

Draw a line in 3D with a color gradient from start to end.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.line_gradient(Vec3::ZERO, Vec3::X, Color::GREEN, Color::RED);
}
source

pub fn ray(&mut self, start: Vec3, vector: Vec3, color: Color)

Draw a line in 3D from start to start + vector.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.ray(Vec3::Y, Vec3::X, Color::GREEN);
}
source

pub fn ray_gradient( &mut self, start: Vec3, vector: Vec3, start_color: Color, end_color: Color )

Draw a line in 3D with a color gradient from start to start + vector.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.ray_gradient(Vec3::Y, Vec3::X, Color::GREEN, Color::RED);
}
source

pub fn linestrip( &mut self, positions: impl IntoIterator<Item = Vec3>, color: Color )

Draw a line in 3D made of straight segments between the points.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.linestrip([Vec3::ZERO, Vec3::X, Vec3::Y], Color::GREEN);
}
source

pub fn linestrip_gradient( &mut self, points: impl IntoIterator<Item = (Vec3, Color)> )

Draw a line in 3D made of straight segments between the points, with a color gradient.

This should be called for each frame the lines need to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.linestrip_gradient([
        (Vec3::ZERO, Color::GREEN),
        (Vec3::X, Color::RED),
        (Vec3::Y, Color::BLUE)
    ]);
}
source

pub fn sphere( &mut self, position: Vec3, rotation: Quat, radius: f32, color: Color ) -> SphereBuilder<'_, 'w, 's, T>

Draw a wireframe sphere in 3D made out of 3 circles around the axes.

This should be called for each frame the sphere needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.sphere(Vec3::ZERO, Quat::IDENTITY, 1., Color::BLACK);

    // Each circle has 32 line-segments by default.
    // You may want to increase this for larger spheres.
    gizmos
        .sphere(Vec3::ZERO, Quat::IDENTITY, 5., Color::BLACK)
        .circle_segments(64);
}
source

pub fn rect(&mut self, position: Vec3, rotation: Quat, size: Vec2, color: Color)

Draw a wireframe rectangle in 3D.

This should be called for each frame the rectangle needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.rect(Vec3::ZERO, Quat::IDENTITY, Vec2::ONE, Color::GREEN);
}
source

pub fn cuboid(&mut self, transform: impl TransformPoint, color: Color)

Draw a wireframe cube in 3D.

This should be called for each frame the cube needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.cuboid(Transform::IDENTITY, Color::GREEN);
}
source

pub fn line_2d(&mut self, start: Vec2, end: Vec2, color: Color)

Draw a line in 2D from start to end.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.line_2d(Vec2::ZERO, Vec2::X, Color::GREEN);
}
source

pub fn line_gradient_2d( &mut self, start: Vec2, end: Vec2, start_color: Color, end_color: Color )

Draw a line in 2D with a color gradient from start to end.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.line_gradient_2d(Vec2::ZERO, Vec2::X, Color::GREEN, Color::RED);
}
source

pub fn linestrip_2d( &mut self, positions: impl IntoIterator<Item = Vec2>, color: Color )

Draw a line in 2D made of straight segments between the points.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.linestrip_2d([Vec2::ZERO, Vec2::X, Vec2::Y], Color::GREEN);
}
source

pub fn linestrip_gradient_2d( &mut self, positions: impl IntoIterator<Item = (Vec2, Color)> )

Draw a line in 2D made of straight segments between the points, with a color gradient.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.linestrip_gradient_2d([
        (Vec2::ZERO, Color::GREEN),
        (Vec2::X, Color::RED),
        (Vec2::Y, Color::BLUE)
    ]);
}
source

pub fn ray_2d(&mut self, start: Vec2, vector: Vec2, color: Color)

Draw a line in 2D from start to start + vector.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.ray_2d(Vec2::Y, Vec2::X, Color::GREEN);
}
source

pub fn ray_gradient_2d( &mut self, start: Vec2, vector: Vec2, start_color: Color, end_color: Color )

Draw a line in 2D with a color gradient from start to start + vector.

This should be called for each frame the line needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.line_gradient(Vec3::Y, Vec3::X, Color::GREEN, Color::RED);
}
source

pub fn rect_2d( &mut self, position: Vec2, rotation: f32, size: Vec2, color: Color )

Draw a wireframe rectangle in 2D.

This should be called for each frame the rectangle needs to be rendered.

§Example
fn system(mut gizmos: Gizmos) {
    gizmos.rect_2d(Vec2::ZERO, 0., Vec2::ONE, Color::GREEN);
}

Trait Implementations§

source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<BoxedPolygon> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: BoxedPolygon, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<BoxedPolyline2d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: BoxedPolyline2d, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Capsule2d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Capsule2d, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Circle> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Circle, position: Vec2, _angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Direction2d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Direction2d, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Ellipse> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Ellipse, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Line2d> for Gizmos<'w, 's, T>

§

type Output<'a> = Line2dBuilder<'a, 'w, 's, T> where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Line2d, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Plane2d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Plane2d, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, const N: usize, T: GizmoConfigGroup> GizmoPrimitive2d<Polygon<N>> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Polygon<N>, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, const N: usize, T: GizmoConfigGroup> GizmoPrimitive2d<Polyline2d<N>> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Polyline2d<N>, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Rectangle> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Rectangle, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<RegularPolygon> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: RegularPolygon, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Segment2d> for Gizmos<'w, 's, T>

§

type Output<'a> = Segment2dBuilder<'a, 'w, 's, T> where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Segment2d, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive2d<Triangle2d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

The output of primitive_2d. This is a builder to set non-default values.
source§

fn primitive_2d( &mut self, primitive: Triangle2d, position: Vec2, angle: f32, color: Color ) -> Self::Output<'_>

Renders a 2D primitive with its associated details.
source§

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<BoxedPolyline3d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

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

fn primitive_3d( &mut self, primitive: BoxedPolyline3d, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Capsule3d> for Gizmos<'w, 's, T>

§

type Output<'a> = Capsule3dBuilder<'a, 'w, 's, T> where Self: 'a

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

fn primitive_3d( &mut self, primitive: Capsule3d, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Cone> for Gizmos<'w, 's, T>

§

type Output<'a> = Cone3dBuilder<'a, 'w, 's, T> where Self: 'a

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

fn primitive_3d( &mut self, primitive: Cone, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<ConicalFrustum> for Gizmos<'w, 's, T>

§

type Output<'a> = ConicalFrustum3dBuilder<'a, 'w, 's, T> where Self: 'a

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

fn primitive_3d( &mut self, primitive: ConicalFrustum, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Cuboid> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

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

fn primitive_3d( &mut self, primitive: Cuboid, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Cylinder> for Gizmos<'w, 's, T>

§

type Output<'a> = Cylinder3dBuilder<'a, 'w, 's, T> where Self: 'a

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

fn primitive_3d( &mut self, primitive: Cylinder, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Direction3d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

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

fn primitive_3d( &mut self, primitive: Direction3d, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Line3d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

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

fn primitive_3d( &mut self, primitive: Line3d, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Plane3d> for Gizmos<'w, 's, T>

§

type Output<'a> = Plane3dBuilder<'a, 'w, 's, T> where Self: 'a

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

fn primitive_3d( &mut self, primitive: Plane3d, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, const N: usize, T: GizmoConfigGroup> GizmoPrimitive3d<Polyline3d<N>> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

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

fn primitive_3d( &mut self, primitive: Polyline3d<N>, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Segment3d> for Gizmos<'w, 's, T>

§

type Output<'a> = () where Self: 'a

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

fn primitive_3d( &mut self, primitive: Segment3d, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Sphere> for Gizmos<'w, 's, T>

§

type Output<'a> = SphereBuilder<'a, 'w, 's, T> where Self: 'a

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

fn primitive_3d( &mut self, primitive: Sphere, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<'w, 's, T: GizmoConfigGroup> GizmoPrimitive3d<Torus> for Gizmos<'w, 's, T>

§

type Output<'a> = Torus3dBuilder<'a, 'w, 's, T> where Self: 'a

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

fn primitive_3d( &mut self, primitive: Torus, position: Vec3, rotation: Quat, color: Color ) -> Self::Output<'_>

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

impl<T: GizmoConfigGroup> SystemParam for Gizmos<'_, '_, T>

§

type State = GizmosFetchState<T>

Used to store data which persists across invocations of a system.
§

type Item<'w, 's> = Gizmos<'w, 's, T>

The item type returned when constructing this system param. The value of this associated type should be Self, instantiated with new lifetimes. Read more
source§

fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State

Registers any World access used by this SystemParam and creates a new instance of this param’s State.
source§

fn new_archetype( state: &mut Self::State, archetype: &Archetype, system_meta: &mut SystemMeta )

For the specified Archetype, registers the components accessed by this SystemParam (if applicable).
source§

fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)

Applies any deferred mutations stored in this SystemParam’s state. This is used to apply Commands during apply_deferred.
source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> Self::Item<'w, 's>

Creates a parameter to be passed into a SystemParamFunction. Read more
source§

impl<'w, 's, T: GizmoConfigGroup> ReadOnlySystemParam for Gizmos<'w, 's, T>

Auto Trait Implementations§

§

impl<'w, 's, T> Freeze for Gizmos<'w, 's, T>
where T: Default + TypePath + Reflect + Sync + Send + Any + DynamicTypePath + 'static,

§

impl<'w, 's, T> RefUnwindSafe for Gizmos<'w, 's, T>
where T: Default + TypePath + Reflect + Sync + Send + Any + DynamicTypePath + 'static + RefUnwindSafe,

§

impl<'w, 's, T> Send for Gizmos<'w, 's, T>
where T: Default + TypePath + Reflect + Sync + Send + Any + DynamicTypePath + 'static,

§

impl<'w, 's, T> Sync for Gizmos<'w, 's, T>
where T: Default + TypePath + Reflect + Sync + Send + Any + DynamicTypePath + 'static,

§

impl<'w, 's, T> Unpin for Gizmos<'w, 's, T>
where T: Default + TypePath + Reflect + Sync + Send + Any + DynamicTypePath + 'static,

§

impl<'w, 's, T = DefaultGizmoConfigGroup> !UnwindSafe for Gizmos<'w, 's, T>

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<Image>) -> 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> Downcast<T> for T

source§

fn downcast(&self) -> &T

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> 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<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

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
source§

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

source§

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

source§

impl<T> WasmNotSendSync for T

source§

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