Move code to packages.
This commit is contained in:
parent
687cb784fe
commit
130c8a5bd1
16 changed files with 81 additions and 7 deletions
28
src/main/kotlin/things/Scene.kt
Normal file
28
src/main/kotlin/things/Scene.kt
Normal file
|
@ -0,0 +1,28 @@
|
|||
package things
|
||||
|
||||
import Hit
|
||||
import materials.MaterialColor
|
||||
import lights.PointLight
|
||||
import math.Ray
|
||||
|
||||
data class Scene(val things: List<Thing>, val light: PointLight): Thing {
|
||||
override fun intersects(ray: Ray): Hit? {
|
||||
var closest: Hit? = null
|
||||
for (thing in things) {
|
||||
val hit = thing.intersects(ray)
|
||||
if (hit != null && (closest == null || hit.distance < closest.distance)) {
|
||||
closest = hit
|
||||
}
|
||||
}
|
||||
|
||||
return closest
|
||||
}
|
||||
|
||||
fun colorForRay(ray: Ray): MaterialColor? {
|
||||
val hit = intersects(ray)
|
||||
if (hit != null) {
|
||||
return hit.material.shade(ray, hit, this)
|
||||
}
|
||||
return null
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue