// // common.cpp // math // // Created by Sam Jaffe on 8/20/16. // #include "common.hpp" #include "angle.hpp" #include "shape.hpp" #include "vector.hpp" namespace math { vec2 rotate(vec2 const & c, vec2 const & p, radian r) { vec2 trans = p - c; vec2 vcos = trans * static_cast(cos(r)); vec2 vsin = trans * static_cast(sin(r)); return { vcos[0] - vsin[1] + c[0], vsin[0] - vcos[1] + c[1] }; } quad rotate(vec2 const & c, quad const & q, radian r) { return { rotate(c, q.ll, r), rotate(c, q.lr, r), rotate(c, q.ur, r), rotate(c, q.ul, r) }; } }