@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
94 lines (93 loc) • 2.04 kB
JavaScript
;
import { Vector3 } from "three";
import { _matchArrayLength } from "./_ArrayUtils";
import { NamedFunction2 } from "./_Base";
export function _sizzleVec2(src, target) {
target.x = src.y;
target.y = src.x;
return target;
}
export function _sizzleVec3XY(src, target) {
target.x = src.x;
target.y = src.y;
return target;
}
export class sizzleVec3XY extends NamedFunction2 {
constructor() {
super(...arguments);
this.func = _sizzleVec3XY;
}
static type() {
return "sizzleVec3XY";
}
}
export function _sizzleVec3XZ(src, target) {
target.x = src.x;
target.y = src.z;
return target;
}
export class sizzleVec3XZ extends NamedFunction2 {
constructor() {
super(...arguments);
this.func = _sizzleVec3XZ;
}
static type() {
return "sizzleVec3XZ";
}
}
export function _sizzleVec3YZ(src, target) {
target.x = src.y;
target.y = src.z;
return target;
}
export class sizzleVec3YZ extends NamedFunction2 {
constructor() {
super(...arguments);
this.func = _sizzleVec3YZ;
}
static type() {
return "sizzleVec3YZ";
}
}
export class sizzleVec4XYZ extends NamedFunction2 {
static type() {
return "sizzleVec4XYZ";
}
func(src, target) {
target.x = src.x;
target.y = src.y;
target.z = src.z;
return target;
}
}
export class sizzleVec4XYZArray extends NamedFunction2 {
static type() {
return "sizzleVec4XYZArray";
}
func(src, target) {
_matchArrayLength(src, target, () => new Vector3());
let i = 0;
for (let srcElement of src) {
const targetElement = target[i];
targetElement.x = srcElement.x;
targetElement.y = srcElement.y;
targetElement.z = srcElement.z;
i++;
}
return target;
}
}
export class sizzleVec4WArray extends NamedFunction2 {
static type() {
return "sizzleVec4WArray";
}
func(src, target) {
_matchArrayLength(src, target, () => 0);
let i = 0;
for (let srcElement of src) {
target[i] = srcElement.w;
i++;
}
return target;
}
}