[][src]Struct rustbatch::render::geom::GeomDrawer

pub struct GeomDrawer {
    pub color: RGBA,
    // some fields omitted
}

GeomDrawer can draw lines and rectangles but you can draw almost anything with some math by pushing points. You can reuse what you already drawn if you dont clear the screen, on the other hand if you need more dinamic aproach clear and redraw ewery frame.

example

use rustbatch::{Window, Vect, FPS, Rect};
use rustbatch::render::geom::{GeomDrawer, LineMode};
use rustbatch::vect;
use rustbatch::rect;
let (mut window, mut event_pump, _gl, _sdl, _video_subsystem) = Window::new(|sys| {
            sys.window("rusty batch", 1000, 700)
                .opengl()
                .resizable()
                .build()
                .unwrap()
        });

        window.set_background_color(&[0.5f32, 0.5f32, 0.5f32, 1f32]);

        let mut drawer = GeomDrawer::new();
        drawer.color = [1.0, 0.0, 1.0, 5.0];
        drawer.polynomial(vect!(100, 100), 20.0, 100.0, 0.0, 40, LineMode::Sharp);
        drawer.color = [1.0, 0.0, 1.0, 0.5];
        drawer.polynomial(Vect::ZERO, 20.0, 100.0, 0.0, 3, LineMode::Sharp);
        drawer.color = [0.0, 0.5, 1.0, 5.5];
        drawer.empty_rect(rect!(0, -40, 150, 60), 10.0, LineMode::Sharp);
        drawer.color = [1.0, 1.0, 0.0, 0.5];

        let mut fps = FPS::new(1f32);

        'main: loop {
            for event in event_pump.poll_iter() {
                match event {
                    sdl2::event::Event::Quit { .. } => break 'main,
                    _ => {}
                }
            }
            let _delta = fps.increase(0f32);

            window.clear();

            drawer.draw(&mut window.canvas);

            window.update();
       }

Fields

color: RGBA

Implementations

impl GeomDrawer[src]

pub fn new() -> Self[src]

pub fn rect(&mut self, rect: Rect)[src]

pub fn empty_rect(&mut self, rect: Rect, thickness: f32, mode: LineMode)[src]

pub fn add_rectangle(&mut self, points: &[Vect; 4])[src]

pub fn line(&mut self, points: &[Vect], thickness: f32, mode: LineMode)[src]

pub fn polynomial(
    &mut self,
    position: Vect,
    thickness: f32,
    radius: f32,
    rotation: f32,
    sides: usize,
    mode: LineMode
)
[src]

pub fn point(&mut self, pos: Vect)[src]

pub fn clear(&mut self)[src]

pub fn draw<T: Target>(&self, target: &mut T)[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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