X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=tests%2Ftransformedshape.cpp;fp=tests%2Ftransformedshape.cpp;h=5468a7330bca8788f63b1bc347528f266e6a5642;hb=eb02e224876676a2d78f7305456a7d6f67d3dee2;hp=0000000000000000000000000000000000000000;hpb=6ff13022b53830d35283905d562c2ef3af198cc1;p=libs%2Fmath.git diff --git a/tests/transformedshape.cpp b/tests/transformedshape.cpp new file mode 100644 index 0000000..5468a73 --- /dev/null +++ b/tests/transformedshape.cpp @@ -0,0 +1,32 @@ +#include +#include +#include + +using namespace Msp; + +class TransformedShapeTests: public Test::RegisteredTest +{ +public: + TransformedShapeTests(); + + static const char *get_name() { return "TransformedShape"; } + +private: + void ray_intersection(); +}; + +TransformedShapeTests::TransformedShapeTests() +{ + add(&TransformedShapeTests::ray_intersection, "Ray intersection"); +} + +void TransformedShapeTests::ray_intersection() +{ + Geometry::TransformedShape shape(Geometry::Rectangle(2, 1), Geometry::AffineTransformation::rotation(Geometry::Angle::from_degrees(45))); + Geometry::Ray ray(LinAl::Vector2(3, 1.05), LinAl::Vector2(-1, 0)); + EXPECT(shape.check_intersection(ray)); + ray = Geometry::Ray(LinAl::Vector2(2.65, 3.35), LinAl::Vector2(-1, -1)); + EXPECT(shape.check_intersection(ray)); + ray = Geometry::Ray(LinAl::Vector2(2.6, 3.4), LinAl::Vector2(-1, -1)); + EXPECT(!shape.check_intersection(ray)); +}