了解した。
「ここで、継続メモを作成しておく」──これは、あなたが今の作業状態を“次のセッションで即再開できるように固定する”ための OS レイヤー的スナップショットだね。

以下に、現時点で確定している仕様・座標系・分割ロジック・ミラー仕様をすべて統合した
《継続メモ 2026-05-28》 を作成する。


◆ 継続メモ 2026-05-28(Roblox 型紙用・台形メッシュ生成仕様)

■ 1. 目的

Roblox アバター衣裳(Layered Clothing)の 布型紙(2D パターン)
Blender 上で自動生成するための 台形メッシュ生成 Operator を実装する。


■ 2. 座標系(最終確定)

● Blender / Roblox 共通

  • X 軸:幅方向(右が +X)
  • Y 軸:厚さ方向(布なので常に 0)
  • Z 軸:高さ方向(上が +Z)

● 型紙は XZ 平面 に作り、Y=0 に固定する

Roblox OBJ と完全一致。


■ 3. 台形の向き(最終確定)

  • 鋭角頂点:左下 → (0,0,0)
  • 下辺(長辺 b):右方向(+X)
    • (0,0,0) → (b,0,0)
  • 高さ h:上方向(+Z)
    • (0,0,0) → (0,0,h)
  • 上辺 a:左端合わせ
    • (0,0,h) → (a,0,h)

左下に鋭角、右が長辺、上が高さ
Roblox 型紙として最も安定する姿勢。


■ 4. 分割ロジック(Delphi ロジックを完全移植)

● 横方向(幅)

  • col_x = m
  • 下辺 b を m 分割
  • dx = b / m
  • 上辺 a は m 分割しない
    → 幅方向に補間
    → 余り幅は斜辺側で処理

● 縦方向(高さ)

  • col_z = n
  • 高さ h を n 分割
  • dz = h / n

● 各行の上辺幅

[ Wtop(j) = b - (b - a)\cdot \frac{j}{n} ]

● 各行の置ける長方形数

[ k[j] = \left\lfloor \frac{Wtop(j)}{dx} \right\rfloor ]

● 斜辺側の処理

  • 割り切れる → 直角三角形 1
  • 割り切れない → 補間長方形 2 + 直角三角形 1
    (Delphi の CreateTrapezoidSheet と完全一致)

■ 5. ミラー変換(4 種類)

Enum:

  1. NONE(なし)
  2. LR(左右反転:X *= -1)
  3. UD(上下反転:Z *= -1)
  4. BOTH(左右+上下:X *= -1, Z *= -1)

Y は厚さ方向なので常に 0。


■ 6. アフィン変換の順序(確定)

  1. 生成(Delphi ロジックそのまま)
  2. ミラー適用
  3. 移動 dx, dy, dz を加算

OS レイヤー的に正しい「生成 → 変換」の順序。


■ 7. Blender Operator の UI 項目順(確定)

● 寸法

  1. 上辺 a
  2. 下辺 b
  3. 高さ h(Z)

● 分割

  1. col_x(m)
  2. col_z(n)

● 変換

  1. mirror(NONE / LR / UD / BOTH)
  2. dx(X 移動)
  3. dy(Y 移動:厚さ)
  4. dz(Z 移動:高さ)

■ 8. 現在の状態

  • 座標系 → 完全確定
  • 向き → 完全確定
  • 分割ロジック → Delphi と完全一致で確定
  • ミラー → 4 種類で確定
  • UI 項目順 → 確定
  • 次のステップ → Blender Operator のクラス骨格を作る段階


この継続メモは 次のセッションで即座に再開できる“完全な OS スナップショット” になっている。

次は Blender Operator のクラス骨格(プロパティ定義+execute の流れ) を提示する段階に進めるよ。