我不能执行以下操作,编译器说 std::vector 中没有匹配的运算符,我认为我不能重载它。那么我有什么选择,除了只使用 1 向量来存储碰撞结果。我正在尝试对缓存非常友好,并且我不希望在将其设置为 true 后将相同的 bool 重置为 false,因此使用 or。
void CollisionDetection(const vector<Vector2D>& position1,
const vector<Vector2D>& position2,
dimension dim1, dimension dim2,
vector<bool>& result1, vector<bool>& result2)
{
assert(position1.size()==result1.size());
assert(position2.size()==result2.size());
for(int i=0;i<position1.size();i++)
{
for(int j=0;j<position2.size();j++)
{
result1[i] |= result2[i] |=
rectOverlap(position1[1], position2[i], dim1, dim2);
}
}
}