Rework meshes tab

This commit is contained in:
luboslenco
2025-08-08 14:09:04 +02:00
parent d4eead86ca
commit feb49bd118
+77 -74
View File
@@ -8,25 +8,13 @@ function tab_meshes_draw(htab: ui_handle_t) {
ui_begin_sticky();
///if is_paint
if (config_raw.touch_ui) {
ui_row6();
ui_row2();
}
else {
let row: f32[] = [1 / 14, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 14];
let row: f32[] = [1 / 14, 1 / 14];
ui_row(row);
}
///end
///if is_lab
if (config_raw.touch_ui) {
ui_row7();
}
else {
let row: f32[] = [1 / 14, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 14];
ui_row(row);
}
///end
if (ui_button(tr("Import"))) {
ui_menu_draw(function (ui: ui_t) {
@@ -40,78 +28,93 @@ function tab_meshes_draw(htab: ui_handle_t) {
}
if (ui.is_hovered) ui_tooltip(tr("Import mesh file"));
///if is_lab
if (ui_button(tr("Set Default"))) {
if (ui_button(tr("Edit"))) {
ui_menu_draw(function (ui: ui_t) {
if (ui_menu_button(tr("Cube"))) {
tab_meshes_set_default_mesh(".Cube");
}
if (ui_menu_button(tr("Plane"))) {
tab_meshes_set_default_mesh(".Plane");
}
if (ui_menu_button(tr("Sphere"))) {
tab_meshes_set_default_mesh(".Sphere");
}
if (ui_menu_button(tr("Cylinder"))) {
tab_meshes_set_default_mesh(".Cylinder");
}
});
}
///end
if (ui_button(tr("Flip Normals"))) {
util_mesh_flip_normals();
context_raw.ddirty = 2;
}
if (ui_button(tr("Calculate Normals"))) {
ui_menu_draw(function (ui: ui_t) {
if (ui_menu_button(tr("Smooth"))) {
util_mesh_calc_normals(true);
context_raw.ddirty = 2;
///if is_lab
if (ui_menu_button(tr("Set Default"))) {
ui_menu_draw(function (ui: ui_t) {
if (ui_menu_button(tr("Cube"))) {
tab_meshes_set_default_mesh(".Cube");
}
if (ui_menu_button(tr("Plane"))) {
tab_meshes_set_default_mesh(".Plane");
}
if (ui_menu_button(tr("Sphere"))) {
tab_meshes_set_default_mesh(".Sphere");
}
if (ui_menu_button(tr("Cylinder"))) {
tab_meshes_set_default_mesh(".Cylinder");
}
});
}
if (ui_menu_button(tr("Flat"))) {
util_mesh_calc_normals(false);
context_raw.ddirty = 2;
}
});
}
///end
if (ui_button(tr("Geometry to Origin"))) {
util_mesh_to_origin();
context_raw.ddirty = 2;
}
if (ui_button(tr("Apply Displacement"))) {
///if is_paint
util_mesh_apply_displacement(project_layers[0].texpaint_pack);
///end
///if is_lab
let displace_strength: f32 = config_raw.displace_strength > 0 ? config_raw.displace_strength : 1.0;
let uv_scale: f32 = scene_meshes[0].data.scale_tex * context_raw.brush_scale;
util_mesh_apply_displacement(context_raw.brush_output_node_inst.texpaint_pack, 0.05 * displace_strength, uv_scale);
///end
util_mesh_calc_normals();
context_raw.ddirty = 2;
}
if (ui_button(tr("Rotate"))) {
ui_menu_draw(function (ui: ui_t) {
if (ui_menu_button(tr("Rotate X"))) {
util_mesh_swap_axis(1, 2);
if (ui_menu_button(tr("Flip Normals"))) {
util_mesh_flip_normals();
context_raw.ddirty = 2;
}
if (ui_menu_button(tr("Rotate Y"))) {
util_mesh_swap_axis(2, 0);
if (ui_menu_button(tr("Calculate Normals"))) {
ui_menu_draw(function (ui: ui_t) {
if (ui_menu_button(tr("Smooth"))) {
util_mesh_calc_normals(true);
context_raw.ddirty = 2;
}
if (ui_menu_button(tr("Flat"))) {
util_mesh_calc_normals(false);
context_raw.ddirty = 2;
}
});
}
if (ui_menu_button(tr("Geometry to Origin"))) {
util_mesh_to_origin();
context_raw.ddirty = 2;
}
if (ui_menu_button(tr("Rotate Z"))) {
util_mesh_swap_axis(0, 1);
if (ui_menu_button(tr("Apply Displacement"))) {
///if is_paint
util_mesh_apply_displacement(project_layers[0].texpaint_pack);
///end
///if is_lab
let displace_strength: f32 = config_raw.displace_strength > 0 ? config_raw.displace_strength : 1.0;
let uv_scale: f32 = scene_meshes[0].data.scale_tex * context_raw.brush_scale;
util_mesh_apply_displacement(context_raw.brush_output_node_inst.texpaint_pack, 0.05 * displace_strength, uv_scale);
///end
util_mesh_calc_normals();
context_raw.ddirty = 2;
}
if (ui_menu_button(tr("Rotate"))) {
ui_menu_draw(function (ui: ui_t) {
if (ui_menu_button(tr("Rotate X"))) {
util_mesh_swap_axis(1, 2);
context_raw.ddirty = 2;
}
if (ui_menu_button(tr("Rotate Y"))) {
util_mesh_swap_axis(2, 0);
context_raw.ddirty = 2;
}
if (ui_menu_button(tr("Rotate Z"))) {
util_mesh_swap_axis(0, 1);
context_raw.ddirty = 2;
}
});
}
if (ui_menu_button(tr("UV Unwrap"))) {
let f: string = "uv_unwrap.js";
if (array_index_of(config_raw.plugins, f) == -1) {
config_enable_plugin(f);
}
plugin_uv_unwrap_button();
}
});
}