Skip to content

Commit 841563b

Browse files
committed
Add override specifier: hittable subclasses
1 parent 94accc0 commit 841563b

19 files changed

+130
-79
lines changed

books/RayTracingInOneWeekend.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -888,7 +888,8 @@
888888
sphere() {}
889889
sphere(point3 cen, double r) : center(cen), radius(r) {};
890890

891-
virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const;
891+
virtual bool hit(
892+
const ray& r, double tmin, double tmax, hit_record& rec) const override;
892893

893894
public:
894895
point3 center;
@@ -1086,7 +1087,8 @@
10861087
void clear() { objects.clear(); }
10871088
void add(shared_ptr<hittable> object) { objects.push_back(object); }
10881089

1089-
virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const;
1090+
virtual bool hit(
1091+
const ray& r, double tmin, double tmax, hit_record& rec) const override;
10901092

10911093
public:
10921094
std::vector<shared_ptr<hittable>> objects;
@@ -1996,7 +1998,8 @@
19961998
: center(cen), radius(r), mat_ptr(m) {};
19971999
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
19982000

1999-
virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const;
2001+
virtual bool hit(
2002+
const ray& r, double tmin, double tmax, hit_record& rec) const override;
20002003

20012004
public:
20022005
point3 center;

books/RayTracingTheNextWeek.html

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,8 @@
193193
: center0(cen0), center1(cen1), time0(t0), time1(t1), radius(r), mat_ptr(m)
194194
{};
195195

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;
197198

198199
point3 center(double time) const;
199200

@@ -204,7 +205,7 @@
204205
shared_ptr<material> mat_ptr;
205206
};
206207

207-
point3 moving_sphere::center(double time) const{
208+
point3 moving_sphere::center(double time) const {
208209
return center0 + ((time - time0) / (time1 - time0))*(center1 - center0);
209210
}
210211

@@ -716,9 +717,12 @@
716717
class sphere : public hittable {
717718
public:
718719
...
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+
720724
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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;
722726
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
723727
...
724728
};
@@ -749,9 +753,12 @@
749753
class moving_sphere : public hittable {
750754
public:
751755
...
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+
753760
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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;
755762
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
756763
...
757764
};
@@ -790,9 +797,12 @@
790797
class hittable_list : public hittable {
791798
public:
792799
...
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+
794804
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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;
796806
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
797807
...
798808
};
@@ -868,8 +878,10 @@
868878
std::vector<shared_ptr<hittable>>& objects,
869879
size_t start, size_t end, double time0, double time1);
870880

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;
873885

874886
public:
875887
shared_ptr<hittable> left;
@@ -2384,9 +2396,9 @@
23842396
shared_ptr<material> mat)
23852397
: x0(_x0), x1(_x1), y0(_y0), y1(_y1), k(_k), mp(mat) {};
23862398

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;
23882400

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 {
23902402
// The bounding box must have non-zero width in each dimension, so pad the Z
23912403
// dimension a small amount.
23922404
output_box = aabb(point3(x0,y0, k-0.0001), point3(x1, y1, k+0.0001));
@@ -2526,9 +2538,9 @@
25262538
shared_ptr<material> mat)
25272539
: x0(_x0), x1(_x1), z0(_z0), z1(_z1), k(_k), mp(mat) {};
25282540

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;
25302542

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 {
25322544
// The bounding box must have non-zero width in each dimension, so pad the Y
25332545
// dimension a small amount.
25342546
output_box = aabb(point3(x0,k-0.0001,z0), point3(x1, k+0.0001, z1));
@@ -2548,9 +2560,9 @@
25482560
shared_ptr<material> mat)
25492561
: y0(_y0), y1(_y1), z0(_z0), z1(_z1), k(_k), mp(mat) {};
25502562

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;
25522564

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 {
25542566
// The bounding box must have non-zero width in each dimension, so pad the X
25552567
// dimension a small amount.
25562568
output_box = aabb(point3(k-0.0001, y0, z0), point3(k+0.0001, y1, z1));
@@ -2705,9 +2717,9 @@
27052717
box() {}
27062718
box(const point3& p0, const point3& p1, shared_ptr<material> ptr);
27072719

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;
27092721

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 {
27112723
output_box = aabb(box_min, box_max);
27122724
return true;
27132725
}
@@ -2786,8 +2798,10 @@
27862798
translate(shared_ptr<hittable> p, const vec3& displacement)
27872799
: ptr(p), offset(displacement) {}
27882800

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;
27912805

27922806
public:
27932807
shared_ptr<hittable> ptr;
@@ -2871,8 +2885,10 @@
28712885
public:
28722886
rotate_y(shared_ptr<hittable> p, double angle);
28732887

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 {
28762892
output_box = bbox;
28772893
return hasbox;
28782894
}
@@ -3048,9 +3064,10 @@
30483064
phase_function(make_shared<isotropic>(c))
30493065
{}
30503066

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;
30523069

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 {
30543071
return boundary->bounding_box(t0, t1, output_box);
30553072
}
30563073

books/RayTracingTheRestOfYourLife.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,15 +1500,17 @@
15001500
public:
15011501
flip_face(shared_ptr<hittable> p) : ptr(p) {}
15021502

1503-
virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const {
1503+
virtual bool hit(
1504+
const ray& r, double t_min, double t_max, hit_record& rec) const override {
1505+
15041506
if (!ptr->hit(r, t_min, t_max, rec))
15051507
return false;
15061508

15071509
rec.front_face = !rec.front_face;
15081510
return true;
15091511
}
15101512

1511-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const {
1513+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override {
15121514
return ptr->bounding_box(t0, t1, output_box);
15131515
}
15141516

@@ -1764,7 +1766,7 @@
17641766
...
17651767

17661768
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight
1767-
virtual double pdf_value(const point3& origin, const vec3& v) const {
1769+
virtual double pdf_value(const point3& origin, const vec3& v) const override {
17681770
hit_record rec;
17691771
if (!this->hit(ray(origin, v), 0.001, infinity, rec))
17701772
return 0;
@@ -1776,7 +1778,7 @@
17761778
return distance_squared / (cosine * area);
17771779
}
17781780

1779-
virtual vec3 random(const point3& origin) const {
1781+
virtual vec3 random(const point3& origin) const override {
17801782
auto random_point = point3(random_double(x0,x1), k, random_double(z0,z1));
17811783
return random_point - origin;
17821784
}

src/InOneWeekend/hittable_list.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ class hittable_list : public hittable {
2727
void clear() { objects.clear(); }
2828
void add(shared_ptr<hittable> object) { objects.push_back(object); }
2929

30-
virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const;
30+
virtual bool hit(
31+
const ray& r, double tmin, double tmax, hit_record& rec) const override;
3132

3233
public:
3334
std::vector<shared_ptr<hittable>> objects;

src/InOneWeekend/sphere.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ class sphere : public hittable {
2323
sphere(point3 cen, double r, shared_ptr<material> m)
2424
: center(cen), radius(r), mat_ptr(m) {};
2525

26-
virtual bool hit(const ray& r, double tmin, double tmax, hit_record& rec) const;
26+
virtual bool hit(
27+
const ray& r, double tmin, double tmax, hit_record& rec) const override;
2728

2829
public:
2930
point3 center;

src/TheNextWeek/aarect.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ class xy_rect : public hittable {
2424
double _x0, double _x1, double _y0, double _y1, double _k, shared_ptr<material> mat
2525
) : x0(_x0), x1(_x1), y0(_y0), y1(_y1), k(_k), mp(mat) {};
2626

27-
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const;
27+
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override;
2828

29-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const {
29+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override {
3030
// The bounding box must have non-zero width in each dimension, so pad the Z
3131
// dimension a small amount.
3232
output_box = aabb(point3(x0,y0, k-0.0001), point3(x1, y1, k+0.0001));
@@ -46,9 +46,9 @@ class xz_rect : public hittable {
4646
double _x0, double _x1, double _z0, double _z1, double _k, shared_ptr<material> mat
4747
) : x0(_x0), x1(_x1), z0(_z0), z1(_z1), k(_k), mp(mat) {};
4848

49-
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const;
49+
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override;
5050

51-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const {
51+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override {
5252
// The bounding box must have non-zero width in each dimension, so pad the Y
5353
// dimension a small amount.
5454
output_box = aabb(point3(x0,k-0.0001,z0), point3(x1, k+0.0001, z1));
@@ -68,9 +68,9 @@ class yz_rect : public hittable {
6868
double _y0, double _y1, double _z0, double _z1, double _k, shared_ptr<material> mat
6969
) : y0(_y0), y1(_y1), z0(_z0), z1(_z1), k(_k), mp(mat) {};
7070

71-
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const;
71+
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override;
7272

73-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const {
73+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override {
7474
// The bounding box must have non-zero width in each dimension, so pad the X
7575
// dimension a small amount.
7676
output_box = aabb(point3(k-0.0001, y0, z0), point3(k+0.0001, y1, z1));

src/TheNextWeek/box.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ class box : public hittable {
2222
box() {}
2323
box(const point3& p0, const point3& p1, shared_ptr<material> ptr);
2424

25-
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const;
25+
virtual bool hit(const ray& r, double t0, double t1, hit_record& rec) const override;
2626

27-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const {
27+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override {
2828
output_box = aabb(box_min, box_max);
2929
return true;
3030
}

src/TheNextWeek/bvh.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ class bvh_node : public hittable {
3030
std::vector<shared_ptr<hittable>>& objects,
3131
size_t start, size_t end, double time0, double time1);
3232

33-
virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const;
34-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const;
33+
virtual bool hit(
34+
const ray& r, double t_min, double t_max, hit_record& rec) const override;
35+
36+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override;
3537

3638
public:
3739
shared_ptr<hittable> left;

src/TheNextWeek/constant_medium.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ class constant_medium : public hittable {
3232
phase_function(make_shared<isotropic>(c))
3333
{}
3434

35-
virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const;
35+
virtual bool hit(
36+
const ray& r, double t_min, double t_max, hit_record& rec) const override;
3637

37-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const {
38+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override {
3839
return boundary->bounding_box(t0, t1, output_box);
3940
}
4041

src/TheNextWeek/hittable.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ class translate : public hittable {
4545
translate(shared_ptr<hittable> p, const vec3& displacement)
4646
: ptr(p), offset(displacement) {}
4747

48-
virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const;
49-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const;
48+
virtual bool hit(
49+
const ray& r, double t_min, double t_max, hit_record& rec) const override;
50+
51+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override;
5052

5153
public:
5254
shared_ptr<hittable> ptr;
@@ -82,8 +84,10 @@ class rotate_y : public hittable {
8284
public:
8385
rotate_y(shared_ptr<hittable> p, double angle);
8486

85-
virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const;
86-
virtual bool bounding_box(double t0, double t1, aabb& output_box) const {
87+
virtual bool hit(
88+
const ray& r, double t_min, double t_max, hit_record& rec) const override;
89+
90+
virtual bool bounding_box(double t0, double t1, aabb& output_box) const override {
8791
output_box = bbox;
8892
return hasbox;
8993
}

0 commit comments

Comments
 (0)