fix(spatial): parse_transform returned result

This commit is contained in:
Nova
2023-01-25 05:40:19 -05:00
parent f46e870864
commit cbf5af88b9
13 changed files with 16 additions and 25 deletions

View File

@@ -244,7 +244,7 @@ pub fn create_pulse_sender_flex(
let info: CreatePulseSenderInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/data/sender", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let mask = Mask(info.mask);
mask.get_mask()?;
@@ -271,7 +271,7 @@ pub fn create_pulse_receiver_flex(
let info: CreatePulseReceiverInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/data/receiver", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let field = find_field(&calling_client, info.field_path)?;
let mask = Mask(info.mask);
mask.get_mask()?;

View File

@@ -122,7 +122,7 @@ pub fn create_flex(_node: &Node, calling_client: Arc<Client>, data: &[u8]) -> Re
let mut info: CreateTextInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/drawable/lines", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, true)?;
let transform = parse_transform(info.transform, true, true, true);
for p in &mut info.points {
p.color[0] = p.color[0].powf(2.2);

View File

@@ -251,7 +251,7 @@ pub fn create_flex(_node: &Node, calling_client: Arc<Client>, data: &[u8]) -> Re
let info: CreateModelInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/drawable/model", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, true)?;
let transform = parse_transform(info.transform, true, true, true);
let node = node.add_to_scenegraph();
Spatial::add_to(&node, Some(parent), transform, false)?;
Model::add_to(&node, info.resource)?;

View File

@@ -189,7 +189,7 @@ pub fn create_flex(_node: &Node, calling_client: Arc<Client>, data: &[u8]) -> Re
let info: CreateTextInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/drawable/text", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, true)?;
let transform = parse_transform(info.transform, true, true, true);
let color = Rgba::from_slice(&info.color);
let node = node.add_to_scenegraph();

View File

@@ -74,7 +74,7 @@ pub fn create_box_field_flex(_node: &Node, calling_client: Arc<Client>, data: &[
let info: CreateFieldInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/field", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let node = node.add_to_scenegraph();
Spatial::add_to(&node, Some(parent), transform, false)?;
BoxField::add_to(&node, info.size)?;

View File

@@ -80,7 +80,7 @@ pub fn create_cylinder_field_flex(
let info: CreateFieldInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/field", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let node = node.add_to_scenegraph();
Spatial::add_to(&node, Some(parent), transform, false)?;
CylinderField::add_to(&node, info.length, info.radius)?;

View File

@@ -80,7 +80,7 @@ pub fn create_torus_field_flex(
let info: CreateFieldInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/field", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let node = node.add_to_scenegraph();
Spatial::add_to(&node, Some(parent), transform, false)?;
TorusField::add_to(&node, info.radius_a, info.radius_b)?;

View File

@@ -247,7 +247,7 @@ pub fn create_input_handler_flex(
}
let info: CreateInputHandlerInfo = deserialize(data)?;
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, true)?;
let transform = parse_transform(info.transform, true, true, true);
let field = find_field(&calling_client, info.field_path)?;
let node = Node::create(&calling_client, "/input/handler", info.name, true).add_to_scenegraph();

View File

@@ -57,7 +57,7 @@ pub fn create_tip_flex(_node: &Node, calling_client: Arc<Client>, data: &[u8]) -
let info: CreateTipInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/input/method/tip", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let node = node.add_to_scenegraph();
Spatial::add_to(&node, Some(parent), transform, false)?;

View File

@@ -72,7 +72,7 @@ pub(super) fn create_environment_item_flex(
let info: CreateEnvironmentItemInfo = deserialize(data)?;
let parent_name = format!("/item/{}/item", ITEM_TYPE_INFO_ENVIRONMENT.type_name);
let space = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let node = Node::create(&INTERNAL_CLIENT, &parent_name, info.name, false).add_to_scenegraph();
Spatial::add_to(&node, None, transform * space.global_transform(), false)?;

View File

@@ -422,7 +422,7 @@ fn create_item_acceptor_flex(_node: &Node, calling_client: Arc<Client>, data: &[
}
let info: CreateItemAcceptorInfo = deserialize(data)?;
let space = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let field = find_field(&calling_client, info.field_path)?;
let type_info = type_info(info.item_type)?;

View File

@@ -310,12 +310,7 @@ impl Drop for Spatial {
}
}
pub fn parse_transform(
transform: Transform,
position: bool,
rotation: bool,
scale: bool,
) -> Result<Mat4> {
pub fn parse_transform(transform: Transform, position: bool, rotation: bool, scale: bool) -> Mat4 {
let position = position
.then_some(transform.position)
.flatten()
@@ -329,11 +324,7 @@ pub fn parse_transform(
.flatten()
.unwrap_or_else(|| Vector3::from([1.0; 3]));
Ok(Mat4::from_scale_rotation_translation(
scale.into(),
rotation.into(),
position.into(),
))
Mat4::from_scale_rotation_translation(scale.into(), rotation.into(), position.into())
}
pub fn find_spatial(
@@ -377,7 +368,7 @@ pub fn create_spatial_flex(_node: &Node, calling_client: Arc<Client>, data: &[u8
let info: CreateSpatialInfo = deserialize(data)?;
let node = Node::create(&calling_client, "/spatial/spatial", info.name, true);
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, true)?;
let transform = parse_transform(info.transform, true, true, true);
let node = node.add_to_scenegraph();
Spatial::add_to(&node, Some(parent), transform, info.zoneable)?;
Ok(())

View File

@@ -157,7 +157,7 @@ pub fn create_zone_flex(_node: &Node, calling_client: Arc<Client>, data: &[u8])
}
let info: CreateZoneInfo = deserialize(data)?;
let parent = find_spatial_parent(&calling_client, info.parent_path)?;
let transform = parse_transform(info.transform, true, true, false)?;
let transform = parse_transform(info.transform, true, true, false);
let field = find_field(&calling_client, info.field_path)?;
let node = Node::create(&calling_client, "/spatial/zone", info.name, true).add_to_scenegraph();