From f4fd8f4fce8ea3eda8780ddb09339b52ea784b27 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 12:24:35 +0400 Subject: perf(assets): cache visual graph anchors --- crates/fparkan-assets/src/lib.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'crates/fparkan-assets/src') diff --git a/crates/fparkan-assets/src/lib.rs b/crates/fparkan-assets/src/lib.rs index ac64648..d133574 100644 --- a/crates/fparkan-assets/src/lib.rs +++ b/crates/fparkan-assets/src/lib.rs @@ -1205,19 +1205,29 @@ pub fn extend_graph_report_with_visual_dependencies_with_progress = (0..prototypes.len()) + .map(|prototype_index| { + let prototype_node_id = prototype_node_id(graph, prototype_index)?; + let mesh_node_id = prototype_mesh_node_id(graph, prototype_node_id)?; + Some((mesh_node_id, mesh_edge_id(graph, prototype_node_id))) + }) + .collect(); for (prototype_index, prototype) in prototypes.iter().enumerate() { let PrototypeGeometry::Mesh(mesh) = &prototype.geometry else { continue; }; report.wear_request_count += 1; - let Some(prototype_node_id) = prototype_node_id(graph, prototype_index) else { - continue; - }; - let Some(mesh_node_id) = prototype_mesh_node_id(graph, prototype_node_id) else { + let Some((mesh_node_id, mesh_parent_edge)) = prototype_mesh_anchors + .get(prototype_index) + .copied() + .flatten() + else { continue; }; - let mesh_parent_edge = mesh_edge_id(graph, prototype_node_id); let root_index = root_index_for_prototype(graph, prototype_index); wear_requests = wear_requests.saturating_add(1); -- cgit v1.2.3