/* main.c */ /* Test driver for plane-hits function */ #include "ray.h" camera_t camera = { view_point: {4, 3, 5} }; vec_t direction; int main() { object_t *obj; camera_t *cam = &camera; vec_t dir; model_t *model; double dist; /* Read direction vectors from standard input and */ /* perform hit computations */ model = model_init(stdin); while (fscanf(stdin, "%lf %lf %lf", &dir[X], &dir[Y], &dir[Z]) == 3) { fprintf(stderr, "\n\n"); vec_print(stderr, "Ray direction:", dir); vec_unit(dir, dir); obj = find_closest_object(model->objs, cam->view_point, dir, NULL, &dist); if (dist > 0) { fprintf(stderr, "Hit: %-12s ", obj->obj_name); fprintf(stderr, "Dist = %8.3lf Loc = (%8.3lf %8.3lf %8.3lf)\n", dist, obj->last_hit[X], obj->last_hit[Y], obj->last_hit[Z]); } else fprintf(stderr, "Dist = %8.3lf \n", dist); fprintf(stderr, "\n\n"); obj = find_closest_object(model->objs, cam->view_point, dir, obj, &dist); if (dist > 0) { fprintf(stderr, "Hit: %-12s ", obj->obj_name); fprintf(stderr, "Dist = %8.3lf Loc = (%8.3lf %8.3lf %8.3lf)\n", dist, obj->last_hit[X], obj->last_hit[Y], obj->last_hit[Z]); } else fprintf(stderr, "Dist = %8.3lf \n", dist); } return(0); }