Line | Count | Source |
1 | use crate::vm::{ir, ry, rz}; | |
2 | ||
3 | /// Celestial−to−intermediate matrix, given X,Y, IAU 2000 | |
4 | 0 | pub fn c2ixys(x: f64, y: f64, s: f64) -> [[f64; 3]; 3] { |
5 | 0 | let mut rc2i = [[0.0; 3]; 3]; |
6 | 0 | let r2 = x * x + y * y; |
7 | 0 | let e = if r2 > 0.0 { y.atan2(x) } else { 0.0 }; |
8 | 0 | let d = (r2 / (1.0 - r2)).sqrt().atan(); |
9 | ||
10 | 0 | ir(&mut rc2i); |
11 | 0 | rz(e, &mut rc2i); |
12 | 0 | ry(d, &mut rc2i); |
13 | 0 | rz(-(e + s), &mut rc2i); |
14 | 0 | rc2i |
15 | 0 | } |