small cleanup

This commit is contained in:
2026-01-06 11:12:39 +00:00
parent 1488f0398d
commit d294748b88
4 changed files with 29 additions and 68 deletions

View File

@@ -52,15 +52,15 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
log::logger().flush(); log::logger().flush();
scene.world scene.world
.query_all::<(&InteractableResource, &unity_parser::WorldTransform, &unity_parser::GameObject)>() .query_all::<(&InteractableResource, &unity_parser::Transform, &unity_parser::GameObject)>()
.for_each(|(resource, world_transform, object)| { .for_each(|(resource, transform, object)| {
info!(" 📦 Resource: \"{}\"", object.name); info!(" 📦 Resource: \"{}\"", object.name);
info!(" • typeId: {}", resource.type_id); info!(" • typeId: {}", resource.type_id);
info!(" • maxHealth: {}", resource.max_health); info!(" • maxHealth: {}", resource.max_health);
// Extract world position from WorldTransform // Extract world position from WorldTransform
let world_pos = world_transform.position(); let world_pos = transform.local_position;
info!("World Position: ({:.2}, {:.2}, {:.2})", world_pos.x, world_pos.y, world_pos.z); info!("Local Position: ({:.2}, {:.2}, {:.2})", world_pos.x, world_pos.y, world_pos.z);
}); });
log::logger().flush(); log::logger().flush();

View File

@@ -92,7 +92,7 @@ pub fn compute_world_transforms(world: &mut World, entity_map: &HashMap<FileID,
let transform_view = world.borrow::<Transform>(); let transform_view = world.borrow::<Transform>();
for &entity in entity_map.values() { for &entity in entity_map.values() {
if let Some(transform) = transform_view.get(entity) { if let Some(transform) = transform_view.get(entity) {
if transform.parent().is_none() { if transform.parent.is_none() {
root_entities.push(entity); root_entities.push(entity);
} }
} }
@@ -111,7 +111,7 @@ pub fn compute_world_transforms(world: &mut World, entity_map: &HashMap<FileID,
let rect_transform_view = world.borrow::<RectTransform>(); let rect_transform_view = world.borrow::<RectTransform>();
for &entity in entity_map.values() { for &entity in entity_map.values() {
if let Some(rect_transform) = rect_transform_view.get(entity) { if let Some(rect_transform) = rect_transform_view.get(entity) {
if rect_transform.transform.parent().is_none() { if rect_transform.transform.parent.is_none() {
rect_root_entities.push(entity); rect_root_entities.push(entity);
} }
} }
@@ -130,9 +130,9 @@ fn compute_world_transform_recursive(world: &mut World, entity: Entity, parent_m
let transform_view = world.borrow::<Transform>(); let transform_view = world.borrow::<Transform>();
if let Some(transform) = transform_view.get(entity) { if let Some(transform) = transform_view.get(entity) {
compute_local_matrix( compute_local_matrix(
transform.local_position(), Some(&transform.local_position),
transform.local_rotation(), Some(&transform.local_rotation),
transform.local_scale(), Some(&transform.local_scale),
) )
} else { } else {
// No transform component, skip this entity // No transform component, skip this entity
@@ -148,7 +148,7 @@ fn compute_world_transform_recursive(world: &mut World, entity: Entity, parent_m
let transform_view = world.borrow::<Transform>(); let transform_view = world.borrow::<Transform>();
transform_view transform_view
.get(entity) .get(entity)
.map(|t| t.children().to_vec()) .map(|t| t.children.clone())
.unwrap_or_default() .unwrap_or_default()
}; };
@@ -169,11 +169,11 @@ fn compute_rect_world_transform_recursive(world: &mut World, entity: Entity, par
if let Some(rect_transform) = rect_transform_view.get(entity) { if let Some(rect_transform) = rect_transform_view.get(entity) {
let transform = &rect_transform.transform; let transform = &rect_transform.transform;
let local = compute_local_matrix( let local = compute_local_matrix(
transform.local_position(), Some(&transform.local_position),
transform.local_rotation(), Some(&transform.local_rotation),
transform.local_scale(), Some(&transform.local_scale),
); );
let children = transform.children().to_vec(); let children = transform.children.clone();
(local, children) (local, children)
} else { } else {
// No rect transform component, skip this entity // No rect transform component, skip this entity

View File

@@ -13,7 +13,6 @@ pub mod stripped_reference;
pub mod transform; pub mod transform;
pub use box_collider::BoxCollider; pub use box_collider::BoxCollider;
pub use capsule_collider::CapsuleCollider;
pub use collider::Collider; pub use collider::Collider;
pub use game_object::GameObject; pub use game_object::GameObject;
pub use mesh_filter::MeshFilter; pub use mesh_filter::MeshFilter;
@@ -22,6 +21,5 @@ pub use prefab_instance::{
PrefabInstance, PrefabInstanceComponent, PrefabModification, PrefabResolver, PrefabInstance, PrefabInstanceComponent, PrefabModification, PrefabResolver,
}; };
pub use renderer::Renderer; pub use renderer::Renderer;
pub use sphere_collider::SphereCollider;
pub use stripped_reference::StrippedReference; pub use stripped_reference::StrippedReference;
pub use transform::{RectTransform, Transform}; pub use transform::{RectTransform, Transform};

View File

@@ -10,48 +10,11 @@ use sparsey::Entity;
/// Transform determines the Position, Rotation, and Scale of each object in the scene. /// Transform determines the Position, Rotation, and Scale of each object in the scene.
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct Transform { pub struct Transform {
local_position: Option<Vector3>, pub local_position: Vector3,
local_rotation: Option<Quaternion>, pub local_rotation: Quaternion,
local_scale: Option<Vector3>, pub local_scale: Vector3,
parent: Option<Entity>, pub parent: Option<Entity>,
children: Vec<Entity>, pub children: Vec<Entity>,
}
impl Transform {
/// Get the local position
pub fn local_position(&self) -> Option<&Vector3> {
self.local_position.as_ref()
}
/// Get the local rotation
pub fn local_rotation(&self) -> Option<&Quaternion> {
self.local_rotation.as_ref()
}
/// Get the local scale
pub fn local_scale(&self) -> Option<&Vector3> {
self.local_scale.as_ref()
}
/// Get the parent entity
pub fn parent(&self) -> Option<Entity> {
self.parent
}
/// Get the children entities
pub fn children(&self) -> &[Entity] {
&self.children
}
/// Set the parent entity (used during hierarchy resolution)
pub fn set_parent(&mut self, parent: Option<Entity>) {
self.parent = parent;
}
/// Set the children entities (used during hierarchy resolution)
pub fn set_children(&mut self, children: Vec<Entity>) {
self.children = children;
}
} }
impl UnityComponent for Transform { impl UnityComponent for Transform {
@@ -98,7 +61,7 @@ impl UnityComponent for Transform {
// Set parent (might be None if unresolved) // Set parent (might be None if unresolved)
let resolved_parent = let resolved_parent =
parent_ref.and_then(|r| entity_map.get(&r.file_id).copied()); parent_ref.and_then(|r| entity_map.get(&r.file_id).copied());
transform.set_parent(resolved_parent); transform.parent = resolved_parent;
// Resolve any previously unresolved children // Resolve any previously unresolved children
let mut all_children = children_entities.clone(); let mut all_children = children_entities.clone();
@@ -110,15 +73,15 @@ impl UnityComponent for Transform {
} }
} }
transform.set_children(all_children); transform.children = all_children;
} }
})); }));
} }
Some(Self { Some(Self {
local_position, local_position: local_position.unwrap_or_default(),
local_rotation, local_rotation: local_rotation.unwrap_or_default(),
local_scale, local_scale: local_scale.unwrap_or_else(|| Vector3::new(1.0, 1.0, 1.0)),
parent: None, parent: None,
children: Vec::new(), children: Vec::new(),
}) })
@@ -218,7 +181,7 @@ impl UnityComponent for RectTransform {
// Set parent (might be None if unresolved) // Set parent (might be None if unresolved)
let resolved_parent = let resolved_parent =
parent_ref.and_then(|r| entity_map.get(&r.file_id).copied()); parent_ref.and_then(|r| entity_map.get(&r.file_id).copied());
transform.set_parent(resolved_parent); transform.parent = resolved_parent;
// Resolve any previously unresolved children // Resolve any previously unresolved children
let mut all_children = children_entities.clone(); let mut all_children = children_entities.clone();
@@ -230,15 +193,15 @@ impl UnityComponent for RectTransform {
} }
} }
transform.set_children(all_children); transform.children = all_children;
} }
})); }));
} }
let transform = Transform { let transform = Transform {
local_position, local_position: local_position.unwrap_or_default(),
local_rotation, local_rotation: local_rotation.unwrap_or_default(),
local_scale, local_scale: local_scale.unwrap_or_else(|| Vector3::new(1.0, 1.0, 1.0)),
parent: None, parent: None,
children: Vec::new(), children: Vec::new(),
}; };