軸に沿った直方体を表すデータ構造を探しています
System.Drawing.Rectangle のようなものですが、3D では、たとえば
struct AACuboid
{
int posX, posY, posZ;
int width, length, height;
}
c1.Contains(c2)、c1.Intersects(c2)、c1.Rotate(axis,0/90/180)... などの標準操作と、equality、iComparable、hashCode... などの基本操作を使用します。
このようなデータ型は簡単に記述できますが、1 秒間に多くのキューブの交差と比較を行うので、心配なのは高速に記述することです。
車輪を再発明するのではなく、おそらくいくつかの基本的な最適化ステップを忘れてしまうのではなく、私が使用できる自由に利用できるクラスはありますか? 現時点ではオプションですが、交差を高速化するためのある種の R ツリーまたは同様の構造も含まれているとさらに効果的です。
それ以外の場合、忘れてはならない基本的な最適化手順は何ですか? (つまり、構造体またはクラス? x、y、z は、個々のクラス メンバーとして内部的に表されるか、単一の配列または構造体?)