00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include <stdlib.h>
00030 #include <cpl.h>
00031 #include "imcore.h"
00032
00033 #define freespace(_p) if (_p != NULL) {cpl_free(_p); _p = NULL;}
00034
00036
00062
00063
00064 void apinit(ap_t *ap) {
00065 int maxpa;
00066
00067 int i;
00068
00069 maxpa = ap->lsiz / 2;
00070 ap->lastline = cpl_calloc(ap->lsiz + 1, sizeof(short int));
00071 ap->maxip = 0;
00072 ap->maxpa = maxpa;
00073 ap->pstack = cpl_malloc(maxpa*sizeof(*ap->pstack));
00074 ap->parent = cpl_malloc(maxpa*sizeof(*(ap->parent)));
00075 for(i = 0; i < maxpa; i++) {
00076 ap->pstack[i] = i;
00077 ap->parent[i].pnop = -1;
00078 ap->parent[i].pnbp = -1;
00079 }
00080 ap->ipstack = 1;
00081 ap->maxbl = MAXBL;
00082 ap->bstack = cpl_malloc(ap->maxbl*sizeof(*ap->bstack));
00083 ap->blink = cpl_malloc(ap->maxbl*sizeof(*ap->blink));
00084 ap->plessey = cpl_malloc(ap->maxbl*sizeof(*ap->plessey));
00085 for (i = 0; i < MAXBL; i++)
00086 ap->bstack[i] = i;
00087 ap->ibstack = 2;
00088 ap->nimages = 0;
00089
00090
00091
00092 ap->areal[0] = 1;
00093 for (i = 1; i < 8; i++)
00094 ap->areal[i] = ap->areal[i-1]*2;
00095
00096
00097
00098 ap->npl = ap->lsiz;
00099 ap->npl_pix = 0;
00100 ap->plarray = cpl_malloc(ap->npl*sizeof(plstruct));
00101
00102
00103
00104 ap->backmap.nby = -1;
00105 ap->backmap.bvals = NULL;
00106
00107
00108
00109 ap->indata = NULL;
00110 ap->confdata = NULL;
00111 }
00112
00113
00139
00140
00141 void apreinit(ap_t *ap) {
00142 int i;
00143
00144 for (i = 0; i < ap->lsiz+1; i++)
00145 ap->lastline[i] = 0;
00146 ap->maxip = 0;
00147 for(i = 0; i < ap->maxpa; i++) {
00148 ap->pstack[i] = i;
00149 ap->parent[i].pnop = -1;
00150 ap->parent[i].pnbp = -1;
00151 }
00152 ap->ipstack = 1;
00153 ap->ibstack = 2;
00154 ap->nimages = 0;
00155 ap->npl_pix = 0;
00156
00157 }
00158
00159
00183
00184
00185 void apclose(ap_t *ap) {
00186 int i;
00187 freespace(ap->lastline);
00188 freespace(ap->pstack);
00189 freespace(ap->parent);
00190 freespace(ap->bstack);
00191 freespace(ap->blink);
00192 freespace(ap->plessey);
00193 freespace(ap->plarray);
00194 for (i = 0; i < ap->backmap.nby; i++)
00195 freespace(ap->backmap.bvals[i]);
00196 freespace(ap->backmap.bvals);
00197 }
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215