bevy_lyon 0.1.0

A simple library to provide access to lyon-powered meshes in bevy!
Documentation
use bevy::{
    prelude::*,
};

use bevy_lyon::{
    shapes,
    LyonMeshBuilder,
    math
};

fn main() {
    App::build()
        .add_default_plugins()
        .add_startup_system(setup_system.system())
        .run();
}

fn setup_system(
    mut commands: Commands,
    mut materials: ResMut<Assets<ColorMaterial>>,
    mut meshes: ResMut<Assets<Mesh>>,
) {
    let red = materials.add(Color::RED.into());
    let green = materials.add(Color::GREEN.into());
    let blue = materials.add(Color::BLUE.into());

    let fill_circle = meshes.add(LyonMeshBuilder::with_only(
        shapes::FillCircle {
            center: math::point(-100.0, 0.0),
            ..Default::default()
        }
    ));

    let stroke_circle = meshes.add(LyonMeshBuilder::with_only(
        shapes::StrokeCircle {
            center: math::point(-100.0, 0.0),
            radius: 35.0,
            ..Default::default()
        }
    ));

    let ellipse = meshes.add(LyonMeshBuilder::with_only(
        shapes::StrokeEllipse {
            center: math::point(50.0, 25.0),
            ..Default::default()
        }
    ));

    let convex_polyline = meshes.add(LyonMeshBuilder::with_only(
        shapes::FillConvexPolyline {
            points: vec![
                math::point(0.0, 0.0),
                math::point(25.0, 50.0),
                math::point(50.0, 0.0),
                math::point(50.0, -100.0),
                math::point(25.0, -150.0),
                math::point(0.0, -100.0)
            ],
            ..Default::default()
        }
    ));

    commands
        .spawn(Camera2dComponents::default())
        .spawn(SpriteComponents {
            mesh: fill_circle,
            material: red,
            sprite: Sprite { size: Vec2::new(1.0, 1.0) },
            ..Default::default()
        })
        .spawn(SpriteComponents {
            mesh: stroke_circle,
            material: green,
            sprite: Sprite { size: Vec2::new(1.0, 1.0) },
            ..Default::default()
        })
        .spawn(SpriteComponents {
            mesh: ellipse,
            material: red,
            sprite: Sprite { size: Vec2::new(1.0, 1.0) },
            ..Default::default()
        })
        .spawn(SpriteComponents {
            mesh: convex_polyline,
            material: blue,
            sprite: Sprite { size: Vec2::new(1.0, 1.0) },
            translation: Translation::new(25.0, 75.0, 0.0),
            ..Default::default()
        });

}