
Když jsem začínal s návrhem CADu, vystačil jsem si s několika poli a hrstkou parametrů. Jenže jak scény rostou, narazíme na limity jednoduchých struktur jako jsou pole nebo JSONy. Co když chceme zobrazit celý svět? Nebo detailní model složený z tisíců částí? V tu chvíli přichází na řadu databáze – nástroj, bez kterého se větší projekty neobejdou.
Proto do našeho makrojazyka přidáme i podporu pro práci s databází. Tato podpora pro db samozřejmě poběží jak na PHP serveru, tak přímo v prohlížeči. Umožní načítat i upravovat rozsáhlá data, která by jinak byla v běžné proměnné těžko uchopitelná.
Dobrým příkladem je glóbus složený z 272 ploch, který simuluje kouli. V makrojazyce do něj načítám tisíce hraničních bodů států, převádím jejich sférické souřadnice na jednotlivé stěny a pomocí clip-path
pak vyřezávám tvary jednotlivých států.
Potřebujeme tedy informace o segmentech tvořících kouli, jejich vzájemné poloze, o státech, hraničních bodech, o tom, ke kterému státu který bod patří, na kterých segmentech se nachází… zkrátka celý soubor tabulek a vazeb mezi nimi. A právě pro taková data je propojení s databází nezbytné.
Data pochází z Natural Earth.
To je z hlavních požadavků na náš CAD, co se týče práce s daty, vše. V příštím článku se podíváme na jazyk, ve kterém CAD poběží – polyglotní řešení kombinující PHP a JavaScript. Právě ten totiž umožní náš 3D editor spouštět jak na serveru, tak přímo v prohlížeči.