From d99a194aaa3ba651fbe67a8583c41499aaaacc86 Mon Sep 17 00:00:00 2001 From: Szymon Nowakowski Date: Sun, 6 Aug 2023 21:47:05 +0200 Subject: [PATCH] Material getters and setters --- src/data/Material.ts | 74 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/src/data/Material.ts b/src/data/Material.ts index 234aed4..f012d2d 100644 --- a/src/data/Material.ts +++ b/src/data/Material.ts @@ -7,8 +7,6 @@ import { Color, ColorObject } from "."; import { Texture2D } from "../resources"; -export const UNIFORM_BUFFER_SIZE = 64; - export interface MaterialProps { name?: string; @@ -105,6 +103,78 @@ export class Material { this._transparent = transparent; this._doubleSided = doubleSided; } + + set name(value: string) { this._name = value; } + get name(): string { return this._name; } + + setBaseColor(value: ColorObject): Material { + this._baseColor.setObject(value); + return this; + } + getBaseColor(res: Color): Color { + return res.setObject(this._baseColor); + } + + set partialCoverage(value: number) { this._partialCoverage = value; } + get partialCoverage(): number { return this._partialCoverage; } + + set occlusionTextureStrength(value: number) { this._occlusionTextureStrength = value; } + get occlusionTextureStrength(): number { return this._occlusionTextureStrength; } + + set metallic(value: number) { this._metallic = value; } + get metallic(): number { return this._metallic; } + + set roughness(value: number) { this._roughness = value; } + get roughness(): number { return this._roughness; } + + set normalScale(value: number) { this._normalScale = value; } + get normalScale(): number { return this._normalScale; } + + setEmissive(value: ColorObject): Material { + this._emissive.setObject(value); + return this; + } + getEmissive(res: Color): Color { + return res.setObject(this._emissive); + } + + setTransmission(value: ColorObject): Material { + this._transmission.setObject(value); + return this; + } + getTransmission(res: Color): Color { + return res.setObject(this._transmission); + } + + set collimation(value: number) { this._collimation = value; } + get collimation(): number { return this._collimation; } + + set ior(value: number) { this._ior = value; } + get ior(): number { return this._ior; } + + set baseColorPartialCoverageTexture(value: Texture2D | null) { this._baseColorPartialCoverageTexture = value;} + get baseColorPartialCoverageTexture(): Texture2D | null { return this._baseColorPartialCoverageTexture; } + + set occlusionTexture(value: Texture2D | null) { this._occlusionTexture = value;} + get occlusionTexture(): Texture2D | null { return this._occlusionTexture; } + + set roughnessMetallicTexture(value: Texture2D | null) { this._roughnessMetallicTexture = value;} + get roughnessMetallicTexture(): Texture2D | null { return this._roughnessMetallicTexture; } + + set normalTexture(value: Texture2D | null) { this._normalTexture = value;} + get normalTexture(): Texture2D | null { return this._normalTexture; } + + set emissiveTexture(value: Texture2D | null) { this._emissiveTexture = value;} + get emissiveTexture(): Texture2D | null { return this._emissiveTexture; } + + set transmissionCollimationTexture(value: Texture2D | null) { this._transmissionCollimationTexture = value;} + get transmissionCollimationTexture(): Texture2D | null { return this._transmissionCollimationTexture; } + + set transparent(value: boolean) { this._transparent = value; } + get transparent(): boolean { return this._transparent; } + + set doubleSided(value: boolean) { this._doubleSided = value; } + get doubleSided(): boolean { return this._doubleSided; } } Object.defineProperty(Material.prototype, "type", { value: "Material" });