--- ray/src/rt/text.c 2003/02/22 02:07:29 2.20 +++ ray/src/rt/text.c 2004/03/30 16:13:01 2.25 @@ -1,71 +1,16 @@ #ifndef lint -static const char RCSid[] = "$Id: text.c,v 2.20 2003/02/22 02:07:29 greg Exp $"; +static const char RCSid[] = "$Id: text.c,v 2.25 2004/03/30 16:13:01 schorsch Exp $"; #endif /* * text.c - functions for text patterns and mixtures. */ -/* ==================================================================== - * 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 "copyright.h" #include "ray.h" - +#include "paths.h" #include "otypes.h" - +#include "rtotypes.h" #include "font.h" /* @@ -131,14 +76,17 @@ typedef struct { TLINE tl; /* line list */ } TEXT; -TEXT *gettext(); +static TLINE * tlalloc(char *s); +static TEXT * gettext(OBJREC *tm); +static int intext(FVECT p, OBJREC *m); +static int inglyph(double x, double y, GLYPH *gl); -TLINE *tlalloc(); - -do_text(m, r) -register OBJREC *m; -RAY *r; +extern int +do_text( + register OBJREC *m, + RAY *r +) { FVECT v; int foreground; @@ -185,9 +133,10 @@ RAY *r; } -TLINE * -tlalloc(s) /* allocate and assign text line */ -char *s; +static TLINE * +tlalloc( /* allocate and assign text line */ + char *s +) { register int siz; register TLINE *tl; @@ -202,9 +151,10 @@ char *s; } -TEXT * -gettext(tm) /* get text structure for material */ -register OBJREC *tm; +static TEXT * +gettext( /* get text structure for material */ + register OBJREC *tm +) { #define R (tm->oargs.farg+3) #define D (tm->oargs.farg+6) @@ -251,7 +201,7 @@ register OBJREC *tm; tlp = tlp->next; } else { /* text file */ if ((s = getpath(tm->oargs.sarg[tndx(tm)], - getlibpath(), R_OK)) == NULL) { + getrlibpath(), R_OK)) == NULL) { sprintf(errmsg, "cannot find text file \"%s\"", tm->oargs.sarg[tndx(tm)]); error(USER, errmsg); @@ -295,8 +245,10 @@ register OBJREC *tm; } -freetext(m) /* free text structures associated with m */ -OBJREC *m; +extern void +freetext( /* free text structures associated with m */ + OBJREC *m +) { register TEXT *tp; register TLINE *tlp; @@ -315,9 +267,11 @@ OBJREC *m; } -intext(p, m) /* check to see if p is in text glyph */ -FVECT p; -OBJREC *m; +static int +intext( /* check to see if p is in text glyph */ + FVECT p, + OBJREC *m +) { register TEXT *tp; register TLINE *tlp; @@ -355,9 +309,12 @@ OBJREC *m; } -inglyph(x, y, gl) /* (x,y) within font glyph gl? */ -double x, y; /* real coordinates in range [0,255) */ -register GLYPH *gl; +static int +inglyph( /* (x,y) within font glyph gl? */ + double x, /* real coordinates in range [0,255) */ + double y, + register GLYPH *gl +) { int n, ncross; int xlb, ylb; @@ -380,7 +337,7 @@ register GLYPH *gl; /* positive x axis cross test */ while (n--) { if ((p0[1]<<1 > ylb) ^ (p1[1]<<1 > ylb)) { - tv = p0[0]<<1 > xlb | (p1[0]<<1 > xlb) << 1; + tv = (p0[0]<<1 > xlb) | ((p1[0]<<1 > xlb) << 1); if (tv == 03) ncross++; else if (tv)