ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/text.c
(Generate patch)

Comparing ray/src/rt/text.c (file contents):
Revision 2.15 by greg, Tue Dec 5 20:21:39 1995 UTC vs.
Revision 2.20 by greg, Sat Feb 22 02:07:29 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1995 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   *  text.c - functions for text patterns and mixtures.
6   */
7  
8 + /* ====================================================================
9 + * The Radiance Software License, Version 1.0
10 + *
11 + * Copyright (c) 1990 - 2002 The Regents of the University of California,
12 + * through Lawrence Berkeley National Laboratory.   All rights reserved.
13 + *
14 + * Redistribution and use in source and binary forms, with or without
15 + * modification, are permitted provided that the following conditions
16 + * are met:
17 + *
18 + * 1. Redistributions of source code must retain the above copyright
19 + *         notice, this list of conditions and the following disclaimer.
20 + *
21 + * 2. Redistributions in binary form must reproduce the above copyright
22 + *       notice, this list of conditions and the following disclaimer in
23 + *       the documentation and/or other materials provided with the
24 + *       distribution.
25 + *
26 + * 3. The end-user documentation included with the redistribution,
27 + *           if any, must include the following acknowledgment:
28 + *             "This product includes Radiance software
29 + *                 (http://radsite.lbl.gov/)
30 + *                 developed by the Lawrence Berkeley National Laboratory
31 + *               (http://www.lbl.gov/)."
32 + *       Alternately, this acknowledgment may appear in the software itself,
33 + *       if and wherever such third-party acknowledgments normally appear.
34 + *
35 + * 4. The names "Radiance," "Lawrence Berkeley National Laboratory"
36 + *       and "The Regents of the University of California" must
37 + *       not be used to endorse or promote products derived from this
38 + *       software without prior written permission. For written
39 + *       permission, please contact [email protected].
40 + *
41 + * 5. Products derived from this software may not be called "Radiance",
42 + *       nor may "Radiance" appear in their name, without prior written
43 + *       permission of Lawrence Berkeley National Laboratory.
44 + *
45 + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
46 + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
47 + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
48 + * DISCLAIMED.   IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR
49 + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
50 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
51 + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
52 + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
53 + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
54 + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
55 + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
56 + * SUCH DAMAGE.
57 + * ====================================================================
58 + *
59 + * This software consists of voluntary contributions made by many
60 + * individuals on behalf of Lawrence Berkeley National Laboratory.   For more
61 + * information on Lawrence Berkeley National Laboratory, please see
62 + * <http://www.lbl.gov/>.
63 + */
64 +
65   #include  "ray.h"
66  
67   #include  "otypes.h"
# Line 77 | Line 131 | typedef struct {
131          TLINE  tl;                      /* line list */
132   }  TEXT;
133  
80 extern char  *getlibpath();
81
82 extern char  *fgetword();
83
134   TEXT  *gettext();
135  
136   TLINE  *tlalloc();
137  
138  
139 < text(m, r)
139 > do_text(m, r)
140   register OBJREC  *m;
141   RAY  *r;
142   {
# Line 105 | Line 155 | RAY  *r;
155                  char  *modname = m->oargs.sarg[foreground ? 0 : 1];
156                  if (!strcmp(modname, VOIDID))
157                          omod = OVOID;
158 <                else if ((omod = modifier(modname)) == OVOID) {
158 >                else if ((omod = lastmod(objndx(m), modname)) == OVOID) {
159                          sprintf(errmsg, "undefined modifier \"%s\"", modname);
160                          objerror(m, USER, errmsg);
161                  }
# Line 139 | Line 189 | TLINE *
189   tlalloc(s)                      /* allocate and assign text line */
190   char  *s;
191   {
142        extern char  *strcpy();
192          register int  siz;
193          register TLINE  *tl;
194  
# Line 159 | Line 208 | register OBJREC  *tm;
208   {
209   #define  R      (tm->oargs.farg+3)
210   #define  D      (tm->oargs.farg+6)
162        extern char  *strcpy();
211          FVECT  DxR;
212          double  d;
213          FILE  *fp;
# Line 179 | Line 227 | register OBJREC  *tm;
227                                                  /* compute vectors */
228          fcross(DxR, D, R);
229          fcross(t->right, DxR, D);
230 <        d = DOT(D,D)/DOT(t->right,t->right);
230 >        d = DOT(t->right,t->right);
231 >        if (d <= FTINY*FTINY*FTINY*FTINY)
232 >                objerror(tm, USER, "illegal motion vector");
233 >        d = DOT(D,D)/d;
234          for (i = 0; i < 3; i++)
235                  t->right[i] *= d;
236          fcross(t->down, R, DxR);
# Line 255 | Line 306 | OBJREC  *m;
306                  return;
307          while ((tlp = tp->tl.next) != NULL) {
308                  tp->tl.next = tlp->next;
309 <                free((char *)tlp->spc);
310 <                free((char *)tlp);
309 >                free((void *)tlp->spc);
310 >                free((void *)tlp);
311          }
312 <        free((char *)tp);
312 >        freefont(tp->f);        /* release font reference */
313 >        free((void *)tp);
314          m->os = NULL;
315   }
316  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines