私は現在、私はそのすべてのしばらく前に書かれている多くの異なるプロジェクトを持っているこれは非常に漠然とした質問であることを行っているが、私は...直面する問題イム周り枠組みにとらわれない構造体の問題
を取得する方法を疑問に思って空間パーティショニングとソートに対応する同様のフレームワークを持っていますが、各プロジェクトではこのフレームワークの独自のバージョンが実装されています。 5がありますが
のDirectX
- :彼らはすべてのグラフィックベースのアプリケーションですが、中に実装していますこれらのフレームワークの異なるバージョンは、まったく同じことを行い、異なるオブジェクトを受け入れるだけです。たとえば、GDIは描画関連タスクのほとんどにSystem.Drawing.Pointを使用しますが、XNAはVector2を使用しますが、X/Yを表すオブジェクトであり、他のライブラリと同じですが、x/y値をint、浮動小数点、倍精度ですが、最終的には、それらは同じデータを表します。
空間パーティショニングフレームワークの主な仕事は、これらの2/3次元の値を処理し、ツリーを生成するか、またはこれらの数値を中心に他のソートベースのタスクを実行することです。
現在、分散したフレームワークを1つの集中型フレームワークに統一しようとしているため、1つのプロジェクトを持つことができます。
私の最初の考えは、カスタムPoint2D、Point3D、Quaternion、RectなどのX/Y問題に対処するためにいくつかの不可知論的なオブジェクトを作成することでした。しかし、レンダリングのためにそれらを元のバージョンに戻す必要がありました。私が各レンダリングサイクルごとに各オブジェクトの各点についてこれを行うのであれば、(このフレームワークができるだけパフォーマンスを上げるように意図されている場合は)大きなパフォーマンスペナルティのように思えます。
私は、この問題を解決し、ネイティブオブジェクトを実装部分に内部的に包み込むインタフェースを持つことを考えていましたが、これが最善の方法であるかどうかはまだ分かりません。これらの問題を解決する必要はありませんでした。
とにかくワッフルをやめることができます。アドバイスは素晴らしいでしょう!
うんXNAはかなり私は複製したいものであり、あなたが釘を打ってきました基本的にどの段階にあるかのように数学図書館で頭の中に置かれているかのように、その場にいるかのように他のすべてがそれらを使用し、根本的なネイティブメソッドを抽象化することができます... GDIとある程度GDIの実装はツールキットベースのアプリケーションです彼らはとにかく速く走る必要はありません。 – Grofit