@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
90 lines (89 loc) • 2.73 kB
JavaScript
;
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];
}
}