feat(stereo): A3 — параллели/перпендикуляры + общий undo/redo построений
Фаза A3 раунда «Конструктор». Построения через точку, опираясь на объект: - lpar: прямая ∥ выбранной прямой; - lperp: прямая ⟂ выбранной плоскости (вдоль нормали); - ppar: плоскость ∥ выбранной плоскости; - pperp: плоскость ⟂ выбранной прямой (= плоскость по точке+нормали, через _createPlaneFromPointNormal — мост к Фазе C). Поток: кнопка op → выбор опоры в дереве → клик точки. Общий undo/redo конструкторного слоя: JSON-снапшоты _undoStack/_redoStack (кап 60), хуки _pushHistory в create/remove/clear; Ctrl+Z / Ctrl+Shift+Z / Ctrl+Y + кнопки «Отменить»/«Вернуть». Видимость объекта — не шаг истории. - StereoSim: setRelMode/_pickRelRef/_onRelClick/_createPlaneFromPointNormal; _snapshot/_pushHistory/_restoreSnapshot/undo/redo/canUndo/canRedo; pickConstructObject диспатчит rel/intersect; getConstructions отдаёт relMode + selected по опоре; _lastConstructMsg → flash в подсказку. Сброс rel/истории в setFigure, очистка в clearConstructions. - Панель: 4 кнопки (∥/⟂ прямая/плоск.) + «Отменить»/«Вернуть»; интеграция в _stereoDeactivateTools; glue stereoRelMode/HistUndo/HistRedo; дерево — строки выбираемы и в rel-режиме. Верификация: node --check OK; headless-смоук 30/30 (4 rel-операции с проверкой параллельности направлений/нормалей, гард типа опоры, undo/redo одиночный/многошаговый/redo-сброс/clear-undoable/vis-не-шаг/кап, setFigure- сброс истории, dispose); эмодзи/eval/new Function — 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -85,9 +85,12 @@
|
||||
→ прямая; прямая∩прямая → точка или «скрещиваются») — выбор 2 объектов в дереве (`setIntersectMode`/
|
||||
`pickConstructObject`). **Интерактивное дерево**: видимость (глаз)/удаление (×) по объекту, выбор
|
||||
для пересечения. Точки-пересечения пикабельны → по ним строятся новые прямые/плоскости.
|
||||
- [ ] A3 — **Параллели/перпендикуляры** (прямая ∥ прямой через точку; прямая ⟂ плоскости;
|
||||
плоскость ∥ плоскости; плоскость ⟂ прямой = «плоскость по точке и нормали» — мост к Фазе C) +
|
||||
**общий undo/redo** (снапшот всех пользовательских массивов построения, Ctrl+Z/Ctrl+Shift+Z).
|
||||
- [x] A3 — **Параллели/перпендикуляры** через точку (`setRelMode`/`_onRelClick`): `lpar` прямая ∥
|
||||
прямой; `lperp` прямая ⟂ плоскости; `ppar` плоскость ∥ плоскости; `pperp` плоскость ⟂ прямой
|
||||
(= «плоскость по точке и нормали» через `_createPlaneFromPointNormal` — мост к Фазе C). Поток:
|
||||
кнопка op → выбор опоры в дереве → клик точки. **Общий undo/redo** конструкторного слоя (JSON-
|
||||
снапшот `_undoStack`/`_redoStack`, кап 60; хуки в create/remove/clear; Ctrl+Z / Ctrl+Shift+Z /
|
||||
Ctrl+Y + кнопки «Отменить»/«Вернуть»). Видимость — не шаг истории (намеренно).
|
||||
|
||||
### Фаза C — Сечения+
|
||||
|
||||
|
||||
Reference in New Issue
Block a user