diff --git a/rmf_site_editor/src/site/model.rs b/rmf_site_editor/src/site/model.rs index 8336d347..e7d6aa25 100644 --- a/rmf_site_editor/src/site/model.rs +++ b/rmf_site_editor/src/site/model.rs @@ -22,7 +22,7 @@ use crate::{ }; use bevy::{asset::LoadState, gltf::Gltf, prelude::*}; use bevy_mod_outline::OutlineMeshExt; -use rmf_site_format::{AssetSource, ModelMarker, Pose, Scale, UrdfRoot}; +use rmf_site_format::{AssetSource, ModelMarker, Pending, Pose, Scale, UrdfRoot}; use smallvec::SmallVec; #[derive(Component, Debug, Clone)] @@ -311,7 +311,7 @@ pub fn update_model_scales( pub fn make_models_selectable( mut commands: Commands, - new_scene_roots: Query>, + new_scene_roots: Query, Without)>, parents: Query<&Parent>, scene_roots: Query<&Selectable, With>, all_children: Query<&Children>, diff --git a/rmf_site_editor/src/site_asset_io.rs b/rmf_site_editor/src/site_asset_io.rs index a9b4cd15..f50dc4f4 100644 --- a/rmf_site_editor/src/site_asset_io.rs +++ b/rmf_site_editor/src/site_asset_io.rs @@ -137,12 +137,16 @@ impl SiteAssetIo { ))); } }; - let binding = name.clone(); - let filename = binding.splitn(3, "/").collect::>()[2]; - /* - let binding = PathBuf::from(model_name); - let model_name = binding.file_stem().unwrap().to_str().unwrap(); - */ + // TODO(luca) migrate to split.remainder once + // https://github.com/rust-lang/rust/issues/77998 is stabilized + let binding = tokens.fold(String::new(), |prefix, path| prefix + "/" + path); + if binding.len() < 2 { + return Err(AssetIoError::Io(io::Error::new( + io::ErrorKind::Other, + format!("File name not found for: {name}"), + ))); + } + let filename = binding.split_at(1).1; let uri = format!( "{0}/{1}/models/{2}/tip/files/{3}", FUEL_BASE_URI, org_name, model_name, filename