From 2c468c9079153bf56abf2ad9292f4e6cdb2e7dfd Mon Sep 17 00:00:00 2001 From: luboslenco Date: Fri, 1 May 2026 22:32:43 +0200 Subject: [PATCH] paint: reparent after sort --- paint/sources/import_arm.c | 4 ++-- paint/sources/import_mesh.c | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/paint/sources/import_arm.c b/paint/sources/import_arm.c index 078491a2..386253a5 100644 --- a/paint/sources/import_arm.c +++ b/paint/sources/import_arm.c @@ -379,7 +379,8 @@ void import_arm_run_project(char *path) { any_array_push(project_paint_objects, object); } - for (i32 i = 0; i < project->mesh_datas->length; ++i) { + transform_set_matrix(g_context->paint_object->base->transform, mat4_from_f32_array(project->mesh_transforms->buffer[0], 0)); + for (i32 i = 1; i < project->mesh_datas->length; ++i) { mesh_object_t *o = project_paint_objects->buffer[i]; transform_set_matrix(o->base->transform, mat4_from_f32_array(project->mesh_transforms->buffer[i], 0)); } @@ -414,7 +415,6 @@ void import_arm_run_project(char *path) { } context_select_paint_object(context_main_object()); - viewport_scale_to_bounds(2.0); g_context->paint_object->skip_context = "paint"; g_context->merged_object->base->visible = true; diff --git a/paint/sources/import_mesh.c b/paint/sources/import_mesh.c index 9df6b143..4c202102 100644 --- a/paint/sources/import_mesh.c +++ b/paint/sources/import_mesh.c @@ -82,8 +82,18 @@ void import_mesh_finish_import() { } if (project_paint_objects->length > 1) { + // Sort by name array_sort(project_paint_objects, &import_mesh_finish_import_sort); + mesh_object_t *new_parent = project_paint_objects->buffer[0]; + object_set_parent(new_parent->base, NULL); + for (i32 i = 0; i < project_paint_objects->length; ++i) { + mesh_object_t *p = project_paint_objects->buffer[i]; + if (p != new_parent) { + object_set_parent(p->base, new_parent->base); + } + } + context_select_paint_object(context_main_object()); if (g_context->merged_object == NULL) { util_mesh_merge(NULL);