From 3f56915bc6adf3ea560d356cbcd01df2c291ead2 Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 23 May 2026 15:21:44 +0200 Subject: [PATCH] =?UTF-8?q?capture(phys):=20A6.P3=20#98=20=E2=80=94=20cell?= =?UTF-8?q?ar/cottage=20cell=20fixtures=20from=20live=20capture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Step 2 capture step. Launched the live client with ACDREAM_DUMP_CELLS=0xA9B40143,0xA9B40146,0xA9B40147 and walked into a Holtburg cottage cellar. The probe fired on first-cache of each cell and emitted JSON dumps to tests/AcDream.Core.Tests/Fixtures/issue98/. Cell contents (resolved polygons + portals): - 0xA9B40143: 14 polys + 4 portals (~18.7 KB) - 0xA9B40146: 4 polys + 2 portals (~7.0 KB) - 0xA9B40147: 37 polys + 2 portals (~45.7 KB) — cellar, biggest All three share worldOrigin=(130.5, 11.5, 94.0) with 180° yaw rotation (M11=M22=-1), matching the failing-frame's local-to-world projection. Reproduction during capture: spawn at (141.6, 8.4, 91.5) @ 0xA9B40147 — almost exactly the slice 7 handoff's failing-frame position. User tried to walk up the cellar stair and got stuck (issue #98 reproduction confirmed). Surprise: 0xA9B40146 with only 4 polys + 2 portals is too sparse to be the "cottage main floor cell" that the slice 5 handoff inferred — that designation was a guess, not verified. 0xA9B40143 (14 polys) is the better candidate. Step 3 (replay harness) will confirm by inspecting the actual polygon geometry against the failing-frame sphere position. Cells are real geometry from client_cell_1.dat, not synthetic fixtures. The replay harness can now drive the leaf-level walkable predicates on this exact data without launching a window. Next: Issue98CellarUpReplayTests (Step 3). --- .../Fixtures/issue98/0xA9B40143.json | 1124 +++++++ .../Fixtures/issue98/0xA9B40146.json | 424 +++ .../Fixtures/issue98/0xA9B40147.json | 2674 +++++++++++++++++ 3 files changed, 4222 insertions(+) create mode 100644 tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40143.json create mode 100644 tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40146.json create mode 100644 tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40147.json diff --git a/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40143.json b/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40143.json new file mode 100644 index 0000000..8eeaa5c --- /dev/null +++ b/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40143.json @@ -0,0 +1,1124 @@ +{ + "CellId": 2847146307, + "WorldTransform": { + "M11": -1, + "M12": 8.74228E-08, + "M13": 0, + "M14": 0, + "M21": -8.74228E-08, + "M22": -1, + "M23": 0, + "M24": 0, + "M31": 0, + "M32": 0, + "M33": 1, + "M34": 0, + "M41": 130.5, + "M42": 11.5, + "M43": 94, + "M44": 1 + }, + "InverseWorldTransform": { + "M11": -1, + "M12": -8.74228E-08, + "M13": 0, + "M14": -0, + "M21": 8.74228E-08, + "M22": -1, + "M23": 0, + "M24": 0, + "M31": 0, + "M32": 0, + "M33": 1, + "M34": -0, + "M41": 130.5, + "M42": 11.500011, + "M43": -94, + "M44": 1 + }, + "ResolvedPolygons": [ + { + "Id": 0, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": 1.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": -1.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 1 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 1 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 1, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 2, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 7.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + } + ] + }, + { + "Id": 3, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": 2.8 + }, + "Vertices": [ + { + "X": -11.6, + "Y": -1.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.8 + } + ] + }, + { + "Id": 4, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + } + ] + }, + { + "Id": 5, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.3, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + } + ] + }, + { + "Id": 6, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.2 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + } + ] + }, + { + "Id": 7, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.1999993 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.3, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.8 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + } + ] + }, + { + "Id": 8, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.2 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 5.4, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": 5.4, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 2.5 + } + ] + }, + { + "Id": 9, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 0 + } + ] + }, + { + "Id": 10, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 0 + } + ] + }, + { + "Id": 11, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 12, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 13, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.1999993 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.3, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.8 + } + ] + } + ], + "PortalPolygons": [ + { + "Id": 0, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": 1.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": -1.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 1 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 1 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 1, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 2, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + } + ] + }, + { + "Id": 3, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 4, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 0 + } + ] + }, + { + "Id": 5, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.3, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + } + ] + }, + { + "Id": 6, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 0 + } + ] + }, + { + "Id": 7, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 0 + } + ] + }, + { + "Id": 8, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": 2.8 + }, + "Vertices": [ + { + "X": -11.6, + "Y": -1.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.8 + } + ] + }, + { + "Id": 9, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 7.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 7.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + } + ] + }, + { + "Id": 10, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.2 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + } + ] + }, + { + "Id": 11, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.1999993 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.3, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.8 + } + ] + }, + { + "Id": 12, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.1999993 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 7.3, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.8 + }, + { + "X": -6.2, + "Y": 7.6, + "Z": 2.8 + } + ] + }, + { + "Id": 13, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -6.2 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 5.4, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": 5.4, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 2.5 + } + ] + }, + { + "Id": 14, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 6.2 + }, + "Vertices": [ + { + "X": -6.2, + "Y": -1.6, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 0 + }, + { + "X": -6.2, + "Y": 3.66, + "Z": 2.5 + } + ] + }, + { + "Id": 15, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 6.2 + }, + "Vertices": [ + { + "X": -6.2, + "Y": 5.4, + "Z": 2.5 + }, + { + "X": -6.2, + "Y": 5.4, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 0 + }, + { + "X": -6.2, + "Y": 7.3, + "Z": 2.5 + } + ] + }, + { + "Id": 16, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + } + ] + }, + { + "Id": 17, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": -1.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": -1.6, + "Z": 1 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 1 + }, + { + "X": -6.2, + "Y": -1.6, + "Z": 2.8 + }, + { + "X": -11.6, + "Y": -1.6, + "Z": 2.8 + } + ] + } + ], + "Portals": [ + { + "OtherCellId": 326, + "PolygonId": 16, + "Flags": 1 + }, + { + "OtherCellId": 325, + "PolygonId": 15, + "Flags": 1 + }, + { + "OtherCellId": 324, + "PolygonId": 14, + "Flags": 1 + }, + { + "OtherCellId": 322, + "PolygonId": 17, + "Flags": 1 + } + ], + "VisibleCellIds": [ + 2847146303, + 2847146304, + 2847146305, + 2847146306, + 2847146308, + 2847146309, + 2847146310, + 2847146311, + 2847146312, + 2847146313, + 2847146314, + 2847146315, + 2847146316, + 2847146317, + 2847146318, + 2847146319, + 2847146320 + ] +} \ No newline at end of file diff --git a/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40146.json b/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40146.json new file mode 100644 index 0000000..4c5fc30 --- /dev/null +++ b/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40146.json @@ -0,0 +1,424 @@ +{ + "CellId": 2847146310, + "WorldTransform": { + "M11": -1, + "M12": 8.74228E-08, + "M13": 0, + "M14": 0, + "M21": -8.74228E-08, + "M22": -1, + "M23": 0, + "M24": 0, + "M31": 0, + "M32": 0, + "M33": 1, + "M34": 0, + "M41": 130.5, + "M42": 11.5, + "M43": 94, + "M44": 1 + }, + "InverseWorldTransform": { + "M11": -1, + "M12": -8.74228E-08, + "M13": 0, + "M14": -0, + "M21": 8.74228E-08, + "M22": -1, + "M23": 0, + "M24": 0, + "M31": 0, + "M32": 0, + "M33": 1, + "M34": -0, + "M41": 130.5, + "M42": 11.500011, + "M43": -94, + "M44": 1 + }, + "ResolvedPolygons": [ + { + "Id": 0, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 7.6 + }, + "Vertices": [ + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + } + ] + }, + { + "Id": 1, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + } + ] + }, + { + "Id": 2, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -10 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 3, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -2.8 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + } + ] + } + ], + "PortalPolygons": [ + { + "Id": 0, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 7.6 + }, + "Vertices": [ + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + } + ] + }, + { + "Id": 1, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + } + ] + }, + { + "Id": 2, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -2.8 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 3, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": -1, + "Y": 0, + "Z": 0 + }, + "D": -10 + }, + "Vertices": [ + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 4, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -10, + "Y": 7.6, + "Z": 0 + }, + { + "X": -10, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": 0 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": 0 + } + ] + }, + { + "Id": 5, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 0.2 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + } + ] + } + ], + "Portals": [ + { + "OtherCellId": 323, + "PolygonId": 4, + "Flags": 3 + }, + { + "OtherCellId": 327, + "PolygonId": 5, + "Flags": 3 + } + ], + "VisibleCellIds": [ + 2847146303, + 2847146304, + 2847146305, + 2847146306, + 2847146307, + 2847146308, + 2847146309, + 2847146311, + 2847146312, + 2847146313, + 2847146314, + 2847146315, + 2847146316, + 2847146317, + 2847146318, + 2847146319, + 2847146320 + ] +} \ No newline at end of file diff --git a/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40147.json b/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40147.json new file mode 100644 index 0000000..eedd9fc --- /dev/null +++ b/tests/AcDream.Core.Tests/Fixtures/issue98/0xA9B40147.json @@ -0,0 +1,2674 @@ +{ + "CellId": 2847146311, + "WorldTransform": { + "M11": -1, + "M12": 8.74228E-08, + "M13": 0, + "M14": 0, + "M21": -8.74228E-08, + "M22": -1, + "M23": 0, + "M24": 0, + "M31": 0, + "M32": 0, + "M33": 1, + "M34": 0, + "M41": 130.5, + "M42": 11.5, + "M43": 94, + "M44": 1 + }, + "InverseWorldTransform": { + "M11": -1, + "M12": -8.74228E-08, + "M13": 0, + "M14": -0, + "M21": 8.74228E-08, + "M22": -1, + "M23": 0, + "M24": 0, + "M31": 0, + "M32": 0, + "M33": 1, + "M34": -0, + "M41": 130.5, + "M42": 11.500011, + "M43": -94, + "M44": 1 + }, + "ResolvedPolygons": [ + { + "Id": 0, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 1, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 2, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 3, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 4, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 5, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 3.125, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -0.2 + } + ] + }, + { + "Id": 6, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -0.2 + } + ] + }, + { + "Id": 7, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 8, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 9, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 9.375, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 10, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 11, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 12, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 13, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 14, + "NumPoints": 5, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -4.625, + "Y": 12.5, + "Z": -1.625 + }, + { + "X": -4.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -4.79478, + "Y": 12.5, + "Z": -1.77388 + } + ] + }, + { + "Id": 15, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -3, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 12.5, + "Z": -1.625 + } + ] + }, + { + "Id": 16, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -3, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -8, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -3, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 17, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 0, + "Z": -0.2 + }, + { + "X": -8, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -3, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -3, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 18, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -8, + "Y": 0, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 19, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 0, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 20, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 21, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -6.25, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 22, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 23, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 24, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 25, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 26, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 27, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 28, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 29, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 30, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 31, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 32, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + } + ] + }, + { + "Id": 33, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 0, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -4.79478, + "Y": 0, + "Z": -1.77388 + } + ] + }, + { + "Id": 34, + "NumPoints": 5, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -4.79478, + "Y": 0, + "Z": -1.77388 + }, + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 0, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 0, + "Z": -1.625 + } + ] + }, + { + "Id": 35, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -4.625, + "Y": 0, + "Z": -1.625 + }, + { + "X": -4.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -3, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 36, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -4.79478, + "Y": 12.5, + "Z": -1.77388 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -3.05 + } + ] + } + ], + "PortalPolygons": [ + { + "Id": 0, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -3, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -8, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -3, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 1, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 0, + "Z": -0.2 + }, + { + "X": -8, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -3, + "Y": 6.25, + "Z": -0.2 + }, + { + "X": -3, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 2, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 3, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 4, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 5, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 6, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 7, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 8, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 9, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 3.05 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 6.25, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 10, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -0.2 + } + ] + }, + { + "Id": 11, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 9.375, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 12, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 13, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 9.375, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 9.375, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 14, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 15, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 3.125, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -0.2 + } + ] + }, + { + "Id": 16, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 6.25, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 6.25, + "Z": -3.05 + } + ] + }, + { + "Id": 17, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 1, + "Y": 0, + "Z": 0 + }, + "D": 11.6 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 3.125, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 3.125, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 18, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 19, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 20, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 21, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 12.5, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 22, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -6.25, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 23, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 24, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -11.6, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 25, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -9.625, + "Y": 0, + "Z": -3.05 + }, + { + "X": -9.625, + "Y": 0, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 0, + "Z": -3.05 + } + ] + }, + { + "Id": 26, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -8, + "Y": 0, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 27, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + } + ] + }, + { + "Id": 28, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 12.5, + "Z": -0.2 + } + ] + }, + { + "Id": 29, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -8, + "Y": 0, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 30, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": -1 + }, + "D": -0.2 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 0, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + } + ] + }, + { + "Id": 31, + "NumPoints": 5, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -4.625, + "Y": 12.5, + "Z": -1.625 + }, + { + "X": -4.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -4.79478, + "Y": 12.5, + "Z": -1.77388 + } + ] + }, + { + "Id": 32, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -3, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 12.5, + "Z": -1.625 + } + ] + }, + { + "Id": 33, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": -1, + "Z": 0 + }, + "D": 12.5 + }, + "Vertices": [ + { + "X": -4.79478, + "Y": 12.5, + "Z": -1.77388 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -3.05 + } + ] + }, + { + "Id": 34, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -4.625, + "Y": 0, + "Z": -1.625 + }, + { + "X": -4.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -3, + "Y": 0, + "Z": -0.2 + } + ] + }, + { + "Id": 35, + "NumPoints": 5, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -4.79478, + "Y": 0, + "Z": -1.77388 + }, + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -6.25, + "Y": 0, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 0, + "Z": -0.2 + }, + { + "X": -4.625, + "Y": 0, + "Z": -1.625 + } + ] + }, + { + "Id": 36, + "NumPoints": 3, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 1, + "Z": 0 + }, + "D": -0 + }, + "Vertices": [ + { + "X": -6.25, + "Y": 0, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 0, + "Z": -1.55 + }, + { + "X": -4.79478, + "Y": 0, + "Z": -1.77388 + } + ] + }, + { + "Id": 37, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0, + "Y": 0, + "Z": 1 + }, + "D": 0.2 + }, + "Vertices": [ + { + "X": -11.6, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 2.8, + "Z": -0.2 + }, + { + "X": -10, + "Y": 7.6, + "Z": -0.2 + }, + { + "X": -11.6, + "Y": 7.6, + "Z": -0.2 + } + ] + }, + { + "Id": 38, + "NumPoints": 4, + "SidesType": 0, + "Plane": { + "Normal": { + "X": 0.6593231, + "Y": 0, + "Z": -0.75185966 + }, + "D": 1.8275975 + }, + "Vertices": [ + { + "X": -3, + "Y": 12.5, + "Z": -0.2 + }, + { + "X": -3, + "Y": 0, + "Z": -0.2 + }, + { + "X": -6.25, + "Y": 0, + "Z": -3.05 + }, + { + "X": -6.25, + "Y": 12.5, + "Z": -3.05 + } + ] + } + ], + "Portals": [ + { + "OtherCellId": 326, + "PolygonId": 37, + "Flags": 1 + }, + { + "OtherCellId": 328, + "PolygonId": 38, + "Flags": 1 + } + ], + "VisibleCellIds": [ + 2847146303, + 2847146304, + 2847146305, + 2847146306, + 2847146307, + 2847146308, + 2847146309, + 2847146310, + 2847146312, + 2847146313, + 2847146314, + 2847146315, + 2847146316, + 2847146317, + 2847146318, + 2847146319, + 2847146320 + ] +} \ No newline at end of file