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

Comparing ray/src/rt/o_cone.c (file contents):
Revision 2.12 by greg, Thu Mar 16 00:25:24 2023 UTC vs.
Revision 2.13 by greg, Tue Nov 5 00:20:02 2024 UTC

# Line 56 | Line 56 | o_cone(                        /* intersect ray with cone */
56          multv3(rdx, r->rdir, co->tm);
57                                          /* compute intersection */
58  
59 <        if (o->otype == OBJ_CONE || o->otype == OBJ_CUP) {
59 >        if ((o->otype == OBJ_CONE) | (o->otype == OBJ_CUP)) {
60  
61                  a = rdx[0]*rdx[0] + rdx[1]*rdx[1] - rdx[2]*rdx[2];
62                  b = 2.0*(rdx[0]*rox[0] + rdx[1]*rox[1] - rdx[2]*rox[2]);
63                  c = rox[0]*rox[0] + rox[1]*rox[1] - rox[2]*rox[2];
64  
65 <        } else if (o->otype == OBJ_CYLINDER || o->otype == OBJ_TUBE) {
65 >        } else if ((o->otype == OBJ_CYLINDER) | (o->otype == OBJ_TUBE)) {
66  
67                  a = rdx[0]*rdx[0] + rdx[1]*rdx[1];
68                  b = 2.0*(rdx[0]*rox[0] + rdx[1]*rox[1]);
# Line 78 | Line 78 | o_cone(                        /* intersect ray with cone */
78                  b = root[0]*rdx[0] + rox[0];
79                  c = root[0]*rdx[1] + rox[1];
80                  a = b*b + c*c;
81 <                if (a < CO_R0(co)*CO_R0(co) || a > CO_R1(co)*CO_R1(co))
81 >                if (a > CO_R1(co)*CO_R1(co) || a < CO_R0(co)*CO_R0(co))
82                          return(0);                      /* outside radii */
83                  r->ro = o;
84                  r->rot = root[0];
# Line 126 | Line 126 | o_cone(                        /* intersect ray with cone */
126                  }
127                  for (i = 0; i < 3; i++)
128                          r->ron[i] = (rdx[i] - b*co->ad[i])/a;
129 <                if (o->otype == OBJ_CONE || o->otype == OBJ_CUP)
129 >                if ((o->otype == OBJ_CONE) | (o->otype == OBJ_CUP))
130                          for (i = 0; i < 3; i++)
131                                  r->ron[i] = (co->al*r->ron[i] - c*co->ad[i])
132                                                  / co->sl;
133                  a = DOT(r->ron, r->ron);
134 <                if (a > 1.+FTINY || a < 1.-FTINY) {
134 >                if ((a > 1.+FTINY) | (a < 1.-FTINY)) {
135                          c = 1./(.5 + .5*a);     /* avoid numerical error */
136                          r->ron[0] *= c; r->ron[1] *= c; r->ron[2] *= c;
137                  }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines