@@ -40,6 +40,30 @@ struct Box2D | |||||
B(b) | B(b) | ||||
{} | {} | ||||
Box2D operator +(vec2 v) | |||||
{ | |||||
return Box2D(A + v, B + v); | |||||
} | |||||
Box2D &operator +=(vec2 v) | |||||
{ | |||||
A += v; | |||||
B += v; | |||||
return *this; | |||||
} | |||||
Box2D operator -(vec2 v) | |||||
{ | |||||
return Box2D(A - v, B - v); | |||||
} | |||||
Box2D &operator -=(vec2 v) | |||||
{ | |||||
A -= v; | |||||
B -= v; | |||||
return *this; | |||||
} | |||||
vec2 A, B; | vec2 A, B; | ||||
}; | }; | ||||
@@ -55,6 +79,30 @@ struct Box3D | |||||
B(b) | B(b) | ||||
{} | {} | ||||
Box3D operator +(vec3 v) | |||||
{ | |||||
return Box3D(A + v, B + v); | |||||
} | |||||
Box3D &operator +=(vec3 v) | |||||
{ | |||||
A += v; | |||||
B += v; | |||||
return *this; | |||||
} | |||||
Box3D operator -(vec3 v) | |||||
{ | |||||
return Box3D(A - v, B - v); | |||||
} | |||||
Box3D &operator -=(vec3 v) | |||||
{ | |||||
A -= v; | |||||
B -= v; | |||||
return *this; | |||||
} | |||||
vec3 A, B; | vec3 A, B; | ||||
}; | }; | ||||
@@ -38,6 +38,21 @@ LOLUNIT_FIXTURE(BoxTest) | |||||
LOLUNIT_ASSERT_EQUAL(false, BoxIsectBox(b4, b5)); | LOLUNIT_ASSERT_EQUAL(false, BoxIsectBox(b4, b5)); | ||||
} | } | ||||
LOLUNIT_TEST(Box2DMove) | |||||
{ | |||||
Box2D b1(vec2(0.f, 0.f), vec2(1.f, 1.f)); | |||||
Box2D b2(vec2(2.f, 2.f), vec2(3.f, 3.f)); | |||||
b1 += vec2(0.6f, 0.6f); | |||||
LOLUNIT_ASSERT_EQUAL(false, BoxIsectBox(b1, b2)); | |||||
b1 += vec2(0.6f, 0.6f); | |||||
LOLUNIT_ASSERT_EQUAL(true, BoxIsectBox(b1, b2)); | |||||
b1 -= vec2(0.0f, 0.6f); | |||||
LOLUNIT_ASSERT_EQUAL(false, BoxIsectBox(b1, b2)); | |||||
} | |||||
}; | }; | ||||
} /* namespace lol */ | } /* namespace lol */ | ||||