|
193 | 193 | : center0(cen0), center1(cen1), time0(t0), time1(t1), radius(r), mat_ptr(m) |
194 | 194 | {}; |
195 | 195 |
|
196 | | - virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const; |
| 196 | + virtual bool hit( |
| 197 | + const ray& r, double tmin, double tmax, hit_record& rec) const override; |
197 | 198 |
|
198 | 199 | point3 center(double time) const; |
199 | 200 |
|
|
204 | 205 | shared_ptr<material> mat_ptr; |
205 | 206 | }; |
206 | 207 |
|
207 | | - point3 moving_sphere::center(double time) const{ |
| 208 | + point3 moving_sphere::center(double time) const { |
208 | 209 | return center0 + ((time - time0) / (time1 - time0))*(center1 - center0); |
209 | 210 | } |
210 | 211 |
|
|
279 | 280 |
|
280 | 281 | virtual bool scatter( |
281 | 282 | const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered |
282 | | - ) const { |
| 283 | + ) const override { |
283 | 284 | vec3 scatter_direction = rec.normal + random_unit_vector(); |
284 | 285 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
285 | 286 | scattered = ray(rec.p, scatter_direction, r_in.time()); |
|
716 | 717 | class sphere : public hittable { |
717 | 718 | public: |
718 | 719 | ... |
719 | | - virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const; |
| 720 | + virtual bool hit( |
| 721 | + const ray& r, double tmin, double tmax, hit_record& rec) const override; |
| 722 | + |
| 723 | + |
720 | 724 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
721 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const; |
| 725 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override; |
722 | 726 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
723 | 727 | ... |
724 | 728 | }; |
|
749 | 753 | class moving_sphere : public hittable { |
750 | 754 | public: |
751 | 755 | ... |
752 | | - virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const; |
| 756 | + virtual bool hit( |
| 757 | + const ray& r, double tmin, double tmax, hit_record& rec) const override; |
| 758 | + |
| 759 | + |
753 | 760 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
754 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const; |
| 761 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override; |
755 | 762 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
756 | 763 | ... |
757 | 764 | }; |
|
790 | 797 | class hittable_list : public hittable { |
791 | 798 | public: |
792 | 799 | ... |
793 | | - virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const; |
| 800 | + virtual bool hit( |
| 801 | + const ray& r, double tmin, double tmax, hit_record& rec) const override; |
| 802 | + |
| 803 | + |
794 | 804 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
795 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const; |
| 805 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override; |
796 | 806 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
797 | 807 | ... |
798 | 808 | }; |
|
868 | 878 | std::vector<shared_ptr<hittable>>& objects, |
869 | 879 | size_t start, size_t end, double time0, double time1); |
870 | 880 |
|
871 | | - virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const; |
872 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const; |
| 881 | + virtual bool hit( |
| 882 | + const ray& r, double tmin, double tmax, hit_record& rec) const override; |
| 883 | + |
| 884 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override; |
873 | 885 |
|
874 | 886 | public: |
875 | 887 | shared_ptr<hittable> left; |
|
1063 | 1075 | solid_color(double red, double green, double blue) |
1064 | 1076 | : solid_color(color(red,green,blue)) {} |
1065 | 1077 |
|
1066 | | - virtual color value(double u, double v, const vec3& p) const { |
| 1078 | + virtual color value(double u, double v, const vec3& p) const override { |
1067 | 1079 | return color_value; |
1068 | 1080 | } |
1069 | 1081 |
|
|
1208 | 1220 |
|
1209 | 1221 | virtual bool scatter( |
1210 | 1222 | const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered |
1211 | | - ) const { |
| 1223 | + ) const override { |
1212 | 1224 | vec3 scatter_direction = rec.normal + random_unit_vector(); |
1213 | 1225 | scattered = ray(rec.p, scatter_direction, r_in.time()); |
1214 | 1226 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
|
1245 | 1257 | checker_texture(color c1, color c2) |
1246 | 1258 | : even(make_shared<solid_color>(c1)) , odd(make_shared<solid_color>(c2)) {} |
1247 | 1259 |
|
1248 | | - virtual color value(double u, double v, const point3& p) const { |
| 1260 | + virtual color value(double u, double v, const point3& p) const override { |
1249 | 1261 | auto sines = sin(10*p.x())*sin(10*p.y())*sin(10*p.z()); |
1250 | 1262 | if (sines < 0) |
1251 | 1263 | return odd->value(u, v, p); |
|
1486 | 1498 | public: |
1487 | 1499 | noise_texture() {} |
1488 | 1500 |
|
1489 | | - virtual color value(double u, double v, const point3& p) const { |
| 1501 | + virtual color value(double u, double v, const point3& p) const override { |
1490 | 1502 | return color(1,1,1) * noise.noise(p); |
1491 | 1503 | } |
1492 | 1504 |
|
|
1666 | 1678 | noise_texture(double sc) : scale(sc) {} |
1667 | 1679 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
1668 | 1680 |
|
1669 | | - virtual color value(double u, double v, const point3& p) const { |
| 1681 | + virtual color value(double u, double v, const point3& p) const override { |
1670 | 1682 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
1671 | 1683 | return color(1,1,1) * noise.noise(scale * p); |
1672 | 1684 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
|
1843 | 1855 | noise_texture() {} |
1844 | 1856 | noise_texture(double sc) : scale(sc) {} |
1845 | 1857 |
|
1846 | | - virtual color value(double u, double v, const point3& p) const { |
| 1858 | + virtual color value(double u, double v, const point3& p) const override { |
1847 | 1859 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
1848 | 1860 | return color(1,1,1) * 0.5 * (1.0 + noise.noise(scale * p)); |
1849 | 1861 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
|
1904 | 1916 | noise_texture() {} |
1905 | 1917 | noise_texture(double sc) : scale(sc) {} |
1906 | 1918 |
|
1907 | | - virtual color value(double u, double v, const point3& p) const { |
| 1919 | + virtual color value(double u, double v, const point3& p) const override { |
1908 | 1920 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
1909 | 1921 | return color(1,1,1) * noise.turb(scale * p); |
1910 | 1922 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
|
1941 | 1953 | noise_texture() {} |
1942 | 1954 | noise_texture(double sc) : scale(sc) {} |
1943 | 1955 |
|
1944 | | - virtual color value(double u, double v, const point3& p) const { |
| 1956 | + virtual color value(double u, double v, const point3& p) const override { |
1945 | 1957 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight |
1946 | 1958 | return color(1,1,1) * 0.5 * (1 + sin(scale*p.z() + 10*noise.turb(p))); |
1947 | 1959 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ |
|
2025 | 2037 | delete data; |
2026 | 2038 | } |
2027 | 2039 |
|
2028 | | - virtual color value(double u, double v, const vec3& p) const { |
| 2040 | + virtual color value(double u, double v, const vec3& p) const override { |
2029 | 2041 | // If we have no texture data, then return solid cyan as a debugging aid. |
2030 | 2042 | if (data == nullptr) |
2031 | 2043 | return color(0,1,1); |
|
2177 | 2189 |
|
2178 | 2190 | virtual bool scatter( |
2179 | 2191 | const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered |
2180 | | - ) const { |
| 2192 | + ) const override { |
2181 | 2193 | return false; |
2182 | 2194 | } |
2183 | 2195 |
|
2184 | | - virtual color emitted(double u, double v, const point3& p) const { |
| 2196 | + virtual color emitted(double u, double v, const point3& p) const override { |
2185 | 2197 | return emit->value(u, v, p); |
2186 | 2198 | } |
2187 | 2199 |
|
|
2384 | 2396 | shared_ptr<material> mat) |
2385 | 2397 | : x0(_x0), x1(_x1), y0(_y0), y1(_y1), k(_k), mp(mat) {}; |
2386 | 2398 |
|
2387 | | - virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const; |
| 2399 | + virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override; |
2388 | 2400 |
|
2389 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const { |
| 2401 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override { |
2390 | 2402 | // The bounding box must have non-zero width in each dimension, so pad the Z |
2391 | 2403 | // dimension a small amount. |
2392 | 2404 | output_box = aabb(point3(x0,y0, k-0.0001), point3(x1, y1, k+0.0001)); |
|
2526 | 2538 | shared_ptr<material> mat) |
2527 | 2539 | : x0(_x0), x1(_x1), z0(_z0), z1(_z1), k(_k), mp(mat) {}; |
2528 | 2540 |
|
2529 | | - virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const; |
| 2541 | + virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override; |
2530 | 2542 |
|
2531 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const { |
| 2543 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override { |
2532 | 2544 | // The bounding box must have non-zero width in each dimension, so pad the Y |
2533 | 2545 | // dimension a small amount. |
2534 | 2546 | output_box = aabb(point3(x0,k-0.0001,z0), point3(x1, k+0.0001, z1)); |
|
2548 | 2560 | shared_ptr<material> mat) |
2549 | 2561 | : y0(_y0), y1(_y1), z0(_z0), z1(_z1), k(_k), mp(mat) {}; |
2550 | 2562 |
|
2551 | | - virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const; |
| 2563 | + virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override; |
2552 | 2564 |
|
2553 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const { |
| 2565 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override { |
2554 | 2566 | // The bounding box must have non-zero width in each dimension, so pad the X |
2555 | 2567 | // dimension a small amount. |
2556 | 2568 | output_box = aabb(point3(k-0.0001, y0, z0), point3(k+0.0001, y1, z1)); |
|
2705 | 2717 | box() {} |
2706 | 2718 | box(const point3& p0, const point3& p1, shared_ptr<material> ptr); |
2707 | 2719 |
|
2708 | | - virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const; |
| 2720 | + virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override; |
2709 | 2721 |
|
2710 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const { |
| 2722 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override { |
2711 | 2723 | output_box = aabb(box_min, box_max); |
2712 | 2724 | return true; |
2713 | 2725 | } |
|
2786 | 2798 | translate(shared_ptr<hittable> p, const vec3& displacement) |
2787 | 2799 | : ptr(p), offset(displacement) {} |
2788 | 2800 |
|
2789 | | - virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const; |
2790 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const; |
| 2801 | + virtual bool hit( |
| 2802 | + const ray& r, double t_min, double t_max, hit_record& rec) const override; |
| 2803 | + |
| 2804 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override; |
2791 | 2805 |
|
2792 | 2806 | public: |
2793 | 2807 | shared_ptr<hittable> ptr; |
|
2871 | 2885 | public: |
2872 | 2886 | rotate_y(shared_ptr<hittable> p, double angle); |
2873 | 2887 |
|
2874 | | - virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const; |
2875 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const { |
| 2888 | + virtual bool hit( |
| 2889 | + const ray& r, double t_min, double t_max, hit_record& rec) const override; |
| 2890 | + |
| 2891 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override { |
2876 | 2892 | output_box = bbox; |
2877 | 2893 | return hasbox; |
2878 | 2894 | } |
|
3048 | 3064 | phase_function(make_shared<isotropic>(c)) |
3049 | 3065 | {} |
3050 | 3066 |
|
3051 | | - virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const; |
| 3067 | + virtual bool hit( |
| 3068 | + const ray& r, double t_min, double t_max, hit_record& rec) const override; |
3052 | 3069 |
|
3053 | | - virtual bool bounding_box(double t0, double t1, aabb& output_box) const { |
| 3070 | + virtual bool bounding_box(double t0, double t1, aabb& output_box) const override { |
3054 | 3071 | return boundary->bounding_box(t0, t1, output_box); |
3055 | 3072 | } |
3056 | 3073 |
|
|
3076 | 3093 |
|
3077 | 3094 | virtual bool scatter( |
3078 | 3095 | const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered |
3079 | | - ) const { |
| 3096 | + ) const override { |
3080 | 3097 | scattered = ray(rec.p, random_in_unit_sphere(), r_in.time()); |
3081 | 3098 | attenuation = albedo->value(rec.u, rec.v, rec.p); |
3082 | 3099 | return true; |
|
0 commit comments