feat(stereo): выделение цветом — многоугольник по точкам (с палитрой)
Новый инструмент «Многоугольник по точкам» (секция «Выделение цветом»): кликаешь точки/вершины по контуру → «Замкнуть» (или клик по первой точке) → область заливается полупрозрачным цветом + контур + вершины. Палитра из 6 цветов (свотчи), переключается. Можно выделить треугольник/грань/сечение из выбранных точек, чтобы подсветить «фигуру по точкам». - StereoSim: _polyMode/_polyPicks/_polyHighlights/_polyColor + _polyGroup; setPolyMode (взаимоисключение с другими инструментами), setPolyColor, closePoly (≥3 точек), removeLastPolyPick, clearPoly, _onPolyClick (авто-замыкание кликом по первой вершине), _rebuildPoly/_drawPolyHighlight/ _drawPolyPreview (превью: пунктир + крупная 1-я точка-подсказка). Пикинг вершин/точек через _pickConstructPoint. Сброс в setFigure, очистка в dispose. - Панель: секция «Выделение цветом» (кнопка, палитра .st-sw, Замкнуть/ Отменить точку/Очистить, #poly-hint); glue stereoPolyMode/Color/Close/ Undo/Clear; интеграция в _stereoDeactivateTools. CSS палитры в lab.css. Верификация: node --check OK; headless-смоук 21/21 (режим+взаимоисключение, пик→замыкание, дефолт/выбранный цвет, авто-замыкание по 1-й точке, требование ≥3, undo точки/выделения, clear, setFigure-сброс, dispose, счётчики fill+контур+вершины); эмодзи/eval/new Function — 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -413,6 +413,15 @@
|
||||
.stereo-panel .st-acc-body { margin: 0 0 8px; padding: 0 1px; }
|
||||
.stereo-panel .st-sublabel { opacity: .8; margin: 8px 0 6px; }
|
||||
|
||||
/* highlight-polygon colour palette */
|
||||
.stereo-panel .st-poly-palette { display: flex; gap: 6px; margin: 4px 0 2px; flex-wrap: wrap; }
|
||||
.stereo-panel .st-sw {
|
||||
width: 20px; height: 20px; border-radius: 50%; cursor: pointer; padding: 0;
|
||||
border: 2px solid rgba(255,255,255,.25); transition: transform .1s, border-color .12s, box-shadow .12s;
|
||||
}
|
||||
.stereo-panel .st-sw:hover { transform: scale(1.12); }
|
||||
.stereo-panel .st-sw.active { border-color: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.25); }
|
||||
|
||||
.gp-preset-group { margin-bottom: 8px; }
|
||||
.gp-preset-label {
|
||||
font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
|
||||
|
||||
Reference in New Issue
Block a user