Kreis-Mittelpunkt + Quadranten (0/90/180/270°) sind jetzt snapbar
Nutzer-Wunsch: "bei Kreisen wäre ich froh wenn Kreismittelpunkte und 0/90/180/270 Grad auch snappen." Fund: computeSnap() (tools/snapping.ts) kannte das schon vollständig (Center- + Quadranten-Fang für Kreis/Bogen, Bogen nur innerhalb seiner Winkel-Spanne) -- gesteuert über `settings.center`, das im Modell aber auf `false` stand UND im Footer (StatusBar SnapControl) gar keinen Schalter hatte. Ein bereits fertig gebautes Feature war dadurch komplett unerreichbar. DEFAULT_SNAP.center jetzt `true`; neue Checkbox "Kreismitte/Quadranten (0/90/180/270°)" im Fang-Popover der Statusleiste (analog den übrigen Snap-Arten), damit es wie alle anderen auch abschaltbar bleibt. tsc/vitest 940/940 grün (keine bestehenden Tests setzten auf center:false als Default).
This commit is contained in:
@@ -233,6 +233,7 @@ export const de = {
|
||||
"snap.enabled": "Fang aktiv",
|
||||
"snap.endpoint": "Endpunkt",
|
||||
"snap.midpoint": "Mittelpunkt",
|
||||
"snap.center": "Kreismitte/Quadranten (0/90/180/270°)",
|
||||
"snap.intersection": "Schnittpunkt",
|
||||
"snap.onEdge": "Auf Kante (Lot)",
|
||||
"snap.grid": "Raster",
|
||||
|
||||
@@ -231,6 +231,7 @@ export const en: Record<TranslationKey, string> = {
|
||||
"snap.enabled": "Snap on",
|
||||
"snap.endpoint": "Endpoint",
|
||||
"snap.midpoint": "Midpoint",
|
||||
"snap.center": "Circle center/quadrants (0/90/180/270°)",
|
||||
"snap.intersection": "Intersection",
|
||||
"snap.onEdge": "On edge (perp.)",
|
||||
"snap.grid": "Grid",
|
||||
|
||||
+7
-2
@@ -93,13 +93,18 @@ export interface SnapSettings {
|
||||
hoverDivideCount: number;
|
||||
}
|
||||
|
||||
/** Default-Snap-Einstellungen (endpoint/midpoint/intersection/onEdge + grid). */
|
||||
/**
|
||||
* Default-Snap-Einstellungen (endpoint/midpoint/intersection/onEdge/center +
|
||||
* grid). `center` (Kreis-/Bogen-Mittelpunkt + Quadranten 0/90/180/270°) war
|
||||
* lange im Modell vorhanden, aber ohne UI-Schalter unerreichbar (Default
|
||||
* `false`) — auf Nutzer-Wunsch jetzt an UND im Footer (StatusBar) umschaltbar.
|
||||
*/
|
||||
export const DEFAULT_SNAP: SnapSettings = {
|
||||
enabled: true,
|
||||
endpoint: true,
|
||||
midpoint: true,
|
||||
intersection: true,
|
||||
center: false,
|
||||
center: true,
|
||||
onEdge: true,
|
||||
grid: true,
|
||||
gridSize: 0.1,
|
||||
|
||||
@@ -172,6 +172,15 @@ function SnapControl({
|
||||
/>
|
||||
<span>{t("snap.midpoint")}</span>
|
||||
</label>
|
||||
<label className="sb-snap-row">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={snap.center}
|
||||
disabled={!snap.enabled}
|
||||
onChange={(e) => onSnapChange({ ...snap, center: e.target.checked })}
|
||||
/>
|
||||
<span>{t("snap.center")}</span>
|
||||
</label>
|
||||
<label className="sb-snap-row">
|
||||
<input
|
||||
type="checkbox"
|
||||
|
||||
Reference in New Issue
Block a user