diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2025-07-26 11:17:10 +0100 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2025-07-26 11:17:10 +0100 |
| commit | 10bfc58085c6ab7e62077a1a9b6a6d922fffb025 (patch) | |
| tree | 3e1d3ff39891c2c2408235c209566f4c51915859 /src/Geometry.ts | |
| parent | ebc500c522e7233fbc6037bce0569edf3a0b5136 (diff) | |
| download | js-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.ts | 49 |
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); - } -} |