Skip to content

Commit e85a5f3

Browse files
committed
Use delegating ctors + other ctor cleanup
Found two places where delegating constructors helped: ray and checker_texture. In addition, this includes some minor constructor cleanup. Resolves #1489
1 parent 79e044e commit e85a5f3

File tree

7 files changed

+14
-36
lines changed

7 files changed

+14
-36
lines changed

books/RayTracingTheNextWeek.html

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@
7575

7676

7777
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight
78-
ray(const point3& origin, const vec3& direction)
79-
: orig(origin), dir(direction), tm(0) {}
80-
8178
ray(const point3& origin, const vec3& direction, double time)
8279
: orig(origin), dir(direction), tm(time) {}
80+
81+
ray(const point3& origin, const vec3& direction)
82+
: ray(origin, direction, 0) {}
8383
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
8484

8585
const point3& origin() const { return orig; }
@@ -1323,10 +1323,7 @@
13231323
: inv_scale(1.0 / scale), even(even), odd(odd) {}
13241324

13251325
checker_texture(double scale, const color& c1, const color& c2)
1326-
: inv_scale(1.0 / scale),
1327-
even(make_shared<solid_color>(c1)),
1328-
odd(make_shared<solid_color>(c2))
1329-
{}
1326+
: checker_texture(scale, make_shared<solid_color>(c1), make_shared<solid_color>(c2)) {}
13301327

13311328
color value(double u, double v, const point3& p) const override {
13321329
auto xInteger = int(std::floor(inv_scale * p.x()));
@@ -2252,9 +2249,6 @@
22522249
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
22532250
class noise_texture : public texture {
22542251
public:
2255-
noise_texture() {}
2256-
2257-
22582252
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight
22592253
noise_texture(double scale) : scale(scale) {}
22602254
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
@@ -2449,8 +2443,6 @@
24492443
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
24502444
class noise_texture : public texture {
24512445
public:
2452-
noise_texture() {}
2453-
24542446
noise_texture(double scale) : scale(scale) {}
24552447

24562448
color value(double u, double v, const point3& p) const override {
@@ -2515,8 +2507,6 @@
25152507
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
25162508
class noise_texture : public texture {
25172509
public:
2518-
noise_texture() {}
2519-
25202510
noise_texture(double scale) : scale(scale) {}
25212511

25222512
color value(double u, double v, const point3& p) const override {
@@ -2552,8 +2542,6 @@
25522542
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
25532543
class noise_texture : public texture {
25542544
public:
2555-
noise_texture() {}
2556-
25572545
noise_texture(double scale) : scale(scale) {}
25582546

25592547
color value(double u, double v, const point3& p) const override {

books/RayTracingTheRestOfYourLife.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2710,7 +2710,7 @@
27102710
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
27112711
class sphere_pdf : public pdf {
27122712
public:
2713-
sphere_pdf() { }
2713+
sphere_pdf() {}
27142714

27152715
double value(const vec3& direction) const override {
27162716
return 1/ (4 * pi);

src/TheNextWeek/ray.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ class ray {
1818
public:
1919
ray() {}
2020

21-
ray(const point3& origin, const vec3& direction)
22-
: orig(origin), dir(direction), tm(0) {}
23-
2421
ray(const point3& origin, const vec3& direction, double time)
2522
: orig(origin), dir(direction), tm(time) {}
2623

24+
ray(const point3& origin, const vec3& direction)
25+
: ray(origin, direction, 0) {}
26+
2727
const point3& origin() const { return orig; }
2828
const vec3& direction() const { return dir; }
2929

src/TheNextWeek/texture.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ class checker_texture : public texture {
4646
: inv_scale(1.0 / scale), even(even), odd(odd) {}
4747

4848
checker_texture(double scale, const color& c1, const color& c2)
49-
: inv_scale(1.0 / scale),
50-
even(make_shared<solid_color>(c1)),
51-
odd(make_shared<solid_color>(c2))
52-
{}
49+
: checker_texture(scale, make_shared<solid_color>(c1), make_shared<solid_color>(c2)) {}
5350

5451
color value(double u, double v, const point3& p) const override {
5552
auto xInteger = int(std::floor(inv_scale * p.x()));
@@ -95,8 +92,6 @@ class image_texture : public texture {
9592

9693
class noise_texture : public texture {
9794
public:
98-
noise_texture() {}
99-
10095
noise_texture(double scale) : scale(scale) {}
10196

10297
color value(double u, double v, const point3& p) const override {

src/TheRestOfYourLife/pdf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class cosine_pdf : public pdf {
4646

4747
class sphere_pdf : public pdf {
4848
public:
49-
sphere_pdf() { }
49+
sphere_pdf() {}
5050

5151
double value(const vec3& direction) const override {
5252
return 1/ (4 * pi);

src/TheRestOfYourLife/ray.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ class ray {
1818
public:
1919
ray() {}
2020

21-
ray(const point3& origin, const vec3& direction)
22-
: orig(origin), dir(direction), tm(0) {}
23-
2421
ray(const point3& origin, const vec3& direction, double time)
2522
: orig(origin), dir(direction), tm(time) {}
2623

24+
ray(const point3& origin, const vec3& direction)
25+
: ray(origin, direction, 0) {}
26+
2727
const point3& origin() const { return orig; }
2828
const vec3& direction() const { return dir; }
2929

src/TheRestOfYourLife/texture.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ class checker_texture : public texture {
4646
: inv_scale(1.0 / scale), even(even), odd(odd) {}
4747

4848
checker_texture(double scale, const color& c1, const color& c2)
49-
: inv_scale(1.0 / scale),
50-
even(make_shared<solid_color>(c1)),
51-
odd(make_shared<solid_color>(c2))
52-
{}
49+
: checker_texture(scale, make_shared<solid_color>(c1), make_shared<solid_color>(c2)) {}
5350

5451
color value(double u, double v, const point3& p) const override {
5552
auto xInteger = int(std::floor(inv_scale * p.x()));
@@ -95,8 +92,6 @@ class image_texture : public texture {
9592

9693
class noise_texture : public texture {
9794
public:
98-
noise_texture() {}
99-
10095
noise_texture(double scale) : scale(scale) {}
10196

10297
color value(double u, double v, const point3& p) const override {

0 commit comments

Comments
 (0)