diff options
Diffstat (limited to 'src/Geometry.ts')
| -rw-r--r-- | src/Geometry.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Geometry.ts b/src/Geometry.ts new file mode 100644 index 0000000..4fcc11b --- /dev/null +++ b/src/Geometry.ts @@ -0,0 +1,31 @@ +import {Colour} from './Colour'; +import {Material} from './Material'; +import {Vector} from './Vector'; + +export class Sphere { + constructor( + readonly centerPoint: Vector, + readonly radius: number, + readonly material: Material + ) {} +} + +export class Plane { + constructor( + readonly yPos: number, + readonly width: number, // How far the plane extends into x/-x from 0 + readonly zStartPos: number, + readonly zEndPos: number, + readonly checkerboardScale: number + ) {} + + getMaterialAtPoint(x: number, z: number): Material { + let colour: Colour; + if ((Math.round(this.checkerboardScale * x) + Math.round(this.checkerboardScale * z)) & 1) { + colour = new Colour(15, 15, 15); + } else { + colour = new Colour(200, 200, 200); + } + return new Material(colour, 1, 0, 0, 0); + } +} |