Took math from RayTracer (except shapes)