/****************************************************************************** Ċ Ġ* ĠSp ine ĠRuntime s ĠLicense ĠAgreement Ċ Ġ* ĠLast Ġupdated ĠJanuary Ġ 1 , Ġ 2 0 2 0 . ĠRe places Ġall Ġprior Ġversions . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 3 - 2 0 2 0 , ĠEs ot eric ĠSoftware ĠLLC Ċ Ġ* Ċ Ġ* ĠIntegration Ġof Ġthe ĠSp ine ĠRuntime s Ġinto Ġsoftware Ġor Ġotherwise Ġcreating Ċ Ġ* Ġderivative Ġworks Ġof Ġthe ĠSp ine ĠRuntime s Ġis Ġpermitted Ġunder Ġthe Ġterms Ġand Ċ Ġ* Ġconditions Ġof ĠSection Ġ 2 Ġof Ġthe ĠSp ine ĠEditor ĠLicense ĠAgreement : Ċ Ġ* Ġhttp :// es ot eric software . com / sp ine - editor - license Ċ Ġ* Ċ Ġ* ĠOtherwise , Ġit Ġis Ġpermitted Ġto Ġintegrate Ġthe ĠSp ine ĠRuntime s Ġinto Ġsoftware Ċ Ġ* Ġor Ġotherwise Ġcreate Ġderivative Ġworks Ġof Ġthe ĠSp ine ĠRuntime s Ġ( collect ively , Ċ Ġ* Ġ" Products "), Ġprovided Ġthat Ġeach Ġuser Ġof Ġthe ĠProducts Ġmust Ġobtain Ġtheir Ġown Ċ Ġ* ĠSp ine ĠEditor Ġlicense Ġand Ġre distribution Ġof Ġthe ĠProducts Ġin Ġany Ġform Ġmust Ċ Ġ* Ġinclude Ġthis Ġlicense Ġand Ġcopyright Ġnotice . Ċ Ġ* Ċ Ġ* ĠTHE ĠSP INE ĠRUN TIMES ĠARE ĠPROVIDED ĠBY ĠES OT ERIC ĠSOFTWARE ĠLLC Ġ" AS ĠIS " ĠAND ĠANY Ċ Ġ* ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE ĠIMPLIED Ċ Ġ* ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE Ċ Ġ* ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠES OT ERIC ĠSOFTWARE ĠLLC ĠBE ĠLIABLE ĠFOR ĠANY Ċ Ġ* ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ċ Ġ* Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES , Ċ Ġ* ĠBUSINESS ĠINTERRUPTION , ĠOR ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ) ĠHOWEVER ĠCAUSED ĠAND Ċ Ġ* ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ċ Ġ* Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF Ċ Ġ* ĠTHE ĠSP INE ĠRUN TIMES , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ Ċ package Ġcom . es ot eric software . sp ine Ċ Ċ import Ġcom . so y wiz . kor im . color . RGBA f Ċ Ċ /** ĠStores Ġthe Ġsetup Ġpose Ġfor Ġa Ġ[ Bone ]. Ġ Ġ*/ Ċ class ĠB one Data Ġ{ ĊĠĠĠ Ġ/** ĠThe Ġindex Ġof Ġthe Ġbone Ġin Ġ[ Skeleton . getB ones ]. Ġ Ġ*/ ĊĠĠĠ Ġval Ġindex : ĠInt ĊĊĠĠĠ Ġ/** ĠThe Ġname Ġof Ġthe Ġbone , Ġwhich Ġis Ġunique Ġacross Ġall Ġbones Ġin Ġthe Ġskeleton . Ġ Ġ*/ ĊĠĠĠ Ġval Ġname : ĠString ĊĊĠĠĠ Ġ/** Ġ@ return ĠMay Ġbe Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġparent : ĠB one Data ? ĊĊĠĠĠ Ġ/** ĠThe Ġbone 's Ġlength . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġlength : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġ/** ĠThe Ġlocal Ġx Ġtranslation . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġx : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġ/** ĠThe Ġlocal Ġy Ġtranslation . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġy : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġ/** ĠThe Ġlocal Ġrotation . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġrotation : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġ/** ĠThe Ġlocal Ġscale X . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġscale X Ġ= Ġ 1 f ĊĊĠĠĠ Ġ/** ĠThe Ġlocal Ġscale Y . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġscale Y Ġ= Ġ 1 f ĊĊĠĠĠ Ġ/** ĠThe Ġlocal Ġshe ar X . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġshe ar X : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġ/** ĠThe Ġlocal Ġshe ar X . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġshe ar Y : ĠFloat Ġ= Ġ 0 . toFloat () ĊĠĠĠ Ġinternal Ġvar Ġtransform Mode Ġ= ĠTransform Mode . normal ĊĊĠĠĠ Ġ/** ĠWhen Ġtrue , Ġ[ Skeleton . update World Transform ] Ġonly Ġupdates Ġthis Ġbone Ġif Ġthe Ġ[ Skeleton . get Skin ] Ġcontains Ġthis ĊĠĠĠĠ Ġ* Ġbone . ĊĠĠĠĠ Ġ* Ġ@ see ĠSk in . getB ones ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġskin Required : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ// ĠNon essential . ĊĠĠĠ Ġ/** ĠThe Ġcolor Ġof Ġthe Ġbone Ġas Ġit Ġwas Ġin ĠSp ine . ĠAvailable Ġonly Ġwhen Ġnon essential Ġdata Ġwas Ġexported . ĠB ones Ġare Ġnot Ġusually ĊĠĠĠĠ Ġ* Ġrendered Ġat Ġruntime . Ġ Ġ*/ ĊĠĠĠ Ġval Ġcolor Ġ= ĠRGB Af ( 0 . 6 1 f , Ġ 0 . 6 1 f , Ġ 0 . 6 1 f , Ġ 1 f ) Ġ// Ġ 9 b 9 b 9 bff ĊĊĠĠĠ Ġ/** Ġ@ param Ġparent ĠMay Ġbe Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( index : ĠInt , Ġname : ĠString , Ġparent : ĠB one Data ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( index Ġ>= Ġ 0 ) Ġ{ Ġ" index Ġmust Ġbe Ġ>= Ġ 0 ." Ġ} ĊĠĠĠĠĠĠĠ Ġthis . index Ġ= Ġindex ĊĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġthis . parent Ġ= Ġparent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠCopy Ġconstructor . ĊĠĠĠĠ Ġ* Ġ@ param Ġparent ĠMay Ġbe Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( bone : ĠB one Data , Ġparent : ĠB one Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġindex Ġ= Ġbone . index ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġbone . name ĊĠĠĠĠĠĠĠ Ġthis . parent Ġ= Ġparent ĊĠĠĠĠĠĠĠ Ġlength Ġ= Ġbone . length ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġbone . x ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġbone . y ĊĠĠĠĠĠĠĠ Ġrotation Ġ= Ġbone . rotation ĊĠĠĠĠĠĠĠ Ġscale X Ġ= Ġbone . scale X ĊĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġbone . scale Y ĊĠĠĠĠĠĠĠ Ġshe ar X Ġ= Ġbone . she ar X ĊĠĠĠĠĠĠĠ Ġshe ar Y Ġ= Ġbone . she ar Y ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Position ( x : ĠFloat , Ġy : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Scale ( scale X : ĠFloat , Ġscale Y : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . scale X Ġ= Ġscale X ĊĠĠĠĠĠĠĠ Ġthis . scale Y Ġ= Ġscale Y ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠThe Ġtransform Ġmode Ġfor Ġhow Ġparent Ġworld Ġtransforms Ġaffect Ġthis Ġbone . Ġ Ġ*/ ĊĠĠĠ Ġfun Ġget Transform Mode (): ĠTransform Mode Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtransform Mode ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Transform Mode ( transform Mode : ĠTransform Mode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . transform Mode Ġ= Ġtransform Mode ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠDetermines Ġhow Ġa Ġbone Ġinherits Ġworld Ġtransforms Ġfrom Ġparent Ġbones . Ġ Ġ*/ ĊĠĠĠ Ġenum Ġclass ĠTransform Mode Ġ{ ĊĠĠĠĠĠĠĠ Ġnormal , Ġonly Translation , Ġno Rotation Or Reflection , Ġno Scale , Ġno Scale Or Reflection ; ĊĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠTransform Mode . values () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ