Files
martinfencl.eu/locenice/app.html
T
2026-10-22 02:12:08 +02:00

352 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="cs">
<head>
<meta charset="utf-8">
<meta name="allstav-config-version" content="2025.2">
<meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
<title>Lo&#269;enice | Slune&#269;n&#253; vrch</title>
<link rel="stylesheet" href="./css/app.css">
<link rel="stylesheet" href="./css/web.css">
<meta name="robots" content="noindex,nofollow">
</head>
<body>
<canvas id="view" aria-label="Interaktivn&#237; trojrozm&#283;rn&#253; model rodinn&#233;ho domu"></canvas>
<svg id="measure" aria-hidden="true"></svg>
<header>
<div class="eyebrow"><span class="dot"></span>RODINN&#221; D&#366;M - Lo&#269;enice</div>
<h1>Slune&#269;n&#253; vrch &ndash; Lo&#269;enice (Novohradsk&#233; podh&#367;&#345;&#237;)</h1>
<div class="sub">Lo&#269;enice &middot; 3D model + simulace slunce</div>
<div class="metrics">
<div class="metric"><strong>15,340 m</strong><small>D&#233;lka</small></div>
<div class="metric"><strong>9,390 m</strong><small>&#352;&#237;&#345;ka</small></div>
<div class="metric"><strong>23&deg;</strong><small>St&#345;echa</small></div>
</div>
</header>
<div class="topright"><button id="standardsToggle" class="btn" type="button" aria-controls="standardsPanel" aria-expanded="false" title="Standardy a vybaveni domu"><svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M3 5h14M3 10h14M3 15h14"/><circle cx="7" cy="5" r="2" fill="currentColor"/><circle cx="13" cy="10" r="2" fill="currentColor"/><circle cx="7" cy="15" r="2" fill="currentColor"/></svg><span class="std-toggle-word">Standardy</span></button><button class="btn" id="sunToggle" aria-controls="sunPanel" aria-expanded="false"
title="Ovl&#225;d&#225;n&#237; slunce"><span class="solar-mark">&#9728;</span><span
class="toggle-word">Slunce</span></button><button class="btn icon" id="infoButton"
aria-label="Nastaven&#237; a informace o modelu" title="Nastaven&#237;">&#9881;&#xFE0E;</button><button
class="btn primary" id="saveGlb">St&#225;hnout <span
class="downloadText">model
</span>GLB</button></div>
<div class="panel" id="panel">
<h2>Model podle projektu</h2>
<p>Ot&#225;&#269;ec&#237; exteri&#233;rov&#253; model v metrech. Hlavn&#237; rozm&#283;ry a polohy otvor&#367;
vych&#225;zej&#237; z k&#243;t. Fas&#225;dn&#237; obklad: HardiePlank podle dodan&#233;ho vzorn&#237;ku; ostatn&#237; barevnost z p&#345;ilo&#382;en&#253;ch vizualizac&#237;.</p>
<h3>Parametry</h3>
<div class="row"><span>Ob&#225;lka domu</span><strong>15,340 &times; 9,390 m</strong></div>
<div class="row"><span>H&#345;eben nad podlahou 1. NP</span><strong>5,137 m</strong></div>
<div class="row"><span>Vrchol kom&#237;na</span><strong>5,837 m</strong></div>
<div class="row"><span>Kryt&#225; terasa / navazuj&#237;c&#237; ochoz</span><strong>&minus;0,03 / &minus;0,21
m</strong></div>
<h3>Barevnost</h3>
<div class="swatches"><label>Fas&#225;da<input id="wallColor" type="color" value="#c9c2ad"></label><label>Krytina<input id="roofColor" type="color" value="#414542"></label></div>
<section class="hardie-card" aria-labelledby="hardieTitle">
<div class="hardie-kicker">Fas&#225;dn&#237; obklad &#183; vstup a terasa</div>
<h4 id="hardieTitle">HardiePlank struktura d&#345;eva</h4>
<p class="hardie-spec">James Hardie &#183; vl&#225;knocement<br>Rozm&#283;r v&#253;robku: 3 600 &#215; 180 &#215; 8 mm</p>
<div id="hardiePreview" class="hardie-preview" role="img" aria-label="Orienta&#269;n&#237; n&#225;hled obkladu"></div>
<div class="hardie-preview-caption">ZV&#282;T&#352;EN&#221; DETAIL STRUKTURY &#183; ORIENTA&#268;N&#282;</div>
<div class="hardie-selection" aria-live="polite"><strong id="hardieColorName">O&#345;&#237;&#353;kov&#283; hn&#283;d&#225;</strong><small id="hardieProductCode">5771220 &#183; v&#253;choz&#237;</small></div>
<fieldset class="hardie-palette"><legend>Standardn&#237; barvy podle dodan&#233;ho vzorn&#237;ku</legend><div class="hardie-options"><label class="hardie-option" style="--chip:#ffffff"><input type="radio" name="hardieColor" value="snehove-bila" autocomplete="off"><span class="hardie-chip" aria-hidden="true"></span><span class="hardie-option-name">Sn&#283;hov&#283; b&#237;l&#225;</span><span class="hardie-option-code">5671220</span><span class="hardie-check" aria-hidden="true">&#10003;</span></label><label class="hardie-option" style="--chip:#d0c8bb"><input type="radio" name="hardieColor" value="sterkove-seda" autocomplete="off"><span class="hardie-chip" aria-hidden="true"></span><span class="hardie-option-name">&#352;t&#283;rkov&#283; &#353;ed&#225;</span><span class="hardie-option-code">5751220</span><span class="hardie-check" aria-hidden="true">&#10003;</span></label><label class="hardie-option" style="--chip:#b9c1c3"><input type="radio" name="hardieColor" value="mlhove-seda" autocomplete="off"><span class="hardie-chip" aria-hidden="true"></span><span class="hardie-option-name">Mlhov&#283; &#353;ed&#225;</span><span class="hardie-option-code">5841220</span><span class="hardie-check" aria-hidden="true">&#10003;</span></label><label class="hardie-option" style="--chip:#758896"><input type="radio" name="hardieColor" value="ocelove-seda" autocomplete="off"><span class="hardie-chip" aria-hidden="true"></span><span class="hardie-option-name">Ocelov&#283; &#353;ed&#225;</span><span class="hardie-option-code">5851220</span><span class="hardie-check" aria-hidden="true">&#10003;</span></label><label class="hardie-option selected" style="--chip:#776e65"><input type="radio" name="hardieColor" value="oriskove-hneda" checked autocomplete="off"><span class="hardie-chip" aria-hidden="true"></span><span class="hardie-option-name">O&#345;&#237;&#353;kov&#283; hn&#283;d&#225;</span><span class="hardie-option-code">5771220</span><span class="hardie-check" aria-hidden="true">&#10003;</span></label><label class="hardie-option" style="--chip:#241510"><input type="radio" name="hardieColor" value="espresso" autocomplete="off"><span class="hardie-chip" aria-hidden="true"></span><span class="hardie-option-name">Espresso</span><span class="hardie-option-code">5460122</span><span class="hardie-check" aria-hidden="true">&#10003;</span></label><label class="hardie-option" style="--chip:#4c5053"><input type="radio" name="hardieColor" value="antracitove-seda" autocomplete="off"><span class="hardie-chip" aria-hidden="true"></span><span class="hardie-option-name">Antracitov&#283; &#353;ed&#225;</span><span class="hardie-option-code">5420122</span><span class="hardie-check" aria-hidden="true">&#10003;</span></label></div></fieldset>
<p class="hardie-scope">M&#283;n&#237; se pouze svisl&#253; fas&#225;dn&#237; obklad u vstupu a na terase, v&#269;etn&#283; bo&#269;n&#237;ch st&#283;n. Podlaha a &#269;ela terasy ani schody se nem&#283;n&#237;.</p>
<a class="hardie-link" href="https://www.jameshardie.cz/cz/hardie-plank" target="_blank" rel="noopener noreferrer">HardiePlank na webu James Hardie &#8599;</a>
<div class="hardie-detail-buttons"><button type="button" data-cladding-view="entry">Detail vstupu</button><button type="button" data-cladding-view="terrace">Detail terasy</button></div>
<button class="hardie-structure-button" type="button" data-cladding-view="structure">P&#345;ibl&#237;&#382;it strukturu ve 3D</button>
<details class="hardie-note"><summary>Odst&#237;ny, struktura a p&#345;esnost modelu</summary>
<p>Barvy jsou ode&#269;ten&#233; z va&#353;eho obr&#225;zku vzorn&#237;ku, nikoli z kalibrovan&#253;ch dat v&#253;robce. Odst&#237;n ve sc&#233;n&#283; ovliv&#328;uje simulovan&#233; slunce, st&#237;n i monitor. Shodu s dodan&#253;m v&#253;robkem ov&#283;&#345;te na fyzick&#233;m vzorku.</p>
<img class="hardie-reference" src="./assets/ui/image-1.jpg" alt="Produktov&#225; fotografie struktury d&#345;eva z dodan&#233;ho vzorn&#237;ku">
<p>Ve 3D je dopln&#283;n jemn&#253; simulovan&#253; reli&#233;f inspirovan&#253; touto fotografi&#237;. Nejde o origin&#225;ln&#237; v&#253;robn&#237; texturu nebo 3D sken.</p>
<p>Vodorovn&#233; &#269;len&#283;n&#237;, geometrie a sp&#225;ry jsou zachov&#225;ny z p&#367;vodn&#237;ho modelu. Uveden&#253; rozm&#283;r desky je specifikace v&#253;robku, nikoli ov&#283;&#345;en&#237; klade&#269;sk&#233;ho pl&#225;nu nebo mont&#225;&#382;n&#237;ch detail&#367;.</p>
</details>
</section>
<p style="font-size:10px">Zvolen&#233; barvy a textura fas&#225;dn&#237;ho obkladu se ulo&#382;&#237; i do sta&#382;en&#233;ho GLB.</p>
<p style="font-size:10px"><a
href="https://www.sto.cz/cepcom/cz/documents/download_colour_ranges_1/StoColor_System_2022_CZ.pdf"
target="_blank" rel="noopener">Vzorn&#237;k barev StoColor System (PDF)</a></p>
<h3>Kolm&#233; pohledy</h3>
<select id="elevation">
<option value="">Vyber pohled...</option>
<option value="north">Severn&#237; pohled</option>
<option value="east">V&#253;chodn&#237; pohled</option>
<option value="south">Ji&#382;n&#237; pohled</option>
<option value="west">Z&#225;padn&#237; pohled</option>
</select>
<div class="buttons"><button class="btn" onclick="document.getElementById('saveGlb').click()">St&#225;hnout
model GLB</button></div>
<details class="site-note">
<summary>Okolí, výškopis a přesnost</summary>
<p><b>Tři spodní přepínače jsou nezávislé a při otevření zapnuté.</b> Zapnutí zároveň zaměří příslušný
pohled. Ikona vedle přepínačů zarámuje zapnuté okolí; Vstup, Terasa a Reset vrátí pohled k domu. Vypnutí
poslední vrstvy obnoví předchozí pohled.</p>
<p>Geometrie, měřítko a poloha původního domu, otvorů, střechy, teras a jejich schodů jsou zachované.
Nahrazen je pouze původní schematický terén, štěrk a vstupní zpevněná plocha.</p>
<p>Podklady okolí: C.2 a C.3 (umístění a upravené úrovně), C.4 (celý pozemek), C.5 (komunikace) a „Ločenice
p.č. 3480/37 – polohopis a výškopis“. Výšková nula: <b>591,840 m Bpv</b>. U vstupu <b>−0,480 m</b>, u
horní podesty schodů z parkování <b>+0,390 m</b>, na konci zahradních schodů dle C.3 <b>−1,395 m</b>.
</p>
<p>Povrch kombinuje původní zaměřené body s upravenými úrovněmi C.3. Mezi body je <b>interpolovaný</b>;
navázání okrajů, skladba dlažby a dvě auta jsou vizualizační zjednodušení. Parkovací plocha směrem k
ulici stoupá; není zobrazena jako jediná vodorovná deska.</p>
<p><b>Rozdíl v podkladech:</b> projekt uvádí výměru <b>1 010 m²</b>, obrys převzatý z vektorové kresby PDF v
měřítku domu vychází přibližně <b>988 m²</b> (o 2,2 % méně). Obrys není uměle zvětšen na deklarovanou
výměru. Přesnou hranici je nutné ověřit ze souřadnic nebo DWG; tato vizualizace není podklad pro
vytyčení ani zemní práce.</p>
<p>Výpočet slunce a převod světových stran do os modelu jsou zachované. Původní azimut severního štítu
<b>351,5°</b> a přibližná poloha obce nejsou tímto geodeticky ověřeny.
</p>
<p>PNG zachycuje právě viditelné vrstvy. GLB exportuje scénu s právě zapnutým okolím a zvolenými barvami;
ovládání slunce zůstává jen v HTML.</p>
</details>
<h3>Úpravy modelu</h3>
<p>Doplněn rohový sloup kryté terasy podle jižního a východního pohledu D.1.1.2.3.1. Průřez 200 × 200 mm a odsazení od hrany jsou odečtené orientačně z kresby, nikoli staticky ověřené. Vinotéka je u stěny a nad celou kuchyní pokračuje vysoký strop obýváku.</p>
<h3>Rozsah a omezen&#237;</h3>
<p class="note">Pracovn&#237; vizualiza&#269;n&#237; model, nikoli BIM nebo podklad pro stavbu. S volitelnou orientační vrstvou interiéru, bez skrytých konstrukcí. Terén okolí je doplněn podle C.3 a výškopisu; mezi body je
interpolovaný. Hranice jsou převzaté graficky z PDF, nikoli ze souřadnic pro vytyčení.</p>
<p>Profily oken, ta&#353;ky, oplechov&#225;n&#237;, technick&#233; vybaven&#237; a spoje jsou
zjednodu&#353;en&#233;. Z&#225;bradl&#237; je kovov&#233; podle pohled&#367; a technick&#233; zpr&#225;vy. V
p&#345;&#237;pad&#283; rozd&#237;lu maj&#237; v&#253;kresy p&#345;ednost p&#345;ed vizualizacemi.</p>
<h3>Pou&#382;it&#233; podklady</h3>
<p style="font-size:10px">D.1.1.2.1.1 P&#367;dorys 1NP<br>D.1.1.2.1.3 P&#367;dorys st&#345;echy<br>D.1.1.2.3.1
Pohledy<br>D.1.1.2.2.1&ndash;3 &#344;ezy A&ndash;A, B&ndash;B, C&ndash;C<br>D.1.1.1 Technick&#225;
zpr&#225;va<br>Obr&#225;zky 6_1.jpeg a 6_2.jpeg</p>
<div class="buttons"><button class="btn" id="savePng">Ulo&#382;it pohled PNG</button><button class="btn"
id="resetColors">P&#367;vodn&#237; barvy</button></div>
<div class="status"><span class="dot"></span>Samostatn&#253; soubor &middot; funguje bez internetu &middot;
verze 05 · sloup terasy, vinotéka a vysoký strop</div>
</div>
<div id="direction"><span class="tag">AKTU&#193;LN&#205; POHLED</span><span id="directionText">Terasa /
jihov&#253;chod</span></div>
<div class="bottom">
<nav class="toolbar" aria-label="Ovl&#225;d&#225;n&#237; modelu"><button class="tool"
data-preset="entry">Vstup</button><button class="tool"
data-preset="terrace">Terasa</button><button class="tool" data-preset="top">Shora</button><span
class="divider"></span><button class="tool" id="terrainButton"
title="Zobrazit nebo skr&#253;t ter&#233;n">Ter&#233;n</button><button class="tool"
id="measureButton">K&#243;ty</button><button class="tool optional active"
id="rotateButton">Ot&#225;&#269;en&#237;</button><span class="divider"></span><button class="tool"
id="resetView" title="Obnovit v&#253;choz&#237; pohled">Reset</button></nav>
<div class="site-controls" role="group" aria-label="Volitelné okolí domu; výchozí stav zapnuto">
<label class="site-switch" title="Komunikace a navazující terén mezi ulicí a domem"><input type="checkbox"
id="siteRoad" autocomplete="off" checked><span>Cesta a přístup</span></label>
<label class="site-switch" title="Celá zahrada a graficky převzatá hranice parcely"><input type="checkbox"
id="siteParcel" autocomplete="off" checked><span>Celý pozemek</span></label>
<label class="site-switch" title="Parkovací plocha, napojení a schody; dvě orientační auta"><input
type="checkbox" id="siteParking" autocomplete="off" checked><span>Parkování</span></label>
<button id="siteFit" class="site-fit" type="button" title="Zarámovat zapnuté okolí"
aria-label="Zarámovat zapnuté okolí"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" aria-hidden="true">
<path d="M9 4H4v5M15 4h5v5M20 15v5h-5M9 20H4v-5" />
<rect x="9" y="9" width="6" height="6" rx="1" />
</svg></button>
</div>
<div id="siteMeta" hidden aria-live="polite"></div>
<div class="help">Ta&#382;en&#237;m ot&#225;&#269;ej &nbsp;&middot;&nbsp; Kole&#269;kem p&#345;ibli&#382;
&nbsp;&middot;&nbsp; Prav&#253;m tla&#269;&#237;tkem posu&#328;</div>
</div>
<div class="compass"><svg viewBox="0 0 84 84">
<circle cx="42" cy="42" r="27" fill="none" stroke="#bec8b7" />
<g id="compassGroup">
<line x1="42" y1="13" x2="42" y2="71" />
<line x1="13" y1="42" x2="71" y2="42" />
<path id="northArrow" d="M42 18 L37 32 L42 29 L47 32 Z" /><text x="42" y="8"
text-anchor="middle">S</text><text x="42" y="81" text-anchor="middle">J</text><text x="3" y="45"
text-anchor="middle">Z</text><text x="80" y="45" text-anchor="middle">V</text>
</g>
</svg></div>
<svg id="sunOverlay" aria-hidden="true"></svg>
<div id="sunStamp"><span>SLUNCE NAD DOMEM</span><br><strong id="sceneTime">21. 6. 2026 · 10:00</strong></div>
<section id="sunPanel" aria-label="Simulace slunce">
<div class="sun-panel-head">
<div>
<div class="sun-kicker">STUDIE OSVĚTLENÍ</div>
<h2>Slunce a stíny</h2>
</div><button class="close-panel" id="sunClose" aria-label="Skrýt panel slunce">×</button>
</div>
<div class="sun-date-row"><label class="sun-field">Datum<input id="sunDate" type="date" min="2000-01-01"
max="2100-12-31" value="2026-06-21"></label><label class="sun-field">Místní čas<input id="sunClock"
type="text" inputmode="numeric" value="10:00" maxlength="5" placeholder="HH:MM"
aria-label="Místní čas ve formátu HH:MM"></label></div>
<div class="sun-seasons" aria-label="Typické dny roku"><button data-season="03-20">Jaro</button><button
data-season="06-21" class="active">Léto</button><button data-season="09-23">Podzim</button><button
data-season="12-21">Zima</button></div>
<div class="sun-status-line"><span id="dayState">Slunce nad obzorem</span><span id="zoneLabel">SELČ ·
UTC+2</span></div>
<svg id="sunGraph" class="sun-graph" viewBox="0 0 304 86" role="img"
aria-label="Výška slunce během dne. Kliknutím změníš čas."></svg>
<label class="sr-only" for="sunTime"
style="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)">Posun času</label>
<input class="sun-scrub" id="sunTime" type="range" min="0" max="1439" value="600" step="1"
aria-valuetext="10:00">
<div class="sun-ticks">
<span>00:00</span><span>06:00</span><span>12:00</span><span>18:00</span><span>24:00</span>
</div>
<div class="sun-play-row"><button id="sunPlay" type="button">▶ Přehrát den</button><select id="sunSpeed"
aria-label="Rychlost simulace">
<option value="15">15 min / s</option>
<option value="30" selected>30 min / s</option>
<option value="60">60 min / s</option>
</select><button id="sunNow" title="Aktuální datum a čas v Praze">Teď</button></div>
<div id="solarMessage" role="status"></div>
<div class="sun-readouts">
<div class="sun-stat">Výška nad obzorem<strong id="sunElevation">—</strong><small>Střed slunečního
kotouče</small></div>
<div class="sun-stat">Azimut slunce<strong id="sunAzimuth">—</strong><small id="sunDirection">Od severu po
směru hodin</small></div>
</div>
<div class="sun-events"><span>Východ <b id="sunRise">—</b></span><span>Poledne <b
id="sunNoon">—</b></span><span>Západ <b id="sunSet">—</b></span></div>
<div class="sun-options"><label><input type="checkbox" id="sunShadows" checked>Vržené stíny</label><label><input
type="checkbox" id="sunPath">Dráha ve 3D</label></div>
<p class="sun-hint" id="pathHint">Posouvej čas a sleduj, kam dopadá slunce na terasu a fasády. Natočení pohledu
polohu slunce nemění.</p>
<button class="sun-export" id="sunSavePng">Uložit obrázek s datem a časem</button>
<details class="sun-advanced">
<summary>Poloha a orientace domu</summary>
<div class="fields"><label class="sun-field">Zeměpisná šířka (° N)<input id="sunLat" type="number" min="-89"
max="89" step="0.0001" value="48.8242"></label><label class="sun-field">Zeměpisná délka (°
E)<input id="sunLon" type="number" min="-180" max="180" step="0.0001" value="14.5275"></label><label
class="sun-field full-row">Azimut severního štítu domu (°, od severu)<input id="houseBearing"
type="number" min="0" max="359.9" step="0.1" value="351.5"></label></div>
<p>Výchozí poloha: <b>Ločenice, přibližný bod obce</b>, nikoli geodeticky určený bod parcely. Ponecháno
původní nastavení <b>351,5°</b>, v původním HTML označené jako odečet severky D.1.1.2.1.1. Přiložené
situace a výškopis bez číselných souřadnic neumožňují toto natočení nezávisle potvrdit. Nejde o ověřený
azimut stavby.</p>
<p id="bearingNote">Jižní štít: 171,5° · vstupní fasáda: 261,5°.</p>
<button class="mini-btn" id="sunResetSite">Obnovit Ločenice a sever z projektu</button>
<p>Časové pásmo zůstává <b>Europe/Prague</b>. Letní čas se přepočítává podle zvoleného data a pravidel
prohlížeče.</p>
</details>
<details class="sun-advanced">
<summary>Co simulace počítá a co ne</summary>
<p>Sluneční poloha se počítá z data, času a zeměpisných souřadnic podle astronomických rovnic Meeus / NOAA.
Směr přímého světla i stínová mapa se mění spolu s časem. Zobrazená výška slunce je geometrická. Východ
a západ jsou určeny pro výšku středu −0,833°, bez místního horizontu.</p>
<p>Stíny vytváří geometrie tohoto modelu. <b>Okolní domy, stromy, ploty a vzdálený horizont nejsou
modelovány.</b> Terén navazuje na body výškopisu a úpravy C.3; mezi body je interpolovaný. Nejde o
výpočet vnitřního denního osvětlení, tepelných
zisků ani výkonu fotovoltaiky. Oblačnost není zahrnuta; jas a barva jsou vizualizační.</p>
<p>Dráha ve 3D je vysvětlující překryv v symbolickém měřítku; slunce není ve skutečné vzdálenosti. Noční
pohled je mírně přisvětlen pro orientaci. Velmi nízké slunce může mít stín mimo rozsah terénu.</p>
<p>Podklady: D.1.1.2.1.1 (severka), D.1.1.2.3.1 (fasády), D.1.1.1 a B (orientace a terasa); situační výkresy
C.1–C.5 pro umístění a „Ločenice p.č. 3480/37 – polohopis a výškopis“ pro terén.</p>
<p>Zdroje výpočtu a polohy: <a href="https://gml.noaa.gov/grad/solcalc/calcdetails.html" target="_blank"
rel="noopener">NOAA / Meeus</a> · <a href="https://www.mistopisy.cz/pruvodce/obec/8006/locenice/"
target="_blank" rel="noopener">Ločenice – souřadnice</a>. Připojení je potřeba jen pro otevření
těchto zdrojů, ne pro simulaci.</p>
</details>
<p class="sun-footnote">Pracovní studie stínů · bez internetu<br>Geometrie domu zůstává zachována. Export GLB
neobsahuje ovládání slunce.</p>
</section>
<button id="interiorLaunch" type="button" aria-controls="interiorPanel" aria-expanded="false" disabled>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M3 11 12 4 21 11M5 10v10h14V10M10 20v-7h5v7"/></svg>
<span>Zapnout interiér<small>Půdorys · 3D bez střechy · procházení</small></span>
</button>
<div class="interior-heading"><button class="btn" id="interiorExit" title="Zpět na původní exteriér (Esc)">← Exteriér</button><div><div class="eyebrow">INTERIÉR / 1. NADZEMNÍ PODLAŽÍ</div><h2 id="interiorViewTitle">Dům bez střechy</h2></div></div>
<section id="interiorPanel" aria-label="Pohledy a nastavení interiéru">
<div class="interior-panel-title"><h3>Uvnitř domu</h3><span>9 místností</span></div>
<svg id="interiorMap" viewBox="0 0 330 205" role="group" aria-label="Kliknutím na místnost přejdete dovnitř"></svg>
<p class="int-map-hint">Klikněte na místnost v mapě nebo vyberte připravený pohled.</p>
<div class="int-kicker">Kuchyň a obytný prostor</div>
<div class="int-views">
<button data-interior-view="kitchen">Kuchyně</button><button data-interior-view="outlook">Z kuchyně ven</button>
<button data-interior-view="living">Obývací prostor</button><button data-interior-view="vault">Trámy a vysoké okno</button>
<button data-interior-view="kitchenVault" style="grid-column:1/-1">Vysoký strop nad kuchyní</button>
</div>
<div class="int-kicker">Přejít do místnosti</div>
<select id="interiorRoom" aria-label="Pohled z vybrané místnosti"><option value="">Vyberte místnost…</option></select>
<section class="int-paint" aria-labelledby="interiorPaintTitle">
<div class="int-paint-head"><h4 id="interiorPaintTitle">Barva zd&#237;</h4><span>Vnit&#345;n&#237; om&#237;tka</span></div>
<div class="int-paint-fields">
<label class="int-paint-picker" title="Vybrat vlastn&#237; barvu zd&#237;"><input id="interiorWallColor" type="color" value="#eeeae1" aria-label="Barva vnit&#345;n&#237;ch zd&#237;" aria-describedby="interiorPaintScope"></label>
<label class="int-paint-hex" for="interiorWallHex">Vlastn&#237; odst&#237;n / HEX<input id="interiorWallHex" type="text" value="#EEEAE1" maxlength="7" spellcheck="false" autocapitalize="characters" autocomplete="off" aria-label="HEX k&#243;d barvy vnit&#345;n&#237;ch zd&#237;"></label>
</div>
<div class="int-paint-presets" role="group" aria-label="P&#345;ipraven&#233; barvy zd&#237;">
<button type="button" data-interior-paint="#eeeae1" aria-pressed="true"><span class="int-paint-chip" style="--paint:#eeeae1" aria-hidden="true"></span>Tepl&#225; b&#237;l&#225;</button>
<button type="button" data-interior-paint="#ffffff" aria-pressed="false"><span class="int-paint-chip" style="--paint:#ffffff" aria-hidden="true"></span>&#268;ist&#225; b&#237;l&#225;</button>
<button type="button" data-interior-paint="#dfceb3" aria-pressed="false"><span class="int-paint-chip" style="--paint:#dfceb3" aria-hidden="true"></span>P&#237;skov&#225;</button>
<button type="button" data-interior-paint="#d9d9d4" aria-pressed="false"><span class="int-paint-chip" style="--paint:#d9d9d4" aria-hidden="true"></span>Sv&#283;tle &#353;ed&#225;</button>
<button type="button" data-interior-paint="#c4cebc" aria-pressed="false"><span class="int-paint-chip" style="--paint:#c4cebc" aria-hidden="true"></span>&#352;alv&#283;jov&#225;</button>
<button type="button" data-interior-paint="#d5c7b9" aria-pressed="false"><span class="int-paint-chip" style="--paint:#d5c7b9" aria-hidden="true"></span>Jemn&#283; b&#233;&#382;ov&#225;</button>
</div>
<button class="int-paint-reset" id="interiorWallReset" type="button">Obnovit p&#367;vodn&#237; barvu zd&#237;</button>
<p class="int-paint-note" id="interiorPaintScope">M&#283;n&#237; v&#353;echny vnit&#345;n&#237; om&#237;tnut&#233; st&#283;ny. Strop, tr&#225;my, obklady a fas&#225;da z&#367;st&#225;vaj&#237; beze zm&#283;ny. Zvolen&#253; odst&#237;n se prom&#237;tne i do PNG a GLB.</p>
</section>
<div class="int-options">
<label><input type="checkbox" id="interiorFurniture" checked>Vybavení</label>
<label><input type="checkbox" id="interiorRoomLabels" checked>Názvy místností</label>
<label><input type="checkbox" id="interiorFill" checked>Přisvětlení interiéru</label>
</div>
<p>V pohledech shora je střecha skrytá a stěny zkrácené do výšky 1,12 m. Procházení obnoví plnou výšku stěn, podhledy a trámy. Dveře mezi místnostmi jsou zobrazené otevřené.</p>
<details class="int-source"><summary>Podklady a přesnost modelu</summary>
<p><b>Dispozice:</b> půdorys D.1.1.2.1.1 ze dne 21. 9. 2026. Čísla místností a popisky ploch jsou převzaté z výkresu. Obvod domu, poloha oken a vnějších dveří jsou beze změny z původního modelu.</p>
<p><b>Kuchyň:</b> zelená dvířka, dubové plochy, vysoké skříně, otevřené police a poloostrov podle dodaných obrázků. Vinotéka je na konci poloostrova u stěny. Nad celou kuchyní a obývacím prostorem je souvislý vysoký šikmý strop s přiznanými trámy. Uspořádání do U je přizpůsobené místnosti 108 a průchodům; přesné výrobní rozměry skříněk ani typy spotřebičů nejsou doložené.</p>
<p><b>Trámy:</b> vzhled upraven hlavně podle pohled_ven.jpeg: vodorovné trámy, svislé podpěry, krátké podélné vzpěry a navazující horní trám. Světlé dřevo má kresbu podél jednotlivých prvků. Přesné průřezy a spoje nejsou z obrázků ověřené; jde o vzhledovou studii, ne statický návrh.</p>
<p><b>Orientační:</b> rozměry nábytku, světlá výška ostatních místností 2,60 m, vysoký strop obytného prostoru podle stávajícího sklonu střechy, průřezy a detaily trámů, sanita a technické vybavení. Jde o prostorovou studii, nikoli výrobní dokumentaci nebo statický návrh.</p>
<p>Rámy oken zůstaly v původní barvě, i když mají referenční obrázky různé odstíny. Výhled používá stávající 3D okolí; fotografie nejsou přesným panoramatem okolní krajiny. V procházení jsou okenní skla opticky skrytá pro volný výhled.</p>
<p>Přisvětlení slouží k čitelnosti interiéru. Simulace slunce není výpočtem vnitřního denního osvětlení.</p>
<div class="int-source-buttons"><button data-int-ref="plan">Původní půdorys</button><button data-int-ref="kitchen1">Kuchyň · 1</button><button data-int-ref="kitchen2">Kuchyň · 2</button><button data-int-ref="view1">Výhled · 1</button><button data-int-ref="view2">Výhled · 2</button></div>
</details>
<button class="int-export" id="interiorSavePng">Uložit aktuální pohled PNG</button>
<button class="int-export" id="interiorSaveGlb">Stáhnout zobrazený model GLB</button>
</section>
<div id="interiorLabels" aria-label="Místnosti v půdorysu"></div>
<div id="interiorTools"><div id="interiorHint">Tažením otáčejte · kolečkem přibližujte · kliknutím na místnost vstupte dovnitř</div>
<nav class="int-mode-bar" aria-label="Režim interiéru"><button data-interior-mode="plan">Půdorys</button><button data-interior-mode="axon" class="active">3D bez střechy</button><button data-interior-mode="walk">Procházet</button><button id="interiorFit" class="int-nav-button" title="Zarámovat dům / obnovit pohled">⌖</button><button id="interiorPanelToggle" class="int-nav-button" title="Skrýt nebo zobrazit navigaci" aria-expanded="true">☷</button></nav>
</div>
<div id="walkPad" aria-label="Ovládání chůze"><button data-walk="forward" aria-label="Jít vpřed">↑</button><button data-walk="left" aria-label="Krok vlevo">←</button><button data-walk="back" aria-label="Jít vzad">↓</button><button data-walk="right" aria-label="Krok vpravo">→</button></div>
<dialog id="interiorReferenceDialog"><div class="int-ref-head"><h3 id="interiorReferenceTitle">Podklad</h3><button id="interiorReferenceClose" aria-label="Zavřít podklad">Zavřít ×</button></div><img id="interiorReferenceImage" alt="Dodaný podklad interiéru"><p class="int-ref-caption" id="interiorReferenceCaption"></p></dialog>
<div id="toast"></div>
<div id="loading">
<div class="spinner"></div>
<div class="label">Na&#269;&#237;t&#225;m 3D model...</div>
</div>
<aside id="standardsPanel" aria-label="Výběr standardů ALLSTAV">
<div class="std-head"><div class="std-kicker">ALLSTAV / STANDARDY 2025</div><div class="std-head-row"><h2>Váš dům, váš výběr</h2><button id="stdClose" class="std-close" aria-label="Zavřít standardy" type="button">×</button></div><p>Katalogové varianty a materiály přímo v modelu.</p></div>
<div class="std-tabs" role="tablist" aria-label="Kategorie standardů"><button role="tab" id="std-tab-exterior" data-std-tab="exterior" aria-selected="true" aria-controls="std-exterior">Exteriér</button><button role="tab" id="std-tab-interior" data-std-tab="interior" aria-selected="false" aria-controls="std-interior">Interiér</button><button role="tab" id="std-tab-summary" data-std-tab="summary" aria-selected="false" aria-controls="std-summary">Můj výběr</button></div>
<div class="std-scroll"><div id="std-exterior" role="tabpanel" aria-labelledby="std-tab-exterior"></div><div id="std-interior" role="tabpanel" aria-labelledby="std-tab-interior" hidden></div><div id="std-summary" role="tabpanel" aria-labelledby="std-tab-summary" hidden></div></div>
<div class="std-footer"><div id="stdSaved" class="std-saved" role="status">Připraveno</div><div class="std-footer-row"><button class="std-action dark" data-std-action="summary">Přehled výběru</button><button class="std-action" data-std-action="exportJson">Zálohovat výběr</button></div></div></aside>
<dialog id="stdCatalogDialog" aria-labelledby="stdCatalogTitle"><div class="std-dialog-head"><h3 id="stdCatalogTitle">Katalog ALLSTAV</h3><button id="stdCatalogClose">Zavřít ×</button></div><img id="stdCatalogImage" alt="Katalog ALLSTAV"><p id="stdCatalogCaption"></p><div class="std-dialog-pager"><button id="stdCatalogPrev">← Předchozí</button><button id="stdCatalogNext">Další →</button></div></dialog>
<dialog id="stdResetDialog" aria-labelledby="stdResetTitle"><h3 id="stdResetTitle">Obnovit výchozí výběr?</h3><p>Vaše volby standardů budou nahrazeny výchozím nastavením. Před obnovením je můžete zálohovat jako JSON. Slunce a okolí domu se nemění.</p><div class="std-two"><button id="stdResetCancel" class="std-action">Zrušit</button><button id="stdResetConfirm" class="std-action dark">Obnovit</button></div></dialog>
<input id="stdImport" type="file" accept=".json,application/json" hidden>
<script id="stdSavedState" type="application/json">{}</script>
<div id="webStatus" role="status">Načítání modelu…</div>
<button id="projectToggle" class="btn" type="button">Projekt a podklady</button>
<dialog id="projectDialog" aria-labelledby="projectTitle">
<div class="web-dialog-head"><div><small>LOČENICE / ZDROJOVÝ MODEL</small><h2 id="projectTitle">Projekt a podklady</h2></div><button id="projectClose" class="btn" aria-label="Zavřít">Zavřít</button></div>
<div class="web-dialog-body">
<p class="web-lead">Dům, katalog a ovládání jsou samostatné soubory. Stavební geometrie vychází z dosavadního modelu, vybavení z referenčních obrázků.</p>
<h3>Kuchyň a obývací pokoj</h3><div id="projectPhotos" class="web-photo-grid"></div>
<p class="web-note">Fotografie se liší v rámech oken a detailech nábytku. Jde o vzhledové reference, nikoli o výrobní výkres kuchyně nebo zaměřené panorama.</p>
<h3>Pozemek a výšky</h3><div id="surveyStats" class="web-stat-grid"></div>
<p class="web-note">Body výškopisu jsou v Bpv; poloha v 3D je převzatá z grafického odečtu PDF. Upravený terén u domu je jiná vrstva než původní zaměření. Rozpor plochy není opraven natažením modelu.</p>
<div class="web-actions"><button class="btn" id="surveyShow">Zobrazit body v modelu</button><button class="btn" data-int-ref="survey">Otevřít výškopis</button><a class="btn" href="./data/site.json" download="locenice_pozemek.json">Data pozemku JSON</a></div>
<h3>Editace modelu</h3><p>Soubor <code>models/dum.glb</code> lze importovat do Blenderu. Kompletní zdroj obsahuje i skryté varianty dveří, žaluzií a interiéru. Export „viditelný výběr“ je naopak pouze konkrétní varianta.</p>
<div class="web-actions"><a class="btn primary" href="./models/dum.glb" download="dum_zdrojovy.glb">Stáhnout celý zdrojový GLB</a><a class="btn" href="./data/catalog.json" download="allstav_katalog.json">Katalog JSON</a></div>
<p class="web-note" id="backendNote"></p>
</div>
</dialog>
<svg id="surveyOverlay" aria-label="Body výškopisu" style="display:none"></svg>
<noscript><div class="web-fatal">Pro 3D model povolte JavaScript. <a href="./models/dum.glb">Stáhnout GLB</a></div></noscript>
<script>
// Firefox and Safari accept an import map only before the first module starts loading, so the map
// for Three.js is added here and bootstrap.js is requested only afterwards.
fetch('./data/app-config.json',{cache:'no-cache'}).then(r=>r.json()).then(c=>{const m=document.createElement('script');m.type='importmap';m.textContent=JSON.stringify({imports:{three:new URL(c.threeModule,location.href).href}});document.head.appendChild(m);}).catch(()=>{}).finally(()=>{const s=document.createElement('script');s.type='module';s.src='./js/bootstrap.js?v=20261022c';document.body.appendChild(s);});
</script>
</body>
</html>