Skip to content

Commit 39ed14f

Browse files
committed
omerc: use xy/set_xy
1 parent e7b24cd commit 39ed14f

File tree

1 file changed

+14
-22
lines changed

1 file changed

+14
-22
lines changed

src/inner_op/omerc.rs

+14-22
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,9 @@ fn fwd(op: &Op, _ctx: &dyn Context, operands: &mut dyn CoordinateSet) -> usize {
6969
let (sc, cc) = gamma_c.sin_cos();
7070

7171
let mut successes = 0_usize;
72-
let length = operands.len();
7372

74-
for i in 0..length {
75-
let mut coord = operands.get_coord(i);
76-
let lon = coord[0];
77-
let lat = coord[1];
73+
for i in 0..operands.len() {
74+
let (lon, lat) = operands.xy(i);
7875
let slat = lat.sin();
7976

8077
let t = (FRAC_PI_4 - lat / 2.0).tan() / ((1.0 - e * slat) / (1.0 + e * slat)).powf(e / 2.0);
@@ -90,8 +87,9 @@ fn fwd(op: &Op, _ctx: &dyn Context, operands: &mut dyn CoordinateSet) -> usize {
9087
// Variant A
9188
if !variant {
9289
let u = A * (S * c0 + V * s0).atan2(cblon) / B;
93-
coord[0] = v * cc + u * sc + FE;
94-
coord[1] = u * cc - v * sc + FN;
90+
let x = v * cc + u * sc + FE;
91+
let y = u * cc - v * sc + FN;
92+
operands.set_xy(i, x, y);
9593
successes += 1;
9694
continue;
9795
}
@@ -105,18 +103,18 @@ fn fwd(op: &Op, _ctx: &dyn Context, operands: &mut dyn CoordinateSet) -> usize {
105103
} else {
106104
A * (S * c0 + V * s0).atan2(cblon) / B - uc.copysign(latc) * (lonc - lon).signum()
107105
};
108-
coord[0] = v * cc + u * sc + Ec;
109-
coord[1] = u * cc - v * sc + Nc;
106+
let x = v * cc + u * sc + Ec;
107+
let y = u * cc - v * sc + Nc;
108+
operands.set_xy(i, x, y);
110109
successes += 1;
111110
continue;
112111
}
113112

114113
// The general case
115114
let u = A * (S * c0 + V * s0).atan2(cblon) / B - uc.copysign(latc);
116-
coord[0] = v * cc + u * sc + Ec;
117-
coord[1] = u * cc - v * sc + Nc;
118-
119-
operands.set_coord(i, &coord);
115+
let x = v * cc + u * sc + Ec;
116+
let y = u * cc - v * sc + Nc;
117+
operands.set_xy(i, x, y);
120118
successes += 1;
121119
}
122120

@@ -179,11 +177,8 @@ fn inv(op: &Op, _ctx: &dyn Context, operands: &mut dyn CoordinateSet) -> usize {
179177
let offset = if variant { uc.copysign(latc) } else { 0.0 };
180178

181179
let mut successes = 0_usize;
182-
let length = operands.len();
183-
for i in 0..length {
184-
let mut coord = operands.get_coord(i);
185-
let E = coord[0];
186-
let N = coord[1];
180+
for i in 0..operands.len() {
181+
let (E, N) = operands.xy(i);
187182

188183
let v = (E - FE) * cc - (N - FN) * sc;
189184
let u = (N - FN) * cc + (E - FE) * sc + offset;
@@ -215,10 +210,7 @@ fn inv(op: &Op, _ctx: &dyn Context, operands: &mut dyn CoordinateSet) -> usize {
215210

216211
let lat = chi + es * (f[0] * s[0] + f[1] * s[1] + f[2] * s[2] + f[3] * s[3]);
217212
let lon = lambda_0 - (S * c0 - V * s0).atan2((B * u / A).cos()) / B;
218-
219-
coord[0] = lon;
220-
coord[1] = lat;
221-
operands.set_coord(i, &coord);
213+
operands.set_xy(i, lon, lat);
222214
successes += 1;
223215
}
224216

0 commit comments

Comments
 (0)