二次曲面来张合照:
hitable *list[9];
list[0] = new sphere(vec3(0.0,-100.5,-1), 100, new lambertian(vec3(0.8, 0.8, 0.0)));
list[1] = new quadratic_ellipsoid(vec3(-6.4, 1, 0), 0.7, 1.0, 1.5, new lambertian(vec3(0.0, 0.1, 0.5)));
list[2] = new quadratic(vec3(-4.5, 1.5, 0), 0.5, 0.7, 1, -1, 1, 1.5, new lambertian(vec3(0.1, 0.1, 0.5)));
list[3] = new quadratic(vec3(-2.6, 1.5, 0), 0.15, 0.2, 0.2, -1, -1, 1.5, new lambertian(vec3(0.2, 0.1, 0.5)));
list[4] = new quadratic(vec3(-1.0, 1.5, 0), 0.5, 0.7, 1, -1, 0, 1.5, new lambertian(vec3(0.3, 0.1, 0.5)));
list[5] = new quadratic(vec3(0.6, 1.5, 0), 0.5, 0.7, 1, 0, 1, 1.5, new lambertian(vec3(0.5, 0.1, 0.5)));
list[6] = new quadratic_paraboloid(vec3(2.5, 1.5, 0), 1, 2, 1.5, new lambertian(vec3(0.7, 0.4, 0.5)));
list[7] = new quadratic_hyperbolic_paraboloid(vec3(5.0, 1.5, 0), 0.25, 2, 1.5, 1, new lam