import { TypedArray } from '../../types/CommonTypes' ; import { IVector3 , IMutableVector3 } from './IVector' ; import { IMatrix44 } from './IMatrix' ; export interface IQuaternion { readonly className : string ; _v : Float32Array ; 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 ; dot ( vec ) : number ; toEulerAnglesTo ( out ) : IMutableVector3 ; clone ( ) : IQuaternion ; } export interface IMutableQuaternion extends IQuaternion { readonly className : 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 ; dot ( vec ) : number ; toEulerAnglesTo ( out ) : IMutableVector3 ; clone ( ) : IMutableQuaternion ; raw ( ) : TypedArray ; setAt ( i , value ) : IMutableQuaternion ; setComponents ( x , y , z , w ) : IMutableQuaternion ; copyComponents ( quat ) : IMutableQuaternion ; identity ( ) : IMutableQuaternion ; normalize ( ) : IMutableQuaternion ; axisAngle ( vec , radian ) : IMutableQuaternion ; fromMatrix ( mat ) : IMutableQuaternion ; add ( quat ) : IMutableQuaternion ; subtract ( quat ) : IMutableQuaternion ; multiply ( quat ) : IMutableQuaternion ; multiplyNumber ( value ) : IMutableQuaternion ; divideNumber ( value ) : IMutableQuaternion ; clone ( ) : IMutableQuaternion ; } export interface ILogQuaternion { readonly className : string ; readonly _v : Float32Array ; readonly x : number ; readonly y : number ; readonly z : number ; readonly w : number ; }