オブジェクトのすべてのインスタンスに対して新しい配列を作成することを避けたいので、常に新しい変数を作成することは実際には良い選択肢ではない状況にあります。基本的に、「ポイント」クラスと、コンストラクターがポイントのベクトルを取る「ポリゴン」クラスがあります。各ポイントは手動で個別に設定する必要があるため、それらの間に実際には数学的進行がないため、私が思いついた最も保守的なソリューションは、私が見つけた「MakeVector」関数を使用して変換するものです直線配列をベクトルに。
つまり、1 つのポリゴンを作成するには、次のようにします。
point ps[]={point(-1,-1,-1),point(1,-1,-1),point(1,1,-1),point(-1,1,-1)};
polygon p1(MakeVector(ps));
この特定の座標セットには数学的進行がありますが、3D モデリングを行っているため、すべてがそうであるとは限りません。次の行は無効であり、エラーをスローします。
ps=new point[]{point(-1,-1,1),point(1,-1,1),point(1,1,1),point(-1,1,1)};
と
ps={point(-1,-1,1),point(1,-1,1),point(1,1,1),point(-1,1,1)};
私はいくつかの異なることを試しましたが、これをすばやく実行する実際の方法はありません。作成した配列のすべての値に対して新しい行を配置する必要はありません。ハードコーディングされた値を使用して、これを行う最良の方法は何でしょうか?