feat: create scene graph with terrain and helicopter nodes in main.rs

This commit is contained in:
2025-10-02 10:14:51 +02:00
parent ed0ccb854d
commit ac1368c509

View File

@@ -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,