PHY: スイッチ位置をキーごとのオフセットとして持つ(P-5解消)
キャップ形状からはスイッチ位置が決まらない(Stepped Caps Lockはずれ、XFERはずれない)ため、 (w, h) 矩形の中心からのオフセットをキーのローカル座標系で持つ。既定値0。 Journal: journal/2026-09-19-switch-offset.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+6
-9
@@ -9,7 +9,9 @@ PHYレイヤーは、キースイッチやキーキャップ、その他周辺
|
||||
|
||||
### キースイッチ/キーキャップの配置
|
||||
|
||||
各キーはスイッチ・キャップの情報を統合された状態で持ち、キャップの位置・サイズからスイッチ座標を特定する。
|
||||
各キーはスイッチ・キャップの情報を統合された状態で持つ。
|
||||
スイッチ位置は、キャップの (w, h) 矩形の中心からのオフセットとしてキーごとに持つ(既定値0、単位U、キーのローカル座標系)。
|
||||
Stepped Caps Lockのようにスイッチがキャップ中心からずれるキーがあり、キャップ形状だけではスイッチ位置が決まらないため。
|
||||
以下、単に「キー」と呼ぶ場合、キーキャップの位置・サイズを表すオブジェクトをさすこととする。
|
||||
|
||||
### プロファイル設定
|
||||
@@ -76,7 +78,7 @@ ISO Enterのように長方形でないキーは、サイズに2つ目の矩形(
|
||||
|
||||
各ノードは親から見た変換を持つ。キーとクラスターを混在させた木構造として保持する。
|
||||
|
||||
`phase1-json-schema.md` のPHYスキーマは、この節の Key 型(x2〜h2, decal, ghost, labels)にまだ追従していない。
|
||||
`phase1-json-schema.md` のPHYスキーマは、この節の Key 型(x2〜h2, decal, ghost, labels, switchOffset)にまだ追従していない。
|
||||
|
||||
```ts
|
||||
type Transform = {
|
||||
@@ -98,7 +100,8 @@ type Key = {
|
||||
profile: Profile,
|
||||
decal?: boolean,
|
||||
ghost?: boolean,
|
||||
labels?: string[] // 参考情報
|
||||
labels?: string[], // 参考情報
|
||||
switchOffset?: { x: number, y: number } // (w, h) 矩形の中心から。省略時は0
|
||||
}
|
||||
type Cluster = {
|
||||
transform: Transform,
|
||||
@@ -202,12 +205,6 @@ KLEの rx, ry, r はキーの絶対配置 (x, y, rotation) に変換して取り
|
||||
- 現状の認識: 採用しない可能性が高い。ただし代わりに欲しい機能があり、それを思い出すきっかけとして残している
|
||||
- 格上げ条件: 代わりの機能を定義し、この推定を採るか捨てるかをユーザーが決める
|
||||
|
||||
### P-5 キャップ形状とスイッチ位置の関係
|
||||
|
||||
- 位置づけ: 本文「キャップの位置・サイズからスイッチ座標を特定する」と食い違う事実がある
|
||||
- 現状の認識: Stepped Caps Lockのように、スイッチ位置がキャップ中心からずれるキーがある。一方でステップキー(KLEの l)なら必ずずれるわけではない(昔のXFERなど)。キャップ形状だけではスイッチ位置が決まらない
|
||||
- 格上げ条件: キャップに対するスイッチ位置の表し方(オフセットを持つか等)を決め、本文と Key 型を改める
|
||||
|
||||
### P-6 キーキャップの見た目情報を持つ層
|
||||
|
||||
- 位置づけ: 本文「見た目の属性は保持する。どの層で持つかは決まっていない」の未解決部分
|
||||
|
||||
Reference in New Issue
Block a user