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