Пример #1
0
/* intersect: check if ray intersects with object, return hit_test */
hit_test intersect(ray r, object obj)
{
  switch (obj.tag) {
    case SPHERE :
      return intersect_sphere(r,obj);
    case POSTER :
      return intersect_poster(r,obj);
    default :
      fprintf(stderr,"error(intersect):rogue tag\n");
      exit(1);
  }
}
Пример #2
0
hit_test intersect (ray r, object o)
{
  switch (o.tag) {
  case SPHERE :
    return intersect_sphere(r, o.o.s);
  case POSTER :
    return intersect_poster(r, o.o.p);
  case CYLINDER :
    return intersect_cylinder(r, o.o.cyl);
  }
  fprintf(stderr, "invalid object tag\n");
  exit(1);
}