455 Commits

Author SHA1 Message Date
d8e5476806 materials: implement Phong lighting. 2021-07-17 09:31:23 -07:00
385ed70d88 tuples: implement EPSILON aware PartialEq for Color.
Mark Color::new const so it can be used in const expressions (like
predefining colors).
2021-07-17 09:30:28 -07:00
1cbfbc8641 spheres: add material to Sphere. 2021-07-17 09:07:08 -07:00
81540cd484 rustfmt: add config to format code in doc comments. 2021-07-17 09:04:54 -07:00
b4428f924c lights & materials: implement the default light and material types. 2021-07-17 08:59:02 -07:00
bcf847660a tuples: implement reflect. 2021-07-17 08:50:26 -07:00
e529710d5d spheres: fix normal_at for transformed spheres. 2021-07-17 08:44:26 -07:00
ac4f5eb9a6 git-hooks: remove debug printing.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-17 08:14:51 -07:00
f846da18ad envmap: cargo fmt. 2021-07-17 08:14:35 -07:00
e59029a94a git-hooks: add pre-commit hook for fmt and testing checks. 2021-07-17 08:14:08 -07:00
339ce84903 tuples: whitespace cleanup for consistency. 2021-07-17 07:58:15 -07:00
6e7bd1c136 spheres: implement normal_at. 2021-07-17 07:57:59 -07:00
e430e3769e canvas: add parameter to constructor to set background color.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-16 22:33:22 -07:00
7609201c16 canvas: use ugly pink for default color to ease in debugging. 2021-07-16 22:28:05 -07:00
4bb6a72e4b eoc5: implement suggestiong at end of chapter 5.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-16 22:25:48 -07:00
cb1b3ec801 sphere: use Intersections as the return type from intersect. 2021-07-16 22:25:26 -07:00
ad7b10322f spheres: enable intersect w/ transformed spheres. 2021-07-16 22:06:37 -07:00
6e73bab37f s/translate/translation/g to match book. 2021-07-16 21:49:49 -07:00
87bf924094 spheres: add transform member to Sphere 2021-07-16 21:48:12 -07:00
9f22d820e7 rays: implement Ray::transform 2021-07-16 21:38:04 -07:00
324a26212a intersections: implement Intersections::hit 2021-07-16 21:28:28 -07:00
c9b42d94b3 intersections: now store object in Intersection. 2021-07-16 21:14:23 -07:00
0ce1e8f7af intersections: create inters module and initial functionality. 2021-07-16 21:06:57 -07:00
8b451a2395 rays: lint cleanup 2021-07-16 21:06:23 -07:00
da98744288 spheres: implement basic unit sphere and intersect. 2021-07-16 20:42:46 -07:00
f44d671573 rays: basic ray with construction and position methods 2021-07-16 20:13:20 -07:00
191760fa13 eoc4: lint cleanup. 2021-07-16 20:12:51 -07:00
12c2382327 eoc4: use Matrix4x4 to perform world to canvas scaling.
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-16 19:59:42 -07:00
5df2917668 eoc4: implement suggestion at the end of chapter 4 2021-07-16 17:12:48 -07:00
af5e61136c matrices: doctest for matrix multiplication ordering. 2021-07-16 16:51:55 -07:00
4b0d882b84 lib & tuples: use crate specific EPSILON definition. 2021-07-16 16:49:55 -07:00
83799a02a9 matrices: implement Matrix4x4::shearing 2021-07-16 16:38:40 -07:00
b8df830460 tuples & matrices: remove float-cmp use.
All checks were successful
continuous-integration/drone/push Build is passing
Implement PartialEq on `Tuple` and `Matrix4x4` using a local `EPSILON`
large enough for our unit tests to pass.
2021-07-06 08:44:21 -07:00
245b02b443 matrices: implement Matrix4x4:rotation_[xyz] 2021-07-05 18:36:43 -07:00
f792d1a626 matrices: implement Matrix4x4::scaling 2021-07-05 17:51:17 -07:00
117d7185e4 matrices: implement Matrix4x4::translate 2021-07-05 17:42:19 -07:00
462c90e8c8 matrices: benchmark Matrix::inverse & inverse_old
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-05 16:44:06 -07:00
ac3a18a864 matrices: implement Matrix4x4::inverse. 2021-07-05 16:26:27 -07:00
656f1c3a94 Small whitespace change. 2021-07-05 16:26:21 -07:00
762cd45f63 implement determinant on 3x3 and 4x4 matrices 2021-07-05 15:27:32 -07:00
d6ad12e344 implement cofactor of 3x3 matrix 2021-07-05 15:07:18 -07:00
f5d79908f6 implement minor for matrix3x3 2021-07-01 21:29:58 -07:00
a69e404817 implement submatrix for matrix4x4 2021-07-01 21:20:40 -07:00
43d95041af implement submatrix for matrix3x3 2021-07-01 21:12:43 -07:00
c97bc25323 Implement 2x2 determinant 2021-07-01 20:54:00 -07:00
dda29eb836 test identity transpose 2021-07-01 20:47:29 -07:00
fa5971faa4 Test identity multiplication 2021-07-01 20:46:05 -07:00
4d649c735b Implement 4x4 * 4x1 2021-06-30 21:02:42 -07:00
3d2d763a3b test 4x4 multiplication 2021-06-29 20:56:08 -07:00
ea6114b9ae test 4x4 equality and inequality 2021-06-29 20:51:38 -07:00