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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
include <gset.h>
include <mach.h>
include "gtools.h"
# GT_SWIND -- Set graphics window.
procedure gt_swind (gp, gt)
pointer gp # GIO pointer
pointer gt # GTOOLS pointer
real xmin, xmax, dx, ymin, ymax, dy
begin
if (gt != NULL) {
if (GT_TRANSPOSE(gt) == NO) {
call gseti (gp, G_XTRAN, GT_XTRAN(gt))
call gseti (gp, G_YTRAN, GT_YTRAN(gt))
} else {
call gseti (gp, G_YTRAN, GT_XTRAN(gt))
call gseti (gp, G_XTRAN, GT_YTRAN(gt))
}
call ggwind (gp, xmin, xmax, ymin, ymax)
dx = xmax - xmin
dy = ymax - ymin
if (IS_INDEF (GT_XMIN(gt)))
xmin = xmin - GT_XBUF(gt) * dx
else
xmin = GT_XMIN(gt)
if (IS_INDEF (GT_XMAX(gt)))
xmax = xmax + GT_XBUF(gt) * dx
else
xmax = GT_XMAX(gt)
if (IS_INDEF (GT_YMIN(gt)))
ymin = ymin - GT_YBUF(gt) * dy
else
ymin = GT_YMIN(gt)
if (IS_INDEF (GT_YMAX(gt)))
ymax = ymax + GT_YBUF(gt) * dy
else
ymax = GT_YMAX(gt)
if (GT_XFLIP(gt) == YES) {
dx = xmin
xmin = xmax
xmax = dx
}
if (GT_YFLIP(gt) == YES) {
dy = ymin
ymin = ymax
ymax = dy
}
if (GT_TRANSPOSE(gt) == NO)
call gswind (gp, xmin, xmax, ymin, ymax)
else
call gswind (gp, ymin, ymax, xmin, xmax)
}
end
|