import{create,mat3vec2mul,mat4vec3mul,vec2add,vec2dot,vec2lerp,vec2mul,vec2norm,vec2scale,vec2sub,vec3add,vec3cross,vec3dot,vec3lerp,vec3mul,vec3norm,vec3scale,vec3sub,vec4add,vec4dot,vec4lerp,vec4mul,vec4norm,vec4scale,vec4sub}from"../../wasm/index.js";import{ManagedFloat64Array}from"./memory.js";export class Vec2 extends ManagedFloat64Array{constructor(x=0,y=0){super(create(2));this.set([x,y])}get length(){return 2}add(rhs){vec2add(this.byteOffset,this.byteOffset,rhs.byteOffset);return this}sub(rhs){vec2sub(this.byteOffset,this.byteOffset,rhs.byteOffset);return this}mul(m){vec2mul(this.byteOffset,m.byteOffset,this.byteOffset);return this}mulMat3(m){mat3vec2mul(this.byteOffset,m.byteOffset,this.byteOffset);return this}dot(rhs){return vec2dot(this.byteOffset,rhs.byteOffset)}lerp(rhs,t){vec2lerp(this.byteOffset,this.byteOffset,rhs.byteOffset,t);return this}scale(factor){vec2scale(this.byteOffset,this.byteOffset,factor);return this}normalize(){return!!vec2norm(this.byteOffset,this.byteOffset)}}export class Vec3 extends ManagedFloat64Array{constructor(x=0,y=0,z=0){super(create(3));this.set([x,y,z])}get length(){return 3}add(rhs){vec3add(this.byteOffset,this.byteOffset,rhs.byteOffset);return this}sub(rhs){vec3sub(this.byteOffset,this.byteOffset,rhs.byteOffset);return this}mul(m){vec3mul(this.byteOffset,m.byteOffset,this.byteOffset);return this}mulMat4(m){mat4vec3mul(this.byteOffset,m.byteOffset,this.byteOffset);return this}cross(rhs){vec3cross(this.byteOffset,this.byteOffset,rhs.byteOffset);return this}dot(rhs){return vec3dot(this.byteOffset,rhs.byteOffset)}lerp(rhs,t){vec3lerp(this.byteOffset,this.byteOffset,rhs.byteOffset,t);return this}scale(factor){vec3scale(this.byteOffset,this.byteOffset,factor);return this}normalize(){return!!vec3norm(this.byteOffset,this.byteOffset)}}export class Vec4 extends ManagedFloat64Array{constructor(x=0,y=0,z=0,w=0){super(create(4));this.set([x,y,z,w])}get length(){return 4}add(rhs){vec4add(this.byteOffset,this.byteOffset,rhs.byteOffset);return this}sub(rhs){vec4sub(this.byteOffset,this.byteOffset,rhs.byteOffset);return this}mul(m){vec4mul(this.byteOffset,m.byteOffset,this.byteOffset);return this}dot(rhs){return vec4dot(this.byteOffset,rhs.byteOffset)}lerp(rhs,t){vec4lerp(this.byteOffset,this.byteOffset,rhs.byteOffset,t);return this}scale(factor){vec4scale(this.byteOffset,this.byteOffset,factor);return this}normalize(){return!!vec4norm(this.byteOffset,this.byteOffset)}} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJtYXQzdmVjMm11bCIsIm1hdDR2ZWMzbXVsIiwidmVjMmFkZCIsInZlYzJkb3QiLCJ2ZWMybGVycCIsInZlYzJtdWwiLCJ2ZWMybm9ybSIsInZlYzJzY2FsZSIsInZlYzJzdWIiLCJ2ZWMzYWRkIiwidmVjM2Nyb3NzIiwidmVjM2RvdCIsInZlYzNsZXJwIiwidmVjM211bCIsInZlYzNub3JtIiwidmVjM3NjYWxlIiwidmVjM3N1YiIsInZlYzRhZGQiLCJ2ZWM0ZG90IiwidmVjNGxlcnAiLCJ2ZWM0bXVsIiwidmVjNG5vcm0iLCJ2ZWM0c2NhbGUiLCJ2ZWM0c3ViIiwiTWFuYWdlZEZsb2F0NjRBcnJheSIsIlZlYzIiLCJjb25zdHJ1Y3RvciIsIngiLCJ5Iiwic2V0IiwibGVuZ3RoIiwiYWRkIiwicmhzIiwiYnl0ZU9mZnNldCIsInN1YiIsIm11bCIsIm0iLCJtdWxNYXQzIiwiZG90IiwibGVycCIsInQiLCJzY2FsZSIsImZhY3RvciIsIm5vcm1hbGl6ZSIsIlZlYzMiLCJ6IiwibXVsTWF0NCIsImNyb3NzIiwiVmVjNCIsInciXSwic291cmNlcyI6WyIuLi8uLi9qcy93YXNtL3ZlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGUsIG1hdDN2ZWMybXVsLCBtYXQ0dmVjM211bCxcbiAgdmVjMmFkZCwgdmVjMmRvdCwgdmVjMmxlcnAsIHZlYzJtdWwsIHZlYzJub3JtLCB2ZWMyc2NhbGUsIHZlYzJzdWIsXG4gIHZlYzNhZGQsIHZlYzNjcm9zcywgdmVjM2RvdCwgdmVjM2xlcnAsIHZlYzNtdWwsIHZlYzNub3JtLCB2ZWMzc2NhbGUsIHZlYzNzdWIsXG4gIHZlYzRhZGQsIHZlYzRkb3QsIHZlYzRsZXJwLCB2ZWM0bXVsLCB2ZWM0bm9ybSwgdmVjNHNjYWxlLCB2ZWM0c3ViLFxufSBmcm9tICcuLi8uLi93YXNtL2luZGV4LmpzJztcbmltcG9ydCB7IFZlYyB9IGZyb20gJy4uL3R5cGVzLnRzJztcbmltcG9ydCB7IE1hdDIsIE1hdDMsIE1hdDQgfSBmcm9tICcuL21hdC50cyc7XG5pbXBvcnQgeyBNYW5hZ2VkRmxvYXQ2NEFycmF5IH0gZnJvbSAnLi9tZW1vcnkudHMnO1xuXG4vKiogQSAyRCB2ZWN0b3IuICovXG5leHBvcnQgY2xhc3MgVmVjMiBleHRlbmRzIE1hbmFnZWRGbG9hdDY0QXJyYXk8Mj4gaW1wbGVtZW50cyBWZWM8Mj4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IoeCA9IDAsIHkgPSAwKSB7XG4gICAgc3VwZXIoY3JlYXRlKDIpKTtcbiAgICB0aGlzLnNldChbeCwgeV0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBsZW5ndGgoKTogMiB7XG4gICAgcmV0dXJuIDI7XG4gIH1cblxuICBwdWJsaWMgYWRkKHJoczogVmVjMik6IHRoaXMge1xuICAgIHZlYzJhZGQodGhpcy5ieXRlT2Zmc2V0LCB0aGlzLmJ5dGVPZmZzZXQsIHJocy5ieXRlT2Zmc2V0KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzdWIocmhzOiBWZWMyKTogdGhpcyB7XG4gICAgdmVjMnN1Yih0aGlzLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCwgcmhzLmJ5dGVPZmZzZXQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG11bChtOiBNYXQyKTogdGhpcyB7XG4gICAgdmVjMm11bCh0aGlzLmJ5dGVPZmZzZXQsIG0uYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBQcmVtdWx0aXBsaWVzIDN4MyBtYXRyaXggdG8gdGhpcy4gKi9cbiAgcHVibGljIG11bE1hdDMobTogTWF0Myk6IHRoaXMge1xuICAgIG1hdDN2ZWMybXVsKHRoaXMuYnl0ZU9mZnNldCwgbS5ieXRlT2Zmc2V0LCB0aGlzLmJ5dGVPZmZzZXQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGRvdChyaHM6IFZlYzIpOiBudW1iZXIge1xuICAgIHJldHVybiB2ZWMyZG90KHRoaXMuYnl0ZU9mZnNldCwgcmhzLmJ5dGVPZmZzZXQpO1xuICB9XG5cbiAgcHVibGljIGxlcnAocmhzOiBWZWMyLCB0OiBudW1iZXIpOiB0aGlzIHtcbiAgICB2ZWMybGVycCh0aGlzLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCwgcmhzLmJ5dGVPZmZzZXQsIHQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNjYWxlKGZhY3RvcjogbnVtYmVyKTogdGhpcyB7XG4gICAgdmVjMnNjYWxlKHRoaXMuYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0LCBmYWN0b3IpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5vcm1hbGl6ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF2ZWMybm9ybSh0aGlzLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCk7XG4gIH1cbn1cblxuLyoqIEEgM0QgdmVjdG9yLiAqL1xuZXhwb3J0IGNsYXNzIFZlYzMgZXh0ZW5kcyBNYW5hZ2VkRmxvYXQ2NEFycmF5PDM+IGltcGxlbWVudHMgVmVjPDM+IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHggPSAwLCB5ID0gMCwgeiA9IDApIHtcbiAgICBzdXBlcihjcmVhdGUoMykpO1xuICAgIHRoaXMuc2V0KFt4LCB5LCB6XSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGxlbmd0aCgpOiAzIHtcbiAgICByZXR1cm4gMztcbiAgfVxuXG4gIHB1YmxpYyBhZGQocmhzOiBWZWMzKTogdGhpcyB7XG4gICAgdmVjM2FkZCh0aGlzLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCwgcmhzLmJ5dGVPZmZzZXQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHN1YihyaHM6IFZlYzMpOiB0aGlzIHtcbiAgICB2ZWMzc3ViKHRoaXMuYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0LCByaHMuYnl0ZU9mZnNldCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbXVsKG06IE1hdDMpOiB0aGlzIHtcbiAgICB2ZWMzbXVsKHRoaXMuYnl0ZU9mZnNldCwgbS5ieXRlT2Zmc2V0LCB0aGlzLmJ5dGVPZmZzZXQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIFByZW11bHRpcGxpZXMgNHg0IG1hdHJpeCB0byB0aGlzLiAqL1xuICBwdWJsaWMgbXVsTWF0NChtOiBNYXQ0KTogdGhpcyB7XG4gICAgbWF0NHZlYzNtdWwodGhpcy5ieXRlT2Zmc2V0LCBtLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQXNzaWduIGNyb3NzIHByb2R1Y3Qgb2YgdGhpcyB3aXRoIFJIUyB0byB0aGlzLiAqL1xuICBwdWJsaWMgY3Jvc3MocmhzOiBWZWMzKTogdGhpcyB7XG4gICAgdmVjM2Nyb3NzKHRoaXMuYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0LCByaHMuYnl0ZU9mZnNldCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZG90KHJoczogVmVjMyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHZlYzNkb3QodGhpcy5ieXRlT2Zmc2V0LCByaHMuYnl0ZU9mZnNldCk7XG4gIH1cblxuICBwdWJsaWMgbGVycChyaHM6IFZlYzMsIHQ6IG51bWJlcik6IHRoaXMge1xuICAgIHZlYzNsZXJwKHRoaXMuYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0LCByaHMuYnl0ZU9mZnNldCwgdCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc2NhbGUoZmFjdG9yOiBudW1iZXIpOiB0aGlzIHtcbiAgICB2ZWMzc2NhbGUodGhpcy5ieXRlT2Zmc2V0LCB0aGlzLmJ5dGVPZmZzZXQsIGZhY3Rvcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbm9ybWFsaXplKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXZlYzNub3JtKHRoaXMuYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0KTtcbiAgfVxufVxuXG4vKiogQSA0RCB2ZWN0b3IuICovXG5leHBvcnQgY2xhc3MgVmVjNCBleHRlbmRzIE1hbmFnZWRGbG9hdDY0QXJyYXk8ND4gaW1wbGVtZW50cyBWZWM8ND4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IoeCA9IDAsIHkgPSAwLCB6ID0gMCwgdyA9IDApIHtcbiAgICBzdXBlcihjcmVhdGUoNCkpO1xuICAgIHRoaXMuc2V0KFt4LCB5LCB6LCB3XSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGxlbmd0aCgpOiA0IHtcbiAgICByZXR1cm4gNDtcbiAgfVxuXG4gIHB1YmxpYyBhZGQocmhzOiBWZWM0KTogdGhpcyB7XG4gICAgdmVjNGFkZCh0aGlzLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCwgcmhzLmJ5dGVPZmZzZXQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHN1YihyaHM6IFZlYzQpOiB0aGlzIHtcbiAgICB2ZWM0c3ViKHRoaXMuYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0LCByaHMuYnl0ZU9mZnNldCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbXVsKG06IE1hdDQpOiB0aGlzIHtcbiAgICB2ZWM0bXVsKHRoaXMuYnl0ZU9mZnNldCwgbS5ieXRlT2Zmc2V0LCB0aGlzLmJ5dGVPZmZzZXQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGRvdChyaHM6IFZlYzQpOiBudW1iZXIge1xuICAgIHJldHVybiB2ZWM0ZG90KHRoaXMuYnl0ZU9mZnNldCwgcmhzLmJ5dGVPZmZzZXQpO1xuICB9XG5cbiAgcHVibGljIGxlcnAocmhzOiBWZWM0LCB0OiBudW1iZXIpOiB0aGlzIHtcbiAgICB2ZWM0bGVycCh0aGlzLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCwgcmhzLmJ5dGVPZmZzZXQsIHQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNjYWxlKGZhY3RvcjogbnVtYmVyKTogdGhpcyB7XG4gICAgdmVjNHNjYWxlKHRoaXMuYnl0ZU9mZnNldCwgdGhpcy5ieXRlT2Zmc2V0LCBmYWN0b3IpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5vcm1hbGl6ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF2ZWM0bm9ybSh0aGlzLmJ5dGVPZmZzZXQsIHRoaXMuYnl0ZU9mZnNldCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FDRUEsTUFBTSxDQUFFQyxXQUFXLENBQUVDLFdBQVcsQ0FDaENDLE9BQU8sQ0FBRUMsT0FBTyxDQUFFQyxRQUFRLENBQUVDLE9BQU8sQ0FBRUMsUUFBUSxDQUFFQyxTQUFTLENBQUVDLE9BQU8sQ0FDakVDLE9BQU8sQ0FBRUMsU0FBUyxDQUFFQyxPQUFPLENBQUVDLFFBQVEsQ0FBRUMsT0FBTyxDQUFFQyxRQUFRLENBQUVDLFNBQVMsQ0FBRUMsT0FBTyxDQUM1RUMsT0FBTyxDQUFFQyxPQUFPLENBQUVDLFFBQVEsQ0FBRUMsT0FBTyxDQUFFQyxRQUFRLENBQUVDLFNBQVMsQ0FBRUMsT0FBTyxLQUM1RCxxQkFBcUIsQ0FBQyxPQUdwQkMsbUJBQW1CLG1CQUc1QixNQUFPLE1BQU0sQ0FBQUMsSUFBSSxRQUFTLENBQUFELG1CQUF5QyxDQUMxREUsV0FBV0EsQ0FBQ0MsQ0FBQyxDQUFHLENBQUMsQ0FBRUMsQ0FBQyxDQUFHLENBQUMsQ0FBRSxDQUMvQixLQUFLLENBQUM3QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEIsSUFBSSxDQUFDOEIsR0FBRyxDQUFDLENBQUNGLENBQUMsQ0FBRUMsQ0FBQyxDQUFDLENBQ2pCLENBRUEsR0FBb0IsQ0FBQUUsTUFBTUEsQ0FBQSxDQUFNLENBQzlCLE1BQU8sRUFDVCxDQUVPQyxHQUFHQSxDQUFDQyxHQUFTLENBQVEsQ0FDMUI5QixPQUFPLENBQUMsSUFBSSxDQUFDK0IsVUFBVSxDQUFFLElBQUksQ0FBQ0EsVUFBVSxDQUFFRCxH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