Skip to content

Commit 3ae50d1

Browse files
xiaodoliuhollasch
authored andcommitted
Simplify box() face construction
Resolves #1733
1 parent 58d99ee commit 3ae50d1

5 files changed

Lines changed: 21 additions & 18 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ Change Log / Ray Tracing in One Weekend
1010

1111
### The Next Week
1212
- Fix -- Remove premature source line for call to `get_sphere_uv` (#1701)
13+
- Change -- Simplify `box()` face construction to use `min` and `max` points directly
14+
without recombining coordinates (#1733)
1315

1416
### The Rest of Your Life
1517

books/RayTracingTheNextWeek.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3520,12 +3520,12 @@
35203520
auto dy = vec3(0, max.y() - min.y(), 0);
35213521
auto dz = vec3(0, 0, max.z() - min.z());
35223522

3523-
sides->add(make_shared<quad>(point3(min.x(), min.y(), max.z()), dx, dy, mat)); // front
3524-
sides->add(make_shared<quad>(point3(max.x(), min.y(), max.z()), -dz, dy, mat)); // right
3525-
sides->add(make_shared<quad>(point3(max.x(), min.y(), min.z()), -dx, dy, mat)); // back
3526-
sides->add(make_shared<quad>(point3(min.x(), min.y(), min.z()), dz, dy, mat)); // left
3527-
sides->add(make_shared<quad>(point3(min.x(), max.y(), max.z()), dx, -dz, mat)); // top
3528-
sides->add(make_shared<quad>(point3(min.x(), min.y(), min.z()), dx, dz, mat)); // bottom
3523+
sides->add(make_shared<quad>(min, dy, dx, mat)); // back
3524+
sides->add(make_shared<quad>(min, dx, dz, mat)); // bottom
3525+
sides->add(make_shared<quad>(min, dz, dy, mat)); // left
3526+
sides->add(make_shared<quad>(max, -dx, -dy, mat)); // front
3527+
sides->add(make_shared<quad>(max, -dz, -dx, mat)); // top
3528+
sides->add(make_shared<quad>(max, -dy, -dz, mat)); // right
35293529

35303530
return sides;
35313531
}

books/acknowledgments.md.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
- [Thien Tran](https://github.com/gau-nernst)
7373
- Vahan Sosoyan
7474
- [WANG Lei](https://github.com/wlbksy)
75+
- [Xiaodong Liu](https://github.com/xiaodoliu)
7576
- [Yann Herklotz](https://github.com/ymherklotz)
7677
- [ZeHao Chen](https://github.com/oxine)
7778
</div>

src/TheNextWeek/quad.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ inline shared_ptr<hittable_list> box(const point3& a, const point3& b, shared_pt
103103
auto dy = vec3(0, max.y() - min.y(), 0);
104104
auto dz = vec3(0, 0, max.z() - min.z());
105105

106-
sides->add(make_shared<quad>(point3(min.x(), min.y(), max.z()), dx, dy, mat)); // front
107-
sides->add(make_shared<quad>(point3(max.x(), min.y(), max.z()), -dz, dy, mat)); // right
108-
sides->add(make_shared<quad>(point3(max.x(), min.y(), min.z()), -dx, dy, mat)); // back
109-
sides->add(make_shared<quad>(point3(min.x(), min.y(), min.z()), dz, dy, mat)); // left
110-
sides->add(make_shared<quad>(point3(min.x(), max.y(), max.z()), dx, -dz, mat)); // top
111-
sides->add(make_shared<quad>(point3(min.x(), min.y(), min.z()), dx, dz, mat)); // bottom
106+
sides->add(make_shared<quad>(min, dy, dx, mat)); // back
107+
sides->add(make_shared<quad>(min, dx, dz, mat)); // bottom
108+
sides->add(make_shared<quad>(min, dz, dy, mat)); // left
109+
sides->add(make_shared<quad>(max, -dx, -dy, mat)); // front
110+
sides->add(make_shared<quad>(max, -dz, -dx, mat)); // top
111+
sides->add(make_shared<quad>(max, -dy, -dz, mat)); // right
112112

113113
return sides;
114114
}

src/TheRestOfYourLife/quad.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,12 @@ inline shared_ptr<hittable_list> box(const point3& a, const point3& b, shared_pt
122122
auto dy = vec3(0, max.y() - min.y(), 0);
123123
auto dz = vec3(0, 0, max.z() - min.z());
124124

125-
sides->add(make_shared<quad>(point3(min.x(), min.y(), max.z()), dx, dy, mat)); // front
126-
sides->add(make_shared<quad>(point3(max.x(), min.y(), max.z()), -dz, dy, mat)); // right
127-
sides->add(make_shared<quad>(point3(max.x(), min.y(), min.z()), -dx, dy, mat)); // back
128-
sides->add(make_shared<quad>(point3(min.x(), min.y(), min.z()), dz, dy, mat)); // left
129-
sides->add(make_shared<quad>(point3(min.x(), max.y(), max.z()), dx, -dz, mat)); // top
130-
sides->add(make_shared<quad>(point3(min.x(), min.y(), min.z()), dx, dz, mat)); // bottom
125+
sides->add(make_shared<quad>(min, dy, dx, mat)); // back
126+
sides->add(make_shared<quad>(min, dx, dz, mat)); // bottom
127+
sides->add(make_shared<quad>(min, dz, dy, mat)); // left
128+
sides->add(make_shared<quad>(max, -dx, -dy, mat)); // front
129+
sides->add(make_shared<quad>(max, -dz, -dx, mat)); // top
130+
sides->add(make_shared<quad>(max, -dy, -dz, mat)); // right
131131

132132
return sides;
133133
}

0 commit comments

Comments
 (0)