1*11480Sralph /* minmax.c 4.1 83/03/09 */ 2*11480Sralph /* 3*11480Sralph * minmax: find the 4 edges of the glyph within a window. 4*11480Sralph */ 5*11480Sralph 6*11480Sralph #include "bit.h" 7*11480Sralph 8*11480Sralph minmax(g, nrow, ncol, rmin, cmin, rmax, cmax) 9*11480Sralph bitmat g; 10*11480Sralph int nrow, ncol; 11*11480Sralph int *rmin, *cmin, *rmax, *cmax; 12*11480Sralph { 13*11480Sralph register int i, j; 14*11480Sralph register int r1, r2, c1, c2; 15*11480Sralph int ar1, ar2, ac1, ac2; 16*11480Sralph 17*11480Sralph aminmax(g, nrow, ncol, &ar1, &ac1, &ar2, &ac2); 18*11480Sralph #ifdef TRACE 19*11480Sralph if (trace) 20*11480Sralph fprintf(trace, "aminmax returns %d, %d, %d, %d\n", ar1, ac1, ar2, ac2); 21*11480Sralph #endif 22*11480Sralph r1 = nrow; c1 = ncol; r2 = c2 = 0; 23*11480Sralph for (i=ar1; i<=ar2; i++) 24*11480Sralph for (j=ac1; j<=ac2; j++) 25*11480Sralph if (mat(g, nrow, ncol, i, j, 8)) { 26*11480Sralph r1 = min(r1, i); 27*11480Sralph r2 = max(r2, i); 28*11480Sralph c1 = min(c1, j); 29*11480Sralph c2 = max(c2, j); 30*11480Sralph } 31*11480Sralph if (r2 < r1) { 32*11480Sralph /* empty glyph! */ 33*11480Sralph r1 = c1 = r2 = c2 = 1; 34*11480Sralph } 35*11480Sralph *rmin = r1; *rmax = r2; 36*11480Sralph *cmin = c1; *cmax = c2; 37*11480Sralph } 38