blob: cc777a9aa966db5890887343e7c8fa42652ee83a (
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
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# PEREGFUNCS.H -- Structure definitions.
# Circle definitions.
define LEN_CIRCLEDES 5
define C_PL Memi[$1] # reference mask
define C_XCEN Memr[P2R($1+1)] # X center of circle
define C_YCEN Memr[P2R($1+2)] # Y center of circle
define C_RADIUS Memr[P2R($1+3)] # radius of circle
define C_PV Memi[$1+4] # pixel value
# Ellipse definitions.
define LEN_ELLDES 10
define E_PL Memi[$1] # reference mask
define E_XCEN Memr[P2R($1+1)] # X center of ellipse
define E_YCEN Memr[P2R($1+2)] # Y center of ellipse
define E_AA Memr[P2R($1+3)] # aa parameter
define E_BB Memr[P2R($1+4)] # bb parameter
define E_CC Memr[P2R($1+5)] # cc parameter
define E_FF Memr[P2R($1+6)] # ff paramater
define E_DXMAX Memr[P2R($1+7)] # the maximum x offset
define E_DYMAX Memr[P2R($1+8)] # the maximum x offset
define E_PV Memi[$1+9] # pixel value
# Box definitions.
define LEN_BOXDES 6
define B_PL Memi[$1] # reference mask
define B_X1 Memr[P2R($1+1)] # X1 lower left corner of box
define B_Y1 Memr[P2R($1+2)] # Y1 lower left corner of box
define B_X2 Memr[P2R($1+3)] # X2 upper right corner of box
define B_Y2 Memr[P2R($1+4)] # Y2 upper right corner of box
define B_PV Memi[$1+5] # pixel value
# Polygon definitions.
define TOL 0.0001 # pixel units
define swapi {tempi=$2;$2=$1;$1=tempi}
define swapr {tempr=$2;$2=$1;$1=tempr}
define equal (abs($1-$2)<TOL)
define LEN_PGONDES 7
define P_PL Memi[$1] # pointer to X vector
define P_XP Memi[$1+1] # pointer to X vector
define P_YP Memi[$1+2] # pointer to Y vector
define P_OO Memi[$1+3] # pointer to previous range list
define P_OY Memi[$1+4] # y value of previous range list
define P_NS Memi[$1+5] # number of line segments
define P_PV Memi[$1+6] # pixel value
# Circular annulus definitions.
define LEN_CANNDES 6
define CA_PL Memi[$1] # reference mask
define CA_XCEN Memr[P2R($1+1)] # x center of circle
define CA_YCEN Memr[P2R($1+2)] # y center of circle
define CA_RADIUS1 Memr[P2R($1+3)] # inner radius of annulus
define CA_RADIUS2 Memr[P2R($1+4)] # outer radius of annulus
define CA_PV Memi[$1+5] # pixel value
# Elliptical annulus defintiions.
define LEN_EANNDES 16
define EA_PL Memi[$1] # reference mask
define EA_XCEN Memr[P2R($1+1)] # x center of ellipse
define EA_YCEN Memr[P2R($1+2)] # y center of ellipse
define EA_AA1 Memr[P2R($1+3)] # aa parameter for inner ellipse
define EA_BB1 Memr[P2R($1+4)] # bb parameter for inner ellipse
define EA_CC1 Memr[P2R($1+5)] # cc parameter for inner ellipse
define EA_FF1 Memr[P2R($1+6)] # ff parameter for inner ellipse
define EA_DXMAX1 Memr[P2R($1+7)] # max dx value for inner ellipse
define EA_DYMAX1 Memr[P2R($1+8)] # max dy value for inner ellipse
define EA_AA2 Memr[P2R($1+9)] # aa parameter for outer ellipse
define EA_BB2 Memr[P2R($1+10)] # bb parameter for outer ellipse
define EA_CC2 Memr[P2R($1+11)] # cc parameter for outer ellipse
define EA_FF2 Memr[P2R($1+12)] # ff parameter for outer ellipse
define EA_DXMAX2 Memr[P2R($1+13)] # max dx value for outer ellipse
define EA_DYMAX2 Memr[P2R($1+14)] # max dy value for outer ellipse
define EA_PV Memi[$1+15] # pixel value
# Rasterop annulus definitions.
define LEN_RANNDES 7
define RA_PL Memi[$1] # the mask descriptor
define RA_IXP Memi[$1+1] # pointer to inner polygon X vector
define RA_IYP Memi[$1+2] # pointer to inner Y polygon vector
define RA_OXP Memi[$1+3] # pointer to outer X polygon vector
define RA_OYP Memi[$1+4] # pointer to outer Y polygon vector
define RA_NVER Memi[$1+5] # number of vertices
define RA_PV Memi[$1+6] # mask pixel value
# Polygon annulus definitions.
define LEN_PAGONDES 7
define PA_PL Memi[$1] # the mask descriptor
define PA_IXP Memi[$1+1] # pointer to inner polygon X vector
define PA_IYP Memi[$1+2] # pointer to inner Y polygon vector
define PA_OXP Memi[$1+3] # pointer to outer X polygon vector
define PA_OYP Memi[$1+4] # pointer to outer Y polygon vector
define PA_NVER Memi[$1+5] # number of vertices
define PA_PV Memi[$1+6] # mask pixel value
# Column definitions.
define LEN_COLSDES 4
define L_PL Memi[$1] # reference mask
define L_RANGES Memi[$1+1] # pointer to the ranges
define L_NRANGES Memi[$1+2] # the number of ranges
define L_XS Memi[$1+3] # the starting x coordinate value
define L_NPIX Memi[$1+4] # the number of pixels value
define L_PV Memi[$1+5] # pixel value
# Line definitions.
define LEN_LINESDES 3
define L_PL Memi[$1] # reference mask
define L_RANGES Memi[$1+1] # pointer to the ranges
define L_PV Memi[$1+2] # pixel value
define MAX_NRANGES 100
define SMALL_NUMBER 1.0e-24
|