我正在寻找一种表示轴对齐长方体的数据结构
类似于 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)... 以及基本操作如相等、iComparable、hashCode...
这样的数据类型很容易写,我担心的问题是写得快,因为我每秒会做很多立方体的交集和比较。
与其重新发明轮子,也可能忘记一些基本的优化步骤,有没有可以免费使用的类?如果这还包括某种 R-Tree 或类似结构来加速交叉点,那就更好了,尽管此时这是可选的。
否则,我不应该忘记的基本优化步骤是什么?(即结构或类?x、y、z 内部表示为单个类成员或单个数组或结构?)