@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
44 lines (42 loc) • 1.3 kB
text/typescript
import {createVariable} from '../nodes/js/code/assemblers/_BaseJsPersistedConfigUtils';
import {JsConnectionPointType} from '../nodes/utils/io/connections/Js';
export function _matchArrayLength<T1, T2>(src: T1[], target: T2[], _createElement: () => T2): void {
_setArrayLength(target, src.length, _createElement);
// if (target.length == src.length) {
// return;
// }
// if (target.length > src.length) {
// target.length = src.length;
// } else {
// const srcLength = src.length;
// for (let i = target.length; i < srcLength; i++) {
// target[i] = _createElement();
// }
// }
}
export function _setArrayLength<T>(target: T[], length: number, _createElement: () => T): void {
if (target.length == length) {
return;
}
if (target.length > length) {
target.length = length;
} else {
const srcLength = length;
for (let i = target.length; i < srcLength; i++) {
target[i] = _createElement();
}
}
}
export function _matchArrayLengthWithType<T1, T2>(src: T1[], target: T2[], type: JsConnectionPointType): void {
if (target.length == src.length) {
return;
}
if (target.length > src.length) {
target.length = src.length;
} else {
const srcLength = src.length;
for (let i = target.length; i < srcLength; i++) {
target[i] = createVariable(type) as T2;
}
}
}