From 8793704f61f4ae2544af06add44818e71820ef74 Mon Sep 17 00:00:00 2001 From: John Turner <7strbass@gmail.com> Date: Fri, 14 Feb 2025 10:55:18 -0500 Subject: [PATCH 1/3] --fix broken render_camera reference faulty merge artifact --- examples/mod_viewer.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/examples/mod_viewer.py b/examples/mod_viewer.py index 7251714054..3dcf53f93e 100644 --- a/examples/mod_viewer.py +++ b/examples/mod_viewer.py @@ -40,7 +40,7 @@ # add tools directory so I can import things to try them in the viewer sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../tools")) -print(sys.path) +# print(sys.path) # from tools import collision_shape_automation as csa @@ -793,9 +793,11 @@ def debug_draw(self): """ Additional draw commands to be called during draw_event. """ + render_camera = self.render_camera.render_camera if self.debug_bullet_draw: - render_cam = self.render_camera.render_camera - proj_mat = render_cam.projection_matrix.__matmul__(render_cam.camera_matrix) + proj_mat = render_camera.projection_matrix.__matmul__( + render_camera.camera_matrix + ) self.sim.physics_debug_draw(proj_mat) debug_line_render: DebugLineRender = self.sim.get_debug_line_render() @@ -809,14 +811,14 @@ def debug_draw(self): if self.markersets_util.marker_sets_per_obj is not None: self.markersets_util.draw_marker_sets_debug( debug_line_render, - self.render_camera.render_camera.node.absolute_translation, + render_camera.node.absolute_translation, ) if self.receptacles is not None and self.display_receptacles: self.draw_receptacles(debug_line_render) # draw object-related visualizations managed by obj_editor self.obj_editor.draw_obj_vis( - camera_trans=render_cam.node.absolute_translation, + camera_trans=render_camera.node.absolute_translation, debug_line_render=debug_line_render, ) # mouse raycast circle From f4f80d2699fc7b3ec01472d0cd9c6229f4c9bdaa Mon Sep 17 00:00:00 2001 From: John Turner <7strbass@gmail.com> Date: Fri, 14 Feb 2025 13:02:56 -0500 Subject: [PATCH 2/3] --add file directory setting from handle for sensor attributes. --- src/esp/metadata/managers/SensorAttributesManager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/esp/metadata/managers/SensorAttributesManager.cpp b/src/esp/metadata/managers/SensorAttributesManager.cpp index 6df662eac3..d56d181235 100644 --- a/src/esp/metadata/managers/SensorAttributesManager.cpp +++ b/src/esp/metadata/managers/SensorAttributesManager.cpp @@ -218,7 +218,8 @@ AbstractSensorAttributes::ptr SensorAttributesManager::initNewObjectInternal( } // these attributes ignore any default settings. auto newAttributes = (*this.*sensorTypeCtorIter->second)(); - + // set the attributes source filedirectory, from the attributes name + this->setFileDirectoryFromHandle(newAttributes); if (builtFromConfig) { ESP_VERY_VERBOSE(Mn::Debug::Flag::NoSpace) << "New " << sensorAttrClassName From 380ad10f4a9e7e9b7c2ec4241a272a5118a8fd01 Mon Sep 17 00:00:00 2001 From: John Turner <7strbass@gmail.com> Date: Fri, 14 Feb 2025 14:17:40 -0500 Subject: [PATCH 3/3] --expand file name and directory storage. --- .../managedContainers/ManagedFileBasedContainer.h | 15 +++++++++++++++ .../metadata/managers/AbstractAttributesManager.h | 12 +++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/esp/core/managedContainers/ManagedFileBasedContainer.h b/src/esp/core/managedContainers/ManagedFileBasedContainer.h index ce4a43c0d5..cf8ddddf70 100644 --- a/src/esp/core/managedContainers/ManagedFileBasedContainer.h +++ b/src/esp/core/managedContainers/ManagedFileBasedContainer.h @@ -81,6 +81,7 @@ class ManagedFileBasedContainer : public ManagedContainer { const io::JsonGenericValue config = docConfig->GetObject(); ManagedFileIOPtr attr = this->buildManagedObjectFromDoc(filename, config); attr->setActualFilename(filename); + this->setFileDirectoryFromFilePath(attr); // Set attributes' status to saved (i.e. it matches the version on disk) // since it was just loaded. attr->setAttrIsSaved(); @@ -511,6 +512,20 @@ class ManagedFileBasedContainer : public ManagedContainer { } } // setFileDirectoryFromHandle + /** + * @brief Get directory component of managed object's specified handle and call @ref + * esp::core::managedContainers::AbstractFileBasedManagedObject::setFileDirectory + * if a legitimate directory exists in handle. + * + * @param object pointer to managed object to set + */ + void setFileDirectoryFromFilePath(ManagedFileIOPtr object) { + std::string fileName = object->getActualFilename(); + auto loc = fileName.find_last_of('/'); + if (loc != std::string::npos) { + object->setFileDirectory(fileName.substr(0, loc + 1)); + } + } // setFileDirectoryFromHandle // ======== Instance Variables ======== /** * @brief The string extension for the JSON configuration file backing this diff --git a/src/esp/metadata/managers/AbstractAttributesManager.h b/src/esp/metadata/managers/AbstractAttributesManager.h index 680e0d8241..b38abd63de 100644 --- a/src/esp/metadata/managers/AbstractAttributesManager.h +++ b/src/esp/metadata/managers/AbstractAttributesManager.h @@ -566,13 +566,19 @@ auto AbstractAttributesManager::createFromJsonOrDefaultInternal( bool fileExists = CrPath::exists(filename); // if filename passed is name of some kind of asset, or if it was not // found - if (ESP_LOG_LEVEL_ENABLED(logging::LoggingLevel::Debug)) { + if (fileExists) { + // Built from non-json filename (i.e. glb file) + attrs->setActualFilename(filename); + this->setFileDirectoryFromFilePath(attrs); // only populate msg if appropriate logging level is enabled - if (fileExists) { + if (ESP_LOG_LEVEL_ENABLED(logging::LoggingLevel::Debug)) { msg = "File `" + filename + "` exists but is not a recognized config filename extension, so " "new default"; - } else { + } + } else { + // only populate msg if appropriate logging level is enabled + if (ESP_LOG_LEVEL_ENABLED(logging::LoggingLevel::Debug)) { msg = "File `" + filename + "` not found, so new default"; } }