(p: Vec2, i: CameraIntrinsics)
| 885 | |
| 886 | // Mirrors distortDivision(). |
| 887 | function _glslDivision(p: Vec2, i: CameraIntrinsics): Vec2 { |
| 888 | const rho2 = p.x * p.x + p.y * p.y; |
| 889 | const disc2 = 1.0 - 4.0 * rho2 * i.kDiv; |
| 890 | if (disc2 < 0.0) return { x: p.x, y: p.y }; // disc2 < 0 → GLSL delta = vec2(0) → distorted = p |
| 891 | const r = 2.0 / (1.0 + Math.sqrt(disc2)); |
| 892 | return { x: p.x * r, y: p.y * r }; |
| 893 | } |
| 894 | |
| 895 | // Mirrors distortEUCM(). |
| 896 | function _glslEUCM(p: Vec2, i: CameraIntrinsics): Vec2 { |
no outgoing calls
no test coverage detected