--- ray/src/common/resolu.c 1991/11/28 10:31:04 2.2 +++ ray/src/common/resolu.c 2003/02/22 02:07:22 2.3 @@ -1,14 +1,72 @@ -/* Copyright (c) 1991 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: resolu.c,v 2.3 2003/02/22 02:07:22 greg Exp $"; #endif - /* * Read and write image resolutions. + * + * Externals declared in resolu.h */ +/* ==================================================================== + * The Radiance Software License, Version 1.0 + * + * Copyright (c) 1990 - 2002 The Regents of the University of California, + * through Lawrence Berkeley National Laboratory. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes Radiance software + * (http://radsite.lbl.gov/) + * developed by the Lawrence Berkeley National Laboratory + * (http://www.lbl.gov/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Radiance," "Lawrence Berkeley National Laboratory" + * and "The Regents of the University of California" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact radiance@radsite.lbl.gov. + * + * 5. Products derived from this software may not be called "Radiance", + * nor may "Radiance" appear in their name, without prior written + * permission of Lawrence Berkeley National Laboratory. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of Lawrence Berkeley National Laboratory. For more + * information on Lawrence Berkeley National Laboratory, please see + * . + */ + #include +#include +#include #include "resolu.h" @@ -16,6 +74,7 @@ static char SCCSid[] = "$SunId$ LBL"; char resolu_buf[RESOLU_BUFLEN]; /* resolution line buffer */ +void fputresolu(ord, sl, ns, fp) /* put out picture dimensions */ int ord; /* scanline ordering */ int sl, ns; /* scanline length and number */ @@ -23,7 +82,7 @@ FILE *fp; { RESOLU rs; - if ((rs.or = ord) & YMAJOR) { + if ((rs.rt = ord) & YMAJOR) { rs.xr = sl; rs.yr = ns; } else { @@ -43,14 +102,14 @@ FILE *fp; if (!fgetsresolu(&rs, fp)) return(-1); - if (rs.or & YMAJOR) { + if (rs.rt & YMAJOR) { *sl = rs.xr; *ns = rs.yr; } else { *sl = rs.yr; *ns = rs.xr; } - return(rs.or); + return(rs.rt); } @@ -59,18 +118,19 @@ resolu2str(buf, rp) /* convert resolution struct to l char *buf; register RESOLU *rp; { - if (rp->or&YMAJOR) + if (rp->rt&YMAJOR) sprintf(buf, "%cY %d %cX %d\n", - rp->or&YDECR ? '-' : '+', rp->yr, - rp->or&XDECR ? '-' : '+', rp->xr); + rp->rt&YDECR ? '-' : '+', rp->yr, + rp->rt&XDECR ? '-' : '+', rp->xr); else sprintf(buf, "%cX %d %cY %d\n", - rp->or&XDECR ? '-' : '+', rp->xr, - rp->or&YDECR ? '-' : '+', rp->yr); + rp->rt&XDECR ? '-' : '+', rp->xr, + rp->rt&YDECR ? '-' : '+', rp->yr); return(buf); } +int str2resolu(rp, buf) /* convert resolution line to struct */ register RESOLU *rp; char *buf; @@ -88,10 +148,10 @@ char *buf; yndx = cp; if (xndx == NULL || yndx == NULL) return(0); - rp->or = 0; - if (xndx > yndx) rp->or |= YMAJOR; - if (xndx[-1] == '-') rp->or |= XDECR; - if (yndx[-1] == '-') rp->or |= YDECR; + rp->rt = 0; + if (xndx > yndx) rp->rt |= YMAJOR; + if (xndx[-1] == '-') rp->rt |= XDECR; + if (yndx[-1] == '-') rp->rt |= YDECR; if ((rp->xr = atoi(xndx+1)) <= 0) return(0); if ((rp->yr = atoi(yndx+1)) <= 0)