aboutsummaryrefslogtreecommitdiff
path: root/src/Geometry.ts
diff options
context:
space:
mode:
authorJames Barnett <noreply@jamesbarnett.xyz>2025-07-26 11:17:10 +0100
committerJames Barnett <noreply@jamesbarnett.xyz>2025-07-26 11:17:10 +0100
commit10bfc58085c6ab7e62077a1a9b6a6d922fffb025 (patch)
tree3e1d3ff39891c2c2408235c209566f4c51915859 /src/Geometry.ts
parentebc500c522e7233fbc6037bce0569edf3a0b5136 (diff)
downloadjs-raytracer-10bfc58085c6ab7e62077a1a9b6a6d922fffb025.tar.xz
js-raytracer-10bfc58085c6ab7e62077a1a9b6a6d922fffb025.zip
Rework multithreaded rendering
Render worker tasks are now split into chunks rather than row blocks for better thread utilisation
Diffstat (limited to 'src/Geometry.ts')
-rw-r--r--src/Geometry.ts49
1 files changed, 0 insertions, 49 deletions
diff --git a/src/Geometry.ts b/src/Geometry.ts
deleted file mode 100644
index 556c7ea..0000000
--- a/src/Geometry.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import {Type} from 'class-transformer';
-import {Colour} from './Colour';
-import {Albedo, Material} from './Material';
-import {Vector} from './Vector';
-
-export class Sphere {
- @Type(() => Vector)
- readonly centerPoint: Vector;
- @Type(() => Material)
- readonly material: Material;
- constructor(
- readonly radius: number,
- centerPoint: Vector,
- material: Material
- ) {
- this.centerPoint = centerPoint;
- this.material = material;
- }
-}
-
-export class Plane {
- @Type(() => Colour)
- readonly checkerboardColour1: Colour;
- @Type(() => Colour)
- readonly checkerboardColour2: Colour;
- 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,
- checkerboardColour1: Colour,
- checkerboardColour2: Colour
- ) {
- this.checkerboardColour1 = checkerboardColour1;
- this.checkerboardColour2 = checkerboardColour2;
- }
-
- getMaterialAtPoint(x: number, z: number): Material {
- let colour: Colour;
- // prettier-ignore
- if ((Math.round(this.checkerboardScale * x) + Math.round(this.checkerboardScale * z)) & 1) {
- colour = this.checkerboardColour1;
- } else {
- colour = this.checkerboardColour2;
- }
- return new Material(colour, new Albedo(1, 0, 0, 0), 0, 1);
- }
-}