/****************************************************************************** Ċ Ġ* Ġ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 Ċ Ċ /** ĠStores Ġthe Ġsetup Ġpose Ġfor Ġan Ġ[ Ik Constraint ]. Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠSee Ġ[ IK Ġconstraints ]( http :// es ot eric software . com / sp ine - ik - constraints ) Ġin Ġthe ĠSp ine ĠUser ĠGuide . Ġ Ġ*/ Ċ class ĠI k Constraint Data ( name : ĠString ) Ġ: ĠConstraint Data ( name ) Ġ{ ĊĠĠĠ Ġ/** ĠThe Ġbones Ġthat Ġare Ġconstr ained Ġby Ġthis ĠIK Ġconstraint . Ġ Ġ*/ ĊĠĠĠ Ġval Ġbones : ĠArrayList < Bone Data > Ġ= ĠArrayList () ĊĠĠĠ Ġlateinit Ġinternal Ġvar Ġtarget : ĠB one Data ĊĊĠĠĠ Ġ/** ĠControls Ġthe Ġb end Ġdirection Ġof Ġthe ĠIK Ġbones , Ġeither Ġ 1 Ġor Ġ- 1 . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġb end Direction Ġ= Ġ 1 ĊĊĠĠĠ Ġ/** ĠWhen Ġtrue Ġand Ġonly Ġa Ġsingle Ġbone Ġis Ġbeing Ġconstr ained , Ġif Ġthe Ġtarget Ġis Ġtoo Ġclose , Ġthe Ġbone Ġis Ġscaled Ġto Ġreach Ġit . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġcompress : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĠWhen Ġtrue , Ġif Ġthe Ġtarget Ġis Ġout Ġof Ġrange , Ġthe Ġparent Ġbone Ġis Ġscaled Ġto Ġreach Ġit . ĠIf Ġmore Ġthan Ġone Ġbone Ġis Ġbeing Ġconstr ained ĊĠĠĠĠ Ġ* Ġand Ġthe Ġparent Ġbone Ġhas Ġlocal Ġnon uniform Ġscale , Ġstretch Ġis Ġnot Ġapplied . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġstretch : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĠWhen Ġtrue , Ġonly Ġa Ġsingle Ġbone Ġis Ġbeing Ġconstr ained , Ġand Ġ[. get Compress ] Ġor Ġ[. get Stretch ] Ġis Ġused , Ġthe Ġbone ĊĠĠĠĠ Ġ* Ġis Ġscaled Ġon Ġboth Ġthe ĠX Ġand ĠY Ġaxes . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġuniform : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĠA Ġpercentage Ġ( 0 - 1 ) Ġthat Ġcontrols Ġthe Ġmix Ġbetween Ġthe Ġconstr ained Ġand Ġun constrained Ġrot ations . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġmix Ġ= Ġ 1 f ĊĊĠĠĠ Ġ/** ĠFor Ġtwo Ġbone ĠIK , Ġthe Ġdistance Ġfrom Ġthe Ġmaximum Ġreach Ġof Ġthe Ġbones Ġthat Ġrotation Ġwill Ġslow . Ġ Ġ*/ ĊĠĠĠ Ġvar Ġsoft ness : ĠFloat Ġ= Ġ 0 . toFloat () ĊĊĠĠĠ Ġ/** ĠThe Ġbone Ġthat Ġis Ġthe ĠIK Ġtarget . Ġ Ġ*/ ĊĠĠĠ Ġfun Ġget Target (): ĠB one Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtarget ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Target ( target : ĠB one Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . target Ġ= Ġtarget ĊĠĠĠ Ġ} Ċ } Ċ