import { TypedArray } from '../../types/CommonTypes' ; export interface IVector { readonly _v : TypedArray ; readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; toString ( ) : string ; toStringApproximately ( ) : string ; flattenAsArray ( ) : Array < number > ; isDummy ( ) : boolean ; isEqual ( vec , delta ? ) : boolean ; isStrictEqual ( vec ) : boolean ; at ( i ) : number ; v ( i ) : number ; length ( ) : number ; lengthSquared ( ) : number ; lengthTo ( vec ) : number ; dot ( vec ) : number ; isTheSourceSame ( arrayBuffer ) : boolean ; } export interface IMutableVector extends IVector { _v : TypedArray ; readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; raw ( ) : TypedArray ; setAt ( i , value ) : IMutableVector ; setComponents ( ... num ) : IMutableVector ; copyComponents ( vec ) : IMutableVector ; zero ( ) : IMutableVector ; one ( ) : IMutableVector ; normalize ( ) : IMutableVector ; add ( vec ) : IMutableVector ; subtract ( vec ) : IMutableVector ; multiply ( value ) : IMutableVector ; multiplyVector ( vec ) : IMutableVector ; divide ( value ) : IMutableVector ; divideVector ( vec ) : IMutableVector ; } export interface IScalar extends IVector { _v : TypedArray ; readonly x : number ; } export interface IMutableScalar extends IMutableVector { readonly x : number ; } export interface IVector2 extends IVector { readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; readonly x : number ; readonly y : number ; toString ( ) : string ; toStringApproximately ( ) : string ; flattenAsArray ( ) : Array < number > ; isDummy ( ) : boolean ; isEqual ( vec , delta ? ) : boolean ; isStrictEqual ( vec ) : boolean ; at ( i ) : number ; length ( ) : number ; lengthSquared ( ) : number ; lengthTo ( vec ) : number ; dot ( vec ) : number ; clone ( ) : IVector2 ; } export interface IMutableVector2 extends IMutableVector { readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; x : number ; y : number ; toString ( ) : string ; toStringApproximately ( ) : string ; flattenAsArray ( ) : Array < number > ; isDummy ( ) : boolean ; isEqual ( vec , delta ? ) : boolean ; isStrictEqual ( vec ) : boolean ; at ( i ) : number ; length ( ) : number ; lengthSquared ( ) : number ; lengthTo ( vec ) : number ; dot ( vec ) : number ; clone ( ) : IMutableVector2 ; raw ( ) : TypedArray ; setAt ( i , value ) : IMutableVector2 ; setComponents ( x , y ) : IMutableVector2 ; copyComponents ( vec ) : IMutableVector2 ; zero ( ) : IMutableVector2 ; one ( ) : IMutableVector2 ; normalize ( ) : IMutableVector2 ; add ( vec ) : IMutableVector2 ; subtract ( vec ) : IMutableVector2 ; multiply ( value ) : IMutableVector2 ; multiplyVector ( vec ) : IMutableVector2 ; divide ( value ) : IMutableVector2 ; divideVector ( vec ) : IMutableVector2 ; } export interface IVector3 extends IVector { readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; readonly x : number ; readonly y : number ; readonly z : number ; readonly w : number ; toString ( ) : string ; toStringApproximately ( ) : string ; flattenAsArray ( ) : Array < number > ; isDummy ( ) : boolean ; isEqual ( vec , delta ? ) : boolean ; isStrictEqual ( vec ) : boolean ; at ( i ) : number ; length ( ) : number ; lengthSquared ( ) : number ; lengthTo ( vec ) : number ; dot ( vec ) : number ; clone ( ) : IVector3 ; } export interface IMutableVector3 extends IMutableVector { readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; x : number ; y : number ; z : number ; readonly w : number ; toString ( ) : string ; toStringApproximately ( ) : string ; flattenAsArray ( ) : Array < number > ; isDummy ( ) : boolean ; isEqual ( vec , delta ? ) : boolean ; isStrictEqual ( vec ) : boolean ; at ( i ) : number ; length ( ) : number ; lengthSquared ( ) : number ; lengthTo ( vec ) : number ; dot ( vec ) : number ; clone ( ) : IMutableVector3 ; raw ( ) : TypedArray ; setAt ( i , value ) : IMutableVector3 ; setComponents ( x , y , z ) : IMutableVector3 ; copyComponents ( vec ) : IMutableVector3 ; zero ( ) : IMutableVector3 ; one ( ) : IMutableVector3 ; normalize ( ) : IMutableVector3 ; add ( vec ) : IMutableVector3 ; subtract ( vec ) : IMutableVector3 ; multiply ( value ) : IMutableVector3 ; multiplyVector ( vec ) : IMutableVector3 ; divide ( value ) : IMutableVector3 ; divideVector ( vec ) : IMutableVector3 ; cross ( vec ) : IMutableVector3 ; } export interface IVector4 extends IVector { readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; readonly x : number ; readonly y : number ; readonly z : number ; readonly w : number ; toString ( ) : string ; toStringApproximately ( ) : string ; flattenAsArray ( ) : Array < number > ; isDummy ( ) : boolean ; isEqual ( vec , delta ? ) : boolean ; isStrictEqual ( vec ) : boolean ; at ( i ) : number ; length ( ) : number ; lengthSquared ( ) : number ; lengthTo ( vec ) : number ; dot ( vec ) : number ; clone ( ) : IVector4 ; } export interface IMutableVector4 extends IMutableVector { readonly className : string ; readonly glslStrAsFloat : string ; readonly glslStrAsInt : string ; x : number ; y : number ; z : number ; w : number ; toString ( ) : string ; toStringApproximately ( ) : string ; flattenAsArray ( ) : Array < number > ; isDummy ( ) : boolean ; isEqual ( vec , delta ? ) : boolean ; isStrictEqual ( vec ) : boolean ; at ( i ) : number ; length ( ) : number ; lengthSquared ( ) : number ; lengthTo ( vec ) : number ; dot ( vec ) : number ; clone ( ) : IMutableVector4 ; raw ( ) : TypedArray ; setAt ( i , value ) : IMutableVector4 ; setComponents ( x , y , z , w ) : IMutableVector4 ; copyComponents ( vec ) : IMutableVector4 ; zero ( ) : IMutableVector4 ; one ( ) : IMutableVector4 ; normalize ( ) : IMutableVector4 ; normalize3 ( ) : IMutableVector4 ; add ( vec ) : IMutableVector4 ; subtract ( vec ) : IMutableVector4 ; multiply ( value ) : IMutableVector4 ; multiplyVector ( vec ) : IMutableVector4 ; divide ( value ) : IMutableVector4 ; divideVector ( vec ) : IMutableVector4 ; }