summaryrefslogblamecommitdiffstats
path: root/src/main.rs
blob: 94b0930b37080cdf12bf37c9311c445233e9dbba (plain) (tree)



















































                                                                         
extern crate raylib;

mod units;
mod orbital;
mod system;

use self::system::*;
use self::units::*;
use std::rc::Rc;
use std::cell::RefCell;
use raylib::prelude::*;

fn main() {
    let sol_system_builder = SystemBuilder::new();

    let sol_ind = sol_system_builder
        .add_body(orbital::OrbitalBuilder::new()
            .name("Sol".to_string())
            .mass(1.988416e30)
            .radius(695700.0)
            .build());

    let earth_ind = sol_system_builder
        .add_body(orbital::OrbitalBuilder::new()
            .name("Earth".to_string())
            .orbits(sol_ind)
            .mass(5.972168e24)
            .radius(6371.0)
            .semi_major_axis(149598023.0)
            .eccentricity(0.0167086)
            .inclination(to_rad(7.155))
            .long_asc_node(to_rad(-11.26064))
            .argument_periapsis(to_rad(114.20783))
            .mean_anomaly_epoch(to_rad(358.617))
            .build());

    let sol_system = sol_system_builder.build();
    sol_system.tick(0);

    let (mut rl_handle, rl_thread) = raylib::init()
        .size(640, 480)
        .title("Hello, World!")
        .build();

    while !rl_handle.window_should_close()
    {
        let mut draw_handle = rl_handle.begin_drawing(&rl_thread);

        draw_handle.clear_background(Color::BLACK);
        draw_handle.draw_text("Hello, World!", 12, 12, 20, Color::WHITE);
    }
}