struct vec3 { double x, y, z; }; typedef struct vec3 vec3; struct triangle { vec3 a, b, c; vec3 normal; }; typedef struct triangle triangle; struct ray { vec3 origin; vec3 direction; }; typedef struct ray ray; struct sphere { vec3 origin; int radius; }; typedef struct sphere sphere; struct camera { vec3 origin; vec3 direction; double height; double width; double resolutionX; double resolutionY; }; typedef struct camera camera;