diff --git a/src/core/client.rs b/src/core/client.rs index 2932a21..7434bb6 100644 --- a/src/core/client.rs +++ b/src/core/client.rs @@ -1,5 +1,6 @@ use super::scenegraph::Scenegraph; use crate::nodes::field; +use crate::nodes::root; use crate::nodes::spatial; use libstardustxr::messenger::Messenger; use mio::net::UnixStream; @@ -17,6 +18,7 @@ impl Client { scenegraph: Default::default(), }); let _ = client.scenegraph.client.set(Arc::downgrade(&client)); + root::create_root(&client); spatial::create_interface(&client); field::create_interface(&client); client diff --git a/src/nodes/mod.rs b/src/nodes/mod.rs index 5ba455b..44f6724 100644 --- a/src/nodes/mod.rs +++ b/src/nodes/mod.rs @@ -1,3 +1,4 @@ +pub mod root; pub mod core; pub mod data; pub mod field; diff --git a/src/nodes/root.rs b/src/nodes/root.rs new file mode 100644 index 0000000..f3ccc3d --- /dev/null +++ b/src/nodes/root.rs @@ -0,0 +1,11 @@ +use super::core::Node; +use super::spatial::Spatial; +use crate::core::client::Client; +use glam::Mat4; +use std::sync::Arc; + +pub fn create_root(client: &Arc) { + let node = Node::create("", "", false); + let node = client.scenegraph.add_node(node); + let _ = Spatial::add_to(&node, None, Mat4::IDENTITY); +}