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

Comparing ray/src/rt/sphere.c (file contents):
Revision 2.5 by greg, Wed Mar 12 04:59:05 2003 UTC vs.
Revision 2.9 by greg, Sun Jan 31 18:08:04 2021 UTC

# Line 8 | Line 8 | static const char RCSid[] = "$Id$";
8   #include "copyright.h"
9  
10   #include  "ray.h"
11
11   #include  "otypes.h"
12 + #include  "rtotypes.h"
13  
14  
15 < o_sphere(so, r)                 /* compute intersection with sphere */
16 < OBJREC  *so;
17 < register RAY  *r;
15 > int
16 > o_sphere(                       /* compute intersection with sphere */
17 >        OBJREC  *so,
18 >        RAY  *r
19 > )
20   {
21          double  a, b, c;        /* coefficients for quadratic equation */
22          double  root[2];        /* quadratic roots */
23          int  nroots;
24          double  t;
25 <        register FLOAT  *ap;
26 <        register int  i;
25 >        RREAL  *ap;
26 >        int  i;
27  
28          if (so->oargs.nfargs != 4)
29                  objerror(so, USER, "bad # arguments");
# Line 61 | Line 63 | register RAY  *r;
63                          break;
64          if (i >= nroots)
65                  return(0);                      /* no positive root */
66 <
67 <        if (t >= r->rot)
66 <                return(0);                      /* other is closer */
66 >        if (rayreject(so, r, t))
67 >                return(0);                      /* previous hit better */
68  
69          r->ro = so;
70          r->rot = t;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines