fix(opticsbench): постоянный чип «Источник» + восстановлены кнопки Граница/Пластина
- выбор источника теперь всегда доступен: чип «Источник» в списке схемы (раньше — только кликом по точке на холсте); источник выбран по умолчанию - восстановлены потерянные кнопки палитры «+ Граница» / «+ Пластина» - bump opticsbench.js?v=6 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2551,7 +2551,7 @@ class BenchSim {
|
|||||||
this._mk('lens', { xf: 0.40, f: 130, ap: 95 }),
|
this._mk('lens', { xf: 0.40, f: 130, ap: 95 }),
|
||||||
this._mk('screen', { xf: 0.86 }),
|
this._mk('screen', { xf: 0.86 }),
|
||||||
];
|
];
|
||||||
this.selectedId = null;
|
this.selectedId = '__src'; // source selected by default so its controls show on open
|
||||||
this._bindEvents();
|
this._bindEvents();
|
||||||
this._ro = new ResizeObserver(() => { this.fit(); this.draw(); });
|
this._ro = new ResizeObserver(() => { this.fit(); this.draw(); });
|
||||||
this._ro.observe(canvas.parentElement || canvas);
|
this._ro.observe(canvas.parentElement || canvas);
|
||||||
@@ -4413,10 +4413,13 @@ function _benchUpdateUI() {
|
|||||||
if (!benchSim) return;
|
if (!benchSim) return;
|
||||||
const listEl = document.getElementById('bench-list');
|
const listEl = document.getElementById('bench-list');
|
||||||
if (listEl) {
|
if (listEl) {
|
||||||
listEl.innerHTML = benchSim.elements.map(e =>
|
// permanent "Источник" chip so the source is always selectable (not only via canvas)
|
||||||
|
const srcChip = '<button class="preset-btn' + (benchSim.selectedId === '__src' ? ' active' : '') +
|
||||||
|
'" style="font-size:.68rem" onclick="benchSelect(\'__src\')">Источник</button>';
|
||||||
|
listEl.innerHTML = srcChip + benchSim.elements.map(e =>
|
||||||
'<button class="preset-btn' + (e.id === benchSim.selectedId ? ' active' : '') +
|
'<button class="preset-btn' + (e.id === benchSim.selectedId ? ' active' : '') +
|
||||||
'" style="font-size:.68rem" onclick="benchSelect(' + e.id + ')">' + _benchElName(e) + '</button>'
|
'" style="font-size:.68rem" onclick="benchSelect(' + e.id + ')">' + _benchElName(e) + '</button>'
|
||||||
).join('') || '<div class="pp-hint">Пусто</div>';
|
).join('');
|
||||||
}
|
}
|
||||||
const propsEl = document.getElementById('bench-props');
|
const propsEl = document.getElementById('bench-props');
|
||||||
if (propsEl) propsEl.innerHTML = _benchPropsHTML();
|
if (propsEl) propsEl.innerHTML = _benchPropsHTML();
|
||||||
|
|||||||
+3
-1
@@ -3194,6 +3194,8 @@
|
|||||||
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('aperture')">+ Диафрагма</button>
|
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('aperture')">+ Диафрагма</button>
|
||||||
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('screen')">+ Экран</button>
|
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('screen')">+ Экран</button>
|
||||||
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('prism')">+ Призма</button>
|
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('prism')">+ Призма</button>
|
||||||
|
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('interface')">+ Граница</button>
|
||||||
|
<button class="preset-btn" style="font-size:.68rem" onclick="benchAdd('slab')">+ Пластина</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="gp-section-title" style="margin-bottom:6px">Схема</div>
|
<div class="gp-section-title" style="margin-bottom:6px">Схема</div>
|
||||||
<div id="bench-list" style="display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px"></div>
|
<div id="bench-list" style="display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px"></div>
|
||||||
@@ -4844,7 +4846,7 @@
|
|||||||
<script src="/js/labs/graphtransform.js"></script>
|
<script src="/js/labs/graphtransform.js"></script>
|
||||||
<script src="/js/labs/pendulum.js"></script>
|
<script src="/js/labs/pendulum.js"></script>
|
||||||
<script src="/js/labs/equilibrium.js"></script>
|
<script src="/js/labs/equilibrium.js"></script>
|
||||||
<script src="/js/labs/opticsbench.js?v=4"></script>
|
<script src="/js/labs/opticsbench.js?v=6"></script>
|
||||||
<script src="/js/labs/isoprocess.js"></script>
|
<script src="/js/labs/isoprocess.js"></script>
|
||||||
<script src="/js/labs/titration.js"></script>
|
<script src="/js/labs/titration.js"></script>
|
||||||
<script src="/js/labs/probability.js"></script>
|
<script src="/js/labs/probability.js"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user