/** * Handgepflegte Ergaenzungen zum Plan. * * Der PDF-Plan liefert Flaechen, Pflanzensymbole und Hoehenkoten. Alles, was * im Plan nur beschriftet ist (Mauerhoehen, Bauteile, Gebaeude), steht hier - * abgeleitet aus den Planbeschriftungen, den Architekturplaenen von EHLE * Architekten (Haus 9a, 27.04.2021) und den Fotos des Ist-Zustands. * * Alle Koordinaten im Site-Frame in Metern: * X = Hausachse ENE (Peilung 61.16 deg) * Z = senkrecht SSE (Peilung 151.16 deg) * Y = Hoehe relativ zum Fixpunkt 0.00 = 651.17 m ue. M. (= OK FB EG Haus 9a) */ /** Farbe im Plan -> Belagsart. Reihenfolge egal, Zuordnung ueber Hex. */ export const SURFACE_BY_COLOR = { '#ffffcc': 'travertin80', // Travertinplatten: grosse Felder 80x80x3, kleine Rechtecke 40x60x3 '#fcffe7': 'dekorkies', // Dekorkies-Bett; noerdlich der Grenze die Keramikterrasse Zollet '#f8ffcc': 'travertinstell',// Travertinstellplatten-Streifen '#eee8cc': 'travertinmauer',// Mauerkronen, Sitzmauern, schwebende Stufen '#e5ffe5': 'rasen', '#ccffcc': 'rasen', '#ccff99': 'schotterwiese', '#eeeeee': 'keramik', // Keramikplatten 60x60x2 (bauseits vorhanden) '#bbbbbb': 'verbundstein', // Anpassung Verbundsteine Nachbar '#ddba99': 'beet', '#c0bab4': 'spielsand', '#ffaa00': 'holzscheiter', // orange markiert: die beiden Holzscheiterwaende im Sichtschutz '#ddd299': 'travertinstell', '#73e900': 'ligusterhecke', '#cccccc': 'winkelelement', '#aaaaaa': 'spielhaus', '#b29f3c': 'spielhaus', '#80712a': 'gartenhaus', '#335533': 'roboter', }; /** Pflanzensymbole: Planfarbe -> Art. Radius kommt aus dem Plankreis. */ export const PLANT_BY_COLOR = { '#00bb00': 'eibe', // Eiben `Hilli` 80/100 cm - Heckenpflanzen und ein Solitaer '#66ff33': 'solitaer', '#33ff99': 'solitaer', '#cc5599': 'solitaer', // Parrotia persica, persischer Eisenholzbaum '#99ff66': 'strauch', // Heidelbeeren / Beerenstraeucher '#7fff00': 'gras', '#99ff00': 'kraut', '#cbe900': 'kraut', '#74ff63': 'kraut', '#e8ff64': 'kraut', '#59b500': 'kraut', '#0c8e2d': 'kraut', '#00e93c': 'kraut', '#33ff66': 'kraut', '#339966': 'kraut', '#00dbdd': 'kraut', '#ccccff': 'kraut', '#ff66cc': 'kraut', '#7863ff': 'kraut', }; /** * Solitaergehoelze und Baeume. Die Kronenradien stammen aus den Plankreisen, * die Stammhoehen sind Erfahrungswerte fuer die im Plan gezeigten Groessen. */ export const TREES = [ { name: 'Solitärgehölz Sitzplatz Süd', x: -17.5, z: 1.6, crown: 1.34, height: 4.6, species: 'parrotia' }, { name: 'Solitärgehölz Terrasse NW', x: -19.1, z: -5.5, crown: 0.67, height: 3.2, species: 'parrotia' }, { name: 'Solitärgehölz Flammengrill', x: -4.0, z: 3.9, crown: 0.63, height: 3.0, species: 'parrotia' }, { name: 'Apfelbaum', x: 1.69, z: 4.05, crown: 0.9, height: 3.4, species: 'apfel' }, // Nachbargarten Zollet, im Plan mitgezeichnet { name: 'Solitärgehölz Zollet', x: -17.6, z: -10.2, crown: 1.34, height: 4.6, species: 'parrotia', neighbour: true }, ]; /** * Die beiden Hauptebenen des Gartens. * * Der Garten liegt auf zwei Niveaus: der Hauptsitzplatz aus Travertinplatten * liegt auf -0.33, dahinter steht die Travertinsitzmauer mit 31 cm Ansichtshoehe, * und direkt hinter ihr geht es eben weiter auf -0.02 mit Rasen, Kiesfeld und * Flammengrill. Flaechen, deren Schwerpunkt in einem dieser Bereiche liegt, * werden exakt auf das Niveau gelegt statt aus streuenden Koten geschaetzt. * * Gegen Osten steigt der Garten laut Plan weiter an (0.26 bis 0.63) - dort * bleibt die Ausgleichsebene aus den Koten stehen. */ export const LEVELS = [ { // Die Feuerwehrzufahrt ist eine Rampe: der Plan gibt -2.08 bei z -7.21 // und -1.08 bei z 0.12 an, also rund 13.6 % Steigung. Ohne feste Vorgabe // legt sich der Belag als schwebende Platte ueber das Gelaende. id: 'feuerwehrzufahrt', plane: [0, 0.1364, -1.096], types: ['tegula'], note: 'Feuerwehrzufahrt als Rampe', polygon: [[-25.90, -13.80], [-21.90, -13.80], [-21.90, 6.60], [-25.90, 6.60]], }, { // Der Ostweg steigt von der Treppenkrone (-0.37 bei z -4.18) bis zur // Suedostecke (0.63 bei z 4.31) gleichmaessig an - im Architekturplan // steht dort "Steigung 9.9%". id: 'weg-ost', plane: [0, 0.1178, 0.1224], types: ['tegula'], note: 'Ostweg als Rampe', polygon: [[2.05, -4.30], [4.55, -4.30], [4.55, 5.05], [2.05, 5.05]], }, { id: 'weg-ost-gelaender', level: -0.45, types: ['tegula'], note: 'Belagstreifen neben dem Gelaender der Osttreppe', polygon: [[2.05, -6.60], [2.92, -6.60], [2.92, -4.15], [2.05, -4.15]], }, { id: 'weg-ost-unten', level: -1.57, types: ['tegula'], note: 'Podest am Fuss der Osttreppe', polygon: [[2.80, -7.70], [4.55, -7.70], [4.55, -6.45], [2.80, -6.45]], }, { // Der Weg an der Suedgrenze folgt dem Anstieg der Grenzkoten von -0.04 // im Westen auf 0.63 im Osten. id: 'weg-sued', plane: [0.0305, 0, 0.5634], types: ['tegula'], note: 'Weg an der Suedgrenze als Rampe', polygon: [[-21.90, 4.45], [4.55, 4.45], [4.55, 6.05], [-21.90, 6.05]], }, { // Der Rasen der oberen Ebene ist eben. Die Koten 0.09 bis 0.26 liegen // schon im angehobenen Kiesbett des Sichtschutzes, nicht mehr im Rasen - // ohne feste Vorgabe zieht die Interpolation den Rasen huegelig hoch. id: 'oben', level: -0.02, flatten: true, note: 'Obere Ebene: Rasen und Kiesfeld, eben auf -0.02', polygon: [[-18.30, 0.90], [-4.70, 0.90], [-4.70, 4.00], [-18.30, 4.00]], }, { id: 'unten', level: -0.33, note: 'Untere Ebene: Hauptsitzplatz Travertin mit Kiesstreifen und Eiben', polygon: [ [-21.90, -6.65], [-13.75, -6.65], [-13.75, 0.90], [-18.42, 0.90], [-18.42, 4.15], [-21.90, 4.15], ], }, { id: 'oben', level: -0.02, note: 'Obere Ebene beim Uebergang: gedeckter Sitzplatz und Rasen an der Mauer', polygon: [[-14.00, -3.20], [-10.20, -3.20], [-10.20, 1.00], [-14.00, 1.00]], types: ['keramik'], }, ]; /** * Mauern, Stuetzelemente und Waende. * `path` = Mittellinie, `t` = Dicke, `top`/`base` = Hoehe der Krone bzw. des Fusses * (null = folgt dem Gelaende). Alle Werte aus den Planbeschriftungen und Koten. */ export const WALLS = [ { id: 'travertinmauer-nord', type: 'travertin', note: 'Travertinmauer an der Grenze zum Nachbargrundstueck Zollet; Krone auf dem Niveau der unteren Ebene, stuetzt rund 1.5 m ab', path: [[-18.17, -6.895], [-13.82, -6.895]], t: 0.55, top: -0.33, base: -1.95, }, { id: 'sitzmauer-nord', type: 'travertin', note: 'Sitzmauer 25 cm ueber der unteren Ebene (gelbe Kote "25" im Plan)', path: [[-20.08, -6.47], [-13.82, -6.47]], t: 0.30, top: -0.08, base: -0.55, }, { id: 'winkelelemente-west', type: 'beton', note: 'Winkelelemente aus Beton entlang der Westgrenze, stuetzen den Garten ueber der Feuerwehrzufahrt', path: [[-20.12, -6.62], [-20.66, 0.51], [-21.70, 0.52], [-21.70, 2.37]], t: 0.22, top: null, base: null, retains: 'west', }, { // Diese Mauer ist der Hoehensprung zwischen den beiden Ebenen: Krone // buendig mit der oberen Ebene (-0.02), Fuss auf der unteren (-0.33). // Ansichtshoehe damit genau 31 cm. id: 'travertinsitzmauer-west', type: 'travertin', note: 'Travertinsitzmauer: 31 cm Hoehensprung vom Hauptsitzplatz zum Rasen', path: [[-18.64, 0.755], [-14.73, 0.755]], t: 0.41, top: -0.02, base: -0.55, seating: true, }, { id: 'travertinsitzmauer-sued', type: 'travertin', note: 'Schenkel der Travertinsitzmauer laengs des Rasens, gleicher Hoehensprung', path: [[-18.44, 0.55], [-18.44, 3.94]], t: 0.40, top: -0.02, base: -0.55, seating: true, }, { // Der Plan beschriftet die Linien an der Ostgrenze mit "Winkelelemente": // sie stuetzen den Garten gegen den tiefer liegenden Fussweg ab. id: 'winkelelemente-ost', type: 'beton', note: 'Winkelelemente aus Beton an der Ostgrenze, gegen den Fussweg', path: [[4.45, -6.90], [4.45, 4.90]], t: 0.16, top: null, base: null, retains: 'ost', }, { id: 'betonmauer-nachbar', type: 'beton', note: 'Bestehende Betonmauer des Suednachbarn entlang der Grenze', path: [[-17.41, 6.07], [1.99, 6.07]], t: 0.20, top: 1.10, base: -0.60, }, { id: 'betonmauer-nachbar-ost', type: 'beton', note: 'Rueckspringender Schenkel der Nachbarmauer', path: [[2.09, 6.07], [2.09, 9.05]], t: 0.20, top: 1.10, base: -0.60, }, // Der Plan zeigt zwei orange markierte Felder von 1.50 x 0.46 m in der // Sichtschutzlinie; die Beschriftung "Holzscheiterwand 150 cm x 200 cm" // steht zwischen ihnen und gilt fuer beide. { id: 'holzscheiterwand-west', type: 'holzscheiter', note: 'Holzscheiterwand 150 cm breit, 200 cm hoch, hinter dem Flammengrill', path: [[-6.08, 4.18], [-4.58, 4.18]], t: 0.46, top: 2.32, base: 0.22, }, { id: 'holzscheiterwand-ost', type: 'holzscheiter', note: 'Zweite Holzscheiterwand 150 cm breit, 200 cm hoch', path: [[-8.74, 4.18], [-7.24, 4.18]], t: 0.46, top: 2.28, base: 0.18, }, { id: 'stufe-nordwest', type: 'travertin', note: 'Stufe an der Nordwestecke, vom Sitzplatz auf die Schotterwiese', path: [[-20.90, -7.29], [-20.10, -7.29]], t: 0.42, top: -0.33, base: -0.95, }, { id: 'lamellenwand', type: 'lamellen', note: 'Lamellenwand zum Sitzen: senkrechte Holzlamellen am gedeckten Sitzplatz', path: [[-13.26, 0.91], [-8.73, 0.91]], t: 0.34, top: 2.72, base: -0.05, openSlats: true, }, ]; /** Freistehende Bauteile und Moeblierung. rot = Drehung um Y in Grad. */ export const PROPS = [ // Der Plan reserviert 1.8 x 1.8 m fuer das Gartenhaus. Gebaut wird dort ein // schmaler Gartenschrank: 1.80 m breit, nur 0.50 m tief, rund 2.00 m hoch, // mit dem Ruecken in der Ecke und den Tueren zum Garten. { id: 'gartenschrank', type: 'gartenhaus', x: 1.87, z: -3.58, w: 0.50, d: 1.80, h: 2.00, rot: 0, note: 'Gartenschrank 1.80 x 0.50 m, 2.00 m hoch' }, // Der Plan zeichnet zwei Rechtecke: das Podest 1.81 x 2.70 m (x -0.95 bis // 0.86) und darauf die Huette 1.01 x 2.70 m an der Ostseite (x -0.15 bis // 0.86). Die Kote 1.47 im Podest ist die Hoehe des Bodens - ein Stelzenhaus, // rund 0.9 m ueber dem Gelaende. { id: 'spielhaus', type: 'spielhaus', x: -0.045, z: 3.15, w: 1.81, d: 2.70, h: 1.90, rot: 0, top: 1.47, note: 'Spielhaus durch Zimmermann, Podest auf 1.47' }, { id: 'flammengrill', type: 'flammengrill', x: -6.95, z: 2.45, w: 0.7, d: 0.7, h: 0.85, rot: 0, note: 'Flammengrill im Dekorkiesfeld' }, { id: 'baenkli', type: 'bank', x: -20.62, z: 1.42, w: 0.50, d: 1.50, h: 0.45, rot: 90, note: 'Baenkli aus Travertin' }, { id: 'maehroboter', type: 'roboter', x: -17.87, z: 3.72, w: 0.75, d: 0.55, h: 0.40, rot: 0, note: 'Garage Maehroboter' }, { id: 'wasserhahn', type: 'wasserhahn', x: -13.90, z: -4.60, w: 0.12, d: 0.12, h: 0.85, rot: 0 }, { id: 'schlaufschacht', type: 'schacht', x: -14.35, z: -3.95, w: 0.30, d: 0.30, h: 0.02, rot: 0, note: 'Schlaufschacht D = 30 cm' }, // Der Torfluegel liegt im Plan bei x -21.53 und laeuft ueber z 2.56 bis 3.56. { id: 'gartentor', type: 'tor', x: -21.53, z: 3.06, w: 1.00, d: 0.06, h: 1.20, rot: 90, base: -0.13, note: 'Gartentor 100 cm, Stabgitter aus Stahl, auf dem oberen Niveau' }, // Zwei schwebende Travertinplatten fuehren vom gedeckten Sitzplatz (-0.02) // auf den Hauptsitzplatz (-0.33). Lage und Format stehen im Plan, die // Ausbildung als auskragende Platte zeigt das Referenzbild des Planers. { id: 'stufe-oben', type: 'stufe', x: -14.335, z: -1.065, w: 0.81, d: 3.25, h: 0.08, rot: 0, top: -0.02, note: 'Schwebende Travertinstufe, Tritthoehe -0.02 (Kote im Plan)' }, { id: 'stufe-unten', type: 'stufe', x: -14.880, z: -1.480, w: 0.80, d: 3.20, h: 0.08, rot: 0, top: -0.17, note: 'Schwebende Travertinstufe, Tritthoehe -0.17 (Kote im Plan)' }, // Beim Gartentor liegen ebenfalls zwei schwebende Travertinstufen: der Plan // zeichnet ein Feld 0.80 x 1.60 m mit den Koten -0.13 (Podest am Tor) und // -0.32 (Anschluss an den Hauptsitzplatz). { id: 'stufe-tor-oben', type: 'stufe', x: -21.05, z: 3.35, w: 0.80, d: 0.80, h: 0.08, rot: 0, top: -0.13, note: 'Schwebende Travertinstufe am Gartentor, Tritthoehe -0.13' }, { id: 'stufe-tor-unten', type: 'stufe', x: -21.05, z: 2.55, w: 0.80, d: 0.80, h: 0.08, rot: 0, top: -0.32, note: 'Schwebende Travertinstufe am Gartentor, Tritthoehe -0.32' }, ]; /** * Flaechen, die der Plan nur als weisses Raster zeigt und die deshalb bei der * Farbklassierung durchfallen - Masse aus den Planlinien. */ export const EXTRA_SURFACES = [ { type: 'keramik', note: 'Gedeckter Sitzplatz 14.4 m2, Keramikplatten 60x60x2 cm', polygon: [[-13.93, -3.06], [-8.73, -3.06], [-8.73, 0.86], [-13.93, 0.86]], }, { type: 'tegula', note: 'Feuerwehrzufahrt und Zugangsweg westlich der Grenze, Tegula-Pflastersteine grau', polygon: [[-25.60, -13.50], [-22.10, -13.50], [-22.10, 6.40], [-25.60, 6.40]], }, { // Der Plan zeigt oestlich der Grenze einen gepflasterten Weg, erst dahinter // beginnt die Wiese. Zwei Leuchten stehen daran. type: 'tegula', note: 'Weg an der Ostseite, Rampe oberhalb der Treppe (Steigung rund 12%)', polygon: [[2.12, -4.18], [4.45, -4.18], [4.45, 4.96], [2.12, 4.96]], }, { type: 'tegula', note: 'Belagstreifen neben dem Gelaender, bis an den Kopf der Osttreppe', polygon: [[2.12, -6.55], [2.86, -6.55], [2.86, -4.18], [2.12, -4.18]], }, { type: 'tegula', note: 'Weg an der Ostseite, Podest unterhalb der Treppe auf -1.57', polygon: [[2.86, -7.60], [4.45, -7.60], [4.45, -6.52], [2.86, -6.52]], }, { // Schmaler gepflasterter Streifen jenseits der Suedgrenze, zwischen // Grenze (z 4.49) und den Winkelelementen des Nachbarn (z 4.96). type: 'tegula', note: 'Weg entlang der Suedgrenze: von der Grenze bis an die Nachbarmauer gepflastert', polygon: [[-21.74, 4.49], [4.45, 4.49], [4.45, 5.97], [-21.74, 5.97]], }, { type: 'tegula', note: 'Stellplatte und Sitzplatz des Nachbarn im Nordosten', polygon: [[0.40, -11.20], [4.60, -11.20], [4.60, -7.30], [0.40, -7.30]], }, { // Die schwebenden Stufen im Plan: eine Zwischenebene zwischen dem // gedeckten Sitzplatz (-0.02) und dem Hauptsitzplatz (rund -0.15). // Die Hoehensprünge zeigen sich als Sichtkanten der Belaege. type: 'travertin80', note: 'Schwebende Stufen (Travertin) zwischen den beiden Sitzplaetzen', polygon: [[-15.32, -3.12], [-13.87, -3.12], [-13.87, 0.60], [-15.32, 0.60]], }, ]; /** * Lineare Bauteile, die der Plan benennt, aber nur als Linienbuendel zeichnet: * Treppen mit Rampe, die zugehoerigen Gelaender und die Entwaesserungsrinnen. * * `path` ist die Achse in Laufrichtung, `fromY`/`toY` die Hoehe an Anfang und * Ende. Die Hoehen stammen aus den Koten beidseits des jeweiligen Bauteils. */ export const LINEAR = [ { // Der Plan zeichnet acht Trittlinien bei z -4.18 bis -6.52 ueber die // Breite x 2.17 bis 3.78; die Koten daneben lauten -0.37 und -1.57. id: 'treppe-ost', kind: 'treppe', note: 'Treppe und Rampe hinunter zum Stellplatz des Nachbarn (-0.37 auf -1.57)', path: [[2.975, -4.18], [2.975, -6.52]], width: 1.61, fromY: -0.37, toY: -1.57, steps: 7, }, { id: 'gelaender-ost', kind: 'gelaender', note: 'Gelaender laengs der Osttreppe', path: [[2.17, -4.18], [2.17, -6.52]], fromY: -0.37, toY: -1.57, height: 0.95, }, { // Trittlinien bei x -21.94 bis -22.54 im Abstand von 20 cm, Block bis // x -23.34; Koten -0.28 oben und -1.08 auf der Feuerwehrzufahrt. id: 'treppe-west', kind: 'treppe', note: 'Treppe und Rampe von der Feuerwehrzufahrt zum Gartentor (-0.28 auf -1.08)', path: [[-21.80, 1.37], [-23.34, 1.37]], width: 1.70, fromY: -0.28, toY: -1.08, steps: 5, }, { id: 'gelaender-west', kind: 'gelaender', note: 'Gelaender an der Treppe zur Feuerwehrzufahrt', path: [[-21.80, 0.52], [-23.34, 0.52]], fromY: -0.28, toY: -1.08, height: 0.95, }, { id: 'rinne-gartentor', kind: 'rinne', note: 'Entwaesserungsrinne vor dem Gartentor', path: [[-23.34, 2.295], [-21.74, 2.295]], width: 0.15, }, { id: 'edelstahlrinne', kind: 'rinne', note: 'Edelstahlrinne laengs der Fassade am Hauptsitzplatz', path: [[-13.98, -6.55], [-13.98, -2.95]], width: 0.13, }, ]; /** * Hoehe des Sichtschutzes. Er besteht aus aufrechten Travertinstelen * (50 x 6 cm im Grundriss) und Eibengruppen, die sich abwechseln und * gemeinsam in einem Dekorkiesbett stehen. Die Stelenpositionen kommen * direkt aus dem Plan, die Hoehe haengt davon ab, wohin abgeschirmt wird: * * - gegen den Suednachbarn, entlang der langen Flaeche: 1.80 m * - gegen Zollet und die Feuerwehrzufahrt, untere Ebene: 1.50 m */ export const STELE_HEIGHTS = [ { id: 'sued', height: 1.80, test: (x, z) => z > 3.0 }, { id: 'nord', height: 1.50, test: (x, z) => z < -5.0 }, { id: 'west', height: 1.50, test: (x) => x < -19.4 }, ]; /** * Gebaeude. Das Wohnhaus 9a ist massgetreu aus dem Gartenplan uebernommen, * die Hoehen stammen aus der Suedwest- und Nordostfassade 1:100: * OK FB EG 651.17 -> 0.00 OK FB OG 654.07 -> +2.90 * OK Attika 657.32 -> +6.15 Nachbar Nr. 9 OK FB EG 649.47 -> -1.70 */ export const BUILDING = { id: 'haus-9a', name: 'Haus 9a - Jeanine und Damian Kellenberger', floorLevel: 0.0, upperLevel: 2.9, roofLevel: 6.15, parapet: 0.35, /** * Aussenkante Fassade. Der Baukoerper ist im Grundriss ein Rechteck von * 14.10 x 7.83 m; die Masse stammen aus den schwarzen Wandflaechen des * Gartenplans (Nordostfassade z = -6.87, Suedwestfassade z = +0.96). */ outline: [[-13.82, -6.87], [0.28, -6.87], [0.28, 0.96], [-13.82, 0.96]], /** * Gedeckter Sitzplatz 14.4 m2: im Erdgeschoss zurueckspringende Nische in * der Suedwestecke, oben vom Obergeschoss ueberdeckt. */ loggia: { x0: -13.82, z0: -3.06, x1: -9.06, z1: 0.96, ceiling: 2.75 }, /** * Vordach ueber dem Hauszugang an der Nordostfassade (x = +0.28). Der * Situationsplan zeigt ein Eingangspodest von 1.05 + 1.13 m Tiefe, darueber * das "Vordach (Holzbauer)". */ canopy: { face: 'east', a: -2.95, b: 0.75, depth: 2.20, y: 2.28, thickness: 0.16 }, /** * Oeffnungen, abgegriffen aus den Fassadenplaenen von EHLE Architekten * (1:100, 27.04.2021). Die Fassaden heissen dort nach Himmelsrichtung: * Suedostfassade = z +0.96 (lang, zum Garten) -> face 'south' * Nordostfassade = x +0.28 (kurz, Hauszugang) -> face 'east' * Suedwestfassade = x -13.82 (kurz, zur Terrasse) -> face 'west' * Nordwestfassade = z -6.87 (lang, zum Nachbarn) -> face 'north' * Die Nordwestfassade ist im Plansatz nicht gezeichnet; sie steht am * Nachbarbau und bleibt geschlossen. */ openings: [ // -- Suedostfassade (z = +0.96), zum Garten --------------------------- // Erdgeschoss: das Lamellenband vor dem gedeckten Sitzplatz und die // grosse, mittig sitzende Fensterfront. { face: 'south', a: -12.44, b: -9.32, sill: 0.15, head: 2.20, kind: 'slats' }, { face: 'south', a: -8.82, b: -4.67, sill: 0.0, head: 2.19, kind: 'glass' }, // Obergeschoss: zwei Fenster aussen, dazwischen zwei schmale Lamellen. { face: 'south', a: -12.44, b: -9.98, sill: 3.08, head: 4.90, kind: 'window', upper: true }, { face: 'south', a: -8.90, b: -7.67, sill: 3.30, head: 4.90, kind: 'slats', upper: true }, { face: 'south', a: -6.55, b: -5.40, sill: 3.30, head: 4.90, kind: 'slats', upper: true }, { face: 'south', a: -3.60, b: -1.10, sill: 3.08, head: 4.90, kind: 'window', upper: true }, // -- Nordostfassade (x = +0.28), Hauszugang --------------------------- // Der Zugang ist ein Element aus Tuerfluegel und feststehender // Verglasung, zusammen rund 3.15 m breit. { face: 'east', a: -0.65, b: 0.48, sill: 0.0, head: 2.20, kind: 'door' }, { face: 'east', a: -2.67, b: -0.71, sill: 0.0, head: 2.20, kind: 'glass' }, { face: 'east', a: -6.40, b: -5.54, sill: 1.19, head: 2.15, kind: 'slats' }, { face: 'east', a: -5.93, b: -3.36, sill: 3.18, head: 4.94, kind: 'window', upper: true }, // -- Suedwestfassade (x = -13.82), zur Terrasse ----------------------- // Der grosse Ausschnitt daneben ist der gedeckte Sitzplatz selbst. { face: 'west', a: -5.60, b: -3.91, sill: 0.42, head: 2.01, kind: 'slats' }, { face: 'west', a: -5.71, b: -3.07, sill: 3.17, head: 4.97, kind: 'window', upper: true }, ], }; /** * Nachbargebaeude als Kontext-Volumen. Haus 9 (Zollet) haengt am gleichen * Baukoerper, liegt aber 1.70 m tiefer und ist gegen Nordwesten versetzt. */ export const NEIGHBOUR_BUILDINGS = [ { // Gleicher Baukoerper wie 9a, gegen Nordwesten versetzt und 1.70 m tiefer. // Die Westkante endet bei x = -13.9, damit die Keramikterrasse des // Nachbargartens (Plan: Schwerpunkt -17.1 / -8.6) frei bleibt. id: 'haus-9', name: 'Haus 9 - Sharon und Alan Zollet', outline: [[-13.90, -14.70], [0.20, -14.70], [0.20, -6.87], [-13.90, -6.87]], floorLevel: -1.70, roofLevel: 4.45, }, ]; /** * Gelaendezonen. Innerhalb einer Zone wird zwischen den Hoehenkoten * interpoliert; ueber Zonengrenzen hinweg nicht - dort stehen die Stuetzmauern. */ export const TERRAIN_ZONES = [ { id: 'garten', label: 'Garten Kellenberger', polygon: [[-20.90, -6.60], [4.55, -6.60], [4.55, 5.97], [-20.90, 5.97]], fallback: -0.05, }, { id: 'zufahrt', label: 'Feuerwehrzufahrt / Schotterwiese West', polygon: [[-26.00, -9.00], [-20.90, -9.00], [-20.90, 6.50], [-26.00, 6.50]], fallback: -1.20, }, { id: 'zollet', label: 'Nachbargarten Zollet', polygon: [[-24.00, -14.50], [3.00, -14.50], [3.00, -6.60], [-24.00, -6.60]], fallback: -1.70, }, { // Die Grenze der Zone liegt auf den Winkelelementen bei z 4.96: dort // faengt der Nachbar sein hoeher liegendes Terrain, dahinter steht die // bestehende Betonmauer. id: 'sued', label: 'Nachbargrundstück Süd', polygon: [[-22.00, 5.97], [6.00, 5.97], [6.00, 12.00], [-22.00, 12.00]], fallback: 0.45, }, { id: 'ost', label: 'Wiese Ost', polygon: [[4.55, -6.60], [9.00, -6.60], [9.00, 5.97], [4.55, 5.97]], fallback: 0.55, }, ]; /** * Zusaetzliche Hoehenpunkte, die im Plan nicht als Kote stehen, fuer ein * plausibles Gelaende aber noetig sind (Auslauf gegen die Grundstuecksraender). */ export const EXTRA_SPOTS = [ // Auf der Zufahrt selbst gelten die Plankoten -2.08 (z -7.21) und -1.08 // (z 0.12); quer dazu ist sie eben, sonst entsteht eine Gelaendekante. { x: -25.0, z: -12.0, y: -2.75, zone: 'zufahrt' }, { x: -25.0, z: -7.2, y: -2.08, zone: 'zufahrt' }, { x: -25.0, z: 0.1, y: -1.08, zone: 'zufahrt' }, { x: -25.0, z: 6.0, y: -0.28, zone: 'zufahrt' }, { x: -22.4, z: -7.2, y: -2.08, zone: 'zufahrt' }, { x: -22.4, z: 6.0, y: -0.28, zone: 'zufahrt' }, { x: -20.0, z: -12.5, y: -1.75, zone: 'zollet' }, { x: -8.0, z: -12.5, y: -1.70, zone: 'zollet' }, { x: 2.0, z: -11.5, y: -1.65, zone: 'zollet' }, // Das Nachbargrundstueck im Sueden liegt hoeher als der Garten - genau // deshalb stehen dort Winkelelemente und die bestehende Betonmauer. Die // Werte setzen den Trend der Grenzkoten (-0.04 / 0.26 / 0.63) fort. { x: -18.0, z: 5.6, y: 0.10, zone: 'sued' }, { x: -6.0, z: 5.6, y: 0.45, zone: 'sued' }, { x: 4.0, z: 5.6, y: 0.85, zone: 'sued' }, { x: -18.0, z: 9.0, y: 0.25, zone: 'sued' }, { x: -6.0, z: 9.0, y: 0.60, zone: 'sued' }, { x: 4.0, z: 9.0, y: 1.00, zone: 'sued' }, // Oestlich der Grenze faellt das Gelaende nach Norden zum Stellplatz des // Nachbarn ab - die Plankoten dort lauten -0.72 und -1.57. Ohne diese // Werte legt sich ein Huegel neben den Weg und deckt ihn zu. { x: 7.5, z: -6.4, y: -1.25, zone: 'ost' }, { x: 7.5, z: -3.0, y: -0.35, zone: 'ost' }, { x: 7.5, z: 0.0, y: 0.20, zone: 'ost' }, { x: 7.5, z: 5.0, y: 0.75, zone: 'ost' }, { x: 5.0, z: -6.4, y: -1.35, zone: 'ost' }, { x: 3.0, z: -8.5, y: -1.55, zone: 'zollet' }, ]; /** Startposition und Blickrichtung beim Betreten der Szene. yaw = Grad ab Nord. */ export const START_VIEWS = [ { id: 'sitzplatz', label: 'Hauptsitzplatz', x: -18.6, z: -2.6, yaw: 135, note: 'Travertinplatten 80x80x3 cm, Blick über den Sitzplatz gegen den Rasen' }, { id: 'gedeckt', label: 'Gedeckter Sitzplatz', x: -11.0, z: -1.2, yaw: 215, note: 'Keramikplatten unter dem Obergeschoss, hinter der Lamellenwand' }, { id: 'rasen', label: 'Rasen Süd', x: -13.0, z: 2.8, yaw: 75, note: 'Blick der Südfassade entlang zum Spielbereich' }, { id: 'grill', label: 'Flammengrill', x: -7.8, z: 2.6, yaw: 110, note: 'Dekorkiesfeld mit Flammengrill und Holzscheiterwand' }, { id: 'spielplatz', label: 'Spielbereich', x: -3.4, z: 1.4, yaw: 150, note: 'Spielsand, Spielhaus und Apfelbaum' }, { id: 'eingang', label: 'Hauseingang', x: 1.3, z: -1.8, yaw: 250, note: 'Keramikplatten beim Fixpunkt 0.00' }, ]; /** Standort fuer den Sonnenstand: Abtwil SG. */ export const SITE_LOCATION = { name: 'Egglihaldenstrasse 9a, 9030 Abtwil SG', lat: 47.4206, lon: 9.2903, /** Peilung der Site-X-Achse gegenueber Nord, in Grad. */ northBearingOfSiteX: 61.1615, groundMasl: 651.17, };