package Ġglm _. vec 1 Ċ Ċ import Ġglm _. * Ċ import Ġglm _. vec 1 . operators . op Vec 1 s Ċ import Ġglm _. vec 2 . Vec 2 bool Ċ import Ġglm _. vec 2 . Vec 2 t Ċ import Ġglm _. vec 3 . Vec 3 bool Ċ import Ġglm _. vec 3 . Vec 3 t Ċ import Ġglm _. vec 4 . Vec 4 bool Ċ import Ġglm _. vec 4 . Vec 4 t Ċ import Ġk ool .* Ċ import Ġorg . lwjgl . system . Memory Stack Ċ import Ġjava . nio .* Ċ import Ġkotlin . math . abs Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠG Bar b ier i Ġon Ġ 0 4 . 0 4 . 2 0 1 7 . Ċ Ġ*/ Ċ Ċ class ĠVec 1 s ( x : ĠShort ) Ġ: ĠVec 1 t < Short >( x ) Ġ{ ĊĊĠĠĠ Ġ// Ġ-- ĠImp licit Ġbasic Ġconstructors Ġ-- ĊĊĠĠĠ Ġconstructor () Ġ: Ġthis ( 0 ) ĊĠĠĠ Ġconstructor ( s : ĠNumber ) Ġ: Ġthis ( s . s ) ĊĊĠĠĠ Ġ// Ġ-- ĠExplicit Ġbasic Ġconstructors Ġ-- ĊĠĠĠ Ġ// ĠExplicit Ġconversions Ġ( From Ġsection Ġ 5 . 4 . 1 ĠConversion Ġand Ġscalar Ġconstructors Ġof ĠGL SL Ġ 1 . 3 0 . 0 8 Ġspecification ) ĊĊĠĠĠ Ġconstructor ( v : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( v . x ) ĊĠĠĠ Ġconstructor ( v : ĠVec 2 t < out ĠNumber >) Ġ: Ġthis ( v . x ) ĊĠĠĠ Ġconstructor ( v : ĠVec 3 t < out ĠNumber >) Ġ: Ġthis ( v . x ) ĊĠĠĠ Ġconstructor ( v : ĠVec 4 t < out ĠNumber >) Ġ: Ġthis ( v . x ) ĊĊĠĠĠ Ġconstructor ( v : ĠVec 1 bool ) Ġ: Ġthis ( v . x . i ) ĊĠĠĠ Ġconstructor ( v : ĠVec 2 bool ) Ġ: Ġthis ( v . x . i ) ĊĠĠĠ Ġconstructor ( v : ĠVec 3 bool ) Ġ: Ġthis ( v . x . i ) ĊĠĠĠ Ġconstructor ( v : ĠVec 4 bool ) Ġ: Ġthis ( v . x . i ) ĊĊĠĠĠ Ġconstructor ( bytes : ĠByteArray , Ġindex : ĠInt Ġ= Ġ 0 , Ġone Byte One Int : ĠBoolean Ġ= Ġfalse , Ġbig Endian : ĠBoolean Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġthis ( if Ġ( one Byte One Int ) Ġbytes [ index ]. i Ġelse Ġbytes . getInt ( index , Ġbig Endian )) ĊĊĠĠĠ Ġconstructor ( chars : ĠChar Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( chars [ index ]. i ) ĊĠĠĠ Ġconstructor ( shorts : ĠShort Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( shorts [ index ]) ĊĠĠĠ Ġconstructor ( ints : ĠInt Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( ints [ index ]) ĊĠĠĠ Ġconstructor ( long s : ĠLong Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( long s [ index ]) ĊĠĠĠ Ġconstructor ( float s : ĠFloat Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( float s [ index ]) ĊĠĠĠ Ġconstructor ( double s : ĠDouble Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( double s [ index ]) ĊĠĠĠ Ġconstructor ( b ooleans : ĠBoolean Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( b ooleans [ index ]. i ) ĊĊĠĠĠ Ġconstructor ( numbers : ĠArray < out ĠNumber >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( numbers [ index ]) ĊĠĠĠ Ġconstructor ( chars : ĠArray < Char >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( chars [ index ]. i ) ĊĠĠĠ Ġconstructor ( b ooleans : ĠArray < Boolean >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( b ooleans [ index ]. i ) ĊĊĠĠĠ Ġconstructor ( list : ĠList < Any >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġput ( list , Ġindex ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( bytes : ĠByteBuffer , Ġindex : ĠInt Ġ= Ġbytes . pos , Ġone Byte One Int : ĠBoolean Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġthis ( if Ġ( one Byte One Int ) Ġbytes [ index ]. i Ġelse Ġbytes . getInt ( index )) ĊĊĠĠĠ Ġconstructor ( chars : ĠChar Buffer , Ġindex : ĠInt Ġ= Ġchars . pos ) Ġ: Ġthis ( chars [ index ]. i ) ĊĠĠĠ Ġconstructor ( shorts : ĠShort Buffer , Ġindex : ĠInt Ġ= Ġshort s . pos ) Ġ: Ġthis ( shorts [ index ]) ĊĠĠĠ Ġconstructor ( ints : ĠInt Buffer , Ġindex : ĠInt Ġ= Ġints . pos ) Ġ: Ġthis ( ints [ index ]) ĊĠĠĠ Ġconstructor ( long s : ĠLong Buffer , Ġindex : ĠInt Ġ= Ġlong s . pos ) Ġ: Ġthis ( long s [ index ]) ĊĠĠĠ Ġconstructor ( float s : ĠFloat Buffer , Ġindex : ĠInt Ġ= Ġfloats . pos ) Ġ: Ġthis ( float s [ index ]) ĊĠĠĠ Ġconstructor ( double s : ĠDouble Buffer , Ġindex : ĠInt Ġ= Ġdouble s . pos ) Ġ: Ġthis ( double s [ index ]) ĊĊĠĠĠ Ġconstructor ( block : Ġ( Int ) Ġ-> ĠInt ) Ġ: Ġthis ( block ( 0 )) ĊĠĠĠ Ġconstructor ( ptr : ĠShort Ptr ) Ġ: Ġthis ( ptr [ 0 ]) ĊĊĊĠĠĠ Ġfun Ġset ( bytes : ĠByteArray , Ġindex : ĠInt Ġ= Ġ 0 , Ġone Byte One Int : ĠBoolean Ġ= Ġfalse , Ġbig Endian : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġif Ġ( one Byte One Int ) Ġbytes [ index ]. s Ġelse Ġbytes . get Short ( index , Ġbig Endian ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( bytes : ĠByteBuffer , Ġindex : ĠInt Ġ= Ġbytes . pos , Ġone Byte One Int : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġif Ġ( one Byte One Int ) Ġbytes [ index ]. s Ġelse Ġbytes . get Short ( index ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġput ( x : ĠShort ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġinvoke ( x : ĠShort ): ĠVec 1 s Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput ( x : ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx . s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġinvoke ( x : ĠNumber ): ĠVec 1 s Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx . s ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto ( bytes : ĠByteArray , Ġindex : ĠInt ): ĠByteArray Ġ= Ġto ( bytes , Ġindex , Ġtrue ) ĊĠĠĠ Ġoverride Ġfun Ġto ( bytes : ĠByteArray , Ġindex : ĠInt , Ġbig Endian : ĠBoolean ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġbytes . put Short ( index , Ġx ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbytes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto ( buf : ĠByteBuffer , Ġoffset : ĠInt ): ĠByteBuffer Ġ= Ġbuf . put Short ( offset , Ġx ) ĊĊĠĠĠ Ġfun Ġto Short Array (): ĠShort Array Ġ= Ġto ( Short Array ( length ), Ġ 0 ) ĊĠĠĠ Ġin fix Ġfun Ġto ( shorts : ĠShort Array ): ĠShort Array Ġ= Ġto ( shorts , Ġ 0 ) ĊĠĠĠ Ġfun Ġto ( shorts : ĠShort Array , Ġindex : ĠInt ): ĠShort Array Ġ{ ĊĠĠĠĠĠĠĠ Ġshort s [ index ] Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġreturn Ġshort s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġto Short Buffer ( stack : ĠMemory Stack ): ĠShort Buffer Ġ= Ġto ( stack . malloc Short ( length ), Ġ 0 ) ĊĠĠĠ Ġfun Ġto Short Buffer (): ĠShort Buffer Ġ= Ġto ( Short Buffer ( length ), Ġ 0 ) ĊĠĠĠ Ġin fix Ġfun Ġto ( buf : ĠShort Buffer ): ĠShort Buffer Ġ= Ġto ( buf , Ġbuf . pos ) ĊĠĠĠ Ġfun Ġto ( buf : ĠShort Buffer , Ġindex : ĠInt ): ĠShort Buffer Ġ{ ĊĠĠĠĠĠĠĠ Ġbuf [ index ] Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġreturn Ġbuf ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġ-- ĠSpecific Ġbinary Ġarithmetic Ġoperators Ġ-- Ċ Ċ // ĠĠĠ ĠTODO ĊĊĠĠĠ Ġcompanion Ġobject Ġ: Ġop Vec 1 s Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġlength Ġ= ĠVec 1 t . length ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġlength Ġ* ĠShort . BYTES ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsize () Ġ= Ġsize ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?) Ġ= Ġother Ġis ĠVec 1 s Ġ&& Ġthis [ 0 ] Ġ== Ġother [ 0 ] ĊĠĠĠ Ġfun Ġequal ( b : ĠVec 1 s , Ġepsilon : ĠInt Ġ= Ġ 0 ): ĠBoolean Ġ= Ġabs ( x Ġ- Ġb . x ) Ġ<= Ġepsilon ĊĠĠĠ Ġfun Ġnot Equal ( b : ĠVec 1 s , Ġepsilon : ĠInt Ġ= Ġ 0 ): ĠBoolean Ġ= Ġ! equal ( b , Ġepsilon ) ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode () Ġ= Ġx . hashCode () Ċ }