feat: upgrade stardust-xr version

This commit is contained in:
Nova
2022-10-14 01:11:54 -04:00
parent edc7eefbbc
commit cdd38da4ee
9 changed files with 70 additions and 109 deletions

View File

@@ -3,7 +3,7 @@ use crate::nodes::fields::Field;
use crate::nodes::spatial::Spatial;
use glam::{vec3a, Mat4};
use portable_atomic::AtomicF32;
use stardust_xr::schemas::{input::InputDataRaw, input_tip};
use stardust_xr::schemas::flat::{Datamap, InputDataType, Tip as FlatTip};
use std::sync::atomic::Ordering;
use std::sync::Arc;
@@ -20,34 +20,22 @@ impl InputSpecialization for Tip {
}
fn serialize(
&self,
fbb: &mut flatbuffers::FlatBufferBuilder,
_distance_link: &DistanceLink,
local_to_handler_matrix: Mat4,
) -> (
InputDataRaw,
flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>,
) {
) -> InputDataType {
let (_, orientation, origin) = local_to_handler_matrix.to_scale_rotation_translation();
let origin: mint::Vector3<f32> = origin.into();
let orientation: mint::Quaternion<f32> = orientation.into();
let tip = input_tip::Tip::create(
fbb,
&input_tip::TipArgs {
origin: Some(&origin.into()),
orientation: Some(&orientation.into()),
radius: self.radius.load(Ordering::Relaxed),
},
);
(InputDataRaw::Tip, tip.as_union_value())
InputDataType::Tip(FlatTip {
origin: origin.into(),
orientation: orientation.into(),
radius: self.radius.load(Ordering::Relaxed),
})
}
fn serialize_datamap(&self) -> Vec<u8> {
fn serialize_datamap(&self) -> Datamap {
let mut fbb = flexbuffers::Builder::default();
let mut map = fbb.start_map();
map.push("grab", self.grab.load(Ordering::Relaxed));
map.push("select", self.select.load(Ordering::Relaxed));
map.end_map();
fbb.view().to_vec()
Datamap::new(fbb.view().to_vec()).unwrap()
}
}