sphereとshape_opを追加した。
shpereは色を持つ。ついでにColorにnewメンバ関数を追加ておく。
光が当たったところを記録する。hit関数によって返される。当たった点pと法線ベクトルnと光源からの距離t。
後々のためにHIT Traitを定義。「HIT Traitを実装しているものを引数にとる。」のようにできる。
hitはhitヒットしていないかもしれないので、Option型で返す。
rustbyexample.com
ダメそうだったらNoneを返す。
HIT Traitの実装。球と直線が交わるか計算。
使わない引数・変数は _hoge
とするか、そのものを_
にするかしないと、コンパイラから警告がでる。
matchを使うことで、Optionで帰ってくるものを綺麗に書ける。いちいちboolを返してtrueなら~という二度手間感がない。
球を追加する。
実行結果。
よさそう。
Ray Tracing in One Weekend (Ray Tracing Minibooks Book 1) (English Edition)
- 作者: Peter Shirley
- 発売日: 2016/01/26
- メディア: Kindle版
- この商品を含むブログを見る
Programming Rust: Fast, Safe Systems Development
- 作者: Jim Blandy,Jason Orendorff
- 出版社/メーカー: O'Reilly Media
- 発売日: 2017/11/21
- メディア: Kindle版
- この商品を含むブログを見る