UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

56 lines 5.78 kB
import { TgdColor } from "./../color/index.js"; import { TgdVec2, TgdVec3, TgdVec4 } from "./../math/index.js"; export function ensureArray(items) { if (items === undefined) return []; return Array.isArray(items) ? items : [items]; } export function ensureTgdVec3(vec, defaultValue) { if (typeof vec === "number") return new TgdVec3(vec, vec, vec); if (!vec) return defaultValue ?? new TgdVec3(0, 0, 0); if (vec instanceof TgdColor) return new TgdVec3(vec.R, vec.G, vec.B); if (vec instanceof TgdVec2) return new TgdVec3(vec.x, vec.y, 0); if (vec instanceof TgdVec3) return vec; if (vec instanceof TgdVec4) return new TgdVec3(vec.x, vec.y, vec.z); const [x, y, z] = vec; return new TgdVec3(x ?? 0, y ?? 0, z ?? 0); } export function ensureTgdVec4(vec, defaultValue) { if (typeof vec === "number") return new TgdVec4(vec, vec, vec, vec); if (!vec) return defaultValue ?? new TgdVec4(); if (vec instanceof TgdColor) return new TgdVec4(vec.R, vec.G, vec.B, vec.A); if (vec instanceof TgdVec2) return new TgdVec4(vec.x, vec.y, 0, 1); if (vec instanceof TgdVec3) return new TgdVec4(vec.x, vec.y, vec.z, 1); if (vec instanceof TgdVec4) return vec; const [x, y, z, w] = vec; return new TgdVec4(x ?? 0, y ?? 0, z ?? 0, w ?? 1); } export function ensureArrayNumber4(vec, defaultValue) { if (typeof vec === "number") return [vec, vec, vec, vec]; if (!vec) return defaultValue ?? [0, 0, 0, 1]; if (vec instanceof TgdColor) return [vec.R, vec.G, vec.B, vec.A]; if (vec instanceof TgdVec2) return [vec.x, vec.y, 0, 1]; if (vec instanceof TgdVec3) return [vec.x, vec.y, vec.z, 1]; if (vec instanceof TgdVec4) return [vec.x, vec.y, vec.z, vec.w]; const [x, y, z, w] = vec; return [x, y, z, w]; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Vuc3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUdyRCxNQUFNLFVBQVUsV0FBVyxDQUFJLEtBQTBCO0lBQ3JELElBQUksS0FBSyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUNsQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDekIsR0FBdUUsRUFDdkUsWUFBc0I7SUFFdEIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzlELElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxZQUFZLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxJQUFJLEdBQUcsWUFBWSxRQUFRO1FBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BFLElBQUksR0FBRyxZQUFZLE9BQU87UUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMvRCxJQUFJLEdBQUcsWUFBWSxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUE7SUFDdEMsSUFB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