blob: 3c3ac12465b5833563d3d9d1bf2c23cf65138021 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
include "../mwcs.h"
# MW_V1TRAN -- Optimized 1D coordinate transformation for an array of points.
procedure mw_v1trand (a_ct, x1, x2, npts)
pointer a_ct #I pointer to CTRAN descriptor
double x1[ARB] #I coordinates in input system
double x2[ARB] #O coordinates in output system
int npts
int i
pointer ct
double scale, offset
errchk mw_ctrand
begin
# Get real or double version of descriptor.
ct = CT_D(a_ct)
scale = Memd[CT_LTM(ct)]
offset = Memd[CT_LTV(ct)]
# Perform the transformation; case LNR is a simple linear transform.
if (CT_TYPE(ct) == LNR) {
do i = 1, npts
x2[i] = scale * x1[i] + offset
} else {
do i = 1, npts
call mw_ctrand (a_ct, x1[i], x2[i], 1)
}
end
|