three 0.3.0

Three.js inspired 3D engine in Rust
Documentation
extern crate three;

use std::env;
use three::Object;

fn main() {
    let mut args = env::args();
    let obj_path = concat!(env!("CARGO_MANIFEST_DIR"), "/test_data/car.obj");
    let path = args.nth(1).unwrap_or(obj_path.into());
    let mut win = three::Window::new("Three-rs obj loading example");
    let cam = win.factory.perspective_camera(60.0, 1.0 .. 1000.0);
    let mut controls = three::controls::Orbit::builder(&cam)
        .position([0.0, 2.0, -5.0])
        .target([0.0, 0.0, 0.0])
        .build();

    let dir_light = win.factory.directional_light(0xffffff, 0.9);
    dir_light.look_at([15.0, 35.0, 35.0], [0.0, 0.0, 2.0], None);
    win.scene.add(&dir_light);

    let root = win.factory.group();
    win.scene.add(&root);
    let (mut group_map, _meshes) = win.factory.load_obj(&path);
    for g in group_map.values_mut() {
        root.add(g);
    }

    while win.update() && !win.input.hit(three::KEY_ESCAPE) {
        controls.update(&win.input);
        win.render(&cam);
    }
}