(Vec a, Vec b)
| 14 | Vec sub(Vec a, Vec b) { return new Vec(a.x-b.x, a.y-b.y, a.z-b.z); } |
| 15 | Vec scale(double s, Vec a) { return new Vec(s*a.x, s*a.y, s*a.z); } |
| 16 | double dot(Vec a, Vec b) { return a.x*b.x + a.y*b.y + a.z*b.z; } |
| 17 | Vec unitise(Vec a) { return scale(1 / Math.sqrt(dot(a, a)), a); } |
| 18 | class Ray { |
| 19 | public Vec orig, dir; |
no outgoing calls
no test coverage detected