UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

90 lines (89 loc) 2.73 kB
"use strict"; import { NamedFunction3 } from "./_Base"; const arrayByLengthByNodePath = /* @__PURE__ */ new Map(); function _getArray(nodePath, arrayLength, createElement) { let mapForNodePath = arrayByLengthByNodePath.get(nodePath); if (!mapForNodePath) { mapForNodePath = /* @__PURE__ */ new Map(); arrayByLengthByNodePath.set(nodePath, mapForNodePath); } let array = mapForNodePath.get(arrayLength); if (!array) { array = new Array(arrayLength); for (let i = 0; i < arrayLength; i++) { array[i] = createElement(); } mapForNodePath.set(arrayLength, array); } return array; } export class previousValuePrimitive extends NamedFunction3 { static type() { return "previousValuePrimitive"; } func(nodePath, offset, newValue) { const arrayLength = offset + 1; const array = _getArray(nodePath, arrayLength, () => newValue); for (let i = 0; i < arrayLength - 1; i++) { array[i] = array[i + 1]; } array[arrayLength - 1] = newValue; return array[0]; } } export class previousValueColor extends NamedFunction3 { static type() { return "previousValueColor"; } func(nodePath, offset, newValue) { const arrayLength = offset + 1; const array = _getArray(nodePath, arrayLength, () => newValue.clone()); for (let i = 0; i < arrayLength - 1; i++) { array[i].copy(array[i + 1]); } array[arrayLength - 1].copy(newValue); return array[0]; } } export class previousValueVector2 extends NamedFunction3 { static type() { return "previousValueVector2"; } func(nodePath, offset, newValue) { const arrayLength = offset + 1; const array = _getArray(nodePath, arrayLength, () => newValue.clone()); for (let i = 0; i < arrayLength - 1; i++) { array[i].copy(array[i + 1]); } array[arrayLength - 1].copy(newValue); return array[0]; } } export class previousValueVector3 extends NamedFunction3 { static type() { return "previousValueVector3"; } func(nodePath, offset, newValue) { const arrayLength = offset + 1; const array = _getArray(nodePath, arrayLength, () => newValue.clone()); for (let i = 0; i < arrayLength - 1; i++) { array[i].copy(array[i + 1]); } array[arrayLength - 1].copy(newValue); return array[0]; } } export class previousValueVector4 extends NamedFunction3 { static type() { return "previousValueVector4"; } func(nodePath, offset, newValue) { const arrayLength = offset + 1; const array = _getArray(nodePath, arrayLength, () => newValue.clone()); for (let i = 0; i < arrayLength - 1; i++) { array[i].copy(array[i + 1]); } array[arrayLength - 1].copy(newValue); return array[0]; } }