/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠJ oh ann es ĠDon ath Ġ< jo h ann es d @ torch mind . com > Ċ Ġ* Ġand Ġother Ġcopyright Ġowners Ġas Ġdocumented Ġin Ġthe Ġproject 's ĠIP Ġlog . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . bas in mc . fa uc et . math Ċ Ċ import Ġorg . bas in mc . fa uc et . world . World Ċ import Ġkotlin . math . round To Long Ċ import Ġkotlin . math . sqrt Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ< a Ġhref =" mailto : jo h ann es d @ torch mind . com "> J oh ann es ĠDon ath </ a > Ċ Ġ*/ Ċ data Ġclass ĠWorld Vector Long ( override Ġval Ġx : ĠLong , Ġoverride Ġval Ġy : ĠLong , Ġoverride Ġval Ġz : ĠLong , ĊĠĠĠ Ġoverride Ġval Ġworld : ĠWorld ) Ġ: ĠWorld Vector < Long > Ġ{ ĊĊĠ Ġoverride Ġval Ġlength : ĠDouble Ġby Ġlazy Ġ{ ĊĠĠĠ Ġsqrt ( Math . pow ( this . x . toDouble (), Ġ 2 . 0 ) Ġ+ ĠMath . pow ( this . y . toDouble (), Ġ 2 . 0 ) Ġ+ ĠMath . pow ( ĊĠĠĠĠĠĠĠ Ġthis . z . toDouble (), Ġ 2 . 0 )) ĊĠ Ġ} ĊĠ Ġoverride Ġval Ġnormalized : ĠWorld Vector < Long > Ġby Ġlazy Ġ{ ĊĠĠĠ ĠWorld Vector Long (( this . x Ġ/ Ġthis . length ). round To Long (), Ġ( this . y Ġ/ Ġthis . length ). round To Long (), ĊĠĠĠĠĠĠĠ Ġ( this . z Ġ/ Ġthis . length ). round To Long (), Ġthis . world ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġval Ġlong : ĠWorld Vector Long ĊĠĠĠ Ġget () Ġ= Ġthis ĊĊĠ Ġoverride Ġfun Ġplus ( add end : ĠLong ) Ġ= ĠWorld Vector Long ( this . x Ġ+ Ġadd end , Ġthis . y Ġ+ Ġadd end , ĊĠĠĠĠĠ Ġthis . z Ġ+ Ġadd end , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġplus ( add end : ĠVector 2 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ+ Ġadd end . x , Ġthis . y Ġ+ Ġadd end . y , ĊĠĠĠĠĠ Ġthis . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġplus ( add end : ĠVector 3 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ+ Ġadd end . x , Ġthis . y Ġ+ Ġadd end . y , ĊĠĠĠĠĠ Ġthis . z Ġ+ Ġadd end . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġminus ( sub tr ah end : ĠLong ) Ġ= ĠWorld Vector Long ( this . x Ġ- Ġsub tr ah end , Ġthis . y Ġ- Ġsub tr ah end , ĊĠĠĠĠĠ Ġthis . z Ġ- Ġsub tr ah end , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġminus ( sub tr ah end : ĠVector 2 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ- Ġsub tr ah end . x , ĊĠĠĠĠĠ Ġthis . y Ġ- Ġsub tr ah end . y , Ġthis . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġminus ( sub tr ah end : ĠVector 3 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ- Ġsub tr ah end . x , ĊĠĠĠĠĠ Ġthis . y Ġ- Ġsub tr ah end . y , Ġthis . z Ġ- Ġsub tr ah end . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġtimes ( factor : ĠLong ) Ġ= ĠWorld Vector Long ( this . x Ġ* Ġfactor , Ġthis . y Ġ* Ġfactor , ĊĠĠĠĠĠ Ġthis . z Ġ* Ġfactor , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġtimes ( factor : ĠVector 2 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ* Ġfactor . x , Ġthis . y Ġ* Ġfactor . y , ĊĠĠĠĠĠ Ġthis . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġtimes ( factor : ĠVector 3 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ* Ġfactor . x , Ġthis . y Ġ* Ġfactor . y , ĊĠĠĠĠĠ Ġthis . z Ġ* Ġfactor . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġdiv ( div isor : ĠLong ) Ġ= ĠWorld Vector Long ( this . x Ġ/ Ġdivisor , Ġthis . y Ġ/ Ġdivisor , ĊĠĠĠĠĠ Ġthis . z Ġ/ Ġdivisor , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġdiv ( div isor : ĠVector 2 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ/ Ġdivisor . x , Ġthis . y Ġ/ Ġdivisor . y , ĊĠĠĠĠĠ Ġthis . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġdiv ( div isor : ĠVector 3 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ/ Ġdivisor . x , Ġthis . y Ġ/ Ġdivisor . y , ĊĠĠĠĠĠ Ġthis . z Ġ/ Ġdivisor . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġrem ( div isor : ĠLong ) Ġ= ĠWorld Vector Long ( this . x Ġ% Ġdivisor , Ġthis . y Ġ% Ġdivisor , ĊĠĠĠĠĠ Ġthis . z Ġ% Ġdivisor , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġrem ( div isor : ĠVector 2 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ% Ġdivisor . x , Ġthis . y Ġ% Ġdivisor . y , ĊĠĠĠĠĠ Ġthis . z , Ġthis . world ) ĊĊĠ Ġoverride Ġfun Ġrem ( div isor : ĠVector 3 < Long >) Ġ= ĠWorld Vector Long ( this . x Ġ% Ġdivisor . x , Ġthis . y Ġ% Ġdivisor . y , ĊĠĠĠĠĠ Ġthis . z Ġ% Ġdivisor . z , Ġthis . world ) Ċ } Ċ