| 150 | "grid-template-columns:repeat(3,40px);grid-template-rows:repeat(4,40px);" + |
| 151 | "gap:4px;z-index:1000;font-family:sans-serif;"; |
| 152 | const mkButton = (label: string, gridArea: string, handler: () => void) => { |
| 153 | const b = document.createElement("button"); |
| 154 | b.textContent = label; |
| 155 | b.style.cssText = |
| 156 | "background:#1a1a1a;color:#e0e0e0;border:1px solid #444;" + |
| 157 | "border-radius:4px;cursor:pointer;font-size:18px;" + |
| 158 | `grid-area:${gridArea};`; |
| 159 | b.addEventListener("click", handler); |
| 160 | panel.appendChild(b); |
| 161 | }; |
| 162 | const YAW_STEP = 0.15; |
| 163 | const PITCH_STEP = 0.1; |
| 164 | const ZOOM_STEP = 60; |