Annotation of 43BSD/usr.lib/lib2648/aminmax.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  */
                      6: 
                      7: #ifndef lint
                      8: static char sccsid[] = "@(#)aminmax.c  5.1 (Berkeley) 4/26/85";
                      9: #endif not lint
                     10: 
                     11: /*
                     12:  * aminmax: find the 4 edges of the glyph within a window.
                     13:  * This version is approximate, in that it may include some
                     14:  * blank areas.  But it's much faster because it doesn't have
                     15:  * to call mat over and over.
                     16:  */
                     17: 
                     18: #include "bit.h"
                     19: 
                     20: aminmax(g, nrow, ncol, rmin, cmin, rmax, cmax)
                     21: bitmat g;
                     22: int nrow, ncol;
                     23: int *rmin, *cmin, *rmax, *cmax;
                     24: {
                     25:        register int i, j;
                     26:        register int nc = (ncol+7)>>3;
                     27:        register int r1, r2, c1, c2;
                     28: 
                     29:        r1 = nrow; c1 = nc; r2 = c2 = 0;
                     30:        for (i=0; i<nrow; i++)
                     31:                for (j=0; j<nc; j++)
                     32:                        if (g[i*nc+j]) {
                     33:                                r1 = min(r1, i);
                     34:                                r2 = max(r2, i);
                     35:                                c1 = min(c1, j);
                     36:                                c2 = max(c2, j);
                     37:                        }
                     38:        if (r2 < r1) {
                     39:                /* empty glyph! */
                     40:                r1 = c1 = r2 = c2 = 1;
                     41:        }
                     42:        *rmin = r1; *rmax = r2;
                     43:        *cmin = 8*c1; *cmax = 8*c2+7;
                     44: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.