Compare commits
27 commits
feature/ui
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
313500b988 | ||
|
|
8f01775a92 | ||
|
|
295f79011f | ||
|
|
949d73dfdd | ||
|
|
e8ab954876 | ||
|
|
ff1c0e345e | ||
|
|
91c66a0b98 | ||
|
|
330365e59b | ||
|
|
9589703f7c | ||
|
|
b04a953190 | ||
|
|
48db200d3e | ||
|
|
92e2c688c1 | ||
|
|
f42e133bae | ||
|
|
bb9eb71770 | ||
|
|
8345903ce7 | ||
|
|
902181500a | ||
|
|
bcbd416960 | ||
|
|
5e32c771fc | ||
|
|
961e8c6ff6 | ||
|
|
075735f426 | ||
|
|
fa2feee780 | ||
|
|
3f0d0f3f33 | ||
|
|
ab9a798343 | ||
|
|
491a47d3f1 | ||
|
|
a76c3ecae7 | ||
|
|
fcc7f16f1c | ||
|
|
e3a6b2ad21 |
1351 changed files with 29619 additions and 40391 deletions
5
.gitmodules
vendored
Normal file
5
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[submodule "core"]
|
||||
path = core
|
||||
url = ../scopedvr-map-core.git
|
||||
branch = main
|
||||
ignore = untracked
|
||||
|
|
@ -3,3 +3,14 @@ Quelle: Godot Asset Store (https://store.godotengine.org/asset/michel-savadim/mo
|
|||
Lizenz: CC0 1.0 Universal (siehe addons/modular_builder/LICENSE) — gilt für Code,
|
||||
Icons und Dokumentation. Die Demo-Szene/Demo-Texturen des Originals sind NICHT
|
||||
CC0 und wurden beim Import ENTFERNT (addons/modular_builder/demo fehlt bewusst).
|
||||
|
||||
Abgleich 25.10.2026: Der Code der Runtime-Geometrie (modular_piece_geometry.gd,
|
||||
modular_building_detail.gd, modular_piece.gd, modular_pillar_support.gd,
|
||||
modular_roof_support.gd, modular_vertex_simplifier.gd, modular_mesh_baker.gd) ist
|
||||
zeichengleich zu ModularBuilder-English-0.2.0-2.zip (Ordner addons/modular_builder_en,
|
||||
dort CC0 1.0, Copyright (c) 2026 Michel Savadim). Der Bauen-Modus des Map-Editors
|
||||
(src/editor/bau_katalog.gd) nutzt diese Geometrie nur zum Erzeugen der Bauteile
|
||||
(Wandhöhe 3 m, 2-m-Raster); die Teile selbst sind normale Bibliotheks-Objekte
|
||||
(docs/bauen.md). Nicht übernommen: Demo-Szene, Demo-Texturen (nicht CC0).
|
||||
Hinweis der Vorlage: Teile des Codes wurden mit KI-Unterstützung (OpenAI) erstellt —
|
||||
vom Autor geprüft; CC0 gilt unverändert.
|
||||
|
|
|
|||
50
README.md
50
README.md
|
|
@ -48,14 +48,14 @@ UX-Fundament auf dem App-Skelett (t_5badf371), nach dem Chef-Grundsatz gebaut:
|
|||
Neue-Map-Dialog mit 4 Pflicht-Spawns pro Team, Orbit-Viewport mit Gitter/
|
||||
Boden/Wetter-Stimmung — siehe Commit 84bc081 und `svmap_io.gd`.)*
|
||||
|
||||
- **Undo/Redo (`src/editor/action_history.gd`):** zentrale ActionHistory über
|
||||
- **Undo/Redo (`core/editor/action_history.gd`):** zentrale ActionHistory über
|
||||
die svmap-Ober-Blöcke (`objects`/`terrain`/`spawn_zones` — tiefe Kopien vor
|
||||
und nach jeder Änderung, merge_tags gegen Mausrad-Tick-Fluten, Max-Stufe 100).
|
||||
Strg+Z / Strg+Y UND große Buttons „↩ Rückgängig / ↪ Wiederholen" oben.
|
||||
Spätere Werkzeuge melden sich mit `snapshot(keys)` vor und
|
||||
`commit(desc, before, after)` nach der Änderung an — Terrain-Strokes und
|
||||
Spawn-Zonen landen damit automatisch in derselben History.
|
||||
- **Objekt-Platzierung mit Ghost-Preview (`src/editor/interaction.gd`):**
|
||||
- **Objekt-Platzierung mit Ghost-Preview (`core/editor/interaction.gd`):**
|
||||
Bibliothek links (deutsche Namen + Poly-Zahl), Klick startet den
|
||||
Platzier-Modus — eine transparente Vorschau schwebt am Cursor auf dem Boden
|
||||
(Höhe kommt aus dem Terrain), Klick setzt, ESC bricht ab (Rechte
|
||||
|
|
@ -94,16 +94,26 @@ synchron ziehen (IDs sind der Vertrag, Entscheidung 20).
|
|||
|
||||
Auf dem Terrain-Werkzeug (t_9aba04f1) aufgebaut, nach dem Chef-Grundsatz:
|
||||
|
||||
- **Bibliothek-Browser mit Gruppen (`src/editor/library_browser.gd`):** Die
|
||||
11 etablierten Objekte aus `library/objects.json`, sortiert in deutsche
|
||||
Klapp-Gruppen (Kisten & Barrieren / Bauwerke / Natur + automatisch
|
||||
„Sonstiges" für neue, noch ungruppierte IDs). Jeder Button zeigt ein
|
||||
128-px-Thumbnail (`library/thumbs/*.png` — einmalig mit
|
||||
`xvfb-run -a godot4 --rendering-driver opengl3 --path . --script
|
||||
res://tools/gen_thumbs.gd` gerendert und committed; fehlt ein PNG, fällt
|
||||
der Button sauber aufs Text-Layout zurück). Deutsche Namen wohnen jetzt in
|
||||
`LibraryBrowser` (ohne UI → headless testbar).
|
||||
- **Snap to Ground (`src/editor/object_ops.gd`):** Ein Klick auf
|
||||
- **Bibliothek-Browser mit Gruppen (`core/editor/library_browser.gd`):**
|
||||
*(Stand 25.10.2026, Military-Pack-Umstellung)* Die Bibliothek ist das
|
||||
komplette Military-Desert-Pack (418 Modelle + 5 Kombis = 423 Objekte aus
|
||||
`library/objects.json`), sortiert in 19 deutsche Kategorien aus dem
|
||||
Manifest-Feld `kategorie` (Panzer, Radfahrzeuge, Flugzeuge & Hubschrauber,
|
||||
Geschütze & Stellungen, Fahrzeugteile, Gebäude & Hangars, Zelte, Türme &
|
||||
Masten, Mauern & Wände, Sperren & Zäune, Kisten/Fässer/Container, Technik &
|
||||
Funk, Ausrüstung, Training, Bäume, Pflanzen/Kakteen/Gras, Felsen & Steine,
|
||||
Boden/Straßen/Dünen, Boden-Decals). Fahrzeuge sind **fertig zusammengebaut**
|
||||
(Panzer mit Turm und Kanone, Hummer mit Rädern, Hubschrauber mit Rotoren);
|
||||
die Einzelteile stehen zusätzlich unter „Fahrzeugteile“. Unbekannte
|
||||
Kategorien (z. B. spätere Bauteil-Module) bekommen automatisch eine eigene
|
||||
Gruppe. Jeder Button zeigt ein 128-px-Thumbnail (`core/thumbs/*.png` —
|
||||
erzeugt von `tools/sync_objects.sh`/`tools/gen_thumbs.gd` und committed;
|
||||
fehlt ein PNG, fällt der Button aufs Text-Layout zurück). Deutsche Namen
|
||||
kommen aus `name_de` im Manifest (ohne UI → headless testbar). Kollision:
|
||||
Gebäude/Zelte/Türme exakter Trimesh (betretbar), Fahrzeuge Verbund aus
|
||||
Boxen, Bäume nur Stamm, Dekor ohne Kollision — erzeugt vom Match-Server-Repo
|
||||
(`tools/pack_registry.py`).
|
||||
- **Snap to Ground (`core/editor/object_ops.gd`):** Ein Klick auf
|
||||
„⚡ Alles auf den Boden setzen" holt ALLE schwebenden Objekte auf die
|
||||
Terrain-Höhe (z. B. nach dem Terrain-Formen) — EIN Undo-Eintrag für die
|
||||
ganze Aktion. Objekte, die schon auf dem Boden stehen, bleiben unangetastet.
|
||||
|
|
@ -128,14 +138,14 @@ Export-Workflow.
|
|||
|
||||
Auf der Objekt-Bibliothek (t_3a998ae4) aufgebaut, nach dem Chef-Grundsatz:
|
||||
|
||||
- **Spawn-Zonen malen (`src/editor/spawn_tool.gd`):** Werkzeug
|
||||
- **Spawn-Zonen malen (`core/editor/spawn_tool.gd`):** Werkzeug
|
||||
„🚩 Spawn-Zonen malen“ — Team Blau 🔵 / Team Rot 🔴 (TDM-Konvention:
|
||||
IDs A…/B…, mapformat § spawn_zones), Klick setzt eine farbige flache
|
||||
Kreis-Zone auf dem Terrain (Vorschau-Kreis folgt der Maus), Radius
|
||||
2–30 m per Regler. Zone anklicken → auswählen + ziehen (Terrain-Höhe
|
||||
bleibt), Entf löscht, Strg+Z nimmt JEDE Operation zurück (jede Zone =
|
||||
EIN History-Eintrag, Radius-Slider-Ticks sind merge-gekoppelt).
|
||||
- **Live-Validierung (`src/editor/spawn_ops.gd`):** Block „Spawn-Check“
|
||||
- **Live-Validierung (`core/editor/spawn_ops.gd`):** Block „Spawn-Check“
|
||||
rechts bleibt STÄNDIG sichtbar und spiegelt exakt die Loader-Regeln
|
||||
(V11: ≥ 4 Spawn-Punkte pro Team · V7: Objekt-IDs in der Bibliothek) —
|
||||
z. B. „✅ Spawns Team Blau: 4 · ❌ Spawns Team Rot: 2 (mindestens 4
|
||||
|
|
@ -228,13 +238,13 @@ Undo für alles):
|
|||
Mehrfachauswahl + Gruppieren + Gruppen-Verschieben, auf dem UX-Fundament
|
||||
(t_40d855d0) aufgebaut, nach dem Chef-Grundsatz:
|
||||
|
||||
- **Mehrfachauswahl (`src/editor/interaction.gd`):** Umschalt+Klick fügt
|
||||
- **Mehrfachauswahl (`core/editor/interaction.gd`):** Umschalt+Klick fügt
|
||||
ein Objekt hinzu/entfernt es, Rahmen-Aufziehen (Rubberband) über leeren
|
||||
Boden wählt ALLE Objekte im Rahmen (Umschalt + Rahmen = zusätzliche zur
|
||||
Auswahl). Loser Klick auf leere Fläche hebt die Auswahl auf. ALLE
|
||||
markierten Objekte färben sich orange, das Auswahl-Panel rechts listet
|
||||
sie namentlich auf (ab 9: „… und N weitere“). Projektions-Mathe liegt
|
||||
in `src/editor/selection_math.gd` (headless getestet).
|
||||
in `core/editor/selection_math.gd` (headless getestet).
|
||||
- **Gruppieren:** Buttons „🔗 Gruppieren / ⛓ Gruppe lösen“ im Auswahl-Panel
|
||||
+ Kürzel Strg+G / Strg+Umschalt+G. Eine Gruppe braucht ≥ 2 Objekte.
|
||||
Gruppen-Mitglieder ziehen und drehen GEMEINSAM — ein Griff an ein
|
||||
|
|
@ -277,7 +287,7 @@ auch ungespeicherte! — sofort als Spiel in einem EIGENEN Fenster. Der Editor
|
|||
bleibt offen. Im Spiel: WASD laufen, Maus umsehen, Shift sprinten, Leertaste
|
||||
springen, ESC beendet das Test-Fenster sauber (kein Prozess-Kill nötig).
|
||||
|
||||
- **Temp-Export (`src/editor/test_run.gd`):** Die Map wird nach
|
||||
- **Temp-Export (`core/editor/test_run.gd`):** Die Map wird nach
|
||||
`user://testrun/<name>.svmap` exportiert (deterministischer Name aus dem
|
||||
Map-Namen, erneuter Testlauf überschreibt) — über dieselbe
|
||||
`SvmapIO.save_to_file`-Validierung wie das echte Speichern. Ist die Map
|
||||
|
|
@ -307,7 +317,7 @@ Tastenkürzel-Karte 1 von 3 (Sly-Freigabe 16.10., finale Belegung).
|
|||
Shortcut-Karten — Karten 2/3 ergänzen dort.
|
||||
|
||||
- **Konventionen (alle Karten):** Tastaturcode-basiert — InputMap-Actions mit
|
||||
PHYSISCHEN `KEY_*`-Konstanten (`src/editor/shortcut_keys.gd`, registriert in
|
||||
PHYSISCHEN `KEY_*`-Konstanten (`core/editor/shortcut_keys.gd`, registriert in
|
||||
`main._ready`, idempotent). Physische Codes = deutsche (QWERTZ) und
|
||||
Windows-Layouts identisch, keine OS-Hardcodes. Jede Objekt-Operation =
|
||||
EIN ActionHistory-Eintrag (Ausnahme: reine Kamera-Aktionen).
|
||||
|
|
@ -317,7 +327,7 @@ Shortcut-Karten — Karten 2/3 ergänzen dort.
|
|||
Orbit bleibt Default —
|
||||
beim Flug-Exit werden Ziel/Winkel/Abstand aus Flugposition/Blickrichtung
|
||||
zurückgerechnet (kein Kamera-Sprung, getestet). Mathe pur in
|
||||
`src/editor/fly_math.gd`, Kamera dünn (`src/viewport/orbit_camera.gd`).
|
||||
`core/editor/fly_math.gd`, Kamera dünn (`core/viewport/orbit_camera.gd`).
|
||||
Konflikt-Auflösung: RMB hat ABSOLUTEN Vorrang für den Flug — in JEDEM
|
||||
Werkzeugzustand (Terrain, Bauen, Spawn, Platzieren; Karte t_2470de89,
|
||||
kein `rmb_filter` mehr), Mausrad im Flug gehört dem Tempo (interaction
|
||||
|
|
@ -327,7 +337,7 @@ Shortcut-Karten — Karten 2/3 ergänzen dort.
|
|||
Flug dreht sich nur die Blickrichtung.
|
||||
- **Esc** = Prioritätskette Werkzeug verlassen → Ghost-Preview abbrechen →
|
||||
Auswahl aufheben, als pure, headless-getestete Funktion
|
||||
(`src/editor/shortcut_policy.gd`).
|
||||
(`core/editor/shortcut_policy.gd`).
|
||||
- **Entf (DELETE)** = Auswahl SOFORT löschen ohne Rückfrage (Sly-Yolo) —
|
||||
wirkt auf Szene-Auswahl UND Objektbaum-Markierung (Baum und Szene sind
|
||||
synchron), Strg+Z deckt es ab. War schon mehrfach-fähig, jetzt
|
||||
|
|
|
|||
|
|
@ -80,6 +80,6 @@ Roh-Modelle und Texturen weiterzugeben. Das heißt konkret:
|
|||
|
||||
---
|
||||
*Technischer Hintergrund: die Modelle werden zur Laufzeit per GLTFDocument
|
||||
aus dem `models/`-Ordner geladen (siehe `src/viewport/glb_mesh_store.gd`,
|
||||
aus dem `models/`-Ordner geladen (siehe `core/viewport/glb_mesh_store.gd`,
|
||||
Quellen-Reihenfolge: Einstellungen → Nachbar-Ordner `../scopedvr-client` →
|
||||
`models/`). Erster Treffer gewinnt.*
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
extends EditorPlugin
|
||||
|
||||
const PIECE_SCRIPT = preload("res://addons/modular_builder/modular_piece.gd")
|
||||
const DETAIL_SCRIPT = preload("res://addons/modular_builder/modular_building_detail.gd")
|
||||
const DETAIL_SCRIPT = preload("res://core/vendor/modular_builder/modular_building_detail.gd")
|
||||
const MESH_BAKER = preload("res://addons/modular_builder/modular_mesh_baker.gd")
|
||||
const TOOL_NONE := ""
|
||||
const TOOL_FOUNDATION := "foundation"
|
||||
|
|
|
|||
|
|
@ -1,284 +0,0 @@
|
|||
@tool
|
||||
class_name ModularBuilderDetail
|
||||
extends Node3D
|
||||
|
||||
enum DetailType { WINDOW, DOOR, HATCH, PILLAR, FENCE, PARAPET }
|
||||
enum DetailMode { OPENING, SEPARATE_OBJECT }
|
||||
enum WindowStyle { SINGLE_PANE, CROSS_PANE }
|
||||
enum DoorStyle { FLAT, PANELED }
|
||||
|
||||
@export var detail_type: DetailType = DetailType.WINDOW:
|
||||
set(value):
|
||||
detail_type = value
|
||||
notify_property_list_changed()
|
||||
_rebuild()
|
||||
@export var detail_mode: DetailMode = DetailMode.OPENING:
|
||||
set(value):
|
||||
detail_mode = value
|
||||
notify_property_list_changed()
|
||||
_rebuild()
|
||||
@export var center_align: bool = false:
|
||||
set(value):
|
||||
center_align = value
|
||||
_apply_pillar_alignment()
|
||||
notify_property_list_changed()
|
||||
@export_storage var pillar_direction: Vector3 = Vector3.UP
|
||||
@export_storage var pillar_alignment_basis: Basis = Basis.IDENTITY
|
||||
@export var window_style: WindowStyle = WindowStyle.SINGLE_PANE:
|
||||
set(value):
|
||||
window_style = value
|
||||
_rebuild()
|
||||
@export var door_style: DoorStyle = DoorStyle.FLAT:
|
||||
set(value):
|
||||
door_style = value
|
||||
_rebuild()
|
||||
@export_range(0.01, 5.0, 0.001, "suffix:m") var width: float = 1.0:
|
||||
set(value):
|
||||
width = value
|
||||
_rebuild()
|
||||
@export_range(0.2, 5.0, 0.001, "suffix:m") var height: float = 1.0:
|
||||
set(value):
|
||||
height = value
|
||||
_rebuild()
|
||||
@export_range(0.02, 0.5, 0.001, "suffix:m") var frame_depth: float = 0.08:
|
||||
set(value):
|
||||
frame_depth = value
|
||||
_rebuild()
|
||||
@export_range(0.1, 8.0, 0.001, "suffix:m") var fence_height: float = 0.7:
|
||||
set(value):
|
||||
fence_height = value
|
||||
_rebuild()
|
||||
@export_range(0, 100, 1, "suffix: posts") var fence_divisions: int = 1:
|
||||
set(value):
|
||||
fence_divisions = value
|
||||
_rebuild()
|
||||
@export_storage var path_points: PackedVector3Array = PackedVector3Array()
|
||||
@export_range(0.01, 0.5, 0.001, "suffix:m") var frame_width: float = 0.08:
|
||||
set(value):
|
||||
frame_width = value
|
||||
_rebuild()
|
||||
@export var follow_host_thickness: bool = true:
|
||||
set(value):
|
||||
follow_host_thickness = value
|
||||
_rebuild()
|
||||
@export var surface_material: Material:
|
||||
set(value):
|
||||
surface_material = value
|
||||
_rebuild()
|
||||
@export var frame_material: Material:
|
||||
set(value):
|
||||
frame_material = value
|
||||
_rebuild()
|
||||
@export var panel_material: Material:
|
||||
set(value):
|
||||
panel_material = value
|
||||
_rebuild()
|
||||
|
||||
func _validate_property(property: Dictionary) -> void:
|
||||
var separate_object := detail_mode == DetailMode.SEPARATE_OBJECT
|
||||
var is_window := detail_type == DetailType.WINDOW
|
||||
var is_door := detail_type == DetailType.DOOR
|
||||
var has_frame_and_panel := separate_object and detail_type != DetailType.PILLAR and detail_type != DetailType.FENCE and detail_type != DetailType.PARAPET
|
||||
var show_property := true
|
||||
match StringName(property.name):
|
||||
&"detail_mode":
|
||||
show_property = detail_type != DetailType.PILLAR and detail_type != DetailType.FENCE and detail_type != DetailType.PARAPET
|
||||
&"center_align":
|
||||
show_property = detail_type == DetailType.PILLAR
|
||||
&"fence_height", &"fence_divisions":
|
||||
show_property = detail_type == DetailType.FENCE or detail_type == DetailType.PARAPET
|
||||
&"path_points":
|
||||
show_property = false
|
||||
&"width":
|
||||
show_property = detail_type != DetailType.FENCE and detail_type != DetailType.PARAPET
|
||||
if detail_type == DetailType.PILLAR:
|
||||
property.hint = PROPERTY_HINT_RANGE
|
||||
property.hint_string = "0.01,5.0,0.001,suffix:m"
|
||||
&"height":
|
||||
show_property = detail_type != DetailType.FENCE and detail_type != DetailType.PARAPET
|
||||
&"window_style":
|
||||
show_property = is_window and separate_object
|
||||
&"door_style":
|
||||
show_property = is_door and separate_object
|
||||
&"frame_width", &"frame_material", &"panel_material":
|
||||
show_property = has_frame_and_panel
|
||||
&"follow_host_thickness":
|
||||
show_property = has_frame_and_panel
|
||||
&"frame_depth":
|
||||
show_property = has_frame_and_panel and not follow_host_thickness
|
||||
&"surface_material":
|
||||
show_property = separate_object
|
||||
if not show_property:
|
||||
property.usage = PROPERTY_USAGE_NO_EDITOR
|
||||
|
||||
func _ready() -> void:
|
||||
set_notify_transform(true)
|
||||
_rebuild()
|
||||
|
||||
func _notification(what: int) -> void:
|
||||
if what == NOTIFICATION_TRANSFORM_CHANGED and is_inside_tree():
|
||||
var host := get_parent()
|
||||
if host != null and host.has_method("_rebuild"):
|
||||
host.call("_rebuild")
|
||||
|
||||
func _on_host_thickness_changed() -> void:
|
||||
_rebuild(false)
|
||||
|
||||
func _apply_pillar_alignment() -> void:
|
||||
if detail_type != DetailType.PILLAR:
|
||||
return
|
||||
var direction := pillar_direction.normalized()
|
||||
if direction.is_zero_approx():
|
||||
direction = Vector3.UP
|
||||
if center_align:
|
||||
var object_axes := pillar_alignment_basis.orthonormalized()
|
||||
var best_axis := direction
|
||||
var best_dot := -1.0
|
||||
for axis in [object_axes.x, object_axes.y, object_axes.z]:
|
||||
var normalized_axis: Vector3 = axis.normalized()
|
||||
var alignment := absf(direction.dot(normalized_axis))
|
||||
if alignment > best_dot:
|
||||
best_dot = alignment
|
||||
best_axis = normalized_axis if direction.dot(normalized_axis) >= 0.0 else -normalized_axis
|
||||
direction = best_axis
|
||||
var reference_axis := Vector3.FORWARD if absf(direction.dot(Vector3.UP)) > 0.99 else Vector3.UP
|
||||
var x_axis := reference_axis.cross(direction).normalized()
|
||||
var z_axis := x_axis.cross(direction).normalized()
|
||||
transform.basis = Basis(x_axis, direction, z_axis).orthonormalized()
|
||||
if center_align and pillar_direction.length() > 0.0:
|
||||
height = pillar_direction.length()
|
||||
|
||||
func _rebuild(notify_host: bool = true) -> void:
|
||||
if not is_inside_tree():
|
||||
return
|
||||
for child in get_children():
|
||||
if child.name == "DetailGeometry":
|
||||
remove_child(child)
|
||||
child.queue_free()
|
||||
var host := get_parent()
|
||||
if notify_host and host != null and host.has_method("_rebuild"):
|
||||
host.call("_rebuild")
|
||||
if detail_mode == DetailMode.OPENING and detail_type != DetailType.FENCE and detail_type != DetailType.PARAPET:
|
||||
return
|
||||
var holder := Node3D.new()
|
||||
holder.name = "DetailGeometry"
|
||||
add_child(holder)
|
||||
var scene_root: Node = null
|
||||
if Engine.is_editor_hint() and not has_meta("modular_builder_preview"):
|
||||
scene_root = get_tree().edited_scene_root
|
||||
if scene_root:
|
||||
holder.owner = scene_root
|
||||
var effective_depth := _effective_frame_depth()
|
||||
var frame := minf(maxf(frame_width, 0.01), minf(width, height) * 0.45)
|
||||
if detail_type == DetailType.FENCE or detail_type == DetailType.PARAPET:
|
||||
_build_fence_geometry(holder)
|
||||
return
|
||||
if detail_type == DetailType.PILLAR:
|
||||
_add_box(holder, "PillarBody", Vector3(width, height, width), Vector3.ZERO, surface_material)
|
||||
return
|
||||
if detail_type == DetailType.HATCH:
|
||||
_add_box(holder, "LeftFrame", Vector3(frame, effective_depth, height), Vector3(-width * 0.5 + frame * 0.5, 0.0, 0.0), _frame_material())
|
||||
_add_box(holder, "RightFrame", Vector3(frame, effective_depth, height), Vector3(width * 0.5 - frame * 0.5, 0.0, 0.0), _frame_material())
|
||||
_add_box(holder, "NearFrame", Vector3(width, effective_depth, frame), Vector3(0.0, 0.0, -height * 0.5 + frame * 0.5), _frame_material())
|
||||
_add_box(holder, "FarFrame", Vector3(width, effective_depth, frame), Vector3(0.0, 0.0, height * 0.5 - frame * 0.5), _frame_material())
|
||||
_add_box(holder, "HatchPanel", Vector3(width - frame * 2.0, effective_depth * 0.35, height - frame * 2.0), Vector3(0.0, effective_depth * 0.4, 0.0), _panel_material())
|
||||
return
|
||||
_add_box(holder, "LeftFrame", Vector3(frame, height, effective_depth), Vector3(-width * 0.5 + frame * 0.5, 0.0, 0.0), _frame_material())
|
||||
_add_box(holder, "RightFrame", Vector3(frame, height, effective_depth), Vector3(width * 0.5 - frame * 0.5, 0.0, 0.0), _frame_material())
|
||||
_add_box(holder, "TopFrame", Vector3(width, frame, effective_depth), Vector3(0.0, height * 0.5 - frame * 0.5, 0.0), _frame_material())
|
||||
if detail_type != DetailType.DOOR:
|
||||
_add_box(holder, "BottomFrame", Vector3(width, frame, effective_depth), Vector3(0.0, -height * 0.5 + frame * 0.5, 0.0), _frame_material())
|
||||
if detail_type == DetailType.WINDOW:
|
||||
_add_box(holder, "WindowPanel", Vector3(maxf(width - frame * 2.0, 0.001), maxf(height - frame * 2.0, 0.001), effective_depth * 0.35), Vector3.ZERO, _panel_material())
|
||||
if window_style == WindowStyle.CROSS_PANE:
|
||||
_add_box(holder, "VerticalMullion", Vector3(frame * 0.55, height - frame * 2.0, effective_depth * 0.4), Vector3.ZERO, _frame_material())
|
||||
_add_box(holder, "HorizontalMullion", Vector3(width - frame * 2.0, frame * 0.55, effective_depth * 0.4), Vector3.ZERO, _frame_material())
|
||||
elif detail_type == DetailType.DOOR:
|
||||
_add_box(holder, "DoorPanel", Vector3(width - frame * 2.0, height - frame, effective_depth * 0.45), Vector3(0.0, -frame * 0.5, 0.0), _panel_material())
|
||||
if door_style == DoorStyle.PANELED:
|
||||
var inset_depth := maxf(effective_depth * 0.04, 0.005)
|
||||
var panel_width := (width - frame * 2.0) * 0.82
|
||||
var panel_height := maxf((height - frame) * 0.28, 0.05)
|
||||
for panel_index in range(2):
|
||||
var panel_y := -frame * 0.5 + (panel_index - 0.5) * (panel_height + frame * 0.25)
|
||||
_add_box(holder, "DoorInset_%d" % panel_index, Vector3(panel_width, panel_height, inset_depth), Vector3(0.0, panel_y, effective_depth * 0.24), _frame_material())
|
||||
|
||||
func _effective_frame_depth() -> float:
|
||||
if follow_host_thickness:
|
||||
var host := get_parent()
|
||||
if host != null:
|
||||
var host_thickness = host.get("thickness")
|
||||
if host_thickness is float or host_thickness is int:
|
||||
var depth := float(host_thickness)
|
||||
if detail_type == DetailType.WINDOW or detail_type == DetailType.DOOR:
|
||||
depth *= 1.25
|
||||
return maxf(depth, 0.02)
|
||||
return frame_depth
|
||||
|
||||
func _build_fence_geometry(holder: Node3D) -> void:
|
||||
if path_points.size() < 2 or fence_height <= 0.0:
|
||||
return
|
||||
var start := path_points[0]
|
||||
var finish := path_points[1]
|
||||
var path := finish - start
|
||||
var path_length := path.length()
|
||||
if path_length < 0.05:
|
||||
return
|
||||
var path_axis := path / path_length
|
||||
var up_axis := Vector3.UP - path_axis * path_axis.dot(Vector3.UP)
|
||||
if up_axis.length_squared() < 0.001:
|
||||
up_axis = Vector3.FORWARD - path_axis * path_axis.dot(Vector3.FORWARD)
|
||||
up_axis = up_axis.normalized()
|
||||
var side_axis := path_axis.cross(up_axis).normalized()
|
||||
var post_width := 0.16 if detail_type == DetailType.PARAPET else 0.08
|
||||
var post_count := fence_divisions + 2
|
||||
var posts: Array[Vector3] = []
|
||||
for i in range(post_count):
|
||||
var base := start.lerp(finish, float(i) / float(post_count - 1))
|
||||
posts.append(base)
|
||||
_add_oriented_box(holder, "Post_%d" % i, base + up_axis * fence_height * 0.5, path_axis, up_axis, side_axis, Vector3(post_width, fence_height, post_width))
|
||||
for i in range(posts.size() - 1):
|
||||
var a := posts[i]
|
||||
var b := posts[i + 1]
|
||||
var segment := b - a
|
||||
var segment_length := segment.length()
|
||||
if detail_type == DetailType.PARAPET:
|
||||
_add_oriented_box(holder, "Rail_%d" % i, (a + b) * 0.5 + up_axis * fence_height * 0.78, segment.normalized(), up_axis, side_axis, Vector3(segment_length, post_width * 0.8, post_width * 0.8))
|
||||
else:
|
||||
for height_ratio in [0.28, 0.78]:
|
||||
_add_oriented_box(holder, "Rail_%d_%d" % [i, int(height_ratio * 100.0)], (a + b) * 0.5 + up_axis * fence_height * height_ratio, segment.normalized(), up_axis, side_axis, Vector3(segment_length, post_width, post_width))
|
||||
|
||||
func _add_oriented_box(holder: Node3D, node_name: String, center: Vector3, axis_x: Vector3, axis_y: Vector3, axis_z: Vector3, dimensions: Vector3) -> void:
|
||||
var mesh_instance := MeshInstance3D.new()
|
||||
mesh_instance.name = node_name
|
||||
var box := BoxMesh.new()
|
||||
box.size = dimensions
|
||||
mesh_instance.mesh = box
|
||||
var basis := Basis(axis_x.normalized(), axis_y.normalized(), axis_z.normalized()).orthonormalized()
|
||||
mesh_instance.transform = Transform3D(basis, center)
|
||||
mesh_instance.material_override = surface_material
|
||||
holder.add_child(mesh_instance)
|
||||
if Engine.is_editor_hint() and not has_meta("modular_builder_preview"):
|
||||
var scene_root := get_tree().edited_scene_root
|
||||
if scene_root:
|
||||
mesh_instance.owner = scene_root
|
||||
|
||||
func _frame_material() -> Material:
|
||||
return frame_material if frame_material != null else surface_material
|
||||
|
||||
func _panel_material() -> Material:
|
||||
return panel_material if panel_material != null else surface_material
|
||||
|
||||
func _add_box(holder: Node3D, node_name: String, box_size: Vector3, box_position: Vector3, material: Material = null) -> void:
|
||||
var mesh_instance := MeshInstance3D.new()
|
||||
mesh_instance.name = node_name
|
||||
var box := BoxMesh.new()
|
||||
box.size = box_size
|
||||
mesh_instance.mesh = box
|
||||
mesh_instance.position = box_position
|
||||
mesh_instance.material_override = material if material != null else surface_material
|
||||
holder.add_child(mesh_instance)
|
||||
if Engine.is_editor_hint() and not has_meta("modular_builder_preview"):
|
||||
var scene_root := get_tree().edited_scene_root
|
||||
if scene_root:
|
||||
mesh_instance.owner = scene_root
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://dsttda167kuhi
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
@tool
|
||||
class_name ModularBuilderPiece
|
||||
extends "res://addons/modular_builder/modular_piece_geometry.gd"
|
||||
extends "res://core/vendor/modular_builder/modular_piece_geometry.gd"
|
||||
|
||||
func _ready() -> void:
|
||||
_rebuild()
|
||||
|
|
|
|||
|
|
@ -1,748 +0,0 @@
|
|||
@tool
|
||||
class_name ModularBuilderPieceGeometry
|
||||
extends Node3D
|
||||
|
||||
const DETAIL_SCRIPT_PATH := "res://addons/modular_builder/modular_building_detail.gd"
|
||||
const DETAIL_TYPE_HATCH := 2
|
||||
const DETAIL_TYPE_PILLAR := 3
|
||||
|
||||
enum PieceType { FOUNDATION_SQUARE, FOUNDATION_TRIANGLE, FLOOR, WALL, BUILDING, GABLE_WALL, ROOF_GABLE, ROOF_SHED, GABLE_WALL_RIGHT, ROOF_PYRAMID, STAIRS, FENCE }
|
||||
|
||||
@export var piece_type: PieceType = PieceType.FOUNDATION_SQUARE:
|
||||
set(value):
|
||||
piece_type = value
|
||||
notify_property_list_changed()
|
||||
_rebuild()
|
||||
@export_range(0.5, 8.0, 0.001, "suffix:m") var unit_size: float = 2.0:
|
||||
set(value):
|
||||
unit_size = value
|
||||
_rebuild()
|
||||
@export_range(0.01, 1.0, 0.001, "suffix:m") var thickness: float = 0.2:
|
||||
set(value):
|
||||
thickness = value
|
||||
_rebuild()
|
||||
for child in get_children():
|
||||
if child.has_method("_on_host_thickness_changed"):
|
||||
child.call("_on_host_thickness_changed")
|
||||
@export_range(0.1, 8.0, 0.001, "suffix:m") var rise: float = 1.0:
|
||||
set(value):
|
||||
rise = value
|
||||
_rebuild()
|
||||
@export_range(0.01, 32.0, 0.001, "suffix:m") var roof_width: float = 2.0:
|
||||
set(value):
|
||||
roof_width = value
|
||||
_rebuild()
|
||||
@export_range(1, 100, 1, "suffix: steps") var stair_count: int = 10:
|
||||
set(value):
|
||||
stair_count = value
|
||||
_rebuild()
|
||||
@export_range(0.01, 8.0, 0.001, "suffix:m") var stair_width: float = 1.0:
|
||||
set(value):
|
||||
stair_width = value
|
||||
_rebuild()
|
||||
@export_range(0, 100, 1, "suffix: posts") var fence_divisions: int = 1:
|
||||
set(value):
|
||||
fence_divisions = value
|
||||
_rebuild()
|
||||
@export_range(0.1, 8.0, 0.001, "suffix:m") var fence_height: float = 1.0:
|
||||
set(value):
|
||||
fence_height = value
|
||||
_rebuild()
|
||||
@export var symmetric_dimensions: bool = true:
|
||||
set(value):
|
||||
if symmetric_dimensions == value:
|
||||
return
|
||||
if not value:
|
||||
_capture_mesh_dimensions()
|
||||
symmetric_dimensions = value
|
||||
notify_property_list_changed()
|
||||
if value:
|
||||
scale = Vector3.ONE
|
||||
else:
|
||||
_apply_dimension_scale()
|
||||
@export_range(0.01, 100.0, 0.001, "suffix:m") var dimension_width: float = 2.0:
|
||||
set(value):
|
||||
dimension_width = value
|
||||
_apply_dimension_scale()
|
||||
@export_range(0.01, 100.0, 0.001, "suffix:m") var dimension_height: float = 2.0:
|
||||
set(value):
|
||||
dimension_height = value
|
||||
_apply_dimension_scale()
|
||||
@export_range(0.01, 100.0, 0.001, "suffix:m") var dimension_depth: float = 2.0:
|
||||
set(value):
|
||||
dimension_depth = value
|
||||
_apply_dimension_scale()
|
||||
@export_storage var _dimension_reference: Vector3 = Vector3.ZERO
|
||||
@export var center_align: bool = false:
|
||||
set(value):
|
||||
center_align = value
|
||||
_rebuild()
|
||||
@export var surface_material: Material:
|
||||
set(value):
|
||||
surface_material = value
|
||||
_rebuild()
|
||||
@export var custom_points: PackedVector3Array = PackedVector3Array():
|
||||
set(value):
|
||||
custom_points = value
|
||||
_rebuild()
|
||||
@export var centered_origin: bool = false:
|
||||
set(value):
|
||||
centered_origin = value
|
||||
_rebuild()
|
||||
|
||||
func _rebuild() -> void:
|
||||
pass
|
||||
|
||||
func _capture_mesh_dimensions() -> void:
|
||||
var geometry := get_node_or_null("Geometry") as MeshInstance3D
|
||||
if geometry == null or geometry.mesh == null:
|
||||
return
|
||||
var dimensions := geometry.mesh.get_aabb().size
|
||||
if dimensions.x > 0.001:
|
||||
dimension_width = dimensions.x
|
||||
if dimensions.y > 0.001:
|
||||
dimension_height = dimensions.y
|
||||
if dimensions.z > 0.001:
|
||||
dimension_depth = dimensions.z
|
||||
_dimension_reference = dimensions
|
||||
|
||||
func _apply_dimension_scale() -> void:
|
||||
if symmetric_dimensions or _dimension_reference.x <= 0.001 or _dimension_reference.y <= 0.001 or _dimension_reference.z <= 0.001:
|
||||
return
|
||||
var target := Vector3(dimension_width, dimension_height, dimension_depth)
|
||||
if piece_type == PieceType.FOUNDATION_SQUARE or piece_type == PieceType.FOUNDATION_TRIANGLE or piece_type == PieceType.FLOOR:
|
||||
target.y = _dimension_reference.y
|
||||
if piece_type == PieceType.WALL:
|
||||
target.z = _dimension_reference.z
|
||||
scale = Vector3(target.x / _dimension_reference.x, target.y / _dimension_reference.y, target.z / _dimension_reference.z)
|
||||
|
||||
func _make_mesh() -> ArrayMesh:
|
||||
if piece_type == PieceType.GABLE_WALL and custom_points.size() >= 2:
|
||||
return _make_gable_wall_mesh()
|
||||
if piece_type == PieceType.GABLE_WALL_RIGHT and custom_points.size() >= 2:
|
||||
return _make_right_gable_wall_mesh()
|
||||
if (piece_type == PieceType.ROOF_GABLE or piece_type == PieceType.ROOF_SHED or piece_type == PieceType.ROOF_PYRAMID) and custom_points.size() >= 2:
|
||||
return _make_roof_mesh()
|
||||
if piece_type == PieceType.STAIRS and custom_points.size() >= 2:
|
||||
return _make_stair_mesh()
|
||||
if piece_type == PieceType.FENCE and custom_points.size() >= 2:
|
||||
return _make_fence_mesh()
|
||||
if custom_points.size() >= 2 and piece_type == PieceType.WALL:
|
||||
return _make_custom_wall_mesh()
|
||||
if custom_points.size() >= 3 and piece_type == PieceType.FLOOR:
|
||||
return _make_custom_floor_mesh()
|
||||
if custom_points.size() >= 3 and (piece_type == PieceType.FOUNDATION_SQUARE or piece_type == PieceType.FOUNDATION_TRIANGLE):
|
||||
return _make_custom_foundation_mesh()
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var s := unit_size
|
||||
var polygon: Array[Vector2]
|
||||
match piece_type:
|
||||
PieceType.FOUNDATION_TRIANGLE:
|
||||
polygon = [Vector2(-s * 0.5, -s * 0.5), Vector2(s * 0.5, -s * 0.5), Vector2(-s * 0.5, s * 0.5)]
|
||||
_:
|
||||
polygon = [Vector2(-s * 0.5, -s * 0.5), Vector2(s * 0.5, -s * 0.5), Vector2(s * 0.5, s * 0.5), Vector2(-s * 0.5, s * 0.5)]
|
||||
var y0 := -thickness * 0.5 if centered_origin else 0.0
|
||||
var y1 := thickness * 0.5 if centered_origin else thickness
|
||||
if piece_type == PieceType.WALL:
|
||||
polygon = [Vector2(-s * 0.5, -thickness * 0.5), Vector2(s * 0.5, -thickness * 0.5), Vector2(s * 0.5, thickness * 0.5), Vector2(-s * 0.5, thickness * 0.5)]
|
||||
y0 = -s * 0.5 if centered_origin else 0.0
|
||||
y1 = s * 0.5 if centered_origin else s
|
||||
if piece_type == PieceType.FOUNDATION_SQUARE or piece_type == PieceType.FOUNDATION_TRIANGLE:
|
||||
var hatch_mesh := _make_hatch_surface_mesh(polygon, y1, y0)
|
||||
if hatch_mesh != null:
|
||||
return hatch_mesh
|
||||
for i in range(1, polygon.size() - 1):
|
||||
_add_tri(vertices, normals, Vector3(polygon[0].x, y1, polygon[0].y), Vector3(polygon[i + 1].x, y1, polygon[i + 1].y), Vector3(polygon[i].x, y1, polygon[i].y))
|
||||
_add_tri(vertices, normals, Vector3(polygon[0].x, y0, polygon[0].y), Vector3(polygon[i].x, y0, polygon[i].y), Vector3(polygon[i + 1].x, y0, polygon[i + 1].y))
|
||||
for i in range(polygon.size()):
|
||||
var j := (i + 1) % polygon.size()
|
||||
var a := polygon[i]
|
||||
var b := polygon[j]
|
||||
_add_tri(vertices, normals, Vector3(a.x, y0, a.y), Vector3(b.x, y0, b.y), Vector3(b.x, y1, b.y))
|
||||
_add_tri(vertices, normals, Vector3(a.x, y0, a.y), Vector3(b.x, y1, b.y), Vector3(a.x, y1, a.y))
|
||||
var arrays: Array = []
|
||||
arrays.resize(Mesh.ARRAY_MAX)
|
||||
arrays[Mesh.ARRAY_VERTEX] = vertices
|
||||
arrays[Mesh.ARRAY_NORMAL] = normals
|
||||
var result := ArrayMesh.new()
|
||||
result.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
|
||||
return result
|
||||
|
||||
func _make_gable_wall_mesh() -> ArrayMesh:
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var base_points := _get_centered_gable_base() if center_align else PackedVector3Array([custom_points[0], custom_points[1]])
|
||||
var a: Vector3 = base_points[0]
|
||||
var b: Vector3 = base_points[1]
|
||||
var direction := (b - a).normalized()
|
||||
var side := Vector3(-direction.z, 0.0, direction.x).normalized() * thickness * 0.5
|
||||
var peak := (a + b) * 0.5 + Vector3.UP * rise
|
||||
var front_a := a + side
|
||||
var front_b := b + side
|
||||
var front_peak := peak + side
|
||||
var back_a := a - side
|
||||
var back_b := b - side
|
||||
var back_peak := peak - side
|
||||
_add_tri(vertices, normals, front_a, front_b, front_peak)
|
||||
_add_tri(vertices, normals, back_b, back_a, back_peak)
|
||||
_add_quad(vertices, normals, front_a, back_a, back_b, front_b)
|
||||
_add_quad(vertices, normals, front_b, back_b, back_peak, front_peak)
|
||||
_add_quad(vertices, normals, front_peak, back_peak, back_a, front_a)
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _make_right_gable_wall_mesh() -> ArrayMesh:
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var base_points := _get_centered_gable_base() if center_align else PackedVector3Array([custom_points[0], custom_points[1]])
|
||||
var a: Vector3 = base_points[0]
|
||||
var b: Vector3 = base_points[1]
|
||||
var direction := (b - a).normalized()
|
||||
var side := Vector3(-direction.z, 0.0, direction.x).normalized() * thickness * 0.5
|
||||
var peak := b + Vector3.UP * rise
|
||||
var front_a := a + side
|
||||
var front_b := b + side
|
||||
var front_peak := peak + side
|
||||
var back_a := a - side
|
||||
var back_b := b - side
|
||||
var back_peak := peak - side
|
||||
_add_tri(vertices, normals, front_a, front_b, front_peak)
|
||||
_add_tri(vertices, normals, back_peak, back_b, back_a)
|
||||
_add_quad(vertices, normals, front_a, back_a, back_b, front_b)
|
||||
_add_quad(vertices, normals, front_b, back_b, back_peak, front_peak)
|
||||
_add_quad(vertices, normals, front_peak, back_peak, back_a, front_a)
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _make_roof_mesh() -> ArrayMesh:
|
||||
if piece_type == PieceType.ROOF_SHED and custom_points.size() == 2:
|
||||
return _make_shed_roof_mesh()
|
||||
if custom_points.size() >= 4:
|
||||
return _make_oriented_roof_mesh()
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var first: Vector3 = custom_points[0]
|
||||
var second: Vector3 = custom_points[1]
|
||||
var min_x := minf(first.x, second.x)
|
||||
var max_x := maxf(first.x, second.x)
|
||||
var min_z := minf(first.z, second.z)
|
||||
var max_z := maxf(first.z, second.z)
|
||||
var span_x := max_x - min_x
|
||||
var span_z := max_z - min_z
|
||||
if span_x < 0.02 or span_z < 0.02:
|
||||
return _array_mesh(vertices, normals)
|
||||
var panels: Array = []
|
||||
if piece_type == PieceType.ROOF_GABLE:
|
||||
if span_x <= span_z:
|
||||
var ridge_x := (min_x + max_x) * 0.5
|
||||
panels.append([Vector3(min_x, 0.0, min_z), Vector3(min_x, 0.0, max_z), Vector3(ridge_x, rise, max_z), Vector3(ridge_x, rise, min_z)])
|
||||
panels.append([Vector3(ridge_x, rise, min_z), Vector3(ridge_x, rise, max_z), Vector3(max_x, 0.0, max_z), Vector3(max_x, 0.0, min_z)])
|
||||
else:
|
||||
var ridge_z := (min_z + max_z) * 0.5
|
||||
panels.append([Vector3(min_x, 0.0, min_z), Vector3(max_x, 0.0, min_z), Vector3(max_x, rise, ridge_z), Vector3(min_x, rise, ridge_z)])
|
||||
panels.append([Vector3(min_x, rise, ridge_z), Vector3(max_x, rise, ridge_z), Vector3(max_x, 0.0, max_z), Vector3(min_x, 0.0, max_z)])
|
||||
else:
|
||||
if span_x <= span_z:
|
||||
var low_x := first.x
|
||||
var high_x := second.x
|
||||
panels.append([Vector3(low_x, 0.0, min_z), Vector3(low_x, 0.0, max_z), Vector3(high_x, rise, max_z), Vector3(high_x, rise, min_z)])
|
||||
else:
|
||||
var low_z := first.z
|
||||
var high_z := second.z
|
||||
panels.append([Vector3(min_x, 0.0, low_z), Vector3(max_x, 0.0, low_z), Vector3(max_x, rise, high_z), Vector3(min_x, rise, high_z)])
|
||||
for panel in panels:
|
||||
_append_solid_panel(vertices, normals, panel)
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _make_shed_roof_mesh() -> ArrayMesh:
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var low: Vector3 = custom_points[0]
|
||||
var high: Vector3 = custom_points[1]
|
||||
var slope := high - low
|
||||
var horizontal := Vector3(slope.x, 0.0, slope.z)
|
||||
if horizontal.length_squared() < 0.0001 or roof_width <= 0.0:
|
||||
return _array_mesh(vertices, normals)
|
||||
var across := Vector3(horizontal.z, 0.0, -horizontal.x).normalized() * roof_width * 0.5
|
||||
var panel := [low - across, low + across, high + across, high - across]
|
||||
_append_solid_panel(vertices, normals, panel)
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _make_oriented_roof_mesh() -> ArrayMesh:
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var p0: Vector3 = custom_points[0]
|
||||
var p1: Vector3 = custom_points[1]
|
||||
var p2: Vector3 = custom_points[2]
|
||||
var p3: Vector3 = custom_points[3]
|
||||
var edge_01 := Vector2(p1.x - p0.x, p1.z - p0.z).length()
|
||||
var edge_12 := Vector2(p2.x - p1.x, p2.z - p1.z).length()
|
||||
var panels: Array = []
|
||||
if piece_type == PieceType.ROOF_GABLE:
|
||||
if edge_01 <= edge_12:
|
||||
var ridge_01 := (p0 + p1) * 0.5 + Vector3.UP * rise
|
||||
var ridge_23 := (p2 + p3) * 0.5 + Vector3.UP * rise
|
||||
panels.append([p0, p3, ridge_23, ridge_01])
|
||||
panels.append([ridge_01, ridge_23, p2, p1])
|
||||
else:
|
||||
var ridge_12 := (p1 + p2) * 0.5 + Vector3.UP * rise
|
||||
var ridge_30 := (p3 + p0) * 0.5 + Vector3.UP * rise
|
||||
panels.append([p0, p1, ridge_12, ridge_30])
|
||||
panels.append([ridge_30, ridge_12, p2, p3])
|
||||
elif piece_type == PieceType.ROOF_PYRAMID:
|
||||
var peak := (p0 + p1 + p2 + p3) * 0.25 + Vector3.UP * rise
|
||||
panels.append([p0, p1, peak])
|
||||
panels.append([p1, p2, peak])
|
||||
panels.append([p2, p3, peak])
|
||||
panels.append([p3, p0, peak])
|
||||
else:
|
||||
# The four points define the low and high edges. Keep their centers
|
||||
# fixed when adjusting both edge widths in the Inspector.
|
||||
var base_width := Vector2(p1.x - p0.x, p1.z - p0.z).length()
|
||||
if base_width > 0.001 and roof_width > 0.0:
|
||||
var direction := Vector3(p1.x - p0.x, 0.0, p1.z - p0.z).normalized()
|
||||
var low_center := (p0 + p1) * 0.5
|
||||
var high_center := (p2 + p3) * 0.5
|
||||
var half_width := roof_width * 0.5
|
||||
panels.append([
|
||||
low_center - direction * half_width,
|
||||
low_center + direction * half_width,
|
||||
high_center + direction * half_width,
|
||||
high_center - direction * half_width,
|
||||
])
|
||||
else:
|
||||
panels.append([p0, p1, p2, p3])
|
||||
for panel in panels:
|
||||
_append_solid_panel(vertices, normals, panel)
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _make_stair_mesh() -> ArrayMesh:
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var start: Vector3 = custom_points[0]
|
||||
var finish: Vector3 = custom_points[1]
|
||||
var horizontal := Vector3(finish.x - start.x, 0.0, finish.z - start.z)
|
||||
var run := horizontal.length()
|
||||
var rise_amount := finish.y - start.y
|
||||
if run < 0.05 or rise_amount <= 0.05 or stair_count < 1 or stair_width <= 0.0:
|
||||
return _array_mesh(vertices, normals)
|
||||
var forward := horizontal / run
|
||||
var width_axis := Vector3(-forward.z, 0.0, forward.x) * stair_width * 0.5
|
||||
var profile := PackedVector2Array([Vector2(0.0, 0.0), Vector2(run, 0.0), Vector2(run, rise_amount)])
|
||||
for step_index in range(stair_count - 1, -1, -1):
|
||||
var tread_start := run * float(step_index) / stair_count
|
||||
var tread_end := run * float(step_index + 1) / stair_count
|
||||
var tread_height := rise_amount * float(step_index + 1) / stair_count
|
||||
profile.append(Vector2(tread_start, tread_height))
|
||||
if step_index > 0:
|
||||
profile.append(Vector2(tread_start, rise_amount * float(step_index) / stair_count))
|
||||
var triangulation := Geometry2D.triangulate_polygon(profile)
|
||||
for side_sign in [-1.0, 1.0]:
|
||||
for triangle_index in range(0, triangulation.size(), 3):
|
||||
var a := profile[triangulation[triangle_index]]
|
||||
var b := profile[triangulation[triangle_index + 1]]
|
||||
var c := profile[triangulation[triangle_index + 2]]
|
||||
var point_a: Vector3 = start + forward * a.x + Vector3.UP * a.y + width_axis * side_sign
|
||||
var point_b: Vector3 = start + forward * b.x + Vector3.UP * b.y + width_axis * side_sign
|
||||
var point_c: Vector3 = start + forward * c.x + Vector3.UP * c.y + width_axis * side_sign
|
||||
if side_sign > 0.0:
|
||||
_add_tri(vertices, normals, point_a, point_b, point_c)
|
||||
else:
|
||||
_add_tri(vertices, normals, point_c, point_b, point_a)
|
||||
for profile_index in range(profile.size()):
|
||||
var next_index := (profile_index + 1) % profile.size()
|
||||
var a := profile[profile_index]
|
||||
var b := profile[next_index]
|
||||
var point_a_left := start + forward * a.x + Vector3.UP * a.y - width_axis
|
||||
var point_b_left := start + forward * b.x + Vector3.UP * b.y - width_axis
|
||||
var point_b_right := start + forward * b.x + Vector3.UP * b.y + width_axis
|
||||
var point_a_right := start + forward * a.x + Vector3.UP * a.y + width_axis
|
||||
_add_quad(vertices, normals, point_a_left, point_b_left, point_b_right, point_a_right)
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _make_fence_mesh() -> ArrayMesh:
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var start: Vector3 = custom_points[0]
|
||||
var finish: Vector3 = custom_points[1]
|
||||
var path := finish - start
|
||||
var path_length := path.length()
|
||||
if path_length < 0.05 or fence_height <= 0.0:
|
||||
return _array_mesh(vertices, normals)
|
||||
var path_axis := path / path_length
|
||||
var post_count := fence_divisions + 2
|
||||
var post_positions: Array[Vector3] = []
|
||||
for post_index in range(post_count):
|
||||
var base_position := start.lerp(finish, float(post_index) / float(post_count - 1))
|
||||
post_positions.append(base_position)
|
||||
var side_axis := path_axis.cross(Vector3.UP).normalized()
|
||||
if side_axis.length_squared() < 0.001:
|
||||
side_axis = Vector3.FORWARD
|
||||
_append_oriented_box(vertices, normals, base_position + Vector3.UP * fence_height * 0.5, path_axis, Vector3.UP, side_axis, Vector3(thickness, fence_height, thickness))
|
||||
for section_index in range(post_positions.size() - 1):
|
||||
var section_start := post_positions[section_index]
|
||||
var section_end := post_positions[section_index + 1]
|
||||
var section_axis := (section_end - section_start).normalized()
|
||||
var rail_up := Vector3.UP - section_axis * section_axis.dot(Vector3.UP)
|
||||
if rail_up.length_squared() < 0.001:
|
||||
rail_up = Vector3.FORWARD - section_axis * section_axis.dot(Vector3.FORWARD)
|
||||
rail_up = rail_up.normalized()
|
||||
var rail_side := section_axis.cross(rail_up).normalized()
|
||||
var section_length := section_start.distance_to(section_end)
|
||||
for height_ratio in [0.28, 0.78]:
|
||||
var rail_center: Vector3 = (section_start + section_end) * 0.5 + Vector3.UP * fence_height * height_ratio
|
||||
_append_oriented_box(vertices, normals, rail_center, section_axis, rail_up, rail_side, Vector3(section_length, thickness, thickness))
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _append_oriented_box(vertices: PackedVector3Array, normals: PackedVector3Array, center: Vector3, axis_x: Vector3, axis_y: Vector3, axis_z: Vector3, dimensions: Vector3) -> void:
|
||||
var x := axis_x.normalized() * dimensions.x * 0.5
|
||||
var y := axis_y.normalized() * dimensions.y * 0.5
|
||||
var z := axis_z.normalized() * dimensions.z * 0.5
|
||||
var nnn := center - x - y - z
|
||||
var pnn := center + x - y - z
|
||||
var ppn := center + x + y - z
|
||||
var npn := center - x + y - z
|
||||
var nnp := center - x - y + z
|
||||
var pnp := center + x - y + z
|
||||
var ppp := center + x + y + z
|
||||
var npp := center - x + y + z
|
||||
_add_quad(vertices, normals, nnp, pnp, ppp, npp)
|
||||
_add_quad(vertices, normals, pnn, nnn, npn, ppn)
|
||||
_add_quad(vertices, normals, npp, ppp, ppn, npn)
|
||||
_add_quad(vertices, normals, nnn, pnn, pnp, nnp)
|
||||
_add_quad(vertices, normals, nnn, nnp, npp, npn)
|
||||
_add_quad(vertices, normals, pnp, pnn, ppn, ppp)
|
||||
|
||||
func _get_centered_gable_base() -> PackedVector3Array:
|
||||
var selected_a := to_global(custom_points[0])
|
||||
var selected_b := to_global(custom_points[1])
|
||||
var search_root: Node = get_parent()
|
||||
while search_root != null and not search_root is ModularBuilderPieceGeometry:
|
||||
search_root = search_root.get_parent()
|
||||
if search_root == null:
|
||||
return PackedVector3Array([custom_points[0], custom_points[1]])
|
||||
var walls: Array[ModularBuilderPieceGeometry] = []
|
||||
_collect_centering_walls(search_root, walls)
|
||||
var centered_a := selected_a
|
||||
var centered_b := selected_b
|
||||
var nearest_a := INF
|
||||
var nearest_b := INF
|
||||
for wall in walls:
|
||||
if wall.custom_points.size() < 2:
|
||||
continue
|
||||
var wall_a := wall.to_global(wall.custom_points[0] + Vector3.UP * wall.unit_size)
|
||||
var wall_b := wall.to_global(wall.custom_points[1] + Vector3.UP * wall.unit_size)
|
||||
var tolerance: float = wall.thickness + 0.04
|
||||
for endpoint in [wall_a, wall_b]:
|
||||
var distance_a := selected_a.distance_to(endpoint)
|
||||
if distance_a < nearest_a and distance_a <= tolerance:
|
||||
nearest_a = distance_a
|
||||
centered_a = endpoint
|
||||
var distance_b := selected_b.distance_to(endpoint)
|
||||
if distance_b < nearest_b and distance_b <= tolerance:
|
||||
nearest_b = distance_b
|
||||
centered_b = endpoint
|
||||
if nearest_a < INF and nearest_b < INF and centered_a.distance_to(centered_b) >= 0.02:
|
||||
return PackedVector3Array([to_local(centered_a), to_local(centered_b)])
|
||||
return PackedVector3Array([custom_points[0], custom_points[1]])
|
||||
|
||||
func _collect_centering_walls(node: Node, walls: Array[ModularBuilderPieceGeometry]) -> void:
|
||||
if node is ModularBuilderPieceGeometry and node.piece_type == PieceType.WALL:
|
||||
walls.append(node)
|
||||
for child in node.get_children():
|
||||
_collect_centering_walls(child, walls)
|
||||
|
||||
func _append_solid_panel(vertices: PackedVector3Array, normals: PackedVector3Array, panel: Array) -> void:
|
||||
if panel.size() < 3:
|
||||
return
|
||||
var p0: Vector3 = panel[0]
|
||||
var p1: Vector3 = panel[1]
|
||||
var p2: Vector3 = panel[2]
|
||||
var normal: Vector3 = (p1 - p0).cross(p2 - p0).normalized()
|
||||
if normal.is_zero_approx():
|
||||
return
|
||||
var half_depth: Vector3 = normal * thickness * 0.5
|
||||
var front: Array[Vector3] = []
|
||||
var back: Array[Vector3] = []
|
||||
for point in panel:
|
||||
front.append(point + half_depth)
|
||||
back.append(point - half_depth)
|
||||
for i in range(1, panel.size() - 1):
|
||||
_add_tri(vertices, normals, front[0], front[i], front[i + 1])
|
||||
_add_tri(vertices, normals, back[i + 1], back[i], back[0])
|
||||
for i in range(panel.size()):
|
||||
var next := (i + 1) % panel.size()
|
||||
_add_quad(vertices, normals, front[i], back[i], back[next], front[next])
|
||||
|
||||
func _make_custom_wall_mesh() -> ArrayMesh:
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var wall_points: PackedVector3Array = _get_centered_wall_points() if center_align else custom_points
|
||||
var a: Vector3 = wall_points[0]
|
||||
var b: Vector3 = wall_points[1]
|
||||
var direction := (b - a).normalized()
|
||||
var length := a.distance_to(b)
|
||||
var side := Vector3(-direction.z, 0.0, direction.x).normalized() * thickness * 0.5
|
||||
var height := Vector3.UP * unit_size
|
||||
var openings: Array[PackedVector2Array] = []
|
||||
for child in get_children():
|
||||
if _is_detail_node(child) and int(child.get("detail_type")) != DETAIL_TYPE_HATCH and int(child.get("detail_type")) != DETAIL_TYPE_PILLAR:
|
||||
var detail := child as Node3D
|
||||
var center := Vector2((detail.position - a).dot(direction), detail.position.y - a.y)
|
||||
var axis_x := Vector2(detail.transform.basis.x.dot(direction), detail.transform.basis.x.y).normalized()
|
||||
var axis_y := Vector2(detail.transform.basis.y.dot(direction), detail.transform.basis.y.y).normalized()
|
||||
var opening := PackedVector2Array([
|
||||
center - axis_x * float(detail.get("width")) * 0.5 - axis_y * float(detail.get("height")) * 0.5,
|
||||
center + axis_x * float(detail.get("width")) * 0.5 - axis_y * float(detail.get("height")) * 0.5,
|
||||
center + axis_x * float(detail.get("width")) * 0.5 + axis_y * float(detail.get("height")) * 0.5,
|
||||
center - axis_x * float(detail.get("width")) * 0.5 + axis_y * float(detail.get("height")) * 0.5
|
||||
])
|
||||
var wall_rect := PackedVector2Array([Vector2(0.0, 0.0), Vector2(length, 0.0), Vector2(length, unit_size), Vector2(0.0, unit_size)])
|
||||
for clipped_opening in Geometry2D.intersect_polygons(opening, wall_rect):
|
||||
if clipped_opening.size() >= 3:
|
||||
openings.append(clipped_opening)
|
||||
var xs: Array[float] = [0.0, length]
|
||||
var ys: Array[float] = [0.0, unit_size]
|
||||
for opening in openings:
|
||||
for point in opening:
|
||||
xs.append(clampf(point.x, 0.0, length))
|
||||
ys.append(clampf(point.y, 0.0, unit_size))
|
||||
xs.sort()
|
||||
ys.sort()
|
||||
for xi in range(xs.size() - 1):
|
||||
for yi in range(ys.size() - 1):
|
||||
var u0: float = xs[xi]
|
||||
var u1: float = xs[xi + 1]
|
||||
var v0: float = ys[yi]
|
||||
var v1: float = ys[yi + 1]
|
||||
var mid := Vector2((u0 + u1) * 0.5, (v0 + v1) * 0.5)
|
||||
var cell := PackedVector2Array([Vector2(u0, v0), Vector2(u1, v0), Vector2(u1, v1), Vector2(u0, v1)])
|
||||
var remaining: Array[PackedVector2Array] = [cell]
|
||||
for opening in openings:
|
||||
var next_remaining: Array[PackedVector2Array] = []
|
||||
for polygon in remaining:
|
||||
for clipped in Geometry2D.clip_polygons(polygon, opening):
|
||||
if clipped.size() >= 3:
|
||||
next_remaining.append(clipped)
|
||||
remaining = next_remaining
|
||||
for polygon in remaining:
|
||||
var indices := Geometry2D.triangulate_polygon(polygon)
|
||||
for ti in range(0, indices.size(), 3):
|
||||
var p0: Vector2 = polygon[indices[ti]]
|
||||
var p1: Vector2 = polygon[indices[ti + 1]]
|
||||
var p2: Vector2 = polygon[indices[ti + 2]]
|
||||
var f0 := a + direction * p0.x + Vector3.UP * p0.y
|
||||
var f1 := a + direction * p1.x + Vector3.UP * p1.y
|
||||
var f2 := a + direction * p2.x + Vector3.UP * p2.y
|
||||
_add_tri(vertices, normals, f0 + side, f1 + side, f2 + side)
|
||||
_add_tri(vertices, normals, f2 - side, f1 - side, f0 - side)
|
||||
# Close the wall body at its ends, top, and base.
|
||||
_add_quad(vertices, normals, a - side, a + side, a + side + height, a - side + height)
|
||||
_add_quad(vertices, normals, b + side, b - side, b - side + height, b + side + height)
|
||||
_add_quad(vertices, normals, a + side + height, b + side + height, b - side + height, a - side + height)
|
||||
_add_quad(vertices, normals, a - side, b - side, b + side, a + side)
|
||||
for opening in openings:
|
||||
for edge_index in range(opening.size()):
|
||||
var p0 := opening[edge_index]
|
||||
var p1 := opening[(edge_index + 1) % opening.size()]
|
||||
var a0 := a + direction * p0.x + Vector3.UP * p0.y
|
||||
var a1 := a + direction * p1.x + Vector3.UP * p1.y
|
||||
_add_quad(vertices, normals, a0 + side, a0 - side, a1 - side, a1 + side)
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _get_centered_wall_points() -> PackedVector3Array:
|
||||
if custom_points.size() < 2:
|
||||
return custom_points
|
||||
var selected_a := to_global(custom_points[0])
|
||||
var selected_b := to_global(custom_points[1])
|
||||
var search_root: Node = get_parent()
|
||||
while search_root != null and not search_root is ModularBuilderPieceGeometry:
|
||||
search_root = search_root.get_parent()
|
||||
if search_root == null:
|
||||
return custom_points
|
||||
var walls: Array[ModularBuilderPieceGeometry] = []
|
||||
_collect_centering_walls(search_root, walls)
|
||||
var centered_a := selected_a
|
||||
var centered_b := selected_b
|
||||
var nearest_a := INF
|
||||
var nearest_b := INF
|
||||
for wall in walls:
|
||||
if wall == self or wall.custom_points.size() < 2:
|
||||
continue
|
||||
var direction := (wall.custom_points[1] - wall.custom_points[0]).normalized()
|
||||
var side := Vector3(-direction.z, 0.0, direction.x).normalized() * wall.thickness * 0.5
|
||||
for endpoint in wall.custom_points:
|
||||
var center := wall.to_global(endpoint + Vector3.UP * wall.unit_size)
|
||||
for surface_corner in [center + side, center - side]:
|
||||
var distance_a := selected_a.distance_to(surface_corner)
|
||||
if distance_a < nearest_a and distance_a <= wall.thickness + 0.04:
|
||||
nearest_a = distance_a
|
||||
centered_a = center
|
||||
var distance_b := selected_b.distance_to(surface_corner)
|
||||
if distance_b < nearest_b and distance_b <= wall.thickness + 0.04:
|
||||
nearest_b = distance_b
|
||||
centered_b = center
|
||||
if nearest_a < INF and nearest_b < INF and centered_a.distance_to(centered_b) >= 0.02:
|
||||
return PackedVector3Array([to_local(centered_a), to_local(centered_b)])
|
||||
return custom_points
|
||||
|
||||
func _make_custom_floor_mesh() -> ArrayMesh:
|
||||
var polygon: Array[Vector2] = []
|
||||
for point in custom_points:
|
||||
polygon.append(Vector2(point.x, point.z))
|
||||
var hatch_mesh := _make_hatch_surface_mesh(polygon, custom_points[0].y, custom_points[0].y - thickness)
|
||||
if hatch_mesh != null:
|
||||
return hatch_mesh
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var points := custom_points
|
||||
var bottom: Array[Vector3] = []
|
||||
for point in points:
|
||||
bottom.append(point - Vector3.UP * thickness)
|
||||
for i in range(1, points.size() - 1):
|
||||
_add_tri(vertices, normals, points[0], points[i + 1], points[i])
|
||||
_add_tri(vertices, normals, bottom[0], bottom[i], bottom[i + 1])
|
||||
for i in range(points.size()):
|
||||
var j := (i + 1) % points.size()
|
||||
_add_quad(vertices, normals, bottom[i], bottom[j], points[j], points[i])
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _make_hatch_surface_mesh(polygon: Array[Vector2], top_y: float, bottom_y: float) -> ArrayMesh:
|
||||
var openings: Array[PackedVector2Array] = []
|
||||
for child in get_children():
|
||||
if _is_detail_node(child) and int(child.get("detail_type")) == DETAIL_TYPE_HATCH:
|
||||
var detail := child as Node3D
|
||||
var center := Vector2(detail.position.x, detail.position.z)
|
||||
var axis_x := Vector2(detail.transform.basis.x.x, detail.transform.basis.x.z).normalized()
|
||||
var axis_y := Vector2(detail.transform.basis.z.x, detail.transform.basis.z.z).normalized()
|
||||
var opening := PackedVector2Array([
|
||||
center - axis_x * float(detail.get("width")) * 0.5 - axis_y * float(detail.get("height")) * 0.5,
|
||||
center + axis_x * float(detail.get("width")) * 0.5 - axis_y * float(detail.get("height")) * 0.5,
|
||||
center + axis_x * float(detail.get("width")) * 0.5 + axis_y * float(detail.get("height")) * 0.5,
|
||||
center - axis_x * float(detail.get("width")) * 0.5 + axis_y * float(detail.get("height")) * 0.5
|
||||
])
|
||||
openings.append(opening)
|
||||
if openings.is_empty() or polygon.size() < 3:
|
||||
return null
|
||||
var min_x := polygon[0].x
|
||||
var max_x := polygon[0].x
|
||||
var min_z := polygon[0].y
|
||||
var max_z := polygon[0].y
|
||||
var xs: Array[float] = []
|
||||
var zs: Array[float] = []
|
||||
for point in polygon:
|
||||
min_x = minf(min_x, point.x)
|
||||
max_x = maxf(max_x, point.x)
|
||||
min_z = minf(min_z, point.y)
|
||||
max_z = maxf(max_z, point.y)
|
||||
xs.append(point.x)
|
||||
zs.append(point.y)
|
||||
for opening in openings:
|
||||
for point in opening:
|
||||
xs.append(clampf(point.x, min_x, max_x))
|
||||
zs.append(clampf(point.y, min_z, max_z))
|
||||
xs.sort()
|
||||
zs.sort()
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
var source_polygon := PackedVector2Array()
|
||||
for point in polygon:
|
||||
source_polygon.append(point)
|
||||
for xi in range(xs.size() - 1):
|
||||
for zi in range(zs.size() - 1):
|
||||
var x0: float = xs[xi]
|
||||
var x1: float = xs[xi + 1]
|
||||
var z0: float = zs[zi]
|
||||
var z1: float = zs[zi + 1]
|
||||
if x1 - x0 < 0.0001 or z1 - z0 < 0.0001:
|
||||
continue
|
||||
var cell := PackedVector2Array([Vector2(x0, z0), Vector2(x1, z0), Vector2(x1, z1), Vector2(x0, z1)])
|
||||
var remaining: Array[PackedVector2Array] = []
|
||||
for clipped_surface in Geometry2D.intersect_polygons(source_polygon, cell):
|
||||
remaining.append(clipped_surface)
|
||||
for opening in openings:
|
||||
var next_remaining: Array[PackedVector2Array] = []
|
||||
for surface_polygon in remaining:
|
||||
for clipped_surface in Geometry2D.clip_polygons(surface_polygon, opening):
|
||||
if clipped_surface.size() >= 3:
|
||||
next_remaining.append(clipped_surface)
|
||||
remaining = next_remaining
|
||||
for clipped_surface in remaining:
|
||||
var triangulated := Geometry2D.triangulate_polygon(clipped_surface)
|
||||
for ti in range(0, triangulated.size(), 3):
|
||||
var a: Vector2 = clipped_surface[triangulated[ti]]
|
||||
var b: Vector2 = clipped_surface[triangulated[ti + 1]]
|
||||
var c: Vector2 = clipped_surface[triangulated[ti + 2]]
|
||||
_add_tri(vertices, normals, Vector3(a.x, top_y, a.y), Vector3(c.x, top_y, c.y), Vector3(b.x, top_y, b.y))
|
||||
_add_tri(vertices, normals, Vector3(a.x, bottom_y, a.y), Vector3(b.x, bottom_y, b.y), Vector3(c.x, bottom_y, c.y))
|
||||
for i in range(polygon.size()):
|
||||
var j := (i + 1) % polygon.size()
|
||||
var a := polygon[i]
|
||||
var b := polygon[j]
|
||||
_add_quad(vertices, normals, Vector3(a.x, bottom_y, a.y), Vector3(b.x, bottom_y, b.y), Vector3(b.x, top_y, b.y), Vector3(a.x, top_y, a.y))
|
||||
for opening in openings:
|
||||
var visible_edges := Geometry2D.intersect_polygons(opening, source_polygon)
|
||||
for visible_opening in visible_edges:
|
||||
for edge_index in range(visible_opening.size()):
|
||||
var p0 := visible_opening[edge_index]
|
||||
var p1 := visible_opening[(edge_index + 1) % visible_opening.size()]
|
||||
_add_quad(vertices, normals, Vector3(p0.x, bottom_y, p0.y), Vector3(p0.x, top_y, p0.y), Vector3(p1.x, top_y, p1.y), Vector3(p1.x, bottom_y, p1.y))
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _is_detail_node(node: Node) -> bool:
|
||||
if not node is Node3D or node.get_script() == null:
|
||||
return false
|
||||
return node.get_script().resource_path == DETAIL_SCRIPT_PATH
|
||||
|
||||
func _make_custom_foundation_mesh() -> ArrayMesh:
|
||||
var polygon: Array[Vector2] = []
|
||||
for point in custom_points:
|
||||
polygon.append(Vector2(point.x, point.z))
|
||||
var bottom_y := -thickness * 0.5 if centered_origin else 0.0
|
||||
var top_y := thickness * 0.5 if centered_origin else thickness
|
||||
var hatch_mesh := _make_hatch_surface_mesh(polygon, top_y, bottom_y)
|
||||
if hatch_mesh != null:
|
||||
return hatch_mesh
|
||||
var vertices := PackedVector3Array()
|
||||
var normals := PackedVector3Array()
|
||||
for i in range(1, custom_points.size() - 1):
|
||||
var a := custom_points[0]
|
||||
var b := custom_points[i]
|
||||
var c := custom_points[i + 1]
|
||||
_add_tri(vertices, normals, Vector3(a.x, top_y, a.z), Vector3(c.x, top_y, c.z), Vector3(b.x, top_y, b.z))
|
||||
_add_tri(vertices, normals, Vector3(a.x, bottom_y, a.z), Vector3(b.x, bottom_y, b.z), Vector3(c.x, bottom_y, c.z))
|
||||
for i in range(custom_points.size()):
|
||||
var j := (i + 1) % custom_points.size()
|
||||
var a := custom_points[i]
|
||||
var b := custom_points[j]
|
||||
_add_quad(vertices, normals, Vector3(a.x, bottom_y, a.z), Vector3(b.x, bottom_y, b.z), Vector3(b.x, top_y, b.z), Vector3(a.x, top_y, a.z))
|
||||
return _array_mesh(vertices, normals)
|
||||
|
||||
func _add_quad(v: PackedVector3Array, n: PackedVector3Array, a: Vector3, b: Vector3, c: Vector3, d: Vector3) -> void:
|
||||
_add_tri(v, n, a, b, c)
|
||||
_add_tri(v, n, a, c, d)
|
||||
|
||||
func _array_mesh(v: PackedVector3Array, n: PackedVector3Array) -> ArrayMesh:
|
||||
var arrays: Array = []
|
||||
arrays.resize(Mesh.ARRAY_MAX)
|
||||
arrays[Mesh.ARRAY_VERTEX] = v
|
||||
arrays[Mesh.ARRAY_NORMAL] = n
|
||||
var result := ArrayMesh.new()
|
||||
result.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arrays)
|
||||
return result
|
||||
|
||||
func _add_tri(v: PackedVector3Array, n: PackedVector3Array, a: Vector3, b: Vector3, c: Vector3) -> void:
|
||||
var normal := (b - a).cross(c - a).normalized()
|
||||
v.append(a)
|
||||
v.append(b)
|
||||
v.append(c)
|
||||
n.append(normal)
|
||||
n.append(normal)
|
||||
n.append(normal)
|
||||
# Also generate reversed faces to show both sides.
|
||||
# This keeps floors and foundations visible from below with any material.
|
||||
v.append(c)
|
||||
v.append(b)
|
||||
v.append(a)
|
||||
n.append(-normal)
|
||||
n.append(-normal)
|
||||
n.append(-normal)
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://dp1333xlylabf
|
||||
|
|
@ -133,8 +133,8 @@ func _export(oid: String, name_roh: String) -> void:
|
|||
if not editor_dir.is_empty():
|
||||
var img := await _thumbnail_bilden(mesh)
|
||||
if img != null:
|
||||
DirAccess.make_dir_recursive_absolute(editor_dir + "/library/thumbs")
|
||||
img.save_png(editor_dir + "/library/thumbs/" + oid + ".png")
|
||||
DirAccess.make_dir_recursive_absolute(editor_dir + "/core/thumbs")
|
||||
img.save_png(editor_dir + "/core/thumbs/" + oid + ".png")
|
||||
|
||||
# 6) Editor-Sync (Registry-Kopie; vorhandene Thumbnails bleiben stehen).
|
||||
var schritt4 := _lauf(objekt_tool, ["editor", oid])
|
||||
|
|
|
|||
1
core
Submodule
1
core
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 5e98535a0afc83af4e4017806686a76af4913afd
|
||||
76
docs/bauen.md
Normal file
76
docs/bauen.md
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
# Bauen — eigene Häuser aus Modulteilen
|
||||
|
||||
Stand 25.10.2026 (Umbau). Vorlage: **Modular Builder 0.2.0** von Michel Savadim,
|
||||
Godot-Erweiterung, Lizenz **CC0 1.0** (Code, Icons, Doku — siehe
|
||||
`addons/modular_builder/LICENSE`). Die Demo-Szene/Demo-Texturen der Vorlage sind
|
||||
nicht CC0 und liegen bewusst nicht im Repo (`ADDON_LIZENZ.txt`).
|
||||
|
||||
## Prinzip
|
||||
|
||||
Ein Bauteil ist ein **ganz normales Bibliotheks-Objekt** (`bau_*`, Kategorie
|
||||
„bauteile“). Gesetzte Teile stehen in `objects`, ein Gebäude ist eine **Gruppe**
|
||||
(`group` + `group_names`). Dadurch gelten ohne Sonderfälle:
|
||||
|
||||
* Undo/Redo, Auswahl, Verschieben, Drehen, Duplizieren, Löschen, Symmetrie
|
||||
* Speichern in der `.svmap` (kein eigener Block mehr, Server-Validierung V1–V17)
|
||||
* **Kollision serverkonsistent**: jedes Teil hat eine Trimesh-Datei
|
||||
(`library/kollisions/bau_*.json`) — Türen, Fenster, Schießscharten sind echte
|
||||
Löcher, die Treppe ist eine Stufenfläche (Stufen 20 cm). Editor-Playtest, Client
|
||||
und Server lesen dieselbe Datei.
|
||||
* Poly-Budget zählt wie bei jedem Objekt (`poly` = Dreiecke des Teils).
|
||||
|
||||
## Teile (Katalog: `core/editor/bau_katalog.gd`)
|
||||
|
||||
| Gruppe | Teile |
|
||||
| --- | --- |
|
||||
| Fundament & Boden | Fundament, Boden/Decke (2 × 2 m, 20 cm) |
|
||||
| Wände (2 m breit, 3 m hoch) | Wand, Wand mit Tür (1,2 × 2,2 m), Wand mit Fenster, Wand mit Schießscharte, Brüstung (1,1 m), Eckpfeiler |
|
||||
| Dach & Giebel (klein 2 m) | Giebelwand, Satteldach, Pyramidendach |
|
||||
| Dach & Giebel (mittel 4 m) | Giebelwand 4 m, Satteldach 4×4, Pyramidendach 4×4 (Spitze 2 m) |
|
||||
| Dach & Giebel (groß 6 m) | Giebelwand 6 m, Satteldach 6×6, Pyramidendach 6×6 (Spitze 3 m) |
|
||||
| Dach aus Einzelteilen (45°) | Dachschräge 2×2 m (2 m hoch), Dachecke außen (Grat), Dachecke innen (Kehle), Dachplateau, Dachstirn — massiv, rundum geschlossen; tiefe Kante/Ecke zeigt Richtung Vorschau, R dreht |
|
||||
| Treppe | Treppe 4 × 2 m, 3 m hoch (15 Stufen) |
|
||||
|
||||
Fertige Pack-Objekte (Container, Hangar-Tore, Betonsperren) stehen NICHT im Bauen-Tab,
|
||||
sondern wie alle Objekte in der Objekt-Bibliothek unten.
|
||||
|
||||
## Snap (`core/editor/build_snap.gd`)
|
||||
|
||||
* **XZ:** Wände auf die nächste Zellkante — und zwar GANZ in die Zelle, in der die
|
||||
Maus ist (Außenseite bündig mit der Kante, kein Überhang, Ecken schließen ohne
|
||||
Lücke). Klick auf eine vorhandene Wand (Seite oder Oberkante) übernimmt deren Lage
|
||||
exakt (ersetzen bzw. stapeln). Böden/Dächer/Fundamente in die Zellmitte, große
|
||||
Dächer (4 m / 6 m) je nach Zellzahl auf Zellecke bzw. Zellmitte, Pfeiler auf die
|
||||
Zellecke, Treppen auf eine 4 × 2-m-Fläche. `R` dreht die Wand um. Zellen sind
|
||||
2 × 2 m, global ab (0, 0).
|
||||
* **Y:** nie die Klickhöhe, sondern eine **Ebene** — Gelände (höchster Punkt unter
|
||||
der Grundfläche) oder Oberkante eines tragenden Teils darunter. **Wände und
|
||||
Pfeiler zählen von der Unterkante einer Decke/eines Fundaments**, die Decke selbst
|
||||
liegt auf der Wandoberkante: jedes Geschoss liegt auf Vielfachen von 3 m, mit oder
|
||||
ohne Decke darunter stehen die oberen Wände gleich hoch.
|
||||
* **Geschoss fest:** Bild↑/Bild↓ (oder Knöpfe im Tab) wählen ein festes Geschoss
|
||||
(Basis = tiefstes Teil in der Nähe, je 3 m). Der Mausstrahl trifft dann die
|
||||
Geschoss-Ebene statt Wand/Boden darunter — Decken und Böden lassen sich mitten im
|
||||
großen Raum setzen. Ganz unten = Automatik.
|
||||
* **Kein Z-Fighting:** Wand-Außenseite steht 1 cm vor der Plattenkante.
|
||||
* **Ersetzen:** gleiche Art auf demselben Platz wird ersetzt (Tür in vorhandene
|
||||
Wand). Dasselbe Teil nochmal wird mit Erklärung abgelehnt.
|
||||
|
||||
## Dateien erzeugen
|
||||
|
||||
Meshes, GLBs, Kollision und Registry-Fragment kommen aus dem Katalog:
|
||||
|
||||
```bash
|
||||
godot --headless --path . --script res://tools/gen_bauteile.gd -- \
|
||||
--client ../scopedvr-client --server ../scopedvr-match-server
|
||||
(cd ../scopedvr-match-server && python3 tools/merge_object_library.py)
|
||||
```
|
||||
|
||||
Danach `library/objects.json` in Client und Editor angleichen (`tools/sync_objects.sh`).
|
||||
`tests/test_bauen.gd` prüft, dass die Registry zum Katalog passt.
|
||||
|
||||
## Alte Maps
|
||||
|
||||
Die frühere Sektion `gebaeude` (Bauen-Modus vom 20.10.) wird beim Öffnen in
|
||||
`bau_*`-Objekte einer Gruppe übernommen (`BauOps.migriere_gebaeude`). Wandhöhe ist
|
||||
jetzt 3 m statt 2 m — alte Häuser bitte kurz prüfen und neu speichern.
|
||||
51
docs/server-sektion.md
Normal file
51
docs/server-sektion.md
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
# Server-Sektion (Tab „Server“)
|
||||
|
||||
Der Editor ist ein Client der Match-Server-Admin-API (`docs/admin-api.md` im
|
||||
Repo scopedvr-match-server). Damit verwaltet jeder seinen eigenen Server – ohne
|
||||
Konsole, ohne Tailscale, auf jedem Betriebssystem.
|
||||
|
||||
## Einrichten
|
||||
1. Auf dem Server in der `server.cfg` `[admin] enabled=true` setzen und starten.
|
||||
Das Token steht danach in der `state_file` des Servers (Standard `admin.cfg`).
|
||||
2. Editor → Tab **Server** → **➕ Neu**: Name, Adresse, Port (Standard 24580), Token.
|
||||
„🔌 Verbindung testen“ prüft Erreichbarkeit und Token.
|
||||
3. **🔌 Verbinden**.
|
||||
|
||||
**Sicher erreichen:** Die Admin-API spricht Klartext-HTTP und hört standardmäßig nur
|
||||
auf localhost. Entweder SSH-Tunnel (`ssh -L 24580:127.0.0.1:24580 benutzer@server`,
|
||||
im Editor dann Adresse `127.0.0.1`) oder ein Reverse-Proxy mit https (Haken
|
||||
„Sichere Verbindung“).
|
||||
|
||||
## Funktionen
|
||||
- Mehrere Server speichern; **Token verschlüsselt** (Schlüssel aus Rechner-ID +
|
||||
Nutzerordner), nie im Klartext in Datei oder Log. Schutz gegen Zufallsleser, nicht
|
||||
gegen Schadsoftware auf deinem Benutzerkonto.
|
||||
- **Übersicht:** Name, Map, Modus, Phase, Spieler/Bots, Laufzeit, öffentlich/privat.
|
||||
- **⬆ Aktuelle Map hochladen:** prüft und signiert die Map im Editor (wie Speichern),
|
||||
lädt sie hoch, der Server prüft noch einmal. Ungültige Maps werden gar nicht erst
|
||||
gesendet; 422-Fehler erscheinen als verständliche Liste mit Hilfetexten.
|
||||
Existiert der Name schon, fragt der Editor, ob ersetzt werden soll. Optional:
|
||||
direkt in die Rotation aufnehmen.
|
||||
- **Einstellungen:** Formular direkt aus der Server-Spec; gesendet werden nur
|
||||
geänderte Werte. Die Antwort zeigt je Wert: sofort / ab nächster Map / nach
|
||||
Neustart. „↩ Zurücksetzen“ verwirft Änderungen.
|
||||
- **Spieler:** Kick, Sperren (10 min … dauerhaft), Sperrliste mit „Aufheben“.
|
||||
- **Match & Maps:** Match neu starten, Map jetzt laden, Rotation per Häkchen,
|
||||
hochgeladene Maps löschen. Alles Zerstörerische fragt vorher nach.
|
||||
- **⏻ Server neu starten:** fragt nach, trennt alle Spieler, zeigt „Server startet neu…“
|
||||
und verbindet sich wieder, sobald der neue Prozess antwortet (bis 120 s). Der Server
|
||||
beendet sich dafür mit Exit-Code 75; neu starten muss ihn Docker (Restart-Policy),
|
||||
systemd oder `tools/start_server.*` (`docs/admin-api.md` im Server-Repo).
|
||||
- **Bot-Anzahl** geht bis 32, die Grenze kommt vom Server. Reicht die Teamgröße nicht
|
||||
(2 × Teamgröße = Platz für Bots), zeigt das Speichern eine Warnung mit der nötigen Größe.
|
||||
- **Server-Log** mit Filter.
|
||||
|
||||
## Code
|
||||
`core/server/` (AdminClient, ServerStore, AdminTexte, MapPush),
|
||||
`core/ui/panels/server_panel.gd`, `SvmapIO.to_signed_text`.
|
||||
|
||||
## Tests
|
||||
`tests/test_server_sektion.gd` (Unit), `tests/run_server_sektion_e2e.sh`
|
||||
(echter Match-Server + echtes Panel: Verbinden, falsches Token, unerreichbar,
|
||||
Einstellungen, Push gültig/doppelt/ersetzen/lokal ungültig/422, Rotation,
|
||||
Map laden/löschen, Restart, Kick, Logs, 20 Bots, Server-Neustart).
|
||||
|
|
@ -5,12 +5,12 @@ of truth** für alle Shortcut-Karten — FINALE Version nach allen drei Karten:
|
|||
Karte 1/3 (t_c46d31c2): Navigation, Auswahl, Löschen · Karte 2/3 (t_55257792):
|
||||
Objektmanipulation + Terrain · Karte 3/3 (t_11b5c25b): Datei & Undo,
|
||||
Werkzeugwechsel, Hilfe, Test. Das Kurzhilfe-Overlay im Editor (Taste **H**)
|
||||
zeigt dieselbe Tabelle (Quelle: `src/ui/help_text.gd`).
|
||||
zeigt dieselbe Tabelle (Quelle: `core/ui/help_text.gd`).
|
||||
|
||||
Konventionen (alle Karten):
|
||||
|
||||
- Tastaturcode-basiert: InputMap-Actions mit physischen `KEY_*`-Konstanten
|
||||
(`src/editor/shortcut_keys.gd`). Die physische Taste liegt unabhängig vom
|
||||
(`core/editor/shortcut_keys.gd`). Die physische Taste liegt unabhängig vom
|
||||
Tastaturlayout gleich — deutsches (QWERTZ) und Windows-Layout verhalten sich
|
||||
identisch, keine OS-Hardcodes (PLAN.md Plattform-Regel).
|
||||
- Jede Objekt-Operation = **EIN** ActionHistory-Eintrag (Strg+Z nimmt die
|
||||
|
|
@ -56,7 +56,7 @@ alle, Strg+G gruppieren / Strg+Umschalt+G lösen.
|
|||
|
||||
| Eingabe | Wirkung |
|
||||
| --- | --- |
|
||||
| **R** | Auswahl 90° drehen (Vierteldrehung; Umschalt+R = −90°). Szene-Objekte drehen um den Auswahl-Mittelpunkt, Bauen-Bauteile um ihren Fußpunkt. Ein Objekt aus einer Gruppe dreht die GANZE Gruppe. Dauerhaft (kein Vorschau-Zustand) |
|
||||
| **R** | Auswahl 90° drehen (Vierteldrehung; Umschalt+R = −90°). Objekte (auch Bauteile) drehen um den Auswahl-Mittelpunkt. Ein Objekt aus einer Gruppe dreht die GANZE Gruppe. Dauerhaft (kein Vorschau-Zustand) |
|
||||
| **Strg+R / Strg+Umschalt+R** | Auswahl um X **kippen** (+15° / −15°) — auch im Platzier-Modus (Ghost kippt mit). Karte t_e166e656 |
|
||||
| **Alt+R / Alt+Umschalt+R** | Auswahl um Z **kippen** (+15° / −15°) — auch im Platzier-Modus. Karte t_e166e656 |
|
||||
| Mausrad (mit Auswahl) | Feindrehen im 15°-Raster (bleibt wie bisher) |
|
||||
|
|
@ -177,9 +177,9 @@ keinen fokussierten Button auslöst.
|
|||
| --- | --- |
|
||||
| **F1** | Werkzeug: Terrain formen |
|
||||
| **F2** | Werkzeug: Objekte platzieren/auswählen (Standard) |
|
||||
| **F3** | Werkzeug: Bauen (Häuser) |
|
||||
| **F3** | Tab „Bauen“ öffnen (Bauteile wählen, dann in die Karte klicken) |
|
||||
| **F4** | Werkzeug: Spawn-Zonen malen |
|
||||
| Esc (im Terrain-/Spawn-/Bauen-Werkzeug) | Werkzeug beenden — zurück zum Objekt-Werkzeug |
|
||||
| Esc (im Terrain-/Spawn-Werkzeug) | Werkzeug beenden — zurück zum Objekt-Werkzeug |
|
||||
| Esc (beim Greifen) | Greifen abbrechen, alte Positionen zurück |
|
||||
| Esc (beim Platzieren) | Ghost-Preview abbrechen |
|
||||
| Esc (Kurzhilfe offen) | Kurzhilfe schließen |
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
{"aabb_max":[0.4,0.25,0.4],"aabb_min":[-0.4,0.0,-0.4],"dreiecke":84,"oid":"apc_cap","quelle_glb":"res://assets/objekte/military_desert/vehicles/apc_cap.glb","vertices":[[-0.2,0.0,-0.35],[0.0,0.08,-0.4],[-0.2,0.08,-0.35],[-0.2,0.0,-0.35],[0.0,0.0,-0.4],[0.0,0.08,-0.4],[0.35,0.0,-0.2],[0.4,0.08,0.0],[0.35,0.08,-0.2],[0.35,0.0,-0.2],[0.4,0.0,0.0],[0.4,0.08,0.0],[0.4,0.0,0.0],[0.35,0.08,0.2],[0.4,0.08,0.0],[0.4,0.0,0.0],[0.35,0.0,0.2],[0.35,0.08,0.2],[0.35,0.0,0.2],[0.2,0.08,0.35],[0.35,0.08,0.2],[0.35,0.0,0.2],[0.2,0.0,0.35],[0.2,0.08,0.35],[0.2,0.0,0.35],[0.0,0.08,0.4],[0.2,0.08,0.35],[0.2,0.0,0.35],[0.0,0.0,0.4],[0.0,0.08,0.4],[0.0,0.0,0.4],[-0.2,0.08,0.35],[0.0,0.08,0.4],[0.0,0.0,0.4],[-0.2,0.0,0.35],[-0.2,0.08,0.35],[-0.2,0.0,0.35],[-0.35,0.08,0.2],[-0.2,0.08,0.35],[-0.2,0.0,0.35],[-0.35,0.0,0.2],[-0.35,0.08,0.2],[-0.35,0.0,0.2],[-0.4,0.08,0.0],[-0.35,0.08,0.2],[-0.35,0.0,0.2],[-0.4,0.0,0.0],[-0.4,0.08,0.0],[-0.4,0.0,0.0],[-0.35,0.08,-0.2],[-0.4,0.08,0.0],[-0.4,0.0,0.0],[-0.35,0.0,-0.2],[-0.35,0.08,-0.2],[-0.35,0.0,-0.2],[-0.2,0.08,-0.35],[-0.35,0.08,-0.2],[-0.35,0.0,-0.2],[-0.2,0.0,-0.35],[-0.2,0.08,-0.35],[0.0,0.0,-0.4],[0.2,0.08,-0.35],[0.0,0.08,-0.4],[0.0,0.0,-0.4],[0.2,0.0,-0.35],[0.2,0.08,-0.35],[0.2,0.0,-0.35],[0.35,0.08,-0.2],[0.2,0.08,-0.35],[0.2,0.0,-0.35],[0.35,0.0,-0.2],[0.35,0.08,-0.2],[0.2,0.08,-0.35],[0.0,0.14,-0.34],[0.0,0.08,-0.4],[0.2,0.08,-0.35],[0.17,0.14,-0.3],[0.0,0.14,-0.34],[0.35,0.08,-0.2],[0.17,0.14,-0.3],[0.2,0.08,-0.35],[0.35,0.08,-0.2],[0.3,0.14,-0.17],[0.17,0.14,-0.3],[0.4,0.08,0.0],[0.3,0.14,-0.17],[0.35,0.08,-0.2],[0.4,0.08,0.0],[0.34,0.14,0.0],[0.3,0.14,-0.17],[0.35,0.08,0.2],[0.34,0.14,0.0],[0.4,0.08,0.0],[0.35,0.08,0.2],[0.3,0.14,0.17],[0.34,0.14,0.0],[0.2,0.08,0.35],[0.3,0.14,0.17],[0.35,0.08,0.2],[0.2,0.08,0.35],[0.17,0.14,0.3],[0.3,0.14,0.17],[0.0,0.08,0.4],[0.17,0.14,0.3],[0.2,0.08,0.35],[0.0,0.08,0.4],[0.0,0.14,0.34],[0.17,0.14,0.3],[-0.2,0.08,0.35],[0.0,0.14,0.34],[0.0,0.08,0.4],[-0.2,0.08,0.35],[-0.17,0.14,0.3],[0.0,0.14,0.34],[-0.35,0.08,0.2],[-0.17,0.14,0.3],[-0.2,0.08,0.35],[-0.35,0.08,0.2],[-0.3,0.14,0.17],[-0.17,0.14,0.3],[-0.4,0.08,0.0],[-0.3,0.14,0.17],[-0.35,0.08,0.2],[-0.4,0.08,0.0],[-0.34,0.14,0.0],[-0.3,0.14,0.17],[-0.35,0.08,-0.2],[-0.34,0.14,0.0],[-0.4,0.08,0.0],[-0.35,0.08,-0.2],[-0.3,0.14,-0.17],[-0.34,0.14,0.0],[-0.2,0.08,-0.35],[-0.3,0.14,-0.17],[-0.35,0.08,-0.2],[-0.2,0.08,-0.35],[-0.17,0.14,-0.3],[-0.3,0.14,-0.17],[0.0,0.08,-0.4],[-0.17,0.14,-0.3],[-0.2,0.08,-0.35],[0.0,0.08,-0.4],[0.0,0.14,-0.34],[-0.17,0.14,-0.3],[0.3,0.14,-0.17],[0.0,0.14,-0.34],[0.17,0.14,-0.3],[0.0,0.14,-0.34],[-0.3,0.14,-0.17],[-0.17,0.14,-0.3],[-0.3,0.14,-0.17],[-0.3,0.14,0.17],[-0.34,0.14,0.0],[-0.3,0.14,0.17],[0.0,0.14,0.34],[-0.17,0.14,0.3],[0.0,0.14,0.34],[0.3,0.14,0.17],[0.17,0.14,0.3],[0.3,0.14,0.17],[0.3,0.14,-0.17],[0.34,0.14,0.0],[0.3,0.14,-0.17],[-0.3,0.14,-0.17],[0.0,0.14,-0.34],[-0.3,0.14,-0.17],[0.0,0.14,0.34],[-0.3,0.14,0.17],[0.0,0.14,0.34],[0.3,0.14,-0.17],[0.3,0.14,0.17],[-0.3,0.14,-0.17],[0.3,0.14,-0.17],[0.0,0.14,0.34],[-0.17,0.02,-0.09],[-0.09,0.25,-0.05],[-0.17,0.25,-0.09],[-0.17,0.02,-0.09],[-0.09,0.02,-0.05],[-0.09,0.25,-0.05],[-0.09,0.02,-0.05],[-0.09,0.25,0.05],[-0.09,0.25,-0.05],[-0.09,0.02,-0.05],[-0.09,0.02,0.05],[-0.09,0.25,0.05],[-0.09,0.02,0.05],[-0.17,0.25,0.09],[-0.09,0.25,0.05],[-0.09,0.02,0.05],[-0.17,0.02,0.09],[-0.17,0.25,0.09],[-0.17,0.02,0.09],[-0.25,0.25,0.05],[-0.17,0.25,0.09],[-0.17,0.02,0.09],[-0.25,0.02,0.05],[-0.25,0.25,0.05],[-0.09,0.25,0.05],[-0.17,0.25,-0.09],[-0.09,0.25,-0.05],[-0.17,0.25,-0.09],[-0.25,0.25,0.05],[-0.25,0.25,-0.05],[-0.25,0.25,0.05],[-0.09,0.25,0.05],[-0.17,0.25,0.09],[-0.17,0.25,-0.09],[-0.09,0.25,0.05],[-0.25,0.25,0.05],[-0.25,0.02,0.05],[-0.25,0.25,-0.05],[-0.25,0.25,0.05],[-0.25,0.02,0.05],[-0.25,0.02,-0.05],[-0.25,0.25,-0.05],[-0.25,0.02,-0.05],[-0.17,0.25,-0.09],[-0.25,0.25,-0.05],[-0.25,0.02,-0.05],[-0.17,0.02,-0.09],[-0.17,0.25,-0.09],[-0.2,0.0,-0.35],[0.2,0.0,-0.35],[0.0,0.0,-0.4],[0.2,0.0,-0.35],[0.4,0.0,0.0],[0.35,0.0,-0.2],[0.4,0.0,0.0],[0.2,0.0,0.35],[0.35,0.0,0.2],[0.2,0.0,0.35],[-0.2,0.0,0.35],[0.0,0.0,0.4],[-0.2,0.0,0.35],[-0.4,0.0,0.0],[-0.35,0.0,0.2],[-0.4,0.0,0.0],[-0.2,0.0,-0.35],[-0.35,0.0,-0.2],[-0.2,0.0,-0.35],[0.4,0.0,0.0],[0.2,0.0,-0.35],[0.4,0.0,0.0],[-0.2,0.0,0.35],[0.2,0.0,0.35],[-0.2,0.0,0.35],[-0.2,0.0,-0.35],[-0.4,0.0,0.0],[0.4,0.0,0.0],[-0.2,0.0,-0.35],[-0.2,0.0,0.35]]}
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"aabb_max":[0.4,0.25,0.4],"aabb_min":[-0.4,0.0,-0.4],"dreiecke":84,"oid":"apc_cap_1","quelle_glb":"res://assets/objekte/military_desert/vehicles/apc_cap_1.glb","vertices":[[-0.2,0.0,-0.35],[0.2,0.0,-0.35],[0.0,0.0,-0.4],[0.2,0.0,-0.35],[0.4,0.0,0.0],[0.35,0.0,-0.2],[0.4,0.0,0.0],[0.2,0.0,0.35],[0.35,0.0,0.2],[0.2,0.0,0.35],[-0.2,0.0,0.35],[0.0,0.0,0.4],[-0.2,0.0,0.35],[-0.4,0.0,0.0],[-0.35,0.0,0.2],[-0.4,0.0,0.0],[-0.2,0.0,-0.35],[-0.35,0.0,-0.2],[-0.2,0.0,-0.35],[0.4,0.0,0.0],[0.2,0.0,-0.35],[0.4,0.0,0.0],[-0.2,0.0,0.35],[0.2,0.0,0.35],[-0.2,0.0,0.35],[-0.2,0.0,-0.35],[-0.4,0.0,0.0],[0.4,0.0,0.0],[-0.2,0.0,-0.35],[-0.2,0.0,0.35],[-0.2,0.0,-0.35],[0.0,0.08,-0.4],[-0.2,0.08,-0.35],[-0.2,0.0,-0.35],[0.0,0.0,-0.4],[0.0,0.08,-0.4],[0.35,0.0,-0.2],[0.4,0.08,0.0],[0.35,0.08,-0.2],[0.35,0.0,-0.2],[0.4,0.0,0.0],[0.4,0.08,0.0],[0.4,0.0,0.0],[0.35,0.08,0.2],[0.4,0.08,0.0],[0.4,0.0,0.0],[0.35,0.0,0.2],[0.35,0.08,0.2],[0.35,0.0,0.2],[0.2,0.08,0.35],[0.35,0.08,0.2],[0.35,0.0,0.2],[0.2,0.0,0.35],[0.2,0.08,0.35],[0.2,0.0,0.35],[0.0,0.08,0.4],[0.2,0.08,0.35],[0.2,0.0,0.35],[0.0,0.0,0.4],[0.0,0.08,0.4],[0.0,0.0,0.4],[-0.2,0.08,0.35],[0.0,0.08,0.4],[0.0,0.0,0.4],[-0.2,0.0,0.35],[-0.2,0.08,0.35],[-0.2,0.0,0.35],[-0.35,0.08,0.2],[-0.2,0.08,0.35],[-0.2,0.0,0.35],[-0.35,0.0,0.2],[-0.35,0.08,0.2],[-0.35,0.0,0.2],[-0.4,0.08,0.0],[-0.35,0.08,0.2],[-0.35,0.0,0.2],[-0.4,0.0,0.0],[-0.4,0.08,0.0],[-0.4,0.0,0.0],[-0.35,0.08,-0.2],[-0.4,0.08,0.0],[-0.4,0.0,0.0],[-0.35,0.0,-0.2],[-0.35,0.08,-0.2],[-0.35,0.0,-0.2],[-0.2,0.08,-0.35],[-0.35,0.08,-0.2],[-0.35,0.0,-0.2],[-0.2,0.0,-0.35],[-0.2,0.08,-0.35],[0.0,0.0,-0.4],[0.2,0.08,-0.35],[0.0,0.08,-0.4],[0.0,0.0,-0.4],[0.2,0.0,-0.35],[0.2,0.08,-0.35],[0.2,0.0,-0.35],[0.35,0.08,-0.2],[0.2,0.08,-0.35],[0.2,0.0,-0.35],[0.35,0.0,-0.2],[0.35,0.08,-0.2],[0.2,0.08,-0.35],[0.0,0.14,-0.34],[0.0,0.08,-0.4],[0.2,0.08,-0.35],[0.17,0.14,-0.3],[0.0,0.14,-0.34],[0.35,0.08,-0.2],[0.17,0.14,-0.3],[0.2,0.08,-0.35],[0.35,0.08,-0.2],[0.3,0.14,-0.17],[0.17,0.14,-0.3],[0.4,0.08,0.0],[0.3,0.14,-0.17],[0.35,0.08,-0.2],[0.4,0.08,0.0],[0.34,0.14,0.0],[0.3,0.14,-0.17],[0.35,0.08,0.2],[0.34,0.14,0.0],[0.4,0.08,0.0],[0.35,0.08,0.2],[0.3,0.14,0.17],[0.34,0.14,0.0],[0.2,0.08,0.35],[0.3,0.14,0.17],[0.35,0.08,0.2],[0.2,0.08,0.35],[0.17,0.14,0.3],[0.3,0.14,0.17],[0.0,0.08,0.4],[0.17,0.14,0.3],[0.2,0.08,0.35],[0.0,0.08,0.4],[0.0,0.14,0.34],[0.17,0.14,0.3],[-0.2,0.08,0.35],[0.0,0.14,0.34],[0.0,0.08,0.4],[-0.2,0.08,0.35],[-0.17,0.14,0.3],[0.0,0.14,0.34],[-0.35,0.08,0.2],[-0.17,0.14,0.3],[-0.2,0.08,0.35],[-0.35,0.08,0.2],[-0.3,0.14,0.17],[-0.17,0.14,0.3],[-0.4,0.08,0.0],[-0.3,0.14,0.17],[-0.35,0.08,0.2],[-0.4,0.08,0.0],[-0.34,0.14,0.0],[-0.3,0.14,0.17],[-0.35,0.08,-0.2],[-0.34,0.14,0.0],[-0.4,0.08,0.0],[-0.35,0.08,-0.2],[-0.3,0.14,-0.17],[-0.34,0.14,0.0],[-0.2,0.08,-0.35],[-0.3,0.14,-0.17],[-0.35,0.08,-0.2],[-0.2,0.08,-0.35],[-0.17,0.14,-0.3],[-0.3,0.14,-0.17],[0.0,0.08,-0.4],[-0.17,0.14,-0.3],[-0.2,0.08,-0.35],[0.0,0.08,-0.4],[0.0,0.14,-0.34],[-0.17,0.14,-0.3],[0.3,0.14,-0.17],[0.0,0.14,-0.34],[0.17,0.14,-0.3],[0.0,0.14,-0.34],[-0.3,0.14,-0.17],[-0.17,0.14,-0.3],[-0.3,0.14,-0.17],[-0.3,0.14,0.17],[-0.34,0.14,0.0],[-0.3,0.14,0.17],[0.0,0.14,0.34],[-0.17,0.14,0.3],[0.0,0.14,0.34],[0.3,0.14,0.17],[0.17,0.14,0.3],[0.3,0.14,0.17],[0.3,0.14,-0.17],[0.34,0.14,0.0],[0.3,0.14,-0.17],[-0.3,0.14,-0.17],[0.0,0.14,-0.34],[-0.3,0.14,-0.17],[0.0,0.14,0.34],[-0.3,0.14,0.17],[0.0,0.14,0.34],[0.3,0.14,-0.17],[0.3,0.14,0.17],[-0.3,0.14,-0.17],[0.3,0.14,-0.17],[0.0,0.14,0.34],[-0.17,0.02,-0.09],[-0.09,0.25,-0.05],[-0.17,0.25,-0.09],[-0.17,0.02,-0.09],[-0.09,0.02,-0.05],[-0.09,0.25,-0.05],[-0.09,0.02,-0.05],[-0.09,0.25,0.05],[-0.09,0.25,-0.05],[-0.09,0.02,-0.05],[-0.09,0.02,0.05],[-0.09,0.25,0.05],[-0.09,0.02,0.05],[-0.17,0.25,0.1],[-0.09,0.25,0.05],[-0.09,0.02,0.05],[-0.17,0.02,0.1],[-0.17,0.25,0.1],[-0.17,0.02,0.1],[-0.25,0.25,0.05],[-0.17,0.25,0.1],[-0.17,0.02,0.1],[-0.25,0.02,0.05],[-0.25,0.25,0.05],[-0.09,0.25,0.05],[-0.17,0.25,-0.09],[-0.09,0.25,-0.05],[-0.17,0.25,-0.09],[-0.25,0.25,0.05],[-0.25,0.25,-0.05],[-0.25,0.25,0.05],[-0.09,0.25,0.05],[-0.17,0.25,0.1],[-0.17,0.25,-0.09],[-0.09,0.25,0.05],[-0.25,0.25,0.05],[-0.25,0.02,0.05],[-0.25,0.25,-0.05],[-0.25,0.25,0.05],[-0.25,0.02,0.05],[-0.25,0.02,-0.05],[-0.25,0.25,-0.05],[-0.25,0.02,-0.05],[-0.17,0.25,-0.09],[-0.25,0.25,-0.05],[-0.25,0.02,-0.05],[-0.17,0.02,-0.09],[-0.17,0.25,-0.09]]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"aabb_max":[1.16,0.77,0.47],"aabb_min":[-1.16,0.0,-0.47],"dreiecke":72,"oid":"barrier_001","quelle_glb":"res://assets/objekte/military_desert/barriers/barrier_001.glb","vertices":[[1.16,0.0,0.47],[1.16,0.19,-0.32],[1.16,0.0,-0.47],[1.16,0.0,0.47],[1.16,0.19,0.32],[1.16,0.19,-0.32],[-1.16,0.19,0.32],[-1.16,0.0,-0.47],[-1.16,0.19,-0.32],[-1.16,0.19,0.32],[-1.16,0.0,0.47],[-1.16,0.0,-0.47],[1.16,0.0,-0.47],[-1.16,0.19,-0.32],[-1.16,0.0,-0.47],[1.16,0.0,-0.47],[1.16,0.19,-0.32],[-1.16,0.19,-0.32],[-1.16,0.0,0.47],[1.16,0.19,0.32],[1.16,0.0,0.47],[-1.16,0.0,0.47],[-1.16,0.19,0.32],[1.16,0.19,0.32],[1.16,0.19,0.32],[1.16,0.31,-0.24],[1.16,0.19,-0.32],[1.16,0.19,0.32],[1.16,0.31,0.24],[1.16,0.31,-0.24],[1.16,0.19,-0.32],[-1.16,0.31,-0.24],[-1.16,0.19,-0.32],[1.16,0.19,-0.32],[1.16,0.31,-0.24],[-1.16,0.31,-0.24],[-1.16,0.19,-0.32],[-1.16,0.31,0.24],[-1.16,0.19,0.32],[-1.16,0.19,-0.32],[-1.16,0.31,-0.24],[-1.16,0.31,0.24],[-1.16,0.19,0.32],[1.16,0.31,0.24],[1.16,0.19,0.32],[-1.16,0.19,0.32],[-1.16,0.31,0.24],[1.16,0.31,0.24],[1.16,0.31,0.24],[1.16,0.48,-0.16],[1.16,0.31,-0.24],[1.16,0.31,0.24],[1.16,0.48,0.16],[1.16,0.48,-0.16],[1.16,0.31,-0.24],[-1.16,0.48,-0.16],[-1.16,0.31,-0.24],[1.16,0.31,-0.24],[1.16,0.48,-0.16],[-1.16,0.48,-0.16],[-1.16,0.31,-0.24],[-1.16,0.48,0.16],[-1.16,0.31,0.24],[-1.16,0.31,-0.24],[-1.16,0.48,-0.16],[-1.16,0.48,0.16],[-1.16,0.31,0.24],[1.16,0.48,0.16],[1.16,0.31,0.24],[-1.16,0.31,0.24],[-1.16,0.48,0.16],[1.16,0.48,0.16],[1.16,0.63,0.12],[1.16,0.77,-0.09],[1.16,0.63,-0.12],[1.16,0.63,0.12],[1.16,0.77,0.09],[1.16,0.77,-0.09],[-1.16,0.63,-0.12],[-1.16,0.77,0.09],[-1.16,0.63,0.12],[-1.16,0.63,-0.12],[-1.16,0.77,-0.09],[-1.16,0.77,0.09],[1.16,0.48,0.16],[1.16,0.63,-0.12],[1.16,0.48,-0.16],[1.16,0.48,0.16],[1.16,0.63,0.12],[1.16,0.63,-0.12],[-1.16,0.48,-0.16],[-1.16,0.63,0.12],[-1.16,0.48,0.16],[-1.16,0.48,-0.16],[-1.16,0.63,-0.12],[-1.16,0.63,0.12],[1.16,0.63,-0.12],[0.7,0.77,-0.09],[0.7,0.63,-0.12],[1.16,0.63,-0.12],[1.16,0.77,-0.09],[0.7,0.77,-0.09],[0.7,0.63,-0.12],[0.23,0.77,-0.09],[0.23,0.63,-0.12],[0.7,0.63,-0.12],[0.7,0.77,-0.09],[0.23,0.77,-0.09],[0.23,0.63,-0.12],[-0.23,0.77,-0.09],[-0.23,0.63,-0.12],[0.23,0.63,-0.12],[0.23,0.77,-0.09],[-0.23,0.77,-0.09],[-0.23,0.63,-0.12],[-0.7,0.77,-0.09],[-0.7,0.63,-0.12],[-0.23,0.63,-0.12],[-0.23,0.77,-0.09],[-0.7,0.77,-0.09],[-0.7,0.63,-0.12],[-1.16,0.77,-0.09],[-1.16,0.63,-0.12],[-0.7,0.63,-0.12],[-0.7,0.77,-0.09],[-1.16,0.77,-0.09],[1.16,0.63,-0.12],[1.16,0.77,-0.09],[1.16,0.63,-0.12],[1.16,0.77,0.09],[1.16,0.63,0.12],[1.16,0.63,0.12],[-1.16,0.77,-0.09],[-1.16,0.63,-0.12],[-1.16,0.63,-0.12],[-1.16,0.63,0.12],[-1.16,0.77,0.09],[-1.16,0.63,0.12],[-0.7,0.77,-0.09],[-1.16,0.77,0.09],[-1.16,0.77,-0.09],[-0.7,0.77,-0.09],[-0.7,0.77,0.09],[-1.16,0.77,0.09],[-0.23,0.77,-0.09],[-0.7,0.77,0.09],[-0.7,0.77,-0.09],[-0.23,0.77,-0.09],[-0.23,0.77,0.09],[-0.7,0.77,0.09],[0.23,0.77,-0.09],[-0.23,0.77,0.09],[-0.23,0.77,-0.09],[0.23,0.77,-0.09],[0.23,0.77,0.09],[-0.23,0.77,0.09],[1.16,0.77,-0.09],[0.7,0.77,0.09],[0.7,0.77,-0.09],[1.16,0.77,-0.09],[1.16,0.77,0.09],[0.7,0.77,0.09],[0.7,0.77,-0.09],[0.23,0.77,0.09],[0.23,0.77,-0.09],[0.7,0.77,-0.09],[0.7,0.77,0.09],[0.23,0.77,0.09],[-0.7,0.77,0.09],[-1.16,0.63,0.12],[-1.16,0.77,0.09],[-0.7,0.77,0.09],[-0.7,0.63,0.12],[-1.16,0.63,0.12],[-0.23,0.77,0.09],[-0.7,0.63,0.12],[-0.7,0.77,0.09],[-0.23,0.77,0.09],[-0.23,0.63,0.12],[-0.7,0.63,0.12],[0.23,0.77,0.09],[-0.23,0.63,0.12],[-0.23,0.77,0.09],[0.23,0.77,0.09],[0.23,0.63,0.12],[-0.23,0.63,0.12],[1.16,0.77,0.09],[0.7,0.63,0.12],[0.7,0.77,0.09],[1.16,0.77,0.09],[1.16,0.63,0.12],[0.7,0.63,0.12],[0.7,0.77,0.09],[0.23,0.63,0.12],[0.23,0.77,0.09],[0.7,0.77,0.09],[0.7,0.63,0.12],[0.23,0.63,0.12],[1.16,0.63,-0.12],[-1.16,0.48,-0.16],[1.16,0.48,-0.16],[1.16,0.63,-0.12],[-1.16,0.63,-0.12],[-1.16,0.48,-0.16],[1.16,0.48,0.16],[-1.16,0.63,0.12],[1.16,0.63,0.12],[1.16,0.48,0.16],[-1.16,0.48,0.16],[-1.16,0.63,0.12],[1.16,0.0,0.47],[-1.16,0.0,-0.47],[-1.16,0.0,0.47],[1.16,0.0,0.47],[1.16,0.0,-0.47],[-1.16,0.0,-0.47]]}
|
||||
{"aabb_max":[1.16,0.77,0.47],"aabb_min":[-1.16,-0.0,-0.47],"dreiecke":72,"oid":"barrier_001","quelle_glb":"res://assets/objekte/military_desert/sperren/barrier_001.glb","vertices":[[1.16,-0.0,0.47],[1.16,-0.0,-0.47],[1.16,0.19,-0.32],[1.16,-0.0,0.47],[1.16,0.19,-0.32],[1.16,0.19,0.32],[-1.16,0.19,0.32],[-1.16,0.19,-0.32],[-1.16,-0.0,-0.47],[-1.16,0.19,0.32],[-1.16,-0.0,-0.47],[-1.16,-0.0,0.47],[1.16,-0.0,-0.47],[-1.16,-0.0,-0.47],[-1.16,0.19,-0.32],[1.16,-0.0,-0.47],[-1.16,0.19,-0.32],[1.16,0.19,-0.32],[-1.16,-0.0,0.47],[1.16,-0.0,0.47],[1.16,0.19,0.32],[-1.16,-0.0,0.47],[1.16,0.19,0.32],[-1.16,0.19,0.32],[1.16,0.19,0.32],[1.16,0.19,-0.32],[1.16,0.31,-0.24],[1.16,0.19,0.32],[1.16,0.31,-0.24],[1.16,0.31,0.24],[1.16,0.19,-0.32],[-1.16,0.19,-0.32],[-1.16,0.31,-0.24],[1.16,0.19,-0.32],[-1.16,0.31,-0.24],[1.16,0.31,-0.24],[-1.16,0.19,-0.32],[-1.16,0.19,0.32],[-1.16,0.31,0.24],[-1.16,0.19,-0.32],[-1.16,0.31,0.24],[-1.16,0.31,-0.24],[-1.16,0.19,0.32],[1.16,0.19,0.32],[1.16,0.31,0.24],[-1.16,0.19,0.32],[1.16,0.31,0.24],[-1.16,0.31,0.24],[1.16,0.31,0.24],[1.16,0.31,-0.24],[1.16,0.48,-0.16],[1.16,0.31,0.24],[1.16,0.48,-0.16],[1.16,0.48,0.16],[1.16,0.31,-0.24],[-1.16,0.31,-0.24],[-1.16,0.48,-0.16],[1.16,0.31,-0.24],[-1.16,0.48,-0.16],[1.16,0.48,-0.16],[-1.16,0.31,-0.24],[-1.16,0.31,0.24],[-1.16,0.48,0.16],[-1.16,0.31,-0.24],[-1.16,0.48,0.16],[-1.16,0.48,-0.16],[-1.16,0.31,0.24],[1.16,0.31,0.24],[1.16,0.48,0.16],[-1.16,0.31,0.24],[1.16,0.48,0.16],[-1.16,0.48,0.16],[1.16,0.63,0.12],[1.16,0.63,-0.12],[1.16,0.77,-0.09],[1.16,0.63,0.12],[1.16,0.77,-0.09],[1.16,0.77,0.09],[-1.16,0.63,-0.12],[-1.16,0.63,0.12],[-1.16,0.77,0.09],[-1.16,0.63,-0.12],[-1.16,0.77,0.09],[-1.16,0.77,-0.09],[1.16,0.48,0.16],[1.16,0.48,-0.16],[1.16,0.63,-0.12],[1.16,0.48,0.16],[1.16,0.63,-0.12],[1.16,0.63,0.12],[-1.16,0.48,-0.16],[-1.16,0.48,0.16],[-1.16,0.63,0.12],[-1.16,0.48,-0.16],[-1.16,0.63,0.12],[-1.16,0.63,-0.12],[1.16,0.63,-0.12],[0.7,0.63,-0.12],[0.7,0.77,-0.09],[1.16,0.63,-0.12],[0.7,0.77,-0.09],[1.16,0.77,-0.09],[0.7,0.63,-0.12],[0.23,0.63,-0.12],[0.23,0.77,-0.09],[0.7,0.63,-0.12],[0.23,0.77,-0.09],[0.7,0.77,-0.09],[0.23,0.63,-0.12],[-0.23,0.63,-0.12],[-0.23,0.77,-0.09],[0.23,0.63,-0.12],[-0.23,0.77,-0.09],[0.23,0.77,-0.09],[-0.23,0.63,-0.12],[-0.7,0.63,-0.12],[-0.7,0.77,-0.09],[-0.23,0.63,-0.12],[-0.7,0.77,-0.09],[-0.23,0.77,-0.09],[-0.7,0.63,-0.12],[-1.16,0.63,-0.12],[-1.16,0.77,-0.09],[-0.7,0.63,-0.12],[-1.16,0.77,-0.09],[-0.7,0.77,-0.09],[1.16,0.63,-0.12],[1.16,0.63,-0.12],[1.16,0.77,-0.09],[1.16,0.77,0.09],[1.16,0.63,0.12],[1.16,0.63,0.12],[-1.16,0.77,-0.09],[-1.16,0.63,-0.12],[-1.16,0.63,-0.12],[-1.16,0.63,0.12],[-1.16,0.63,0.12],[-1.16,0.77,0.09],[-0.7,0.77,-0.09],[-1.16,0.77,-0.09],[-1.16,0.77,0.09],[-0.7,0.77,-0.09],[-1.16,0.77,0.09],[-0.7,0.77,0.09],[-0.23,0.77,-0.09],[-0.7,0.77,-0.09],[-0.7,0.77,0.09],[-0.23,0.77,-0.09],[-0.7,0.77,0.09],[-0.23,0.77,0.09],[0.23,0.77,-0.09],[-0.23,0.77,-0.09],[-0.23,0.77,0.09],[0.23,0.77,-0.09],[-0.23,0.77,0.09],[0.23,0.77,0.09],[1.16,0.77,-0.09],[0.7,0.77,-0.09],[0.7,0.77,0.09],[1.16,0.77,-0.09],[0.7,0.77,0.09],[1.16,0.77,0.09],[0.7,0.77,-0.09],[0.23,0.77,-0.09],[0.23,0.77,0.09],[0.7,0.77,-0.09],[0.23,0.77,0.09],[0.7,0.77,0.09],[-0.7,0.77,0.09],[-1.16,0.77,0.09],[-1.16,0.63,0.12],[-0.7,0.77,0.09],[-1.16,0.63,0.12],[-0.7,0.63,0.12],[-0.23,0.77,0.09],[-0.7,0.77,0.09],[-0.7,0.63,0.12],[-0.23,0.77,0.09],[-0.7,0.63,0.12],[-0.23,0.63,0.12],[0.23,0.77,0.09],[-0.23,0.77,0.09],[-0.23,0.63,0.12],[0.23,0.77,0.09],[-0.23,0.63,0.12],[0.23,0.63,0.12],[1.16,0.77,0.09],[0.7,0.77,0.09],[0.7,0.63,0.12],[1.16,0.77,0.09],[0.7,0.63,0.12],[1.16,0.63,0.12],[0.7,0.77,0.09],[0.23,0.77,0.09],[0.23,0.63,0.12],[0.7,0.77,0.09],[0.23,0.63,0.12],[0.7,0.63,0.12],[1.16,0.63,-0.12],[1.16,0.48,-0.16],[-1.16,0.48,-0.16],[1.16,0.63,-0.12],[-1.16,0.48,-0.16],[-1.16,0.63,-0.12],[1.16,0.48,0.16],[1.16,0.63,0.12],[-1.16,0.63,0.12],[1.16,0.48,0.16],[-1.16,0.63,0.12],[-1.16,0.48,0.16],[1.16,-0.0,0.47],[-1.16,-0.0,0.47],[-1.16,-0.0,-0.47],[1.16,-0.0,0.47],[-1.16,-0.0,-0.47],[1.16,-0.0,-0.47]]}
|
||||
|
|
@ -1 +1 @@
|
|||
{"aabb_max":[2.51,0.24,0.47],"aabb_min":[-2.51,0.0,-0.47],"dreiecke":48,"oid":"barrier_002","quelle_glb":"res://assets/objekte/military_desert/barriers/barrier_002.glb","vertices":[[-1.88,0.13,0.47],[-2.51,0.0,0.47],[-2.51,0.13,0.47],[-2.51,0.0,0.47],[2.51,0.13,0.47],[2.51,0.0,0.47],[2.51,0.13,0.47],[-1.88,0.13,0.47],[1.88,0.13,0.47],[-1.88,0.13,0.47],[2.51,0.13,0.47],[-2.51,0.0,0.47],[2.51,0.13,0.47],[1.88,0.24,0.0],[2.51,0.24,0.0],[1.88,0.13,0.47],[1.88,0.24,0.0],[2.51,0.13,0.47],[1.88,0.13,0.47],[1.26,0.24,0.0],[1.88,0.24,0.0],[1.26,0.13,0.47],[1.26,0.24,0.0],[1.88,0.13,0.47],[1.26,0.13,0.47],[0.63,0.24,0.0],[1.26,0.24,0.0],[0.63,0.13,0.47],[0.63,0.24,0.0],[1.26,0.13,0.47],[0.63,0.13,0.47],[0.0,0.24,0.0],[0.63,0.24,0.0],[0.0,0.13,0.47],[0.0,0.24,0.0],[0.63,0.13,0.47],[0.0,0.13,0.47],[-0.63,0.24,0.0],[0.0,0.24,0.0],[-0.63,0.13,0.47],[-0.63,0.24,0.0],[0.0,0.13,0.47],[-0.63,0.13,0.47],[-1.26,0.24,0.0],[-0.63,0.24,0.0],[-2.51,0.13,0.47],[-2.51,0.24,0.0],[-1.88,0.13,0.47],[-1.26,0.13,0.47],[-1.26,0.24,0.0],[-0.63,0.13,0.47],[-1.26,0.13,0.47],[-1.88,0.24,0.0],[-1.26,0.24,0.0],[1.88,0.24,0.0],[1.88,0.13,-0.47],[2.51,0.24,0.0],[1.88,0.24,0.0],[1.26,0.13,-0.47],[1.88,0.13,-0.47],[1.26,0.24,0.0],[1.26,0.13,-0.47],[1.88,0.24,0.0],[1.26,0.24,0.0],[0.63,0.13,-0.47],[1.26,0.13,-0.47],[0.63,0.24,0.0],[0.63,0.13,-0.47],[1.26,0.24,0.0],[0.63,0.24,0.0],[0.0,0.13,-0.47],[0.63,0.13,-0.47],[0.0,0.24,0.0],[0.0,0.13,-0.47],[0.63,0.24,0.0],[0.0,0.24,0.0],[-0.63,0.13,-0.47],[0.0,0.13,-0.47],[-0.63,0.24,0.0],[-0.63,0.13,-0.47],[0.0,0.24,0.0],[-0.63,0.24,0.0],[-1.26,0.13,-0.47],[-0.63,0.13,-0.47],[-1.26,0.24,0.0],[-1.26,0.13,-0.47],[-0.63,0.24,0.0],[-1.26,0.24,0.0],[-1.88,0.13,-0.47],[-1.26,0.13,-0.47],[-2.51,0.24,0.0],[-2.51,0.13,-0.47],[-1.88,0.24,0.0],[-1.88,0.24,0.0],[-1.88,0.13,-0.47],[-1.26,0.24,0.0],[-1.88,0.24,0.0],[-2.51,0.13,-0.47],[-1.88,0.13,-0.47],[2.51,0.13,-0.47],[-2.51,0.0,-0.47],[2.51,0.0,-0.47],[-2.51,0.0,-0.47],[-1.88,0.13,-0.47],[-2.51,0.13,-0.47],[-1.88,0.13,-0.47],[2.51,0.13,-0.47],[1.88,0.13,-0.47],[-2.51,0.0,-0.47],[2.51,0.13,-0.47],[-1.88,0.13,-0.47],[-2.51,0.24,0.0],[-1.26,0.13,0.47],[-1.88,0.13,0.47],[-2.51,0.24,0.0],[-1.88,0.24,0.0],[-1.26,0.13,0.47],[1.88,0.13,-0.47],[2.51,0.13,-0.47],[2.51,0.24,0.0],[2.51,0.0,0.47],[2.51,0.13,-0.47],[2.51,0.0,-0.47],[2.51,0.0,0.47],[2.51,0.13,0.47],[2.51,0.13,-0.47],[2.51,0.24,0.0],[2.51,0.13,-0.47],[2.51,0.13,0.47],[-2.51,0.13,0.47],[-2.51,0.0,-0.47],[-2.51,0.13,-0.47],[-2.51,0.13,0.47],[-2.51,0.0,0.47],[-2.51,0.0,-0.47],[-2.51,0.24,0.0],[-2.51,0.13,0.47],[-2.51,0.13,-0.47],[-2.51,0.0,0.47],[2.51,0.0,-0.47],[-2.51,0.0,-0.47],[-2.51,0.0,0.47],[2.51,0.0,0.47],[2.51,0.0,-0.47]]}
|
||||
{"aabb_max":[2.51,0.24,0.47],"aabb_min":[-2.51,0.0,-0.47],"dreiecke":48,"oid":"barrier_002","quelle_glb":"res://assets/objekte/military_desert/sperren/barrier_002.glb","vertices":[[-1.88,0.13,0.47],[-2.51,0.13,0.47],[-2.51,-0.0,0.47],[-2.51,-0.0,0.47],[2.51,0.0,0.47],[2.51,0.13,0.47],[2.51,0.13,0.47],[1.88,0.13,0.47],[-1.88,0.13,0.47],[-1.88,0.13,0.47],[-2.51,-0.0,0.47],[2.51,0.13,0.47],[2.51,0.13,0.47],[2.51,0.24,0.0],[1.88,0.24,0.0],[1.88,0.13,0.47],[2.51,0.13,0.47],[1.88,0.24,0.0],[1.88,0.13,0.47],[1.88,0.24,0.0],[1.26,0.24,0.0],[1.26,0.13,0.47],[1.88,0.13,0.47],[1.26,0.24,0.0],[1.26,0.13,0.47],[1.26,0.24,0.0],[0.63,0.24,0.0],[0.63,0.13,0.47],[1.26,0.13,0.47],[0.63,0.24,0.0],[0.63,0.13,0.47],[0.63,0.24,0.0],[-0.0,0.24,0.0],[-0.0,0.13,0.47],[0.63,0.13,0.47],[-0.0,0.24,0.0],[-0.0,0.13,0.47],[-0.0,0.24,0.0],[-0.63,0.24,0.0],[-0.63,0.13,0.47],[-0.0,0.13,0.47],[-0.63,0.24,0.0],[-0.63,0.13,0.47],[-0.63,0.24,0.0],[-1.26,0.24,0.0],[-2.51,0.13,0.47],[-1.88,0.13,0.47],[-2.51,0.24,-0.0],[-1.26,0.13,0.47],[-0.63,0.13,0.47],[-1.26,0.24,0.0],[-1.26,0.13,0.47],[-1.26,0.24,0.0],[-1.88,0.24,0.0],[1.88,0.24,0.0],[2.51,0.24,0.0],[1.88,0.13,-0.47],[1.88,0.24,0.0],[1.88,0.13,-0.47],[1.26,0.13,-0.47],[1.26,0.24,0.0],[1.88,0.24,0.0],[1.26,0.13,-0.47],[1.26,0.24,0.0],[1.26,0.13,-0.47],[0.63,0.13,-0.47],[0.63,0.24,0.0],[1.26,0.24,0.0],[0.63,0.13,-0.47],[0.63,0.24,0.0],[0.63,0.13,-0.47],[-0.0,0.13,-0.47],[-0.0,0.24,0.0],[0.63,0.24,0.0],[-0.0,0.13,-0.47],[-0.0,0.24,0.0],[-0.0,0.13,-0.47],[-0.63,0.13,-0.47],[-0.63,0.24,0.0],[-0.0,0.24,0.0],[-0.63,0.13,-0.47],[-0.63,0.24,0.0],[-0.63,0.13,-0.47],[-1.26,0.13,-0.47],[-1.26,0.24,0.0],[-0.63,0.24,0.0],[-1.26,0.13,-0.47],[-1.26,0.24,0.0],[-1.26,0.13,-0.47],[-1.88,0.13,-0.47],[-2.51,0.24,-0.0],[-1.88,0.24,0.0],[-2.51,0.13,-0.47],[-1.88,0.24,0.0],[-1.26,0.24,0.0],[-1.88,0.13,-0.47],[-1.88,0.24,0.0],[-1.88,0.13,-0.47],[-2.51,0.13,-0.47],[2.51,0.13,-0.47],[2.51,0.0,-0.47],[-2.51,-0.0,-0.47],[-2.51,-0.0,-0.47],[-2.51,0.13,-0.47],[-1.88,0.13,-0.47],[-1.88,0.13,-0.47],[1.88,0.13,-0.47],[2.51,0.13,-0.47],[-2.51,-0.0,-0.47],[-1.88,0.13,-0.47],[2.51,0.13,-0.47],[-2.51,0.24,-0.0],[-1.88,0.13,0.47],[-1.26,0.13,0.47],[-2.51,0.24,-0.0],[-1.26,0.13,0.47],[-1.88,0.24,0.0],[1.88,0.13,-0.47],[2.51,0.24,0.0],[2.51,0.13,-0.47],[2.51,0.0,0.47],[2.51,0.0,-0.47],[2.51,0.13,-0.47],[2.51,0.0,0.47],[2.51,0.13,-0.47],[2.51,0.13,0.47],[2.51,0.24,0.0],[2.51,0.13,0.47],[2.51,0.13,-0.47],[-2.51,0.13,0.47],[-2.51,0.13,-0.47],[-2.51,-0.0,-0.47],[-2.51,0.13,0.47],[-2.51,-0.0,-0.47],[-2.51,-0.0,0.47],[-2.51,0.24,-0.0],[-2.51,0.13,-0.47],[-2.51,0.13,0.47],[-2.51,-0.0,0.47],[-2.51,-0.0,-0.47],[2.51,0.0,-0.47],[-2.51,-0.0,0.47],[2.51,0.0,-0.47],[2.51,0.0,0.47]]}
|
||||
|
|
@ -1 +1 @@
|
|||
{"aabb_max":[2.19,0.97,0.21],"aabb_min":[-2.18,0.0,-0.21],"dreiecke":80,"oid":"barrier_003","quelle_glb":"res://assets/objekte/military_desert/barriers/barrier_003.glb","vertices":[[-2.01,0.0,-0.21],[-1.93,0.36,0.14],[-2.01,0.0,0.21],[-2.01,0.0,-0.21],[-1.93,0.36,-0.14],[-1.93,0.36,0.14],[-1.93,0.97,-0.14],[-1.66,0.97,0.14],[-1.93,0.97,0.14],[-1.93,0.97,-0.14],[-1.66,0.97,-0.14],[-1.66,0.97,0.14],[-1.66,0.36,-0.14],[-1.58,0.0,0.21],[-1.66,0.36,0.14],[-1.66,0.36,-0.14],[-1.58,0.0,-0.21],[-1.58,0.0,0.21],[-2.01,0.0,0.21],[-1.66,0.36,0.14],[-1.58,0.0,0.21],[-2.01,0.0,0.21],[-1.93,0.36,0.14],[-1.66,0.36,0.14],[-1.58,0.0,-0.21],[-1.93,0.36,-0.14],[-2.01,0.0,-0.21],[-1.58,0.0,-0.21],[-1.66,0.36,-0.14],[-1.93,0.36,-0.14],[-1.93,0.36,-0.14],[-1.93,0.97,0.14],[-1.93,0.36,0.14],[-1.93,0.36,-0.14],[-1.93,0.97,-0.14],[-1.93,0.97,0.14],[-1.93,0.36,0.14],[-1.66,0.97,0.14],[-1.66,0.36,0.14],[-1.93,0.36,0.14],[-1.93,0.97,0.14],[-1.66,0.97,0.14],[-1.66,0.36,0.14],[-1.66,0.97,-0.14],[-1.66,0.36,-0.14],[-1.66,0.36,0.14],[-1.66,0.97,0.14],[-1.66,0.97,-0.14],[-1.66,0.36,-0.14],[-1.93,0.97,-0.14],[-1.93,0.36,-0.14],[-1.66,0.36,-0.14],[-1.66,0.97,-0.14],[-1.93,0.97,-0.14],[2.19,0.91,-0.02],[2.19,0.8,0.02],[2.19,0.91,0.02],[2.19,0.91,-0.02],[2.19,0.8,-0.02],[2.19,0.8,0.02],[-0.41,0.91,-0.02],[0.12,0.91,0.02],[-0.41,0.91,0.02],[-0.41,0.91,-0.02],[0.12,0.91,-0.02],[0.12,0.91,0.02],[-0.41,0.91,0.02],[0.22,0.8,0.02],[-0.32,0.8,0.02],[-0.41,0.91,0.02],[0.12,0.91,0.02],[0.22,0.8,0.02],[-0.32,0.8,0.02],[0.22,0.8,-0.02],[-0.32,0.8,-0.02],[-0.32,0.8,0.02],[0.22,0.8,0.02],[0.22,0.8,-0.02],[-0.32,0.8,-0.02],[0.12,0.91,-0.02],[-0.41,0.91,-0.02],[-0.32,0.8,-0.02],[0.22,0.8,-0.02],[0.12,0.91,-0.02],[-2.18,0.91,-0.02],[-2.18,0.67,0.02],[-2.18,0.67,-0.02],[-2.18,0.91,-0.02],[-2.18,0.91,0.02],[-2.18,0.67,0.02],[-0.41,0.91,-0.02],[-1.33,0.67,-0.02],[-0.32,0.8,-0.02],[-0.41,0.91,-0.02],[-1.33,0.91,-0.02],[-1.33,0.67,-0.02],[-0.32,0.8,-0.02],[-1.33,0.67,0.02],[-0.32,0.8,0.02],[-0.32,0.8,-0.02],[-1.33,0.67,-0.02],[-1.33,0.67,0.02],[-0.32,0.8,0.02],[-1.33,0.91,0.02],[-0.41,0.91,0.02],[-0.32,0.8,0.02],[-1.33,0.67,0.02],[-1.33,0.91,0.02],[-0.41,0.91,0.02],[-1.33,0.91,-0.02],[-0.41,0.91,-0.02],[-0.41,0.91,0.02],[-1.33,0.91,0.02],[-1.33,0.91,-0.02],[-1.33,0.91,-0.02],[-2.18,0.67,-0.02],[-1.33,0.67,-0.02],[-1.33,0.91,-0.02],[-2.18,0.91,-0.02],[-2.18,0.67,-0.02],[-1.33,0.67,-0.02],[-2.18,0.67,0.02],[-1.33,0.67,0.02],[-1.33,0.67,-0.02],[-2.18,0.67,-0.02],[-2.18,0.67,0.02],[-1.33,0.67,0.02],[-2.18,0.91,0.02],[-1.33,0.91,0.02],[-1.33,0.67,0.02],[-2.18,0.67,0.02],[-2.18,0.91,0.02],[-1.33,0.91,0.02],[-2.18,0.91,-0.02],[-1.33,0.91,-0.02],[-1.33,0.91,0.02],[-2.18,0.91,0.02],[-2.18,0.91,-0.02],[0.12,0.91,-0.02],[0.71,0.91,0.02],[0.12,0.91,0.02],[0.12,0.91,-0.02],[0.71,0.91,-0.02],[0.71,0.91,0.02],[0.12,0.91,0.02],[0.8,0.8,0.02],[0.22,0.8,0.02],[0.12,0.91,0.02],[0.71,0.91,0.02],[0.8,0.8,0.02],[0.22,0.8,0.02],[0.8,0.8,-0.02],[0.22,0.8,-0.02],[0.22,0.8,0.02],[0.8,0.8,0.02],[0.8,0.8,-0.02],[0.22,0.8,-0.02],[0.71,0.91,-0.02],[0.12,0.91,-0.02],[0.22,0.8,-0.02],[0.8,0.8,-0.02],[0.71,0.91,-0.02],[0.71,0.91,-0.02],[1.24,0.91,0.02],[0.71,0.91,0.02],[0.71,0.91,-0.02],[1.24,0.91,-0.02],[1.24,0.91,0.02],[0.71,0.91,0.02],[1.33,0.8,0.02],[0.8,0.8,0.02],[0.71,0.91,0.02],[1.24,0.91,0.02],[1.33,0.8,0.02],[0.8,0.8,0.02],[1.33,0.8,-0.02],[0.8,0.8,-0.02],[0.8,0.8,0.02],[1.33,0.8,0.02],[1.33,0.8,-0.02],[0.8,0.8,-0.02],[1.24,0.91,-0.02],[0.71,0.91,-0.02],[0.8,0.8,-0.02],[1.33,0.8,-0.02],[1.24,0.91,-0.02],[1.24,0.91,-0.02],[1.75,0.91,0.02],[1.24,0.91,0.02],[1.24,0.91,-0.02],[1.75,0.91,-0.02],[1.75,0.91,0.02],[1.24,0.91,0.02],[1.85,0.8,0.02],[1.33,0.8,0.02],[1.24,0.91,0.02],[1.75,0.91,0.02],[1.85,0.8,0.02],[1.33,0.8,0.02],[1.85,0.8,-0.02],[1.33,0.8,-0.02],[1.33,0.8,0.02],[1.85,0.8,0.02],[1.85,0.8,-0.02],[1.33,0.8,-0.02],[1.75,0.91,-0.02],[1.24,0.91,-0.02],[1.33,0.8,-0.02],[1.85,0.8,-0.02],[1.75,0.91,-0.02],[1.75,0.91,-0.02],[2.19,0.91,0.02],[1.75,0.91,0.02],[1.75,0.91,-0.02],[2.19,0.91,-0.02],[2.19,0.91,0.02],[1.75,0.91,0.02],[2.19,0.8,0.02],[1.85,0.8,0.02],[1.75,0.91,0.02],[2.19,0.91,0.02],[2.19,0.8,0.02],[1.85,0.8,0.02],[2.19,0.8,-0.02],[1.85,0.8,-0.02],[1.85,0.8,0.02],[2.19,0.8,0.02],[2.19,0.8,-0.02],[1.85,0.8,-0.02],[2.19,0.91,-0.02],[1.75,0.91,-0.02],[1.85,0.8,-0.02],[2.19,0.8,-0.02],[2.19,0.91,-0.02],[-2.01,0.0,-0.21],[-1.58,0.0,0.21],[-1.58,0.0,-0.21],[-2.01,0.0,-0.21],[-2.01,0.0,0.21],[-1.58,0.0,0.21]]}
|
||||
{"aabb_max":[2.19,0.97,0.21],"aabb_min":[-2.18,-0.0,-0.21],"dreiecke":80,"oid":"barrier_003","quelle_glb":"res://assets/objekte/military_desert/sperren/barrier_003.glb","vertices":[[-2.01,-0.0,-0.21],[-2.01,-0.0,0.21],[-1.93,0.36,0.14],[-2.01,-0.0,-0.21],[-1.93,0.36,0.14],[-1.93,0.36,-0.14],[-1.93,0.97,-0.14],[-1.93,0.97,0.14],[-1.66,0.97,0.14],[-1.93,0.97,-0.14],[-1.66,0.97,0.14],[-1.66,0.97,-0.14],[-1.66,0.36,-0.14],[-1.66,0.36,0.14],[-1.58,-0.0,0.21],[-1.66,0.36,-0.14],[-1.58,-0.0,0.21],[-1.58,-0.0,-0.21],[-2.01,-0.0,0.21],[-1.58,-0.0,0.21],[-1.66,0.36,0.14],[-2.01,-0.0,0.21],[-1.66,0.36,0.14],[-1.93,0.36,0.14],[-1.58,-0.0,-0.21],[-2.01,-0.0,-0.21],[-1.93,0.36,-0.14],[-1.58,-0.0,-0.21],[-1.93,0.36,-0.14],[-1.66,0.36,-0.14],[-1.93,0.36,-0.14],[-1.93,0.36,0.14],[-1.93,0.97,0.14],[-1.93,0.36,-0.14],[-1.93,0.97,0.14],[-1.93,0.97,-0.14],[-1.93,0.36,0.14],[-1.66,0.36,0.14],[-1.66,0.97,0.14],[-1.93,0.36,0.14],[-1.66,0.97,0.14],[-1.93,0.97,0.14],[-1.66,0.36,0.14],[-1.66,0.36,-0.14],[-1.66,0.97,-0.14],[-1.66,0.36,0.14],[-1.66,0.97,-0.14],[-1.66,0.97,0.14],[-1.66,0.36,-0.14],[-1.93,0.36,-0.14],[-1.93,0.97,-0.14],[-1.66,0.36,-0.14],[-1.93,0.97,-0.14],[-1.66,0.97,-0.14],[2.19,0.91,-0.02],[2.19,0.91,0.02],[2.19,0.8,0.02],[2.19,0.91,-0.02],[2.19,0.8,0.02],[2.19,0.8,-0.02],[-0.41,0.91,-0.02],[-0.41,0.91,0.02],[0.12,0.91,0.02],[-0.41,0.91,-0.02],[0.12,0.91,0.02],[0.12,0.91,-0.02],[-0.41,0.91,0.02],[-0.32,0.8,0.02],[0.22,0.8,0.02],[-0.41,0.91,0.02],[0.22,0.8,0.02],[0.12,0.91,0.02],[-0.32,0.8,0.02],[-0.32,0.8,-0.02],[0.22,0.8,-0.02],[-0.32,0.8,0.02],[0.22,0.8,-0.02],[0.22,0.8,0.02],[-0.32,0.8,-0.02],[-0.41,0.91,-0.02],[0.12,0.91,-0.02],[-0.32,0.8,-0.02],[0.12,0.91,-0.02],[0.22,0.8,-0.02],[-2.18,0.91,-0.02],[-2.18,0.67,-0.02],[-2.18,0.67,0.02],[-2.18,0.91,-0.02],[-2.18,0.67,0.02],[-2.18,0.91,0.02],[-0.41,0.91,-0.02],[-0.32,0.8,-0.02],[-1.33,0.67,-0.02],[-0.41,0.91,-0.02],[-1.33,0.67,-0.02],[-1.33,0.91,-0.02],[-0.32,0.8,-0.02],[-0.32,0.8,0.02],[-1.33,0.67,0.02],[-0.32,0.8,-0.02],[-1.33,0.67,0.02],[-1.33,0.67,-0.02],[-0.32,0.8,0.02],[-0.41,0.91,0.02],[-1.33,0.91,0.02],[-0.32,0.8,0.02],[-1.33,0.91,0.02],[-1.33,0.67,0.02],[-0.41,0.91,0.02],[-0.41,0.91,-0.02],[-1.33,0.91,-0.02],[-0.41,0.91,0.02],[-1.33,0.91,-0.02],[-1.33,0.91,0.02],[-1.33,0.91,-0.02],[-1.33,0.67,-0.02],[-2.18,0.67,-0.02],[-1.33,0.91,-0.02],[-2.18,0.67,-0.02],[-2.18,0.91,-0.02],[-1.33,0.67,-0.02],[-1.33,0.67,0.02],[-2.18,0.67,0.02],[-1.33,0.67,-0.02],[-2.18,0.67,0.02],[-2.18,0.67,-0.02],[-1.33,0.67,0.02],[-1.33,0.91,0.02],[-2.18,0.91,0.02],[-1.33,0.67,0.02],[-2.18,0.91,0.02],[-2.18,0.67,0.02],[-1.33,0.91,0.02],[-1.33,0.91,-0.02],[-2.18,0.91,-0.02],[-1.33,0.91,0.02],[-2.18,0.91,-0.02],[-2.18,0.91,0.02],[0.12,0.91,-0.02],[0.12,0.91,0.02],[0.71,0.91,0.02],[0.12,0.91,-0.02],[0.71,0.91,0.02],[0.71,0.91,-0.02],[0.12,0.91,0.02],[0.22,0.8,0.02],[0.8,0.8,0.02],[0.12,0.91,0.02],[0.8,0.8,0.02],[0.71,0.91,0.02],[0.22,0.8,0.02],[0.22,0.8,-0.02],[0.8,0.8,-0.02],[0.22,0.8,0.02],[0.8,0.8,-0.02],[0.8,0.8,0.02],[0.22,0.8,-0.02],[0.12,0.91,-0.02],[0.71,0.91,-0.02],[0.22,0.8,-0.02],[0.71,0.91,-0.02],[0.8,0.8,-0.02],[0.71,0.91,-0.02],[0.71,0.91,0.02],[1.24,0.91,0.02],[0.71,0.91,-0.02],[1.24,0.91,0.02],[1.24,0.91,-0.02],[0.71,0.91,0.02],[0.8,0.8,0.02],[1.33,0.8,0.02],[0.71,0.91,0.02],[1.33,0.8,0.02],[1.24,0.91,0.02],[0.8,0.8,0.02],[0.8,0.8,-0.02],[1.33,0.8,-0.02],[0.8,0.8,0.02],[1.33,0.8,-0.02],[1.33,0.8,0.02],[0.8,0.8,-0.02],[0.71,0.91,-0.02],[1.24,0.91,-0.02],[0.8,0.8,-0.02],[1.24,0.91,-0.02],[1.33,0.8,-0.02],[1.24,0.91,-0.02],[1.24,0.91,0.02],[1.75,0.91,0.02],[1.24,0.91,-0.02],[1.75,0.91,0.02],[1.75,0.91,-0.02],[1.24,0.91,0.02],[1.33,0.8,0.02],[1.85,0.8,0.02],[1.24,0.91,0.02],[1.85,0.8,0.02],[1.75,0.91,0.02],[1.33,0.8,0.02],[1.33,0.8,-0.02],[1.85,0.8,-0.02],[1.33,0.8,0.02],[1.85,0.8,-0.02],[1.85,0.8,0.02],[1.33,0.8,-0.02],[1.24,0.91,-0.02],[1.75,0.91,-0.02],[1.33,0.8,-0.02],[1.75,0.91,-0.02],[1.85,0.8,-0.02],[1.75,0.91,-0.02],[1.75,0.91,0.02],[2.19,0.91,0.02],[1.75,0.91,-0.02],[2.19,0.91,0.02],[2.19,0.91,-0.02],[1.75,0.91,0.02],[1.85,0.8,0.02],[2.19,0.8,0.02],[1.75,0.91,0.02],[2.19,0.8,0.02],[2.19,0.91,0.02],[1.85,0.8,0.02],[1.85,0.8,-0.02],[2.19,0.8,-0.02],[1.85,0.8,0.02],[2.19,0.8,-0.02],[2.19,0.8,0.02],[1.85,0.8,-0.02],[1.75,0.91,-0.02],[2.19,0.91,-0.02],[1.85,0.8,-0.02],[2.19,0.91,-0.02],[2.19,0.8,-0.02],[-2.01,-0.0,-0.21],[-1.58,-0.0,-0.21],[-1.58,-0.0,0.21],[-2.01,-0.0,-0.21],[-1.58,-0.0,0.21],[-2.01,-0.0,0.21]]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"aabb_max":[0.45,0.29,0.22],"aabb_min":[-0.45,0.0,-0.22],"dreiecke":60,"oid":"barrier_008","quelle_glb":"res://assets/objekte/military_desert/barriers/barrier_008.glb","vertices":[[0.01,0.29,-0.17],[0.39,0.19,-0.22],[0.37,0.28,-0.17],[0.01,0.29,-0.17],[0.01,0.19,-0.22],[0.39,0.19,-0.22],[0.37,0.28,-0.17],[0.39,0.19,-0.22],[0.44,0.18,-0.14],[0.37,0.28,-0.17],[0.42,0.18,0.14],[0.36,0.28,0.16],[0.37,0.28,-0.17],[0.44,0.18,-0.14],[0.42,0.18,0.14],[0.01,0.29,-0.17],[0.36,0.28,0.16],[0.01,0.29,0.17],[0.01,0.29,-0.17],[0.37,0.28,-0.17],[0.36,0.28,0.16],[0.36,0.28,0.16],[0.42,0.18,0.14],[0.36,0.18,0.21],[0.36,0.28,0.16],[0.01,0.19,0.22],[0.01,0.29,0.17],[0.36,0.28,0.16],[0.36,0.18,0.21],[0.01,0.19,0.22],[-0.37,0.29,-0.17],[0.01,0.29,0.17],[-0.37,0.29,0.16],[-0.37,0.29,-0.17],[0.01,0.29,-0.17],[0.01,0.29,0.17],[0.01,0.29,0.17],[-0.35,0.18,0.2],[-0.37,0.29,0.16],[0.01,0.29,0.17],[0.01,0.19,0.22],[-0.35,0.18,0.2],[0.01,0.19,0.22],[0.35,0.08,0.21],[0.0,0.07,0.22],[0.01,0.19,0.22],[0.36,0.18,0.21],[0.35,0.08,0.21],[-0.35,0.18,0.2],[0.0,0.07,0.22],[-0.36,0.08,0.2],[-0.35,0.18,0.2],[0.01,0.19,0.22],[0.0,0.07,0.22],[-0.36,0.01,0.14],[0.0,0.07,0.22],[0.0,0.0,0.15],[-0.36,0.01,0.14],[-0.36,0.08,0.2],[0.0,0.07,0.22],[0.0,0.0,0.15],[0.35,0.08,0.21],[0.35,0.01,0.14],[0.0,0.0,0.15],[0.0,0.07,0.22],[0.35,0.08,0.21],[0.0,0.0,0.15],[0.38,0.0,-0.15],[0.0,0.01,-0.14],[0.0,0.0,0.15],[0.35,0.01,0.14],[0.38,0.0,-0.15],[-0.36,0.01,0.14],[0.0,0.01,-0.14],[-0.38,0.0,-0.15],[-0.36,0.01,0.14],[0.0,0.0,0.15],[0.0,0.01,-0.14],[0.0,0.01,-0.14],[-0.36,0.08,-0.21],[-0.38,0.0,-0.15],[0.0,0.01,-0.14],[0.0,0.08,-0.21],[-0.36,0.08,-0.21],[0.38,0.0,-0.15],[0.0,0.08,-0.21],[0.0,0.01,-0.14],[0.38,0.0,-0.15],[0.38,0.07,-0.22],[0.0,0.08,-0.21],[0.39,0.19,-0.22],[0.0,0.08,-0.21],[0.38,0.07,-0.22],[0.39,0.19,-0.22],[0.01,0.19,-0.22],[0.0,0.08,-0.21],[0.01,0.19,-0.22],[-0.36,0.08,-0.21],[0.0,0.08,-0.21],[0.01,0.19,-0.22],[-0.35,0.18,-0.21],[-0.36,0.08,-0.21],[-0.37,0.29,-0.17],[0.01,0.19,-0.22],[0.01,0.29,-0.17],[-0.37,0.29,-0.17],[-0.35,0.18,-0.21],[0.01,0.19,-0.22],[-0.37,0.29,-0.17],[-0.42,0.18,-0.15],[-0.35,0.18,-0.21],[-0.45,0.07,-0.15],[-0.35,0.18,-0.21],[-0.42,0.18,-0.15],[-0.45,0.07,-0.15],[-0.36,0.08,-0.21],[-0.35,0.18,-0.21],[-0.37,0.29,0.16],[-0.42,0.18,-0.15],[-0.37,0.29,-0.17],[-0.37,0.29,0.16],[-0.45,0.19,0.15],[-0.42,0.18,-0.15],[-0.42,0.18,-0.15],[-0.45,0.07,0.15],[-0.45,0.07,-0.15],[-0.42,0.18,-0.15],[-0.45,0.19,0.15],[-0.45,0.07,0.15],[-0.37,0.29,0.16],[-0.35,0.18,0.2],[-0.45,0.19,0.15],[-0.36,0.08,0.2],[-0.45,0.19,0.15],[-0.35,0.18,0.2],[-0.36,0.08,0.2],[-0.45,0.07,0.15],[-0.45,0.19,0.15],[-0.38,0.0,-0.15],[-0.45,0.07,0.15],[-0.36,0.01,0.14],[-0.38,0.0,-0.15],[-0.45,0.07,-0.15],[-0.45,0.07,0.15],[-0.36,0.01,0.14],[-0.45,0.07,0.15],[-0.36,0.08,0.2],[-0.38,0.0,-0.15],[-0.36,0.08,-0.21],[-0.45,0.07,-0.15],[0.44,0.18,-0.14],[0.38,0.07,-0.22],[0.45,0.07,-0.15],[0.44,0.18,-0.14],[0.39,0.19,-0.22],[0.38,0.07,-0.22],[0.45,0.07,-0.15],[0.38,0.07,-0.22],[0.38,0.0,-0.15],[0.35,0.01,0.14],[0.45,0.07,-0.15],[0.38,0.0,-0.15],[0.35,0.01,0.14],[0.42,0.08,0.14],[0.45,0.07,-0.15],[0.42,0.18,0.14],[0.45,0.07,-0.15],[0.42,0.08,0.14],[0.42,0.18,0.14],[0.44,0.18,-0.14],[0.45,0.07,-0.15],[0.35,0.01,0.14],[0.35,0.08,0.21],[0.42,0.08,0.14],[0.42,0.08,0.14],[0.36,0.18,0.21],[0.42,0.18,0.14],[0.42,0.08,0.14],[0.35,0.08,0.21],[0.36,0.18,0.21]]}
|
||||
{"aabb_max":[0.45,0.29,0.22],"aabb_min":[-0.45,0.0,-0.22],"dreiecke":60,"oid":"barrier_008","quelle_glb":"res://assets/objekte/military_desert/sperren/barrier_008.glb","vertices":[[0.01,0.29,-0.17],[0.37,0.28,-0.17],[0.39,0.19,-0.22],[0.01,0.29,-0.17],[0.39,0.19,-0.22],[0.01,0.19,-0.22],[0.37,0.28,-0.17],[0.44,0.18,-0.14],[0.39,0.19,-0.22],[0.37,0.28,-0.17],[0.36,0.28,0.16],[0.42,0.18,0.14],[0.37,0.28,-0.17],[0.42,0.18,0.14],[0.44,0.18,-0.14],[0.01,0.29,-0.17],[0.01,0.29,0.17],[0.36,0.28,0.16],[0.01,0.29,-0.17],[0.36,0.28,0.16],[0.37,0.28,-0.17],[0.36,0.28,0.16],[0.36,0.18,0.21],[0.42,0.18,0.14],[0.36,0.28,0.16],[0.01,0.29,0.17],[0.01,0.19,0.22],[0.36,0.28,0.16],[0.01,0.19,0.22],[0.36,0.18,0.21],[-0.37,0.29,-0.17],[-0.37,0.29,0.16],[0.01,0.29,0.17],[-0.37,0.29,-0.17],[0.01,0.29,0.17],[0.01,0.29,-0.17],[0.01,0.29,0.17],[-0.37,0.29,0.16],[-0.35,0.18,0.2],[0.01,0.29,0.17],[-0.35,0.18,0.2],[0.01,0.19,0.22],[0.01,0.19,0.22],[-0.0,0.07,0.22],[0.35,0.08,0.21],[0.01,0.19,0.22],[0.35,0.08,0.21],[0.36,0.18,0.21],[-0.35,0.18,0.2],[-0.36,0.08,0.2],[-0.0,0.07,0.22],[-0.35,0.18,0.2],[-0.0,0.07,0.22],[0.01,0.19,0.22],[-0.36,0.01,0.14],[-0.0,0.0,0.15],[-0.0,0.07,0.22],[-0.36,0.01,0.14],[-0.0,0.07,0.22],[-0.36,0.08,0.2],[-0.0,0.0,0.15],[0.35,0.01,0.14],[0.35,0.08,0.21],[-0.0,0.0,0.15],[0.35,0.08,0.21],[-0.0,0.07,0.22],[-0.0,0.0,0.15],[-0.0,0.01,-0.14],[0.38,0.0,-0.15],[-0.0,0.0,0.15],[0.38,0.0,-0.15],[0.35,0.01,0.14],[-0.36,0.01,0.14],[-0.38,0.0,-0.15],[-0.0,0.01,-0.14],[-0.36,0.01,0.14],[-0.0,0.01,-0.14],[-0.0,0.0,0.15],[-0.0,0.01,-0.14],[-0.38,0.0,-0.15],[-0.36,0.08,-0.21],[-0.0,0.01,-0.14],[-0.36,0.08,-0.21],[-0.0,0.08,-0.21],[0.38,0.0,-0.15],[-0.0,0.01,-0.14],[-0.0,0.08,-0.21],[0.38,0.0,-0.15],[-0.0,0.08,-0.21],[0.38,0.07,-0.22],[0.39,0.19,-0.22],[0.38,0.07,-0.22],[-0.0,0.08,-0.21],[0.39,0.19,-0.22],[-0.0,0.08,-0.21],[0.01,0.19,-0.22],[0.01,0.19,-0.22],[-0.0,0.08,-0.21],[-0.36,0.08,-0.21],[0.01,0.19,-0.22],[-0.36,0.08,-0.21],[-0.35,0.18,-0.21],[-0.37,0.29,-0.17],[0.01,0.29,-0.17],[0.01,0.19,-0.22],[-0.37,0.29,-0.17],[0.01,0.19,-0.22],[-0.35,0.18,-0.21],[-0.37,0.29,-0.17],[-0.35,0.18,-0.21],[-0.42,0.18,-0.15],[-0.45,0.07,-0.15],[-0.42,0.18,-0.15],[-0.35,0.18,-0.21],[-0.45,0.07,-0.15],[-0.35,0.18,-0.21],[-0.36,0.08,-0.21],[-0.37,0.29,0.16],[-0.37,0.29,-0.17],[-0.42,0.18,-0.15],[-0.37,0.29,0.16],[-0.42,0.18,-0.15],[-0.45,0.19,0.15],[-0.42,0.18,-0.15],[-0.45,0.07,-0.15],[-0.45,0.07,0.15],[-0.42,0.18,-0.15],[-0.45,0.07,0.15],[-0.45,0.19,0.15],[-0.37,0.29,0.16],[-0.45,0.19,0.15],[-0.35,0.18,0.2],[-0.36,0.08,0.2],[-0.35,0.18,0.2],[-0.45,0.19,0.15],[-0.36,0.08,0.2],[-0.45,0.19,0.15],[-0.45,0.07,0.15],[-0.38,0.0,-0.15],[-0.36,0.01,0.14],[-0.45,0.07,0.15],[-0.38,0.0,-0.15],[-0.45,0.07,0.15],[-0.45,0.07,-0.15],[-0.36,0.01,0.14],[-0.36,0.08,0.2],[-0.45,0.07,0.15],[-0.38,0.0,-0.15],[-0.45,0.07,-0.15],[-0.36,0.08,-0.21],[0.44,0.18,-0.14],[0.45,0.07,-0.15],[0.38,0.07,-0.22],[0.44,0.18,-0.14],[0.38,0.07,-0.22],[0.39,0.19,-0.22],[0.45,0.07,-0.15],[0.38,0.0,-0.15],[0.38,0.07,-0.22],[0.35,0.01,0.14],[0.38,0.0,-0.15],[0.45,0.07,-0.15],[0.35,0.01,0.14],[0.45,0.07,-0.15],[0.42,0.08,0.14],[0.42,0.18,0.14],[0.42,0.08,0.14],[0.45,0.07,-0.15],[0.42,0.18,0.14],[0.45,0.07,-0.15],[0.44,0.18,-0.14],[0.35,0.01,0.14],[0.42,0.08,0.14],[0.35,0.08,0.21],[0.42,0.08,0.14],[0.42,0.18,0.14],[0.36,0.18,0.21],[0.42,0.08,0.14],[0.36,0.18,0.21],[0.35,0.08,0.21]]}
|
||||
|
|
@ -1 +1 @@
|
|||
{"aabb_max":[0.44,0.28,0.22],"aabb_min":[-0.44,0.0,-0.22],"dreiecke":60,"oid":"barrier_009","quelle_glb":"res://assets/objekte/military_desert/barriers/barrier_009.glb","vertices":[[0.02,0.0,0.15],[0.4,0.07,0.22],[0.37,0.01,0.14],[0.02,0.0,0.15],[0.02,0.07,0.22],[0.4,0.07,0.22],[0.37,0.01,0.14],[0.4,0.07,0.22],[0.43,0.08,0.14],[0.37,0.01,0.14],[0.43,0.08,-0.14],[0.37,0.01,-0.14],[0.37,0.01,0.14],[0.43,0.08,0.14],[0.43,0.08,-0.14],[0.02,0.0,0.15],[0.37,0.01,-0.14],[0.02,0.0,-0.15],[0.02,0.0,0.15],[0.37,0.01,0.14],[0.37,0.01,-0.14],[0.37,0.01,-0.14],[0.43,0.08,-0.14],[0.37,0.08,-0.21],[0.37,0.01,-0.14],[0.02,0.07,-0.22],[0.02,0.0,-0.15],[0.37,0.01,-0.14],[0.37,0.08,-0.21],[0.02,0.07,-0.22],[-0.37,0.0,0.15],[0.02,0.0,-0.15],[-0.37,0.0,-0.15],[-0.37,0.0,0.15],[0.02,0.0,0.15],[0.02,0.0,-0.15],[0.02,0.0,-0.15],[-0.34,0.08,-0.21],[-0.37,0.0,-0.15],[0.02,0.0,-0.15],[0.02,0.07,-0.22],[-0.34,0.08,-0.21],[0.02,0.07,-0.22],[0.36,0.21,-0.2],[0.02,0.21,-0.22],[0.02,0.07,-0.22],[0.37,0.08,-0.21],[0.36,0.21,-0.2],[-0.34,0.08,-0.21],[0.02,0.21,-0.22],[-0.33,0.21,-0.2],[-0.34,0.08,-0.21],[0.02,0.07,-0.22],[0.02,0.21,-0.22],[-0.33,0.27,-0.14],[0.02,0.21,-0.22],[0.02,0.28,-0.15],[-0.33,0.27,-0.14],[-0.33,0.21,-0.2],[0.02,0.21,-0.22],[0.02,0.28,-0.15],[0.36,0.21,-0.2],[0.36,0.27,-0.13],[0.02,0.28,-0.15],[0.02,0.21,-0.22],[0.36,0.21,-0.2],[0.02,0.28,-0.15],[0.37,0.28,0.15],[0.01,0.27,0.14],[0.02,0.28,-0.15],[0.36,0.27,-0.13],[0.37,0.28,0.15],[-0.33,0.27,-0.14],[0.01,0.27,0.14],[-0.34,0.28,0.15],[-0.33,0.27,-0.14],[0.02,0.28,-0.15],[0.01,0.27,0.14],[0.01,0.27,0.14],[-0.32,0.21,0.2],[-0.34,0.28,0.15],[0.01,0.27,0.14],[0.01,0.21,0.2],[-0.32,0.21,0.2],[0.37,0.28,0.15],[0.01,0.21,0.2],[0.01,0.27,0.14],[0.37,0.28,0.15],[0.37,0.21,0.21],[0.01,0.21,0.2],[0.4,0.07,0.22],[0.01,0.21,0.2],[0.37,0.21,0.21],[0.4,0.07,0.22],[0.02,0.07,0.22],[0.01,0.21,0.2],[0.02,0.07,0.22],[-0.32,0.21,0.2],[0.01,0.21,0.2],[0.02,0.07,0.22],[-0.34,0.08,0.21],[-0.32,0.21,0.2],[-0.37,0.0,0.15],[0.02,0.07,0.22],[0.02,0.0,0.15],[-0.37,0.0,0.15],[-0.34,0.08,0.21],[0.02,0.07,0.22],[-0.37,0.0,0.15],[-0.41,0.08,0.14],[-0.34,0.08,0.21],[-0.41,0.21,0.15],[-0.34,0.08,0.21],[-0.41,0.08,0.14],[-0.41,0.21,0.15],[-0.32,0.21,0.2],[-0.34,0.08,0.21],[-0.37,0.0,-0.15],[-0.41,0.08,0.14],[-0.37,0.0,0.15],[-0.37,0.0,-0.15],[-0.44,0.07,-0.15],[-0.41,0.08,0.14],[-0.41,0.08,0.14],[-0.42,0.21,-0.15],[-0.41,0.21,0.15],[-0.41,0.08,0.14],[-0.44,0.07,-0.15],[-0.42,0.21,-0.15],[-0.37,0.0,-0.15],[-0.34,0.08,-0.21],[-0.44,0.07,-0.15],[-0.33,0.21,-0.2],[-0.44,0.07,-0.15],[-0.34,0.08,-0.21],[-0.33,0.21,-0.2],[-0.42,0.21,-0.15],[-0.44,0.07,-0.15],[-0.34,0.28,0.15],[-0.42,0.21,-0.15],[-0.33,0.27,-0.14],[-0.34,0.28,0.15],[-0.41,0.21,0.15],[-0.42,0.21,-0.15],[-0.33,0.27,-0.14],[-0.42,0.21,-0.15],[-0.33,0.21,-0.2],[-0.34,0.28,0.15],[-0.32,0.21,0.2],[-0.41,0.21,0.15],[0.43,0.08,0.14],[0.37,0.21,0.21],[0.44,0.21,0.15],[0.43,0.08,0.14],[0.4,0.07,0.22],[0.37,0.21,0.21],[0.44,0.21,0.15],[0.37,0.21,0.21],[0.37,0.28,0.15],[0.36,0.27,-0.13],[0.44,0.21,0.15],[0.37,0.28,0.15],[0.36,0.27,-0.13],[0.42,0.21,-0.13],[0.44,0.21,0.15],[0.43,0.08,-0.14],[0.44,0.21,0.15],[0.42,0.21,-0.13],[0.43,0.08,-0.14],[0.43,0.08,0.14],[0.44,0.21,0.15],[0.36,0.27,-0.13],[0.36,0.21,-0.2],[0.42,0.21,-0.13],[0.42,0.21,-0.13],[0.37,0.08,-0.21],[0.43,0.08,-0.14],[0.42,0.21,-0.13],[0.36,0.21,-0.2],[0.37,0.08,-0.21]]}
|
||||
{"aabb_max":[0.44,0.28,0.22],"aabb_min":[-0.44,-0.0,-0.22],"dreiecke":60,"oid":"barrier_009","quelle_glb":"res://assets/objekte/military_desert/sperren/barrier_009.glb","vertices":[[0.02,-0.0,0.15],[0.37,0.01,0.14],[0.4,0.07,0.22],[0.02,-0.0,0.15],[0.4,0.07,0.22],[0.02,0.07,0.22],[0.37,0.01,0.14],[0.43,0.08,0.14],[0.4,0.07,0.22],[0.37,0.01,0.14],[0.37,0.01,-0.14],[0.43,0.08,-0.14],[0.37,0.01,0.14],[0.43,0.08,-0.14],[0.43,0.08,0.14],[0.02,-0.0,0.15],[0.02,-0.0,-0.15],[0.37,0.01,-0.14],[0.02,-0.0,0.15],[0.37,0.01,-0.14],[0.37,0.01,0.14],[0.37,0.01,-0.14],[0.37,0.08,-0.21],[0.43,0.08,-0.14],[0.37,0.01,-0.14],[0.02,-0.0,-0.15],[0.02,0.07,-0.22],[0.37,0.01,-0.14],[0.02,0.07,-0.22],[0.37,0.08,-0.21],[-0.37,-0.0,0.15],[-0.37,-0.0,-0.15],[0.02,-0.0,-0.15],[-0.37,-0.0,0.15],[0.02,-0.0,-0.15],[0.02,-0.0,0.15],[0.02,-0.0,-0.15],[-0.37,-0.0,-0.15],[-0.34,0.08,-0.21],[0.02,-0.0,-0.15],[-0.34,0.08,-0.21],[0.02,0.07,-0.22],[0.02,0.07,-0.22],[0.02,0.21,-0.22],[0.36,0.21,-0.2],[0.02,0.07,-0.22],[0.36,0.21,-0.2],[0.37,0.08,-0.21],[-0.34,0.08,-0.21],[-0.33,0.21,-0.2],[0.02,0.21,-0.22],[-0.34,0.08,-0.21],[0.02,0.21,-0.22],[0.02,0.07,-0.22],[-0.33,0.27,-0.14],[0.02,0.28,-0.15],[0.02,0.21,-0.22],[-0.33,0.27,-0.14],[0.02,0.21,-0.22],[-0.33,0.21,-0.2],[0.02,0.28,-0.15],[0.36,0.27,-0.13],[0.36,0.21,-0.2],[0.02,0.28,-0.15],[0.36,0.21,-0.2],[0.02,0.21,-0.22],[0.02,0.28,-0.15],[0.01,0.27,0.14],[0.37,0.28,0.15],[0.02,0.28,-0.15],[0.37,0.28,0.15],[0.36,0.27,-0.13],[-0.33,0.27,-0.14],[-0.34,0.28,0.15],[0.01,0.27,0.14],[-0.33,0.27,-0.14],[0.01,0.27,0.14],[0.02,0.28,-0.15],[0.01,0.27,0.14],[-0.34,0.28,0.15],[-0.32,0.21,0.2],[0.01,0.27,0.14],[-0.32,0.21,0.2],[0.01,0.21,0.2],[0.37,0.28,0.15],[0.01,0.27,0.14],[0.01,0.21,0.2],[0.37,0.28,0.15],[0.01,0.21,0.2],[0.37,0.21,0.21],[0.4,0.07,0.22],[0.37,0.21,0.21],[0.01,0.21,0.2],[0.4,0.07,0.22],[0.01,0.21,0.2],[0.02,0.07,0.22],[0.02,0.07,0.22],[0.01,0.21,0.2],[-0.32,0.21,0.2],[0.02,0.07,0.22],[-0.32,0.21,0.2],[-0.34,0.08,0.21],[-0.37,-0.0,0.15],[0.02,-0.0,0.15],[0.02,0.07,0.22],[-0.37,-0.0,0.15],[0.02,0.07,0.22],[-0.34,0.08,0.21],[-0.37,-0.0,0.15],[-0.34,0.08,0.21],[-0.41,0.08,0.14],[-0.41,0.21,0.15],[-0.41,0.08,0.14],[-0.34,0.08,0.21],[-0.41,0.21,0.15],[-0.34,0.08,0.21],[-0.32,0.21,0.2],[-0.37,-0.0,-0.15],[-0.37,-0.0,0.15],[-0.41,0.08,0.14],[-0.37,-0.0,-0.15],[-0.41,0.08,0.14],[-0.44,0.07,-0.15],[-0.41,0.08,0.14],[-0.41,0.21,0.15],[-0.42,0.21,-0.15],[-0.41,0.08,0.14],[-0.42,0.21,-0.15],[-0.44,0.07,-0.15],[-0.37,-0.0,-0.15],[-0.44,0.07,-0.15],[-0.34,0.08,-0.21],[-0.33,0.21,-0.2],[-0.34,0.08,-0.21],[-0.44,0.07,-0.15],[-0.33,0.21,-0.2],[-0.44,0.07,-0.15],[-0.42,0.21,-0.15],[-0.34,0.28,0.15],[-0.33,0.27,-0.14],[-0.42,0.21,-0.15],[-0.34,0.28,0.15],[-0.42,0.21,-0.15],[-0.41,0.21,0.15],[-0.33,0.27,-0.14],[-0.33,0.21,-0.2],[-0.42,0.21,-0.15],[-0.34,0.28,0.15],[-0.41,0.21,0.15],[-0.32,0.21,0.2],[0.43,0.08,0.14],[0.44,0.21,0.15],[0.37,0.21,0.21],[0.43,0.08,0.14],[0.37,0.21,0.21],[0.4,0.07,0.22],[0.44,0.21,0.15],[0.37,0.28,0.15],[0.37,0.21,0.21],[0.36,0.27,-0.13],[0.37,0.28,0.15],[0.44,0.21,0.15],[0.36,0.27,-0.13],[0.44,0.21,0.15],[0.42,0.21,-0.13],[0.43,0.08,-0.14],[0.42,0.21,-0.13],[0.44,0.21,0.15],[0.43,0.08,-0.14],[0.44,0.21,0.15],[0.43,0.08,0.14],[0.36,0.27,-0.13],[0.42,0.21,-0.13],[0.36,0.21,-0.2],[0.42,0.21,-0.13],[0.43,0.08,-0.14],[0.37,0.08,-0.21],[0.42,0.21,-0.13],[0.37,0.08,-0.21],[0.36,0.21,-0.2]]}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"aabb_max":[0.45,0.29,0.22],"aabb_min":[-0.45,0.0,-0.22],"dreiecke":60,"oid":"barrier_011","quelle_glb":"res://assets/objekte/military_desert/barriers/barrier_011.glb","vertices":[[0.01,0.29,-0.17],[0.39,0.19,-0.22],[0.37,0.28,-0.17],[0.01,0.29,-0.17],[0.01,0.19,-0.22],[0.39,0.19,-0.22],[0.37,0.28,-0.17],[0.39,0.19,-0.22],[0.44,0.18,-0.14],[0.37,0.28,-0.17],[0.42,0.18,0.14],[0.36,0.28,0.16],[0.37,0.28,-0.17],[0.44,0.18,-0.14],[0.42,0.18,0.14],[0.01,0.29,-0.17],[0.36,0.28,0.16],[0.01,0.29,0.17],[0.01,0.29,-0.17],[0.37,0.28,-0.17],[0.36,0.28,0.16],[0.36,0.28,0.16],[0.42,0.18,0.14],[0.36,0.18,0.21],[0.36,0.28,0.16],[0.01,0.19,0.22],[0.01,0.29,0.17],[0.36,0.28,0.16],[0.36,0.18,0.21],[0.01,0.19,0.22],[-0.37,0.29,-0.17],[0.01,0.29,0.17],[-0.37,0.29,0.16],[-0.37,0.29,-0.17],[0.01,0.29,-0.17],[0.01,0.29,0.17],[0.01,0.29,0.17],[-0.35,0.18,0.2],[-0.37,0.29,0.16],[0.01,0.29,0.17],[0.01,0.19,0.22],[-0.35,0.18,0.2],[0.01,0.19,0.22],[0.35,0.08,0.21],[0.0,0.07,0.22],[0.01,0.19,0.22],[0.36,0.18,0.21],[0.35,0.08,0.21],[-0.35,0.18,0.2],[0.0,0.07,0.22],[-0.36,0.08,0.2],[-0.35,0.18,0.2],[0.01,0.19,0.22],[0.0,0.07,0.22],[-0.36,0.01,0.14],[0.0,0.07,0.22],[0.0,0.0,0.15],[-0.36,0.01,0.14],[-0.36,0.08,0.2],[0.0,0.07,0.22],[0.0,0.0,0.15],[0.35,0.08,0.21],[0.35,0.01,0.14],[0.0,0.0,0.15],[0.0,0.07,0.22],[0.35,0.08,0.21],[0.0,0.0,0.15],[0.38,0.0,-0.15],[0.0,0.01,-0.14],[0.0,0.0,0.15],[0.35,0.01,0.14],[0.38,0.0,-0.15],[-0.36,0.01,0.14],[0.0,0.01,-0.14],[-0.38,0.0,-0.15],[-0.36,0.01,0.14],[0.0,0.0,0.15],[0.0,0.01,-0.14],[0.0,0.01,-0.14],[-0.36,0.08,-0.21],[-0.38,0.0,-0.15],[0.0,0.01,-0.14],[0.0,0.08,-0.21],[-0.36,0.08,-0.21],[0.38,0.0,-0.15],[0.0,0.08,-0.21],[0.0,0.01,-0.14],[0.38,0.0,-0.15],[0.38,0.07,-0.22],[0.0,0.08,-0.21],[0.39,0.19,-0.22],[0.0,0.08,-0.21],[0.38,0.07,-0.22],[0.39,0.19,-0.22],[0.01,0.19,-0.22],[0.0,0.08,-0.21],[0.01,0.19,-0.22],[-0.36,0.08,-0.21],[0.0,0.08,-0.21],[0.01,0.19,-0.22],[-0.35,0.18,-0.21],[-0.36,0.08,-0.21],[-0.37,0.29,-0.17],[0.01,0.19,-0.22],[0.01,0.29,-0.17],[-0.37,0.29,-0.17],[-0.35,0.18,-0.21],[0.01,0.19,-0.22],[-0.37,0.29,-0.17],[-0.42,0.18,-0.15],[-0.35,0.18,-0.21],[-0.45,0.07,-0.15],[-0.35,0.18,-0.21],[-0.42,0.18,-0.15],[-0.45,0.07,-0.15],[-0.36,0.08,-0.21],[-0.35,0.18,-0.21],[-0.37,0.29,0.16],[-0.42,0.18,-0.15],[-0.37,0.29,-0.17],[-0.37,0.29,0.16],[-0.45,0.19,0.15],[-0.42,0.18,-0.15],[-0.42,0.18,-0.15],[-0.45,0.07,0.15],[-0.45,0.07,-0.15],[-0.42,0.18,-0.15],[-0.45,0.19,0.15],[-0.45,0.07,0.15],[-0.37,0.29,0.16],[-0.35,0.18,0.2],[-0.45,0.19,0.15],[-0.36,0.08,0.2],[-0.45,0.19,0.15],[-0.35,0.18,0.2],[-0.36,0.08,0.2],[-0.45,0.07,0.15],[-0.45,0.19,0.15],[-0.38,0.0,-0.15],[-0.45,0.07,0.15],[-0.36,0.01,0.14],[-0.38,0.0,-0.15],[-0.45,0.07,-0.15],[-0.45,0.07,0.15],[-0.36,0.01,0.14],[-0.45,0.07,0.15],[-0.36,0.08,0.2],[-0.38,0.0,-0.15],[-0.36,0.08,-0.21],[-0.45,0.07,-0.15],[0.44,0.18,-0.14],[0.38,0.07,-0.22],[0.45,0.07,-0.15],[0.44,0.18,-0.14],[0.39,0.19,-0.22],[0.38,0.07,-0.22],[0.45,0.07,-0.15],[0.38,0.07,-0.22],[0.38,0.0,-0.15],[0.35,0.01,0.14],[0.45,0.07,-0.15],[0.38,0.0,-0.15],[0.35,0.01,0.14],[0.42,0.08,0.14],[0.45,0.07,-0.15],[0.42,0.18,0.14],[0.45,0.07,-0.15],[0.42,0.08,0.14],[0.42,0.18,0.14],[0.44,0.18,-0.14],[0.45,0.07,-0.15],[0.35,0.01,0.14],[0.35,0.08,0.21],[0.42,0.08,0.14],[0.42,0.08,0.14],[0.36,0.18,0.21],[0.42,0.18,0.14],[0.42,0.08,0.14],[0.35,0.08,0.21],[0.36,0.18,0.21]]}
|
||||
{"aabb_max":[0.45,0.29,0.22],"aabb_min":[-0.45,0.0,-0.22],"dreiecke":60,"oid":"barrier_011","quelle_glb":"res://assets/objekte/military_desert/sperren/barrier_011.glb","vertices":[[0.01,0.29,-0.17],[0.37,0.28,-0.17],[0.39,0.19,-0.22],[0.01,0.29,-0.17],[0.39,0.19,-0.22],[0.01,0.19,-0.22],[0.37,0.28,-0.17],[0.44,0.18,-0.14],[0.39,0.19,-0.22],[0.37,0.28,-0.17],[0.36,0.28,0.16],[0.42,0.18,0.14],[0.37,0.28,-0.17],[0.42,0.18,0.14],[0.44,0.18,-0.14],[0.01,0.29,-0.17],[0.01,0.29,0.17],[0.36,0.28,0.16],[0.01,0.29,-0.17],[0.36,0.28,0.16],[0.37,0.28,-0.17],[0.36,0.28,0.16],[0.36,0.18,0.21],[0.42,0.18,0.14],[0.36,0.28,0.16],[0.01,0.29,0.17],[0.01,0.19,0.22],[0.36,0.28,0.16],[0.01,0.19,0.22],[0.36,0.18,0.21],[-0.37,0.29,-0.17],[-0.37,0.29,0.16],[0.01,0.29,0.17],[-0.37,0.29,-0.17],[0.01,0.29,0.17],[0.01,0.29,-0.17],[0.01,0.29,0.17],[-0.37,0.29,0.16],[-0.35,0.18,0.2],[0.01,0.29,0.17],[-0.35,0.18,0.2],[0.01,0.19,0.22],[0.01,0.19,0.22],[-0.0,0.07,0.22],[0.35,0.08,0.21],[0.01,0.19,0.22],[0.35,0.08,0.21],[0.36,0.18,0.21],[-0.35,0.18,0.2],[-0.36,0.08,0.2],[-0.0,0.07,0.22],[-0.35,0.18,0.2],[-0.0,0.07,0.22],[0.01,0.19,0.22],[-0.36,0.01,0.14],[-0.0,0.0,0.15],[-0.0,0.07,0.22],[-0.36,0.01,0.14],[-0.0,0.07,0.22],[-0.36,0.08,0.2],[-0.0,0.0,0.15],[0.35,0.01,0.14],[0.35,0.08,0.21],[-0.0,0.0,0.15],[0.35,0.08,0.21],[-0.0,0.07,0.22],[-0.0,0.0,0.15],[-0.0,0.01,-0.14],[0.38,0.0,-0.15],[-0.0,0.0,0.15],[0.38,0.0,-0.15],[0.35,0.01,0.14],[-0.36,0.01,0.14],[-0.38,0.0,-0.15],[-0.0,0.01,-0.14],[-0.36,0.01,0.14],[-0.0,0.01,-0.14],[-0.0,0.0,0.15],[-0.0,0.01,-0.14],[-0.38,0.0,-0.15],[-0.36,0.08,-0.21],[-0.0,0.01,-0.14],[-0.36,0.08,-0.21],[-0.0,0.08,-0.21],[0.38,0.0,-0.15],[-0.0,0.01,-0.14],[-0.0,0.08,-0.21],[0.38,0.0,-0.15],[-0.0,0.08,-0.21],[0.38,0.07,-0.22],[0.39,0.19,-0.22],[0.38,0.07,-0.22],[-0.0,0.08,-0.21],[0.39,0.19,-0.22],[-0.0,0.08,-0.21],[0.01,0.19,-0.22],[0.01,0.19,-0.22],[-0.0,0.08,-0.21],[-0.36,0.08,-0.21],[0.01,0.19,-0.22],[-0.36,0.08,-0.21],[-0.35,0.18,-0.21],[-0.37,0.29,-0.17],[0.01,0.29,-0.17],[0.01,0.19,-0.22],[-0.37,0.29,-0.17],[0.01,0.19,-0.22],[-0.35,0.18,-0.21],[-0.37,0.29,-0.17],[-0.35,0.18,-0.21],[-0.42,0.18,-0.15],[-0.45,0.07,-0.15],[-0.42,0.18,-0.15],[-0.35,0.18,-0.21],[-0.45,0.07,-0.15],[-0.35,0.18,-0.21],[-0.36,0.08,-0.21],[-0.37,0.29,0.16],[-0.37,0.29,-0.17],[-0.42,0.18,-0.15],[-0.37,0.29,0.16],[-0.42,0.18,-0.15],[-0.45,0.19,0.15],[-0.42,0.18,-0.15],[-0.45,0.07,-0.15],[-0.45,0.07,0.15],[-0.42,0.18,-0.15],[-0.45,0.07,0.15],[-0.45,0.19,0.15],[-0.37,0.29,0.16],[-0.45,0.19,0.15],[-0.35,0.18,0.2],[-0.36,0.08,0.2],[-0.35,0.18,0.2],[-0.45,0.19,0.15],[-0.36,0.08,0.2],[-0.45,0.19,0.15],[-0.45,0.07,0.15],[-0.38,0.0,-0.15],[-0.36,0.01,0.14],[-0.45,0.07,0.15],[-0.38,0.0,-0.15],[-0.45,0.07,0.15],[-0.45,0.07,-0.15],[-0.36,0.01,0.14],[-0.36,0.08,0.2],[-0.45,0.07,0.15],[-0.38,0.0,-0.15],[-0.45,0.07,-0.15],[-0.36,0.08,-0.21],[0.44,0.18,-0.14],[0.45,0.07,-0.15],[0.38,0.07,-0.22],[0.44,0.18,-0.14],[0.38,0.07,-0.22],[0.39,0.19,-0.22],[0.45,0.07,-0.15],[0.38,0.0,-0.15],[0.38,0.07,-0.22],[0.35,0.01,0.14],[0.38,0.0,-0.15],[0.45,0.07,-0.15],[0.35,0.01,0.14],[0.45,0.07,-0.15],[0.42,0.08,0.14],[0.42,0.18,0.14],[0.42,0.08,0.14],[0.45,0.07,-0.15],[0.42,0.18,0.14],[0.45,0.07,-0.15],[0.44,0.18,-0.14],[0.35,0.01,0.14],[0.42,0.08,0.14],[0.35,0.08,0.21],[0.42,0.08,0.14],[0.42,0.18,0.14],[0.36,0.18,0.21],[0.42,0.08,0.14],[0.36,0.18,0.21],[0.35,0.08,0.21]]}
|
||||
|
|
@ -1 +1 @@
|
|||
{"aabb_max":[0.44,0.28,0.22],"aabb_min":[-0.44,0.0,-0.22],"dreiecke":60,"oid":"barrier_012","quelle_glb":"res://assets/objekte/military_desert/barriers/barrier_012.glb","vertices":[[0.02,0.0,0.15],[0.4,0.07,0.22],[0.37,0.01,0.14],[0.02,0.0,0.15],[0.02,0.07,0.22],[0.4,0.07,0.22],[0.37,0.01,0.14],[0.4,0.07,0.22],[0.43,0.08,0.14],[0.37,0.01,0.14],[0.43,0.08,-0.14],[0.37,0.01,-0.14],[0.37,0.01,0.14],[0.43,0.08,0.14],[0.43,0.08,-0.14],[0.02,0.0,0.15],[0.37,0.01,-0.14],[0.02,0.0,-0.15],[0.02,0.0,0.15],[0.37,0.01,0.14],[0.37,0.01,-0.14],[0.37,0.01,-0.14],[0.43,0.08,-0.14],[0.37,0.08,-0.21],[0.37,0.01,-0.14],[0.02,0.07,-0.22],[0.02,0.0,-0.15],[0.37,0.01,-0.14],[0.37,0.08,-0.21],[0.02,0.07,-0.22],[-0.37,0.0,0.15],[0.02,0.0,-0.15],[-0.37,0.0,-0.15],[-0.37,0.0,0.15],[0.02,0.0,0.15],[0.02,0.0,-0.15],[0.02,0.0,-0.15],[-0.34,0.08,-0.21],[-0.37,0.0,-0.15],[0.02,0.0,-0.15],[0.02,0.07,-0.22],[-0.34,0.08,-0.21],[0.02,0.07,-0.22],[0.36,0.21,-0.2],[0.02,0.21,-0.22],[0.02,0.07,-0.22],[0.37,0.08,-0.21],[0.36,0.21,-0.2],[-0.34,0.08,-0.21],[0.02,0.21,-0.22],[-0.33,0.21,-0.2],[-0.34,0.08,-0.21],[0.02,0.07,-0.22],[0.02,0.21,-0.22],[-0.33,0.27,-0.14],[0.02,0.21,-0.22],[0.02,0.28,-0.15],[-0.33,0.27,-0.14],[-0.33,0.21,-0.2],[0.02,0.21,-0.22],[0.02,0.28,-0.15],[0.36,0.21,-0.2],[0.36,0.27,-0.13],[0.02,0.28,-0.15],[0.02,0.21,-0.22],[0.36,0.21,-0.2],[0.02,0.28,-0.15],[0.37,0.28,0.15],[0.01,0.27,0.14],[0.02,0.28,-0.15],[0.36,0.27,-0.13],[0.37,0.28,0.15],[-0.33,0.27,-0.14],[0.01,0.27,0.14],[-0.34,0.28,0.15],[-0.33,0.27,-0.14],[0.02,0.28,-0.15],[0.01,0.27,0.14],[0.01,0.27,0.14],[-0.32,0.21,0.2],[-0.34,0.28,0.15],[0.01,0.27,0.14],[0.01,0.21,0.2],[-0.32,0.21,0.2],[0.37,0.28,0.15],[0.01,0.21,0.2],[0.01,0.27,0.14],[0.37,0.28,0.15],[0.37,0.21,0.21],[0.01,0.21,0.2],[0.4,0.07,0.22],[0.01,0.21,0.2],[0.37,0.21,0.21],[0.4,0.07,0.22],[0.02,0.07,0.22],[0.01,0.21,0.2],[0.02,0.07,0.22],[-0.32,0.21,0.2],[0.01,0.21,0.2],[0.02,0.07,0.22],[-0.34,0.08,0.21],[-0.32,0.21,0.2],[-0.37,0.0,0.15],[0.02,0.07,0.22],[0.02,0.0,0.15],[-0.37,0.0,0.15],[-0.34,0.08,0.21],[0.02,0.07,0.22],[-0.37,0.0,0.15],[-0.41,0.08,0.14],[-0.34,0.08,0.21],[-0.41,0.21,0.15],[-0.34,0.08,0.21],[-0.41,0.08,0.14],[-0.41,0.21,0.15],[-0.32,0.21,0.2],[-0.34,0.08,0.21],[-0.37,0.0,-0.15],[-0.41,0.08,0.14],[-0.37,0.0,0.15],[-0.37,0.0,-0.15],[-0.44,0.07,-0.15],[-0.41,0.08,0.14],[-0.41,0.08,0.14],[-0.42,0.21,-0.15],[-0.41,0.21,0.15],[-0.41,0.08,0.14],[-0.44,0.07,-0.15],[-0.42,0.21,-0.15],[-0.37,0.0,-0.15],[-0.34,0.08,-0.21],[-0.44,0.07,-0.15],[-0.33,0.21,-0.2],[-0.44,0.07,-0.15],[-0.34,0.08,-0.21],[-0.33,0.21,-0.2],[-0.42,0.21,-0.15],[-0.44,0.07,-0.15],[-0.34,0.28,0.15],[-0.42,0.21,-0.15],[-0.33,0.27,-0.14],[-0.34,0.28,0.15],[-0.41,0.21,0.15],[-0.42,0.21,-0.15],[-0.33,0.27,-0.14],[-0.42,0.21,-0.15],[-0.33,0.21,-0.2],[-0.34,0.28,0.15],[-0.32,0.21,0.2],[-0.41,0.21,0.15],[0.43,0.08,0.14],[0.37,0.21,0.21],[0.44,0.21,0.15],[0.43,0.08,0.14],[0.4,0.07,0.22],[0.37,0.21,0.21],[0.44,0.21,0.15],[0.37,0.21,0.21],[0.37,0.28,0.15],[0.36,0.27,-0.13],[0.44,0.21,0.15],[0.37,0.28,0.15],[0.36,0.27,-0.13],[0.42,0.21,-0.13],[0.44,0.21,0.15],[0.43,0.08,-0.14],[0.44,0.21,0.15],[0.42,0.21,-0.13],[0.43,0.08,-0.14],[0.43,0.08,0.14],[0.44,0.21,0.15],[0.36,0.27,-0.13],[0.36,0.21,-0.2],[0.42,0.21,-0.13],[0.42,0.21,-0.13],[0.37,0.08,-0.21],[0.43,0.08,-0.14],[0.42,0.21,-0.13],[0.36,0.21,-0.2],[0.37,0.08,-0.21]]}
|
||||
{"aabb_max":[0.44,0.28,0.22],"aabb_min":[-0.44,-0.0,-0.22],"dreiecke":60,"oid":"barrier_012","quelle_glb":"res://assets/objekte/military_desert/sperren/barrier_012.glb","vertices":[[0.02,-0.0,0.15],[0.37,0.01,0.14],[0.4,0.07,0.22],[0.02,-0.0,0.15],[0.4,0.07,0.22],[0.02,0.07,0.22],[0.37,0.01,0.14],[0.43,0.08,0.14],[0.4,0.07,0.22],[0.37,0.01,0.14],[0.37,0.01,-0.14],[0.43,0.08,-0.14],[0.37,0.01,0.14],[0.43,0.08,-0.14],[0.43,0.08,0.14],[0.02,-0.0,0.15],[0.02,-0.0,-0.15],[0.37,0.01,-0.14],[0.02,-0.0,0.15],[0.37,0.01,-0.14],[0.37,0.01,0.14],[0.37,0.01,-0.14],[0.37,0.08,-0.21],[0.43,0.08,-0.14],[0.37,0.01,-0.14],[0.02,-0.0,-0.15],[0.02,0.07,-0.22],[0.37,0.01,-0.14],[0.02,0.07,-0.22],[0.37,0.08,-0.21],[-0.37,-0.0,0.15],[-0.37,-0.0,-0.15],[0.02,-0.0,-0.15],[-0.37,-0.0,0.15],[0.02,-0.0,-0.15],[0.02,-0.0,0.15],[0.02,-0.0,-0.15],[-0.37,-0.0,-0.15],[-0.34,0.08,-0.21],[0.02,-0.0,-0.15],[-0.34,0.08,-0.21],[0.02,0.07,-0.22],[0.02,0.07,-0.22],[0.02,0.21,-0.22],[0.36,0.21,-0.2],[0.02,0.07,-0.22],[0.36,0.21,-0.2],[0.37,0.08,-0.21],[-0.34,0.08,-0.21],[-0.33,0.21,-0.2],[0.02,0.21,-0.22],[-0.34,0.08,-0.21],[0.02,0.21,-0.22],[0.02,0.07,-0.22],[-0.33,0.27,-0.14],[0.02,0.28,-0.15],[0.02,0.21,-0.22],[-0.33,0.27,-0.14],[0.02,0.21,-0.22],[-0.33,0.21,-0.2],[0.02,0.28,-0.15],[0.36,0.27,-0.13],[0.36,0.21,-0.2],[0.02,0.28,-0.15],[0.36,0.21,-0.2],[0.02,0.21,-0.22],[0.02,0.28,-0.15],[0.01,0.27,0.14],[0.37,0.28,0.15],[0.02,0.28,-0.15],[0.37,0.28,0.15],[0.36,0.27,-0.13],[-0.33,0.27,-0.14],[-0.34,0.28,0.15],[0.01,0.27,0.14],[-0.33,0.27,-0.14],[0.01,0.27,0.14],[0.02,0.28,-0.15],[0.01,0.27,0.14],[-0.34,0.28,0.15],[-0.32,0.21,0.2],[0.01,0.27,0.14],[-0.32,0.21,0.2],[0.01,0.21,0.2],[0.37,0.28,0.15],[0.01,0.27,0.14],[0.01,0.21,0.2],[0.37,0.28,0.15],[0.01,0.21,0.2],[0.37,0.21,0.21],[0.4,0.07,0.22],[0.37,0.21,0.21],[0.01,0.21,0.2],[0.4,0.07,0.22],[0.01,0.21,0.2],[0.02,0.07,0.22],[0.02,0.07,0.22],[0.01,0.21,0.2],[-0.32,0.21,0.2],[0.02,0.07,0.22],[-0.32,0.21,0.2],[-0.34,0.08,0.21],[-0.37,-0.0,0.15],[0.02,-0.0,0.15],[0.02,0.07,0.22],[-0.37,-0.0,0.15],[0.02,0.07,0.22],[-0.34,0.08,0.21],[-0.37,-0.0,0.15],[-0.34,0.08,0.21],[-0.41,0.08,0.14],[-0.41,0.21,0.15],[-0.41,0.08,0.14],[-0.34,0.08,0.21],[-0.41,0.21,0.15],[-0.34,0.08,0.21],[-0.32,0.21,0.2],[-0.37,-0.0,-0.15],[-0.37,-0.0,0.15],[-0.41,0.08,0.14],[-0.37,-0.0,-0.15],[-0.41,0.08,0.14],[-0.44,0.07,-0.15],[-0.41,0.08,0.14],[-0.41,0.21,0.15],[-0.42,0.21,-0.15],[-0.41,0.08,0.14],[-0.42,0.21,-0.15],[-0.44,0.07,-0.15],[-0.37,-0.0,-0.15],[-0.44,0.07,-0.15],[-0.34,0.08,-0.21],[-0.33,0.21,-0.2],[-0.34,0.08,-0.21],[-0.44,0.07,-0.15],[-0.33,0.21,-0.2],[-0.44,0.07,-0.15],[-0.42,0.21,-0.15],[-0.34,0.28,0.15],[-0.33,0.27,-0.14],[-0.42,0.21,-0.15],[-0.34,0.28,0.15],[-0.42,0.21,-0.15],[-0.41,0.21,0.15],[-0.33,0.27,-0.14],[-0.33,0.21,-0.2],[-0.42,0.21,-0.15],[-0.34,0.28,0.15],[-0.41,0.21,0.15],[-0.32,0.21,0.2],[0.43,0.08,0.14],[0.44,0.21,0.15],[0.37,0.21,0.21],[0.43,0.08,0.14],[0.37,0.21,0.21],[0.4,0.07,0.22],[0.44,0.21,0.15],[0.37,0.28,0.15],[0.37,0.21,0.21],[0.36,0.27,-0.13],[0.37,0.28,0.15],[0.44,0.21,0.15],[0.36,0.27,-0.13],[0.44,0.21,0.15],[0.42,0.21,-0.13],[0.43,0.08,-0.14],[0.42,0.21,-0.13],[0.44,0.21,0.15],[0.43,0.08,-0.14],[0.44,0.21,0.15],[0.43,0.08,0.14],[0.36,0.27,-0.13],[0.42,0.21,-0.13],[0.36,0.21,-0.2],[0.42,0.21,-0.13],[0.43,0.08,-0.14],[0.37,0.08,-0.21],[0.42,0.21,-0.13],[0.37,0.08,-0.21],[0.36,0.21,-0.2]]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
library/kollisions/bau_boden.json
Normal file
1
library/kollisions/bau_boden.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,0.2,1.0],"aabb_min":[-1.0,0.0,-1.0],"dreiecke":24,"oid":"bau_boden","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_boden.glb","vertices":[[-1.0,0.2,-1.0],[1.0,0.2,-1.0],[1.0,0.2,1.0],[1.0,0.2,-1.0],[-1.0,0.2,-1.0],[1.0,0.2,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[-1.0,0.2,-1.0],[1.0,0.2,1.0],[-1.0,0.2,1.0],[1.0,0.2,1.0],[-1.0,0.2,-1.0],[-1.0,0.2,1.0],[-1.0,0.0,-1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0],[-1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.2,-1.0],[1.0,0.0,-1.0],[1.0,0.2,-1.0],[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[-1.0,0.0,-1.0],[-1.0,0.2,-1.0],[1.0,0.2,-1.0],[-1.0,0.2,-1.0],[-1.0,0.0,-1.0],[1.0,0.2,-1.0],[1.0,0.0,-1.0],[1.0,0.2,1.0],[1.0,0.0,1.0],[1.0,0.2,1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[1.0,0.2,-1.0],[1.0,0.2,1.0],[1.0,0.2,-1.0],[1.0,0.0,-1.0],[1.0,0.2,1.0],[1.0,0.0,1.0],[-1.0,0.2,1.0],[-1.0,0.0,1.0],[-1.0,0.2,1.0],[1.0,0.0,1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0],[1.0,0.2,1.0],[-1.0,0.2,1.0],[1.0,0.2,1.0],[1.0,0.0,1.0],[-1.0,0.2,1.0],[-1.0,0.0,1.0],[-1.0,0.2,-1.0],[-1.0,0.0,-1.0],[-1.0,0.2,-1.0],[-1.0,0.0,1.0],[-1.0,0.0,-1.0],[-1.0,0.0,1.0],[-1.0,0.2,1.0],[-1.0,0.2,-1.0],[-1.0,0.2,1.0],[-1.0,0.0,1.0],[-1.0,0.2,-1.0]]}
|
||||
1
library/kollisions/bau_bruestung.json
Normal file
1
library/kollisions/bau_bruestung.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,1.1,0.1],"aabb_min":[-1.0,0.0,-0.1],"dreiecke":24,"oid":"bau_bruestung","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_bruestung.glb","vertices":[[-1.0,1.1,0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,1.1,0.1],[-1.0,0.0,0.1],[1.0,0.0,-0.1],[-1.0,1.1,-0.1],[-1.0,0.0,-0.1],[-1.0,1.1,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,1.1,0.1],[1.0,1.1,0.1],[-1.0,1.1,0.1],[1.0,0.0,0.1],[1.0,1.1,0.1],[-1.0,1.1,-0.1],[1.0,0.0,-0.1],[1.0,1.1,-0.1],[1.0,0.0,-0.1],[-1.0,1.1,-0.1],[1.0,1.1,-0.1],[-1.0,0.0,-0.1],[-1.0,1.1,0.1],[-1.0,0.0,0.1],[-1.0,1.1,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,1.1,-0.1],[-1.0,1.1,0.1],[-1.0,1.1,-0.1],[-1.0,0.0,-0.1],[-1.0,1.1,0.1],[1.0,0.0,0.1],[1.0,1.1,-0.1],[1.0,0.0,-0.1],[1.0,1.1,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,1.1,0.1],[1.0,1.1,-0.1],[1.0,1.1,0.1],[1.0,0.0,0.1],[1.0,1.1,-0.1],[-1.0,1.1,0.1],[1.0,1.1,-0.1],[1.0,1.1,0.1],[1.0,1.1,-0.1],[-1.0,1.1,0.1],[1.0,1.1,0.1],[-1.0,1.1,0.1],[-1.0,1.1,-0.1],[1.0,1.1,-0.1],[-1.0,1.1,-0.1],[-1.0,1.1,0.1],[1.0,1.1,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1]]}
|
||||
1
library/kollisions/bau_dach_ecke_aussen.json
Normal file
1
library/kollisions/bau_dach_ecke_aussen.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,2.0,1.0],"aabb_min":[-1.0,0.0,-1.0],"dreiecke":6,"oid":"bau_dach_ecke_aussen","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_ecke_aussen.glb","vertices":[[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[1.0,2.0,1.0],[-1.0,0.0,-1.0],[1.0,2.0,1.0],[-1.0,0.0,1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,2.0,1.0],[-1.0,0.0,1.0],[1.0,2.0,1.0],[1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[-1.0,0.0,-1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0]]}
|
||||
1
library/kollisions/bau_dach_ecke_innen.json
Normal file
1
library/kollisions/bau_dach_ecke_innen.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,2.0,1.0],"aabb_min":[-1.0,0.0,-1.0],"dreiecke":10,"oid":"bau_dach_ecke_innen","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_ecke_innen.glb","vertices":[[-1.0,0.0,-1.0],[1.0,2.0,-1.0],[1.0,2.0,1.0],[-1.0,0.0,-1.0],[1.0,2.0,1.0],[-1.0,2.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[1.0,2.0,-1.0],[-1.0,0.0,-1.0],[-1.0,2.0,1.0],[-1.0,0.0,1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,2.0,1.0],[1.0,0.0,-1.0],[1.0,2.0,1.0],[1.0,2.0,-1.0],[-1.0,0.0,1.0],[1.0,2.0,1.0],[1.0,0.0,1.0],[-1.0,0.0,1.0],[-1.0,2.0,1.0],[1.0,2.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[-1.0,0.0,-1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0]]}
|
||||
1
library/kollisions/bau_dach_giebel.json
Normal file
1
library/kollisions/bau_dach_giebel.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.071,1.141,1.0],"aabb_min":[-1.071,0.0,-1.0],"dreiecke":48,"oid":"bau_dach_giebel","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_giebel.glb","vertices":[[-1.0707,0.1414,-1.0],[-0.0707,1.1414,1.0],[-1.0707,0.1414,1.0],[-0.0707,1.1414,1.0],[-1.0707,0.1414,-1.0],[-1.0707,0.1414,1.0],[0.0707,1.0,1.0],[-0.9293,0.0,-1.0],[-0.9293,0.0,1.0],[-0.9293,0.0,-1.0],[0.0707,1.0,1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,-1.0],[-0.0707,1.1414,-1.0],[-0.0707,1.1414,1.0],[-0.0707,1.1414,-1.0],[-1.0707,0.1414,-1.0],[-0.0707,1.1414,1.0],[0.0707,1.0,-1.0],[-0.9293,0.0,-1.0],[0.0707,1.0,1.0],[-0.9293,0.0,-1.0],[0.0707,1.0,-1.0],[0.0707,1.0,1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,1.0],[-0.9293,0.0,-1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,-1.0],[-1.0707,0.1414,-1.0],[-1.0707,0.1414,1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,1.0],[0.0707,1.0,1.0],[-0.9293,0.0,1.0],[0.0707,1.0,1.0],[-1.0707,0.1414,1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,1.0],[-0.0707,1.1414,1.0],[0.0707,1.0,1.0],[-0.0707,1.1414,1.0],[-1.0707,0.1414,1.0],[0.0707,1.0,1.0],[-0.0707,1.1414,1.0],[0.0707,1.0,-1.0],[0.0707,1.0,1.0],[0.0707,1.0,-1.0],[-0.0707,1.1414,1.0],[0.0707,1.0,1.0],[-0.0707,1.1414,1.0],[-0.0707,1.1414,-1.0],[0.0707,1.0,-1.0],[-0.0707,1.1414,-1.0],[-0.0707,1.1414,1.0],[0.0707,1.0,-1.0],[-0.0707,1.1414,-1.0],[-0.9293,0.0,-1.0],[0.0707,1.0,-1.0],[-0.9293,0.0,-1.0],[-0.0707,1.1414,-1.0],[0.0707,1.0,-1.0],[-0.0707,1.1414,-1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,-1.0],[-1.0707,0.1414,-1.0],[-0.0707,1.1414,-1.0],[-0.9293,0.0,-1.0],[0.0707,1.1414,-1.0],[1.0707,0.1414,1.0],[0.0707,1.1414,1.0],[1.0707,0.1414,1.0],[0.0707,1.1414,-1.0],[0.0707,1.1414,1.0],[0.9293,0.0,1.0],[-0.0707,1.0,-1.0],[-0.0707,1.0,1.0],[-0.0707,1.0,-1.0],[0.9293,0.0,1.0],[-0.0707,1.0,1.0],[0.0707,1.1414,-1.0],[1.0707,0.1414,-1.0],[1.0707,0.1414,1.0],[1.0707,0.1414,-1.0],[0.0707,1.1414,-1.0],[1.0707,0.1414,1.0],[0.9293,0.0,-1.0],[-0.0707,1.0,-1.0],[0.9293,0.0,1.0],[-0.0707,1.0,-1.0],[0.9293,0.0,-1.0],[0.9293,0.0,1.0],[0.0707,1.1414,-1.0],[-0.0707,1.0,1.0],[-0.0707,1.0,-1.0],[-0.0707,1.0,1.0],[0.0707,1.1414,-1.0],[-0.0707,1.0,-1.0],[0.0707,1.1414,-1.0],[0.0707,1.1414,1.0],[-0.0707,1.0,1.0],[0.0707,1.1414,1.0],[0.0707,1.1414,-1.0],[-0.0707,1.0,1.0],[0.0707,1.1414,1.0],[0.9293,0.0,1.0],[-0.0707,1.0,1.0],[0.9293,0.0,1.0],[0.0707,1.1414,1.0],[-0.0707,1.0,1.0],[0.0707,1.1414,1.0],[1.0707,0.1414,1.0],[0.9293,0.0,1.0],[1.0707,0.1414,1.0],[0.0707,1.1414,1.0],[0.9293,0.0,1.0],[1.0707,0.1414,1.0],[0.9293,0.0,-1.0],[0.9293,0.0,1.0],[0.9293,0.0,-1.0],[1.0707,0.1414,1.0],[0.9293,0.0,1.0],[1.0707,0.1414,1.0],[1.0707,0.1414,-1.0],[0.9293,0.0,-1.0],[1.0707,0.1414,-1.0],[1.0707,0.1414,1.0],[0.9293,0.0,-1.0],[1.0707,0.1414,-1.0],[-0.0707,1.0,-1.0],[0.9293,0.0,-1.0],[-0.0707,1.0,-1.0],[1.0707,0.1414,-1.0],[0.9293,0.0,-1.0],[1.0707,0.1414,-1.0],[0.0707,1.1414,-1.0],[-0.0707,1.0,-1.0],[0.0707,1.1414,-1.0],[1.0707,0.1414,-1.0],[-0.0707,1.0,-1.0]]}
|
||||
1
library/kollisions/bau_dach_giebel_4.json
Normal file
1
library/kollisions/bau_dach_giebel_4.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[2.071,2.141,2.0],"aabb_min":[-2.071,0.0,-2.0],"dreiecke":48,"oid":"bau_dach_giebel_4","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_giebel_4.glb","vertices":[[-2.0707,0.1414,-2.0],[-0.0707,2.1414,2.0],[-2.0707,0.1414,2.0],[-0.0707,2.1414,2.0],[-2.0707,0.1414,-2.0],[-2.0707,0.1414,2.0],[0.0707,2.0,2.0],[-1.9293,0.0,-2.0],[-1.9293,0.0,2.0],[-1.9293,0.0,-2.0],[0.0707,2.0,2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,-2.0],[-0.0707,2.1414,-2.0],[-0.0707,2.1414,2.0],[-0.0707,2.1414,-2.0],[-2.0707,0.1414,-2.0],[-0.0707,2.1414,2.0],[0.0707,2.0,-2.0],[-1.9293,0.0,-2.0],[0.0707,2.0,2.0],[-1.9293,0.0,-2.0],[0.0707,2.0,-2.0],[0.0707,2.0,2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,2.0],[-1.9293,0.0,-2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,-2.0],[-2.0707,0.1414,-2.0],[-2.0707,0.1414,2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,2.0],[0.0707,2.0,2.0],[-1.9293,0.0,2.0],[0.0707,2.0,2.0],[-2.0707,0.1414,2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,2.0],[-0.0707,2.1414,2.0],[0.0707,2.0,2.0],[-0.0707,2.1414,2.0],[-2.0707,0.1414,2.0],[0.0707,2.0,2.0],[-0.0707,2.1414,2.0],[0.0707,2.0,-2.0],[0.0707,2.0,2.0],[0.0707,2.0,-2.0],[-0.0707,2.1414,2.0],[0.0707,2.0,2.0],[-0.0707,2.1414,2.0],[-0.0707,2.1414,-2.0],[0.0707,2.0,-2.0],[-0.0707,2.1414,-2.0],[-0.0707,2.1414,2.0],[0.0707,2.0,-2.0],[-0.0707,2.1414,-2.0],[-1.9293,0.0,-2.0],[0.0707,2.0,-2.0],[-1.9293,0.0,-2.0],[-0.0707,2.1414,-2.0],[0.0707,2.0,-2.0],[-0.0707,2.1414,-2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,-2.0],[-2.0707,0.1414,-2.0],[-0.0707,2.1414,-2.0],[-1.9293,0.0,-2.0],[0.0707,2.1414,-2.0],[2.0707,0.1414,2.0],[0.0707,2.1414,2.0],[2.0707,0.1414,2.0],[0.0707,2.1414,-2.0],[0.0707,2.1414,2.0],[1.9293,0.0,2.0],[-0.0707,2.0,-2.0],[-0.0707,2.0,2.0],[-0.0707,2.0,-2.0],[1.9293,0.0,2.0],[-0.0707,2.0,2.0],[0.0707,2.1414,-2.0],[2.0707,0.1414,-2.0],[2.0707,0.1414,2.0],[2.0707,0.1414,-2.0],[0.0707,2.1414,-2.0],[2.0707,0.1414,2.0],[1.9293,0.0,-2.0],[-0.0707,2.0,-2.0],[1.9293,0.0,2.0],[-0.0707,2.0,-2.0],[1.9293,0.0,-2.0],[1.9293,0.0,2.0],[0.0707,2.1414,-2.0],[-0.0707,2.0,2.0],[-0.0707,2.0,-2.0],[-0.0707,2.0,2.0],[0.0707,2.1414,-2.0],[-0.0707,2.0,-2.0],[0.0707,2.1414,-2.0],[0.0707,2.1414,2.0],[-0.0707,2.0,2.0],[0.0707,2.1414,2.0],[0.0707,2.1414,-2.0],[-0.0707,2.0,2.0],[0.0707,2.1414,2.0],[1.9293,0.0,2.0],[-0.0707,2.0,2.0],[1.9293,0.0,2.0],[0.0707,2.1414,2.0],[-0.0707,2.0,2.0],[0.0707,2.1414,2.0],[2.0707,0.1414,2.0],[1.9293,0.0,2.0],[2.0707,0.1414,2.0],[0.0707,2.1414,2.0],[1.9293,0.0,2.0],[2.0707,0.1414,2.0],[1.9293,0.0,-2.0],[1.9293,0.0,2.0],[1.9293,0.0,-2.0],[2.0707,0.1414,2.0],[1.9293,0.0,2.0],[2.0707,0.1414,2.0],[2.0707,0.1414,-2.0],[1.9293,0.0,-2.0],[2.0707,0.1414,-2.0],[2.0707,0.1414,2.0],[1.9293,0.0,-2.0],[2.0707,0.1414,-2.0],[-0.0707,2.0,-2.0],[1.9293,0.0,-2.0],[-0.0707,2.0,-2.0],[2.0707,0.1414,-2.0],[1.9293,0.0,-2.0],[2.0707,0.1414,-2.0],[0.0707,2.1414,-2.0],[-0.0707,2.0,-2.0],[0.0707,2.1414,-2.0],[2.0707,0.1414,-2.0],[-0.0707,2.0,-2.0]]}
|
||||
1
library/kollisions/bau_dach_giebel_6.json
Normal file
1
library/kollisions/bau_dach_giebel_6.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[3.071,3.141,3.0],"aabb_min":[-3.071,0.0,-3.0],"dreiecke":48,"oid":"bau_dach_giebel_6","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_giebel_6.glb","vertices":[[-3.0707,0.1414,-3.0],[-0.0707,3.1414,3.0],[-3.0707,0.1414,3.0],[-0.0707,3.1414,3.0],[-3.0707,0.1414,-3.0],[-3.0707,0.1414,3.0],[0.0707,3.0,3.0],[-2.9293,0.0,-3.0],[-2.9293,0.0,3.0],[-2.9293,0.0,-3.0],[0.0707,3.0,3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,-3.0],[-0.0707,3.1414,-3.0],[-0.0707,3.1414,3.0],[-0.0707,3.1414,-3.0],[-3.0707,0.1414,-3.0],[-0.0707,3.1414,3.0],[0.0707,3.0,-3.0],[-2.9293,0.0,-3.0],[0.0707,3.0,3.0],[-2.9293,0.0,-3.0],[0.0707,3.0,-3.0],[0.0707,3.0,3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,3.0],[-2.9293,0.0,-3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,-3.0],[-3.0707,0.1414,-3.0],[-3.0707,0.1414,3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,3.0],[0.0707,3.0,3.0],[-2.9293,0.0,3.0],[0.0707,3.0,3.0],[-3.0707,0.1414,3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,3.0],[-0.0707,3.1414,3.0],[0.0707,3.0,3.0],[-0.0707,3.1414,3.0],[-3.0707,0.1414,3.0],[0.0707,3.0,3.0],[-0.0707,3.1414,3.0],[0.0707,3.0,-3.0],[0.0707,3.0,3.0],[0.0707,3.0,-3.0],[-0.0707,3.1414,3.0],[0.0707,3.0,3.0],[-0.0707,3.1414,3.0],[-0.0707,3.1414,-3.0],[0.0707,3.0,-3.0],[-0.0707,3.1414,-3.0],[-0.0707,3.1414,3.0],[0.0707,3.0,-3.0],[-0.0707,3.1414,-3.0],[-2.9293,0.0,-3.0],[0.0707,3.0,-3.0],[-2.9293,0.0,-3.0],[-0.0707,3.1414,-3.0],[0.0707,3.0,-3.0],[-0.0707,3.1414,-3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,-3.0],[-3.0707,0.1414,-3.0],[-0.0707,3.1414,-3.0],[-2.9293,0.0,-3.0],[0.0707,3.1414,-3.0],[3.0707,0.1414,3.0],[0.0707,3.1414,3.0],[3.0707,0.1414,3.0],[0.0707,3.1414,-3.0],[0.0707,3.1414,3.0],[2.9293,0.0,3.0],[-0.0707,3.0,-3.0],[-0.0707,3.0,3.0],[-0.0707,3.0,-3.0],[2.9293,0.0,3.0],[-0.0707,3.0,3.0],[0.0707,3.1414,-3.0],[3.0707,0.1414,-3.0],[3.0707,0.1414,3.0],[3.0707,0.1414,-3.0],[0.0707,3.1414,-3.0],[3.0707,0.1414,3.0],[2.9293,0.0,-3.0],[-0.0707,3.0,-3.0],[2.9293,0.0,3.0],[-0.0707,3.0,-3.0],[2.9293,0.0,-3.0],[2.9293,0.0,3.0],[0.0707,3.1414,-3.0],[-0.0707,3.0,3.0],[-0.0707,3.0,-3.0],[-0.0707,3.0,3.0],[0.0707,3.1414,-3.0],[-0.0707,3.0,-3.0],[0.0707,3.1414,-3.0],[0.0707,3.1414,3.0],[-0.0707,3.0,3.0],[0.0707,3.1414,3.0],[0.0707,3.1414,-3.0],[-0.0707,3.0,3.0],[0.0707,3.1414,3.0],[2.9293,0.0,3.0],[-0.0707,3.0,3.0],[2.9293,0.0,3.0],[0.0707,3.1414,3.0],[-0.0707,3.0,3.0],[0.0707,3.1414,3.0],[3.0707,0.1414,3.0],[2.9293,0.0,3.0],[3.0707,0.1414,3.0],[0.0707,3.1414,3.0],[2.9293,0.0,3.0],[3.0707,0.1414,3.0],[2.9293,0.0,-3.0],[2.9293,0.0,3.0],[2.9293,0.0,-3.0],[3.0707,0.1414,3.0],[2.9293,0.0,3.0],[3.0707,0.1414,3.0],[3.0707,0.1414,-3.0],[2.9293,0.0,-3.0],[3.0707,0.1414,-3.0],[3.0707,0.1414,3.0],[2.9293,0.0,-3.0],[3.0707,0.1414,-3.0],[-0.0707,3.0,-3.0],[2.9293,0.0,-3.0],[-0.0707,3.0,-3.0],[3.0707,0.1414,-3.0],[2.9293,0.0,-3.0],[3.0707,0.1414,-3.0],[0.0707,3.1414,-3.0],[-0.0707,3.0,-3.0],[0.0707,3.1414,-3.0],[3.0707,0.1414,-3.0],[-0.0707,3.0,-3.0]]}
|
||||
1
library/kollisions/bau_dach_giebel_ende.json
Normal file
1
library/kollisions/bau_dach_giebel_ende.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,2.0,0.1],"aabb_min":[-1.0,0.0,-0.1],"dreiecke":8,"oid":"bau_dach_giebel_ende","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_giebel_ende.glb","vertices":[[-1.0,0.0,-0.1],[1.0,0.0,-0.1],[-1.0,2.0,-0.1],[-1.0,0.0,0.1],[-1.0,2.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[-1.0,2.0,-0.1],[-1.0,2.0,0.1],[-1.0,0.0,-0.1],[-1.0,2.0,0.1],[-1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,2.0,0.1],[1.0,0.0,-0.1],[-1.0,2.0,0.1],[-1.0,2.0,-0.1]]}
|
||||
1
library/kollisions/bau_dach_plateau.json
Normal file
1
library/kollisions/bau_dach_plateau.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,2.0,1.0],"aabb_min":[-1.0,0.0,-1.0],"dreiecke":12,"oid":"bau_dach_plateau","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_plateau.glb","vertices":[[-1.0,2.0,1.0],[1.0,2.0,1.0],[-1.0,0.0,1.0],[1.0,2.0,1.0],[1.0,0.0,1.0],[-1.0,0.0,1.0],[1.0,2.0,-1.0],[-1.0,2.0,-1.0],[1.0,0.0,-1.0],[-1.0,2.0,-1.0],[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[1.0,2.0,1.0],[1.0,2.0,-1.0],[1.0,0.0,1.0],[1.0,2.0,-1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[-1.0,2.0,-1.0],[-1.0,2.0,1.0],[-1.0,0.0,-1.0],[-1.0,2.0,1.0],[-1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,2.0,1.0],[-1.0,2.0,1.0],[1.0,2.0,-1.0],[-1.0,2.0,1.0],[-1.0,2.0,-1.0],[1.0,2.0,-1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[-1.0,0.0,-1.0]]}
|
||||
1
library/kollisions/bau_dach_pyramide.json
Normal file
1
library/kollisions/bau_dach_pyramide.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.071,1.141,1.071],"aabb_min":[-1.071,0.0,-1.071],"dreiecke":64,"oid":"bau_dach_pyramide","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_pyramide.glb","vertices":[[-1.0,0.0,-0.9293],[0.0,1.0,0.0707],[1.0,0.0,-0.9293],[0.0,1.0,0.0707],[-1.0,0.0,-0.9293],[1.0,0.0,-0.9293],[0.0,1.1414,-0.0707],[-1.0,0.1414,-1.0707],[1.0,0.1414,-1.0707],[-1.0,0.1414,-1.0707],[0.0,1.1414,-0.0707],[1.0,0.1414,-1.0707],[-1.0,0.0,-0.9293],[1.0,0.1414,-1.0707],[-1.0,0.1414,-1.0707],[1.0,0.1414,-1.0707],[-1.0,0.0,-0.9293],[-1.0,0.1414,-1.0707],[-1.0,0.0,-0.9293],[1.0,0.0,-0.9293],[1.0,0.1414,-1.0707],[1.0,0.0,-0.9293],[-1.0,0.0,-0.9293],[1.0,0.1414,-1.0707],[1.0,0.0,-0.9293],[0.0,1.1414,-0.0707],[1.0,0.1414,-1.0707],[0.0,1.1414,-0.0707],[1.0,0.0,-0.9293],[1.0,0.1414,-1.0707],[1.0,0.0,-0.9293],[0.0,1.0,0.0707],[0.0,1.1414,-0.0707],[0.0,1.0,0.0707],[1.0,0.0,-0.9293],[0.0,1.1414,-0.0707],[0.0,1.0,0.0707],[-1.0,0.1414,-1.0707],[0.0,1.1414,-0.0707],[-1.0,0.1414,-1.0707],[0.0,1.0,0.0707],[0.0,1.1414,-0.0707],[0.0,1.0,0.0707],[-1.0,0.0,-0.9293],[-1.0,0.1414,-1.0707],[-1.0,0.0,-0.9293],[0.0,1.0,0.0707],[-1.0,0.1414,-1.0707],[0.9293,0.0,-1.0],[-0.0707,1.0,0.0],[0.9293,0.0,1.0],[-0.0707,1.0,0.0],[0.9293,0.0,-1.0],[0.9293,0.0,1.0],[0.0707,1.1414,0.0],[1.0707,0.1414,-1.0],[1.0707,0.1414,1.0],[1.0707,0.1414,-1.0],[0.0707,1.1414,0.0],[1.0707,0.1414,1.0],[0.9293,0.0,-1.0],[1.0707,0.1414,1.0],[1.0707,0.1414,-1.0],[1.0707,0.1414,1.0],[0.9293,0.0,-1.0],[1.0707,0.1414,-1.0],[0.9293,0.0,-1.0],[0.9293,0.0,1.0],[1.0707,0.1414,1.0],[0.9293,0.0,1.0],[0.9293,0.0,-1.0],[1.0707,0.1414,1.0],[0.9293,0.0,1.0],[0.0707,1.1414,0.0],[1.0707,0.1414,1.0],[0.0707,1.1414,0.0],[0.9293,0.0,1.0],[1.0707,0.1414,1.0],[0.9293,0.0,1.0],[-0.0707,1.0,0.0],[0.0707,1.1414,0.0],[-0.0707,1.0,0.0],[0.9293,0.0,1.0],[0.0707,1.1414,0.0],[-0.0707,1.0,0.0],[1.0707,0.1414,-1.0],[0.0707,1.1414,0.0],[1.0707,0.1414,-1.0],[-0.0707,1.0,0.0],[0.0707,1.1414,0.0],[-0.0707,1.0,0.0],[0.9293,0.0,-1.0],[1.0707,0.1414,-1.0],[0.9293,0.0,-1.0],[-0.0707,1.0,0.0],[1.0707,0.1414,-1.0],[1.0,0.0,0.9293],[0.0,1.0,-0.0707],[-1.0,0.0,0.9293],[0.0,1.0,-0.0707],[1.0,0.0,0.9293],[-1.0,0.0,0.9293],[0.0,1.1414,0.0707],[1.0,0.1414,1.0707],[-1.0,0.1414,1.0707],[1.0,0.1414,1.0707],[0.0,1.1414,0.0707],[-1.0,0.1414,1.0707],[1.0,0.0,0.9293],[-1.0,0.1414,1.0707],[1.0,0.1414,1.0707],[-1.0,0.1414,1.0707],[1.0,0.0,0.9293],[1.0,0.1414,1.0707],[1.0,0.0,0.9293],[-1.0,0.0,0.9293],[-1.0,0.1414,1.0707],[-1.0,0.0,0.9293],[1.0,0.0,0.9293],[-1.0,0.1414,1.0707],[-1.0,0.0,0.9293],[0.0,1.1414,0.0707],[-1.0,0.1414,1.0707],[0.0,1.1414,0.0707],[-1.0,0.0,0.9293],[-1.0,0.1414,1.0707],[-1.0,0.0,0.9293],[0.0,1.0,-0.0707],[0.0,1.1414,0.0707],[0.0,1.0,-0.0707],[-1.0,0.0,0.9293],[0.0,1.1414,0.0707],[0.0,1.0,-0.0707],[1.0,0.1414,1.0707],[0.0,1.1414,0.0707],[1.0,0.1414,1.0707],[0.0,1.0,-0.0707],[0.0,1.1414,0.0707],[0.0,1.0,-0.0707],[1.0,0.0,0.9293],[1.0,0.1414,1.0707],[1.0,0.0,0.9293],[0.0,1.0,-0.0707],[1.0,0.1414,1.0707],[-0.9293,0.0,1.0],[0.0707,1.0,0.0],[-0.9293,0.0,-1.0],[0.0707,1.0,0.0],[-0.9293,0.0,1.0],[-0.9293,0.0,-1.0],[-0.0707,1.1414,0.0],[-1.0707,0.1414,1.0],[-1.0707,0.1414,-1.0],[-1.0707,0.1414,1.0],[-0.0707,1.1414,0.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,-1.0],[-1.0707,0.1414,1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,1.0],[-0.9293,0.0,1.0],[-0.9293,0.0,-1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,-1.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,-1.0],[-0.0707,1.1414,0.0],[-1.0707,0.1414,-1.0],[-0.0707,1.1414,0.0],[-0.9293,0.0,-1.0],[-1.0707,0.1414,-1.0],[-0.9293,0.0,-1.0],[0.0707,1.0,0.0],[-0.0707,1.1414,0.0],[0.0707,1.0,0.0],[-0.9293,0.0,-1.0],[-0.0707,1.1414,0.0],[0.0707,1.0,0.0],[-1.0707,0.1414,1.0],[-0.0707,1.1414,0.0],[-1.0707,0.1414,1.0],[0.0707,1.0,0.0],[-0.0707,1.1414,0.0],[0.0707,1.0,0.0],[-0.9293,0.0,1.0],[-1.0707,0.1414,1.0],[-0.9293,0.0,1.0],[0.0707,1.0,0.0],[-1.0707,0.1414,1.0]]}
|
||||
1
library/kollisions/bau_dach_pyramide_4.json
Normal file
1
library/kollisions/bau_dach_pyramide_4.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[2.071,2.141,2.071],"aabb_min":[-2.071,0.0,-2.071],"dreiecke":64,"oid":"bau_dach_pyramide_4","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_pyramide_4.glb","vertices":[[-2.0,0.0,-1.9293],[0.0,2.0,0.0707],[2.0,0.0,-1.9293],[0.0,2.0,0.0707],[-2.0,0.0,-1.9293],[2.0,0.0,-1.9293],[0.0,2.1414,-0.0707],[-2.0,0.1414,-2.0707],[2.0,0.1414,-2.0707],[-2.0,0.1414,-2.0707],[0.0,2.1414,-0.0707],[2.0,0.1414,-2.0707],[-2.0,0.0,-1.9293],[2.0,0.1414,-2.0707],[-2.0,0.1414,-2.0707],[2.0,0.1414,-2.0707],[-2.0,0.0,-1.9293],[-2.0,0.1414,-2.0707],[-2.0,0.0,-1.9293],[2.0,0.0,-1.9293],[2.0,0.1414,-2.0707],[2.0,0.0,-1.9293],[-2.0,0.0,-1.9293],[2.0,0.1414,-2.0707],[2.0,0.0,-1.9293],[0.0,2.1414,-0.0707],[2.0,0.1414,-2.0707],[0.0,2.1414,-0.0707],[2.0,0.0,-1.9293],[2.0,0.1414,-2.0707],[2.0,0.0,-1.9293],[0.0,2.0,0.0707],[0.0,2.1414,-0.0707],[0.0,2.0,0.0707],[2.0,0.0,-1.9293],[0.0,2.1414,-0.0707],[0.0,2.0,0.0707],[-2.0,0.1414,-2.0707],[0.0,2.1414,-0.0707],[-2.0,0.1414,-2.0707],[0.0,2.0,0.0707],[0.0,2.1414,-0.0707],[0.0,2.0,0.0707],[-2.0,0.0,-1.9293],[-2.0,0.1414,-2.0707],[-2.0,0.0,-1.9293],[0.0,2.0,0.0707],[-2.0,0.1414,-2.0707],[1.9293,0.0,-2.0],[-0.0707,2.0,0.0],[1.9293,0.0,2.0],[-0.0707,2.0,0.0],[1.9293,0.0,-2.0],[1.9293,0.0,2.0],[0.0707,2.1414,0.0],[2.0707,0.1414,-2.0],[2.0707,0.1414,2.0],[2.0707,0.1414,-2.0],[0.0707,2.1414,0.0],[2.0707,0.1414,2.0],[1.9293,0.0,-2.0],[2.0707,0.1414,2.0],[2.0707,0.1414,-2.0],[2.0707,0.1414,2.0],[1.9293,0.0,-2.0],[2.0707,0.1414,-2.0],[1.9293,0.0,-2.0],[1.9293,0.0,2.0],[2.0707,0.1414,2.0],[1.9293,0.0,2.0],[1.9293,0.0,-2.0],[2.0707,0.1414,2.0],[1.9293,0.0,2.0],[0.0707,2.1414,0.0],[2.0707,0.1414,2.0],[0.0707,2.1414,0.0],[1.9293,0.0,2.0],[2.0707,0.1414,2.0],[1.9293,0.0,2.0],[-0.0707,2.0,0.0],[0.0707,2.1414,0.0],[-0.0707,2.0,0.0],[1.9293,0.0,2.0],[0.0707,2.1414,0.0],[-0.0707,2.0,0.0],[2.0707,0.1414,-2.0],[0.0707,2.1414,0.0],[2.0707,0.1414,-2.0],[-0.0707,2.0,0.0],[0.0707,2.1414,0.0],[-0.0707,2.0,0.0],[1.9293,0.0,-2.0],[2.0707,0.1414,-2.0],[1.9293,0.0,-2.0],[-0.0707,2.0,0.0],[2.0707,0.1414,-2.0],[2.0,0.0,1.9293],[0.0,2.0,-0.0707],[-2.0,0.0,1.9293],[0.0,2.0,-0.0707],[2.0,0.0,1.9293],[-2.0,0.0,1.9293],[0.0,2.1414,0.0707],[2.0,0.1414,2.0707],[-2.0,0.1414,2.0707],[2.0,0.1414,2.0707],[0.0,2.1414,0.0707],[-2.0,0.1414,2.0707],[2.0,0.0,1.9293],[-2.0,0.1414,2.0707],[2.0,0.1414,2.0707],[-2.0,0.1414,2.0707],[2.0,0.0,1.9293],[2.0,0.1414,2.0707],[2.0,0.0,1.9293],[-2.0,0.0,1.9293],[-2.0,0.1414,2.0707],[-2.0,0.0,1.9293],[2.0,0.0,1.9293],[-2.0,0.1414,2.0707],[-2.0,0.0,1.9293],[0.0,2.1414,0.0707],[-2.0,0.1414,2.0707],[0.0,2.1414,0.0707],[-2.0,0.0,1.9293],[-2.0,0.1414,2.0707],[-2.0,0.0,1.9293],[0.0,2.0,-0.0707],[0.0,2.1414,0.0707],[0.0,2.0,-0.0707],[-2.0,0.0,1.9293],[0.0,2.1414,0.0707],[0.0,2.0,-0.0707],[2.0,0.1414,2.0707],[0.0,2.1414,0.0707],[2.0,0.1414,2.0707],[0.0,2.0,-0.0707],[0.0,2.1414,0.0707],[0.0,2.0,-0.0707],[2.0,0.0,1.9293],[2.0,0.1414,2.0707],[2.0,0.0,1.9293],[0.0,2.0,-0.0707],[2.0,0.1414,2.0707],[-1.9293,0.0,2.0],[0.0707,2.0,0.0],[-1.9293,0.0,-2.0],[0.0707,2.0,0.0],[-1.9293,0.0,2.0],[-1.9293,0.0,-2.0],[-0.0707,2.1414,0.0],[-2.0707,0.1414,2.0],[-2.0707,0.1414,-2.0],[-2.0707,0.1414,2.0],[-0.0707,2.1414,0.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,-2.0],[-2.0707,0.1414,2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,2.0],[-1.9293,0.0,2.0],[-1.9293,0.0,-2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,-2.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,-2.0],[-0.0707,2.1414,0.0],[-2.0707,0.1414,-2.0],[-0.0707,2.1414,0.0],[-1.9293,0.0,-2.0],[-2.0707,0.1414,-2.0],[-1.9293,0.0,-2.0],[0.0707,2.0,0.0],[-0.0707,2.1414,0.0],[0.0707,2.0,0.0],[-1.9293,0.0,-2.0],[-0.0707,2.1414,0.0],[0.0707,2.0,0.0],[-2.0707,0.1414,2.0],[-0.0707,2.1414,0.0],[-2.0707,0.1414,2.0],[0.0707,2.0,0.0],[-0.0707,2.1414,0.0],[0.0707,2.0,0.0],[-1.9293,0.0,2.0],[-2.0707,0.1414,2.0],[-1.9293,0.0,2.0],[0.0707,2.0,0.0],[-2.0707,0.1414,2.0]]}
|
||||
1
library/kollisions/bau_dach_pyramide_6.json
Normal file
1
library/kollisions/bau_dach_pyramide_6.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[3.071,3.141,3.071],"aabb_min":[-3.071,0.0,-3.071],"dreiecke":64,"oid":"bau_dach_pyramide_6","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_pyramide_6.glb","vertices":[[-3.0,0.0,-2.9293],[0.0,3.0,0.0707],[3.0,0.0,-2.9293],[0.0,3.0,0.0707],[-3.0,0.0,-2.9293],[3.0,0.0,-2.9293],[0.0,3.1414,-0.0707],[-3.0,0.1414,-3.0707],[3.0,0.1414,-3.0707],[-3.0,0.1414,-3.0707],[0.0,3.1414,-0.0707],[3.0,0.1414,-3.0707],[-3.0,0.0,-2.9293],[3.0,0.1414,-3.0707],[-3.0,0.1414,-3.0707],[3.0,0.1414,-3.0707],[-3.0,0.0,-2.9293],[-3.0,0.1414,-3.0707],[-3.0,0.0,-2.9293],[3.0,0.0,-2.9293],[3.0,0.1414,-3.0707],[3.0,0.0,-2.9293],[-3.0,0.0,-2.9293],[3.0,0.1414,-3.0707],[3.0,0.0,-2.9293],[0.0,3.1414,-0.0707],[3.0,0.1414,-3.0707],[0.0,3.1414,-0.0707],[3.0,0.0,-2.9293],[3.0,0.1414,-3.0707],[3.0,0.0,-2.9293],[0.0,3.0,0.0707],[0.0,3.1414,-0.0707],[0.0,3.0,0.0707],[3.0,0.0,-2.9293],[0.0,3.1414,-0.0707],[0.0,3.0,0.0707],[-3.0,0.1414,-3.0707],[0.0,3.1414,-0.0707],[-3.0,0.1414,-3.0707],[0.0,3.0,0.0707],[0.0,3.1414,-0.0707],[0.0,3.0,0.0707],[-3.0,0.0,-2.9293],[-3.0,0.1414,-3.0707],[-3.0,0.0,-2.9293],[0.0,3.0,0.0707],[-3.0,0.1414,-3.0707],[2.9293,0.0,-3.0],[-0.0707,3.0,0.0],[2.9293,0.0,3.0],[-0.0707,3.0,0.0],[2.9293,0.0,-3.0],[2.9293,0.0,3.0],[0.0707,3.1414,0.0],[3.0707,0.1414,-3.0],[3.0707,0.1414,3.0],[3.0707,0.1414,-3.0],[0.0707,3.1414,0.0],[3.0707,0.1414,3.0],[2.9293,0.0,-3.0],[3.0707,0.1414,3.0],[3.0707,0.1414,-3.0],[3.0707,0.1414,3.0],[2.9293,0.0,-3.0],[3.0707,0.1414,-3.0],[2.9293,0.0,-3.0],[2.9293,0.0,3.0],[3.0707,0.1414,3.0],[2.9293,0.0,3.0],[2.9293,0.0,-3.0],[3.0707,0.1414,3.0],[2.9293,0.0,3.0],[0.0707,3.1414,0.0],[3.0707,0.1414,3.0],[0.0707,3.1414,0.0],[2.9293,0.0,3.0],[3.0707,0.1414,3.0],[2.9293,0.0,3.0],[-0.0707,3.0,0.0],[0.0707,3.1414,0.0],[-0.0707,3.0,0.0],[2.9293,0.0,3.0],[0.0707,3.1414,0.0],[-0.0707,3.0,0.0],[3.0707,0.1414,-3.0],[0.0707,3.1414,0.0],[3.0707,0.1414,-3.0],[-0.0707,3.0,0.0],[0.0707,3.1414,0.0],[-0.0707,3.0,0.0],[2.9293,0.0,-3.0],[3.0707,0.1414,-3.0],[2.9293,0.0,-3.0],[-0.0707,3.0,0.0],[3.0707,0.1414,-3.0],[3.0,0.0,2.9293],[0.0,3.0,-0.0707],[-3.0,0.0,2.9293],[0.0,3.0,-0.0707],[3.0,0.0,2.9293],[-3.0,0.0,2.9293],[0.0,3.1414,0.0707],[3.0,0.1414,3.0707],[-3.0,0.1414,3.0707],[3.0,0.1414,3.0707],[0.0,3.1414,0.0707],[-3.0,0.1414,3.0707],[3.0,0.0,2.9293],[-3.0,0.1414,3.0707],[3.0,0.1414,3.0707],[-3.0,0.1414,3.0707],[3.0,0.0,2.9293],[3.0,0.1414,3.0707],[3.0,0.0,2.9293],[-3.0,0.0,2.9293],[-3.0,0.1414,3.0707],[-3.0,0.0,2.9293],[3.0,0.0,2.9293],[-3.0,0.1414,3.0707],[-3.0,0.0,2.9293],[0.0,3.1414,0.0707],[-3.0,0.1414,3.0707],[0.0,3.1414,0.0707],[-3.0,0.0,2.9293],[-3.0,0.1414,3.0707],[-3.0,0.0,2.9293],[0.0,3.0,-0.0707],[0.0,3.1414,0.0707],[0.0,3.0,-0.0707],[-3.0,0.0,2.9293],[0.0,3.1414,0.0707],[0.0,3.0,-0.0707],[3.0,0.1414,3.0707],[0.0,3.1414,0.0707],[3.0,0.1414,3.0707],[0.0,3.0,-0.0707],[0.0,3.1414,0.0707],[0.0,3.0,-0.0707],[3.0,0.0,2.9293],[3.0,0.1414,3.0707],[3.0,0.0,2.9293],[0.0,3.0,-0.0707],[3.0,0.1414,3.0707],[-2.9293,0.0,3.0],[0.0707,3.0,0.0],[-2.9293,0.0,-3.0],[0.0707,3.0,0.0],[-2.9293,0.0,3.0],[-2.9293,0.0,-3.0],[-0.0707,3.1414,0.0],[-3.0707,0.1414,3.0],[-3.0707,0.1414,-3.0],[-3.0707,0.1414,3.0],[-0.0707,3.1414,0.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,-3.0],[-3.0707,0.1414,3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,3.0],[-2.9293,0.0,3.0],[-2.9293,0.0,-3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,-3.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,-3.0],[-0.0707,3.1414,0.0],[-3.0707,0.1414,-3.0],[-0.0707,3.1414,0.0],[-2.9293,0.0,-3.0],[-3.0707,0.1414,-3.0],[-2.9293,0.0,-3.0],[0.0707,3.0,0.0],[-0.0707,3.1414,0.0],[0.0707,3.0,0.0],[-2.9293,0.0,-3.0],[-0.0707,3.1414,0.0],[0.0707,3.0,0.0],[-3.0707,0.1414,3.0],[-0.0707,3.1414,0.0],[-3.0707,0.1414,3.0],[0.0707,3.0,0.0],[-0.0707,3.1414,0.0],[0.0707,3.0,0.0],[-2.9293,0.0,3.0],[-3.0707,0.1414,3.0],[-2.9293,0.0,3.0],[0.0707,3.0,0.0],[-3.0707,0.1414,3.0]]}
|
||||
1
library/kollisions/bau_dach_schraege.json
Normal file
1
library/kollisions/bau_dach_schraege.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,2.0,1.0],"aabb_min":[-1.0,0.0,-1.0],"dreiecke":8,"oid":"bau_dach_schraege","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_dach_schraege.glb","vertices":[[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[1.0,2.0,1.0],[-1.0,0.0,-1.0],[1.0,2.0,1.0],[-1.0,2.0,1.0],[-1.0,0.0,1.0],[1.0,2.0,1.0],[1.0,0.0,1.0],[-1.0,0.0,1.0],[-1.0,2.0,1.0],[1.0,2.0,1.0],[-1.0,0.0,-1.0],[-1.0,2.0,1.0],[-1.0,0.0,1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,2.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[-1.0,0.0,-1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0]]}
|
||||
1
library/kollisions/bau_fundament.json
Normal file
1
library/kollisions/bau_fundament.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,0.2,1.0],"aabb_min":[-1.0,0.0,-1.0],"dreiecke":24,"oid":"bau_fundament","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_fundament.glb","vertices":[[-1.0,0.2,-1.0],[1.0,0.2,-1.0],[1.0,0.2,1.0],[1.0,0.2,-1.0],[-1.0,0.2,-1.0],[1.0,0.2,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[-1.0,0.2,-1.0],[1.0,0.2,1.0],[-1.0,0.2,1.0],[1.0,0.2,1.0],[-1.0,0.2,-1.0],[-1.0,0.2,1.0],[-1.0,0.0,-1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0],[-1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.0,1.0],[-1.0,0.0,-1.0],[1.0,0.2,-1.0],[1.0,0.0,-1.0],[1.0,0.2,-1.0],[-1.0,0.0,-1.0],[1.0,0.0,-1.0],[-1.0,0.0,-1.0],[-1.0,0.2,-1.0],[1.0,0.2,-1.0],[-1.0,0.2,-1.0],[-1.0,0.0,-1.0],[1.0,0.2,-1.0],[1.0,0.0,-1.0],[1.0,0.2,1.0],[1.0,0.0,1.0],[1.0,0.2,1.0],[1.0,0.0,-1.0],[1.0,0.0,1.0],[1.0,0.0,-1.0],[1.0,0.2,-1.0],[1.0,0.2,1.0],[1.0,0.2,-1.0],[1.0,0.0,-1.0],[1.0,0.2,1.0],[1.0,0.0,1.0],[-1.0,0.2,1.0],[-1.0,0.0,1.0],[-1.0,0.2,1.0],[1.0,0.0,1.0],[-1.0,0.0,1.0],[1.0,0.0,1.0],[1.0,0.2,1.0],[-1.0,0.2,1.0],[1.0,0.2,1.0],[1.0,0.0,1.0],[-1.0,0.2,1.0],[-1.0,0.0,1.0],[-1.0,0.2,-1.0],[-1.0,0.0,-1.0],[-1.0,0.2,-1.0],[-1.0,0.0,1.0],[-1.0,0.0,-1.0],[-1.0,0.0,1.0],[-1.0,0.2,1.0],[-1.0,0.2,-1.0],[-1.0,0.2,1.0],[-1.0,0.0,1.0],[-1.0,0.2,-1.0]]}
|
||||
1
library/kollisions/bau_giebelwand.json
Normal file
1
library/kollisions/bau_giebelwand.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,1.0,0.1],"aabb_min":[-1.0,0.0,-0.1],"dreiecke":16,"oid":"bau_giebelwand","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_giebelwand.glb","vertices":[[-1.0,0.0,0.1],[0.0,1.0,0.1],[1.0,0.0,0.1],[0.0,1.0,0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[0.0,1.0,-0.1],[-1.0,0.0,-0.1],[0.0,1.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[0.0,1.0,-0.1],[1.0,0.0,-0.1],[0.0,1.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[0.0,1.0,0.1],[0.0,1.0,-0.1],[0.0,1.0,0.1],[1.0,0.0,0.1],[0.0,1.0,-0.1],[0.0,1.0,0.1],[-1.0,0.0,-0.1],[0.0,1.0,-0.1],[-1.0,0.0,-0.1],[0.0,1.0,0.1],[0.0,1.0,-0.1],[0.0,1.0,0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[0.0,1.0,0.1],[-1.0,0.0,-0.1]]}
|
||||
1
library/kollisions/bau_giebelwand_4.json
Normal file
1
library/kollisions/bau_giebelwand_4.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[2.0,2.0,0.1],"aabb_min":[-2.0,0.0,-0.1],"dreiecke":16,"oid":"bau_giebelwand_4","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_giebelwand_4.glb","vertices":[[-2.0,0.0,0.1],[0.0,2.0,0.1],[2.0,0.0,0.1],[0.0,2.0,0.1],[-2.0,0.0,0.1],[2.0,0.0,0.1],[2.0,0.0,-0.1],[0.0,2.0,-0.1],[-2.0,0.0,-0.1],[0.0,2.0,-0.1],[2.0,0.0,-0.1],[-2.0,0.0,-0.1],[-2.0,0.0,0.1],[2.0,0.0,-0.1],[-2.0,0.0,-0.1],[2.0,0.0,-0.1],[-2.0,0.0,0.1],[-2.0,0.0,-0.1],[-2.0,0.0,0.1],[2.0,0.0,0.1],[2.0,0.0,-0.1],[2.0,0.0,0.1],[-2.0,0.0,0.1],[2.0,0.0,-0.1],[2.0,0.0,0.1],[0.0,2.0,-0.1],[2.0,0.0,-0.1],[0.0,2.0,-0.1],[2.0,0.0,0.1],[2.0,0.0,-0.1],[2.0,0.0,0.1],[0.0,2.0,0.1],[0.0,2.0,-0.1],[0.0,2.0,0.1],[2.0,0.0,0.1],[0.0,2.0,-0.1],[0.0,2.0,0.1],[-2.0,0.0,-0.1],[0.0,2.0,-0.1],[-2.0,0.0,-0.1],[0.0,2.0,0.1],[0.0,2.0,-0.1],[0.0,2.0,0.1],[-2.0,0.0,0.1],[-2.0,0.0,-0.1],[-2.0,0.0,0.1],[0.0,2.0,0.1],[-2.0,0.0,-0.1]]}
|
||||
1
library/kollisions/bau_giebelwand_6.json
Normal file
1
library/kollisions/bau_giebelwand_6.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[3.0,3.0,0.1],"aabb_min":[-3.0,0.0,-0.1],"dreiecke":16,"oid":"bau_giebelwand_6","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_giebelwand_6.glb","vertices":[[-3.0,0.0,0.1],[0.0,3.0,0.1],[3.0,0.0,0.1],[0.0,3.0,0.1],[-3.0,0.0,0.1],[3.0,0.0,0.1],[3.0,0.0,-0.1],[0.0,3.0,-0.1],[-3.0,0.0,-0.1],[0.0,3.0,-0.1],[3.0,0.0,-0.1],[-3.0,0.0,-0.1],[-3.0,0.0,0.1],[3.0,0.0,-0.1],[-3.0,0.0,-0.1],[3.0,0.0,-0.1],[-3.0,0.0,0.1],[-3.0,0.0,-0.1],[-3.0,0.0,0.1],[3.0,0.0,0.1],[3.0,0.0,-0.1],[3.0,0.0,0.1],[-3.0,0.0,0.1],[3.0,0.0,-0.1],[3.0,0.0,0.1],[0.0,3.0,-0.1],[3.0,0.0,-0.1],[0.0,3.0,-0.1],[3.0,0.0,0.1],[3.0,0.0,-0.1],[3.0,0.0,0.1],[0.0,3.0,0.1],[0.0,3.0,-0.1],[0.0,3.0,0.1],[3.0,0.0,0.1],[0.0,3.0,-0.1],[0.0,3.0,0.1],[-3.0,0.0,-0.1],[0.0,3.0,-0.1],[-3.0,0.0,-0.1],[0.0,3.0,0.1],[0.0,3.0,-0.1],[0.0,3.0,0.1],[-3.0,0.0,0.1],[-3.0,0.0,-0.1],[-3.0,0.0,0.1],[0.0,3.0,0.1],[-3.0,0.0,-0.1]]}
|
||||
1
library/kollisions/bau_pfeiler.json
Normal file
1
library/kollisions/bau_pfeiler.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[0.15,3.0,0.15],"aabb_min":[-0.15,0.0,-0.15],"dreiecke":12,"oid":"bau_pfeiler","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_pfeiler.glb","vertices":[[-0.15,3.0,0.15],[0.15,3.0,0.15],[-0.15,0.0,0.15],[0.15,3.0,0.15],[0.15,0.0,0.15],[-0.15,0.0,0.15],[0.15,3.0,-0.15],[-0.15,3.0,-0.15],[0.15,0.0,-0.15],[-0.15,3.0,-0.15],[-0.15,0.0,-0.15],[0.15,0.0,-0.15],[0.15,3.0,0.15],[0.15,3.0,-0.15],[0.15,0.0,0.15],[0.15,3.0,-0.15],[0.15,0.0,-0.15],[0.15,0.0,0.15],[-0.15,3.0,-0.15],[-0.15,3.0,0.15],[-0.15,0.0,-0.15],[-0.15,3.0,0.15],[-0.15,0.0,0.15],[-0.15,0.0,-0.15],[0.15,3.0,0.15],[-0.15,3.0,0.15],[0.15,3.0,-0.15],[-0.15,3.0,0.15],[-0.15,3.0,-0.15],[0.15,3.0,-0.15],[-0.15,0.0,0.15],[0.15,0.0,0.15],[-0.15,0.0,-0.15],[0.15,0.0,0.15],[0.15,0.0,-0.15],[-0.15,0.0,-0.15]]}
|
||||
1
library/kollisions/bau_treppe.json
Normal file
1
library/kollisions/bau_treppe.json
Normal file
File diff suppressed because one or more lines are too long
1
library/kollisions/bau_wand.json
Normal file
1
library/kollisions/bau_wand.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,3.0,0.1],"aabb_min":[-1.0,0.0,-0.1],"dreiecke":24,"oid":"bau_wand","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_wand.glb","vertices":[[-1.0,3.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,3.0,0.1],[-1.0,0.0,0.1],[1.0,0.0,-0.1],[-1.0,3.0,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,3.0,0.1],[1.0,3.0,0.1],[-1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,0.1],[-1.0,3.0,-0.1],[1.0,0.0,-0.1],[1.0,3.0,-0.1],[1.0,0.0,-0.1],[-1.0,3.0,-0.1],[1.0,3.0,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[-1.0,0.0,0.1],[-1.0,3.0,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[1.0,0.0,-0.1],[1.0,3.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[1.0,3.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1]]}
|
||||
1
library/kollisions/bau_wand_fenster.json
Normal file
1
library/kollisions/bau_wand_fenster.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,3.0,0.1],"aabb_min":[-1.0,0.0,-0.1],"dreiecke":96,"oid":"bau_wand_fenster","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_wand_fenster.glb","vertices":[[-0.6,0.0,0.1],[-1.0,1.1,0.1],[-0.6,1.1,0.1],[-1.0,1.1,0.1],[-0.6,0.0,0.1],[-0.6,1.1,0.1],[-1.0,1.1,-0.1],[-0.6,0.0,-0.1],[-0.6,1.1,-0.1],[-0.6,0.0,-0.1],[-1.0,1.1,-0.1],[-0.6,1.1,-0.1],[-1.0,1.1,0.1],[-0.6,0.0,0.1],[-1.0,0.0,0.1],[-0.6,0.0,0.1],[-1.0,1.1,0.1],[-1.0,0.0,0.1],[-0.6,0.0,-0.1],[-1.0,1.1,-0.1],[-1.0,0.0,-0.1],[-1.0,1.1,-0.1],[-0.6,0.0,-0.1],[-1.0,0.0,-0.1],[-0.6,1.1,0.1],[-1.0,2.3,0.1],[-0.6,2.3,0.1],[-1.0,2.3,0.1],[-0.6,1.1,0.1],[-0.6,2.3,0.1],[-1.0,2.3,-0.1],[-0.6,1.1,-0.1],[-0.6,2.3,-0.1],[-0.6,1.1,-0.1],[-1.0,2.3,-0.1],[-0.6,2.3,-0.1],[-1.0,2.3,0.1],[-0.6,1.1,0.1],[-1.0,1.1,0.1],[-0.6,1.1,0.1],[-1.0,2.3,0.1],[-1.0,1.1,0.1],[-0.6,1.1,-0.1],[-1.0,2.3,-0.1],[-1.0,1.1,-0.1],[-1.0,2.3,-0.1],[-0.6,1.1,-0.1],[-1.0,1.1,-0.1],[-0.6,2.3,0.1],[-1.0,3.0,0.1],[-0.6,3.0,0.1],[-1.0,3.0,0.1],[-0.6,2.3,0.1],[-0.6,3.0,0.1],[-1.0,3.0,-0.1],[-0.6,2.3,-0.1],[-0.6,3.0,-0.1],[-0.6,2.3,-0.1],[-1.0,3.0,-0.1],[-0.6,3.0,-0.1],[-1.0,3.0,0.1],[-0.6,2.3,0.1],[-1.0,2.3,0.1],[-0.6,2.3,0.1],[-1.0,3.0,0.1],[-1.0,2.3,0.1],[-0.6,2.3,-0.1],[-1.0,3.0,-0.1],[-1.0,2.3,-0.1],[-1.0,3.0,-0.1],[-0.6,2.3,-0.1],[-1.0,2.3,-0.1],[0.6,0.0,0.1],[-0.6,1.1,0.1],[0.6,1.1,0.1],[-0.6,1.1,0.1],[0.6,0.0,0.1],[0.6,1.1,0.1],[-0.6,1.1,-0.1],[0.6,0.0,-0.1],[0.6,1.1,-0.1],[0.6,0.0,-0.1],[-0.6,1.1,-0.1],[0.6,1.1,-0.1],[-0.6,1.1,0.1],[0.6,0.0,0.1],[-0.6,0.0,0.1],[0.6,0.0,0.1],[-0.6,1.1,0.1],[-0.6,0.0,0.1],[0.6,0.0,-0.1],[-0.6,1.1,-0.1],[-0.6,0.0,-0.1],[-0.6,1.1,-0.1],[0.6,0.0,-0.1],[-0.6,0.0,-0.1],[0.6,2.3,0.1],[-0.6,3.0,0.1],[0.6,3.0,0.1],[-0.6,3.0,0.1],[0.6,2.3,0.1],[0.6,3.0,0.1],[-0.6,3.0,-0.1],[0.6,2.3,-0.1],[0.6,3.0,-0.1],[0.6,2.3,-0.1],[-0.6,3.0,-0.1],[0.6,3.0,-0.1],[-0.6,3.0,0.1],[0.6,2.3,0.1],[-0.6,2.3,0.1],[0.6,2.3,0.1],[-0.6,3.0,0.1],[-0.6,2.3,0.1],[0.6,2.3,-0.1],[-0.6,3.0,-0.1],[-0.6,2.3,-0.1],[-0.6,3.0,-0.1],[0.6,2.3,-0.1],[-0.6,2.3,-0.1],[1.0,0.0,0.1],[0.6,1.1,0.1],[1.0,1.1,0.1],[0.6,1.1,0.1],[1.0,0.0,0.1],[1.0,1.1,0.1],[0.6,1.1,-0.1],[1.0,0.0,-0.1],[1.0,1.1,-0.1],[1.0,0.0,-0.1],[0.6,1.1,-0.1],[1.0,1.1,-0.1],[0.6,1.1,0.1],[1.0,0.0,0.1],[0.6,0.0,0.1],[1.0,0.0,0.1],[0.6,1.1,0.1],[0.6,0.0,0.1],[1.0,0.0,-0.1],[0.6,1.1,-0.1],[0.6,0.0,-0.1],[0.6,1.1,-0.1],[1.0,0.0,-0.1],[0.6,0.0,-0.1],[1.0,1.1,0.1],[0.6,2.3,0.1],[1.0,2.3,0.1],[0.6,2.3,0.1],[1.0,1.1,0.1],[1.0,2.3,0.1],[0.6,2.3,-0.1],[1.0,1.1,-0.1],[1.0,2.3,-0.1],[1.0,1.1,-0.1],[0.6,2.3,-0.1],[1.0,2.3,-0.1],[0.6,2.3,0.1],[1.0,1.1,0.1],[0.6,1.1,0.1],[1.0,1.1,0.1],[0.6,2.3,0.1],[0.6,1.1,0.1],[1.0,1.1,-0.1],[0.6,2.3,-0.1],[0.6,1.1,-0.1],[0.6,2.3,-0.1],[1.0,1.1,-0.1],[0.6,1.1,-0.1],[1.0,2.3,0.1],[0.6,3.0,0.1],[1.0,3.0,0.1],[0.6,3.0,0.1],[1.0,2.3,0.1],[1.0,3.0,0.1],[0.6,3.0,-0.1],[1.0,2.3,-0.1],[1.0,3.0,-0.1],[1.0,2.3,-0.1],[0.6,3.0,-0.1],[1.0,3.0,-0.1],[0.6,3.0,0.1],[1.0,2.3,0.1],[0.6,2.3,0.1],[1.0,2.3,0.1],[0.6,3.0,0.1],[0.6,2.3,0.1],[1.0,2.3,-0.1],[0.6,3.0,-0.1],[0.6,2.3,-0.1],[0.6,3.0,-0.1],[1.0,2.3,-0.1],[0.6,2.3,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[-1.0,0.0,0.1],[-1.0,3.0,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[1.0,0.0,-0.1],[1.0,3.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[1.0,3.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[0.6,2.3,0.1],[-0.6,2.3,-0.1],[0.6,2.3,-0.1],[-0.6,2.3,-0.1],[0.6,2.3,0.1],[0.6,2.3,-0.1],[0.6,2.3,0.1],[-0.6,2.3,0.1],[-0.6,2.3,-0.1],[-0.6,2.3,0.1],[0.6,2.3,0.1],[-0.6,2.3,-0.1],[-0.6,2.3,0.1],[-0.6,1.1,-0.1],[-0.6,2.3,-0.1],[-0.6,1.1,-0.1],[-0.6,2.3,0.1],[-0.6,2.3,-0.1],[-0.6,2.3,0.1],[-0.6,1.1,0.1],[-0.6,1.1,-0.1],[-0.6,1.1,0.1],[-0.6,2.3,0.1],[-0.6,1.1,-0.1],[-0.6,1.1,0.1],[0.6,1.1,-0.1],[-0.6,1.1,-0.1],[0.6,1.1,-0.1],[-0.6,1.1,0.1],[-0.6,1.1,-0.1],[-0.6,1.1,0.1],[0.6,1.1,0.1],[0.6,1.1,-0.1],[0.6,1.1,0.1],[-0.6,1.1,0.1],[0.6,1.1,-0.1],[0.6,1.1,0.1],[0.6,2.3,-0.1],[0.6,1.1,-0.1],[0.6,2.3,-0.1],[0.6,1.1,0.1],[0.6,1.1,-0.1],[0.6,1.1,0.1],[0.6,2.3,0.1],[0.6,2.3,-0.1],[0.6,2.3,0.1],[0.6,1.1,0.1],[0.6,2.3,-0.1]]}
|
||||
1
library/kollisions/bau_wand_scharte.json
Normal file
1
library/kollisions/bau_wand_scharte.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,3.0,0.1],"aabb_min":[-1.0,0.0,-0.1],"dreiecke":96,"oid":"bau_wand_scharte","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_wand_scharte.glb","vertices":[[-0.5,0.0,0.1],[-1.0,1.3,0.1],[-0.5,1.3,0.1],[-1.0,1.3,0.1],[-0.5,0.0,0.1],[-0.5,1.3,0.1],[-1.0,1.3,-0.1],[-0.5,0.0,-0.1],[-0.5,1.3,-0.1],[-0.5,0.0,-0.1],[-1.0,1.3,-0.1],[-0.5,1.3,-0.1],[-1.0,1.3,0.1],[-0.5,0.0,0.1],[-1.0,0.0,0.1],[-0.5,0.0,0.1],[-1.0,1.3,0.1],[-1.0,0.0,0.1],[-0.5,0.0,-0.1],[-1.0,1.3,-0.1],[-1.0,0.0,-0.1],[-1.0,1.3,-0.1],[-0.5,0.0,-0.1],[-1.0,0.0,-0.1],[-0.5,1.3,0.1],[-1.0,1.7,0.1],[-0.5,1.7,0.1],[-1.0,1.7,0.1],[-0.5,1.3,0.1],[-0.5,1.7,0.1],[-1.0,1.7,-0.1],[-0.5,1.3,-0.1],[-0.5,1.7,-0.1],[-0.5,1.3,-0.1],[-1.0,1.7,-0.1],[-0.5,1.7,-0.1],[-1.0,1.7,0.1],[-0.5,1.3,0.1],[-1.0,1.3,0.1],[-0.5,1.3,0.1],[-1.0,1.7,0.1],[-1.0,1.3,0.1],[-0.5,1.3,-0.1],[-1.0,1.7,-0.1],[-1.0,1.3,-0.1],[-1.0,1.7,-0.1],[-0.5,1.3,-0.1],[-1.0,1.3,-0.1],[-0.5,1.7,0.1],[-1.0,3.0,0.1],[-0.5,3.0,0.1],[-1.0,3.0,0.1],[-0.5,1.7,0.1],[-0.5,3.0,0.1],[-1.0,3.0,-0.1],[-0.5,1.7,-0.1],[-0.5,3.0,-0.1],[-0.5,1.7,-0.1],[-1.0,3.0,-0.1],[-0.5,3.0,-0.1],[-1.0,3.0,0.1],[-0.5,1.7,0.1],[-1.0,1.7,0.1],[-0.5,1.7,0.1],[-1.0,3.0,0.1],[-1.0,1.7,0.1],[-0.5,1.7,-0.1],[-1.0,3.0,-0.1],[-1.0,1.7,-0.1],[-1.0,3.0,-0.1],[-0.5,1.7,-0.1],[-1.0,1.7,-0.1],[0.5,0.0,0.1],[-0.5,1.3,0.1],[0.5,1.3,0.1],[-0.5,1.3,0.1],[0.5,0.0,0.1],[0.5,1.3,0.1],[-0.5,1.3,-0.1],[0.5,0.0,-0.1],[0.5,1.3,-0.1],[0.5,0.0,-0.1],[-0.5,1.3,-0.1],[0.5,1.3,-0.1],[-0.5,1.3,0.1],[0.5,0.0,0.1],[-0.5,0.0,0.1],[0.5,0.0,0.1],[-0.5,1.3,0.1],[-0.5,0.0,0.1],[0.5,0.0,-0.1],[-0.5,1.3,-0.1],[-0.5,0.0,-0.1],[-0.5,1.3,-0.1],[0.5,0.0,-0.1],[-0.5,0.0,-0.1],[0.5,1.7,0.1],[-0.5,3.0,0.1],[0.5,3.0,0.1],[-0.5,3.0,0.1],[0.5,1.7,0.1],[0.5,3.0,0.1],[-0.5,3.0,-0.1],[0.5,1.7,-0.1],[0.5,3.0,-0.1],[0.5,1.7,-0.1],[-0.5,3.0,-0.1],[0.5,3.0,-0.1],[-0.5,3.0,0.1],[0.5,1.7,0.1],[-0.5,1.7,0.1],[0.5,1.7,0.1],[-0.5,3.0,0.1],[-0.5,1.7,0.1],[0.5,1.7,-0.1],[-0.5,3.0,-0.1],[-0.5,1.7,-0.1],[-0.5,3.0,-0.1],[0.5,1.7,-0.1],[-0.5,1.7,-0.1],[1.0,0.0,0.1],[0.5,1.3,0.1],[1.0,1.3,0.1],[0.5,1.3,0.1],[1.0,0.0,0.1],[1.0,1.3,0.1],[0.5,1.3,-0.1],[1.0,0.0,-0.1],[1.0,1.3,-0.1],[1.0,0.0,-0.1],[0.5,1.3,-0.1],[1.0,1.3,-0.1],[0.5,1.3,0.1],[1.0,0.0,0.1],[0.5,0.0,0.1],[1.0,0.0,0.1],[0.5,1.3,0.1],[0.5,0.0,0.1],[1.0,0.0,-0.1],[0.5,1.3,-0.1],[0.5,0.0,-0.1],[0.5,1.3,-0.1],[1.0,0.0,-0.1],[0.5,0.0,-0.1],[1.0,1.3,0.1],[0.5,1.7,0.1],[1.0,1.7,0.1],[0.5,1.7,0.1],[1.0,1.3,0.1],[1.0,1.7,0.1],[0.5,1.7,-0.1],[1.0,1.3,-0.1],[1.0,1.7,-0.1],[1.0,1.3,-0.1],[0.5,1.7,-0.1],[1.0,1.7,-0.1],[0.5,1.7,0.1],[1.0,1.3,0.1],[0.5,1.3,0.1],[1.0,1.3,0.1],[0.5,1.7,0.1],[0.5,1.3,0.1],[1.0,1.3,-0.1],[0.5,1.7,-0.1],[0.5,1.3,-0.1],[0.5,1.7,-0.1],[1.0,1.3,-0.1],[0.5,1.3,-0.1],[1.0,1.7,0.1],[0.5,3.0,0.1],[1.0,3.0,0.1],[0.5,3.0,0.1],[1.0,1.7,0.1],[1.0,3.0,0.1],[0.5,3.0,-0.1],[1.0,1.7,-0.1],[1.0,3.0,-0.1],[1.0,1.7,-0.1],[0.5,3.0,-0.1],[1.0,3.0,-0.1],[0.5,3.0,0.1],[1.0,1.7,0.1],[0.5,1.7,0.1],[1.0,1.7,0.1],[0.5,3.0,0.1],[0.5,1.7,0.1],[1.0,1.7,-0.1],[0.5,3.0,-0.1],[0.5,1.7,-0.1],[0.5,3.0,-0.1],[1.0,1.7,-0.1],[0.5,1.7,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[-1.0,0.0,0.1],[-1.0,3.0,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[1.0,0.0,-0.1],[1.0,3.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[1.0,3.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[0.5,1.7,0.1],[-0.5,1.7,-0.1],[0.5,1.7,-0.1],[-0.5,1.7,-0.1],[0.5,1.7,0.1],[0.5,1.7,-0.1],[0.5,1.7,0.1],[-0.5,1.7,0.1],[-0.5,1.7,-0.1],[-0.5,1.7,0.1],[0.5,1.7,0.1],[-0.5,1.7,-0.1],[-0.5,1.7,0.1],[-0.5,1.3,-0.1],[-0.5,1.7,-0.1],[-0.5,1.3,-0.1],[-0.5,1.7,0.1],[-0.5,1.7,-0.1],[-0.5,1.7,0.1],[-0.5,1.3,0.1],[-0.5,1.3,-0.1],[-0.5,1.3,0.1],[-0.5,1.7,0.1],[-0.5,1.3,-0.1],[-0.5,1.3,0.1],[0.5,1.3,-0.1],[-0.5,1.3,-0.1],[0.5,1.3,-0.1],[-0.5,1.3,0.1],[-0.5,1.3,-0.1],[-0.5,1.3,0.1],[0.5,1.3,0.1],[0.5,1.3,-0.1],[0.5,1.3,0.1],[-0.5,1.3,0.1],[0.5,1.3,-0.1],[0.5,1.3,0.1],[0.5,1.7,-0.1],[0.5,1.3,-0.1],[0.5,1.7,-0.1],[0.5,1.3,0.1],[0.5,1.3,-0.1],[0.5,1.3,0.1],[0.5,1.7,0.1],[0.5,1.7,-0.1],[0.5,1.7,0.1],[0.5,1.3,0.1],[0.5,1.7,-0.1]]}
|
||||
1
library/kollisions/bau_wand_tuer.json
Normal file
1
library/kollisions/bau_wand_tuer.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"aabb_max":[1.0,3.0,0.1],"aabb_min":[-1.0,0.0,-0.1],"dreiecke":72,"oid":"bau_wand_tuer","quelle_glb":"res://assets/objekte/military_desert/bauteile/bau_wand_tuer.glb","vertices":[[-0.6,0.0,0.1],[-1.0,2.2,0.1],[-0.6,2.2,0.1],[-1.0,2.2,0.1],[-0.6,0.0,0.1],[-0.6,2.2,0.1],[-1.0,2.2,-0.1],[-0.6,0.0,-0.1],[-0.6,2.2,-0.1],[-0.6,0.0,-0.1],[-1.0,2.2,-0.1],[-0.6,2.2,-0.1],[-1.0,2.2,0.1],[-0.6,0.0,0.1],[-1.0,0.0,0.1],[-0.6,0.0,0.1],[-1.0,2.2,0.1],[-1.0,0.0,0.1],[-0.6,0.0,-0.1],[-1.0,2.2,-0.1],[-1.0,0.0,-0.1],[-1.0,2.2,-0.1],[-0.6,0.0,-0.1],[-1.0,0.0,-0.1],[-0.6,2.2,0.1],[-1.0,3.0,0.1],[-0.6,3.0,0.1],[-1.0,3.0,0.1],[-0.6,2.2,0.1],[-0.6,3.0,0.1],[-1.0,3.0,-0.1],[-0.6,2.2,-0.1],[-0.6,3.0,-0.1],[-0.6,2.2,-0.1],[-1.0,3.0,-0.1],[-0.6,3.0,-0.1],[-1.0,3.0,0.1],[-0.6,2.2,0.1],[-1.0,2.2,0.1],[-0.6,2.2,0.1],[-1.0,3.0,0.1],[-1.0,2.2,0.1],[-0.6,2.2,-0.1],[-1.0,3.0,-0.1],[-1.0,2.2,-0.1],[-1.0,3.0,-0.1],[-0.6,2.2,-0.1],[-1.0,2.2,-0.1],[0.6,2.2,0.1],[-0.6,3.0,0.1],[0.6,3.0,0.1],[-0.6,3.0,0.1],[0.6,2.2,0.1],[0.6,3.0,0.1],[-0.6,3.0,-0.1],[0.6,2.2,-0.1],[0.6,3.0,-0.1],[0.6,2.2,-0.1],[-0.6,3.0,-0.1],[0.6,3.0,-0.1],[-0.6,3.0,0.1],[0.6,2.2,0.1],[-0.6,2.2,0.1],[0.6,2.2,0.1],[-0.6,3.0,0.1],[-0.6,2.2,0.1],[0.6,2.2,-0.1],[-0.6,3.0,-0.1],[-0.6,2.2,-0.1],[-0.6,3.0,-0.1],[0.6,2.2,-0.1],[-0.6,2.2,-0.1],[1.0,0.0,0.1],[0.6,2.2,0.1],[1.0,2.2,0.1],[0.6,2.2,0.1],[1.0,0.0,0.1],[1.0,2.2,0.1],[0.6,2.2,-0.1],[1.0,0.0,-0.1],[1.0,2.2,-0.1],[1.0,0.0,-0.1],[0.6,2.2,-0.1],[1.0,2.2,-0.1],[0.6,2.2,0.1],[1.0,0.0,0.1],[0.6,0.0,0.1],[1.0,0.0,0.1],[0.6,2.2,0.1],[0.6,0.0,0.1],[1.0,0.0,-0.1],[0.6,2.2,-0.1],[0.6,0.0,-0.1],[0.6,2.2,-0.1],[1.0,0.0,-0.1],[0.6,0.0,-0.1],[1.0,2.2,0.1],[0.6,3.0,0.1],[1.0,3.0,0.1],[0.6,3.0,0.1],[1.0,2.2,0.1],[1.0,3.0,0.1],[0.6,3.0,-0.1],[1.0,2.2,-0.1],[1.0,3.0,-0.1],[1.0,2.2,-0.1],[0.6,3.0,-0.1],[1.0,3.0,-0.1],[0.6,3.0,0.1],[1.0,2.2,0.1],[0.6,2.2,0.1],[1.0,2.2,0.1],[0.6,3.0,0.1],[0.6,2.2,0.1],[1.0,2.2,-0.1],[0.6,3.0,-0.1],[0.6,2.2,-0.1],[0.6,3.0,-0.1],[1.0,2.2,-0.1],[0.6,2.2,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[-1.0,0.0,0.1],[-1.0,3.0,0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[-1.0,0.0,-0.1],[-1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[1.0,0.0,-0.1],[1.0,3.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,0.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,0.1],[-1.0,3.0,0.1],[-1.0,3.0,-0.1],[1.0,3.0,-0.1],[-1.0,3.0,-0.1],[-1.0,3.0,0.1],[1.0,3.0,-0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[1.0,0.0,-0.1],[1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,-0.1],[-1.0,0.0,-0.1],[-1.0,0.0,0.1],[1.0,0.0,0.1],[-1.0,0.0,0.1],[-1.0,0.0,-0.1],[1.0,0.0,0.1],[0.6,2.2,0.1],[-0.6,2.2,-0.1],[0.6,2.2,-0.1],[-0.6,2.2,-0.1],[0.6,2.2,0.1],[0.6,2.2,-0.1],[0.6,2.2,0.1],[-0.6,2.2,0.1],[-0.6,2.2,-0.1],[-0.6,2.2,0.1],[0.6,2.2,0.1],[-0.6,2.2,-0.1],[-0.6,2.2,0.1],[-0.6,0.0,-0.1],[-0.6,2.2,-0.1],[-0.6,0.0,-0.1],[-0.6,2.2,0.1],[-0.6,2.2,-0.1],[-0.6,2.2,0.1],[-0.6,0.0,0.1],[-0.6,0.0,-0.1],[-0.6,0.0,0.1],[-0.6,2.2,0.1],[-0.6,0.0,-0.1],[-0.6,0.0,0.1],[0.6,0.0,-0.1],[-0.6,0.0,-0.1],[0.6,0.0,-0.1],[-0.6,0.0,0.1],[-0.6,0.0,-0.1],[-0.6,0.0,0.1],[0.6,0.0,0.1],[0.6,0.0,-0.1],[0.6,0.0,0.1],[-0.6,0.0,0.1],[0.6,0.0,-0.1],[0.6,0.0,0.1],[0.6,2.2,-0.1],[0.6,0.0,-0.1],[0.6,2.2,-0.1],[0.6,0.0,0.1],[0.6,0.0,-0.1],[0.6,0.0,0.1],[0.6,2.2,0.1],[0.6,2.2,-0.1],[0.6,2.2,0.1],[0.6,0.0,0.1],[0.6,2.2,-0.1]]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue