patterns: add ability to nest patterns

This commit is contained in:
2021-08-01 19:08:36 -07:00
parent 9befbd9ad2
commit 926fffa29f
4 changed files with 151 additions and 65 deletions

View File

@@ -6,7 +6,10 @@ use structopt::StructOpt;
use rtchallenge::prelude::*;
use rtchallenge::{
camera::RenderStrategy, float::consts::PI, patterns::test_pattern, BLACK, WHITE,
camera::RenderStrategy,
float::consts::PI,
patterns::{test_pattern, BLACK_PAT, WHITE_PAT},
WHITE,
};
/// End of chapter 10 challenge.
@@ -61,7 +64,7 @@ fn main() -> Result<()> {
.material(
MaterialBuilder::default()
.color(
checkers_pattern(WHITE, BLACK)
checkers_pattern(WHITE_PAT, BLACK_PAT)
.transform(translation(1., 0., 0.) * scaling(2., 2., 2.))
.build()?,
)
@@ -90,7 +93,7 @@ fn main() -> Result<()> {
.transform(translation(2., 1., 0.) * sphere_size)
.material(
MaterialBuilder::default()
.color(stripe_pattern(WHITE, BLACK).build()?)
.color(stripe_pattern(WHITE_PAT, BLACK_PAT).build()?)
.diffuse(0.7)
.specular(0.3)
.build()?,
@@ -102,7 +105,7 @@ fn main() -> Result<()> {
.material(
MaterialBuilder::default()
.color(
stripe_pattern(WHITE, BLACK)
stripe_pattern(WHITE_PAT, BLACK_PAT)
.transform(scaling(0.2, 1., 1.))
.build()?,
)
@@ -128,7 +131,7 @@ fn main() -> Result<()> {
.material(
MaterialBuilder::default()
.color(
ring_pattern(WHITE, BLACK)
ring_pattern(WHITE_PAT, BLACK_PAT)
.transform(scaling(0.2, 0.2, 0.2))
.build()?,
)
@@ -143,7 +146,7 @@ fn main() -> Result<()> {
.material(
MaterialBuilder::default()
.color(
checkers_pattern(WHITE, BLACK)
checkers_pattern(WHITE_PAT, BLACK_PAT)
.transform(scaling(0.5, 0.5, 0.5))
.build()?,
)