From b2e6c36dfdf521a0558ae7d5de976d78959ffb5c Mon Sep 17 00:00:00 2001 From: Kayh Date: Tue, 10 Sep 2024 14:06:17 -0400 Subject: [PATCH] add axes shape --- wasm/example-unavi-layout/src/bindings.rs | 286 +++++++++++---- wasm/example-unavi-layout/src/lib.rs | 19 +- wasm/example-unavi-scene/src/bindings.rs | 240 ++++++++++--- wasm/example-unavi-shapes/src/bindings.rs | 240 ++++++++++--- wasm/example-unavi-shapes/src/lib.rs | 77 +--- wasm/example-unavi-ui/src/bindings.rs | 315 +++++++++++----- wasm/example-unavi-vscreen/src/bindings.rs | 299 +++++++++++----- wasm/example-wired-input/src/bindings.rs | 398 ++++++++++++++------- wasm/example-wired-physics/src/bindings.rs | 398 ++++++++++++++------- wasm/example-wired-player/src/bindings.rs | 398 ++++++++++++++------- wasm/example-wired-scene/src/bindings.rs | 397 +++++++++++++------- wasm/unavi-shapes/src/bindings.rs | 364 ++++++++++++++++--- wasm/unavi-shapes/src/lib.rs | 5 +- wasm/unavi-shapes/src/shapes/axes.rs | 92 +++++ wasm/unavi-shapes/src/shapes/mod.rs | 1 + wasm/unavi-shapes/wit/world.wit | 10 + wasm/unavi-ui/src/bindings.rs | 304 +++++++++++----- wasm/unavi-vscreen/src/bindings.rs | 294 ++++++++++----- 18 files changed, 2932 insertions(+), 1205 deletions(-) create mode 100644 wasm/unavi-shapes/src/shapes/axes.rs diff --git a/wasm/example-unavi-layout/src/bindings.rs b/wasm/example-unavi-layout/src/bindings.rs index 4151da5f2..994316977 100644 --- a/wasm/example-unavi-layout/src/bindings.rs +++ b/wasm/example-unavi-layout/src/bindings.rs @@ -1505,6 +1505,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -2629,6 +2673,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -6040,8 +6164,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7689] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x8c;\x01A\x02\x01A$\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7849] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xac<\x01A\x02\x01A$\x01\ B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\0\ \x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01r\ \x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -6133,83 +6257,87 @@ t.remove-scene\x01\x0a\x01@\0\0\x06\x04\0\x12[constructor]scene\x01\x0b\x01i\x03 d]scene.transform\x01\x12\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1b[meth\ od]scene.set-transform\x01\x13\x01@\x01\x04self\x09\0\x7f\x04\0\x14[method]scene\ .active\x01\x14\x01@\x02\x04self\x09\x05value\x7f\x01\0\x04\0\x18[method]scene.s\ -et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B}\x02\ -\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\ -\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\ -\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\ -\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\ -\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\ -\0\x06sphere\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]r\ -ectangle\x01\x15\x01h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.\ -size\x01\x17\x01@\x02\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.\ -set-size\x01\x18\x01i\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.\ -to-mesh\x01\x1a\x01i\x07\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.t\ -o-node\x01\x1c\x04\0![method]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\ -\x06radiusv\0\x1d\x04\0\x13[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\ -\x1f\0v\x04\0\x15[method]circle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\ -\0\x04\0\x19[method]circle.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[met\ -hod]circle.resolution\x01\"\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[metho\ -d]circle.set-resolution\x01#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.\ -to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\ -\0\x1e[method]circle.to-physics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\ -\0\x14[constructor]ellipse\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[metho\ -d]ellipse.half-size\x01)\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]e\ -llipse.set-half-size\x01*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resoluti\ -on\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ -n\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04\ -self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-ph\ -ysics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor\ -]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x01\ -2\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01\ -@\x01\x04self1\0v\x04\0\x17[method]cylinder.height\x014\x01@\x02\x04self1\x05val\ -uev\x01\0\x04\0\x1b[method]cylinder.set-height\x015\x04\0\x17[method]cylinder.ra\ -dius\x014\x04\0\x1b[method]cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b\ -[method]cylinder.resolution\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[met\ -hod]cylinder.set-resolution\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d\ -[method]cylinder.set-segments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cyli\ -nder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\ -\x04\0\x20[method]cylinder.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\ -\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[me\ -thod]cuboid.size\x01=\x01@\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cubo\ -id.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01\ -@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboi\ -d.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sph\ -ere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\ -\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\ -\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[\ -method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[meth\ -od]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-\ -mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\ -\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unavi:shapes/api\x05\x13\x01B\ -#\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x02\x01m\x03\x06center\x03end\x05start\x04\0\x09alignment\x03\0\x04\x04\0\x09\ -container\x03\x01\x01i\x06\x01@\x01\x04size\x01\0\x07\x04\0\x16[constructor]cont\ -ainer\x01\x08\x01h\x06\x01@\x01\x04self\x09\0\x07\x04\0\x15[method]container.ref\ -\x01\x0a\x01i\x03\x01@\x01\x04self\x09\0\x0b\x04\0\x16[method]container.root\x01\ -\x0c\x04\0\x17[method]container.inner\x01\x0c\x01p\x07\x01@\x01\x04self\x09\0\x0d\ -\x04\0\x1f[method]container.list-children\x01\x0e\x01@\x02\x04self\x09\x05child\x09\ -\x01\0\x04\0\x1b[method]container.add-child\x01\x0f\x04\0\x1e[method]container.r\ -emove-child\x01\x0f\x01@\x01\x04self\x09\0\x01\x04\0\x16[method]container.size\x01\ -\x10\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1a[method]container.set-size\ -\x01\x11\x01@\x01\x04self\x09\0\x05\x04\0\x19[method]container.align-x\x01\x12\x04\ -\0\x19[method]container.align-y\x01\x12\x04\0\x19[method]container.align-z\x01\x12\ -\x01@\x02\x04self\x09\x05value\x05\x01\0\x04\0\x1d[method]container.set-align-x\x01\ -\x13\x04\0\x1d[method]container.set-align-y\x01\x13\x04\0\x1d[method]container.s\ -et-align-z\x01\x13\x03\x01\x16unavi:layout/container\x05\x14\x02\x03\0\x09\x09co\ -ntainer\x01B\x16\x02\x03\x02\x01\x15\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x04\ -\x04\0\x04vec3\x03\0\x02\x04\0\x04grid\x03\x01\x01i\x04\x01@\x02\x04size\x03\x04\ -rows\x03\0\x05\x04\0\x11[constructor]grid\x01\x06\x01h\x04\x01i\x01\x01@\x01\x04\ -self\x07\0\x08\x04\0\x11[method]grid.root\x01\x09\x01p\x08\x01@\x01\x04self\x07\0\ -\x0a\x04\0\x12[method]grid.cells\x01\x0b\x01k\x08\x01@\x04\x04self\x07\x01xy\x01\ -yy\x01zy\0\x0c\x04\0\x11[method]grid.cell\x01\x0d\x01@\x01\x04self\x07\0\x03\x04\ -\0\x11[method]grid.rows\x01\x0e\x01@\x02\x04self\x07\x05value\x03\x01\0\x04\0\x15\ -[method]grid.set-rows\x01\x0f\x03\x01\x11unavi:layout/grid\x05\x16\x01B\x07\x04\0\ -\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\ -\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\ -\x01\x12wired:script/types\x05\x17\x04\x01\x1bexample:unavi-layout/script\x04\0\x0b\ -\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-comp\ -onent\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B\x88\ +\x01\x02\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\ +\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\ +\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07e\ +llipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csub\ +divisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09\ +sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-ki\ +nd\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04\ +size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\ +\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\ +\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\ +\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\ +\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\0![method]rectangle.to-phy\ +sics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circl\ +e\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01\ +@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\ +\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05\ +value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\ +\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[metho\ +d]circle.to-node\x01&\x04\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\ +\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04\ +self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\ +\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a\ +[method]ellipse.resolution\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[meth\ +od]ellipse.set-resolution\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.\ +to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\ +\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\ +\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14\ +[method]cylinder.cap\x013\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]\ +cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\ +\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\ +\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01\ +@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resolution\x017\x01@\x02\x04self2\x05\ +value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x018\x04\0\x19[method]cyli\ +nder.segments\x017\x04\0\x1d[method]cylinder.set-segments\x018\x01@\x01\x04self2\ +\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[\ +method]cylinder.to-node\x01:\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\ +\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\ +\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\ +\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[m\ +ethod]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-nod\ +e\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\ +\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01\ +C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\ +\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04\ +self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05val\ +ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\ +\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]\ +sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\ +\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\ +\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[meth\ +od]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\ +\x01P\x03\x01\x10unavi:shapes/api\x05\x13\x01B#\x02\x03\x02\x01\x04\x04\0\x04vec\ +3\x03\0\0\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\x02\x01m\x03\x06center\x03end\x05\ +start\x04\0\x09alignment\x03\0\x04\x04\0\x09container\x03\x01\x01i\x06\x01@\x01\x04\ +size\x01\0\x07\x04\0\x16[constructor]container\x01\x08\x01h\x06\x01@\x01\x04self\ +\x09\0\x07\x04\0\x15[method]container.ref\x01\x0a\x01i\x03\x01@\x01\x04self\x09\0\ +\x0b\x04\0\x16[method]container.root\x01\x0c\x04\0\x17[method]container.inner\x01\ +\x0c\x01p\x07\x01@\x01\x04self\x09\0\x0d\x04\0\x1f[method]container.list-childre\ +n\x01\x0e\x01@\x02\x04self\x09\x05child\x09\x01\0\x04\0\x1b[method]container.add\ +-child\x01\x0f\x04\0\x1e[method]container.remove-child\x01\x0f\x01@\x01\x04self\x09\ +\0\x01\x04\0\x16[method]container.size\x01\x10\x01@\x02\x04self\x09\x05value\x01\ +\x01\0\x04\0\x1a[method]container.set-size\x01\x11\x01@\x01\x04self\x09\0\x05\x04\ +\0\x19[method]container.align-x\x01\x12\x04\0\x19[method]container.align-y\x01\x12\ +\x04\0\x19[method]container.align-z\x01\x12\x01@\x02\x04self\x09\x05value\x05\x01\ +\0\x04\0\x1d[method]container.set-align-x\x01\x13\x04\0\x1d[method]container.set\ +-align-y\x01\x13\x04\0\x1d[method]container.set-align-z\x01\x13\x03\x01\x16unavi\ +:layout/container\x05\x14\x02\x03\0\x09\x09container\x01B\x16\x02\x03\x02\x01\x15\ +\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x04\0\x04\ +grid\x03\x01\x01i\x04\x01@\x02\x04size\x03\x04rows\x03\0\x05\x04\0\x11[construct\ +or]grid\x01\x06\x01h\x04\x01i\x01\x01@\x01\x04self\x07\0\x08\x04\0\x11[method]gr\ +id.root\x01\x09\x01p\x08\x01@\x01\x04self\x07\0\x0a\x04\0\x12[method]grid.cells\x01\ +\x0b\x01k\x08\x01@\x04\x04self\x07\x01xy\x01yy\x01zy\0\x0c\x04\0\x11[method]grid\ +.cell\x01\x0d\x01@\x01\x04self\x07\0\x03\x04\0\x11[method]grid.rows\x01\x0e\x01@\ +\x02\x04self\x07\x05value\x03\x01\0\x04\0\x15[method]grid.set-rows\x01\x0f\x03\x01\ +\x11unavi:layout/grid\x05\x16\x01B\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\ +\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\ +\x04\0\x15[method]script.update\x01\x04\x04\x01\x12wired:script/types\x05\x17\x04\ +\x01\x1bexample:unavi-layout/script\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09\ +producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10wit-bindgen-rus\ +t\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-unavi-layout/src/lib.rs b/wasm/example-unavi-layout/src/lib.rs index d2e6cf983..f9e8762cc 100644 --- a/wasm/example-unavi-layout/src/lib.rs +++ b/wasm/example-unavi-layout/src/lib.rs @@ -8,6 +8,7 @@ use bindings::{ wired::{ math::types::{Transform, Vec3}, physics::types::{Collider, Shape}, + scene::node::Node, }, }; @@ -21,20 +22,24 @@ impl GuestScript for Script { fn new() -> Self { let scene = Scene::new(); + // Container alignments + let root = Node::new(); + root.set_transform(Transform::from_translation(Vec3::new(4.0, 0.0, 0.0))); + for x in 0..3 { for y in 0..3 { for z in 0..3 { let size = Vec3::splat(1.0); let parent = Container::new(size); - let root = parent.root(); - scene.add_node(&root); + root.add_child(&parent.root()); let collider = Collider::new(Shape::Cuboid(size)); - root.set_collider(Some(&collider)); - - root.set_transform(Transform::from_translation(Vec3::new( - x as f32, y as f32, z as f32, - ))); + parent.root().set_collider(Some(&collider)); + parent + .root() + .set_transform(Transform::from_translation(Vec3::new( + x as f32, y as f32, z as f32, + ))); parent.set_align_x(get_alignment(x)); parent.set_align_y(get_alignment(y)); diff --git a/wasm/example-unavi-scene/src/bindings.rs b/wasm/example-unavi-scene/src/bindings.rs index 116a88fad..7162a739b 100644 --- a/wasm/example-unavi-scene/src/bindings.rs +++ b/wasm/example-unavi-scene/src/bindings.rs @@ -801,6 +801,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1925,6 +1969,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -5336,8 +5460,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 6663] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x8a3\x01A\x02\x01A\x1f\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 6823] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xaa4\x01A\x02\x01A\x1f\ \x01B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\ \0\x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01\ r\x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -5429,60 +5553,64 @@ t.remove-scene\x01\x0a\x01@\0\0\x06\x04\0\x12[constructor]scene\x01\x0b\x01i\x03 d]scene.transform\x01\x12\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1b[meth\ od]scene.set-transform\x01\x13\x01@\x01\x04self\x09\0\x7f\x04\0\x14[method]scene\ .active\x01\x14\x01@\x02\x04self\x09\x05value\x7f\x01\0\x04\0\x18[method]scene.s\ -et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B}\x02\ -\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\ -\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\ -\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\ -\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\ -\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\ -\0\x06sphere\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]r\ -ectangle\x01\x15\x01h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.\ -size\x01\x17\x01@\x02\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.\ -set-size\x01\x18\x01i\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.\ -to-mesh\x01\x1a\x01i\x07\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.t\ -o-node\x01\x1c\x04\0![method]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\ -\x06radiusv\0\x1d\x04\0\x13[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\ -\x1f\0v\x04\0\x15[method]circle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\ -\0\x04\0\x19[method]circle.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[met\ -hod]circle.resolution\x01\"\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[metho\ -d]circle.set-resolution\x01#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.\ -to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\ -\0\x1e[method]circle.to-physics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\ -\0\x14[constructor]ellipse\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[metho\ -d]ellipse.half-size\x01)\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]e\ -llipse.set-half-size\x01*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resoluti\ -on\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ -n\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04\ -self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-ph\ -ysics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor\ -]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x01\ -2\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01\ -@\x01\x04self1\0v\x04\0\x17[method]cylinder.height\x014\x01@\x02\x04self1\x05val\ -uev\x01\0\x04\0\x1b[method]cylinder.set-height\x015\x04\0\x17[method]cylinder.ra\ -dius\x014\x04\0\x1b[method]cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b\ -[method]cylinder.resolution\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[met\ -hod]cylinder.set-resolution\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d\ -[method]cylinder.set-segments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cyli\ -nder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\ -\x04\0\x20[method]cylinder.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\ -\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[me\ -thod]cuboid.size\x01=\x01@\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cubo\ -id.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01\ -@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboi\ -d.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sph\ -ere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\ -\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\ -\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[\ -method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[meth\ -od]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-\ -mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\ -\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unavi:shapes/api\x05\x13\x01B\ -\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\ -\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\ -\x04\x04\x01\x12wired:script/types\x05\x14\x04\x01\x1aexample:unavi-scene/script\ -\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0d\ -wit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B\x88\ +\x01\x02\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\ +\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\ +\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07e\ +llipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csub\ +divisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09\ +sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-ki\ +nd\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04\ +size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\ +\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\ +\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\ +\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\ +\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\0![method]rectangle.to-phy\ +sics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circl\ +e\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01\ +@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\ +\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05\ +value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\ +\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[metho\ +d]circle.to-node\x01&\x04\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\ +\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04\ +self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\ +\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a\ +[method]ellipse.resolution\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[meth\ +od]ellipse.set-resolution\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.\ +to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\ +\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\ +\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14\ +[method]cylinder.cap\x013\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]\ +cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\ +\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\ +\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01\ +@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resolution\x017\x01@\x02\x04self2\x05\ +value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x018\x04\0\x19[method]cyli\ +nder.segments\x017\x04\0\x1d[method]cylinder.set-segments\x018\x01@\x01\x04self2\ +\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[\ +method]cylinder.to-node\x01:\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\ +\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\ +\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\ +\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[m\ +ethod]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-nod\ +e\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\ +\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01\ +C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\ +\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04\ +self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05val\ +ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\ +\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]\ +sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\ +\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\ +\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[meth\ +od]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\ +\x01P\x03\x01\x10unavi:shapes/api\x05\x13\x01B\x07\x04\0\x06script\x03\x01\x01i\0\ +\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\x02\x04self\x03\x05\ +deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12wired:script/type\ +s\x05\x14\x04\x01\x1aexample:unavi-scene/script\x04\0\x0b\x0c\x01\0\x06script\x03\ +\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10wit-\ +bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-unavi-shapes/src/bindings.rs b/wasm/example-unavi-shapes/src/bindings.rs index 8f99697c1..852f13910 100644 --- a/wasm/example-unavi-shapes/src/bindings.rs +++ b/wasm/example-unavi-shapes/src/bindings.rs @@ -801,6 +801,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1925,6 +1969,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -5336,8 +5460,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 6664] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x8b3\x01A\x02\x01A\x1f\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 6824] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xab4\x01A\x02\x01A\x1f\ \x01B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\ \0\x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01\ r\x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -5429,60 +5553,64 @@ t.remove-scene\x01\x0a\x01@\0\0\x06\x04\0\x12[constructor]scene\x01\x0b\x01i\x03 d]scene.transform\x01\x12\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1b[meth\ od]scene.set-transform\x01\x13\x01@\x01\x04self\x09\0\x7f\x04\0\x14[method]scene\ .active\x01\x14\x01@\x02\x04self\x09\x05value\x7f\x01\0\x04\0\x18[method]scene.s\ -et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B}\x02\ -\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\ -\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\ -\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\ -\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\ -\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\ -\0\x06sphere\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]r\ -ectangle\x01\x15\x01h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.\ -size\x01\x17\x01@\x02\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.\ -set-size\x01\x18\x01i\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.\ -to-mesh\x01\x1a\x01i\x07\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.t\ -o-node\x01\x1c\x04\0![method]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\ -\x06radiusv\0\x1d\x04\0\x13[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\ -\x1f\0v\x04\0\x15[method]circle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\ -\0\x04\0\x19[method]circle.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[met\ -hod]circle.resolution\x01\"\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[metho\ -d]circle.set-resolution\x01#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.\ -to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\ -\0\x1e[method]circle.to-physics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\ -\0\x14[constructor]ellipse\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[metho\ -d]ellipse.half-size\x01)\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]e\ -llipse.set-half-size\x01*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resoluti\ -on\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ -n\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04\ -self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-ph\ -ysics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor\ -]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x01\ -2\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01\ -@\x01\x04self1\0v\x04\0\x17[method]cylinder.height\x014\x01@\x02\x04self1\x05val\ -uev\x01\0\x04\0\x1b[method]cylinder.set-height\x015\x04\0\x17[method]cylinder.ra\ -dius\x014\x04\0\x1b[method]cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b\ -[method]cylinder.resolution\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[met\ -hod]cylinder.set-resolution\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d\ -[method]cylinder.set-segments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cyli\ -nder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\ -\x04\0\x20[method]cylinder.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\ -\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[me\ -thod]cuboid.size\x01=\x01@\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cubo\ -id.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01\ -@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboi\ -d.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sph\ -ere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\ -\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\ -\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[\ -method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[meth\ -od]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-\ -mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\ -\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unavi:shapes/api\x05\x13\x01B\ -\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\ -\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\ -\x04\x04\x01\x12wired:script/types\x05\x14\x04\x01\x1bexample:unavi-shapes/scrip\ -t\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0d\ -wit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B\x88\ +\x01\x02\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\ +\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\ +\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07e\ +llipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csub\ +divisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09\ +sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-ki\ +nd\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04\ +size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\ +\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\ +\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\ +\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\ +\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\0![method]rectangle.to-phy\ +sics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circl\ +e\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01\ +@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\ +\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05\ +value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\ +\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[metho\ +d]circle.to-node\x01&\x04\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\ +\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04\ +self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\ +\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a\ +[method]ellipse.resolution\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[meth\ +od]ellipse.set-resolution\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.\ +to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\ +\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\ +\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14\ +[method]cylinder.cap\x013\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]\ +cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\ +\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\ +\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01\ +@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resolution\x017\x01@\x02\x04self2\x05\ +value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x018\x04\0\x19[method]cyli\ +nder.segments\x017\x04\0\x1d[method]cylinder.set-segments\x018\x01@\x01\x04self2\ +\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[\ +method]cylinder.to-node\x01:\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\ +\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\ +\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\ +\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[m\ +ethod]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-nod\ +e\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\ +\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01\ +C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\ +\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04\ +self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05val\ +ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\ +\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]\ +sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\ +\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\ +\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[meth\ +od]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\ +\x01P\x03\x01\x10unavi:shapes/api\x05\x13\x01B\x07\x04\0\x06script\x03\x01\x01i\0\ +\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\x02\x04self\x03\x05\ +deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12wired:script/type\ +s\x05\x14\x04\x01\x1bexample:unavi-shapes/script\x04\0\x0b\x0c\x01\0\x06script\x03\ +\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10wit-\ +bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-unavi-shapes/src/lib.rs b/wasm/example-unavi-shapes/src/lib.rs index d91d31336..2d124a96a 100644 --- a/wasm/example-unavi-shapes/src/lib.rs +++ b/wasm/example-unavi-shapes/src/lib.rs @@ -1,18 +1,10 @@ -use std::f32::consts::FRAC_PI_2; - use bindings::{ exports::wired::script::types::{Guest, GuestScript}, unavi::{ scene::api::{Root, Scene}, - shapes::api::{Circle, Cuboid, Cylinder, Ellipse, Rectangle, Sphere}, - }, - wired::{ - math::types::{Quat, Transform, Vec2, Vec3}, - scene::{ - material::{Color, Material}, - node::Node, - }, + shapes::api::{Axes, Circle, Cuboid, Cylinder, Ellipse, Rectangle, Sphere}, }, + wired::math::types::{Transform, Vec2, Vec3}, }; #[allow(warnings)] @@ -27,7 +19,8 @@ impl GuestScript for Script { { let translation = Vec3::new(3.0, 0.0, 0.0); - spawn_axis(translation); + let node = Axes::new().to_node(); + node.set_transform(Transform::from_translation(translation)); let cuboid = Cuboid::new(Vec3::new(1.0, 0.5, 1.5)).to_physics_node(); cuboid.set_transform(Transform::from_translation(translation)); @@ -36,7 +29,8 @@ impl GuestScript for Script { { let translation = Vec3::new(1.5, 0.0, 2.0); - spawn_axis(translation); + let node = Axes::new().to_node(); + node.set_transform(Transform::from_translation(translation)); let sphere = Sphere::new_ico(0.5).to_physics_node(); sphere.set_transform(Transform::from_translation(translation)); @@ -45,7 +39,8 @@ impl GuestScript for Script { { let translation = Vec3::new(1.5, 0.0, 0.0); - spawn_axis(translation); + let node = Axes::new().to_node(); + node.set_transform(Transform::from_translation(translation)); let sphere = Sphere::new_uv(0.5).to_physics_node(); sphere.set_transform(Transform::from_translation(translation)); @@ -54,7 +49,8 @@ impl GuestScript for Script { { let translation = Vec3::default(); - spawn_axis(translation); + let node = Axes::new().to_node(); + node.set_transform(Transform::from_translation(translation)); let cylinder = Cylinder::new(0.5, 1.0).to_physics_node(); scene.add_node(&cylinder); @@ -62,7 +58,8 @@ impl GuestScript for Script { { let translation = Vec3::new(-1.5, 0.0, 0.0); - spawn_axis(translation); + let node = Axes::new().to_node(); + node.set_transform(Transform::from_translation(translation)); let rectangle = Rectangle::new(Vec2::splat(1.0)).to_physics_node(); rectangle.set_transform(Transform::from_translation(translation)); @@ -71,7 +68,8 @@ impl GuestScript for Script { { let translation = Vec3::new(-3.0, 0.0, 0.0); - spawn_axis(translation); + let node = Axes::new().to_node(); + node.set_transform(Transform::from_translation(translation)); let circle = Circle::new(0.5).to_physics_node(); circle.set_transform(Transform::from_translation(translation)); @@ -80,7 +78,8 @@ impl GuestScript for Script { { let translation = Vec3::new(-4.5, 0.0, 0.0); - spawn_axis(translation); + let node = Axes::new().to_node(); + node.set_transform(Transform::from_translation(translation)); let ellipse = Ellipse::new(Vec2::new(0.5, 0.75)).to_node(); ellipse.set_transform(Transform::from_translation(translation)); @@ -95,50 +94,6 @@ impl GuestScript for Script { fn update(&self, _delta: f32) {} } -fn spawn_axis(translation: Vec3) { - let shape = Cylinder::new(0.01, 2.0); - shape.set_resolution(8); - - let root = Node::new(); - root.set_transform(Transform::from_translation(translation)); - - let red = Material::new(); - red.set_color(Color { - r: 1.0, - g: 0.1, - b: 0.1, - a: 0.9, - }); - let green = Material::new(); - green.set_color(Color { - r: 0.1, - g: 1.0, - b: 0.1, - a: 0.9, - }); - let blue = Material::new(); - blue.set_color(Color { - r: 0.1, - g: 0.1, - b: 1.0, - a: 0.9, - }); - - let x = shape.to_node(); - root.add_child(&x); - x.mesh().unwrap().list_primitives()[0].set_material(Some(&red)); - x.set_transform(Transform::from_rotation(Quat::from_rotation_z(FRAC_PI_2))); - - let y = shape.to_node(); - root.add_child(&y); - y.mesh().unwrap().list_primitives()[0].set_material(Some(&green)); - - let z = shape.to_node(); - root.add_child(&z); - z.mesh().unwrap().list_primitives()[0].set_material(Some(&blue)); - z.set_transform(Transform::from_rotation(Quat::from_rotation_x(FRAC_PI_2))); -} - struct Types; impl Guest for Types { diff --git a/wasm/example-unavi-ui/src/bindings.rs b/wasm/example-unavi-ui/src/bindings.rs index 78bdc7e25..74e5897d2 100644 --- a/wasm/example-unavi-ui/src/bindings.rs +++ b/wasm/example-unavi-ui/src/bindings.rs @@ -1241,6 +1241,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -2365,6 +2409,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -6406,8 +6530,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 8326] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x89@\x01A\x02\x01A*\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 8486] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xa9A\x01A\x02\x01A*\x01\ B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\0\ \x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01r\ \x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -6499,98 +6623,101 @@ t.remove-scene\x01\x0a\x01@\0\0\x06\x04\0\x12[constructor]scene\x01\x0b\x01i\x03 d]scene.transform\x01\x12\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1b[meth\ od]scene.set-transform\x01\x13\x01@\x01\x04self\x09\0\x7f\x04\0\x14[method]scene\ .active\x01\x14\x01@\x02\x04self\x09\x05value\x7f\x01\0\x04\0\x18[method]scene.s\ -et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B}\x02\ -\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\ -\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\ -\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\ -\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\ -\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\ -\0\x06sphere\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]r\ -ectangle\x01\x15\x01h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.\ -size\x01\x17\x01@\x02\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.\ -set-size\x01\x18\x01i\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.\ -to-mesh\x01\x1a\x01i\x07\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.t\ -o-node\x01\x1c\x04\0![method]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\ -\x06radiusv\0\x1d\x04\0\x13[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\ -\x1f\0v\x04\0\x15[method]circle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\ -\0\x04\0\x19[method]circle.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[met\ -hod]circle.resolution\x01\"\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[metho\ -d]circle.set-resolution\x01#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.\ -to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\ -\0\x1e[method]circle.to-physics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\ -\0\x14[constructor]ellipse\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[metho\ -d]ellipse.half-size\x01)\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]e\ -llipse.set-half-size\x01*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resoluti\ -on\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ -n\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04\ -self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-ph\ -ysics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor\ -]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x01\ -2\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01\ -@\x01\x04self1\0v\x04\0\x17[method]cylinder.height\x014\x01@\x02\x04self1\x05val\ -uev\x01\0\x04\0\x1b[method]cylinder.set-height\x015\x04\0\x17[method]cylinder.ra\ -dius\x014\x04\0\x1b[method]cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b\ -[method]cylinder.resolution\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[met\ -hod]cylinder.set-resolution\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d\ -[method]cylinder.set-segments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cyli\ -nder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\ -\x04\0\x20[method]cylinder.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\ -\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[me\ -thod]cuboid.size\x01=\x01@\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cubo\ -id.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01\ -@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboi\ -d.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sph\ -ere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\ -\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\ -\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[\ -method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[meth\ -od]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-\ -mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\ -\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unavi:shapes/api\x05\x13\x01B\ -\x04\x01m\x04\x05debug\x04info\x04warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\ -\x05level\x01\x07messages\x01\0\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\ -\x14\x01B\x02\x01@\x01\x05deltav\x01\0\x04\0\x09update-ui\x01\0\x03\x01\x0cunavi\ -:ui/api\x05\x15\x01B#\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\x01\x10\ -\x04\0\x04node\x03\0\x02\x01m\x03\x06center\x03end\x05start\x04\0\x09alignment\x03\ -\0\x04\x04\0\x09container\x03\x01\x01i\x06\x01@\x01\x04size\x01\0\x07\x04\0\x16[\ -constructor]container\x01\x08\x01h\x06\x01@\x01\x04self\x09\0\x07\x04\0\x15[meth\ -od]container.ref\x01\x0a\x01i\x03\x01@\x01\x04self\x09\0\x0b\x04\0\x16[method]co\ -ntainer.root\x01\x0c\x04\0\x17[method]container.inner\x01\x0c\x01p\x07\x01@\x01\x04\ -self\x09\0\x0d\x04\0\x1f[method]container.list-children\x01\x0e\x01@\x02\x04self\ -\x09\x05child\x09\x01\0\x04\0\x1b[method]container.add-child\x01\x0f\x04\0\x1e[m\ -ethod]container.remove-child\x01\x0f\x01@\x01\x04self\x09\0\x01\x04\0\x16[method\ -]container.size\x01\x10\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1a[method\ -]container.set-size\x01\x11\x01@\x01\x04self\x09\0\x05\x04\0\x19[method]containe\ -r.align-x\x01\x12\x04\0\x19[method]container.align-y\x01\x12\x04\0\x19[method]co\ -ntainer.align-z\x01\x12\x01@\x02\x04self\x09\x05value\x05\x01\0\x04\0\x1d[method\ -]container.set-align-x\x01\x13\x04\0\x1d[method]container.set-align-y\x01\x13\x04\ -\0\x1d[method]container.set-align-z\x01\x13\x03\x01\x16unavi:layout/container\x05\ -\x16\x02\x03\0\x0b\x09container\x01B\x0f\x02\x03\x02\x01\x17\x04\0\x09container\x03\ -\0\0\x02\x03\x02\x01\x0b\x04\0\x0dinput-handler\x03\0\x02\x04\0\x06button\x03\x01\ -\x01i\x01\x01i\x04\x01@\x01\x04root\x05\0\x06\x04\0\x13[constructor]button\x01\x07\ -\x01h\x04\x01@\x01\x04self\x08\0\x05\x04\0\x13[method]button.root\x01\x09\x01@\x01\ -\x04self\x08\0\x7f\x04\0\x16[method]button.hovered\x01\x0a\x04\0\x16[method]butt\ -on.pressed\x01\x0a\x03\x01\x0funavi:ui/button\x05\x18\x01B(\x02\x03\x02\x01\x17\x04\ -\0\x09container\x03\0\0\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x02\x02\x03\x02\x01\ -\x10\x04\0\x04node\x03\0\x04\x04\0\x04text\x03\x01\x04\0\x08text-box\x03\x01\x01\ -i\x06\x01@\x01\x04texts\0\x08\x04\0\x11[constructor]text\x01\x09\x01h\x06\x01@\x01\ -\x04self\x0a\0\x08\x04\0\x10[method]text.ref\x01\x0b\x01p}\x01k\x0c\x01@\x02\x04\ -self\x0a\x05value\x0d\x01\0\x04\0\x15[method]text.set-font\x01\x0e\x01@\x01\x04s\ -elf\x0a\0s\x04\0\x11[method]text.text\x01\x0f\x01@\x02\x04self\x0a\x05values\x01\ -\0\x04\0\x15[method]text.set-text\x01\x10\x01@\x01\x04self\x0a\0v\x04\0\x16[meth\ -od]text.font-size\x01\x11\x01@\x02\x04self\x0a\x05valuev\x01\0\x04\0\x1a[method]\ -text.set-font-size\x01\x12\x04\0\x16[method]text.thickness\x01\x11\x04\0\x1a[met\ -hod]text.set-thickness\x01\x12\x01i\x03\x01@\x01\x04self\x0a\0\x13\x04\0\x11[met\ -hod]text.mesh\x01\x14\x01i\x01\x01i\x07\x01@\x01\x04root\x15\0\x16\x04\0\x15[con\ -structor]text-box\x01\x17\x01h\x07\x01@\x01\x04self\x18\0\x15\x04\0\x15[method]t\ -ext-box.root\x01\x19\x01@\x01\x04self\x18\0\x08\x04\0\x15[method]text-box.text\x01\ -\x1a\x03\x01\x0dunavi:ui/text\x05\x19\x01B\x07\x04\0\x06script\x03\x01\x01i\0\x01\ -@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\x02\x04self\x03\x05de\ -ltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12wired:script/types\x05\ -\x1a\x04\x01\x17example:unavi-ui/script\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\ -\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10wit-bindgen\ --rust\x060.25.0"; +et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B\x88\ +\x01\x02\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\ +\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\ +\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07e\ +llipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csub\ +divisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09\ +sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-ki\ +nd\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04\ +size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\ +\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\ +\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\ +\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\ +\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\0![method]rectangle.to-phy\ +sics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circl\ +e\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01\ +@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\ +\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05\ +value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\ +\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[metho\ +d]circle.to-node\x01&\x04\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\ +\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04\ +self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\ +\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a\ +[method]ellipse.resolution\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[meth\ +od]ellipse.set-resolution\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.\ +to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\ +\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\ +\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14\ +[method]cylinder.cap\x013\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]\ +cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\ +\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\ +\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01\ +@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resolution\x017\x01@\x02\x04self2\x05\ +value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x018\x04\0\x19[method]cyli\ +nder.segments\x017\x04\0\x1d[method]cylinder.set-segments\x018\x01@\x01\x04self2\ +\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[\ +method]cylinder.to-node\x01:\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\ +\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\ +\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\ +\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[m\ +ethod]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-nod\ +e\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\ +\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01\ +C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\ +\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04\ +self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05val\ +ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\ +\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]\ +sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\ +\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\ +\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[meth\ +od]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\ +\x01P\x03\x01\x10unavi:shapes/api\x05\x13\x01B\x04\x01m\x04\x05debug\x04info\x04\ +warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\x05level\x01\x07messages\x01\0\ +\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\x14\x01B\x02\x01@\x01\x05delt\ +av\x01\0\x04\0\x09update-ui\x01\0\x03\x01\x0cunavi:ui/api\x05\x15\x01B#\x02\x03\x02\ +\x01\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\x02\x01m\x03\ +\x06center\x03end\x05start\x04\0\x09alignment\x03\0\x04\x04\0\x09container\x03\x01\ +\x01i\x06\x01@\x01\x04size\x01\0\x07\x04\0\x16[constructor]container\x01\x08\x01\ +h\x06\x01@\x01\x04self\x09\0\x07\x04\0\x15[method]container.ref\x01\x0a\x01i\x03\ +\x01@\x01\x04self\x09\0\x0b\x04\0\x16[method]container.root\x01\x0c\x04\0\x17[me\ +thod]container.inner\x01\x0c\x01p\x07\x01@\x01\x04self\x09\0\x0d\x04\0\x1f[metho\ +d]container.list-children\x01\x0e\x01@\x02\x04self\x09\x05child\x09\x01\0\x04\0\x1b\ +[method]container.add-child\x01\x0f\x04\0\x1e[method]container.remove-child\x01\x0f\ +\x01@\x01\x04self\x09\0\x01\x04\0\x16[method]container.size\x01\x10\x01@\x02\x04\ +self\x09\x05value\x01\x01\0\x04\0\x1a[method]container.set-size\x01\x11\x01@\x01\ +\x04self\x09\0\x05\x04\0\x19[method]container.align-x\x01\x12\x04\0\x19[method]c\ +ontainer.align-y\x01\x12\x04\0\x19[method]container.align-z\x01\x12\x01@\x02\x04\ +self\x09\x05value\x05\x01\0\x04\0\x1d[method]container.set-align-x\x01\x13\x04\0\ +\x1d[method]container.set-align-y\x01\x13\x04\0\x1d[method]container.set-align-z\ +\x01\x13\x03\x01\x16unavi:layout/container\x05\x16\x02\x03\0\x0b\x09container\x01\ +B\x0f\x02\x03\x02\x01\x17\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x0b\x04\0\x0d\ +input-handler\x03\0\x02\x04\0\x06button\x03\x01\x01i\x01\x01i\x04\x01@\x01\x04ro\ +ot\x05\0\x06\x04\0\x13[constructor]button\x01\x07\x01h\x04\x01@\x01\x04self\x08\0\ +\x05\x04\0\x13[method]button.root\x01\x09\x01@\x01\x04self\x08\0\x7f\x04\0\x16[m\ +ethod]button.hovered\x01\x0a\x04\0\x16[method]button.pressed\x01\x0a\x03\x01\x0f\ +unavi:ui/button\x05\x18\x01B(\x02\x03\x02\x01\x17\x04\0\x09container\x03\0\0\x02\ +\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x02\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\ +\x04\x04\0\x04text\x03\x01\x04\0\x08text-box\x03\x01\x01i\x06\x01@\x01\x04texts\0\ +\x08\x04\0\x11[constructor]text\x01\x09\x01h\x06\x01@\x01\x04self\x0a\0\x08\x04\0\ +\x10[method]text.ref\x01\x0b\x01p}\x01k\x0c\x01@\x02\x04self\x0a\x05value\x0d\x01\ +\0\x04\0\x15[method]text.set-font\x01\x0e\x01@\x01\x04self\x0a\0s\x04\0\x11[meth\ +od]text.text\x01\x0f\x01@\x02\x04self\x0a\x05values\x01\0\x04\0\x15[method]text.\ +set-text\x01\x10\x01@\x01\x04self\x0a\0v\x04\0\x16[method]text.font-size\x01\x11\ +\x01@\x02\x04self\x0a\x05valuev\x01\0\x04\0\x1a[method]text.set-font-size\x01\x12\ +\x04\0\x16[method]text.thickness\x01\x11\x04\0\x1a[method]text.set-thickness\x01\ +\x12\x01i\x03\x01@\x01\x04self\x0a\0\x13\x04\0\x11[method]text.mesh\x01\x14\x01i\ +\x01\x01i\x07\x01@\x01\x04root\x15\0\x16\x04\0\x15[constructor]text-box\x01\x17\x01\ +h\x07\x01@\x01\x04self\x18\0\x15\x04\0\x15[method]text-box.root\x01\x19\x01@\x01\ +\x04self\x18\0\x08\x04\0\x15[method]text-box.text\x01\x1a\x03\x01\x0dunavi:ui/te\ +xt\x05\x19\x01B\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constr\ +uctor]script\x01\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[metho\ +d]script.update\x01\x04\x04\x01\x12wired:script/types\x05\x1a\x04\x01\x17example\ +:unavi-ui/script\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cpr\ +ocessed-by\x02\x0dwit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-unavi-vscreen/src/bindings.rs b/wasm/example-unavi-vscreen/src/bindings.rs index adc5f63c8..f1cacdef3 100644 --- a/wasm/example-unavi-vscreen/src/bindings.rs +++ b/wasm/example-unavi-vscreen/src/bindings.rs @@ -763,6 +763,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1887,6 +1931,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -5774,8 +5898,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7479] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xba9\x01A\x02\x01A\"\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7639] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xda:\x01A\x02\x01A\"\ \x01B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\ \0\x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01\ r\x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -5855,90 +5979,93 @@ y\x01'\x01h\x09\x01k(\x01@\x02\x04self\x0d\x05value)\x01\0\x04\0\x1b[method]node .set-rigid-body\x01*\x01i\x03\x01k+\x01@\x01\x04self\x0d\0,\x04\0\x1a[method]nod\ e.input-handler\x01-\x01h\x03\x01k.\x01@\x02\x04self\x0d\x05value/\x01\0\x04\0\x1e\ [method]node.set-input-handler\x010\x03\x01\x10wired:scene/node\x05\x0f\x02\x03\0\ -\0\x04vec2\x02\x03\0\x06\x04node\x01B}\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\0\0\ -\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\ -\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\ -\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06\ -cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07\ -sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\ -\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x01i\x08\x01@\x01\ -\x04size\x01\0\x14\x04\0\x16[constructor]rectangle\x01\x15\x01h\x08\x01@\x01\x04\ -self\x16\0\x01\x04\0\x16[method]rectangle.size\x01\x17\x01@\x02\x04self\x16\x05v\ -alue\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x18\x01i\x05\x01@\x01\x04\ -self\x16\0\x19\x04\0\x19[method]rectangle.to-mesh\x01\x1a\x01i\x07\x01@\x01\x04s\ -elf\x16\0\x1b\x04\0\x19[method]rectangle.to-node\x01\x1c\x04\0![method]rectangle\ -.to-physics-node\x01\x1c\x01i\x09\x01@\x01\x06radiusv\0\x1d\x04\0\x13[constructo\ -r]circle\x01\x1e\x01h\x09\x01@\x01\x04self\x1f\0v\x04\0\x15[method]circle.radius\ -\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\ -\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[method]circle.resolution\x01\"\x01@\x02\x04\ -self\x1f\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01#\x01@\x01\x04\ -self\x1f\0\x19\x04\0\x16[method]circle.to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\ -\0\x16[method]circle.to-node\x01%\x04\0\x1e[method]circle.to-physics-node\x01%\x01\ -i\x0a\x01@\x01\x09half-size\x01\0&\x04\0\x14[constructor]ellipse\x01'\x01h\x0a\x01\ -@\x01\x04self(\0\x01\x04\0\x19[method]ellipse.half-size\x01)\x01@\x02\x04self(\x05\ -value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01*\x01@\x01\x04self(\0{\ -\x04\0\x1a[method]ellipse.resolution\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\ -\x1e[method]ellipse.set-resolution\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method\ -]ellipse.to-mesh\x01-\x01@\x01\x04self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01\ -.\x04\0\x1f[method]ellipse.to-physics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06\ -heightv\0/\x04\0\x15[constructor]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\ -\0\x14[method]cylinder.cap\x012\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[m\ -ethod]cylinder.set-cap\x013\x01@\x01\x04self1\0v\x04\0\x17[method]cylinder.heigh\ -t\x014\x01@\x02\x04self1\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x01\ -5\x04\0\x17[method]cylinder.radius\x014\x04\0\x1b[method]cylinder.set-radius\x01\ -5\x01@\x01\x04self1\0}\x04\0\x1b[method]cylinder.resolution\x016\x01@\x02\x04sel\ -f1\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x017\x04\0\x19[metho\ -d]cylinder.segments\x016\x04\0\x1d[method]cylinder.set-segments\x017\x01@\x01\x04\ -self1\0\x19\x04\0\x18[method]cylinder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\ -\x18[method]cylinder.to-node\x019\x04\0\x20[method]cylinder.to-physics-node\x019\ -\x01i\x0c\x01@\x01\x04size\x03\0:\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01\ -@\x01\x04self<\0\x03\x04\0\x13[method]cuboid.size\x01=\x01@\x02\x04self<\x05valu\ -e\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16\ -[method]cuboid.to-mesh\x01?\x01@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-n\ -ode\x01@\x04\0\x1e[method]cuboid.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiu\ -sv\0\xc1\0\x04\0\x16[static]sphere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01\ -B\x01h\x13\x01@\x01\x04self\xc3\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\ -\x04self\xc3\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04\ -self\xc3\0\0\x12\x04\0\x13[method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05val\ -ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\ -\0\x16[method]sphere.to-mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]\ -sphere.to-node\x01I\x04\0\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unav\ -i:shapes/api\x05\x12\x01B#\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\ -\x01\x11\x04\0\x04node\x03\0\x02\x01m\x03\x06center\x03end\x05start\x04\0\x09ali\ -gnment\x03\0\x04\x04\0\x09container\x03\x01\x01i\x06\x01@\x01\x04size\x01\0\x07\x04\ -\0\x16[constructor]container\x01\x08\x01h\x06\x01@\x01\x04self\x09\0\x07\x04\0\x15\ -[method]container.ref\x01\x0a\x01i\x03\x01@\x01\x04self\x09\0\x0b\x04\0\x16[meth\ -od]container.root\x01\x0c\x04\0\x17[method]container.inner\x01\x0c\x01p\x07\x01@\ -\x01\x04self\x09\0\x0d\x04\0\x1f[method]container.list-children\x01\x0e\x01@\x02\ -\x04self\x09\x05child\x09\x01\0\x04\0\x1b[method]container.add-child\x01\x0f\x04\ -\0\x1e[method]container.remove-child\x01\x0f\x01@\x01\x04self\x09\0\x01\x04\0\x16\ -[method]container.size\x01\x10\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1a\ -[method]container.set-size\x01\x11\x01@\x01\x04self\x09\0\x05\x04\0\x19[method]c\ -ontainer.align-x\x01\x12\x04\0\x19[method]container.align-y\x01\x12\x04\0\x19[me\ -thod]container.align-z\x01\x12\x01@\x02\x04self\x09\x05value\x05\x01\0\x04\0\x1d\ -[method]container.set-align-x\x01\x13\x04\0\x1d[method]container.set-align-y\x01\ -\x13\x04\0\x1d[method]container.set-align-z\x01\x13\x03\x01\x16unavi:layout/cont\ -ainer\x05\x13\x02\x03\0\x08\x09container\x01B&\x02\x03\x02\x01\x14\x04\0\x09cont\ -ainer\x03\0\0\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x02\x02\x03\x02\x01\x10\ -\x04\0\x04vec2\x03\0\x04\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x06\x02\x03\x02\ -\x01\x11\x04\0\x04node\x03\0\x08\x01q\x02\x06circle\x01v\0\x09rectangle\x01\x05\0\ -\x04\0\x0cscreen-shape\x03\0\x0a\x01q\x03\x09butterfly\0\0\x06circle\0\0\x09tran\ -sform\x01\x03\0\x04\0\x0cchild-layout\x03\0\x0c\x04\0\x06screen\x03\x01\x01i\x0e\ -\x01@\x01\x05shape\x0b\0\x0f\x04\0\x13[constructor]screen\x01\x10\x01h\x0e\x01i\x01\ -\x01@\x01\x04self\x11\0\x12\x04\0\x13[method]screen.root\x01\x13\x01@\x01\x04sel\ -f\x11\0\x7f\x04\0\x16[method]screen.visible\x01\x14\x01@\x02\x04self\x11\x05valu\ -e\x7f\x01\0\x04\0\x1a[method]screen.set-visible\x01\x15\x01@\x01\x04self\x11\0\x0d\ -\x04\0\x1b[method]screen.child-layout\x01\x16\x01@\x02\x04self\x11\x05value\x0d\x01\ -\0\x04\0\x1f[method]screen.set-child-layout\x01\x17\x01p\x0f\x01@\x01\x04self\x11\ -\0\x18\x04\0\x17[method]screen.children\x01\x19\x01@\x02\x04self\x11\x05value\x11\ -\x01\0\x04\0\x18[method]screen.add-child\x01\x1a\x04\0\x1b[method]screen.remove-\ -child\x01\x1a\x01@\x02\x04self\x11\x05deltav\x01\0\x04\0\x15[method]screen.updat\ -e\x01\x1b\x03\x01\x14unavi:vscreen/screen\x05\x15\x01B\x07\x04\0\x06script\x03\x01\ -\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\x02\x04sel\ -f\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12wired:sc\ -ript/types\x05\x16\x04\x01\x1cexample:unavi-vscreen/script\x04\0\x0b\x0c\x01\0\x06\ -script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208\ -.1\x10wit-bindgen-rust\x060.25.0"; +\0\x04vec2\x02\x03\0\x06\x04node\x01B\x88\x01\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\ +\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04me\ +sh\x03\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\ +\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\ +\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\ +\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02\ +uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axe\ +s\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\ +\x16\x01h\x08\x01@\x01\x04self\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\ +\x01@\x02\x04self\x17\x05value\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\ +\x19\x01i\x05\x01@\x01\x04self\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\ +\x01i\x07\x01@\x01\x04self\x17\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\ +\0![method]rectangle.to-physics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\ +\0\x13[constructor]circle\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[met\ +hod]circle.radius\x01!\x01@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]cir\ +cle.set-radius\x01\"\x01@\x01\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01\ +#\x01@\x02\x04self\x20\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01\ +$\x01@\x01\x04self\x20\0\x1a\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04se\ +lf\x20\0\x1c\x04\0\x16[method]circle.to-node\x01&\x04\0\x1e[method]circle.to-phy\ +sics-node\x01&\x01i\x0a\x01@\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellip\ +se\x01(\x01h\x0a\x01@\x01\x04self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\ +\x01@\x02\x04self)\x05value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01\ ++\x01@\x01\x04self)\0{\x04\0\x1a[method]ellipse.resolution\x01,\x01@\x02\x04self\ +)\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolution\x01-\x01@\x01\x04self)\ +\0\x1a\x04\0\x17[method]ellipse.to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[m\ +ethod]ellipse.to-node\x01/\x04\0\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\ +\x01@\x02\x06radiusv\x06heightv\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01\ +@\x01\x04self2\0\x7f\x04\0\x14[method]cylinder.cap\x013\x01@\x02\x04self2\x05val\ +ue\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17\ +[method]cylinder.height\x015\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]\ +cylinder.set-height\x016\x04\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]\ +cylinder.set-radius\x016\x01@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resoluti\ +on\x017\x01@\x02\x04self2\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resoluti\ +on\x018\x04\0\x19[method]cylinder.segments\x017\x04\0\x1d[method]cylinder.set-se\ +gments\x018\x01@\x01\x04self2\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\ +\x04self2\0\x1c\x04\0\x18[method]cylinder.to-node\x01:\x04\0\x20[method]cylinder\ +.to-physics-node\x01:\x01i\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cub\ +oid\x01<\x01h\x0c\x01@\x01\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\ +\x02\x04self=\x05value\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04\ +self=\0\x1a\x04\0\x16[method]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16\ +[method]cuboid.to-node\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\ +\x01@\x01\x06radiusv\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[stat\ +ic]sphere.new-uv\x01C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere\ +.radius\x01E\x01@\x02\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-\ +radius\x01F\x01@\x01\x04self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\ +\x04self\xc4\0\x05value\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\ +\x04self\xc4\0\0\x1a\x04\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\ +\0\x1c\x04\0\x16[method]sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-n\ +ode\x01J\x01i\x14\x01@\0\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\ +\x04self\xcd\0\0v\x04\0\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valu\ +ev\x01\0\x04\0\x15[method]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14\ +[method]axes.to-node\x01P\x03\x01\x10unavi:shapes/api\x05\x12\x01B#\x02\x03\x02\x01\ +\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x02\x01m\x03\x06\ +center\x03end\x05start\x04\0\x09alignment\x03\0\x04\x04\0\x09container\x03\x01\x01\ +i\x06\x01@\x01\x04size\x01\0\x07\x04\0\x16[constructor]container\x01\x08\x01h\x06\ +\x01@\x01\x04self\x09\0\x07\x04\0\x15[method]container.ref\x01\x0a\x01i\x03\x01@\ +\x01\x04self\x09\0\x0b\x04\0\x16[method]container.root\x01\x0c\x04\0\x17[method]\ +container.inner\x01\x0c\x01p\x07\x01@\x01\x04self\x09\0\x0d\x04\0\x1f[method]con\ +tainer.list-children\x01\x0e\x01@\x02\x04self\x09\x05child\x09\x01\0\x04\0\x1b[m\ +ethod]container.add-child\x01\x0f\x04\0\x1e[method]container.remove-child\x01\x0f\ +\x01@\x01\x04self\x09\0\x01\x04\0\x16[method]container.size\x01\x10\x01@\x02\x04\ +self\x09\x05value\x01\x01\0\x04\0\x1a[method]container.set-size\x01\x11\x01@\x01\ +\x04self\x09\0\x05\x04\0\x19[method]container.align-x\x01\x12\x04\0\x19[method]c\ +ontainer.align-y\x01\x12\x04\0\x19[method]container.align-z\x01\x12\x01@\x02\x04\ +self\x09\x05value\x05\x01\0\x04\0\x1d[method]container.set-align-x\x01\x13\x04\0\ +\x1d[method]container.set-align-y\x01\x13\x04\0\x1d[method]container.set-align-z\ +\x01\x13\x03\x01\x16unavi:layout/container\x05\x13\x02\x03\0\x08\x09container\x01\ +B&\x02\x03\x02\x01\x14\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x0c\x04\0\x09t\ +ransform\x03\0\x02\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\0\x04\x02\x03\x02\x01\x04\ +\x04\0\x04vec3\x03\0\x06\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x08\x01q\x02\x06\ +circle\x01v\0\x09rectangle\x01\x05\0\x04\0\x0cscreen-shape\x03\0\x0a\x01q\x03\x09\ +butterfly\0\0\x06circle\0\0\x09transform\x01\x03\0\x04\0\x0cchild-layout\x03\0\x0c\ +\x04\0\x06screen\x03\x01\x01i\x0e\x01@\x01\x05shape\x0b\0\x0f\x04\0\x13[construc\ +tor]screen\x01\x10\x01h\x0e\x01i\x01\x01@\x01\x04self\x11\0\x12\x04\0\x13[method\ +]screen.root\x01\x13\x01@\x01\x04self\x11\0\x7f\x04\0\x16[method]screen.visible\x01\ +\x14\x01@\x02\x04self\x11\x05value\x7f\x01\0\x04\0\x1a[method]screen.set-visible\ +\x01\x15\x01@\x01\x04self\x11\0\x0d\x04\0\x1b[method]screen.child-layout\x01\x16\ +\x01@\x02\x04self\x11\x05value\x0d\x01\0\x04\0\x1f[method]screen.set-child-layou\ +t\x01\x17\x01p\x0f\x01@\x01\x04self\x11\0\x18\x04\0\x17[method]screen.children\x01\ +\x19\x01@\x02\x04self\x11\x05value\x11\x01\0\x04\0\x18[method]screen.add-child\x01\ +\x1a\x04\0\x1b[method]screen.remove-child\x01\x1a\x01@\x02\x04self\x11\x05deltav\ +\x01\0\x04\0\x15[method]screen.update\x01\x1b\x03\x01\x14unavi:vscreen/screen\x05\ +\x15\x01B\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]\ +script\x01\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]scri\ +pt.update\x01\x04\x04\x01\x12wired:script/types\x05\x16\x04\x01\x1cexample:unavi\ +-vscreen/script\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cpro\ +cessed-by\x02\x0dwit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-wired-input/src/bindings.rs b/wasm/example-wired-input/src/bindings.rs index 63374ff8f..c7750367c 100644 --- a/wasm/example-wired-input/src/bindings.rs +++ b/wasm/example-wired-input/src/bindings.rs @@ -801,6 +801,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1925,6 +1969,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -7985,8 +8109,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 10336] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xe3O\x01A\x02\x01A+\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 10496] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x83Q\x01A\x02\x01A+\x01\ B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\0\ \x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01r\ \x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -8078,139 +8202,143 @@ t.remove-scene\x01\x0a\x01@\0\0\x06\x04\0\x12[constructor]scene\x01\x0b\x01i\x03 d]scene.transform\x01\x12\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1b[meth\ od]scene.set-transform\x01\x13\x01@\x01\x04self\x09\0\x7f\x04\0\x14[method]scene\ .active\x01\x14\x01@\x02\x04self\x09\x05value\x7f\x01\0\x04\0\x18[method]scene.s\ -et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B}\x02\ -\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\ -\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\ -\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\ -\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\ -\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\ -\0\x06sphere\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]r\ -ectangle\x01\x15\x01h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.\ -size\x01\x17\x01@\x02\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.\ -set-size\x01\x18\x01i\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.\ -to-mesh\x01\x1a\x01i\x07\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.t\ -o-node\x01\x1c\x04\0![method]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\ -\x06radiusv\0\x1d\x04\0\x13[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\ -\x1f\0v\x04\0\x15[method]circle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\ -\0\x04\0\x19[method]circle.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[met\ -hod]circle.resolution\x01\"\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[metho\ -d]circle.set-resolution\x01#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.\ -to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\ -\0\x1e[method]circle.to-physics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\ -\0\x14[constructor]ellipse\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[metho\ -d]ellipse.half-size\x01)\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]e\ -llipse.set-half-size\x01*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resoluti\ -on\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ -n\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04\ -self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-ph\ -ysics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor\ -]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x01\ -2\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01\ -@\x01\x04self1\0v\x04\0\x17[method]cylinder.height\x014\x01@\x02\x04self1\x05val\ -uev\x01\0\x04\0\x1b[method]cylinder.set-height\x015\x04\0\x17[method]cylinder.ra\ -dius\x014\x04\0\x1b[method]cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b\ -[method]cylinder.resolution\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[met\ -hod]cylinder.set-resolution\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d\ -[method]cylinder.set-segments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cyli\ -nder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\ -\x04\0\x20[method]cylinder.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\ -\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[me\ -thod]cuboid.size\x01=\x01@\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cubo\ -id.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01\ -@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboi\ -d.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sph\ -ere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\ -\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\ -\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[\ -method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[meth\ -od]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-\ -mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\ -\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unavi:shapes/api\x05\x13\x01B\ -\x04\x01m\x04\x05debug\x04info\x04warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\ -\x05level\x01\x07messages\x01\0\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\ -\x14\x01B\x11\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\0\x01i\x01\x01r\x14\x04hip\ -s\x02\x05spine\x02\x05chest\x02\x0bupper-chest\x02\x04neck\x02\x04head\x02\x0dle\ -ft-shoulder\x02\x0eleft-upper-arm\x02\x0eleft-lower-arm\x02\x09left-hand\x02\x0e\ -right-shoulder\x02\x0fright-upper-arm\x02\x0fright-lower-arm\x02\x0aright-hand\x02\ -\x0eleft-upper-leg\x02\x0eleft-lower-leg\x02\x09left-foot\x02\x0fright-upper-leg\ -\x02\x0fright-lower-leg\x02\x0aright-foot\x02\x04\0\x08skeleton\x03\0\x03\x04\0\x06\ -player\x03\x01\x01h\x05\x01@\x01\x04self\x06\0\x02\x04\0\x13[method]player.root\x01\ -\x07\x01@\x01\x04self\x06\0\x04\x04\0\x17[method]player.skeleton\x01\x08\x01i\x05\ -\x01p\x09\x01@\0\0\x0a\x04\0\x0clist-players\x01\x0b\x01@\0\0\x09\x04\0\x0clocal\ --player\x01\x0c\x03\x01\x10wired:player/api\x05\x15\x01B\x15\x02\x03\x02\x01\x10\ -\x04\0\x04node\x03\0\0\x04\0\x05scene\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x12[co\ -nstructor]scene\x01\x04\x01h\x02\x01@\x01\x04self\x05\0y\x04\0\x10[method]scene.\ -id\x01\x06\x01@\x01\x04self\x05\0s\x04\0\x12[method]scene.name\x01\x07\x01@\x02\x04\ -self\x05\x05values\x01\0\x04\0\x16[method]scene.set-name\x01\x08\x01i\x01\x01p\x09\ -\x01@\x01\x04self\x05\0\x0a\x04\0\x13[method]scene.nodes\x01\x0b\x01h\x01\x01@\x02\ -\x04self\x05\x05value\x0c\x01\0\x04\0\x16[method]scene.add-node\x01\x0d\x04\0\x19\ -[method]scene.remove-node\x01\x0d\x03\x01\x11wired:scene/scene\x05\x16\x02\x03\0\ -\x0b\x05scene\x01B5\x02\x03\x02\x01\x02\x04\0\x08material\x03\0\0\x02\x03\x02\x01\ -\x0a\x04\0\x04mesh\x03\0\x02\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\x04\x02\x03\ -\x02\x01\x17\x04\0\x05scene\x03\0\x06\x04\0\x04gltf\x03\x01\x01i\x08\x01@\0\0\x09\ -\x04\0\x11[constructor]gltf\x01\x0a\x01h\x08\x01i\x01\x01p\x0c\x01@\x01\x04self\x0b\ -\0\x0d\x04\0\x1b[method]gltf.list-materials\x01\x0e\x01h\x01\x01@\x02\x04self\x0b\ -\x05value\x0f\x01\0\x04\0\x19[method]gltf.add-material\x01\x10\x04\0\x1c[method]\ -gltf.remove-material\x01\x10\x01i\x03\x01p\x11\x01@\x01\x04self\x0b\0\x12\x04\0\x18\ -[method]gltf.list-meshes\x01\x13\x01h\x03\x01@\x02\x04self\x0b\x05value\x14\x01\0\ -\x04\0\x15[method]gltf.add-mesh\x01\x15\x04\0\x18[method]gltf.remove-mesh\x01\x15\ -\x01i\x05\x01p\x16\x01@\x01\x04self\x0b\0\x17\x04\0\x17[method]gltf.list-nodes\x01\ -\x18\x01h\x05\x01@\x02\x04self\x0b\x05value\x19\x01\0\x04\0\x15[method]gltf.add-\ -node\x01\x1a\x04\0\x18[method]gltf.remove-node\x01\x1a\x01i\x07\x01p\x1b\x01@\x01\ -\x04self\x0b\0\x1c\x04\0\x18[method]gltf.list-scenes\x01\x1d\x01h\x07\x01@\x02\x04\ -self\x0b\x05value\x1e\x01\0\x04\0\x16[method]gltf.add-scene\x01\x1f\x04\0\x19[me\ -thod]gltf.remove-scene\x01\x1f\x01k\x1b\x01@\x01\x04self\x0b\0\x20\x04\0\x19[met\ -hod]gltf.active-scene\x01!\x01k\x1e\x01@\x02\x04self\x0b\x05value\"\x01\0\x04\0\x1d\ -[method]gltf.set-active-scene\x01#\x04\0\x1a[method]gltf.default-scene\x01!\x04\0\ -\x1e[method]gltf.set-default-scene\x01\x1f\x03\x01\x10wired:scene/gltf\x05\x18\x02\ -\x03\0\x0c\x04gltf\x01Bt\x02\x03\x02\x01\x19\x04\0\x04gltf\x03\0\0\x02\x03\x02\x01\ -\x10\x04\0\x04node\x03\0\x02\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x04\x04\ -\0\x04glxf\x03\x01\x04\0\x0aasset-gltf\x03\x01\x04\0\x0aasset-glxf\x03\x01\x01i\x07\ -\x01i\x08\x01q\x02\x04gltf\x01\x09\0\x04glxf\x01\x0a\0\x04\0\x05asset\x03\0\x0b\x01\ -h\x07\x01h\x08\x01q\x02\x04gltf\x01\x0d\0\x04glxf\x01\x0e\0\x04\0\x0casset-borro\ -w\x03\0\x0f\x04\0\x09glxf-node\x03\x01\x01i\x11\x01p\x12\x01q\x02\x05asset\x01\x0c\ -\0\x05nodes\x01\x13\0\x04\0\x08children\x03\0\x14\x01h\x11\x01p\x16\x01q\x02\x05\ -asset\x01\x10\0\x05nodes\x01\x17\0\x04\0\x0fchildren-borrow\x03\0\x18\x04\0\x0ag\ -lxf-scene\x03\x01\x01i\x06\x01@\0\0\x1b\x04\0\x11[constructor]glxf\x01\x1c\x01h\x06\ -\x01p\x0c\x01@\x01\x04self\x1d\0\x1e\x04\0\x18[method]glxf.list-assets\x01\x1f\x01\ -@\x02\x04self\x1d\x05value\x10\x01\0\x04\0\x16[method]glxf.add-asset\x01\x20\x04\ -\0\x19[method]glxf.remove-asset\x01\x20\x01@\x01\x04self\x1d\0\x13\x04\0\x17[met\ -hod]glxf.list-nodes\x01!\x01@\x02\x04self\x1d\x05value\x16\x01\0\x04\0\x15[metho\ -d]glxf.add-node\x01\"\x04\0\x18[method]glxf.remove-node\x01\"\x01i\x1a\x01p#\x01\ -@\x01\x04self\x1d\0$\x04\0\x18[method]glxf.list-scenes\x01%\x01h\x1a\x01@\x02\x04\ -self\x1d\x05value&\x01\0\x04\0\x16[method]glxf.add-scene\x01'\x04\0\x19[method]g\ -lxf.remove-scene\x01'\x01k#\x01@\x01\x04self\x1d\0(\x04\0\x19[method]glxf.active\ --scene\x01)\x01k&\x01@\x02\x04self\x1d\x05value*\x01\0\x04\0\x1d[method]glxf.set\ --active-scene\x01+\x04\0\x1a[method]glxf.default-scene\x01)\x04\0\x1e[method]glx\ -f.set-default-scene\x01'\x01h\x01\x01@\x01\x08document,\0\x09\x04\0\x17[construc\ -tor]asset-gltf\x01-\x01i\x01\x01@\x01\x04self\x0d\0.\x04\0\x1b[method]asset-gltf\ -.document\x01/\x01i\x03\x01p0\x01@\x01\x04self\x0d\01\x04\0\x1d[method]asset-glt\ -f.list-nodes\x012\x01h\x03\x01@\x02\x04self\x0d\x05value3\x01\0\x04\0\x1b[method\ -]asset-gltf.add-node\x014\x04\0\x1e[method]asset-gltf.remove-node\x014\x01@\x01\x08\ -document\x1d\0\x0a\x04\0\x17[constructor]asset-glxf\x015\x01@\x01\x04self\x0e\0\x1b\ -\x04\0\x1b[method]asset-glxf.document\x016\x01@\x01\x04self\x0e\0\x13\x04\0\x1d[\ -method]asset-glxf.list-nodes\x017\x01@\x02\x04self\x0e\x05value\x16\x01\0\x04\0\x1b\ -[method]asset-glxf.add-node\x018\x04\0\x1e[method]asset-glxf.remove-node\x018\x01\ -@\0\0\x12\x04\0\x16[constructor]glxf-node\x019\x01@\x01\x04self\x16\0y\x04\0\x14\ -[method]glxf-node.id\x01:\x01@\x01\x04self\x16\0s\x04\0\x16[method]glxf-node.nam\ -e\x01;\x01@\x02\x04self\x16\x05values\x01\0\x04\0\x1a[method]glxf-node.set-name\x01\ -<\x01@\x01\x04self\x16\0\x05\x04\0\x1b[method]glxf-node.transform\x01=\x01@\x02\x04\ -self\x16\x05value\x05\x01\0\x04\0\x1f[method]glxf-node.set-transform\x01>\x01k\x12\ -\x01@\x01\x04self\x16\0?\x04\0\x18[method]glxf-node.parent\x01@\x01k\x15\x01@\x01\ -\x04self\x16\0\xc1\0\x04\0\x1a[method]glxf-node.children\x01B\x01k\x19\x01@\x02\x04\ -self\x16\x05value\xc3\0\x01\0\x04\0\x1e[method]glxf-node.set-children\x01D\x01@\0\ -\0#\x04\0\x17[constructor]glxf-scene\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]\ -glxf-scene.id\x01F\x01@\x01\x04self&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01\ -@\x02\x04self&\x05values\x01\0\x04\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\ -\x04self&\0\x13\x04\0\x18[method]glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\ -\x16\x01\0\x04\0\x1b[method]glxf-scene.add-node\x01J\x04\0\x1e[method]glxf-scene\ -.remove-node\x01J\x04\0\x08get-root\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x1a\x01\ -B\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\ -\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\ -\x04\x04\x01\x12wired:script/types\x05\x1b\x04\x01\x1aexample:wired-input/script\ -\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0d\ -wit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B\x88\ +\x01\x02\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\ +\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\ +\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07e\ +llipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csub\ +divisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09\ +sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-ki\ +nd\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04\ +size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\ +\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\ +\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\ +\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\ +\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\0![method]rectangle.to-phy\ +sics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circl\ +e\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01\ +@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\ +\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05\ +value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\ +\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[metho\ +d]circle.to-node\x01&\x04\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\ +\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04\ +self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\ +\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a\ +[method]ellipse.resolution\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[meth\ +od]ellipse.set-resolution\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.\ +to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\ +\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\ +\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14\ +[method]cylinder.cap\x013\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]\ +cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\ +\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\ +\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01\ +@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resolution\x017\x01@\x02\x04self2\x05\ +value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x018\x04\0\x19[method]cyli\ +nder.segments\x017\x04\0\x1d[method]cylinder.set-segments\x018\x01@\x01\x04self2\ +\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[\ +method]cylinder.to-node\x01:\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\ +\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\ +\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\ +\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[m\ +ethod]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-nod\ +e\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\ +\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01\ +C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\ +\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04\ +self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05val\ +ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\ +\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]\ +sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\ +\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\ +\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[meth\ +od]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\ +\x01P\x03\x01\x10unavi:shapes/api\x05\x13\x01B\x04\x01m\x04\x05debug\x04info\x04\ +warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\x05level\x01\x07messages\x01\0\ +\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\x14\x01B\x11\x02\x03\x02\x01\x10\ +\x04\0\x04node\x03\0\0\x01i\x01\x01r\x14\x04hips\x02\x05spine\x02\x05chest\x02\x0b\ +upper-chest\x02\x04neck\x02\x04head\x02\x0dleft-shoulder\x02\x0eleft-upper-arm\x02\ +\x0eleft-lower-arm\x02\x09left-hand\x02\x0eright-shoulder\x02\x0fright-upper-arm\ +\x02\x0fright-lower-arm\x02\x0aright-hand\x02\x0eleft-upper-leg\x02\x0eleft-lowe\ +r-leg\x02\x09left-foot\x02\x0fright-upper-leg\x02\x0fright-lower-leg\x02\x0arigh\ +t-foot\x02\x04\0\x08skeleton\x03\0\x03\x04\0\x06player\x03\x01\x01h\x05\x01@\x01\ +\x04self\x06\0\x02\x04\0\x13[method]player.root\x01\x07\x01@\x01\x04self\x06\0\x04\ +\x04\0\x17[method]player.skeleton\x01\x08\x01i\x05\x01p\x09\x01@\0\0\x0a\x04\0\x0c\ +list-players\x01\x0b\x01@\0\0\x09\x04\0\x0clocal-player\x01\x0c\x03\x01\x10wired\ +:player/api\x05\x15\x01B\x15\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\0\x04\0\x05\ +scene\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x12[constructor]scene\x01\x04\x01h\x02\ +\x01@\x01\x04self\x05\0y\x04\0\x10[method]scene.id\x01\x06\x01@\x01\x04self\x05\0\ +s\x04\0\x12[method]scene.name\x01\x07\x01@\x02\x04self\x05\x05values\x01\0\x04\0\ +\x16[method]scene.set-name\x01\x08\x01i\x01\x01p\x09\x01@\x01\x04self\x05\0\x0a\x04\ +\0\x13[method]scene.nodes\x01\x0b\x01h\x01\x01@\x02\x04self\x05\x05value\x0c\x01\ +\0\x04\0\x16[method]scene.add-node\x01\x0d\x04\0\x19[method]scene.remove-node\x01\ +\x0d\x03\x01\x11wired:scene/scene\x05\x16\x02\x03\0\x0b\x05scene\x01B5\x02\x03\x02\ +\x01\x02\x04\0\x08material\x03\0\0\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x02\x02\ +\x03\x02\x01\x10\x04\0\x04node\x03\0\x04\x02\x03\x02\x01\x17\x04\0\x05scene\x03\0\ +\x06\x04\0\x04gltf\x03\x01\x01i\x08\x01@\0\0\x09\x04\0\x11[constructor]gltf\x01\x0a\ +\x01h\x08\x01i\x01\x01p\x0c\x01@\x01\x04self\x0b\0\x0d\x04\0\x1b[method]gltf.lis\ +t-materials\x01\x0e\x01h\x01\x01@\x02\x04self\x0b\x05value\x0f\x01\0\x04\0\x19[m\ +ethod]gltf.add-material\x01\x10\x04\0\x1c[method]gltf.remove-material\x01\x10\x01\ +i\x03\x01p\x11\x01@\x01\x04self\x0b\0\x12\x04\0\x18[method]gltf.list-meshes\x01\x13\ +\x01h\x03\x01@\x02\x04self\x0b\x05value\x14\x01\0\x04\0\x15[method]gltf.add-mesh\ +\x01\x15\x04\0\x18[method]gltf.remove-mesh\x01\x15\x01i\x05\x01p\x16\x01@\x01\x04\ +self\x0b\0\x17\x04\0\x17[method]gltf.list-nodes\x01\x18\x01h\x05\x01@\x02\x04sel\ +f\x0b\x05value\x19\x01\0\x04\0\x15[method]gltf.add-node\x01\x1a\x04\0\x18[method\ +]gltf.remove-node\x01\x1a\x01i\x07\x01p\x1b\x01@\x01\x04self\x0b\0\x1c\x04\0\x18\ +[method]gltf.list-scenes\x01\x1d\x01h\x07\x01@\x02\x04self\x0b\x05value\x1e\x01\0\ +\x04\0\x16[method]gltf.add-scene\x01\x1f\x04\0\x19[method]gltf.remove-scene\x01\x1f\ +\x01k\x1b\x01@\x01\x04self\x0b\0\x20\x04\0\x19[method]gltf.active-scene\x01!\x01\ +k\x1e\x01@\x02\x04self\x0b\x05value\"\x01\0\x04\0\x1d[method]gltf.set-active-sce\ +ne\x01#\x04\0\x1a[method]gltf.default-scene\x01!\x04\0\x1e[method]gltf.set-defau\ +lt-scene\x01\x1f\x03\x01\x10wired:scene/gltf\x05\x18\x02\x03\0\x0c\x04gltf\x01Bt\ +\x02\x03\x02\x01\x19\x04\0\x04gltf\x03\0\0\x02\x03\x02\x01\x10\x04\0\x04node\x03\ +\0\x02\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x04\x04\0\x04glxf\x03\x01\x04\ +\0\x0aasset-gltf\x03\x01\x04\0\x0aasset-glxf\x03\x01\x01i\x07\x01i\x08\x01q\x02\x04\ +gltf\x01\x09\0\x04glxf\x01\x0a\0\x04\0\x05asset\x03\0\x0b\x01h\x07\x01h\x08\x01q\ +\x02\x04gltf\x01\x0d\0\x04glxf\x01\x0e\0\x04\0\x0casset-borrow\x03\0\x0f\x04\0\x09\ +glxf-node\x03\x01\x01i\x11\x01p\x12\x01q\x02\x05asset\x01\x0c\0\x05nodes\x01\x13\ +\0\x04\0\x08children\x03\0\x14\x01h\x11\x01p\x16\x01q\x02\x05asset\x01\x10\0\x05\ +nodes\x01\x17\0\x04\0\x0fchildren-borrow\x03\0\x18\x04\0\x0aglxf-scene\x03\x01\x01\ +i\x06\x01@\0\0\x1b\x04\0\x11[constructor]glxf\x01\x1c\x01h\x06\x01p\x0c\x01@\x01\ +\x04self\x1d\0\x1e\x04\0\x18[method]glxf.list-assets\x01\x1f\x01@\x02\x04self\x1d\ +\x05value\x10\x01\0\x04\0\x16[method]glxf.add-asset\x01\x20\x04\0\x19[method]glx\ +f.remove-asset\x01\x20\x01@\x01\x04self\x1d\0\x13\x04\0\x17[method]glxf.list-nod\ +es\x01!\x01@\x02\x04self\x1d\x05value\x16\x01\0\x04\0\x15[method]glxf.add-node\x01\ +\"\x04\0\x18[method]glxf.remove-node\x01\"\x01i\x1a\x01p#\x01@\x01\x04self\x1d\0\ +$\x04\0\x18[method]glxf.list-scenes\x01%\x01h\x1a\x01@\x02\x04self\x1d\x05value&\ +\x01\0\x04\0\x16[method]glxf.add-scene\x01'\x04\0\x19[method]glxf.remove-scene\x01\ +'\x01k#\x01@\x01\x04self\x1d\0(\x04\0\x19[method]glxf.active-scene\x01)\x01k&\x01\ +@\x02\x04self\x1d\x05value*\x01\0\x04\0\x1d[method]glxf.set-active-scene\x01+\x04\ +\0\x1a[method]glxf.default-scene\x01)\x04\0\x1e[method]glxf.set-default-scene\x01\ +'\x01h\x01\x01@\x01\x08document,\0\x09\x04\0\x17[constructor]asset-gltf\x01-\x01\ +i\x01\x01@\x01\x04self\x0d\0.\x04\0\x1b[method]asset-gltf.document\x01/\x01i\x03\ +\x01p0\x01@\x01\x04self\x0d\01\x04\0\x1d[method]asset-gltf.list-nodes\x012\x01h\x03\ +\x01@\x02\x04self\x0d\x05value3\x01\0\x04\0\x1b[method]asset-gltf.add-node\x014\x04\ +\0\x1e[method]asset-gltf.remove-node\x014\x01@\x01\x08document\x1d\0\x0a\x04\0\x17\ +[constructor]asset-glxf\x015\x01@\x01\x04self\x0e\0\x1b\x04\0\x1b[method]asset-g\ +lxf.document\x016\x01@\x01\x04self\x0e\0\x13\x04\0\x1d[method]asset-glxf.list-no\ +des\x017\x01@\x02\x04self\x0e\x05value\x16\x01\0\x04\0\x1b[method]asset-glxf.add\ +-node\x018\x04\0\x1e[method]asset-glxf.remove-node\x018\x01@\0\0\x12\x04\0\x16[c\ +onstructor]glxf-node\x019\x01@\x01\x04self\x16\0y\x04\0\x14[method]glxf-node.id\x01\ +:\x01@\x01\x04self\x16\0s\x04\0\x16[method]glxf-node.name\x01;\x01@\x02\x04self\x16\ +\x05values\x01\0\x04\0\x1a[method]glxf-node.set-name\x01<\x01@\x01\x04self\x16\0\ +\x05\x04\0\x1b[method]glxf-node.transform\x01=\x01@\x02\x04self\x16\x05value\x05\ +\x01\0\x04\0\x1f[method]glxf-node.set-transform\x01>\x01k\x12\x01@\x01\x04self\x16\ +\0?\x04\0\x18[method]glxf-node.parent\x01@\x01k\x15\x01@\x01\x04self\x16\0\xc1\0\ +\x04\0\x1a[method]glxf-node.children\x01B\x01k\x19\x01@\x02\x04self\x16\x05value\ +\xc3\0\x01\0\x04\0\x1e[method]glxf-node.set-children\x01D\x01@\0\0#\x04\0\x17[co\ +nstructor]glxf-scene\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]glxf-scene.id\x01\ +F\x01@\x01\x04self&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01@\x02\x04self&\x05\ +values\x01\0\x04\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\x04self&\0\x13\x04\ +\0\x18[method]glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\x16\x01\0\x04\0\x1b\ +[method]glxf-scene.add-node\x01J\x04\0\x1e[method]glxf-scene.remove-node\x01J\x04\ +\0\x08get-root\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x1a\x01B\x07\x04\0\x06scr\ +ipt\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\ +\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12\ +wired:script/types\x05\x1b\x04\x01\x1aexample:wired-input/script\x04\0\x0b\x0c\x01\ +\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x07\ +0.208.1\x10wit-bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-wired-physics/src/bindings.rs b/wasm/example-wired-physics/src/bindings.rs index 65e389cef..32f3b5975 100644 --- a/wasm/example-wired-physics/src/bindings.rs +++ b/wasm/example-wired-physics/src/bindings.rs @@ -801,6 +801,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1925,6 +1969,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -7985,8 +8109,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 10338] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xe5O\x01A\x02\x01A+\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 10498] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x85Q\x01A\x02\x01A+\x01\ B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\0\ \x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01r\ \x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -8078,139 +8202,143 @@ t.remove-scene\x01\x0a\x01@\0\0\x06\x04\0\x12[constructor]scene\x01\x0b\x01i\x03 d]scene.transform\x01\x12\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1b[meth\ od]scene.set-transform\x01\x13\x01@\x01\x04self\x09\0\x7f\x04\0\x14[method]scene\ .active\x01\x14\x01@\x02\x04self\x09\x05value\x7f\x01\0\x04\0\x18[method]scene.s\ -et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B}\x02\ -\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\ -\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\ -\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\ -\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\ -\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\ -\0\x06sphere\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]r\ -ectangle\x01\x15\x01h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.\ -size\x01\x17\x01@\x02\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.\ -set-size\x01\x18\x01i\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.\ -to-mesh\x01\x1a\x01i\x07\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.t\ -o-node\x01\x1c\x04\0![method]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\ -\x06radiusv\0\x1d\x04\0\x13[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\ -\x1f\0v\x04\0\x15[method]circle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\ -\0\x04\0\x19[method]circle.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[met\ -hod]circle.resolution\x01\"\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[metho\ -d]circle.set-resolution\x01#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.\ -to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\ -\0\x1e[method]circle.to-physics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\ -\0\x14[constructor]ellipse\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[metho\ -d]ellipse.half-size\x01)\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]e\ -llipse.set-half-size\x01*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resoluti\ -on\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ -n\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04\ -self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-ph\ -ysics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor\ -]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x01\ -2\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01\ -@\x01\x04self1\0v\x04\0\x17[method]cylinder.height\x014\x01@\x02\x04self1\x05val\ -uev\x01\0\x04\0\x1b[method]cylinder.set-height\x015\x04\0\x17[method]cylinder.ra\ -dius\x014\x04\0\x1b[method]cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b\ -[method]cylinder.resolution\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[met\ -hod]cylinder.set-resolution\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d\ -[method]cylinder.set-segments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cyli\ -nder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\ -\x04\0\x20[method]cylinder.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\ -\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[me\ -thod]cuboid.size\x01=\x01@\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cubo\ -id.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01\ -@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboi\ -d.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sph\ -ere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\ -\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\ -\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[\ -method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[meth\ -od]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-\ -mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\ -\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unavi:shapes/api\x05\x13\x01B\ -\x04\x01m\x04\x05debug\x04info\x04warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\ -\x05level\x01\x07messages\x01\0\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\ -\x14\x01B\x11\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\0\x01i\x01\x01r\x14\x04hip\ -s\x02\x05spine\x02\x05chest\x02\x0bupper-chest\x02\x04neck\x02\x04head\x02\x0dle\ -ft-shoulder\x02\x0eleft-upper-arm\x02\x0eleft-lower-arm\x02\x09left-hand\x02\x0e\ -right-shoulder\x02\x0fright-upper-arm\x02\x0fright-lower-arm\x02\x0aright-hand\x02\ -\x0eleft-upper-leg\x02\x0eleft-lower-leg\x02\x09left-foot\x02\x0fright-upper-leg\ -\x02\x0fright-lower-leg\x02\x0aright-foot\x02\x04\0\x08skeleton\x03\0\x03\x04\0\x06\ -player\x03\x01\x01h\x05\x01@\x01\x04self\x06\0\x02\x04\0\x13[method]player.root\x01\ -\x07\x01@\x01\x04self\x06\0\x04\x04\0\x17[method]player.skeleton\x01\x08\x01i\x05\ -\x01p\x09\x01@\0\0\x0a\x04\0\x0clist-players\x01\x0b\x01@\0\0\x09\x04\0\x0clocal\ --player\x01\x0c\x03\x01\x10wired:player/api\x05\x15\x01B\x15\x02\x03\x02\x01\x10\ -\x04\0\x04node\x03\0\0\x04\0\x05scene\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x12[co\ -nstructor]scene\x01\x04\x01h\x02\x01@\x01\x04self\x05\0y\x04\0\x10[method]scene.\ -id\x01\x06\x01@\x01\x04self\x05\0s\x04\0\x12[method]scene.name\x01\x07\x01@\x02\x04\ -self\x05\x05values\x01\0\x04\0\x16[method]scene.set-name\x01\x08\x01i\x01\x01p\x09\ -\x01@\x01\x04self\x05\0\x0a\x04\0\x13[method]scene.nodes\x01\x0b\x01h\x01\x01@\x02\ -\x04self\x05\x05value\x0c\x01\0\x04\0\x16[method]scene.add-node\x01\x0d\x04\0\x19\ -[method]scene.remove-node\x01\x0d\x03\x01\x11wired:scene/scene\x05\x16\x02\x03\0\ -\x0b\x05scene\x01B5\x02\x03\x02\x01\x02\x04\0\x08material\x03\0\0\x02\x03\x02\x01\ -\x0a\x04\0\x04mesh\x03\0\x02\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\x04\x02\x03\ -\x02\x01\x17\x04\0\x05scene\x03\0\x06\x04\0\x04gltf\x03\x01\x01i\x08\x01@\0\0\x09\ -\x04\0\x11[constructor]gltf\x01\x0a\x01h\x08\x01i\x01\x01p\x0c\x01@\x01\x04self\x0b\ -\0\x0d\x04\0\x1b[method]gltf.list-materials\x01\x0e\x01h\x01\x01@\x02\x04self\x0b\ -\x05value\x0f\x01\0\x04\0\x19[method]gltf.add-material\x01\x10\x04\0\x1c[method]\ -gltf.remove-material\x01\x10\x01i\x03\x01p\x11\x01@\x01\x04self\x0b\0\x12\x04\0\x18\ -[method]gltf.list-meshes\x01\x13\x01h\x03\x01@\x02\x04self\x0b\x05value\x14\x01\0\ -\x04\0\x15[method]gltf.add-mesh\x01\x15\x04\0\x18[method]gltf.remove-mesh\x01\x15\ -\x01i\x05\x01p\x16\x01@\x01\x04self\x0b\0\x17\x04\0\x17[method]gltf.list-nodes\x01\ -\x18\x01h\x05\x01@\x02\x04self\x0b\x05value\x19\x01\0\x04\0\x15[method]gltf.add-\ -node\x01\x1a\x04\0\x18[method]gltf.remove-node\x01\x1a\x01i\x07\x01p\x1b\x01@\x01\ -\x04self\x0b\0\x1c\x04\0\x18[method]gltf.list-scenes\x01\x1d\x01h\x07\x01@\x02\x04\ -self\x0b\x05value\x1e\x01\0\x04\0\x16[method]gltf.add-scene\x01\x1f\x04\0\x19[me\ -thod]gltf.remove-scene\x01\x1f\x01k\x1b\x01@\x01\x04self\x0b\0\x20\x04\0\x19[met\ -hod]gltf.active-scene\x01!\x01k\x1e\x01@\x02\x04self\x0b\x05value\"\x01\0\x04\0\x1d\ -[method]gltf.set-active-scene\x01#\x04\0\x1a[method]gltf.default-scene\x01!\x04\0\ -\x1e[method]gltf.set-default-scene\x01\x1f\x03\x01\x10wired:scene/gltf\x05\x18\x02\ -\x03\0\x0c\x04gltf\x01Bt\x02\x03\x02\x01\x19\x04\0\x04gltf\x03\0\0\x02\x03\x02\x01\ -\x10\x04\0\x04node\x03\0\x02\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x04\x04\ -\0\x04glxf\x03\x01\x04\0\x0aasset-gltf\x03\x01\x04\0\x0aasset-glxf\x03\x01\x01i\x07\ -\x01i\x08\x01q\x02\x04gltf\x01\x09\0\x04glxf\x01\x0a\0\x04\0\x05asset\x03\0\x0b\x01\ -h\x07\x01h\x08\x01q\x02\x04gltf\x01\x0d\0\x04glxf\x01\x0e\0\x04\0\x0casset-borro\ -w\x03\0\x0f\x04\0\x09glxf-node\x03\x01\x01i\x11\x01p\x12\x01q\x02\x05asset\x01\x0c\ -\0\x05nodes\x01\x13\0\x04\0\x08children\x03\0\x14\x01h\x11\x01p\x16\x01q\x02\x05\ -asset\x01\x10\0\x05nodes\x01\x17\0\x04\0\x0fchildren-borrow\x03\0\x18\x04\0\x0ag\ -lxf-scene\x03\x01\x01i\x06\x01@\0\0\x1b\x04\0\x11[constructor]glxf\x01\x1c\x01h\x06\ -\x01p\x0c\x01@\x01\x04self\x1d\0\x1e\x04\0\x18[method]glxf.list-assets\x01\x1f\x01\ -@\x02\x04self\x1d\x05value\x10\x01\0\x04\0\x16[method]glxf.add-asset\x01\x20\x04\ -\0\x19[method]glxf.remove-asset\x01\x20\x01@\x01\x04self\x1d\0\x13\x04\0\x17[met\ -hod]glxf.list-nodes\x01!\x01@\x02\x04self\x1d\x05value\x16\x01\0\x04\0\x15[metho\ -d]glxf.add-node\x01\"\x04\0\x18[method]glxf.remove-node\x01\"\x01i\x1a\x01p#\x01\ -@\x01\x04self\x1d\0$\x04\0\x18[method]glxf.list-scenes\x01%\x01h\x1a\x01@\x02\x04\ -self\x1d\x05value&\x01\0\x04\0\x16[method]glxf.add-scene\x01'\x04\0\x19[method]g\ -lxf.remove-scene\x01'\x01k#\x01@\x01\x04self\x1d\0(\x04\0\x19[method]glxf.active\ --scene\x01)\x01k&\x01@\x02\x04self\x1d\x05value*\x01\0\x04\0\x1d[method]glxf.set\ --active-scene\x01+\x04\0\x1a[method]glxf.default-scene\x01)\x04\0\x1e[method]glx\ -f.set-default-scene\x01'\x01h\x01\x01@\x01\x08document,\0\x09\x04\0\x17[construc\ -tor]asset-gltf\x01-\x01i\x01\x01@\x01\x04self\x0d\0.\x04\0\x1b[method]asset-gltf\ -.document\x01/\x01i\x03\x01p0\x01@\x01\x04self\x0d\01\x04\0\x1d[method]asset-glt\ -f.list-nodes\x012\x01h\x03\x01@\x02\x04self\x0d\x05value3\x01\0\x04\0\x1b[method\ -]asset-gltf.add-node\x014\x04\0\x1e[method]asset-gltf.remove-node\x014\x01@\x01\x08\ -document\x1d\0\x0a\x04\0\x17[constructor]asset-glxf\x015\x01@\x01\x04self\x0e\0\x1b\ -\x04\0\x1b[method]asset-glxf.document\x016\x01@\x01\x04self\x0e\0\x13\x04\0\x1d[\ -method]asset-glxf.list-nodes\x017\x01@\x02\x04self\x0e\x05value\x16\x01\0\x04\0\x1b\ -[method]asset-glxf.add-node\x018\x04\0\x1e[method]asset-glxf.remove-node\x018\x01\ -@\0\0\x12\x04\0\x16[constructor]glxf-node\x019\x01@\x01\x04self\x16\0y\x04\0\x14\ -[method]glxf-node.id\x01:\x01@\x01\x04self\x16\0s\x04\0\x16[method]glxf-node.nam\ -e\x01;\x01@\x02\x04self\x16\x05values\x01\0\x04\0\x1a[method]glxf-node.set-name\x01\ -<\x01@\x01\x04self\x16\0\x05\x04\0\x1b[method]glxf-node.transform\x01=\x01@\x02\x04\ -self\x16\x05value\x05\x01\0\x04\0\x1f[method]glxf-node.set-transform\x01>\x01k\x12\ -\x01@\x01\x04self\x16\0?\x04\0\x18[method]glxf-node.parent\x01@\x01k\x15\x01@\x01\ -\x04self\x16\0\xc1\0\x04\0\x1a[method]glxf-node.children\x01B\x01k\x19\x01@\x02\x04\ -self\x16\x05value\xc3\0\x01\0\x04\0\x1e[method]glxf-node.set-children\x01D\x01@\0\ -\0#\x04\0\x17[constructor]glxf-scene\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]\ -glxf-scene.id\x01F\x01@\x01\x04self&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01\ -@\x02\x04self&\x05values\x01\0\x04\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\ -\x04self&\0\x13\x04\0\x18[method]glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\ -\x16\x01\0\x04\0\x1b[method]glxf-scene.add-node\x01J\x04\0\x1e[method]glxf-scene\ -.remove-node\x01J\x04\0\x08get-root\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x1a\x01\ -B\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\ -\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\ -\x04\x04\x01\x12wired:script/types\x05\x1b\x04\x01\x1cexample:wired-physics/scri\ -pt\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\ -\x0dwit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B\x88\ +\x01\x02\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\ +\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\ +\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07e\ +llipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csub\ +divisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09\ +sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-ki\ +nd\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04\ +size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\ +\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\ +\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\ +\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\ +\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\0![method]rectangle.to-phy\ +sics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circl\ +e\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01\ +@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\ +\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05\ +value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\ +\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[metho\ +d]circle.to-node\x01&\x04\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\ +\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04\ +self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\ +\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a\ +[method]ellipse.resolution\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[meth\ +od]ellipse.set-resolution\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.\ +to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\ +\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\ +\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14\ +[method]cylinder.cap\x013\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]\ +cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\ +\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\ +\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01\ +@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resolution\x017\x01@\x02\x04self2\x05\ +value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x018\x04\0\x19[method]cyli\ +nder.segments\x017\x04\0\x1d[method]cylinder.set-segments\x018\x01@\x01\x04self2\ +\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[\ +method]cylinder.to-node\x01:\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\ +\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\ +\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\ +\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[m\ +ethod]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-nod\ +e\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\ +\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01\ +C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\ +\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04\ +self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05val\ +ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\ +\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]\ +sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\ +\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\ +\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[meth\ +od]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\ +\x01P\x03\x01\x10unavi:shapes/api\x05\x13\x01B\x04\x01m\x04\x05debug\x04info\x04\ +warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\x05level\x01\x07messages\x01\0\ +\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\x14\x01B\x11\x02\x03\x02\x01\x10\ +\x04\0\x04node\x03\0\0\x01i\x01\x01r\x14\x04hips\x02\x05spine\x02\x05chest\x02\x0b\ +upper-chest\x02\x04neck\x02\x04head\x02\x0dleft-shoulder\x02\x0eleft-upper-arm\x02\ +\x0eleft-lower-arm\x02\x09left-hand\x02\x0eright-shoulder\x02\x0fright-upper-arm\ +\x02\x0fright-lower-arm\x02\x0aright-hand\x02\x0eleft-upper-leg\x02\x0eleft-lowe\ +r-leg\x02\x09left-foot\x02\x0fright-upper-leg\x02\x0fright-lower-leg\x02\x0arigh\ +t-foot\x02\x04\0\x08skeleton\x03\0\x03\x04\0\x06player\x03\x01\x01h\x05\x01@\x01\ +\x04self\x06\0\x02\x04\0\x13[method]player.root\x01\x07\x01@\x01\x04self\x06\0\x04\ +\x04\0\x17[method]player.skeleton\x01\x08\x01i\x05\x01p\x09\x01@\0\0\x0a\x04\0\x0c\ +list-players\x01\x0b\x01@\0\0\x09\x04\0\x0clocal-player\x01\x0c\x03\x01\x10wired\ +:player/api\x05\x15\x01B\x15\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\0\x04\0\x05\ +scene\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x12[constructor]scene\x01\x04\x01h\x02\ +\x01@\x01\x04self\x05\0y\x04\0\x10[method]scene.id\x01\x06\x01@\x01\x04self\x05\0\ +s\x04\0\x12[method]scene.name\x01\x07\x01@\x02\x04self\x05\x05values\x01\0\x04\0\ +\x16[method]scene.set-name\x01\x08\x01i\x01\x01p\x09\x01@\x01\x04self\x05\0\x0a\x04\ +\0\x13[method]scene.nodes\x01\x0b\x01h\x01\x01@\x02\x04self\x05\x05value\x0c\x01\ +\0\x04\0\x16[method]scene.add-node\x01\x0d\x04\0\x19[method]scene.remove-node\x01\ +\x0d\x03\x01\x11wired:scene/scene\x05\x16\x02\x03\0\x0b\x05scene\x01B5\x02\x03\x02\ +\x01\x02\x04\0\x08material\x03\0\0\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x02\x02\ +\x03\x02\x01\x10\x04\0\x04node\x03\0\x04\x02\x03\x02\x01\x17\x04\0\x05scene\x03\0\ +\x06\x04\0\x04gltf\x03\x01\x01i\x08\x01@\0\0\x09\x04\0\x11[constructor]gltf\x01\x0a\ +\x01h\x08\x01i\x01\x01p\x0c\x01@\x01\x04self\x0b\0\x0d\x04\0\x1b[method]gltf.lis\ +t-materials\x01\x0e\x01h\x01\x01@\x02\x04self\x0b\x05value\x0f\x01\0\x04\0\x19[m\ +ethod]gltf.add-material\x01\x10\x04\0\x1c[method]gltf.remove-material\x01\x10\x01\ +i\x03\x01p\x11\x01@\x01\x04self\x0b\0\x12\x04\0\x18[method]gltf.list-meshes\x01\x13\ +\x01h\x03\x01@\x02\x04self\x0b\x05value\x14\x01\0\x04\0\x15[method]gltf.add-mesh\ +\x01\x15\x04\0\x18[method]gltf.remove-mesh\x01\x15\x01i\x05\x01p\x16\x01@\x01\x04\ +self\x0b\0\x17\x04\0\x17[method]gltf.list-nodes\x01\x18\x01h\x05\x01@\x02\x04sel\ +f\x0b\x05value\x19\x01\0\x04\0\x15[method]gltf.add-node\x01\x1a\x04\0\x18[method\ +]gltf.remove-node\x01\x1a\x01i\x07\x01p\x1b\x01@\x01\x04self\x0b\0\x1c\x04\0\x18\ +[method]gltf.list-scenes\x01\x1d\x01h\x07\x01@\x02\x04self\x0b\x05value\x1e\x01\0\ +\x04\0\x16[method]gltf.add-scene\x01\x1f\x04\0\x19[method]gltf.remove-scene\x01\x1f\ +\x01k\x1b\x01@\x01\x04self\x0b\0\x20\x04\0\x19[method]gltf.active-scene\x01!\x01\ +k\x1e\x01@\x02\x04self\x0b\x05value\"\x01\0\x04\0\x1d[method]gltf.set-active-sce\ +ne\x01#\x04\0\x1a[method]gltf.default-scene\x01!\x04\0\x1e[method]gltf.set-defau\ +lt-scene\x01\x1f\x03\x01\x10wired:scene/gltf\x05\x18\x02\x03\0\x0c\x04gltf\x01Bt\ +\x02\x03\x02\x01\x19\x04\0\x04gltf\x03\0\0\x02\x03\x02\x01\x10\x04\0\x04node\x03\ +\0\x02\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x04\x04\0\x04glxf\x03\x01\x04\ +\0\x0aasset-gltf\x03\x01\x04\0\x0aasset-glxf\x03\x01\x01i\x07\x01i\x08\x01q\x02\x04\ +gltf\x01\x09\0\x04glxf\x01\x0a\0\x04\0\x05asset\x03\0\x0b\x01h\x07\x01h\x08\x01q\ +\x02\x04gltf\x01\x0d\0\x04glxf\x01\x0e\0\x04\0\x0casset-borrow\x03\0\x0f\x04\0\x09\ +glxf-node\x03\x01\x01i\x11\x01p\x12\x01q\x02\x05asset\x01\x0c\0\x05nodes\x01\x13\ +\0\x04\0\x08children\x03\0\x14\x01h\x11\x01p\x16\x01q\x02\x05asset\x01\x10\0\x05\ +nodes\x01\x17\0\x04\0\x0fchildren-borrow\x03\0\x18\x04\0\x0aglxf-scene\x03\x01\x01\ +i\x06\x01@\0\0\x1b\x04\0\x11[constructor]glxf\x01\x1c\x01h\x06\x01p\x0c\x01@\x01\ +\x04self\x1d\0\x1e\x04\0\x18[method]glxf.list-assets\x01\x1f\x01@\x02\x04self\x1d\ +\x05value\x10\x01\0\x04\0\x16[method]glxf.add-asset\x01\x20\x04\0\x19[method]glx\ +f.remove-asset\x01\x20\x01@\x01\x04self\x1d\0\x13\x04\0\x17[method]glxf.list-nod\ +es\x01!\x01@\x02\x04self\x1d\x05value\x16\x01\0\x04\0\x15[method]glxf.add-node\x01\ +\"\x04\0\x18[method]glxf.remove-node\x01\"\x01i\x1a\x01p#\x01@\x01\x04self\x1d\0\ +$\x04\0\x18[method]glxf.list-scenes\x01%\x01h\x1a\x01@\x02\x04self\x1d\x05value&\ +\x01\0\x04\0\x16[method]glxf.add-scene\x01'\x04\0\x19[method]glxf.remove-scene\x01\ +'\x01k#\x01@\x01\x04self\x1d\0(\x04\0\x19[method]glxf.active-scene\x01)\x01k&\x01\ +@\x02\x04self\x1d\x05value*\x01\0\x04\0\x1d[method]glxf.set-active-scene\x01+\x04\ +\0\x1a[method]glxf.default-scene\x01)\x04\0\x1e[method]glxf.set-default-scene\x01\ +'\x01h\x01\x01@\x01\x08document,\0\x09\x04\0\x17[constructor]asset-gltf\x01-\x01\ +i\x01\x01@\x01\x04self\x0d\0.\x04\0\x1b[method]asset-gltf.document\x01/\x01i\x03\ +\x01p0\x01@\x01\x04self\x0d\01\x04\0\x1d[method]asset-gltf.list-nodes\x012\x01h\x03\ +\x01@\x02\x04self\x0d\x05value3\x01\0\x04\0\x1b[method]asset-gltf.add-node\x014\x04\ +\0\x1e[method]asset-gltf.remove-node\x014\x01@\x01\x08document\x1d\0\x0a\x04\0\x17\ +[constructor]asset-glxf\x015\x01@\x01\x04self\x0e\0\x1b\x04\0\x1b[method]asset-g\ +lxf.document\x016\x01@\x01\x04self\x0e\0\x13\x04\0\x1d[method]asset-glxf.list-no\ +des\x017\x01@\x02\x04self\x0e\x05value\x16\x01\0\x04\0\x1b[method]asset-glxf.add\ +-node\x018\x04\0\x1e[method]asset-glxf.remove-node\x018\x01@\0\0\x12\x04\0\x16[c\ +onstructor]glxf-node\x019\x01@\x01\x04self\x16\0y\x04\0\x14[method]glxf-node.id\x01\ +:\x01@\x01\x04self\x16\0s\x04\0\x16[method]glxf-node.name\x01;\x01@\x02\x04self\x16\ +\x05values\x01\0\x04\0\x1a[method]glxf-node.set-name\x01<\x01@\x01\x04self\x16\0\ +\x05\x04\0\x1b[method]glxf-node.transform\x01=\x01@\x02\x04self\x16\x05value\x05\ +\x01\0\x04\0\x1f[method]glxf-node.set-transform\x01>\x01k\x12\x01@\x01\x04self\x16\ +\0?\x04\0\x18[method]glxf-node.parent\x01@\x01k\x15\x01@\x01\x04self\x16\0\xc1\0\ +\x04\0\x1a[method]glxf-node.children\x01B\x01k\x19\x01@\x02\x04self\x16\x05value\ +\xc3\0\x01\0\x04\0\x1e[method]glxf-node.set-children\x01D\x01@\0\0#\x04\0\x17[co\ +nstructor]glxf-scene\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]glxf-scene.id\x01\ +F\x01@\x01\x04self&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01@\x02\x04self&\x05\ +values\x01\0\x04\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\x04self&\0\x13\x04\ +\0\x18[method]glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\x16\x01\0\x04\0\x1b\ +[method]glxf-scene.add-node\x01J\x04\0\x1e[method]glxf-scene.remove-node\x01J\x04\ +\0\x08get-root\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x1a\x01B\x07\x04\0\x06scr\ +ipt\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\ +\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12\ +wired:script/types\x05\x1b\x04\x01\x1cexample:wired-physics/script\x04\0\x0b\x0c\ +\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-componen\ +t\x070.208.1\x10wit-bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-wired-player/src/bindings.rs b/wasm/example-wired-player/src/bindings.rs index 6e1840c26..7915bf13f 100644 --- a/wasm/example-wired-player/src/bindings.rs +++ b/wasm/example-wired-player/src/bindings.rs @@ -801,6 +801,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1925,6 +1969,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -7985,8 +8109,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 10337] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xe4O\x01A\x02\x01A+\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 10497] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x84Q\x01A\x02\x01A+\x01\ B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\0\ \x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01r\ \x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -8078,139 +8202,143 @@ t.remove-scene\x01\x0a\x01@\0\0\x06\x04\0\x12[constructor]scene\x01\x0b\x01i\x03 d]scene.transform\x01\x12\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1b[meth\ od]scene.set-transform\x01\x13\x01@\x01\x04self\x09\0\x7f\x04\0\x14[method]scene\ .active\x01\x14\x01@\x02\x04self\x09\x05value\x7f\x01\0\x04\0\x18[method]scene.s\ -et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B}\x02\ -\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\ -\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\x04node\x03\ -\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\ -\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\ -\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\ -\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\ -\0\x06sphere\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]r\ -ectangle\x01\x15\x01h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.\ -size\x01\x17\x01@\x02\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.\ -set-size\x01\x18\x01i\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.\ -to-mesh\x01\x1a\x01i\x07\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.t\ -o-node\x01\x1c\x04\0![method]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\ -\x06radiusv\0\x1d\x04\0\x13[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\ -\x1f\0v\x04\0\x15[method]circle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\ -\0\x04\0\x19[method]circle.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[met\ -hod]circle.resolution\x01\"\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[metho\ -d]circle.set-resolution\x01#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.\ -to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\ -\0\x1e[method]circle.to-physics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\ -\0\x14[constructor]ellipse\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[metho\ -d]ellipse.half-size\x01)\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]e\ -llipse.set-half-size\x01*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resoluti\ -on\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ -n\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04\ -self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-ph\ -ysics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor\ -]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x01\ -2\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01\ -@\x01\x04self1\0v\x04\0\x17[method]cylinder.height\x014\x01@\x02\x04self1\x05val\ -uev\x01\0\x04\0\x1b[method]cylinder.set-height\x015\x04\0\x17[method]cylinder.ra\ -dius\x014\x04\0\x1b[method]cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b\ -[method]cylinder.resolution\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[met\ -hod]cylinder.set-resolution\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d\ -[method]cylinder.set-segments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cyli\ -nder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\ -\x04\0\x20[method]cylinder.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\ -\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[me\ -thod]cuboid.size\x01=\x01@\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cubo\ -id.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01\ -@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboi\ -d.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sph\ -ere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\ -\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\ -\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[\ -method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[meth\ -od]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-\ -mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\ -\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unavi:shapes/api\x05\x13\x01B\ -\x04\x01m\x04\x05debug\x04info\x04warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\ -\x05level\x01\x07messages\x01\0\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\ -\x14\x01B\x11\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\0\x01i\x01\x01r\x14\x04hip\ -s\x02\x05spine\x02\x05chest\x02\x0bupper-chest\x02\x04neck\x02\x04head\x02\x0dle\ -ft-shoulder\x02\x0eleft-upper-arm\x02\x0eleft-lower-arm\x02\x09left-hand\x02\x0e\ -right-shoulder\x02\x0fright-upper-arm\x02\x0fright-lower-arm\x02\x0aright-hand\x02\ -\x0eleft-upper-leg\x02\x0eleft-lower-leg\x02\x09left-foot\x02\x0fright-upper-leg\ -\x02\x0fright-lower-leg\x02\x0aright-foot\x02\x04\0\x08skeleton\x03\0\x03\x04\0\x06\ -player\x03\x01\x01h\x05\x01@\x01\x04self\x06\0\x02\x04\0\x13[method]player.root\x01\ -\x07\x01@\x01\x04self\x06\0\x04\x04\0\x17[method]player.skeleton\x01\x08\x01i\x05\ -\x01p\x09\x01@\0\0\x0a\x04\0\x0clist-players\x01\x0b\x01@\0\0\x09\x04\0\x0clocal\ --player\x01\x0c\x03\x01\x10wired:player/api\x05\x15\x01B\x15\x02\x03\x02\x01\x10\ -\x04\0\x04node\x03\0\0\x04\0\x05scene\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x12[co\ -nstructor]scene\x01\x04\x01h\x02\x01@\x01\x04self\x05\0y\x04\0\x10[method]scene.\ -id\x01\x06\x01@\x01\x04self\x05\0s\x04\0\x12[method]scene.name\x01\x07\x01@\x02\x04\ -self\x05\x05values\x01\0\x04\0\x16[method]scene.set-name\x01\x08\x01i\x01\x01p\x09\ -\x01@\x01\x04self\x05\0\x0a\x04\0\x13[method]scene.nodes\x01\x0b\x01h\x01\x01@\x02\ -\x04self\x05\x05value\x0c\x01\0\x04\0\x16[method]scene.add-node\x01\x0d\x04\0\x19\ -[method]scene.remove-node\x01\x0d\x03\x01\x11wired:scene/scene\x05\x16\x02\x03\0\ -\x0b\x05scene\x01B5\x02\x03\x02\x01\x02\x04\0\x08material\x03\0\0\x02\x03\x02\x01\ -\x0a\x04\0\x04mesh\x03\0\x02\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\x04\x02\x03\ -\x02\x01\x17\x04\0\x05scene\x03\0\x06\x04\0\x04gltf\x03\x01\x01i\x08\x01@\0\0\x09\ -\x04\0\x11[constructor]gltf\x01\x0a\x01h\x08\x01i\x01\x01p\x0c\x01@\x01\x04self\x0b\ -\0\x0d\x04\0\x1b[method]gltf.list-materials\x01\x0e\x01h\x01\x01@\x02\x04self\x0b\ -\x05value\x0f\x01\0\x04\0\x19[method]gltf.add-material\x01\x10\x04\0\x1c[method]\ -gltf.remove-material\x01\x10\x01i\x03\x01p\x11\x01@\x01\x04self\x0b\0\x12\x04\0\x18\ -[method]gltf.list-meshes\x01\x13\x01h\x03\x01@\x02\x04self\x0b\x05value\x14\x01\0\ -\x04\0\x15[method]gltf.add-mesh\x01\x15\x04\0\x18[method]gltf.remove-mesh\x01\x15\ -\x01i\x05\x01p\x16\x01@\x01\x04self\x0b\0\x17\x04\0\x17[method]gltf.list-nodes\x01\ -\x18\x01h\x05\x01@\x02\x04self\x0b\x05value\x19\x01\0\x04\0\x15[method]gltf.add-\ -node\x01\x1a\x04\0\x18[method]gltf.remove-node\x01\x1a\x01i\x07\x01p\x1b\x01@\x01\ -\x04self\x0b\0\x1c\x04\0\x18[method]gltf.list-scenes\x01\x1d\x01h\x07\x01@\x02\x04\ -self\x0b\x05value\x1e\x01\0\x04\0\x16[method]gltf.add-scene\x01\x1f\x04\0\x19[me\ -thod]gltf.remove-scene\x01\x1f\x01k\x1b\x01@\x01\x04self\x0b\0\x20\x04\0\x19[met\ -hod]gltf.active-scene\x01!\x01k\x1e\x01@\x02\x04self\x0b\x05value\"\x01\0\x04\0\x1d\ -[method]gltf.set-active-scene\x01#\x04\0\x1a[method]gltf.default-scene\x01!\x04\0\ -\x1e[method]gltf.set-default-scene\x01\x1f\x03\x01\x10wired:scene/gltf\x05\x18\x02\ -\x03\0\x0c\x04gltf\x01Bt\x02\x03\x02\x01\x19\x04\0\x04gltf\x03\0\0\x02\x03\x02\x01\ -\x10\x04\0\x04node\x03\0\x02\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x04\x04\ -\0\x04glxf\x03\x01\x04\0\x0aasset-gltf\x03\x01\x04\0\x0aasset-glxf\x03\x01\x01i\x07\ -\x01i\x08\x01q\x02\x04gltf\x01\x09\0\x04glxf\x01\x0a\0\x04\0\x05asset\x03\0\x0b\x01\ -h\x07\x01h\x08\x01q\x02\x04gltf\x01\x0d\0\x04glxf\x01\x0e\0\x04\0\x0casset-borro\ -w\x03\0\x0f\x04\0\x09glxf-node\x03\x01\x01i\x11\x01p\x12\x01q\x02\x05asset\x01\x0c\ -\0\x05nodes\x01\x13\0\x04\0\x08children\x03\0\x14\x01h\x11\x01p\x16\x01q\x02\x05\ -asset\x01\x10\0\x05nodes\x01\x17\0\x04\0\x0fchildren-borrow\x03\0\x18\x04\0\x0ag\ -lxf-scene\x03\x01\x01i\x06\x01@\0\0\x1b\x04\0\x11[constructor]glxf\x01\x1c\x01h\x06\ -\x01p\x0c\x01@\x01\x04self\x1d\0\x1e\x04\0\x18[method]glxf.list-assets\x01\x1f\x01\ -@\x02\x04self\x1d\x05value\x10\x01\0\x04\0\x16[method]glxf.add-asset\x01\x20\x04\ -\0\x19[method]glxf.remove-asset\x01\x20\x01@\x01\x04self\x1d\0\x13\x04\0\x17[met\ -hod]glxf.list-nodes\x01!\x01@\x02\x04self\x1d\x05value\x16\x01\0\x04\0\x15[metho\ -d]glxf.add-node\x01\"\x04\0\x18[method]glxf.remove-node\x01\"\x01i\x1a\x01p#\x01\ -@\x01\x04self\x1d\0$\x04\0\x18[method]glxf.list-scenes\x01%\x01h\x1a\x01@\x02\x04\ -self\x1d\x05value&\x01\0\x04\0\x16[method]glxf.add-scene\x01'\x04\0\x19[method]g\ -lxf.remove-scene\x01'\x01k#\x01@\x01\x04self\x1d\0(\x04\0\x19[method]glxf.active\ --scene\x01)\x01k&\x01@\x02\x04self\x1d\x05value*\x01\0\x04\0\x1d[method]glxf.set\ --active-scene\x01+\x04\0\x1a[method]glxf.default-scene\x01)\x04\0\x1e[method]glx\ -f.set-default-scene\x01'\x01h\x01\x01@\x01\x08document,\0\x09\x04\0\x17[construc\ -tor]asset-gltf\x01-\x01i\x01\x01@\x01\x04self\x0d\0.\x04\0\x1b[method]asset-gltf\ -.document\x01/\x01i\x03\x01p0\x01@\x01\x04self\x0d\01\x04\0\x1d[method]asset-glt\ -f.list-nodes\x012\x01h\x03\x01@\x02\x04self\x0d\x05value3\x01\0\x04\0\x1b[method\ -]asset-gltf.add-node\x014\x04\0\x1e[method]asset-gltf.remove-node\x014\x01@\x01\x08\ -document\x1d\0\x0a\x04\0\x17[constructor]asset-glxf\x015\x01@\x01\x04self\x0e\0\x1b\ -\x04\0\x1b[method]asset-glxf.document\x016\x01@\x01\x04self\x0e\0\x13\x04\0\x1d[\ -method]asset-glxf.list-nodes\x017\x01@\x02\x04self\x0e\x05value\x16\x01\0\x04\0\x1b\ -[method]asset-glxf.add-node\x018\x04\0\x1e[method]asset-glxf.remove-node\x018\x01\ -@\0\0\x12\x04\0\x16[constructor]glxf-node\x019\x01@\x01\x04self\x16\0y\x04\0\x14\ -[method]glxf-node.id\x01:\x01@\x01\x04self\x16\0s\x04\0\x16[method]glxf-node.nam\ -e\x01;\x01@\x02\x04self\x16\x05values\x01\0\x04\0\x1a[method]glxf-node.set-name\x01\ -<\x01@\x01\x04self\x16\0\x05\x04\0\x1b[method]glxf-node.transform\x01=\x01@\x02\x04\ -self\x16\x05value\x05\x01\0\x04\0\x1f[method]glxf-node.set-transform\x01>\x01k\x12\ -\x01@\x01\x04self\x16\0?\x04\0\x18[method]glxf-node.parent\x01@\x01k\x15\x01@\x01\ -\x04self\x16\0\xc1\0\x04\0\x1a[method]glxf-node.children\x01B\x01k\x19\x01@\x02\x04\ -self\x16\x05value\xc3\0\x01\0\x04\0\x1e[method]glxf-node.set-children\x01D\x01@\0\ -\0#\x04\0\x17[constructor]glxf-scene\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]\ -glxf-scene.id\x01F\x01@\x01\x04self&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01\ -@\x02\x04self&\x05values\x01\0\x04\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\ -\x04self&\0\x13\x04\0\x18[method]glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\ -\x16\x01\0\x04\0\x1b[method]glxf-scene.add-node\x01J\x04\0\x1e[method]glxf-scene\ -.remove-node\x01J\x04\0\x08get-root\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x1a\x01\ -B\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\ -\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\ -\x04\x04\x01\x12wired:script/types\x05\x1b\x04\x01\x1bexample:wired-player/scrip\ -t\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0d\ -wit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +et-active\x01\x15\x03\x01\x0funavi:scene/api\x05\x11\x02\x03\0\0\x04vec2\x01B\x88\ +\x01\x02\x03\x02\x01\x12\x04\0\x04vec2\x03\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\ +\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x10\x04\0\ +\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07e\ +llipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csub\ +divisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09\ +sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-ki\ +nd\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04\ +size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\ +\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\ +\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\ +\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\ +\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\0![method]rectangle.to-phy\ +sics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circl\ +e\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01\ +@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\ +\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05\ +value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\ +\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[metho\ +d]circle.to-node\x01&\x04\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\ +\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04\ +self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\ +\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a\ +[method]ellipse.resolution\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[meth\ +od]ellipse.set-resolution\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.\ +to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\ +\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\ +\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14\ +[method]cylinder.cap\x013\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]\ +cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\ +\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\ +\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01\ +@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resolution\x017\x01@\x02\x04self2\x05\ +value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x018\x04\0\x19[method]cyli\ +nder.segments\x017\x04\0\x1d[method]cylinder.set-segments\x018\x01@\x01\x04self2\ +\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[\ +method]cylinder.to-node\x01:\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\ +\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\ +\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\ +\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[m\ +ethod]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-nod\ +e\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\ +\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01\ +C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\ +\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04\ +self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05val\ +ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\ +\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]\ +sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\ +\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\ +\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[meth\ +od]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\ +\x01P\x03\x01\x10unavi:shapes/api\x05\x13\x01B\x04\x01m\x04\x05debug\x04info\x04\ +warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\x05level\x01\x07messages\x01\0\ +\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\x14\x01B\x11\x02\x03\x02\x01\x10\ +\x04\0\x04node\x03\0\0\x01i\x01\x01r\x14\x04hips\x02\x05spine\x02\x05chest\x02\x0b\ +upper-chest\x02\x04neck\x02\x04head\x02\x0dleft-shoulder\x02\x0eleft-upper-arm\x02\ +\x0eleft-lower-arm\x02\x09left-hand\x02\x0eright-shoulder\x02\x0fright-upper-arm\ +\x02\x0fright-lower-arm\x02\x0aright-hand\x02\x0eleft-upper-leg\x02\x0eleft-lowe\ +r-leg\x02\x09left-foot\x02\x0fright-upper-leg\x02\x0fright-lower-leg\x02\x0arigh\ +t-foot\x02\x04\0\x08skeleton\x03\0\x03\x04\0\x06player\x03\x01\x01h\x05\x01@\x01\ +\x04self\x06\0\x02\x04\0\x13[method]player.root\x01\x07\x01@\x01\x04self\x06\0\x04\ +\x04\0\x17[method]player.skeleton\x01\x08\x01i\x05\x01p\x09\x01@\0\0\x0a\x04\0\x0c\ +list-players\x01\x0b\x01@\0\0\x09\x04\0\x0clocal-player\x01\x0c\x03\x01\x10wired\ +:player/api\x05\x15\x01B\x15\x02\x03\x02\x01\x10\x04\0\x04node\x03\0\0\x04\0\x05\ +scene\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x12[constructor]scene\x01\x04\x01h\x02\ +\x01@\x01\x04self\x05\0y\x04\0\x10[method]scene.id\x01\x06\x01@\x01\x04self\x05\0\ +s\x04\0\x12[method]scene.name\x01\x07\x01@\x02\x04self\x05\x05values\x01\0\x04\0\ +\x16[method]scene.set-name\x01\x08\x01i\x01\x01p\x09\x01@\x01\x04self\x05\0\x0a\x04\ +\0\x13[method]scene.nodes\x01\x0b\x01h\x01\x01@\x02\x04self\x05\x05value\x0c\x01\ +\0\x04\0\x16[method]scene.add-node\x01\x0d\x04\0\x19[method]scene.remove-node\x01\ +\x0d\x03\x01\x11wired:scene/scene\x05\x16\x02\x03\0\x0b\x05scene\x01B5\x02\x03\x02\ +\x01\x02\x04\0\x08material\x03\0\0\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x02\x02\ +\x03\x02\x01\x10\x04\0\x04node\x03\0\x04\x02\x03\x02\x01\x17\x04\0\x05scene\x03\0\ +\x06\x04\0\x04gltf\x03\x01\x01i\x08\x01@\0\0\x09\x04\0\x11[constructor]gltf\x01\x0a\ +\x01h\x08\x01i\x01\x01p\x0c\x01@\x01\x04self\x0b\0\x0d\x04\0\x1b[method]gltf.lis\ +t-materials\x01\x0e\x01h\x01\x01@\x02\x04self\x0b\x05value\x0f\x01\0\x04\0\x19[m\ +ethod]gltf.add-material\x01\x10\x04\0\x1c[method]gltf.remove-material\x01\x10\x01\ +i\x03\x01p\x11\x01@\x01\x04self\x0b\0\x12\x04\0\x18[method]gltf.list-meshes\x01\x13\ +\x01h\x03\x01@\x02\x04self\x0b\x05value\x14\x01\0\x04\0\x15[method]gltf.add-mesh\ +\x01\x15\x04\0\x18[method]gltf.remove-mesh\x01\x15\x01i\x05\x01p\x16\x01@\x01\x04\ +self\x0b\0\x17\x04\0\x17[method]gltf.list-nodes\x01\x18\x01h\x05\x01@\x02\x04sel\ +f\x0b\x05value\x19\x01\0\x04\0\x15[method]gltf.add-node\x01\x1a\x04\0\x18[method\ +]gltf.remove-node\x01\x1a\x01i\x07\x01p\x1b\x01@\x01\x04self\x0b\0\x1c\x04\0\x18\ +[method]gltf.list-scenes\x01\x1d\x01h\x07\x01@\x02\x04self\x0b\x05value\x1e\x01\0\ +\x04\0\x16[method]gltf.add-scene\x01\x1f\x04\0\x19[method]gltf.remove-scene\x01\x1f\ +\x01k\x1b\x01@\x01\x04self\x0b\0\x20\x04\0\x19[method]gltf.active-scene\x01!\x01\ +k\x1e\x01@\x02\x04self\x0b\x05value\"\x01\0\x04\0\x1d[method]gltf.set-active-sce\ +ne\x01#\x04\0\x1a[method]gltf.default-scene\x01!\x04\0\x1e[method]gltf.set-defau\ +lt-scene\x01\x1f\x03\x01\x10wired:scene/gltf\x05\x18\x02\x03\0\x0c\x04gltf\x01Bt\ +\x02\x03\x02\x01\x19\x04\0\x04gltf\x03\0\0\x02\x03\x02\x01\x10\x04\0\x04node\x03\ +\0\x02\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x04\x04\0\x04glxf\x03\x01\x04\ +\0\x0aasset-gltf\x03\x01\x04\0\x0aasset-glxf\x03\x01\x01i\x07\x01i\x08\x01q\x02\x04\ +gltf\x01\x09\0\x04glxf\x01\x0a\0\x04\0\x05asset\x03\0\x0b\x01h\x07\x01h\x08\x01q\ +\x02\x04gltf\x01\x0d\0\x04glxf\x01\x0e\0\x04\0\x0casset-borrow\x03\0\x0f\x04\0\x09\ +glxf-node\x03\x01\x01i\x11\x01p\x12\x01q\x02\x05asset\x01\x0c\0\x05nodes\x01\x13\ +\0\x04\0\x08children\x03\0\x14\x01h\x11\x01p\x16\x01q\x02\x05asset\x01\x10\0\x05\ +nodes\x01\x17\0\x04\0\x0fchildren-borrow\x03\0\x18\x04\0\x0aglxf-scene\x03\x01\x01\ +i\x06\x01@\0\0\x1b\x04\0\x11[constructor]glxf\x01\x1c\x01h\x06\x01p\x0c\x01@\x01\ +\x04self\x1d\0\x1e\x04\0\x18[method]glxf.list-assets\x01\x1f\x01@\x02\x04self\x1d\ +\x05value\x10\x01\0\x04\0\x16[method]glxf.add-asset\x01\x20\x04\0\x19[method]glx\ +f.remove-asset\x01\x20\x01@\x01\x04self\x1d\0\x13\x04\0\x17[method]glxf.list-nod\ +es\x01!\x01@\x02\x04self\x1d\x05value\x16\x01\0\x04\0\x15[method]glxf.add-node\x01\ +\"\x04\0\x18[method]glxf.remove-node\x01\"\x01i\x1a\x01p#\x01@\x01\x04self\x1d\0\ +$\x04\0\x18[method]glxf.list-scenes\x01%\x01h\x1a\x01@\x02\x04self\x1d\x05value&\ +\x01\0\x04\0\x16[method]glxf.add-scene\x01'\x04\0\x19[method]glxf.remove-scene\x01\ +'\x01k#\x01@\x01\x04self\x1d\0(\x04\0\x19[method]glxf.active-scene\x01)\x01k&\x01\ +@\x02\x04self\x1d\x05value*\x01\0\x04\0\x1d[method]glxf.set-active-scene\x01+\x04\ +\0\x1a[method]glxf.default-scene\x01)\x04\0\x1e[method]glxf.set-default-scene\x01\ +'\x01h\x01\x01@\x01\x08document,\0\x09\x04\0\x17[constructor]asset-gltf\x01-\x01\ +i\x01\x01@\x01\x04self\x0d\0.\x04\0\x1b[method]asset-gltf.document\x01/\x01i\x03\ +\x01p0\x01@\x01\x04self\x0d\01\x04\0\x1d[method]asset-gltf.list-nodes\x012\x01h\x03\ +\x01@\x02\x04self\x0d\x05value3\x01\0\x04\0\x1b[method]asset-gltf.add-node\x014\x04\ +\0\x1e[method]asset-gltf.remove-node\x014\x01@\x01\x08document\x1d\0\x0a\x04\0\x17\ +[constructor]asset-glxf\x015\x01@\x01\x04self\x0e\0\x1b\x04\0\x1b[method]asset-g\ +lxf.document\x016\x01@\x01\x04self\x0e\0\x13\x04\0\x1d[method]asset-glxf.list-no\ +des\x017\x01@\x02\x04self\x0e\x05value\x16\x01\0\x04\0\x1b[method]asset-glxf.add\ +-node\x018\x04\0\x1e[method]asset-glxf.remove-node\x018\x01@\0\0\x12\x04\0\x16[c\ +onstructor]glxf-node\x019\x01@\x01\x04self\x16\0y\x04\0\x14[method]glxf-node.id\x01\ +:\x01@\x01\x04self\x16\0s\x04\0\x16[method]glxf-node.name\x01;\x01@\x02\x04self\x16\ +\x05values\x01\0\x04\0\x1a[method]glxf-node.set-name\x01<\x01@\x01\x04self\x16\0\ +\x05\x04\0\x1b[method]glxf-node.transform\x01=\x01@\x02\x04self\x16\x05value\x05\ +\x01\0\x04\0\x1f[method]glxf-node.set-transform\x01>\x01k\x12\x01@\x01\x04self\x16\ +\0?\x04\0\x18[method]glxf-node.parent\x01@\x01k\x15\x01@\x01\x04self\x16\0\xc1\0\ +\x04\0\x1a[method]glxf-node.children\x01B\x01k\x19\x01@\x02\x04self\x16\x05value\ +\xc3\0\x01\0\x04\0\x1e[method]glxf-node.set-children\x01D\x01@\0\0#\x04\0\x17[co\ +nstructor]glxf-scene\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]glxf-scene.id\x01\ +F\x01@\x01\x04self&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01@\x02\x04self&\x05\ +values\x01\0\x04\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\x04self&\0\x13\x04\ +\0\x18[method]glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\x16\x01\0\x04\0\x1b\ +[method]glxf-scene.add-node\x01J\x04\0\x1e[method]glxf-scene.remove-node\x01J\x04\ +\0\x08get-root\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x1a\x01B\x07\x04\0\x06scr\ +ipt\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\ +\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12\ +wired:script/types\x05\x1b\x04\x01\x1bexample:wired-player/script\x04\0\x0b\x0c\x01\ +\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x07\ +0.208.1\x10wit-bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/example-wired-scene/src/bindings.rs b/wasm/example-wired-scene/src/bindings.rs index ad5be032a..c55e578fc 100644 --- a/wasm/example-wired-scene/src/bindings.rs +++ b/wasm/example-wired-scene/src/bindings.rs @@ -323,6 +323,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1447,6 +1491,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -7507,8 +7631,8 @@ pub(crate) use __export_script_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:script:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 9782] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xb9K\x01A\x02\x01A)\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 9942] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xd9L\x01A\x02\x01A)\x01\ B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\0\ \x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01r\ \x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -7588,139 +7712,142 @@ y\x01'\x01h\x09\x01k(\x01@\x02\x04self\x0d\x05value)\x01\0\x04\0\x1b[method]node .set-rigid-body\x01*\x01i\x03\x01k+\x01@\x01\x04self\x0d\0,\x04\0\x1a[method]nod\ e.input-handler\x01-\x01h\x03\x01k.\x01@\x02\x04self\x0d\x05value/\x01\0\x04\0\x1e\ [method]node.set-input-handler\x010\x03\x01\x10wired:scene/node\x05\x0f\x02\x03\0\ -\0\x04vec2\x02\x03\0\x06\x04node\x01B}\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\0\0\ -\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\ -\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\ -\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06\ -cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07\ -sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\ -\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x01i\x08\x01@\x01\ -\x04size\x01\0\x14\x04\0\x16[constructor]rectangle\x01\x15\x01h\x08\x01@\x01\x04\ -self\x16\0\x01\x04\0\x16[method]rectangle.size\x01\x17\x01@\x02\x04self\x16\x05v\ -alue\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x18\x01i\x05\x01@\x01\x04\ -self\x16\0\x19\x04\0\x19[method]rectangle.to-mesh\x01\x1a\x01i\x07\x01@\x01\x04s\ -elf\x16\0\x1b\x04\0\x19[method]rectangle.to-node\x01\x1c\x04\0![method]rectangle\ -.to-physics-node\x01\x1c\x01i\x09\x01@\x01\x06radiusv\0\x1d\x04\0\x13[constructo\ -r]circle\x01\x1e\x01h\x09\x01@\x01\x04self\x1f\0v\x04\0\x15[method]circle.radius\ -\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\ -\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[method]circle.resolution\x01\"\x01@\x02\x04\ -self\x1f\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01#\x01@\x01\x04\ -self\x1f\0\x19\x04\0\x16[method]circle.to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\ -\0\x16[method]circle.to-node\x01%\x04\0\x1e[method]circle.to-physics-node\x01%\x01\ -i\x0a\x01@\x01\x09half-size\x01\0&\x04\0\x14[constructor]ellipse\x01'\x01h\x0a\x01\ -@\x01\x04self(\0\x01\x04\0\x19[method]ellipse.half-size\x01)\x01@\x02\x04self(\x05\ -value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01*\x01@\x01\x04self(\0{\ -\x04\0\x1a[method]ellipse.resolution\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\ -\x1e[method]ellipse.set-resolution\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method\ -]ellipse.to-mesh\x01-\x01@\x01\x04self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01\ -.\x04\0\x1f[method]ellipse.to-physics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06\ -heightv\0/\x04\0\x15[constructor]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\ -\0\x14[method]cylinder.cap\x012\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[m\ -ethod]cylinder.set-cap\x013\x01@\x01\x04self1\0v\x04\0\x17[method]cylinder.heigh\ -t\x014\x01@\x02\x04self1\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x01\ -5\x04\0\x17[method]cylinder.radius\x014\x04\0\x1b[method]cylinder.set-radius\x01\ -5\x01@\x01\x04self1\0}\x04\0\x1b[method]cylinder.resolution\x016\x01@\x02\x04sel\ -f1\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x017\x04\0\x19[metho\ -d]cylinder.segments\x016\x04\0\x1d[method]cylinder.set-segments\x017\x01@\x01\x04\ -self1\0\x19\x04\0\x18[method]cylinder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\ -\x18[method]cylinder.to-node\x019\x04\0\x20[method]cylinder.to-physics-node\x019\ -\x01i\x0c\x01@\x01\x04size\x03\0:\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01\ -@\x01\x04self<\0\x03\x04\0\x13[method]cuboid.size\x01=\x01@\x02\x04self<\x05valu\ -e\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16\ -[method]cuboid.to-mesh\x01?\x01@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-n\ -ode\x01@\x04\0\x1e[method]cuboid.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiu\ -sv\0\xc1\0\x04\0\x16[static]sphere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01\ -B\x01h\x13\x01@\x01\x04self\xc3\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\ -\x04self\xc3\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04\ -self\xc3\0\0\x12\x04\0\x13[method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05val\ -ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\ -\0\x16[method]sphere.to-mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]\ -sphere.to-node\x01I\x04\0\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unav\ -i:shapes/api\x05\x12\x01B\x04\x01m\x04\x05debug\x04info\x04warn\x05error\x04\0\x09\ -log-level\x03\0\0\x01@\x02\x05level\x01\x07messages\x01\0\x04\0\x03log\x01\x02\x03\ -\x01\x0dwired:log/api\x05\x13\x01B\x11\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\0\ -\x01i\x01\x01r\x14\x04hips\x02\x05spine\x02\x05chest\x02\x0bupper-chest\x02\x04n\ -eck\x02\x04head\x02\x0dleft-shoulder\x02\x0eleft-upper-arm\x02\x0eleft-lower-arm\ -\x02\x09left-hand\x02\x0eright-shoulder\x02\x0fright-upper-arm\x02\x0fright-lowe\ -r-arm\x02\x0aright-hand\x02\x0eleft-upper-leg\x02\x0eleft-lower-leg\x02\x09left-\ -foot\x02\x0fright-upper-leg\x02\x0fright-lower-leg\x02\x0aright-foot\x02\x04\0\x08\ -skeleton\x03\0\x03\x04\0\x06player\x03\x01\x01h\x05\x01@\x01\x04self\x06\0\x02\x04\ -\0\x13[method]player.root\x01\x07\x01@\x01\x04self\x06\0\x04\x04\0\x17[method]pl\ -ayer.skeleton\x01\x08\x01i\x05\x01p\x09\x01@\0\0\x0a\x04\0\x0clist-players\x01\x0b\ -\x01@\0\0\x09\x04\0\x0clocal-player\x01\x0c\x03\x01\x10wired:player/api\x05\x14\x01\ -B\x15\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\0\x04\0\x05scene\x03\x01\x01i\x02\x01\ -@\0\0\x03\x04\0\x12[constructor]scene\x01\x04\x01h\x02\x01@\x01\x04self\x05\0y\x04\ -\0\x10[method]scene.id\x01\x06\x01@\x01\x04self\x05\0s\x04\0\x12[method]scene.na\ -me\x01\x07\x01@\x02\x04self\x05\x05values\x01\0\x04\0\x16[method]scene.set-name\x01\ -\x08\x01i\x01\x01p\x09\x01@\x01\x04self\x05\0\x0a\x04\0\x13[method]scene.nodes\x01\ -\x0b\x01h\x01\x01@\x02\x04self\x05\x05value\x0c\x01\0\x04\0\x16[method]scene.add\ --node\x01\x0d\x04\0\x19[method]scene.remove-node\x01\x0d\x03\x01\x11wired:scene/\ -scene\x05\x15\x02\x03\0\x0a\x05scene\x01B5\x02\x03\x02\x01\x02\x04\0\x08material\ -\x03\0\0\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x02\x02\x03\x02\x01\x11\x04\0\x04\ -node\x03\0\x04\x02\x03\x02\x01\x16\x04\0\x05scene\x03\0\x06\x04\0\x04gltf\x03\x01\ -\x01i\x08\x01@\0\0\x09\x04\0\x11[constructor]gltf\x01\x0a\x01h\x08\x01i\x01\x01p\ -\x0c\x01@\x01\x04self\x0b\0\x0d\x04\0\x1b[method]gltf.list-materials\x01\x0e\x01\ -h\x01\x01@\x02\x04self\x0b\x05value\x0f\x01\0\x04\0\x19[method]gltf.add-material\ -\x01\x10\x04\0\x1c[method]gltf.remove-material\x01\x10\x01i\x03\x01p\x11\x01@\x01\ -\x04self\x0b\0\x12\x04\0\x18[method]gltf.list-meshes\x01\x13\x01h\x03\x01@\x02\x04\ -self\x0b\x05value\x14\x01\0\x04\0\x15[method]gltf.add-mesh\x01\x15\x04\0\x18[met\ -hod]gltf.remove-mesh\x01\x15\x01i\x05\x01p\x16\x01@\x01\x04self\x0b\0\x17\x04\0\x17\ -[method]gltf.list-nodes\x01\x18\x01h\x05\x01@\x02\x04self\x0b\x05value\x19\x01\0\ -\x04\0\x15[method]gltf.add-node\x01\x1a\x04\0\x18[method]gltf.remove-node\x01\x1a\ -\x01i\x07\x01p\x1b\x01@\x01\x04self\x0b\0\x1c\x04\0\x18[method]gltf.list-scenes\x01\ -\x1d\x01h\x07\x01@\x02\x04self\x0b\x05value\x1e\x01\0\x04\0\x16[method]gltf.add-\ -scene\x01\x1f\x04\0\x19[method]gltf.remove-scene\x01\x1f\x01k\x1b\x01@\x01\x04se\ -lf\x0b\0\x20\x04\0\x19[method]gltf.active-scene\x01!\x01k\x1e\x01@\x02\x04self\x0b\ -\x05value\"\x01\0\x04\0\x1d[method]gltf.set-active-scene\x01#\x04\0\x1a[method]g\ -ltf.default-scene\x01!\x04\0\x1e[method]gltf.set-default-scene\x01\x1f\x03\x01\x10\ -wired:scene/gltf\x05\x17\x02\x03\0\x0b\x04gltf\x01Bt\x02\x03\x02\x01\x18\x04\0\x04\ -gltf\x03\0\0\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x02\x02\x03\x02\x01\x0c\x04\ -\0\x09transform\x03\0\x04\x04\0\x04glxf\x03\x01\x04\0\x0aasset-gltf\x03\x01\x04\0\ -\x0aasset-glxf\x03\x01\x01i\x07\x01i\x08\x01q\x02\x04gltf\x01\x09\0\x04glxf\x01\x0a\ -\0\x04\0\x05asset\x03\0\x0b\x01h\x07\x01h\x08\x01q\x02\x04gltf\x01\x0d\0\x04glxf\ -\x01\x0e\0\x04\0\x0casset-borrow\x03\0\x0f\x04\0\x09glxf-node\x03\x01\x01i\x11\x01\ -p\x12\x01q\x02\x05asset\x01\x0c\0\x05nodes\x01\x13\0\x04\0\x08children\x03\0\x14\ -\x01h\x11\x01p\x16\x01q\x02\x05asset\x01\x10\0\x05nodes\x01\x17\0\x04\0\x0fchild\ -ren-borrow\x03\0\x18\x04\0\x0aglxf-scene\x03\x01\x01i\x06\x01@\0\0\x1b\x04\0\x11\ -[constructor]glxf\x01\x1c\x01h\x06\x01p\x0c\x01@\x01\x04self\x1d\0\x1e\x04\0\x18\ -[method]glxf.list-assets\x01\x1f\x01@\x02\x04self\x1d\x05value\x10\x01\0\x04\0\x16\ -[method]glxf.add-asset\x01\x20\x04\0\x19[method]glxf.remove-asset\x01\x20\x01@\x01\ -\x04self\x1d\0\x13\x04\0\x17[method]glxf.list-nodes\x01!\x01@\x02\x04self\x1d\x05\ -value\x16\x01\0\x04\0\x15[method]glxf.add-node\x01\"\x04\0\x18[method]glxf.remov\ -e-node\x01\"\x01i\x1a\x01p#\x01@\x01\x04self\x1d\0$\x04\0\x18[method]glxf.list-s\ -cenes\x01%\x01h\x1a\x01@\x02\x04self\x1d\x05value&\x01\0\x04\0\x16[method]glxf.a\ -dd-scene\x01'\x04\0\x19[method]glxf.remove-scene\x01'\x01k#\x01@\x01\x04self\x1d\ -\0(\x04\0\x19[method]glxf.active-scene\x01)\x01k&\x01@\x02\x04self\x1d\x05value*\ -\x01\0\x04\0\x1d[method]glxf.set-active-scene\x01+\x04\0\x1a[method]glxf.default\ --scene\x01)\x04\0\x1e[method]glxf.set-default-scene\x01'\x01h\x01\x01@\x01\x08do\ -cument,\0\x09\x04\0\x17[constructor]asset-gltf\x01-\x01i\x01\x01@\x01\x04self\x0d\ -\0.\x04\0\x1b[method]asset-gltf.document\x01/\x01i\x03\x01p0\x01@\x01\x04self\x0d\ -\01\x04\0\x1d[method]asset-gltf.list-nodes\x012\x01h\x03\x01@\x02\x04self\x0d\x05\ -value3\x01\0\x04\0\x1b[method]asset-gltf.add-node\x014\x04\0\x1e[method]asset-gl\ -tf.remove-node\x014\x01@\x01\x08document\x1d\0\x0a\x04\0\x17[constructor]asset-g\ -lxf\x015\x01@\x01\x04self\x0e\0\x1b\x04\0\x1b[method]asset-glxf.document\x016\x01\ -@\x01\x04self\x0e\0\x13\x04\0\x1d[method]asset-glxf.list-nodes\x017\x01@\x02\x04\ -self\x0e\x05value\x16\x01\0\x04\0\x1b[method]asset-glxf.add-node\x018\x04\0\x1e[\ -method]asset-glxf.remove-node\x018\x01@\0\0\x12\x04\0\x16[constructor]glxf-node\x01\ -9\x01@\x01\x04self\x16\0y\x04\0\x14[method]glxf-node.id\x01:\x01@\x01\x04self\x16\ -\0s\x04\0\x16[method]glxf-node.name\x01;\x01@\x02\x04self\x16\x05values\x01\0\x04\ -\0\x1a[method]glxf-node.set-name\x01<\x01@\x01\x04self\x16\0\x05\x04\0\x1b[metho\ -d]glxf-node.transform\x01=\x01@\x02\x04self\x16\x05value\x05\x01\0\x04\0\x1f[met\ -hod]glxf-node.set-transform\x01>\x01k\x12\x01@\x01\x04self\x16\0?\x04\0\x18[meth\ -od]glxf-node.parent\x01@\x01k\x15\x01@\x01\x04self\x16\0\xc1\0\x04\0\x1a[method]\ -glxf-node.children\x01B\x01k\x19\x01@\x02\x04self\x16\x05value\xc3\0\x01\0\x04\0\ -\x1e[method]glxf-node.set-children\x01D\x01@\0\0#\x04\0\x17[constructor]glxf-sce\ -ne\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]glxf-scene.id\x01F\x01@\x01\x04sel\ -f&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01@\x02\x04self&\x05values\x01\0\x04\ -\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\x04self&\0\x13\x04\0\x18[method]\ -glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\x16\x01\0\x04\0\x1b[method]glxf-\ -scene.add-node\x01J\x04\0\x1e[method]glxf-scene.remove-node\x01J\x04\0\x08get-ro\ -ot\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x19\x01B\x07\x04\0\x06script\x03\x01\x01\ -i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\x02\x01h\0\x01@\x02\x04self\x03\ -\x05deltav\x01\0\x04\0\x15[method]script.update\x01\x04\x04\x01\x12wired:script/\ -types\x05\x1a\x04\x01\x1aexample:wired-scene/script\x04\0\x0b\x0c\x01\0\x06scrip\ -t\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10\ -wit-bindgen-rust\x060.25.0"; +\0\x04vec2\x02\x03\0\x06\x04node\x01B\x88\x01\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\ +\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04me\ +sh\x03\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\ +\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\ +\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\ +\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02\ +uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axe\ +s\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\ +\x16\x01h\x08\x01@\x01\x04self\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\ +\x01@\x02\x04self\x17\x05value\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\ +\x19\x01i\x05\x01@\x01\x04self\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\ +\x01i\x07\x01@\x01\x04self\x17\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\ +\0![method]rectangle.to-physics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\ +\0\x13[constructor]circle\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[met\ +hod]circle.radius\x01!\x01@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]cir\ +cle.set-radius\x01\"\x01@\x01\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01\ +#\x01@\x02\x04self\x20\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01\ +$\x01@\x01\x04self\x20\0\x1a\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04se\ +lf\x20\0\x1c\x04\0\x16[method]circle.to-node\x01&\x04\0\x1e[method]circle.to-phy\ +sics-node\x01&\x01i\x0a\x01@\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellip\ +se\x01(\x01h\x0a\x01@\x01\x04self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\ +\x01@\x02\x04self)\x05value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01\ ++\x01@\x01\x04self)\0{\x04\0\x1a[method]ellipse.resolution\x01,\x01@\x02\x04self\ +)\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolution\x01-\x01@\x01\x04self)\ +\0\x1a\x04\0\x17[method]ellipse.to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[m\ +ethod]ellipse.to-node\x01/\x04\0\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\ +\x01@\x02\x06radiusv\x06heightv\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01\ +@\x01\x04self2\0\x7f\x04\0\x14[method]cylinder.cap\x013\x01@\x02\x04self2\x05val\ +ue\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17\ +[method]cylinder.height\x015\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]\ +cylinder.set-height\x016\x04\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]\ +cylinder.set-radius\x016\x01@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resoluti\ +on\x017\x01@\x02\x04self2\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resoluti\ +on\x018\x04\0\x19[method]cylinder.segments\x017\x04\0\x1d[method]cylinder.set-se\ +gments\x018\x01@\x01\x04self2\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\ +\x04self2\0\x1c\x04\0\x18[method]cylinder.to-node\x01:\x04\0\x20[method]cylinder\ +.to-physics-node\x01:\x01i\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cub\ +oid\x01<\x01h\x0c\x01@\x01\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\ +\x02\x04self=\x05value\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04\ +self=\0\x1a\x04\0\x16[method]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16\ +[method]cuboid.to-node\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\ +\x01@\x01\x06radiusv\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[stat\ +ic]sphere.new-uv\x01C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere\ +.radius\x01E\x01@\x02\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-\ +radius\x01F\x01@\x01\x04self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\ +\x04self\xc4\0\x05value\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\ +\x04self\xc4\0\0\x1a\x04\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\ +\0\x1c\x04\0\x16[method]sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-n\ +ode\x01J\x01i\x14\x01@\0\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\ +\x04self\xcd\0\0v\x04\0\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valu\ +ev\x01\0\x04\0\x15[method]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14\ +[method]axes.to-node\x01P\x03\x01\x10unavi:shapes/api\x05\x12\x01B\x04\x01m\x04\x05\ +debug\x04info\x04warn\x05error\x04\0\x09log-level\x03\0\0\x01@\x02\x05level\x01\x07\ +messages\x01\0\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/api\x05\x13\x01B\x11\x02\ +\x03\x02\x01\x11\x04\0\x04node\x03\0\0\x01i\x01\x01r\x14\x04hips\x02\x05spine\x02\ +\x05chest\x02\x0bupper-chest\x02\x04neck\x02\x04head\x02\x0dleft-shoulder\x02\x0e\ +left-upper-arm\x02\x0eleft-lower-arm\x02\x09left-hand\x02\x0eright-shoulder\x02\x0f\ +right-upper-arm\x02\x0fright-lower-arm\x02\x0aright-hand\x02\x0eleft-upper-leg\x02\ +\x0eleft-lower-leg\x02\x09left-foot\x02\x0fright-upper-leg\x02\x0fright-lower-le\ +g\x02\x0aright-foot\x02\x04\0\x08skeleton\x03\0\x03\x04\0\x06player\x03\x01\x01h\ +\x05\x01@\x01\x04self\x06\0\x02\x04\0\x13[method]player.root\x01\x07\x01@\x01\x04\ +self\x06\0\x04\x04\0\x17[method]player.skeleton\x01\x08\x01i\x05\x01p\x09\x01@\0\ +\0\x0a\x04\0\x0clist-players\x01\x0b\x01@\0\0\x09\x04\0\x0clocal-player\x01\x0c\x03\ +\x01\x10wired:player/api\x05\x14\x01B\x15\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\ +\0\x04\0\x05scene\x03\x01\x01i\x02\x01@\0\0\x03\x04\0\x12[constructor]scene\x01\x04\ +\x01h\x02\x01@\x01\x04self\x05\0y\x04\0\x10[method]scene.id\x01\x06\x01@\x01\x04\ +self\x05\0s\x04\0\x12[method]scene.name\x01\x07\x01@\x02\x04self\x05\x05values\x01\ +\0\x04\0\x16[method]scene.set-name\x01\x08\x01i\x01\x01p\x09\x01@\x01\x04self\x05\ +\0\x0a\x04\0\x13[method]scene.nodes\x01\x0b\x01h\x01\x01@\x02\x04self\x05\x05val\ +ue\x0c\x01\0\x04\0\x16[method]scene.add-node\x01\x0d\x04\0\x19[method]scene.remo\ +ve-node\x01\x0d\x03\x01\x11wired:scene/scene\x05\x15\x02\x03\0\x0a\x05scene\x01B\ +5\x02\x03\x02\x01\x02\x04\0\x08material\x03\0\0\x02\x03\x02\x01\x0a\x04\0\x04mes\ +h\x03\0\x02\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x04\x02\x03\x02\x01\x16\x04\0\ +\x05scene\x03\0\x06\x04\0\x04gltf\x03\x01\x01i\x08\x01@\0\0\x09\x04\0\x11[constr\ +uctor]gltf\x01\x0a\x01h\x08\x01i\x01\x01p\x0c\x01@\x01\x04self\x0b\0\x0d\x04\0\x1b\ +[method]gltf.list-materials\x01\x0e\x01h\x01\x01@\x02\x04self\x0b\x05value\x0f\x01\ +\0\x04\0\x19[method]gltf.add-material\x01\x10\x04\0\x1c[method]gltf.remove-mater\ +ial\x01\x10\x01i\x03\x01p\x11\x01@\x01\x04self\x0b\0\x12\x04\0\x18[method]gltf.l\ +ist-meshes\x01\x13\x01h\x03\x01@\x02\x04self\x0b\x05value\x14\x01\0\x04\0\x15[me\ +thod]gltf.add-mesh\x01\x15\x04\0\x18[method]gltf.remove-mesh\x01\x15\x01i\x05\x01\ +p\x16\x01@\x01\x04self\x0b\0\x17\x04\0\x17[method]gltf.list-nodes\x01\x18\x01h\x05\ +\x01@\x02\x04self\x0b\x05value\x19\x01\0\x04\0\x15[method]gltf.add-node\x01\x1a\x04\ +\0\x18[method]gltf.remove-node\x01\x1a\x01i\x07\x01p\x1b\x01@\x01\x04self\x0b\0\x1c\ +\x04\0\x18[method]gltf.list-scenes\x01\x1d\x01h\x07\x01@\x02\x04self\x0b\x05valu\ +e\x1e\x01\0\x04\0\x16[method]gltf.add-scene\x01\x1f\x04\0\x19[method]gltf.remove\ +-scene\x01\x1f\x01k\x1b\x01@\x01\x04self\x0b\0\x20\x04\0\x19[method]gltf.active-\ +scene\x01!\x01k\x1e\x01@\x02\x04self\x0b\x05value\"\x01\0\x04\0\x1d[method]gltf.\ +set-active-scene\x01#\x04\0\x1a[method]gltf.default-scene\x01!\x04\0\x1e[method]\ +gltf.set-default-scene\x01\x1f\x03\x01\x10wired:scene/gltf\x05\x17\x02\x03\0\x0b\ +\x04gltf\x01Bt\x02\x03\x02\x01\x18\x04\0\x04gltf\x03\0\0\x02\x03\x02\x01\x11\x04\ +\0\x04node\x03\0\x02\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x04\x04\0\x04g\ +lxf\x03\x01\x04\0\x0aasset-gltf\x03\x01\x04\0\x0aasset-glxf\x03\x01\x01i\x07\x01\ +i\x08\x01q\x02\x04gltf\x01\x09\0\x04glxf\x01\x0a\0\x04\0\x05asset\x03\0\x0b\x01h\ +\x07\x01h\x08\x01q\x02\x04gltf\x01\x0d\0\x04glxf\x01\x0e\0\x04\0\x0casset-borrow\ +\x03\0\x0f\x04\0\x09glxf-node\x03\x01\x01i\x11\x01p\x12\x01q\x02\x05asset\x01\x0c\ +\0\x05nodes\x01\x13\0\x04\0\x08children\x03\0\x14\x01h\x11\x01p\x16\x01q\x02\x05\ +asset\x01\x10\0\x05nodes\x01\x17\0\x04\0\x0fchildren-borrow\x03\0\x18\x04\0\x0ag\ +lxf-scene\x03\x01\x01i\x06\x01@\0\0\x1b\x04\0\x11[constructor]glxf\x01\x1c\x01h\x06\ +\x01p\x0c\x01@\x01\x04self\x1d\0\x1e\x04\0\x18[method]glxf.list-assets\x01\x1f\x01\ +@\x02\x04self\x1d\x05value\x10\x01\0\x04\0\x16[method]glxf.add-asset\x01\x20\x04\ +\0\x19[method]glxf.remove-asset\x01\x20\x01@\x01\x04self\x1d\0\x13\x04\0\x17[met\ +hod]glxf.list-nodes\x01!\x01@\x02\x04self\x1d\x05value\x16\x01\0\x04\0\x15[metho\ +d]glxf.add-node\x01\"\x04\0\x18[method]glxf.remove-node\x01\"\x01i\x1a\x01p#\x01\ +@\x01\x04self\x1d\0$\x04\0\x18[method]glxf.list-scenes\x01%\x01h\x1a\x01@\x02\x04\ +self\x1d\x05value&\x01\0\x04\0\x16[method]glxf.add-scene\x01'\x04\0\x19[method]g\ +lxf.remove-scene\x01'\x01k#\x01@\x01\x04self\x1d\0(\x04\0\x19[method]glxf.active\ +-scene\x01)\x01k&\x01@\x02\x04self\x1d\x05value*\x01\0\x04\0\x1d[method]glxf.set\ +-active-scene\x01+\x04\0\x1a[method]glxf.default-scene\x01)\x04\0\x1e[method]glx\ +f.set-default-scene\x01'\x01h\x01\x01@\x01\x08document,\0\x09\x04\0\x17[construc\ +tor]asset-gltf\x01-\x01i\x01\x01@\x01\x04self\x0d\0.\x04\0\x1b[method]asset-gltf\ +.document\x01/\x01i\x03\x01p0\x01@\x01\x04self\x0d\01\x04\0\x1d[method]asset-glt\ +f.list-nodes\x012\x01h\x03\x01@\x02\x04self\x0d\x05value3\x01\0\x04\0\x1b[method\ +]asset-gltf.add-node\x014\x04\0\x1e[method]asset-gltf.remove-node\x014\x01@\x01\x08\ +document\x1d\0\x0a\x04\0\x17[constructor]asset-glxf\x015\x01@\x01\x04self\x0e\0\x1b\ +\x04\0\x1b[method]asset-glxf.document\x016\x01@\x01\x04self\x0e\0\x13\x04\0\x1d[\ +method]asset-glxf.list-nodes\x017\x01@\x02\x04self\x0e\x05value\x16\x01\0\x04\0\x1b\ +[method]asset-glxf.add-node\x018\x04\0\x1e[method]asset-glxf.remove-node\x018\x01\ +@\0\0\x12\x04\0\x16[constructor]glxf-node\x019\x01@\x01\x04self\x16\0y\x04\0\x14\ +[method]glxf-node.id\x01:\x01@\x01\x04self\x16\0s\x04\0\x16[method]glxf-node.nam\ +e\x01;\x01@\x02\x04self\x16\x05values\x01\0\x04\0\x1a[method]glxf-node.set-name\x01\ +<\x01@\x01\x04self\x16\0\x05\x04\0\x1b[method]glxf-node.transform\x01=\x01@\x02\x04\ +self\x16\x05value\x05\x01\0\x04\0\x1f[method]glxf-node.set-transform\x01>\x01k\x12\ +\x01@\x01\x04self\x16\0?\x04\0\x18[method]glxf-node.parent\x01@\x01k\x15\x01@\x01\ +\x04self\x16\0\xc1\0\x04\0\x1a[method]glxf-node.children\x01B\x01k\x19\x01@\x02\x04\ +self\x16\x05value\xc3\0\x01\0\x04\0\x1e[method]glxf-node.set-children\x01D\x01@\0\ +\0#\x04\0\x17[constructor]glxf-scene\x01E\x01@\x01\x04self&\0y\x04\0\x15[method]\ +glxf-scene.id\x01F\x01@\x01\x04self&\0s\x04\0\x17[method]glxf-scene.name\x01G\x01\ +@\x02\x04self&\x05values\x01\0\x04\0\x1b[method]glxf-scene.set-name\x01H\x01@\x01\ +\x04self&\0\x13\x04\0\x18[method]glxf-scene.nodes\x01I\x01@\x02\x04self&\x04node\ +\x16\x01\0\x04\0\x1b[method]glxf-scene.add-node\x01J\x04\0\x1e[method]glxf-scene\ +.remove-node\x01J\x04\0\x08get-root\x01\x1c\x03\x01\x10wired:scene/glxf\x05\x19\x01\ +B\x07\x04\0\x06script\x03\x01\x01i\0\x01@\0\0\x01\x04\0\x13[constructor]script\x01\ +\x02\x01h\0\x01@\x02\x04self\x03\x05deltav\x01\0\x04\0\x15[method]script.update\x01\ +\x04\x04\x01\x12wired:script/types\x05\x1a\x04\x01\x1aexample:wired-scene/script\ +\x04\0\x0b\x0c\x01\0\x06script\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0d\ +wit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/unavi-shapes/src/bindings.rs b/wasm/unavi-shapes/src/bindings.rs index 34346c0d0..3043cab80 100644 --- a/wasm/unavi-shapes/src/bindings.rs +++ b/wasm/unavi-shapes/src/bindings.rs @@ -3851,6 +3851,146 @@ pub mod exports { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + type _AxesRep = Option; + + impl Axes { + /// Creates a new resource from the specified representation. + /// + /// This function will create a new resource handle by moving `val` onto + /// the heap and then passing that heap pointer to the component model to + /// create a handle. The owned handle is then returned as `Axes`. + pub fn new(val: T) -> Self { + Self::type_guard::(); + let val: _AxesRep = Some(val); + let ptr: *mut _AxesRep = _rt::Box::into_raw(_rt::Box::new(val)); + unsafe { Self::from_handle(T::_resource_new(ptr.cast())) } + } + + /// Gets access to the underlying `T` which represents this resource. + pub fn get(&self) -> &T { + let ptr = unsafe { &*self.as_ptr::() }; + ptr.as_ref().unwrap() + } + + /// Gets mutable access to the underlying `T` which represents this + /// resource. + pub fn get_mut(&mut self) -> &mut T { + let ptr = unsafe { &mut *self.as_ptr::() }; + ptr.as_mut().unwrap() + } + + /// Consumes this resource and returns the underlying `T`. + pub fn into_inner(self) -> T { + let ptr = unsafe { &mut *self.as_ptr::() }; + ptr.take().unwrap() + } + + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + + // It's theoretically possible to implement the `GuestAxes` trait twice + // so guard against using it with two different types here. + #[doc(hidden)] + fn type_guard() { + use core::any::TypeId; + static mut LAST_TYPE: Option = None; + unsafe { + assert!(!cfg!(target_feature = "threads")); + let id = TypeId::of::(); + match LAST_TYPE { + Some(ty) => assert!( + ty == id, + "cannot use two types with this resource type" + ), + None => LAST_TYPE = Some(id), + } + } + } + + #[doc(hidden)] + pub unsafe fn dtor(handle: *mut u8) { + Self::type_guard::(); + let _ = _rt::Box::from_raw(handle as *mut _AxesRep); + } + + fn as_ptr(&self) -> *mut _AxesRep { + Axes::type_guard::(); + T::_resource_rep(self.handle()).cast() + } + } + + /// A borrowed version of [`Axes`] which represents a borrowed value + /// with the lifetime `'a`. + #[derive(Debug)] + #[repr(transparent)] + pub struct AxesBorrow<'a> { + rep: *mut u8, + _marker: core::marker::PhantomData<&'a Axes>, + } + + impl<'a> AxesBorrow<'a> { + #[doc(hidden)] + pub unsafe fn lift(rep: usize) -> Self { + Self { + rep: rep as *mut u8, + _marker: core::marker::PhantomData, + } + } + + /// Gets access to the underlying `T` in this resource. + pub fn get(&self) -> &T { + let ptr = unsafe { &mut *self.as_ptr::() }; + ptr.as_ref().unwrap() + } + + // NB: mutable access is not allowed due to the component model allowing + // multiple borrows of the same resource. + + fn as_ptr(&self) -> *mut _AxesRep { + Axes::type_guard::(); + self.rep.cast() + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "[export]unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + #[doc(hidden)] #[allow(non_snake_case)] pub unsafe fn _export_constructor_rectangle_cabi( @@ -4455,6 +4595,40 @@ pub mod exports { T::to_physics_node(SphereBorrow::lift(arg0 as u32 as usize).get()); (result0).take_handle() as i32 } + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_constructor_axes_cabi() -> i32 { + #[cfg(target_arch = "wasm32")] + _rt::run_ctors_once(); + let result0 = Axes::new(T::new()); + (result0).take_handle() as i32 + } + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_method_axes_size_cabi(arg0: *mut u8) -> f32 { + #[cfg(target_arch = "wasm32")] + _rt::run_ctors_once(); + let result0 = T::size(AxesBorrow::lift(arg0 as u32 as usize).get()); + _rt::as_f32(result0) + } + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_method_axes_set_size_cabi( + arg0: *mut u8, + arg1: f32, + ) { + #[cfg(target_arch = "wasm32")] + _rt::run_ctors_once(); + T::set_size(AxesBorrow::lift(arg0 as u32 as usize).get(), arg1); + } + #[doc(hidden)] + #[allow(non_snake_case)] + pub unsafe fn _export_method_axes_to_node_cabi(arg0: *mut u8) -> i32 { + #[cfg(target_arch = "wasm32")] + _rt::run_ctors_once(); + let result0 = T::to_node(AxesBorrow::lift(arg0 as u32 as usize).get()); + (result0).take_handle() as i32 + } pub trait Guest { type Rectangle: GuestRectangle; type Circle: GuestCircle; @@ -4462,6 +4636,7 @@ pub mod exports { type Cylinder: GuestCylinder; type Cuboid: GuestCuboid; type Sphere: GuestSphere; + type Axes: GuestAxes; } pub trait GuestRectangle: 'static { #[doc(hidden)] @@ -4813,6 +4988,57 @@ pub mod exports { /// Creates a node with a mesh and physics collider of this shape. fn to_physics_node(&self) -> Node; } + pub trait GuestAxes: 'static { + #[doc(hidden)] + unsafe fn _resource_new(val: *mut u8) -> u32 + where + Self: Sized, + { + #[cfg(not(target_arch = "wasm32"))] + { + let _ = val; + unreachable!(); + } + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "[export]unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-new]axes"] + fn new(_: *mut u8) -> u32; + } + new(val) + } + } + + #[doc(hidden)] + fn _resource_rep(handle: u32) -> *mut u8 + where + Self: Sized, + { + #[cfg(not(target_arch = "wasm32"))] + { + let _ = handle; + unreachable!(); + } + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "[export]unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-rep]axes"] + fn rep(_: u32) -> *mut u8; + } + unsafe { rep(handle) } + } + } + + fn new() -> Self; + fn size(&self) -> f32; + fn set_size(&self, value: f32); + /// Creates a node with a mesh of this shape. + fn to_node(&self) -> Node; + } #[doc(hidden)] macro_rules! __export_unavi_shapes_api_cabi{ @@ -5022,6 +5248,22 @@ pub mod exports { unsafe extern "C" fn export_method_sphere_to_physics_node(arg0: *mut u8,) -> i32 { $($path_to_types)*::_export_method_sphere_to_physics_node_cabi::<<$ty as $($path_to_types)*::Guest>::Sphere>(arg0) } + #[export_name = "unavi:shapes/api#[constructor]axes"] + unsafe extern "C" fn export_constructor_axes() -> i32 { + $($path_to_types)*::_export_constructor_axes_cabi::<<$ty as $($path_to_types)*::Guest>::Axes>() + } + #[export_name = "unavi:shapes/api#[method]axes.size"] + unsafe extern "C" fn export_method_axes_size(arg0: *mut u8,) -> f32 { + $($path_to_types)*::_export_method_axes_size_cabi::<<$ty as $($path_to_types)*::Guest>::Axes>(arg0) + } + #[export_name = "unavi:shapes/api#[method]axes.set-size"] + unsafe extern "C" fn export_method_axes_set_size(arg0: *mut u8,arg1: f32,) { + $($path_to_types)*::_export_method_axes_set_size_cabi::<<$ty as $($path_to_types)*::Guest>::Axes>(arg0, arg1) + } + #[export_name = "unavi:shapes/api#[method]axes.to-node"] + unsafe extern "C" fn export_method_axes_to_node(arg0: *mut u8,) -> i32 { + $($path_to_types)*::_export_method_axes_to_node_cabi::<<$ty as $($path_to_types)*::Guest>::Axes>(arg0) + } const _: () = { #[doc(hidden)] @@ -5094,6 +5336,18 @@ pub mod exports { } }; + + const _: () = { + #[doc(hidden)] + #[export_name = "unavi:shapes/api#[dtor]axes"] + #[allow(non_snake_case)] + unsafe extern "C" fn dtor(rep: *mut u8) { + $($path_to_types)*::Axes::dtor::< + <$ty as $($path_to_types)*::Guest>::Axes + >(rep) + } + }; + };); } #[doc(hidden)] @@ -5367,8 +5621,8 @@ pub(crate) use __export_guest_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:guest:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 6074] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xbe.\x01A\x02\x01A\x1d\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 6234] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xde/\x01A\x02\x01A\x1d\ \x01B\x04\x01m\x04\x05debug\x04info\x04warn\x05error\x04\0\x09log-level\x03\0\0\x01\ @\x02\x05level\x01\x07messages\x01\0\x04\0\x03log\x01\x02\x03\x01\x0dwired:log/a\ pi\x05\0\x01B\x13\x01r\x04\x01rv\x01gv\x01bv\x01av\x04\0\x05color\x03\0\0\x04\0\x08\ @@ -5450,57 +5704,61 @@ rigid-body\x01'\x01h\x09\x01k(\x01@\x02\x04self\x0d\x05value)\x01\0\x04\0\x1b[me thod]node.set-rigid-body\x01*\x01i\x03\x01k+\x01@\x01\x04self\x0d\0,\x04\0\x1a[m\ ethod]node.input-handler\x01-\x01h\x03\x01k.\x01@\x02\x04self\x0d\x05value/\x01\0\ \x04\0\x1e[method]node.set-input-handler\x010\x03\x01\x10wired:scene/node\x05\x10\ -\x02\x03\0\x03\x04vec2\x02\x03\0\x07\x04node\x01B}\x02\x03\x02\x01\x11\x04\0\x04\ -vec2\x03\0\0\x02\x03\x02\x01\x05\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0b\x04\ -\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x12\x04\0\x04node\x03\0\x06\x04\0\x09rectan\ -gle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\ -\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\ -\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ic\ -o\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\ -\x01i\x08\x01@\x01\x04size\x01\0\x14\x04\0\x16[constructor]rectangle\x01\x15\x01\ -h\x08\x01@\x01\x04self\x16\0\x01\x04\0\x16[method]rectangle.size\x01\x17\x01@\x02\ -\x04self\x16\x05value\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x18\x01i\ -\x05\x01@\x01\x04self\x16\0\x19\x04\0\x19[method]rectangle.to-mesh\x01\x1a\x01i\x07\ -\x01@\x01\x04self\x16\0\x1b\x04\0\x19[method]rectangle.to-node\x01\x1c\x04\0![me\ -thod]rectangle.to-physics-node\x01\x1c\x01i\x09\x01@\x01\x06radiusv\0\x1d\x04\0\x13\ -[constructor]circle\x01\x1e\x01h\x09\x01@\x01\x04self\x1f\0v\x04\0\x15[method]ci\ -rcle.radius\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\0\x04\0\x19[method]circle\ -.set-radius\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[method]circle.resolution\x01\"\ -\x01@\x02\x04self\x1f\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01\ -#\x01@\x01\x04self\x1f\0\x19\x04\0\x16[method]circle.to-mesh\x01$\x01@\x01\x04se\ -lf\x1f\0\x1b\x04\0\x16[method]circle.to-node\x01%\x04\0\x1e[method]circle.to-phy\ -sics-node\x01%\x01i\x0a\x01@\x01\x09half-size\x01\0&\x04\0\x14[constructor]ellip\ -se\x01'\x01h\x0a\x01@\x01\x04self(\0\x01\x04\0\x19[method]ellipse.half-size\x01)\ -\x01@\x02\x04self(\x05value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01\ -*\x01@\x01\x04self(\0{\x04\0\x1a[method]ellipse.resolution\x01+\x01@\x02\x04self\ -(\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolution\x01,\x01@\x01\x04self(\ -\0\x19\x04\0\x17[method]ellipse.to-mesh\x01-\x01@\x01\x04self(\0\x1b\x04\0\x17[m\ -ethod]ellipse.to-node\x01.\x04\0\x1f[method]ellipse.to-physics-node\x01.\x01i\x0b\ -\x01@\x02\x06radiusv\x06heightv\0/\x04\0\x15[constructor]cylinder\x010\x01h\x0b\x01\ -@\x01\x04self1\0\x7f\x04\0\x14[method]cylinder.cap\x012\x01@\x02\x04self1\x05val\ -ue\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x013\x01@\x01\x04self1\0v\x04\0\x17\ -[method]cylinder.height\x014\x01@\x02\x04self1\x05valuev\x01\0\x04\0\x1b[method]\ -cylinder.set-height\x015\x04\0\x17[method]cylinder.radius\x014\x04\0\x1b[method]\ -cylinder.set-radius\x015\x01@\x01\x04self1\0}\x04\0\x1b[method]cylinder.resoluti\ -on\x016\x01@\x02\x04self1\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resoluti\ -on\x017\x04\0\x19[method]cylinder.segments\x016\x04\0\x1d[method]cylinder.set-se\ -gments\x017\x01@\x01\x04self1\0\x19\x04\0\x18[method]cylinder.to-mesh\x018\x01@\x01\ -\x04self1\0\x1b\x04\0\x18[method]cylinder.to-node\x019\x04\0\x20[method]cylinder\ -.to-physics-node\x019\x01i\x0c\x01@\x01\x04size\x03\0:\x04\0\x13[constructor]cub\ -oid\x01;\x01h\x0c\x01@\x01\x04self<\0\x03\x04\0\x13[method]cuboid.size\x01=\x01@\ -\x02\x04self<\x05value\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01>\x01@\x01\x04\ -self<\0\x19\x04\0\x16[method]cuboid.to-mesh\x01?\x01@\x01\x04self<\0\x1b\x04\0\x16\ -[method]cuboid.to-node\x01@\x04\0\x1e[method]cuboid.to-physics-node\x01@\x01i\x13\ -\x01@\x01\x06radiusv\0\xc1\0\x04\0\x16[static]sphere.new-ico\x01B\x04\0\x15[stat\ -ic]sphere.new-uv\x01B\x01h\x13\x01@\x01\x04self\xc3\0\0v\x04\0\x15[method]sphere\ -.radius\x01D\x01@\x02\x04self\xc3\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-\ -radius\x01E\x01@\x01\x04self\xc3\0\0\x12\x04\0\x13[method]sphere.kind\x01F\x01@\x02\ -\x04self\xc3\0\x05value\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01G\x01@\x01\ -\x04self\xc3\0\0\x19\x04\0\x16[method]sphere.to-mesh\x01H\x01@\x01\x04self\xc3\0\ -\0\x1b\x04\0\x16[method]sphere.to-node\x01I\x04\0\x1e[method]sphere.to-physics-n\ -ode\x01I\x04\x01\x10unavi:shapes/api\x05\x13\x04\x01\x12unavi:shapes/guest\x04\0\ -\x0b\x0b\x01\0\x05guest\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-c\ -omponent\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +\x02\x03\0\x03\x04vec2\x02\x03\0\x07\x04node\x01B\x88\x01\x02\x03\x02\x01\x11\x04\ +\0\x04vec2\x03\0\0\x02\x03\x02\x01\x05\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0b\ +\x04\0\x04mesh\x03\0\x04\x02\x03\x02\x01\x12\x04\0\x04node\x03\0\x06\x04\0\x09re\ +ctangle\x03\x01\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylind\ +er\x03\x01\x04\0\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\ +\x03\0\x0d\x01r\x02\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\ +\x03ico\x01\x0e\0\x02uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\ +\x03\x01\x04\0\x04axes\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x15\x04\0\x16[con\ +structor]rectangle\x01\x16\x01h\x08\x01@\x01\x04self\x17\0\x01\x04\0\x16[method]\ +rectangle.size\x01\x18\x01@\x02\x04self\x17\x05value\x01\x01\0\x04\0\x1a[method]\ +rectangle.set-size\x01\x19\x01i\x05\x01@\x01\x04self\x17\0\x1a\x04\0\x19[method]\ +rectangle.to-mesh\x01\x1b\x01i\x07\x01@\x01\x04self\x17\0\x1c\x04\0\x19[method]r\ +ectangle.to-node\x01\x1d\x04\0![method]rectangle.to-physics-node\x01\x1d\x01i\x09\ +\x01@\x01\x06radiusv\0\x1e\x04\0\x13[constructor]circle\x01\x1f\x01h\x09\x01@\x01\ +\x04self\x20\0v\x04\0\x15[method]circle.radius\x01!\x01@\x02\x04self\x20\x05valu\ +ev\x01\0\x04\0\x19[method]circle.set-radius\x01\"\x01@\x01\x04self\x20\0{\x04\0\x19\ +[method]circle.resolution\x01#\x01@\x02\x04self\x20\x05value{\x01\0\x04\0\x1d[me\ +thod]circle.set-resolution\x01$\x01@\x01\x04self\x20\0\x1a\x04\0\x16[method]circ\ +le.to-mesh\x01%\x01@\x01\x04self\x20\0\x1c\x04\0\x16[method]circle.to-node\x01&\x04\ +\0\x1e[method]circle.to-physics-node\x01&\x01i\x0a\x01@\x01\x09half-size\x01\0'\x04\ +\0\x14[constructor]ellipse\x01(\x01h\x0a\x01@\x01\x04self)\0\x01\x04\0\x19[metho\ +d]ellipse.half-size\x01*\x01@\x02\x04self)\x05value\x01\x01\0\x04\0\x1d[method]e\ +llipse.set-half-size\x01+\x01@\x01\x04self)\0{\x04\0\x1a[method]ellipse.resoluti\ +on\x01,\x01@\x02\x04self)\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolutio\ +n\x01-\x01@\x01\x04self)\0\x1a\x04\0\x17[method]ellipse.to-mesh\x01.\x01@\x01\x04\ +self)\0\x1c\x04\0\x17[method]ellipse.to-node\x01/\x04\0\x1f[method]ellipse.to-ph\ +ysics-node\x01/\x01i\x0b\x01@\x02\x06radiusv\x06heightv\00\x04\0\x15[constructor\ +]cylinder\x011\x01h\x0b\x01@\x01\x04self2\0\x7f\x04\0\x14[method]cylinder.cap\x01\ +3\x01@\x02\x04self2\x05value\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x014\x01\ +@\x01\x04self2\0v\x04\0\x17[method]cylinder.height\x015\x01@\x02\x04self2\x05val\ +uev\x01\0\x04\0\x1b[method]cylinder.set-height\x016\x04\0\x17[method]cylinder.ra\ +dius\x015\x04\0\x1b[method]cylinder.set-radius\x016\x01@\x01\x04self2\0}\x04\0\x1b\ +[method]cylinder.resolution\x017\x01@\x02\x04self2\x05value}\x01\0\x04\0\x1f[met\ +hod]cylinder.set-resolution\x018\x04\0\x19[method]cylinder.segments\x017\x04\0\x1d\ +[method]cylinder.set-segments\x018\x01@\x01\x04self2\0\x1a\x04\0\x18[method]cyli\ +nder.to-mesh\x019\x01@\x01\x04self2\0\x1c\x04\0\x18[method]cylinder.to-node\x01:\ +\x04\0\x20[method]cylinder.to-physics-node\x01:\x01i\x0c\x01@\x01\x04size\x03\0;\ +\x04\0\x13[constructor]cuboid\x01<\x01h\x0c\x01@\x01\x04self=\0\x03\x04\0\x13[me\ +thod]cuboid.size\x01>\x01@\x02\x04self=\x05value\x03\x01\0\x04\0\x17[method]cubo\ +id.set-size\x01?\x01@\x01\x04self=\0\x1a\x04\0\x16[method]cuboid.to-mesh\x01@\x01\ +@\x01\x04self=\0\x1c\x04\0\x16[method]cuboid.to-node\x01A\x04\0\x1e[method]cuboi\ +d.to-physics-node\x01A\x01i\x13\x01@\x01\x06radiusv\0\xc2\0\x04\0\x16[static]sph\ +ere.new-ico\x01C\x04\0\x15[static]sphere.new-uv\x01C\x01h\x13\x01@\x01\x04self\xc4\ +\0\0v\x04\0\x15[method]sphere.radius\x01E\x01@\x02\x04self\xc4\0\x05valuev\x01\0\ +\x04\0\x19[method]sphere.set-radius\x01F\x01@\x01\x04self\xc4\0\0\x12\x04\0\x13[\ +method]sphere.kind\x01G\x01@\x02\x04self\xc4\0\x05value\x12\x01\0\x04\0\x17[meth\ +od]sphere.set-kind\x01H\x01@\x01\x04self\xc4\0\0\x1a\x04\0\x16[method]sphere.to-\ +mesh\x01I\x01@\x01\x04self\xc4\0\0\x1c\x04\0\x16[method]sphere.to-node\x01J\x04\0\ +\x1e[method]sphere.to-physics-node\x01J\x01i\x14\x01@\0\0\xcb\0\x04\0\x11[constr\ +uctor]axes\x01L\x01h\x14\x01@\x01\x04self\xcd\0\0v\x04\0\x11[method]axes.size\x01\ +N\x01@\x02\x04self\xcd\0\x05valuev\x01\0\x04\0\x15[method]axes.set-size\x01O\x01\ +@\x01\x04self\xcd\0\0\x1c\x04\0\x14[method]axes.to-node\x01P\x04\x01\x10unavi:sh\ +apes/api\x05\x13\x04\x01\x12unavi:shapes/guest\x04\0\x0b\x0b\x01\0\x05guest\x03\0\ +\0\0G\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10wit-bi\ +ndgen-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/unavi-shapes/src/lib.rs b/wasm/unavi-shapes/src/lib.rs index 4040b56d0..44d8e49d1 100644 --- a/wasm/unavi-shapes/src/lib.rs +++ b/wasm/unavi-shapes/src/lib.rs @@ -1,7 +1,7 @@ use bindings::exports::unavi::shapes::api::Guest; use shapes::{ - circle::Circle, cuboid::Cuboid, cylinder::Cylinder, ellipse::Ellipse, rectangle::Rectangle, - sphere::Sphere, + axes::Axes, circle::Circle, cuboid::Cuboid, cylinder::Cylinder, ellipse::Ellipse, + rectangle::Rectangle, sphere::Sphere, }; mod attributes; @@ -13,6 +13,7 @@ mod wired_math_impls; struct GuestImpl; impl Guest for GuestImpl { + type Axes = Axes; type Circle = Circle; type Cuboid = Cuboid; type Cylinder = Cylinder; diff --git a/wasm/unavi-shapes/src/shapes/axes.rs b/wasm/unavi-shapes/src/shapes/axes.rs new file mode 100644 index 000000000..b53bf8056 --- /dev/null +++ b/wasm/unavi-shapes/src/shapes/axes.rs @@ -0,0 +1,92 @@ +use std::{cell::Cell, f32::consts::FRAC_PI_2, sync::LazyLock}; + +use crate::bindings::{ + exports::unavi::shapes::api::{GuestAxes, GuestCylinder}, + wired::{ + math::types::{Quat, Transform, Vec3}, + scene::{ + material::{Color, Material}, + node::Node, + }, + }, +}; + +use super::cylinder::Cylinder; + +static MATERIALS: LazyLock<(Material, Material, Material)> = LazyLock::new(|| { + let red = Material::new(); + red.set_color(Color { + r: 1.0, + g: 0.1, + b: 0.1, + a: 0.9, + }); + let green = Material::new(); + green.set_color(Color { + r: 0.1, + g: 1.0, + b: 0.1, + a: 0.9, + }); + let blue = Material::new(); + blue.set_color(Color { + r: 0.1, + g: 0.1, + b: 1.0, + a: 0.9, + }); + (red, green, blue) +}); + +pub struct Axes { + size: Cell, +} + +impl GuestAxes for Axes { + fn new() -> Self { + Self { + size: Cell::new(1.0), + } + } + + fn size(&self) -> f32 { + self.size.get() + } + fn set_size(&self, value: f32) { + self.size.set(value); + } + + fn to_node(&self) -> crate::bindings::exports::unavi::shapes::api::Node { + let size = self.size.get(); + + let shape = Cylinder::new(0.01, size); + shape.set_resolution(8); + + let root = Node::new(); + + let x = shape.to_node(); + root.add_child(&x); + x.mesh().unwrap().list_primitives()[0].set_material(Some(&MATERIALS.0)); + x.set_transform(Transform { + translation: Vec3::new(size / 2.0, 0.0, 0.0), + rotation: Quat::from_rotation_z(FRAC_PI_2), + ..Default::default() + }); + + let y = shape.to_node(); + root.add_child(&y); + y.mesh().unwrap().list_primitives()[0].set_material(Some(&MATERIALS.1)); + y.set_transform(Transform::from_translation(Vec3::new(0.0, size / 2.0, 0.0))); + + let z = shape.to_node(); + root.add_child(&z); + z.mesh().unwrap().list_primitives()[0].set_material(Some(&MATERIALS.2)); + z.set_transform(Transform { + translation: Vec3::new(0.0, 0.0, size / 2.0), + rotation: Quat::from_rotation_x(FRAC_PI_2), + ..Default::default() + }); + + root + } +} diff --git a/wasm/unavi-shapes/src/shapes/mod.rs b/wasm/unavi-shapes/src/shapes/mod.rs index 9f7600e21..fc55b421f 100644 --- a/wasm/unavi-shapes/src/shapes/mod.rs +++ b/wasm/unavi-shapes/src/shapes/mod.rs @@ -1,3 +1,4 @@ +pub mod axes; pub mod circle; pub mod cuboid; pub mod cylinder; diff --git a/wasm/unavi-shapes/wit/world.wit b/wasm/unavi-shapes/wit/world.wit index 1bd963dbe..95cba9aef 100644 --- a/wasm/unavi-shapes/wit/world.wit +++ b/wasm/unavi-shapes/wit/world.wit @@ -138,4 +138,14 @@ interface api { /// Creates a node with a mesh and physics collider of this shape. to-physics-node: func() -> node; } + + resource axes { + constructor(); + + size: func() -> f32; + set-size: func(value: f32); + + /// Creates a node with a mesh of this shape. + to-node: func() -> node; + } } diff --git a/wasm/unavi-ui/src/bindings.rs b/wasm/unavi-ui/src/bindings.rs index 418bad280..ca3111658 100644 --- a/wasm/unavi-ui/src/bindings.rs +++ b/wasm/unavi-ui/src/bindings.rs @@ -763,6 +763,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1887,6 +1931,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -6037,8 +6161,8 @@ pub(crate) use __export_guest_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:guest:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7556] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\x88:\x01A\x02\x01A$\x01\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7716] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xa8;\x01A\x02\x01A$\x01\ B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\0\ \x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01r\ \x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -6118,92 +6242,96 @@ y\x01'\x01h\x09\x01k(\x01@\x02\x04self\x0d\x05value)\x01\0\x04\0\x1b[method]node .set-rigid-body\x01*\x01i\x03\x01k+\x01@\x01\x04self\x0d\0,\x04\0\x1a[method]nod\ e.input-handler\x01-\x01h\x03\x01k.\x01@\x02\x04self\x0d\x05value/\x01\0\x04\0\x1e\ [method]node.set-input-handler\x010\x03\x01\x10wired:scene/node\x05\x0f\x02\x03\0\ -\0\x04vec2\x02\x03\0\x06\x04node\x01B}\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\0\0\ -\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\ -\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\ -\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06\ -cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07\ -sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\ -\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x01i\x08\x01@\x01\ -\x04size\x01\0\x14\x04\0\x16[constructor]rectangle\x01\x15\x01h\x08\x01@\x01\x04\ -self\x16\0\x01\x04\0\x16[method]rectangle.size\x01\x17\x01@\x02\x04self\x16\x05v\ -alue\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x18\x01i\x05\x01@\x01\x04\ -self\x16\0\x19\x04\0\x19[method]rectangle.to-mesh\x01\x1a\x01i\x07\x01@\x01\x04s\ -elf\x16\0\x1b\x04\0\x19[method]rectangle.to-node\x01\x1c\x04\0![method]rectangle\ -.to-physics-node\x01\x1c\x01i\x09\x01@\x01\x06radiusv\0\x1d\x04\0\x13[constructo\ -r]circle\x01\x1e\x01h\x09\x01@\x01\x04self\x1f\0v\x04\0\x15[method]circle.radius\ -\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\ -\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[method]circle.resolution\x01\"\x01@\x02\x04\ -self\x1f\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01#\x01@\x01\x04\ -self\x1f\0\x19\x04\0\x16[method]circle.to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\ -\0\x16[method]circle.to-node\x01%\x04\0\x1e[method]circle.to-physics-node\x01%\x01\ -i\x0a\x01@\x01\x09half-size\x01\0&\x04\0\x14[constructor]ellipse\x01'\x01h\x0a\x01\ -@\x01\x04self(\0\x01\x04\0\x19[method]ellipse.half-size\x01)\x01@\x02\x04self(\x05\ -value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01*\x01@\x01\x04self(\0{\ -\x04\0\x1a[method]ellipse.resolution\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\ -\x1e[method]ellipse.set-resolution\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method\ -]ellipse.to-mesh\x01-\x01@\x01\x04self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01\ -.\x04\0\x1f[method]ellipse.to-physics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06\ -heightv\0/\x04\0\x15[constructor]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\ -\0\x14[method]cylinder.cap\x012\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[m\ -ethod]cylinder.set-cap\x013\x01@\x01\x04self1\0v\x04\0\x17[method]cylinder.heigh\ -t\x014\x01@\x02\x04self1\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x01\ -5\x04\0\x17[method]cylinder.radius\x014\x04\0\x1b[method]cylinder.set-radius\x01\ -5\x01@\x01\x04self1\0}\x04\0\x1b[method]cylinder.resolution\x016\x01@\x02\x04sel\ -f1\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x017\x04\0\x19[metho\ -d]cylinder.segments\x016\x04\0\x1d[method]cylinder.set-segments\x017\x01@\x01\x04\ -self1\0\x19\x04\0\x18[method]cylinder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\ -\x18[method]cylinder.to-node\x019\x04\0\x20[method]cylinder.to-physics-node\x019\ -\x01i\x0c\x01@\x01\x04size\x03\0:\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01\ -@\x01\x04self<\0\x03\x04\0\x13[method]cuboid.size\x01=\x01@\x02\x04self<\x05valu\ -e\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16\ -[method]cuboid.to-mesh\x01?\x01@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-n\ -ode\x01@\x04\0\x1e[method]cuboid.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiu\ -sv\0\xc1\0\x04\0\x16[static]sphere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01\ -B\x01h\x13\x01@\x01\x04self\xc3\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\ -\x04self\xc3\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04\ -self\xc3\0\0\x12\x04\0\x13[method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05val\ -ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\ -\0\x16[method]sphere.to-mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]\ -sphere.to-node\x01I\x04\0\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unav\ -i:shapes/api\x05\x12\x01B#\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\ -\x01\x11\x04\0\x04node\x03\0\x02\x01m\x03\x06center\x03end\x05start\x04\0\x09ali\ -gnment\x03\0\x04\x04\0\x09container\x03\x01\x01i\x06\x01@\x01\x04size\x01\0\x07\x04\ -\0\x16[constructor]container\x01\x08\x01h\x06\x01@\x01\x04self\x09\0\x07\x04\0\x15\ -[method]container.ref\x01\x0a\x01i\x03\x01@\x01\x04self\x09\0\x0b\x04\0\x16[meth\ -od]container.root\x01\x0c\x04\0\x17[method]container.inner\x01\x0c\x01p\x07\x01@\ -\x01\x04self\x09\0\x0d\x04\0\x1f[method]container.list-children\x01\x0e\x01@\x02\ -\x04self\x09\x05child\x09\x01\0\x04\0\x1b[method]container.add-child\x01\x0f\x04\ -\0\x1e[method]container.remove-child\x01\x0f\x01@\x01\x04self\x09\0\x01\x04\0\x16\ -[method]container.size\x01\x10\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1a\ -[method]container.set-size\x01\x11\x01@\x01\x04self\x09\0\x05\x04\0\x19[method]c\ -ontainer.align-x\x01\x12\x04\0\x19[method]container.align-y\x01\x12\x04\0\x19[me\ -thod]container.align-z\x01\x12\x01@\x02\x04self\x09\x05value\x05\x01\0\x04\0\x1d\ -[method]container.set-align-x\x01\x13\x04\0\x1d[method]container.set-align-y\x01\ -\x13\x04\0\x1d[method]container.set-align-z\x01\x13\x03\x01\x16unavi:layout/cont\ -ainer\x05\x13\x01B\x02\x01@\x01\x05deltav\x01\0\x04\0\x09update-ui\x01\0\x04\x01\ -\x0cunavi:ui/api\x05\x14\x02\x03\0\x08\x09container\x01B\x0f\x02\x03\x02\x01\x15\ -\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x0b\x04\0\x0dinput-handler\x03\0\x02\ -\x04\0\x06button\x03\x01\x01i\x01\x01i\x04\x01@\x01\x04root\x05\0\x06\x04\0\x13[\ -constructor]button\x01\x07\x01h\x04\x01@\x01\x04self\x08\0\x05\x04\0\x13[method]\ -button.root\x01\x09\x01@\x01\x04self\x08\0\x7f\x04\0\x16[method]button.hovered\x01\ -\x0a\x04\0\x16[method]button.pressed\x01\x0a\x04\x01\x0funavi:ui/button\x05\x16\x01\ -B(\x02\x03\x02\x01\x15\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x0a\x04\0\x04m\ -esh\x03\0\x02\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x04\x04\0\x04text\x03\x01\x04\ -\0\x08text-box\x03\x01\x01i\x06\x01@\x01\x04texts\0\x08\x04\0\x11[constructor]te\ -xt\x01\x09\x01h\x06\x01@\x01\x04self\x0a\0\x08\x04\0\x10[method]text.ref\x01\x0b\ -\x01p}\x01k\x0c\x01@\x02\x04self\x0a\x05value\x0d\x01\0\x04\0\x15[method]text.se\ -t-font\x01\x0e\x01@\x01\x04self\x0a\0s\x04\0\x11[method]text.text\x01\x0f\x01@\x02\ -\x04self\x0a\x05values\x01\0\x04\0\x15[method]text.set-text\x01\x10\x01@\x01\x04\ -self\x0a\0v\x04\0\x16[method]text.font-size\x01\x11\x01@\x02\x04self\x0a\x05valu\ -ev\x01\0\x04\0\x1a[method]text.set-font-size\x01\x12\x04\0\x16[method]text.thick\ -ness\x01\x11\x04\0\x1a[method]text.set-thickness\x01\x12\x01i\x03\x01@\x01\x04se\ -lf\x0a\0\x13\x04\0\x11[method]text.mesh\x01\x14\x01i\x01\x01i\x07\x01@\x01\x04ro\ -ot\x15\0\x16\x04\0\x15[constructor]text-box\x01\x17\x01h\x07\x01@\x01\x04self\x18\ -\0\x15\x04\0\x15[method]text-box.root\x01\x19\x01@\x01\x04self\x18\0\x08\x04\0\x15\ -[method]text-box.text\x01\x1a\x04\x01\x0dunavi:ui/text\x05\x17\x04\x01\x0eunavi:\ -ui/guest\x04\0\x0b\x0b\x01\0\x05guest\x03\0\0\0G\x09producers\x01\x0cprocessed-b\ -y\x02\x0dwit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +\0\x04vec2\x02\x03\0\x06\x04node\x01B\x88\x01\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\ +\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04me\ +sh\x03\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\ +\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\ +\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\ +\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02\ +uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axe\ +s\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\ +\x16\x01h\x08\x01@\x01\x04self\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\ +\x01@\x02\x04self\x17\x05value\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\ +\x19\x01i\x05\x01@\x01\x04self\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\ +\x01i\x07\x01@\x01\x04self\x17\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\ +\0![method]rectangle.to-physics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\ +\0\x13[constructor]circle\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[met\ +hod]circle.radius\x01!\x01@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]cir\ +cle.set-radius\x01\"\x01@\x01\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01\ +#\x01@\x02\x04self\x20\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01\ +$\x01@\x01\x04self\x20\0\x1a\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04se\ +lf\x20\0\x1c\x04\0\x16[method]circle.to-node\x01&\x04\0\x1e[method]circle.to-phy\ +sics-node\x01&\x01i\x0a\x01@\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellip\ +se\x01(\x01h\x0a\x01@\x01\x04self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\ +\x01@\x02\x04self)\x05value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01\ ++\x01@\x01\x04self)\0{\x04\0\x1a[method]ellipse.resolution\x01,\x01@\x02\x04self\ +)\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolution\x01-\x01@\x01\x04self)\ +\0\x1a\x04\0\x17[method]ellipse.to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[m\ +ethod]ellipse.to-node\x01/\x04\0\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\ +\x01@\x02\x06radiusv\x06heightv\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01\ +@\x01\x04self2\0\x7f\x04\0\x14[method]cylinder.cap\x013\x01@\x02\x04self2\x05val\ +ue\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17\ +[method]cylinder.height\x015\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]\ +cylinder.set-height\x016\x04\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]\ +cylinder.set-radius\x016\x01@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resoluti\ +on\x017\x01@\x02\x04self2\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resoluti\ +on\x018\x04\0\x19[method]cylinder.segments\x017\x04\0\x1d[method]cylinder.set-se\ +gments\x018\x01@\x01\x04self2\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\ +\x04self2\0\x1c\x04\0\x18[method]cylinder.to-node\x01:\x04\0\x20[method]cylinder\ +.to-physics-node\x01:\x01i\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cub\ +oid\x01<\x01h\x0c\x01@\x01\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\ +\x02\x04self=\x05value\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04\ +self=\0\x1a\x04\0\x16[method]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16\ +[method]cuboid.to-node\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\ +\x01@\x01\x06radiusv\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[stat\ +ic]sphere.new-uv\x01C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere\ +.radius\x01E\x01@\x02\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-\ +radius\x01F\x01@\x01\x04self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\ +\x04self\xc4\0\x05value\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\ +\x04self\xc4\0\0\x1a\x04\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\ +\0\x1c\x04\0\x16[method]sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-n\ +ode\x01J\x01i\x14\x01@\0\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\ +\x04self\xcd\0\0v\x04\0\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valu\ +ev\x01\0\x04\0\x15[method]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14\ +[method]axes.to-node\x01P\x03\x01\x10unavi:shapes/api\x05\x12\x01B#\x02\x03\x02\x01\ +\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x02\x01m\x03\x06\ +center\x03end\x05start\x04\0\x09alignment\x03\0\x04\x04\0\x09container\x03\x01\x01\ +i\x06\x01@\x01\x04size\x01\0\x07\x04\0\x16[constructor]container\x01\x08\x01h\x06\ +\x01@\x01\x04self\x09\0\x07\x04\0\x15[method]container.ref\x01\x0a\x01i\x03\x01@\ +\x01\x04self\x09\0\x0b\x04\0\x16[method]container.root\x01\x0c\x04\0\x17[method]\ +container.inner\x01\x0c\x01p\x07\x01@\x01\x04self\x09\0\x0d\x04\0\x1f[method]con\ +tainer.list-children\x01\x0e\x01@\x02\x04self\x09\x05child\x09\x01\0\x04\0\x1b[m\ +ethod]container.add-child\x01\x0f\x04\0\x1e[method]container.remove-child\x01\x0f\ +\x01@\x01\x04self\x09\0\x01\x04\0\x16[method]container.size\x01\x10\x01@\x02\x04\ +self\x09\x05value\x01\x01\0\x04\0\x1a[method]container.set-size\x01\x11\x01@\x01\ +\x04self\x09\0\x05\x04\0\x19[method]container.align-x\x01\x12\x04\0\x19[method]c\ +ontainer.align-y\x01\x12\x04\0\x19[method]container.align-z\x01\x12\x01@\x02\x04\ +self\x09\x05value\x05\x01\0\x04\0\x1d[method]container.set-align-x\x01\x13\x04\0\ +\x1d[method]container.set-align-y\x01\x13\x04\0\x1d[method]container.set-align-z\ +\x01\x13\x03\x01\x16unavi:layout/container\x05\x13\x01B\x02\x01@\x01\x05deltav\x01\ +\0\x04\0\x09update-ui\x01\0\x04\x01\x0cunavi:ui/api\x05\x14\x02\x03\0\x08\x09con\ +tainer\x01B\x0f\x02\x03\x02\x01\x15\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x0b\ +\x04\0\x0dinput-handler\x03\0\x02\x04\0\x06button\x03\x01\x01i\x01\x01i\x04\x01@\ +\x01\x04root\x05\0\x06\x04\0\x13[constructor]button\x01\x07\x01h\x04\x01@\x01\x04\ +self\x08\0\x05\x04\0\x13[method]button.root\x01\x09\x01@\x01\x04self\x08\0\x7f\x04\ +\0\x16[method]button.hovered\x01\x0a\x04\0\x16[method]button.pressed\x01\x0a\x04\ +\x01\x0funavi:ui/button\x05\x16\x01B(\x02\x03\x02\x01\x15\x04\0\x09container\x03\ +\0\0\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\0\x02\x02\x03\x02\x01\x11\x04\0\x04no\ +de\x03\0\x04\x04\0\x04text\x03\x01\x04\0\x08text-box\x03\x01\x01i\x06\x01@\x01\x04\ +texts\0\x08\x04\0\x11[constructor]text\x01\x09\x01h\x06\x01@\x01\x04self\x0a\0\x08\ +\x04\0\x10[method]text.ref\x01\x0b\x01p}\x01k\x0c\x01@\x02\x04self\x0a\x05value\x0d\ +\x01\0\x04\0\x15[method]text.set-font\x01\x0e\x01@\x01\x04self\x0a\0s\x04\0\x11[\ +method]text.text\x01\x0f\x01@\x02\x04self\x0a\x05values\x01\0\x04\0\x15[method]t\ +ext.set-text\x01\x10\x01@\x01\x04self\x0a\0v\x04\0\x16[method]text.font-size\x01\ +\x11\x01@\x02\x04self\x0a\x05valuev\x01\0\x04\0\x1a[method]text.set-font-size\x01\ +\x12\x04\0\x16[method]text.thickness\x01\x11\x04\0\x1a[method]text.set-thickness\ +\x01\x12\x01i\x03\x01@\x01\x04self\x0a\0\x13\x04\0\x11[method]text.mesh\x01\x14\x01\ +i\x01\x01i\x07\x01@\x01\x04root\x15\0\x16\x04\0\x15[constructor]text-box\x01\x17\ +\x01h\x07\x01@\x01\x04self\x18\0\x15\x04\0\x15[method]text-box.root\x01\x19\x01@\ +\x01\x04self\x18\0\x08\x04\0\x15[method]text-box.text\x01\x1a\x04\x01\x0dunavi:u\ +i/text\x05\x17\x04\x01\x0eunavi:ui/guest\x04\0\x0b\x0b\x01\0\x05guest\x03\0\0\0G\ +\x09producers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10wit-bindgen\ +-rust\x060.25.0"; #[inline(never)] #[doc(hidden)] diff --git a/wasm/unavi-vscreen/src/bindings.rs b/wasm/unavi-vscreen/src/bindings.rs index 62bc37383..cd94f0879 100644 --- a/wasm/unavi-vscreen/src/bindings.rs +++ b/wasm/unavi-vscreen/src/bindings.rs @@ -763,6 +763,50 @@ pub mod unavi { } } + #[derive(Debug)] + #[repr(transparent)] + pub struct Axes { + handle: _rt::Resource, + } + + impl Axes { + #[doc(hidden)] + pub unsafe fn from_handle(handle: u32) -> Self { + Self { + handle: _rt::Resource::from_handle(handle), + } + } + + #[doc(hidden)] + pub fn take_handle(&self) -> u32 { + _rt::Resource::take_handle(&self.handle) + } + + #[doc(hidden)] + pub fn handle(&self) -> u32 { + _rt::Resource::handle(&self.handle) + } + } + + unsafe impl _rt::WasmResource for Axes { + #[inline] + unsafe fn drop(_handle: u32) { + #[cfg(not(target_arch = "wasm32"))] + unreachable!(); + + #[cfg(target_arch = "wasm32")] + { + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[resource-drop]axes"] + fn drop(_: u32); + } + + drop(_handle); + } + } + } + impl Rectangle { #[allow(unused_unsafe, clippy::all)] pub fn new(size: Vec2) -> Self { @@ -1887,6 +1931,86 @@ pub mod unavi { fn wit_import(_: i32) -> i32; } + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> i32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + super::super::super::wired::scene::node::Node::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn new() -> Self { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[constructor]axes"] + fn wit_import() -> i32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import() -> i32 { + unreachable!() + } + let ret = wit_import(); + Axes::from_handle(ret as u32) + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn size(&self) -> f32 { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.size"] + fn wit_import(_: i32) -> f32; + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32) -> f32 { + unreachable!() + } + let ret = wit_import((self).handle() as i32); + ret + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + pub fn set_size(&self, value: f32) { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.set-size"] + fn wit_import(_: i32, _: f32); + } + + #[cfg(not(target_arch = "wasm32"))] + fn wit_import(_: i32, _: f32) { + unreachable!() + } + wit_import((self).handle() as i32, _rt::as_f32(&value)); + } + } + } + impl Axes { + #[allow(unused_unsafe, clippy::all)] + /// Creates a node with a mesh of this shape. + pub fn to_node(&self) -> Node { + unsafe { + #[cfg(target_arch = "wasm32")] + #[link(wasm_import_module = "unavi:shapes/api")] + extern "C" { + #[link_name = "[method]axes.to-node"] + fn wit_import(_: i32) -> i32; + } + #[cfg(not(target_arch = "wasm32"))] fn wit_import(_: i32) -> i32 { unreachable!() @@ -5611,8 +5735,8 @@ pub(crate) use __export_guest_impl as export; #[cfg(target_arch = "wasm32")] #[link_section = "component-type:wit-bindgen:0.25.0:guest:encoded world"] #[doc(hidden)] -pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7353] = *b"\ -\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xbd8\x01A\x02\x01A\x20\ +pub static __WIT_BINDGEN_COMPONENT_TYPE: [u8; 7513] = *b"\ +\0asm\x0d\0\x01\0\0\x19\x16wit-component-encoding\x04\0\x07\xdd9\x01A\x02\x01A\x20\ \x01B\x10\x01r\x02\x01xv\x01yv\x04\0\x04vec2\x03\0\0\x01r\x03\x01xv\x01yv\x01zv\x04\ \0\x04vec3\x03\0\x02\x01r\x04\x01xv\x01yv\x01zv\x01wv\x04\0\x04quat\x03\0\x04\x01\ r\x03\x08rotation\x05\x05scale\x03\x0btranslation\x03\x04\0\x09transform\x03\0\x06\ @@ -5692,87 +5816,91 @@ y\x01'\x01h\x09\x01k(\x01@\x02\x04self\x0d\x05value)\x01\0\x04\0\x1b[method]node .set-rigid-body\x01*\x01i\x03\x01k+\x01@\x01\x04self\x0d\0,\x04\0\x1a[method]nod\ e.input-handler\x01-\x01h\x03\x01k.\x01@\x02\x04self\x0d\x05value/\x01\0\x04\0\x1e\ [method]node.set-input-handler\x010\x03\x01\x10wired:scene/node\x05\x0f\x02\x03\0\ -\0\x04vec2\x02\x03\0\x06\x04node\x01B}\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\0\0\ -\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04mesh\x03\ -\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\x04\ -\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\x06\ -cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\x07\ -sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02uv\ -\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x01i\x08\x01@\x01\ -\x04size\x01\0\x14\x04\0\x16[constructor]rectangle\x01\x15\x01h\x08\x01@\x01\x04\ -self\x16\0\x01\x04\0\x16[method]rectangle.size\x01\x17\x01@\x02\x04self\x16\x05v\ -alue\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\x18\x01i\x05\x01@\x01\x04\ -self\x16\0\x19\x04\0\x19[method]rectangle.to-mesh\x01\x1a\x01i\x07\x01@\x01\x04s\ -elf\x16\0\x1b\x04\0\x19[method]rectangle.to-node\x01\x1c\x04\0![method]rectangle\ -.to-physics-node\x01\x1c\x01i\x09\x01@\x01\x06radiusv\0\x1d\x04\0\x13[constructo\ -r]circle\x01\x1e\x01h\x09\x01@\x01\x04self\x1f\0v\x04\0\x15[method]circle.radius\ -\x01\x20\x01@\x02\x04self\x1f\x05valuev\x01\0\x04\0\x19[method]circle.set-radius\ -\x01!\x01@\x01\x04self\x1f\0{\x04\0\x19[method]circle.resolution\x01\"\x01@\x02\x04\ -self\x1f\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01#\x01@\x01\x04\ -self\x1f\0\x19\x04\0\x16[method]circle.to-mesh\x01$\x01@\x01\x04self\x1f\0\x1b\x04\ -\0\x16[method]circle.to-node\x01%\x04\0\x1e[method]circle.to-physics-node\x01%\x01\ -i\x0a\x01@\x01\x09half-size\x01\0&\x04\0\x14[constructor]ellipse\x01'\x01h\x0a\x01\ -@\x01\x04self(\0\x01\x04\0\x19[method]ellipse.half-size\x01)\x01@\x02\x04self(\x05\ -value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01*\x01@\x01\x04self(\0{\ -\x04\0\x1a[method]ellipse.resolution\x01+\x01@\x02\x04self(\x05value{\x01\0\x04\0\ -\x1e[method]ellipse.set-resolution\x01,\x01@\x01\x04self(\0\x19\x04\0\x17[method\ -]ellipse.to-mesh\x01-\x01@\x01\x04self(\0\x1b\x04\0\x17[method]ellipse.to-node\x01\ -.\x04\0\x1f[method]ellipse.to-physics-node\x01.\x01i\x0b\x01@\x02\x06radiusv\x06\ -heightv\0/\x04\0\x15[constructor]cylinder\x010\x01h\x0b\x01@\x01\x04self1\0\x7f\x04\ -\0\x14[method]cylinder.cap\x012\x01@\x02\x04self1\x05value\x7f\x01\0\x04\0\x18[m\ -ethod]cylinder.set-cap\x013\x01@\x01\x04self1\0v\x04\0\x17[method]cylinder.heigh\ -t\x014\x01@\x02\x04self1\x05valuev\x01\0\x04\0\x1b[method]cylinder.set-height\x01\ -5\x04\0\x17[method]cylinder.radius\x014\x04\0\x1b[method]cylinder.set-radius\x01\ -5\x01@\x01\x04self1\0}\x04\0\x1b[method]cylinder.resolution\x016\x01@\x02\x04sel\ -f1\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resolution\x017\x04\0\x19[metho\ -d]cylinder.segments\x016\x04\0\x1d[method]cylinder.set-segments\x017\x01@\x01\x04\ -self1\0\x19\x04\0\x18[method]cylinder.to-mesh\x018\x01@\x01\x04self1\0\x1b\x04\0\ -\x18[method]cylinder.to-node\x019\x04\0\x20[method]cylinder.to-physics-node\x019\ -\x01i\x0c\x01@\x01\x04size\x03\0:\x04\0\x13[constructor]cuboid\x01;\x01h\x0c\x01\ -@\x01\x04self<\0\x03\x04\0\x13[method]cuboid.size\x01=\x01@\x02\x04self<\x05valu\ -e\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01>\x01@\x01\x04self<\0\x19\x04\0\x16\ -[method]cuboid.to-mesh\x01?\x01@\x01\x04self<\0\x1b\x04\0\x16[method]cuboid.to-n\ -ode\x01@\x04\0\x1e[method]cuboid.to-physics-node\x01@\x01i\x13\x01@\x01\x06radiu\ -sv\0\xc1\0\x04\0\x16[static]sphere.new-ico\x01B\x04\0\x15[static]sphere.new-uv\x01\ -B\x01h\x13\x01@\x01\x04self\xc3\0\0v\x04\0\x15[method]sphere.radius\x01D\x01@\x02\ -\x04self\xc3\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-radius\x01E\x01@\x01\x04\ -self\xc3\0\0\x12\x04\0\x13[method]sphere.kind\x01F\x01@\x02\x04self\xc3\0\x05val\ -ue\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01G\x01@\x01\x04self\xc3\0\0\x19\x04\ -\0\x16[method]sphere.to-mesh\x01H\x01@\x01\x04self\xc3\0\0\x1b\x04\0\x16[method]\ -sphere.to-node\x01I\x04\0\x1e[method]sphere.to-physics-node\x01I\x03\x01\x10unav\ -i:shapes/api\x05\x12\x01B#\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\ -\x01\x11\x04\0\x04node\x03\0\x02\x01m\x03\x06center\x03end\x05start\x04\0\x09ali\ -gnment\x03\0\x04\x04\0\x09container\x03\x01\x01i\x06\x01@\x01\x04size\x01\0\x07\x04\ -\0\x16[constructor]container\x01\x08\x01h\x06\x01@\x01\x04self\x09\0\x07\x04\0\x15\ -[method]container.ref\x01\x0a\x01i\x03\x01@\x01\x04self\x09\0\x0b\x04\0\x16[meth\ -od]container.root\x01\x0c\x04\0\x17[method]container.inner\x01\x0c\x01p\x07\x01@\ -\x01\x04self\x09\0\x0d\x04\0\x1f[method]container.list-children\x01\x0e\x01@\x02\ -\x04self\x09\x05child\x09\x01\0\x04\0\x1b[method]container.add-child\x01\x0f\x04\ -\0\x1e[method]container.remove-child\x01\x0f\x01@\x01\x04self\x09\0\x01\x04\0\x16\ -[method]container.size\x01\x10\x01@\x02\x04self\x09\x05value\x01\x01\0\x04\0\x1a\ -[method]container.set-size\x01\x11\x01@\x01\x04self\x09\0\x05\x04\0\x19[method]c\ -ontainer.align-x\x01\x12\x04\0\x19[method]container.align-y\x01\x12\x04\0\x19[me\ -thod]container.align-z\x01\x12\x01@\x02\x04self\x09\x05value\x05\x01\0\x04\0\x1d\ -[method]container.set-align-x\x01\x13\x04\0\x1d[method]container.set-align-y\x01\ -\x13\x04\0\x1d[method]container.set-align-z\x01\x13\x03\x01\x16unavi:layout/cont\ -ainer\x05\x13\x02\x03\0\x08\x09container\x01B&\x02\x03\x02\x01\x14\x04\0\x09cont\ -ainer\x03\0\0\x02\x03\x02\x01\x0c\x04\0\x09transform\x03\0\x02\x02\x03\x02\x01\x10\ -\x04\0\x04vec2\x03\0\x04\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x06\x02\x03\x02\ -\x01\x11\x04\0\x04node\x03\0\x08\x01q\x02\x06circle\x01v\0\x09rectangle\x01\x05\0\ -\x04\0\x0cscreen-shape\x03\0\x0a\x01q\x03\x09butterfly\0\0\x06circle\0\0\x09tran\ -sform\x01\x03\0\x04\0\x0cchild-layout\x03\0\x0c\x04\0\x06screen\x03\x01\x01i\x0e\ -\x01@\x01\x05shape\x0b\0\x0f\x04\0\x13[constructor]screen\x01\x10\x01h\x0e\x01i\x01\ -\x01@\x01\x04self\x11\0\x12\x04\0\x13[method]screen.root\x01\x13\x01@\x01\x04sel\ -f\x11\0\x7f\x04\0\x16[method]screen.visible\x01\x14\x01@\x02\x04self\x11\x05valu\ -e\x7f\x01\0\x04\0\x1a[method]screen.set-visible\x01\x15\x01@\x01\x04self\x11\0\x0d\ -\x04\0\x1b[method]screen.child-layout\x01\x16\x01@\x02\x04self\x11\x05value\x0d\x01\ -\0\x04\0\x1f[method]screen.set-child-layout\x01\x17\x01p\x0f\x01@\x01\x04self\x11\ -\0\x18\x04\0\x17[method]screen.children\x01\x19\x01@\x02\x04self\x11\x05value\x11\ -\x01\0\x04\0\x18[method]screen.add-child\x01\x1a\x04\0\x1b[method]screen.remove-\ -child\x01\x1a\x01@\x02\x04self\x11\x05deltav\x01\0\x04\0\x15[method]screen.updat\ -e\x01\x1b\x04\x01\x14unavi:vscreen/screen\x05\x15\x04\x01\x13unavi:vscreen/guest\ -\x04\0\x0b\x0b\x01\0\x05guest\x03\0\0\0G\x09producers\x01\x0cprocessed-by\x02\x0d\ -wit-component\x070.208.1\x10wit-bindgen-rust\x060.25.0"; +\0\x04vec2\x02\x03\0\x06\x04node\x01B\x88\x01\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\ +\0\0\x02\x03\x02\x01\x04\x04\0\x04vec3\x03\0\x02\x02\x03\x02\x01\x0a\x04\0\x04me\ +sh\x03\0\x04\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x06\x04\0\x09rectangle\x03\x01\ +\x04\0\x06circle\x03\x01\x04\0\x07ellipse\x03\x01\x04\0\x08cylinder\x03\x01\x04\0\ +\x06cuboid\x03\x01\x01r\x01\x0csubdivisions}\x04\0\x0asphere-ico\x03\0\x0d\x01r\x02\ +\x07sectors}\x06stacks}\x04\0\x09sphere-uv\x03\0\x0f\x01q\x02\x03ico\x01\x0e\0\x02\ +uv\x01\x10\0\x04\0\x0bsphere-kind\x03\0\x11\x04\0\x06sphere\x03\x01\x04\0\x04axe\ +s\x03\x01\x01i\x08\x01@\x01\x04size\x01\0\x15\x04\0\x16[constructor]rectangle\x01\ +\x16\x01h\x08\x01@\x01\x04self\x17\0\x01\x04\0\x16[method]rectangle.size\x01\x18\ +\x01@\x02\x04self\x17\x05value\x01\x01\0\x04\0\x1a[method]rectangle.set-size\x01\ +\x19\x01i\x05\x01@\x01\x04self\x17\0\x1a\x04\0\x19[method]rectangle.to-mesh\x01\x1b\ +\x01i\x07\x01@\x01\x04self\x17\0\x1c\x04\0\x19[method]rectangle.to-node\x01\x1d\x04\ +\0![method]rectangle.to-physics-node\x01\x1d\x01i\x09\x01@\x01\x06radiusv\0\x1e\x04\ +\0\x13[constructor]circle\x01\x1f\x01h\x09\x01@\x01\x04self\x20\0v\x04\0\x15[met\ +hod]circle.radius\x01!\x01@\x02\x04self\x20\x05valuev\x01\0\x04\0\x19[method]cir\ +cle.set-radius\x01\"\x01@\x01\x04self\x20\0{\x04\0\x19[method]circle.resolution\x01\ +#\x01@\x02\x04self\x20\x05value{\x01\0\x04\0\x1d[method]circle.set-resolution\x01\ +$\x01@\x01\x04self\x20\0\x1a\x04\0\x16[method]circle.to-mesh\x01%\x01@\x01\x04se\ +lf\x20\0\x1c\x04\0\x16[method]circle.to-node\x01&\x04\0\x1e[method]circle.to-phy\ +sics-node\x01&\x01i\x0a\x01@\x01\x09half-size\x01\0'\x04\0\x14[constructor]ellip\ +se\x01(\x01h\x0a\x01@\x01\x04self)\0\x01\x04\0\x19[method]ellipse.half-size\x01*\ +\x01@\x02\x04self)\x05value\x01\x01\0\x04\0\x1d[method]ellipse.set-half-size\x01\ ++\x01@\x01\x04self)\0{\x04\0\x1a[method]ellipse.resolution\x01,\x01@\x02\x04self\ +)\x05value{\x01\0\x04\0\x1e[method]ellipse.set-resolution\x01-\x01@\x01\x04self)\ +\0\x1a\x04\0\x17[method]ellipse.to-mesh\x01.\x01@\x01\x04self)\0\x1c\x04\0\x17[m\ +ethod]ellipse.to-node\x01/\x04\0\x1f[method]ellipse.to-physics-node\x01/\x01i\x0b\ +\x01@\x02\x06radiusv\x06heightv\00\x04\0\x15[constructor]cylinder\x011\x01h\x0b\x01\ +@\x01\x04self2\0\x7f\x04\0\x14[method]cylinder.cap\x013\x01@\x02\x04self2\x05val\ +ue\x7f\x01\0\x04\0\x18[method]cylinder.set-cap\x014\x01@\x01\x04self2\0v\x04\0\x17\ +[method]cylinder.height\x015\x01@\x02\x04self2\x05valuev\x01\0\x04\0\x1b[method]\ +cylinder.set-height\x016\x04\0\x17[method]cylinder.radius\x015\x04\0\x1b[method]\ +cylinder.set-radius\x016\x01@\x01\x04self2\0}\x04\0\x1b[method]cylinder.resoluti\ +on\x017\x01@\x02\x04self2\x05value}\x01\0\x04\0\x1f[method]cylinder.set-resoluti\ +on\x018\x04\0\x19[method]cylinder.segments\x017\x04\0\x1d[method]cylinder.set-se\ +gments\x018\x01@\x01\x04self2\0\x1a\x04\0\x18[method]cylinder.to-mesh\x019\x01@\x01\ +\x04self2\0\x1c\x04\0\x18[method]cylinder.to-node\x01:\x04\0\x20[method]cylinder\ +.to-physics-node\x01:\x01i\x0c\x01@\x01\x04size\x03\0;\x04\0\x13[constructor]cub\ +oid\x01<\x01h\x0c\x01@\x01\x04self=\0\x03\x04\0\x13[method]cuboid.size\x01>\x01@\ +\x02\x04self=\x05value\x03\x01\0\x04\0\x17[method]cuboid.set-size\x01?\x01@\x01\x04\ +self=\0\x1a\x04\0\x16[method]cuboid.to-mesh\x01@\x01@\x01\x04self=\0\x1c\x04\0\x16\ +[method]cuboid.to-node\x01A\x04\0\x1e[method]cuboid.to-physics-node\x01A\x01i\x13\ +\x01@\x01\x06radiusv\0\xc2\0\x04\0\x16[static]sphere.new-ico\x01C\x04\0\x15[stat\ +ic]sphere.new-uv\x01C\x01h\x13\x01@\x01\x04self\xc4\0\0v\x04\0\x15[method]sphere\ +.radius\x01E\x01@\x02\x04self\xc4\0\x05valuev\x01\0\x04\0\x19[method]sphere.set-\ +radius\x01F\x01@\x01\x04self\xc4\0\0\x12\x04\0\x13[method]sphere.kind\x01G\x01@\x02\ +\x04self\xc4\0\x05value\x12\x01\0\x04\0\x17[method]sphere.set-kind\x01H\x01@\x01\ +\x04self\xc4\0\0\x1a\x04\0\x16[method]sphere.to-mesh\x01I\x01@\x01\x04self\xc4\0\ +\0\x1c\x04\0\x16[method]sphere.to-node\x01J\x04\0\x1e[method]sphere.to-physics-n\ +ode\x01J\x01i\x14\x01@\0\0\xcb\0\x04\0\x11[constructor]axes\x01L\x01h\x14\x01@\x01\ +\x04self\xcd\0\0v\x04\0\x11[method]axes.size\x01N\x01@\x02\x04self\xcd\0\x05valu\ +ev\x01\0\x04\0\x15[method]axes.set-size\x01O\x01@\x01\x04self\xcd\0\0\x1c\x04\0\x14\ +[method]axes.to-node\x01P\x03\x01\x10unavi:shapes/api\x05\x12\x01B#\x02\x03\x02\x01\ +\x04\x04\0\x04vec3\x03\0\0\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x02\x01m\x03\x06\ +center\x03end\x05start\x04\0\x09alignment\x03\0\x04\x04\0\x09container\x03\x01\x01\ +i\x06\x01@\x01\x04size\x01\0\x07\x04\0\x16[constructor]container\x01\x08\x01h\x06\ +\x01@\x01\x04self\x09\0\x07\x04\0\x15[method]container.ref\x01\x0a\x01i\x03\x01@\ +\x01\x04self\x09\0\x0b\x04\0\x16[method]container.root\x01\x0c\x04\0\x17[method]\ +container.inner\x01\x0c\x01p\x07\x01@\x01\x04self\x09\0\x0d\x04\0\x1f[method]con\ +tainer.list-children\x01\x0e\x01@\x02\x04self\x09\x05child\x09\x01\0\x04\0\x1b[m\ +ethod]container.add-child\x01\x0f\x04\0\x1e[method]container.remove-child\x01\x0f\ +\x01@\x01\x04self\x09\0\x01\x04\0\x16[method]container.size\x01\x10\x01@\x02\x04\ +self\x09\x05value\x01\x01\0\x04\0\x1a[method]container.set-size\x01\x11\x01@\x01\ +\x04self\x09\0\x05\x04\0\x19[method]container.align-x\x01\x12\x04\0\x19[method]c\ +ontainer.align-y\x01\x12\x04\0\x19[method]container.align-z\x01\x12\x01@\x02\x04\ +self\x09\x05value\x05\x01\0\x04\0\x1d[method]container.set-align-x\x01\x13\x04\0\ +\x1d[method]container.set-align-y\x01\x13\x04\0\x1d[method]container.set-align-z\ +\x01\x13\x03\x01\x16unavi:layout/container\x05\x13\x02\x03\0\x08\x09container\x01\ +B&\x02\x03\x02\x01\x14\x04\0\x09container\x03\0\0\x02\x03\x02\x01\x0c\x04\0\x09t\ +ransform\x03\0\x02\x02\x03\x02\x01\x10\x04\0\x04vec2\x03\0\x04\x02\x03\x02\x01\x04\ +\x04\0\x04vec3\x03\0\x06\x02\x03\x02\x01\x11\x04\0\x04node\x03\0\x08\x01q\x02\x06\ +circle\x01v\0\x09rectangle\x01\x05\0\x04\0\x0cscreen-shape\x03\0\x0a\x01q\x03\x09\ +butterfly\0\0\x06circle\0\0\x09transform\x01\x03\0\x04\0\x0cchild-layout\x03\0\x0c\ +\x04\0\x06screen\x03\x01\x01i\x0e\x01@\x01\x05shape\x0b\0\x0f\x04\0\x13[construc\ +tor]screen\x01\x10\x01h\x0e\x01i\x01\x01@\x01\x04self\x11\0\x12\x04\0\x13[method\ +]screen.root\x01\x13\x01@\x01\x04self\x11\0\x7f\x04\0\x16[method]screen.visible\x01\ +\x14\x01@\x02\x04self\x11\x05value\x7f\x01\0\x04\0\x1a[method]screen.set-visible\ +\x01\x15\x01@\x01\x04self\x11\0\x0d\x04\0\x1b[method]screen.child-layout\x01\x16\ +\x01@\x02\x04self\x11\x05value\x0d\x01\0\x04\0\x1f[method]screen.set-child-layou\ +t\x01\x17\x01p\x0f\x01@\x01\x04self\x11\0\x18\x04\0\x17[method]screen.children\x01\ +\x19\x01@\x02\x04self\x11\x05value\x11\x01\0\x04\0\x18[method]screen.add-child\x01\ +\x1a\x04\0\x1b[method]screen.remove-child\x01\x1a\x01@\x02\x04self\x11\x05deltav\ +\x01\0\x04\0\x15[method]screen.update\x01\x1b\x04\x01\x14unavi:vscreen/screen\x05\ +\x15\x04\x01\x13unavi:vscreen/guest\x04\0\x0b\x0b\x01\0\x05guest\x03\0\0\0G\x09p\ +roducers\x01\x0cprocessed-by\x02\x0dwit-component\x070.208.1\x10wit-bindgen-rust\ +\x060.25.0"; #[inline(never)] #[doc(hidden)]