# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. include include include # PL_ACCESS -- Return a pointer (llbuf offset) to the indicated mask image # line. A valid offset is always returned; if the mask line is empty, the # offset will be that of the "empty line" linelist. int procedure pl_access (pl, v) pointer pl #I mask descriptor long v[PL_MAXDIM] #I coordinates of desired line int index, i int totlen, axlen define oob_ 91 begin # Compute the index of the line in the line pointer array. if (PL_NAXES(pl) == 2) { # Optimized for case naxes=2. index = v[2] if (index < 1 || index > PL_AXLEN(pl,2)) goto oob_ } else { # General case. index = 1 totlen = 1 do i = 2, PL_NAXES(pl) { axlen = PL_AXLEN(pl,i) if (v[i] < 1 || v[i] > axlen) goto oob_ index = index + totlen * (v[i] - 1) totlen = totlen * axlen } } return (PL_LP(pl,index)) oob_ call syserr (SYS_PLREFOOB) end