Deleting node with mesh triggers Jolt assert
Closed this issue · 1 comments
tksuoran commented
editor.exe!JPH::BodyInterface::ActivateBody(const JPH::BodyID & inBodyID={...}) Line 174 C++
editor.exe!erhe::physics::Jolt_rigid_body::set_motion_mode(erhe::physics::Motion_mode motion_mode=e_dynamic) Line 273 C++
editor.exe!editor::Transform_tool::release_node_physics() Line 610 C++
editor.exe!editor::Transform_tool::update_target_nodes(erhe::scene::Node * node_filter=0x0000000000000000) Line 299 C++
editor.exe!editor::Transform_tool::on_message(editor::Editor_message & message={...}) Line 200 C++
editor.exe!editor::Transform_tool::{ctor}::__l2::<lambda_1>::operator()(editor::Editor_message & message={...}) Line 178 C++
[External Code]
editor.exe!erhe::message_bus::Message_bus<editor::Editor_message>::send_message(editor::Editor_message message={...}) Line 25 C++
editor.exe!editor::Selection::send_selection_change_message() Line 694 C++
editor.exe!editor::Selection::set_selection(const std::vector<std::shared_ptr<erhe::scene::Item>,std::allocator<std::shared_ptr<erhe::scene::Item>>> & selection={...}) Line 426 C++
editor.exe!editor::Node_insert_remove_operation::execute(editor::Editor_context & context={...}) Line 112 C++
editor.exe!editor::Compound_operation::execute(editor::Editor_context & context={...}) Line 25 C++
editor.exe!editor::Operation_stack::push(const std::shared_ptr<editor::IOperation> & operation={...}) Line 87 C++
editor.exe!editor::Selection::delete_selection() Line 369 C++
editor.exe!editor::Selection_delete_command::try_call() Line 259 C++
editor.exe!erhe::commands::Command::try_call_with_input(erhe::commands::Input_arguments & input={...}) Line 77 C++
editor.exe!erhe::commands::Key_binding::on_key(erhe::commands::Input_arguments & input={...}, bool pressed=true, int code=0x00000105, unsigned int modifier_mask=0x00000000) Line 68 C++
editor.exe!erhe::commands::Commands::on_key(int code=0x00000105, unsigned int modifier_mask=0x00000000, bool pressed=true) Line 296 C++
editor.exe!erhe::toolkit::Root_window_event_handler::on_key(int code=0x00000105, unsigned int mask=0x00000000, bool pressed=true) Line 260 C++
editor.exe!erhe::toolkit::`anonymous namespace'::key_event_callback(GLFWwindow * glfw_window=0x000001e28f46ab10, const int key=0x00000105, const int scancode=0x00000153, const int action=0x00000001, int glfw_modifiers=0x00000000) Line 271 C++
editor.exe!_glfwInputKey(_GLFWwindow * window=0x000001e28f46ab10, int key=0x00000105, int scancode=0x00000153, int action=0x00000001, int mods=0x00000000) Line 276 C
editor.exe!windowProc(HWND__ * hWnd=0x0000000000010ba6, unsigned int uMsg=0x00000100, unsigned __int64 wParam=0x000000000000002e, __int64 lParam=0x0000000001530001) Line 827 C
[External Code]
editor.exe!_glfwPlatformPollEvents() Line 2055 C
editor.exe!_glfwPlatformWaitEventsTimeout(double timeout=0.0099999997764825821) Line 2123 C
editor.exe!glfwWaitEventsTimeout(double timeout=0.0099999997764825821) Line 1094 C
editor.exe!erhe::toolkit::Context_window::poll_events() Line 570 C++
editor.exe!editor::Editor::run() Line 369 C++
editor.exe!editor::run_editor() Line 519 C++
editor.exe!main(int __formal=0x00000001, char * * __formal=0x000001e2fb36f9d0) Line 6 C++
[External Code]
tksuoran commented
Transform_tool::release_node_physics()
incorrectly assumes ifNode_physics
is found, it can be actually used.- When
Node_physics
is "detached" from a Scene byNode_insert_remove_operation::execute()
, theNode
becomes orphan (no parent), and in that case the Node_physics is not in any physics world