From 4e948ffc501ecd01a0bbd892c46a841c08e0e442 Mon Sep 17 00:00:00 2001 From: ud18010 Date: Mon, 20 Jul 2026 12:20:58 +0800 Subject: [PATCH] =?UTF-8?q?ModelTranslator:=20uvpm=5Fmode=5Flabel=E2=80=94?= =?UTF-8?q?=E2=80=94UVPM4=20=E6=8E=92=E5=B8=83=E7=94=9F=E6=95=88=E7=9A=84?= =?UTF-8?q?=20UV=20=E6=A8=A1=E5=BC=8F=E6=A0=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tools/ModelTranslator/bl_decimate.py | 5 +++++ Tools/ModelTranslator/tests/test_bl_decimate.py | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/Tools/ModelTranslator/bl_decimate.py b/Tools/ModelTranslator/bl_decimate.py index 21a309e0..34c7f63f 100644 --- a/Tools/ModelTranslator/bl_decimate.py +++ b/Tools/ModelTranslator/bl_decimate.py @@ -33,6 +33,11 @@ def uv_gate_ok(flipped, overlap): return flipped <= UV_FLIP_TOL and (overlap or 0.0) <= UV_OVERLAP_TOL +def uvpm_mode_label(base, applied): + """UV 模式标注:UVPackmaster 排布生效时加 +uvpm 后缀。""" + return base + "+uvpm" if applied else base + + def count_islands(n_faces, adjacent_pairs): """union-find 数 UV 岛:n_faces 个面,adjacent_pairs 为 UV 连续的面索引对。""" parent = list(range(n_faces)) diff --git a/Tools/ModelTranslator/tests/test_bl_decimate.py b/Tools/ModelTranslator/tests/test_bl_decimate.py index c73ca1bb..daa24ba8 100644 --- a/Tools/ModelTranslator/tests/test_bl_decimate.py +++ b/Tools/ModelTranslator/tests/test_bl_decimate.py @@ -92,5 +92,16 @@ class TestUvGateOk(unittest.TestCase): self.assertTrue(bd.uv_gate_ok(0.01, None)) +class TestUvpmModeLabel(unittest.TestCase): + def test_applied_appends_suffix(self): + self.assertEqual(bd.uvpm_mode_label("seam", True), "seam+uvpm") + self.assertEqual(bd.uvpm_mode_label("smart", True), "smart+uvpm") + self.assertEqual(bd.uvpm_mode_label("smart_fallback", True), "smart_fallback+uvpm") + + def test_not_applied_keeps_base(self): + self.assertEqual(bd.uvpm_mode_label("seam", False), "seam") + self.assertEqual(bd.uvpm_mode_label("smart_fallback", False), "smart_fallback") + + if __name__ == "__main__": unittest.main()