Skip to content

Commit f86517b

Browse files
authored
Merge pull request #647 from RayTracing/isotropic-color-ctor
Add isotropic constructor taking color argument
2 parents 7688378 + de252c7 commit f86517b

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

books/RayTracingTheNextWeek.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3045,7 +3045,7 @@
30453045
constant_medium(shared_ptr<hittable> b, double d, color c)
30463046
: boundary(b),
30473047
neg_inv_density(-1/d),
3048-
phase_function(make_shared<isotropic>(make_shared<solid_color>(c)))
3048+
phase_function(make_shared<isotropic>(c))
30493049
{}
30503050

30513051
virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const;
@@ -3071,6 +3071,7 @@
30713071
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++
30723072
class isotropic : public material {
30733073
public:
3074+
isotropic(color c) : albedo(make_shared<solid_color>(c)) {}
30743075
isotropic(shared_ptr<texture> a) : albedo(a) {}
30753076

30763077
virtual bool scatter(

src/TheNextWeek/constant_medium.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class constant_medium : public hittable {
2929
constant_medium(shared_ptr<hittable> b, double d, color c)
3030
: boundary(b),
3131
neg_inv_density(-1/d),
32-
phase_function(make_shared<isotropic>(make_shared<solid_color>(c)))
32+
phase_function(make_shared<isotropic>(c))
3333
{}
3434

3535
virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const;

src/TheNextWeek/material.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ double schlick(double cosine, double ref_idx) {
2424
}
2525

2626

27-
class material {
27+
class material {
2828
public:
2929
virtual color emitted(double u, double v, const point3& p) const {
3030
return color(0,0,0);
@@ -128,11 +128,12 @@ class diffuse_light : public material {
128128

129129
class isotropic : public material {
130130
public:
131+
isotropic(color c) : albedo(make_shared<solid_color>(c)) {}
131132
isotropic(shared_ptr<texture> a) : albedo(a) {}
132133

133134
virtual bool scatter(
134135
const ray& r_in, const hit_record& rec, color& attenuation, ray& scattered
135-
) const {
136+
) const {
136137
scattered = ray(rec.p, random_in_unit_sphere(), r_in.time());
137138
attenuation = albedo->value(rec.u, rec.v, rec.p);
138139
return true;

src/TheRestOfYourLife/material.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ class diffuse_light : public material {
156156

157157
class isotropic : public material {
158158
public:
159+
isotropic(color c) : albedo(make_shared<solid_color>(c)) {}
159160
isotropic(shared_ptr<texture> a) : albedo(a) {}
160161

161162
virtual bool scatter(

0 commit comments

Comments
 (0)