From 8764cec828dbabe02d51ce68b91bd29483ca889e Mon Sep 17 00:00:00 2001 From: MayaTheShy Date: Sat, 8 Nov 2025 21:43:26 -0500 Subject: [PATCH] refactor: simplify reify implementation in BridgeState by removing cube line generation --- bridge/src/lib.rs | 130 ++-------------------------------------------- 1 file changed, 4 insertions(+), 126 deletions(-) diff --git a/bridge/src/lib.rs b/bridge/src/lib.rs index 9f9f31d..3a75fc1 100644 --- a/bridge/src/lib.rs +++ b/bridge/src/lib.rs @@ -69,133 +69,11 @@ impl ClientState for BridgeState { impl Reify for BridgeState { fn reify(&self) -> impl ast::Element { - use stardust_xr_fusion::values::color::rgba_linear; - use stardust_xr_fusion::drawable::{Line, LinePoint}; - use stardust_xr_fusion::values::Vector3; + eprintln!("[bridge/reify] Reifying {} nodes - START", self.nodes.len()); - eprintln!("[bridge/reify] Reifying {} nodes", self.nodes.len()); - - // Helper function to create cube lines with proper Line/LinePoint structs - fn create_cube_lines(half_size: glam::Vec3, color: stardust_xr_fusion::values::Color, thickness: f32) -> Vec { - let mut lines = Vec::new(); - - // Create a dense grid of lines to make it look more solid - let steps = 8; // More lines = more solid appearance - for i in 0..=steps { - let t = (i as f32) / (steps as f32) * 2.0 - 1.0; - - // Lines parallel to X axis - for j in 0..=steps { - let u = (j as f32) / (steps as f32) * 2.0 - 1.0; - lines.push(Line { - points: vec![ - LinePoint { - point: Vector3 { x: -half_size.x, y: t * half_size.y, z: u * half_size.z }, - thickness, - color, - }, - LinePoint { - point: Vector3 { x: half_size.x, y: t * half_size.y, z: u * half_size.z }, - thickness, - color, - }, - ], - cyclic: false, - }); - } - - // Lines parallel to Y axis - for j in 0..=steps { - let u = (j as f32) / (steps as f32) * 2.0 - 1.0; - lines.push(Line { - points: vec![ - LinePoint { - point: Vector3 { x: t * half_size.x, y: -half_size.y, z: u * half_size.z }, - thickness, - color, - }, - LinePoint { - point: Vector3 { x: t * half_size.x, y: half_size.y, z: u * half_size.z }, - thickness, - color, - }, - ], - cyclic: false, - }); - } - - // Lines parallel to Z axis - for j in 0..=steps { - let u = (j as f32) / (steps as f32) * 2.0 - 1.0; - lines.push(Line { - points: vec![ - LinePoint { - point: Vector3 { x: t * half_size.x, y: u * half_size.y, z: -half_size.z }, - thickness, - color, - }, - LinePoint { - point: Vector3 { x: t * half_size.x, y: u * half_size.y, z: half_size.z }, - thickness, - color, - }, - ], - cyclic: false, - }); - } - } - - lines - } - - // Root playspace. Create appropriate visuals per entity type - let children = self.nodes.iter().filter_map(|(id, node)| { - // Skip nodes with zero dimensions (like the root node) - let dims = glam::Vec3::from(node.dimensions); - if dims.length() < 0.001 { - eprintln!("[bridge/reify] Skipping node {} (zero dimensions)", id); - return None; - } - - eprintln!("[bridge/reify] Creating visual for node {} type={} dims={:?}", id, node.entity_type, dims); - - // Decompose transform into TRS - let (scale, rot, trans) = node.transform.to_scale_rotation_translation(); - - // Use entity dimensions if available, otherwise use transform scale - let vis_scale = if dims.length() > 0.001 { - dims - } else { - scale - }; - - // Use entity color if set - let node_color = rgba_linear!(node.color[0], node.color[1], node.color[2], node.color[3]); - - // Create transform - convert glam Vec3/Quat to [f32; 3]/[f32; 4] which implement Into - let trans_array = [trans.x, trans.y, trans.z]; - let rot_array = [rot.x, rot.y, rot.z, rot.w]; - let scale_array = [vis_scale.x, vis_scale.y, vis_scale.z]; - let transform = Transform::from_translation_rotation_scale(trans_array, rot_array, scale_array); - - // Create a dense cube mesh for a more solid appearance - let half_size = glam::Vec3::splat(0.5); // Lines will be scaled by transform - let cube_lines = create_cube_lines(half_size, node_color, 0.005); - - // Entity types: 0=Unknown, 1=Box, 2=Sphere, 3=Model - // For now, render all as dense wireframe cubes (which we know works) - Some(( - *id, - Spatial::default() - .transform(transform) - .build() - .child(Lines::new(cube_lines).build()) - )) - }); - - PlaySpace - .build() - .stable_children(children) + // Temporary: just return empty PlaySpace to test + eprintln!("[bridge/reify] Returning empty PlaySpace"); + PlaySpace.build() } }