feat: create scene graph with terrain and helicopter nodes in main.rs
This commit is contained in:
20
src/main.rs
20
src/main.rs
@@ -15,6 +15,8 @@ use std::{mem, os::raw::c_void, ptr};
|
||||
mod shader;
|
||||
mod util;
|
||||
mod mesh;
|
||||
mod scene_graph;
|
||||
use scene_graph::SceneNode;
|
||||
|
||||
use glutin::event::{
|
||||
DeviceEvent,
|
||||
@@ -206,6 +208,24 @@ fn main() {
|
||||
let heli_main_rotor_vao = unsafe { create_vao(&helicopter.main_rotor.vertices, &helicopter.main_rotor.normals, &helicopter.main_rotor.colors, &helicopter.main_rotor.indices) };
|
||||
let heli_tail_rotor_vao = unsafe { create_vao(&helicopter.tail_rotor.vertices, &helicopter.tail_rotor.normals, &helicopter.tail_rotor.colors, &helicopter.tail_rotor.indices) };
|
||||
|
||||
// Scene Graph setup
|
||||
let root_node = SceneNode::new();
|
||||
let terrain_node = SceneNode::from_vao(terrain_vao, terrain_mesh.index_count);
|
||||
root_node.add_child(&*terrain_node);
|
||||
|
||||
let heli_root = SceneNode::new();
|
||||
let body_node = SceneNode::from_vao(heli_body_vao, helicopter.body.index_count);
|
||||
let door_node = SceneNode::from_vao(heli_door_vao, helicopter.door.index_count);
|
||||
let main_rotor_node = SceneNode::from_vao(heli_main_rotor_vao, helicopter.main_rotor.index_count);
|
||||
let tail_rotor_node = SceneNode::from_vao(heli_tail_rotor_vao, helicopter.tail_rotor.index_count);
|
||||
|
||||
heli_root.add_child(&*body_node);
|
||||
heli_root.add_child(&*door_node);
|
||||
heli_root.add_child(&*main_rotor_node);
|
||||
heli_root.add_child(&*tail_rotor_node);
|
||||
|
||||
terrain_node.add_child(&*heli_root);
|
||||
|
||||
let vertices = vec![
|
||||
// triangle 1
|
||||
-0.8, -0.8, 0.0,
|
||||
|
||||
Reference in New Issue
Block a user