複数の幾何学的プリミティブ型(すべて基本Primitive
クラスを継承)がクラスのオブジェクトに格納されるアプリケーションを設計していますScene
。
main()
プリミティブを作成してから呼び出すことでプログラムでシーンを作成する関数を使用する代わりに、Scene::add(...)
実行時に読み取られるある種の構成ファイルが必要です。
これにより、シーンについて何かを変更するたびに再コンパイルする必要がなくなり、一般的なアイデアのように見えます(プログラムできない人がいつか私のプログラムを使用する必要がある場合に備えて)
私は次の.ini
ようなファイルを介してシーンを定義する小さなスキームを考案しました:
[primitivefoo]
type = sphere
pos = 10 20 30
radius = 5.5
[primitivebar]
type = triangle
vertexA = 10 10 -10
vertexB = ...
...
あなたはその考えを理解します。
私の計画は、クラスの各サブクラスにPrimitive
独自のメソッドを登録させることです。ファイルのどのタイプ文字列が。のどのサブクラスに対応するかがわかるように、 ->をマップするある種のマップが必要になります。interpretINI(...)
Scene
Scene
string
void* (...)
.ini
Primitive
このアプローチ全体が悪い設計であり、私が達成したいことを達成するためのはるかにエレガントな方法がすでにある場合は、それを聞いてみたいと思います。そうでなければ、誰かが私のデザインを実現するのを手伝ってくれたらとてもありがたいです。Primitive
すべてのサブクラスを反復処理して、サブクラスに登録させる方法に固執していますScene
...