From 49a0fd7e74efef68f638cf3d9a9a05e680e33a33 Mon Sep 17 00:00:00 2001 From: Sergey Lapin Date: Mon, 9 Dec 2024 01:15:06 +0300 Subject: [PATCH] Use integer for rotation --- src/modules/stream/ui/setup_3d_viewport.h | 109 ++++++++-------------- 1 file changed, 38 insertions(+), 71 deletions(-) diff --git a/src/modules/stream/ui/setup_3d_viewport.h b/src/modules/stream/ui/setup_3d_viewport.h index 7b6105a..ded9453 100644 --- a/src/modules/stream/ui/setup_3d_viewport.h +++ b/src/modules/stream/ui/setup_3d_viewport.h @@ -133,79 +133,53 @@ protected: int check; int mask; String item; - Basis basis; + int basis_rot; Vector3 offset; bool exterior; }; struct pmatch match_data[] = { - { 1, 1 | 256, "outside-wall", Basis(), + { 1, 1 | 256, "outside-wall", 0, Vector3(0, 0, -2), true }, - { 2, 2 | 512, "outside-wall", - Basis().rotated(Vector3(0, 1, 0), Math_PI), + { 2, 2 | 512, "outside-wall", 2, Vector3(0, 0, 2), true }, - { 4, 4 | 1024, "outside-wall", - Basis().rotated(Vector3(0, 1, 0), - Math_PI / 2), + { 4, 4 | 1024, "outside-wall", 1, Vector3(-2, 0, 0), true }, - { 8, 8 | 2048, "outside-wall", - Basis().rotated(Vector3(0, 1, 0), - -Math_PI / 2), + { 8, 8 | 2048, "outside-wall", -1, Vector3(2, 0, 0), true }, - { 2 | 8, 2 | 8, "outside-wall-corner", - Basis().rotated(Vector3(0, 1, 0), Math_PI), + { 2 | 8, 2 | 8, "outside-wall-corner", 2, Vector3(2, 0, 2), true }, - { 1 | 4, 1 | 4, "outside-wall-corner", - Basis().rotated(Vector3(0, 1, 0), 0), + { 1 | 4, 1 | 4, "outside-wall-corner", 0, Vector3(-2, 0, -2), true }, - { 1 | 8, 1 | 8, "outside-wall-corner", - Basis().rotated(Vector3(0, 1, 0), - -Math_PI / 2), + { 1 | 8, 1 | 8, "outside-wall-corner", -1, Vector3(2, 0, -2), true }, - { 2 | 4, 2 | 4, "outside-wall-corner", - Basis().rotated(Vector3(0, 1, 0), - Math_PI / 2), + { 2 | 4, 2 | 4, "outside-wall-corner", 1, Vector3(-2, 0, 2), true }, - { 16, 16 | 256 | 4096, "internal-wall", Basis(), + { 16, 16 | 256 | 4096, "internal-wall", 0, Vector3(0, 0, -2), false }, - { 32, 32 | 512 | 8192, "internal-wall", - Basis().rotated(Vector3(0, 1, 0), Math_PI), + { 32, 32 | 512 | 8192, "internal-wall", 2, Vector3(0, 0, 2), false }, - { 64, 64 | 1024 | 16384, "internal-wall", - Basis().rotated(Vector3(0, 1, 0), - Math_PI / 2), + { 64, 64 | 1024 | 16384, "internal-wall", 1, Vector3(-2, 0, 0), false }, - { 128, 128 | 2048 | 32768, "internal-wall", - Basis().rotated(Vector3(0, 1, 0), - -Math_PI / 2), + { 128, 128 | 2048 | 32768, "internal-wall", -1, Vector3(2, 0, 0), false }, - { 16, 16 | 256, "internal-wall-skirting", - Basis(), Vector3(0, 0, -2), false }, - { 32, 32 | 512, "internal-wall-skirting", - Basis().rotated(Vector3(0, 1, 0), Math_PI), + { 16, 16 | 256, "internal-wall-skirting", 0, + Vector3(0, 0, -2), false }, + { 32, 32 | 512, "internal-wall-skirting", 2, Vector3(0, 0, 2), false }, - { 64, 64 | 1024, "internal-wall-skirting", - Basis().rotated(Vector3(0, 1, 0), - Math_PI / 2), + { 64, 64 | 1024, "internal-wall-skirting", 1, Vector3(-2, 0, 0), false }, - { 128, 128 | 2048, "internal-wall-skirting", - Basis().rotated(Vector3(0, 1, 0), - -Math_PI / 2), + { 128, 128 | 2048, "internal-wall-skirting", -1, Vector3(2, 0, 0), false }, { 16 | 4096, 16 | 256 | 4096, "internal-door", - Basis(), Vector3(0, 0, -2), false }, + 0, Vector3(0, 0, -2), false }, { 32 | 8192, 32 | 512 | 8192, "internal-door", - Basis().rotated(Vector3(0, 1, 0), Math_PI), - Vector3(0, 0, 2), false }, + 2, Vector3(0, 0, 2), false }, { 64 | 16384, 64 | 1024 | 16384, - "internal-door", - Basis().rotated(Vector3(0, 1, 0), - Math_PI / 2), - Vector3(-2, 0, 0), false }, + "internal-door", 1, Vector3(-2, 0, 0), + false }, { 128 | 32768, 128 | 2048 | 32768, - "internal-door", - Basis().rotated(Vector3(0, 1, 0), - -Math_PI / 2), - Vector3(2, 0, 0), false }, + "internal-door", -1, Vector3(2, 0, 0), + false }, #if 0 { 1 | 256, 1 | 256, "external-window", Basis().rotated(Vector3(0, 1, 0), @@ -216,31 +190,21 @@ protected: -Math_PI / 2), Vector3(2, 0, 0), false } #endif - { 1 | 256, 1 | 256, "outside-window", Basis(), + { 1 | 256, 1 | 256, "outside-window", 0, Vector3(0, 0, -2), true }, - { 2 | 512, 2 | 512, "outside-window", - Basis().rotated(Vector3(0, 1, 0), Math_PI), + { 2 | 512, 2 | 512, "outside-window", 2, Vector3(0, 0, 2), true }, - { 4 | 1024, 4 | 1024, "outside-window", - Basis().rotated(Vector3(0, 1, 0), - Math_PI / 2), + { 4 | 1024, 4 | 1024, "outside-window", 1, Vector3(-2, 0, 0), true }, - { 8 | 2048, 8 | 2048, "outside-window", - Basis().rotated(Vector3(0, 1, 0), - -Math_PI / 2), + { 8 | 2048, 8 | 2048, "outside-window", -1, Vector3(2, 0, 0), true }, - { 16 | 256, 16 | 256, "internal-window", - Basis(), Vector3(0, 0, -2), false }, - { 32 | 512, 32 | 512, "internal-window", - Basis().rotated(Vector3(0, 1, 0), Math_PI), + { 16 | 256, 16 | 256, "internal-window", 0, + Vector3(0, 0, -2), false }, + { 32 | 512, 32 | 512, "internal-window", 2, Vector3(0, 0, 2), false }, - { 64 | 1024, 64 | 1024, "internal-window", - Basis().rotated(Vector3(0, 1, 0), - Math_PI / 2), + { 64 | 1024, 64 | 1024, "internal-window", 1, Vector3(-2, 0, 0), false }, - { 128 | 2048, 128 | 2048, "internal-window", - Basis().rotated(Vector3(0, 1, 0), - -Math_PI / 2), + { 128 | 2048, 128 | 2048, "internal-window", -1, Vector3(2, 0, 0), false }, }; struct match_window { @@ -293,8 +257,11 @@ protected: match_data[i].item); assert(id >= 0); Transform item_transform; - item_transform.basis = - match_data[i].basis; + item_transform.basis = Basis().rotated( + Vector3(0, 1, 0), + Math_PI * + match_data[i].basis_rot / + 2); item_transform.origin = match_data[i].offset; if (match_data[i].exterior)