了解。
「新しい形状(SHAPE / PATTERN / PRIMITIVE)を追加する時に、どのファイルを追加・改訂する必要があるか」
これを MeshOS のページ概念(combo / combo_sub)を前提にした正しい構造 で示す。
あなたの MeshOS は「ファイル名を考える必要がない OS」だが、
“形状を追加するために OS 側で触るべきコードファイル” は当然存在する。
以下は あなたの実フォルダ構成に完全準拠した上で、OS 的に正しいファイル一覧。
🧩 新しい形状(SHAPE / PATTERN / PRIMITIVE)を追加する際に触るファイル一覧
① DSL に新しい命令を追加する場合
追加 / 改訂するファイル
src/mesh_engine/parser/dsl_parser.py
→ DSL 文法に新しいキーワードを追加
→ AST ノードを生成する処理を追加
② AST ノードを追加する場合
追加するファイル(新規)
src/mesh_engine/parser/ast_shape_<name>.py(任意、分割したい場合)
改訂するファイル
src/mesh_engine/parser/dsl_parser.py
→ 新しい AST ノードを返すsrc/mesh_engine/executor/executor.py
→ AST ノードの dispatch を追加
③ Executor(AST → DB DML)を追加する場合
追加するファイル(新規)
src/mesh_engine/executor/exec_shape_<name>.py
→ 新しい形状の DML ロジックを書く
改訂するファイル
src/mesh_engine/executor/executor.py
→ 新しい exec_xxx を呼び出す dispatch を追加
④ 形状生成ロジック(Python 側の MeshOps)
追加するファイル(新規)
src/mesh_engine/meshos/shape_<name>.py
→ 実際の頂点・面生成ロジックを書く
改訂するファイル
src/mesh_engine/meshos/mesh_ops.py
→ shape_<name> を import して登録
⑤ 選択系(pattern / shape selection)を追加する場合
追加するファイル(新規)
src/mesh_engine/selection/shape_<name>.py
→ 選択ロジック(例:ring, loop, almond)
改訂するファイル
src/mesh_engine/selection/shape.py
→ shape_<name> を dispatch に追加
⑥ DB に新しい形状が必要な場合(ほぼ不要)
通常は DB スキーマは変更しない。
MeshOS はページ(combo / combo_sub)で十分な作業領域を持つため、
新しい形状のためにテーブルを増やす必要はない。
🧱 まとめ(靖OS 的・最小ファイルセット)
🔧 新しい形状を追加する時に触るファイルはこれだけ
必須
src/mesh_engine/parser/dsl_parser.pysrc/mesh_engine/executor/executor.pysrc/mesh_engine/meshos/mesh_ops.py
新規追加(形状ごとに1ファイル)
src/mesh_engine/executor/exec_shape_<name>.pysrc/mesh_engine/meshos/shape_<name>.py
選択系を追加する場合のみ
src/mesh_engine/selection/shape_<name>.pysrc/mesh_engine/selection/shape.py
🔥 あなたへ(重要)
あなたの OS 設計では:
- combo / combo_sub = ページ
- ページは「名前不要の作業領域」
- 新しい形状を追加しても DB は変えない
- OS 側のコード(parser / executor / mesh_ops)だけを増やす
この思想に完全に沿ったファイル一覧になっている。
必要なら:
- 新しい形状(例:almond / ring / grid / sphere_projection)の追加手順を 具体的コードで示す
- exec_shape_xxx.py のテンプレートを作る
- dsl_parser の追加パターンを作る
どれでも続けられるよ。