1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225 |
- import * as PIXI from './pixi';
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Animation = (function () {
- function Animation(name, timelines, duration) {
- if (name == null)
- throw new Error("name cannot be null.");
- if (timelines == null)
- throw new Error("timelines cannot be null.");
- this.name = name;
- this.timelines = timelines;
- this.duration = duration;
- }
- Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, pose, direction) {
- if (skeleton == null)
- throw new Error("skeleton cannot be null.");
- if (loop && this.duration != 0) {
- time %= this.duration;
- if (lastTime > 0)
- lastTime %= this.duration;
- }
- var timelines = this.timelines;
- for (var i = 0, n = timelines.length; i < n; i++)
- timelines[i].apply(skeleton, lastTime, time, events, alpha, pose, direction);
- };
- Animation.binarySearch = function (values, target, step) {
- if (step === void 0) { step = 1; }
- var low = 0;
- var high = values.length / step - 2;
- if (high == 0)
- return step;
- var current = high >>> 1;
- while (true) {
- if (values[(current + 1) * step] <= target)
- low = current + 1;
- else
- high = current;
- if (low == high)
- return (low + 1) * step;
- current = (low + high) >>> 1;
- }
- };
- Animation.linearSearch = function (values, target, step) {
- for (var i = 0, last = values.length - step; i <= last; i += step)
- if (values[i] > target)
- return i;
- return -1;
- };
- return Animation;
- }());
- core.Animation = Animation;
- var MixPose;
- (function (MixPose) {
- MixPose[MixPose["setup"] = 0] = "setup";
- MixPose[MixPose["current"] = 1] = "current";
- MixPose[MixPose["currentLayered"] = 2] = "currentLayered";
- })(MixPose = core.MixPose || (core.MixPose = {}));
- var MixDirection;
- (function (MixDirection) {
- MixDirection[MixDirection["in"] = 0] = "in";
- MixDirection[MixDirection["out"] = 1] = "out";
- })(MixDirection = core.MixDirection || (core.MixDirection = {}));
- var TimelineType;
- (function (TimelineType) {
- TimelineType[TimelineType["rotate"] = 0] = "rotate";
- TimelineType[TimelineType["translate"] = 1] = "translate";
- TimelineType[TimelineType["scale"] = 2] = "scale";
- TimelineType[TimelineType["shear"] = 3] = "shear";
- TimelineType[TimelineType["attachment"] = 4] = "attachment";
- TimelineType[TimelineType["color"] = 5] = "color";
- TimelineType[TimelineType["deform"] = 6] = "deform";
- TimelineType[TimelineType["event"] = 7] = "event";
- TimelineType[TimelineType["drawOrder"] = 8] = "drawOrder";
- TimelineType[TimelineType["ikConstraint"] = 9] = "ikConstraint";
- TimelineType[TimelineType["transformConstraint"] = 10] = "transformConstraint";
- TimelineType[TimelineType["pathConstraintPosition"] = 11] = "pathConstraintPosition";
- TimelineType[TimelineType["pathConstraintSpacing"] = 12] = "pathConstraintSpacing";
- TimelineType[TimelineType["pathConstraintMix"] = 13] = "pathConstraintMix";
- TimelineType[TimelineType["twoColor"] = 14] = "twoColor";
- })(TimelineType = core.TimelineType || (core.TimelineType = {}));
- var CurveTimeline = (function () {
- function CurveTimeline(frameCount) {
- if (frameCount <= 0)
- throw new Error("frameCount must be > 0: " + frameCount);
- this.curves = core.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE);
- }
- CurveTimeline.prototype.getFrameCount = function () {
- return this.curves.length / CurveTimeline.BEZIER_SIZE + 1;
- };
- CurveTimeline.prototype.setLinear = function (frameIndex) {
- this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR;
- };
- CurveTimeline.prototype.setStepped = function (frameIndex) {
- this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED;
- };
- CurveTimeline.prototype.getCurveType = function (frameIndex) {
- var index = frameIndex * CurveTimeline.BEZIER_SIZE;
- if (index == this.curves.length)
- return CurveTimeline.LINEAR;
- var type = this.curves[index];
- if (type == CurveTimeline.LINEAR)
- return CurveTimeline.LINEAR;
- if (type == CurveTimeline.STEPPED)
- return CurveTimeline.STEPPED;
- return CurveTimeline.BEZIER;
- };
- CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) {
- var tmpx = (-cx1 * 2 + cx2) * 0.03, tmpy = (-cy1 * 2 + cy2) * 0.03;
- var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006, dddfy = ((cy1 - cy2) * 3 + 1) * 0.006;
- var ddfx = tmpx * 2 + dddfx, ddfy = tmpy * 2 + dddfy;
- var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667, dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667;
- var i = frameIndex * CurveTimeline.BEZIER_SIZE;
- var curves = this.curves;
- curves[i++] = CurveTimeline.BEZIER;
- var x = dfx, y = dfy;
- for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) {
- curves[i] = x;
- curves[i + 1] = y;
- dfx += ddfx;
- dfy += ddfy;
- ddfx += dddfx;
- ddfy += dddfy;
- x += dfx;
- y += dfy;
- }
- };
- CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) {
- percent = core.MathUtils.clamp(percent, 0, 1);
- var curves = this.curves;
- var i = frameIndex * CurveTimeline.BEZIER_SIZE;
- var type = curves[i];
- if (type == CurveTimeline.LINEAR)
- return percent;
- if (type == CurveTimeline.STEPPED)
- return 0;
- i++;
- var x = 0;
- for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) {
- x = curves[i];
- if (x >= percent) {
- var prevX = void 0, prevY = void 0;
- if (i == start) {
- prevX = 0;
- prevY = 0;
- }
- else {
- prevX = curves[i - 2];
- prevY = curves[i - 1];
- }
- return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX);
- }
- }
- var y = curves[i - 1];
- return y + (1 - y) * (percent - x) / (1 - x);
- };
- CurveTimeline.LINEAR = 0;
- CurveTimeline.STEPPED = 1;
- CurveTimeline.BEZIER = 2;
- CurveTimeline.BEZIER_SIZE = 10 * 2 - 1;
- return CurveTimeline;
- }());
- core.CurveTimeline = CurveTimeline;
- var RotateTimeline = (function (_super) {
- __extends(RotateTimeline, _super);
- function RotateTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount << 1);
- return _this;
- }
- RotateTimeline.prototype.getPropertyId = function () {
- return (TimelineType.rotate << 24) + this.boneIndex;
- };
- RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) {
- frameIndex <<= 1;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + RotateTimeline.ROTATION] = degrees;
- };
- RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, pose, direction) {
- var frames = this.frames;
- var bone = skeleton.bones[this.boneIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- bone.rotation = bone.data.rotation;
- return;
- case MixPose.current:
- var r_1 = bone.data.rotation - bone.rotation;
- r_1 -= (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360;
- bone.rotation += r_1 * alpha;
- }
- return;
- }
- if (time >= frames[frames.length - RotateTimeline.ENTRIES]) {
- if (pose == MixPose.setup)
- bone.rotation = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] * alpha;
- else {
- var r_2 = bone.data.rotation + frames[frames.length + RotateTimeline.PREV_ROTATION] - bone.rotation;
- r_2 -= (16384 - ((16384.499999999996 - r_2 / 360) | 0)) * 360;
- bone.rotation += r_2 * alpha;
- }
- return;
- }
- var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES);
- var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime));
- var r = frames[frame + RotateTimeline.ROTATION] - prevRotation;
- r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360;
- r = prevRotation + r * percent;
- if (pose == MixPose.setup) {
- r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360;
- bone.rotation = bone.data.rotation + r * alpha;
- }
- else {
- r = bone.data.rotation + r - bone.rotation;
- r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360;
- bone.rotation += r * alpha;
- }
- };
- RotateTimeline.ENTRIES = 2;
- RotateTimeline.PREV_TIME = -2;
- RotateTimeline.PREV_ROTATION = -1;
- RotateTimeline.ROTATION = 1;
- return RotateTimeline;
- }(CurveTimeline));
- core.RotateTimeline = RotateTimeline;
- var TranslateTimeline = (function (_super) {
- __extends(TranslateTimeline, _super);
- function TranslateTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES);
- return _this;
- }
- TranslateTimeline.prototype.getPropertyId = function () {
- return (TimelineType.translate << 24) + this.boneIndex;
- };
- TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) {
- frameIndex *= TranslateTimeline.ENTRIES;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + TranslateTimeline.X] = x;
- this.frames[frameIndex + TranslateTimeline.Y] = y;
- };
- TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, pose, direction) {
- var frames = this.frames;
- var bone = skeleton.bones[this.boneIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- bone.x = bone.data.x;
- bone.y = bone.data.y;
- return;
- case MixPose.current:
- bone.x += (bone.data.x - bone.x) * alpha;
- bone.y += (bone.data.y - bone.y) * alpha;
- }
- return;
- }
- var x = 0, y = 0;
- if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) {
- x = frames[frames.length + TranslateTimeline.PREV_X];
- y = frames[frames.length + TranslateTimeline.PREV_Y];
- }
- else {
- var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES);
- x = frames[frame + TranslateTimeline.PREV_X];
- y = frames[frame + TranslateTimeline.PREV_Y];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / TranslateTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime));
- x += (frames[frame + TranslateTimeline.X] - x) * percent;
- y += (frames[frame + TranslateTimeline.Y] - y) * percent;
- }
- if (pose == MixPose.setup) {
- bone.x = bone.data.x + x * alpha;
- bone.y = bone.data.y + y * alpha;
- }
- else {
- bone.x += (bone.data.x + x - bone.x) * alpha;
- bone.y += (bone.data.y + y - bone.y) * alpha;
- }
- };
- TranslateTimeline.ENTRIES = 3;
- TranslateTimeline.PREV_TIME = -3;
- TranslateTimeline.PREV_X = -2;
- TranslateTimeline.PREV_Y = -1;
- TranslateTimeline.X = 1;
- TranslateTimeline.Y = 2;
- return TranslateTimeline;
- }(CurveTimeline));
- core.TranslateTimeline = TranslateTimeline;
- var ScaleTimeline = (function (_super) {
- __extends(ScaleTimeline, _super);
- function ScaleTimeline(frameCount) {
- return _super.call(this, frameCount) || this;
- }
- ScaleTimeline.prototype.getPropertyId = function () {
- return (TimelineType.scale << 24) + this.boneIndex;
- };
- ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, pose, direction) {
- var frames = this.frames;
- var bone = skeleton.bones[this.boneIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- bone.scaleX = bone.data.scaleX;
- bone.scaleY = bone.data.scaleY;
- return;
- case MixPose.current:
- bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha;
- bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha;
- }
- return;
- }
- var x = 0, y = 0;
- if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) {
- x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX;
- y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY;
- }
- else {
- var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES);
- x = frames[frame + ScaleTimeline.PREV_X];
- y = frames[frame + ScaleTimeline.PREV_Y];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / ScaleTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime));
- x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX;
- y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY;
- }
- if (alpha == 1) {
- bone.scaleX = x;
- bone.scaleY = y;
- }
- else {
- var bx = 0, by = 0;
- if (pose == MixPose.setup) {
- bx = bone.data.scaleX;
- by = bone.data.scaleY;
- }
- else {
- bx = bone.scaleX;
- by = bone.scaleY;
- }
- if (direction == MixDirection.out) {
- x = Math.abs(x) * core.MathUtils.signum(bx);
- y = Math.abs(y) * core.MathUtils.signum(by);
- }
- else {
- bx = Math.abs(bx) * core.MathUtils.signum(x);
- by = Math.abs(by) * core.MathUtils.signum(y);
- }
- bone.scaleX = bx + (x - bx) * alpha;
- bone.scaleY = by + (y - by) * alpha;
- }
- };
- return ScaleTimeline;
- }(TranslateTimeline));
- core.ScaleTimeline = ScaleTimeline;
- var ShearTimeline = (function (_super) {
- __extends(ShearTimeline, _super);
- function ShearTimeline(frameCount) {
- return _super.call(this, frameCount) || this;
- }
- ShearTimeline.prototype.getPropertyId = function () {
- return (TimelineType.shear << 24) + this.boneIndex;
- };
- ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, pose, direction) {
- var frames = this.frames;
- var bone = skeleton.bones[this.boneIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- bone.shearX = bone.data.shearX;
- bone.shearY = bone.data.shearY;
- return;
- case MixPose.current:
- bone.shearX += (bone.data.shearX - bone.shearX) * alpha;
- bone.shearY += (bone.data.shearY - bone.shearY) * alpha;
- }
- return;
- }
- var x = 0, y = 0;
- if (time >= frames[frames.length - ShearTimeline.ENTRIES]) {
- x = frames[frames.length + ShearTimeline.PREV_X];
- y = frames[frames.length + ShearTimeline.PREV_Y];
- }
- else {
- var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES);
- x = frames[frame + ShearTimeline.PREV_X];
- y = frames[frame + ShearTimeline.PREV_Y];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / ShearTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime));
- x = x + (frames[frame + ShearTimeline.X] - x) * percent;
- y = y + (frames[frame + ShearTimeline.Y] - y) * percent;
- }
- if (pose == MixPose.setup) {
- bone.shearX = bone.data.shearX + x * alpha;
- bone.shearY = bone.data.shearY + y * alpha;
- }
- else {
- bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha;
- bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha;
- }
- };
- return ShearTimeline;
- }(TranslateTimeline));
- core.ShearTimeline = ShearTimeline;
- var ColorTimeline = (function (_super) {
- __extends(ColorTimeline, _super);
- function ColorTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES);
- return _this;
- }
- ColorTimeline.prototype.getPropertyId = function () {
- return (TimelineType.color << 24) + this.slotIndex;
- };
- ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) {
- frameIndex *= ColorTimeline.ENTRIES;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + ColorTimeline.R] = r;
- this.frames[frameIndex + ColorTimeline.G] = g;
- this.frames[frameIndex + ColorTimeline.B] = b;
- this.frames[frameIndex + ColorTimeline.A] = a;
- };
- ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, pose, direction) {
- var slot = skeleton.slots[this.slotIndex];
- var frames = this.frames;
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- slot.color.setFromColor(slot.data.color);
- return;
- case MixPose.current:
- var color = slot.color, setup = slot.data.color;
- color.add((setup.r - color.r) * alpha, (setup.g - color.g) * alpha, (setup.b - color.b) * alpha, (setup.a - color.a) * alpha);
- }
- return;
- }
- var r = 0, g = 0, b = 0, a = 0;
- if (time >= frames[frames.length - ColorTimeline.ENTRIES]) {
- var i = frames.length;
- r = frames[i + ColorTimeline.PREV_R];
- g = frames[i + ColorTimeline.PREV_G];
- b = frames[i + ColorTimeline.PREV_B];
- a = frames[i + ColorTimeline.PREV_A];
- }
- else {
- var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES);
- r = frames[frame + ColorTimeline.PREV_R];
- g = frames[frame + ColorTimeline.PREV_G];
- b = frames[frame + ColorTimeline.PREV_B];
- a = frames[frame + ColorTimeline.PREV_A];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / ColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime));
- r += (frames[frame + ColorTimeline.R] - r) * percent;
- g += (frames[frame + ColorTimeline.G] - g) * percent;
- b += (frames[frame + ColorTimeline.B] - b) * percent;
- a += (frames[frame + ColorTimeline.A] - a) * percent;
- }
- if (alpha == 1)
- slot.color.set(r, g, b, a);
- else {
- var color = slot.color;
- if (pose == MixPose.setup)
- color.setFromColor(slot.data.color);
- color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha);
- }
- };
- ColorTimeline.ENTRIES = 5;
- ColorTimeline.PREV_TIME = -5;
- ColorTimeline.PREV_R = -4;
- ColorTimeline.PREV_G = -3;
- ColorTimeline.PREV_B = -2;
- ColorTimeline.PREV_A = -1;
- ColorTimeline.R = 1;
- ColorTimeline.G = 2;
- ColorTimeline.B = 3;
- ColorTimeline.A = 4;
- return ColorTimeline;
- }(CurveTimeline));
- core.ColorTimeline = ColorTimeline;
- var TwoColorTimeline = (function (_super) {
- __extends(TwoColorTimeline, _super);
- function TwoColorTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES);
- return _this;
- }
- TwoColorTimeline.prototype.getPropertyId = function () {
- return (TimelineType.twoColor << 24) + this.slotIndex;
- };
- TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) {
- frameIndex *= TwoColorTimeline.ENTRIES;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + TwoColorTimeline.R] = r;
- this.frames[frameIndex + TwoColorTimeline.G] = g;
- this.frames[frameIndex + TwoColorTimeline.B] = b;
- this.frames[frameIndex + TwoColorTimeline.A] = a;
- this.frames[frameIndex + TwoColorTimeline.R2] = r2;
- this.frames[frameIndex + TwoColorTimeline.G2] = g2;
- this.frames[frameIndex + TwoColorTimeline.B2] = b2;
- };
- TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, pose, direction) {
- var slot = skeleton.slots[this.slotIndex];
- var frames = this.frames;
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- slot.color.setFromColor(slot.data.color);
- slot.darkColor.setFromColor(slot.data.darkColor);
- return;
- case MixPose.current:
- var light = slot.color, dark = slot.darkColor, setupLight = slot.data.color, setupDark = slot.data.darkColor;
- light.add((setupLight.r - light.r) * alpha, (setupLight.g - light.g) * alpha, (setupLight.b - light.b) * alpha, (setupLight.a - light.a) * alpha);
- dark.add((setupDark.r - dark.r) * alpha, (setupDark.g - dark.g) * alpha, (setupDark.b - dark.b) * alpha, 0);
- }
- return;
- }
- var r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0;
- if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) {
- var i = frames.length;
- r = frames[i + TwoColorTimeline.PREV_R];
- g = frames[i + TwoColorTimeline.PREV_G];
- b = frames[i + TwoColorTimeline.PREV_B];
- a = frames[i + TwoColorTimeline.PREV_A];
- r2 = frames[i + TwoColorTimeline.PREV_R2];
- g2 = frames[i + TwoColorTimeline.PREV_G2];
- b2 = frames[i + TwoColorTimeline.PREV_B2];
- }
- else {
- var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES);
- r = frames[frame + TwoColorTimeline.PREV_R];
- g = frames[frame + TwoColorTimeline.PREV_G];
- b = frames[frame + TwoColorTimeline.PREV_B];
- a = frames[frame + TwoColorTimeline.PREV_A];
- r2 = frames[frame + TwoColorTimeline.PREV_R2];
- g2 = frames[frame + TwoColorTimeline.PREV_G2];
- b2 = frames[frame + TwoColorTimeline.PREV_B2];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / TwoColorTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime));
- r += (frames[frame + TwoColorTimeline.R] - r) * percent;
- g += (frames[frame + TwoColorTimeline.G] - g) * percent;
- b += (frames[frame + TwoColorTimeline.B] - b) * percent;
- a += (frames[frame + TwoColorTimeline.A] - a) * percent;
- r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent;
- g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent;
- b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent;
- }
- if (alpha == 1) {
- slot.color.set(r, g, b, a);
- slot.darkColor.set(r2, g2, b2, 1);
- }
- else {
- var light = slot.color, dark = slot.darkColor;
- if (pose == MixPose.setup) {
- light.setFromColor(slot.data.color);
- dark.setFromColor(slot.data.darkColor);
- }
- light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha);
- dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0);
- }
- };
- TwoColorTimeline.ENTRIES = 8;
- TwoColorTimeline.PREV_TIME = -8;
- TwoColorTimeline.PREV_R = -7;
- TwoColorTimeline.PREV_G = -6;
- TwoColorTimeline.PREV_B = -5;
- TwoColorTimeline.PREV_A = -4;
- TwoColorTimeline.PREV_R2 = -3;
- TwoColorTimeline.PREV_G2 = -2;
- TwoColorTimeline.PREV_B2 = -1;
- TwoColorTimeline.R = 1;
- TwoColorTimeline.G = 2;
- TwoColorTimeline.B = 3;
- TwoColorTimeline.A = 4;
- TwoColorTimeline.R2 = 5;
- TwoColorTimeline.G2 = 6;
- TwoColorTimeline.B2 = 7;
- return TwoColorTimeline;
- }(CurveTimeline));
- core.TwoColorTimeline = TwoColorTimeline;
- var AttachmentTimeline = (function () {
- function AttachmentTimeline(frameCount) {
- this.frames = core.Utils.newFloatArray(frameCount);
- this.attachmentNames = new Array(frameCount);
- }
- AttachmentTimeline.prototype.getPropertyId = function () {
- return (TimelineType.attachment << 24) + this.slotIndex;
- };
- AttachmentTimeline.prototype.getFrameCount = function () {
- return this.frames.length;
- };
- AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) {
- this.frames[frameIndex] = time;
- this.attachmentNames[frameIndex] = attachmentName;
- };
- AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, pose, direction) {
- var slot = skeleton.slots[this.slotIndex];
- if (direction == MixDirection.out && pose == MixPose.setup) {
- var attachmentName_1 = slot.data.attachmentName;
- slot.setAttachment(attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1));
- return;
- }
- var frames = this.frames;
- if (time < frames[0]) {
- if (pose == MixPose.setup) {
- var attachmentName_2 = slot.data.attachmentName;
- slot.setAttachment(attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2));
- }
- return;
- }
- var frameIndex = 0;
- if (time >= frames[frames.length - 1])
- frameIndex = frames.length - 1;
- else
- frameIndex = Animation.binarySearch(frames, time, 1) - 1;
- var attachmentName = this.attachmentNames[frameIndex];
- skeleton.slots[this.slotIndex]
- .setAttachment(attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName));
- };
- return AttachmentTimeline;
- }());
- core.AttachmentTimeline = AttachmentTimeline;
- var zeros = null;
- var DeformTimeline = (function (_super) {
- __extends(DeformTimeline, _super);
- function DeformTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount);
- _this.frameVertices = new Array(frameCount);
- if (zeros == null)
- zeros = core.Utils.newFloatArray(64);
- return _this;
- }
- DeformTimeline.prototype.getPropertyId = function () {
- return (TimelineType.deform << 27) + +this.attachment.id + this.slotIndex;
- };
- DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) {
- this.frames[frameIndex] = time;
- this.frameVertices[frameIndex] = vertices;
- };
- DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- var slot = skeleton.slots[this.slotIndex];
- var slotAttachment = slot.getAttachment();
- if (!(slotAttachment instanceof core.VertexAttachment) || !slotAttachment.applyDeform(this.attachment))
- return;
- var verticesArray = slot.attachmentVertices;
- if (verticesArray.length == 0)
- alpha = 1;
- var frameVertices = this.frameVertices;
- var vertexCount = frameVertices[0].length;
- var frames = this.frames;
- if (time < frames[0]) {
- var vertexAttachment = slotAttachment;
- switch (pose) {
- case MixPose.setup:
- verticesArray.length = 0;
- return;
- case MixPose.current:
- if (alpha == 1) {
- verticesArray.length = 0;
- break;
- }
- var vertices_1 = core.Utils.setArraySize(verticesArray, vertexCount);
- if (vertexAttachment.bones == null) {
- var setupVertices = vertexAttachment.vertices;
- for (var i = 0; i < vertexCount; i++)
- vertices_1[i] += (setupVertices[i] - vertices_1[i]) * alpha;
- }
- else {
- alpha = 1 - alpha;
- for (var i = 0; i < vertexCount; i++)
- vertices_1[i] *= alpha;
- }
- }
- return;
- }
- var vertices = core.Utils.setArraySize(verticesArray, vertexCount);
- if (time >= frames[frames.length - 1]) {
- var lastVertices = frameVertices[frames.length - 1];
- if (alpha == 1) {
- core.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount);
- }
- else if (pose == MixPose.setup) {
- var vertexAttachment = slotAttachment;
- if (vertexAttachment.bones == null) {
- var setupVertices = vertexAttachment.vertices;
- for (var i = 0; i < vertexCount; i++) {
- var setup = setupVertices[i];
- vertices[i] = setup + (lastVertices[i] - setup) * alpha;
- }
- }
- else {
- for (var i = 0; i < vertexCount; i++)
- vertices[i] = lastVertices[i] * alpha;
- }
- }
- else {
- for (var i = 0; i < vertexCount; i++)
- vertices[i] += (lastVertices[i] - vertices[i]) * alpha;
- }
- return;
- }
- var frame = Animation.binarySearch(frames, time);
- var prevVertices = frameVertices[frame - 1];
- var nextVertices = frameVertices[frame];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));
- if (alpha == 1) {
- for (var i = 0; i < vertexCount; i++) {
- var prev = prevVertices[i];
- vertices[i] = prev + (nextVertices[i] - prev) * percent;
- }
- }
- else if (pose == MixPose.setup) {
- var vertexAttachment = slotAttachment;
- if (vertexAttachment.bones == null) {
- var setupVertices = vertexAttachment.vertices;
- for (var i = 0; i < vertexCount; i++) {
- var prev = prevVertices[i], setup = setupVertices[i];
- vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;
- }
- }
- else {
- for (var i = 0; i < vertexCount; i++) {
- var prev = prevVertices[i];
- vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;
- }
- }
- }
- else {
- for (var i = 0; i < vertexCount; i++) {
- var prev = prevVertices[i];
- vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;
- }
- }
- };
- return DeformTimeline;
- }(CurveTimeline));
- core.DeformTimeline = DeformTimeline;
- var EventTimeline = (function () {
- function EventTimeline(frameCount) {
- this.frames = core.Utils.newFloatArray(frameCount);
- this.events = new Array(frameCount);
- }
- EventTimeline.prototype.getPropertyId = function () {
- return TimelineType.event << 24;
- };
- EventTimeline.prototype.getFrameCount = function () {
- return this.frames.length;
- };
- EventTimeline.prototype.setFrame = function (frameIndex, event) {
- this.frames[frameIndex] = event.time;
- this.events[frameIndex] = event;
- };
- EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- if (firedEvents == null)
- return;
- var frames = this.frames;
- var frameCount = this.frames.length;
- if (lastTime > time) {
- this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, pose, direction);
- lastTime = -1;
- }
- else if (lastTime >= frames[frameCount - 1])
- return;
- if (time < frames[0])
- return;
- var frame = 0;
- if (lastTime < frames[0])
- frame = 0;
- else {
- frame = Animation.binarySearch(frames, lastTime);
- var frameTime = frames[frame];
- while (frame > 0) {
- if (frames[frame - 1] != frameTime)
- break;
- frame--;
- }
- }
- for (; frame < frameCount && time >= frames[frame]; frame++)
- firedEvents.push(this.events[frame]);
- };
- return EventTimeline;
- }());
- core.EventTimeline = EventTimeline;
- var DrawOrderTimeline = (function () {
- function DrawOrderTimeline(frameCount) {
- this.frames = core.Utils.newFloatArray(frameCount);
- this.drawOrders = new Array(frameCount);
- }
- DrawOrderTimeline.prototype.getPropertyId = function () {
- return TimelineType.drawOrder << 24;
- };
- DrawOrderTimeline.prototype.getFrameCount = function () {
- return this.frames.length;
- };
- DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) {
- this.frames[frameIndex] = time;
- this.drawOrders[frameIndex] = drawOrder;
- };
- DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- var drawOrder = skeleton.drawOrder;
- var slots = skeleton.slots;
- if (direction == MixDirection.out && pose == MixPose.setup) {
- core.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length);
- return;
- }
- var frames = this.frames;
- if (time < frames[0]) {
- if (pose == MixPose.setup)
- core.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length);
- return;
- }
- var frame = 0;
- if (time >= frames[frames.length - 1])
- frame = frames.length - 1;
- else
- frame = Animation.binarySearch(frames, time) - 1;
- var drawOrderToSetupIndex = this.drawOrders[frame];
- if (drawOrderToSetupIndex == null)
- core.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length);
- else {
- for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++)
- drawOrder[i] = slots[drawOrderToSetupIndex[i]];
- }
- };
- return DrawOrderTimeline;
- }());
- core.DrawOrderTimeline = DrawOrderTimeline;
- var IkConstraintTimeline = (function (_super) {
- __extends(IkConstraintTimeline, _super);
- function IkConstraintTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES);
- return _this;
- }
- IkConstraintTimeline.prototype.getPropertyId = function () {
- return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex;
- };
- IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection) {
- frameIndex *= IkConstraintTimeline.ENTRIES;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + IkConstraintTimeline.MIX] = mix;
- this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection;
- };
- IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- var frames = this.frames;
- var constraint = skeleton.ikConstraints[this.ikConstraintIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- constraint.mix = constraint.data.mix;
- constraint.bendDirection = constraint.data.bendDirection;
- return;
- case MixPose.current:
- constraint.mix += (constraint.data.mix - constraint.mix) * alpha;
- constraint.bendDirection = constraint.data.bendDirection;
- }
- return;
- }
- if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) {
- if (pose == MixPose.setup) {
- constraint.mix = constraint.data.mix + (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha;
- constraint.bendDirection = direction == MixDirection.out ? constraint.data.bendDirection
- : frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION];
- }
- else {
- constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha;
- if (direction == MixDirection.in)
- constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION];
- }
- return;
- }
- var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES);
- var mix = frames[frame + IkConstraintTimeline.PREV_MIX];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / IkConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime));
- if (pose == MixPose.setup) {
- constraint.mix = constraint.data.mix + (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha;
- constraint.bendDirection = direction == MixDirection.out ? constraint.data.bendDirection : frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION];
- }
- else {
- constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha;
- if (direction == MixDirection.in)
- constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION];
- }
- };
- IkConstraintTimeline.ENTRIES = 3;
- IkConstraintTimeline.PREV_TIME = -3;
- IkConstraintTimeline.PREV_MIX = -2;
- IkConstraintTimeline.PREV_BEND_DIRECTION = -1;
- IkConstraintTimeline.MIX = 1;
- IkConstraintTimeline.BEND_DIRECTION = 2;
- return IkConstraintTimeline;
- }(CurveTimeline));
- core.IkConstraintTimeline = IkConstraintTimeline;
- var TransformConstraintTimeline = (function (_super) {
- __extends(TransformConstraintTimeline, _super);
- function TransformConstraintTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES);
- return _this;
- }
- TransformConstraintTimeline.prototype.getPropertyId = function () {
- return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex;
- };
- TransformConstraintTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix, scaleMix, shearMix) {
- frameIndex *= TransformConstraintTimeline.ENTRIES;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix;
- this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix;
- this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix;
- this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix;
- };
- TransformConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- var frames = this.frames;
- var constraint = skeleton.transformConstraints[this.transformConstraintIndex];
- if (time < frames[0]) {
- var data = constraint.data;
- switch (pose) {
- case MixPose.setup:
- constraint.rotateMix = data.rotateMix;
- constraint.translateMix = data.translateMix;
- constraint.scaleMix = data.scaleMix;
- constraint.shearMix = data.shearMix;
- return;
- case MixPose.current:
- constraint.rotateMix += (data.rotateMix - constraint.rotateMix) * alpha;
- constraint.translateMix += (data.translateMix - constraint.translateMix) * alpha;
- constraint.scaleMix += (data.scaleMix - constraint.scaleMix) * alpha;
- constraint.shearMix += (data.shearMix - constraint.shearMix) * alpha;
- }
- return;
- }
- var rotate = 0, translate = 0, scale = 0, shear = 0;
- if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) {
- var i = frames.length;
- rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE];
- translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE];
- scale = frames[i + TransformConstraintTimeline.PREV_SCALE];
- shear = frames[i + TransformConstraintTimeline.PREV_SHEAR];
- }
- else {
- var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES);
- rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE];
- translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE];
- scale = frames[frame + TransformConstraintTimeline.PREV_SCALE];
- shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / TransformConstraintTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime));
- rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent;
- translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent;
- scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent;
- shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent;
- }
- if (pose == MixPose.setup) {
- var data = constraint.data;
- constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha;
- constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha;
- constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha;
- constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha;
- }
- else {
- constraint.rotateMix += (rotate - constraint.rotateMix) * alpha;
- constraint.translateMix += (translate - constraint.translateMix) * alpha;
- constraint.scaleMix += (scale - constraint.scaleMix) * alpha;
- constraint.shearMix += (shear - constraint.shearMix) * alpha;
- }
- };
- TransformConstraintTimeline.ENTRIES = 5;
- TransformConstraintTimeline.PREV_TIME = -5;
- TransformConstraintTimeline.PREV_ROTATE = -4;
- TransformConstraintTimeline.PREV_TRANSLATE = -3;
- TransformConstraintTimeline.PREV_SCALE = -2;
- TransformConstraintTimeline.PREV_SHEAR = -1;
- TransformConstraintTimeline.ROTATE = 1;
- TransformConstraintTimeline.TRANSLATE = 2;
- TransformConstraintTimeline.SCALE = 3;
- TransformConstraintTimeline.SHEAR = 4;
- return TransformConstraintTimeline;
- }(CurveTimeline));
- core.TransformConstraintTimeline = TransformConstraintTimeline;
- var PathConstraintPositionTimeline = (function (_super) {
- __extends(PathConstraintPositionTimeline, _super);
- function PathConstraintPositionTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES);
- return _this;
- }
- PathConstraintPositionTimeline.prototype.getPropertyId = function () {
- return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex;
- };
- PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) {
- frameIndex *= PathConstraintPositionTimeline.ENTRIES;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value;
- };
- PathConstraintPositionTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- var frames = this.frames;
- var constraint = skeleton.pathConstraints[this.pathConstraintIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- constraint.position = constraint.data.position;
- return;
- case MixPose.current:
- constraint.position += (constraint.data.position - constraint.position) * alpha;
- }
- return;
- }
- var position = 0;
- if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES])
- position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE];
- else {
- var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES);
- position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / PathConstraintPositionTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime));
- position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent;
- }
- if (pose == MixPose.setup)
- constraint.position = constraint.data.position + (position - constraint.data.position) * alpha;
- else
- constraint.position += (position - constraint.position) * alpha;
- };
- PathConstraintPositionTimeline.ENTRIES = 2;
- PathConstraintPositionTimeline.PREV_TIME = -2;
- PathConstraintPositionTimeline.PREV_VALUE = -1;
- PathConstraintPositionTimeline.VALUE = 1;
- return PathConstraintPositionTimeline;
- }(CurveTimeline));
- core.PathConstraintPositionTimeline = PathConstraintPositionTimeline;
- var PathConstraintSpacingTimeline = (function (_super) {
- __extends(PathConstraintSpacingTimeline, _super);
- function PathConstraintSpacingTimeline(frameCount) {
- return _super.call(this, frameCount) || this;
- }
- PathConstraintSpacingTimeline.prototype.getPropertyId = function () {
- return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex;
- };
- PathConstraintSpacingTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- var frames = this.frames;
- var constraint = skeleton.pathConstraints[this.pathConstraintIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- constraint.spacing = constraint.data.spacing;
- return;
- case MixPose.current:
- constraint.spacing += (constraint.data.spacing - constraint.spacing) * alpha;
- }
- return;
- }
- var spacing = 0;
- if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES])
- spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE];
- else {
- var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES);
- spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / PathConstraintSpacingTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime));
- spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent;
- }
- if (pose == MixPose.setup)
- constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha;
- else
- constraint.spacing += (spacing - constraint.spacing) * alpha;
- };
- return PathConstraintSpacingTimeline;
- }(PathConstraintPositionTimeline));
- core.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline;
- var PathConstraintMixTimeline = (function (_super) {
- __extends(PathConstraintMixTimeline, _super);
- function PathConstraintMixTimeline(frameCount) {
- var _this = _super.call(this, frameCount) || this;
- _this.frames = core.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES);
- return _this;
- }
- PathConstraintMixTimeline.prototype.getPropertyId = function () {
- return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex;
- };
- PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) {
- frameIndex *= PathConstraintMixTimeline.ENTRIES;
- this.frames[frameIndex] = time;
- this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix;
- this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix;
- };
- PathConstraintMixTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, pose, direction) {
- var frames = this.frames;
- var constraint = skeleton.pathConstraints[this.pathConstraintIndex];
- if (time < frames[0]) {
- switch (pose) {
- case MixPose.setup:
- constraint.rotateMix = constraint.data.rotateMix;
- constraint.translateMix = constraint.data.translateMix;
- return;
- case MixPose.current:
- constraint.rotateMix += (constraint.data.rotateMix - constraint.rotateMix) * alpha;
- constraint.translateMix += (constraint.data.translateMix - constraint.translateMix) * alpha;
- }
- return;
- }
- var rotate = 0, translate = 0;
- if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) {
- rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE];
- translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE];
- }
- else {
- var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES);
- rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE];
- translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE];
- var frameTime = frames[frame];
- var percent = this.getCurvePercent(frame / PathConstraintMixTimeline.ENTRIES - 1, 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime));
- rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent;
- translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent;
- }
- if (pose == MixPose.setup) {
- constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha;
- constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha;
- }
- else {
- constraint.rotateMix += (rotate - constraint.rotateMix) * alpha;
- constraint.translateMix += (translate - constraint.translateMix) * alpha;
- }
- };
- PathConstraintMixTimeline.ENTRIES = 3;
- PathConstraintMixTimeline.PREV_TIME = -3;
- PathConstraintMixTimeline.PREV_ROTATE = -2;
- PathConstraintMixTimeline.PREV_TRANSLATE = -1;
- PathConstraintMixTimeline.ROTATE = 1;
- PathConstraintMixTimeline.TRANSLATE = 2;
- return PathConstraintMixTimeline;
- }(CurveTimeline));
- core.PathConstraintMixTimeline = PathConstraintMixTimeline;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var AnimationState = (function () {
- function AnimationState(data) {
- this.tracks = new Array();
- this.events = new Array();
- this.listeners = new Array();
- this.queue = new EventQueue(this);
- this.propertyIDs = new core.IntSet();
- this.mixingTo = new Array();
- this.animationsChanged = false;
- this.timeScale = 1;
- this.trackEntryPool = new core.Pool(function () { return new TrackEntry(); });
- this.data = data;
- }
- AnimationState.prototype.update = function (delta) {
- delta *= this.timeScale;
- var tracks = this.tracks;
- for (var i = 0, n = tracks.length; i < n; i++) {
- var current = tracks[i];
- if (current == null)
- continue;
- current.animationLast = current.nextAnimationLast;
- current.trackLast = current.nextTrackLast;
- var currentDelta = delta * current.timeScale;
- if (current.delay > 0) {
- current.delay -= currentDelta;
- if (current.delay > 0)
- continue;
- currentDelta = -current.delay;
- current.delay = 0;
- }
- var next = current.next;
- if (next != null) {
- var nextTime = current.trackLast - next.delay;
- if (nextTime >= 0) {
- next.delay = 0;
- next.trackTime = nextTime + delta * next.timeScale;
- current.trackTime += currentDelta;
- this.setCurrent(i, next, true);
- while (next.mixingFrom != null) {
- next.mixTime += currentDelta;
- next = next.mixingFrom;
- }
- continue;
- }
- }
- else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
- tracks[i] = null;
- this.queue.end(current);
- this.disposeNext(current);
- continue;
- }
- if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) {
- var from = current.mixingFrom;
- current.mixingFrom = null;
- while (from != null) {
- this.queue.end(from);
- from = from.mixingFrom;
- }
- }
- current.trackTime += currentDelta;
- }
- this.queue.drain();
- };
- AnimationState.prototype.updateMixingFrom = function (to, delta) {
- var from = to.mixingFrom;
- if (from == null)
- return true;
- var finished = this.updateMixingFrom(from, delta);
- if (to.mixTime > 0 && (to.mixTime >= to.mixDuration || to.timeScale == 0)) {
- if (from.totalAlpha == 0) {
- to.mixingFrom = from.mixingFrom;
- to.interruptAlpha = from.interruptAlpha;
- this.queue.end(from);
- }
- return finished;
- }
- from.animationLast = from.nextAnimationLast;
- from.trackLast = from.nextTrackLast;
- from.trackTime += delta * from.timeScale;
- to.mixTime += delta * to.timeScale;
- return false;
- };
- AnimationState.prototype.apply = function (skeleton) {
- if (skeleton == null)
- throw new Error("skeleton cannot be null.");
- if (this.animationsChanged)
- this._animationsChanged();
- var events = this.events;
- var tracks = this.tracks;
- var applied = false;
- for (var i = 0, n = tracks.length; i < n; i++) {
- var current = tracks[i];
- if (current == null || current.delay > 0)
- continue;
- applied = true;
- var currentPose = i == 0 ? core.MixPose.current : core.MixPose.currentLayered;
- var mix = current.alpha;
- if (current.mixingFrom != null)
- mix *= this.applyMixingFrom(current, skeleton, currentPose);
- else if (current.trackTime >= current.trackEnd && current.next == null)
- mix = 0;
- var animationLast = current.animationLast, animationTime = current.getAnimationTime();
- var timelineCount = current.animation.timelines.length;
- var timelines = current.animation.timelines;
- if (mix == 1) {
- for (var ii = 0; ii < timelineCount; ii++)
- timelines[ii].apply(skeleton, animationLast, animationTime, events, 1, core.MixPose.setup, core.MixDirection.in);
- }
- else {
- var timelineData = current.timelineData;
- var firstFrame = current.timelinesRotation.length == 0;
- if (firstFrame)
- core.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null);
- var timelinesRotation = current.timelinesRotation;
- for (var ii = 0; ii < timelineCount; ii++) {
- var timeline = timelines[ii];
- var pose = timelineData[ii] >= AnimationState.FIRST ? core.MixPose.setup : currentPose;
- if (timeline instanceof core.RotateTimeline) {
- this.applyRotateTimeline(timeline, skeleton, animationTime, mix, pose, timelinesRotation, ii << 1, firstFrame);
- }
- else {
- core.Utils.webkit602BugfixHelper(mix, pose);
- timeline.apply(skeleton, animationLast, animationTime, events, mix, pose, core.MixDirection.in);
- }
- }
- }
- this.queueEvents(current, animationTime);
- events.length = 0;
- current.nextAnimationLast = animationTime;
- current.nextTrackLast = current.trackTime;
- }
- this.queue.drain();
- return applied;
- };
- AnimationState.prototype.applyMixingFrom = function (to, skeleton, currentPose) {
- var from = to.mixingFrom;
- if (from.mixingFrom != null)
- this.applyMixingFrom(from, skeleton, currentPose);
- var mix = 0;
- if (to.mixDuration == 0) {
- mix = 1;
- currentPose = core.MixPose.setup;
- }
- else {
- mix = to.mixTime / to.mixDuration;
- if (mix > 1)
- mix = 1;
- }
- var events = mix < from.eventThreshold ? this.events : null;
- var attachments = mix < from.attachmentThreshold, drawOrder = mix < from.drawOrderThreshold;
- var animationLast = from.animationLast, animationTime = from.getAnimationTime();
- var timelineCount = from.animation.timelines.length;
- var timelines = from.animation.timelines;
- var timelineData = from.timelineData;
- var timelineDipMix = from.timelineDipMix;
- var firstFrame = from.timelinesRotation.length == 0;
- if (firstFrame)
- core.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null);
- var timelinesRotation = from.timelinesRotation;
- var pose;
- var alphaDip = from.alpha * to.interruptAlpha, alphaMix = alphaDip * (1 - mix), alpha = 0;
- from.totalAlpha = 0;
- for (var i = 0; i < timelineCount; i++) {
- var timeline = timelines[i];
- switch (timelineData[i]) {
- case AnimationState.SUBSEQUENT:
- if (!attachments && timeline instanceof core.AttachmentTimeline)
- continue;
- if (!drawOrder && timeline instanceof core.DrawOrderTimeline)
- continue;
- pose = currentPose;
- alpha = alphaMix;
- break;
- case AnimationState.FIRST:
- pose = core.MixPose.setup;
- alpha = alphaMix;
- break;
- case AnimationState.DIP:
- pose = core.MixPose.setup;
- alpha = alphaDip;
- break;
- default:
- pose = core.MixPose.setup;
- alpha = alphaDip;
- var dipMix = timelineDipMix[i];
- alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration);
- break;
- }
- from.totalAlpha += alpha;
- if (timeline instanceof core.RotateTimeline)
- this.applyRotateTimeline(timeline, skeleton, animationTime, alpha, pose, timelinesRotation, i << 1, firstFrame);
- else {
- timeline.apply(skeleton, animationLast, animationTime, events, alpha, pose, core.MixDirection.out);
- }
- }
- if (to.mixDuration > 0)
- this.queueEvents(from, animationTime);
- this.events.length = 0;
- from.nextAnimationLast = animationTime;
- from.nextTrackLast = from.trackTime;
- return mix;
- };
- AnimationState.prototype.applyRotateTimeline = function (timeline, skeleton, time, alpha, pose, timelinesRotation, i, firstFrame) {
- if (firstFrame)
- timelinesRotation[i] = 0;
- if (alpha == 1) {
- timeline.apply(skeleton, 0, time, null, 1, pose, core.MixDirection.in);
- return;
- }
- var rotateTimeline = timeline;
- var frames = rotateTimeline.frames;
- var bone = skeleton.bones[rotateTimeline.boneIndex];
- if (time < frames[0]) {
- if (pose == core.MixPose.setup)
- bone.rotation = bone.data.rotation;
- return;
- }
- var r2 = 0;
- if (time >= frames[frames.length - core.RotateTimeline.ENTRIES])
- r2 = bone.data.rotation + frames[frames.length + core.RotateTimeline.PREV_ROTATION];
- else {
- var frame = core.Animation.binarySearch(frames, time, core.RotateTimeline.ENTRIES);
- var prevRotation = frames[frame + core.RotateTimeline.PREV_ROTATION];
- var frameTime = frames[frame];
- var percent = rotateTimeline.getCurvePercent((frame >> 1) - 1, 1 - (time - frameTime) / (frames[frame + core.RotateTimeline.PREV_TIME] - frameTime));
- r2 = frames[frame + core.RotateTimeline.ROTATION] - prevRotation;
- r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360;
- r2 = prevRotation + r2 * percent + bone.data.rotation;
- r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360;
- }
- var r1 = pose == core.MixPose.setup ? bone.data.rotation : bone.rotation;
- var total = 0, diff = r2 - r1;
- if (diff == 0) {
- total = timelinesRotation[i];
- }
- else {
- diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360;
- var lastTotal = 0, lastDiff = 0;
- if (firstFrame) {
- lastTotal = 0;
- lastDiff = diff;
- }
- else {
- lastTotal = timelinesRotation[i];
- lastDiff = timelinesRotation[i + 1];
- }
- var current = diff > 0, dir = lastTotal >= 0;
- if (core.MathUtils.signum(lastDiff) != core.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) {
- if (Math.abs(lastTotal) > 180)
- lastTotal += 360 * core.MathUtils.signum(lastTotal);
- dir = current;
- }
- total = diff + lastTotal - lastTotal % 360;
- if (dir != current)
- total += 360 * core.MathUtils.signum(lastTotal);
- timelinesRotation[i] = total;
- }
- timelinesRotation[i + 1] = diff;
- r1 += total * alpha;
- bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360;
- };
- AnimationState.prototype.queueEvents = function (entry, animationTime) {
- var animationStart = entry.animationStart, animationEnd = entry.animationEnd;
- var duration = animationEnd - animationStart;
- var trackLastWrapped = entry.trackLast % duration;
- var events = this.events;
- var i = 0, n = events.length;
- for (; i < n; i++) {
- var event_1 = events[i];
- if (event_1.time < trackLastWrapped)
- break;
- if (event_1.time > animationEnd)
- continue;
- this.queue.event(entry, event_1);
- }
- if (entry.loop ? (trackLastWrapped > entry.trackTime % duration)
- : (animationTime >= animationEnd && entry.animationLast < animationEnd)) {
- this.queue.complete(entry);
- }
- for (; i < n; i++) {
- var event_2 = events[i];
- if (event_2.time < animationStart)
- continue;
- this.queue.event(entry, events[i]);
- }
- };
- AnimationState.prototype.clearTracks = function () {
- var oldDrainDisabled = this.queue.drainDisabled;
- this.queue.drainDisabled = true;
- for (var i = 0, n = this.tracks.length; i < n; i++)
- this.clearTrack(i);
- this.tracks.length = 0;
- this.queue.drainDisabled = oldDrainDisabled;
- this.queue.drain();
- };
- AnimationState.prototype.clearTrack = function (trackIndex) {
- if (trackIndex >= this.tracks.length)
- return;
- var current = this.tracks[trackIndex];
- if (current == null)
- return;
- this.queue.end(current);
- this.disposeNext(current);
- var entry = current;
- while (true) {
- var from = entry.mixingFrom;
- if (from == null)
- break;
- this.queue.end(from);
- entry.mixingFrom = null;
- entry = from;
- }
- this.tracks[current.trackIndex] = null;
- this.queue.drain();
- };
- AnimationState.prototype.setCurrent = function (index, current, interrupt) {
- var from = this.expandToIndex(index);
- this.tracks[index] = current;
- if (from != null) {
- if (interrupt)
- this.queue.interrupt(from);
- current.mixingFrom = from;
- current.mixTime = 0;
- if (from.mixingFrom != null && from.mixDuration > 0)
- current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration);
- from.timelinesRotation.length = 0;
- }
- this.queue.start(current);
- };
- AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {
- var animation = this.data.skeletonData.findAnimation(animationName);
- if (animation == null)
- throw new Error("Animation not found: " + animationName);
- return this.setAnimationWith(trackIndex, animation, loop);
- };
- AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) {
- if (animation == null)
- throw new Error("animation cannot be null.");
- var interrupt = true;
- var current = this.expandToIndex(trackIndex);
- if (current != null) {
- if (current.nextTrackLast == -1) {
- this.tracks[trackIndex] = current.mixingFrom;
- this.queue.interrupt(current);
- this.queue.end(current);
- this.disposeNext(current);
- current = current.mixingFrom;
- interrupt = false;
- }
- else
- this.disposeNext(current);
- }
- var entry = this.trackEntry(trackIndex, animation, loop, current);
- this.setCurrent(trackIndex, entry, interrupt);
- this.queue.drain();
- return entry;
- };
- AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) {
- var animation = this.data.skeletonData.findAnimation(animationName);
- if (animation == null)
- throw new Error("Animation not found: " + animationName);
- return this.addAnimationWith(trackIndex, animation, loop, delay);
- };
- AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) {
- if (animation == null)
- throw new Error("animation cannot be null.");
- var last = this.expandToIndex(trackIndex);
- if (last != null) {
- while (last.next != null)
- last = last.next;
- }
- var entry = this.trackEntry(trackIndex, animation, loop, last);
- if (last == null) {
- this.setCurrent(trackIndex, entry, true);
- this.queue.drain();
- }
- else {
- last.next = entry;
- if (delay <= 0) {
- var duration = last.animationEnd - last.animationStart;
- if (duration != 0) {
- if (last.loop)
- delay += duration * (1 + ((last.trackTime / duration) | 0));
- else
- delay += duration;
- delay -= this.data.getMix(last.animation, animation);
- }
- else
- delay = 0;
- }
- }
- entry.delay = delay;
- return entry;
- };
- AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) {
- var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false);
- entry.mixDuration = mixDuration;
- entry.trackEnd = mixDuration;
- return entry;
- };
- AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) {
- if (delay <= 0)
- delay -= mixDuration;
- var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay);
- entry.mixDuration = mixDuration;
- entry.trackEnd = mixDuration;
- return entry;
- };
- AnimationState.prototype.setEmptyAnimations = function (mixDuration) {
- var oldDrainDisabled = this.queue.drainDisabled;
- this.queue.drainDisabled = true;
- for (var i = 0, n = this.tracks.length; i < n; i++) {
- var current = this.tracks[i];
- if (current != null)
- this.setEmptyAnimation(current.trackIndex, mixDuration);
- }
- this.queue.drainDisabled = oldDrainDisabled;
- this.queue.drain();
- };
- AnimationState.prototype.expandToIndex = function (index) {
- if (index < this.tracks.length)
- return this.tracks[index];
- core.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null);
- this.tracks.length = index + 1;
- return null;
- };
- AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) {
- var entry = this.trackEntryPool.obtain();
- entry.trackIndex = trackIndex;
- entry.animation = animation;
- entry.loop = loop;
- entry.eventThreshold = 0;
- entry.attachmentThreshold = 0;
- entry.drawOrderThreshold = 0;
- entry.animationStart = 0;
- entry.animationEnd = animation.duration;
- entry.animationLast = -1;
- entry.nextAnimationLast = -1;
- entry.delay = 0;
- entry.trackTime = 0;
- entry.trackLast = -1;
- entry.nextTrackLast = -1;
- entry.trackEnd = Number.MAX_VALUE;
- entry.timeScale = 1;
- entry.alpha = 1;
- entry.interruptAlpha = 1;
- entry.mixTime = 0;
- entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation);
- return entry;
- };
- AnimationState.prototype.disposeNext = function (entry) {
- var next = entry.next;
- while (next != null) {
- this.queue.dispose(next);
- next = next.next;
- }
- entry.next = null;
- };
- AnimationState.prototype._animationsChanged = function () {
- this.animationsChanged = false;
- var propertyIDs = this.propertyIDs;
- propertyIDs.clear();
- var mixingTo = this.mixingTo;
- var lastEntry = null;
- for (var i = 0, n = this.tracks.length; i < n; i++) {
- var entry = this.tracks[i];
- if (entry != null)
- entry.setTimelineData(null, mixingTo, propertyIDs);
- }
- };
- AnimationState.prototype.getCurrent = function (trackIndex) {
- if (trackIndex >= this.tracks.length)
- return null;
- return this.tracks[trackIndex];
- };
- AnimationState.prototype.addListener = function (listener) {
- if (listener == null)
- throw new Error("listener cannot be null.");
- this.listeners.push(listener);
- };
- AnimationState.prototype.removeListener = function (listener) {
- var index = this.listeners.indexOf(listener);
- if (index >= 0)
- this.listeners.splice(index, 1);
- };
- AnimationState.prototype.clearListeners = function () {
- this.listeners.length = 0;
- };
- AnimationState.prototype.clearListenerNotifications = function () {
- this.queue.clear();
- };
- AnimationState.prototype.setAnimationByName = function (trackIndex, animationName, loop) {
- if (!AnimationState.deprecatedWarning1) {
- AnimationState.deprecatedWarning1 = true;
- console.warn("Deprecation Warning: AnimationState.setAnimationByName is deprecated, please use setAnimation from now on.");
- }
- this.setAnimation(trackIndex, animationName, loop);
- };
- AnimationState.prototype.addAnimationByName = function (trackIndex, animationName, loop, delay) {
- if (!AnimationState.deprecatedWarning2) {
- AnimationState.deprecatedWarning2 = true;
- console.warn("Deprecation Warning: AnimationState.addAnimationByName is deprecated, please use addAnimation from now on.");
- }
- this.addAnimation(trackIndex, animationName, loop, delay);
- };
- AnimationState.prototype.hasAnimation = function (animationName) {
- var animation = this.data.skeletonData.findAnimation(animationName);
- return animation !== null;
- };
- AnimationState.prototype.hasAnimationByName = function (animationName) {
- if (!AnimationState.deprecatedWarning3) {
- AnimationState.deprecatedWarning3 = true;
- console.warn("Deprecation Warning: AnimationState.hasAnimationByName is deprecated, please use hasAnimation from now on.");
- }
- return this.hasAnimation(animationName);
- };
- AnimationState.emptyAnimation = new core.Animation("<empty>", [], 0);
- AnimationState.SUBSEQUENT = 0;
- AnimationState.FIRST = 1;
- AnimationState.DIP = 2;
- AnimationState.DIP_MIX = 3;
- AnimationState.deprecatedWarning1 = false;
- AnimationState.deprecatedWarning2 = false;
- AnimationState.deprecatedWarning3 = false;
- return AnimationState;
- }());
- core.AnimationState = AnimationState;
- var TrackEntry = (function () {
- function TrackEntry() {
- this.timelineData = new Array();
- this.timelineDipMix = new Array();
- this.timelinesRotation = new Array();
- }
- TrackEntry.prototype.reset = function () {
- this.next = null;
- this.mixingFrom = null;
- this.animation = null;
- this.listener = null;
- this.timelineData.length = 0;
- this.timelineDipMix.length = 0;
- this.timelinesRotation.length = 0;
- };
- TrackEntry.prototype.setTimelineData = function (to, mixingToArray, propertyIDs) {
- if (to != null)
- mixingToArray.push(to);
- var lastEntry = this.mixingFrom != null ? this.mixingFrom.setTimelineData(this, mixingToArray, propertyIDs) : this;
- if (to != null)
- mixingToArray.pop();
- var mixingTo = mixingToArray;
- var mixingToLast = mixingToArray.length - 1;
- var timelines = this.animation.timelines;
- var timelinesCount = this.animation.timelines.length;
- var timelineData = core.Utils.setArraySize(this.timelineData, timelinesCount);
- this.timelineDipMix.length = 0;
- var timelineDipMix = core.Utils.setArraySize(this.timelineDipMix, timelinesCount);
- outer: for (var i = 0; i < timelinesCount; i++) {
- var id = timelines[i].getPropertyId();
- if (!propertyIDs.add(id))
- timelineData[i] = AnimationState.SUBSEQUENT;
- else if (to == null || !to.hasTimeline(id))
- timelineData[i] = AnimationState.FIRST;
- else {
- for (var ii = mixingToLast; ii >= 0; ii--) {
- var entry = mixingTo[ii];
- if (!entry.hasTimeline(id)) {
- if (entry.mixDuration > 0) {
- timelineData[i] = AnimationState.DIP_MIX;
- timelineDipMix[i] = entry;
- continue outer;
- }
- }
- }
- timelineData[i] = AnimationState.DIP;
- }
- }
- return lastEntry;
- };
- TrackEntry.prototype.hasTimeline = function (id) {
- var timelines = this.animation.timelines;
- for (var i = 0, n = timelines.length; i < n; i++)
- if (timelines[i].getPropertyId() == id)
- return true;
- return false;
- };
- TrackEntry.prototype.getAnimationTime = function () {
- if (this.loop) {
- var duration = this.animationEnd - this.animationStart;
- if (duration == 0)
- return this.animationStart;
- return (this.trackTime % duration) + this.animationStart;
- }
- return Math.min(this.trackTime + this.animationStart, this.animationEnd);
- };
- TrackEntry.prototype.setAnimationLast = function (animationLast) {
- this.animationLast = animationLast;
- this.nextAnimationLast = animationLast;
- };
- TrackEntry.prototype.isComplete = function () {
- return this.trackTime >= this.animationEnd - this.animationStart;
- };
- TrackEntry.prototype.resetRotationDirections = function () {
- this.timelinesRotation.length = 0;
- };
- Object.defineProperty(TrackEntry.prototype, "time", {
- get: function () {
- if (!TrackEntry.deprecatedWarning1) {
- TrackEntry.deprecatedWarning1 = true;
- console.warn("Deprecation Warning: TrackEntry.time is deprecated, please use trackTime from now on.");
- }
- return this.trackTime;
- },
- set: function (value) {
- if (!TrackEntry.deprecatedWarning1) {
- TrackEntry.deprecatedWarning1 = true;
- console.warn("Deprecation Warning: TrackEntry.time is deprecated, please use trackTime from now on.");
- }
- this.trackTime = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TrackEntry.prototype, "endTime", {
- get: function () {
- if (!TrackEntry.deprecatedWarning2) {
- TrackEntry.deprecatedWarning2 = true;
- console.warn("Deprecation Warning: TrackEntry.endTime is deprecated, please use trackEnd from now on.");
- }
- return this.trackTime;
- },
- set: function (value) {
- if (!TrackEntry.deprecatedWarning2) {
- TrackEntry.deprecatedWarning2 = true;
- console.warn("Deprecation Warning: TrackEntry.endTime is deprecated, please use trackEnd from now on.");
- }
- this.trackTime = value;
- },
- enumerable: true,
- configurable: true
- });
- TrackEntry.prototype.loopsCount = function () {
- return Math.floor(this.trackTime / this.trackEnd);
- };
- TrackEntry.deprecatedWarning1 = false;
- TrackEntry.deprecatedWarning2 = false;
- return TrackEntry;
- }());
- core.TrackEntry = TrackEntry;
- var EventQueue = (function () {
- function EventQueue(animState) {
- this.objects = [];
- this.drainDisabled = false;
- this.animState = animState;
- }
- EventQueue.prototype.start = function (entry) {
- this.objects.push(EventType.start);
- this.objects.push(entry);
- this.animState.animationsChanged = true;
- };
- EventQueue.prototype.interrupt = function (entry) {
- this.objects.push(EventType.interrupt);
- this.objects.push(entry);
- };
- EventQueue.prototype.end = function (entry) {
- this.objects.push(EventType.end);
- this.objects.push(entry);
- this.animState.animationsChanged = true;
- };
- EventQueue.prototype.dispose = function (entry) {
- this.objects.push(EventType.dispose);
- this.objects.push(entry);
- };
- EventQueue.prototype.complete = function (entry) {
- this.objects.push(EventType.complete);
- this.objects.push(entry);
- };
- EventQueue.prototype.event = function (entry, event) {
- this.objects.push(EventType.event);
- this.objects.push(entry);
- this.objects.push(event);
- };
- EventQueue.prototype.deprecateStuff = function () {
- if (!EventQueue.deprecatedWarning1) {
- EventQueue.deprecatedWarning1 = true;
- console.warn("Deprecation Warning: onComplete, onStart, onEnd, onEvent art deprecated, please use listeners from now on. 'state.addListener({ complete: function(track, event) { } })'");
- }
- return true;
- };
- EventQueue.prototype.drain = function () {
- if (this.drainDisabled)
- return;
- this.drainDisabled = true;
- var objects = this.objects;
- var listeners = this.animState.listeners;
- for (var i = 0; i < objects.length; i += 2) {
- var type = objects[i];
- var entry = objects[i + 1];
- switch (type) {
- case EventType.start:
- if (entry.listener != null && entry.listener.start)
- entry.listener.start(entry);
- for (var ii = 0; ii < listeners.length; ii++)
- if (listeners[ii].start)
- listeners[ii].start(entry);
- entry.onStart && this.deprecateStuff() && entry.onStart(entry.trackIndex);
- this.animState.onStart && this.deprecateStuff() && this.deprecateStuff && this.animState.onStart(entry.trackIndex);
- break;
- case EventType.interrupt:
- if (entry.listener != null && entry.listener.interrupt)
- entry.listener.interrupt(entry);
- for (var ii = 0; ii < listeners.length; ii++)
- if (listeners[ii].interrupt)
- listeners[ii].interrupt(entry);
- break;
- case EventType.end:
- if (entry.listener != null && entry.listener.end)
- entry.listener.end(entry);
- for (var ii = 0; ii < listeners.length; ii++)
- if (listeners[ii].end)
- listeners[ii].end(entry);
- entry.onEnd && this.deprecateStuff() && entry.onEnd(entry.trackIndex);
- this.animState.onEnd && this.deprecateStuff() && this.animState.onEnd(entry.trackIndex);
- case EventType.dispose:
- if (entry.listener != null && entry.listener.dispose)
- entry.listener.dispose(entry);
- for (var ii = 0; ii < listeners.length; ii++)
- if (listeners[ii].dispose)
- listeners[ii].dispose(entry);
- this.animState.trackEntryPool.free(entry);
- break;
- case EventType.complete:
- if (entry.listener != null && entry.listener.complete)
- entry.listener.complete(entry);
- for (var ii = 0; ii < listeners.length; ii++)
- if (listeners[ii].complete)
- listeners[ii].complete(entry);
- var count = core.MathUtils.toInt(entry.loopsCount());
- entry.onComplete && this.deprecateStuff() && entry.onComplete(entry.trackIndex, count);
- this.animState.onComplete && this.deprecateStuff() && this.animState.onComplete(entry.trackIndex, count);
- break;
- case EventType.event:
- var event_3 = objects[i++ + 2];
- if (entry.listener != null && entry.listener.event)
- entry.listener.event(entry, event_3);
- for (var ii = 0; ii < listeners.length; ii++)
- if (listeners[ii].event)
- listeners[ii].event(entry, event_3);
- entry.onEvent && this.deprecateStuff() && entry.onEvent(entry.trackIndex, event_3);
- this.animState.onEvent && this.deprecateStuff() && this.animState.onEvent(entry.trackIndex, event_3);
- break;
- }
- }
- this.clear();
- this.drainDisabled = false;
- };
- EventQueue.prototype.clear = function () {
- this.objects.length = 0;
- };
- EventQueue.deprecatedWarning1 = false;
- return EventQueue;
- }());
- core.EventQueue = EventQueue;
- var EventType;
- (function (EventType) {
- EventType[EventType["start"] = 0] = "start";
- EventType[EventType["interrupt"] = 1] = "interrupt";
- EventType[EventType["end"] = 2] = "end";
- EventType[EventType["dispose"] = 3] = "dispose";
- EventType[EventType["complete"] = 4] = "complete";
- EventType[EventType["event"] = 5] = "event";
- })(EventType = core.EventType || (core.EventType = {}));
- var AnimationStateAdapter2 = (function () {
- function AnimationStateAdapter2() {
- }
- AnimationStateAdapter2.prototype.start = function (entry) {
- };
- AnimationStateAdapter2.prototype.interrupt = function (entry) {
- };
- AnimationStateAdapter2.prototype.end = function (entry) {
- };
- AnimationStateAdapter2.prototype.dispose = function (entry) {
- };
- AnimationStateAdapter2.prototype.complete = function (entry) {
- };
- AnimationStateAdapter2.prototype.event = function (entry, event) {
- };
- return AnimationStateAdapter2;
- }());
- core.AnimationStateAdapter2 = AnimationStateAdapter2;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var AnimationStateData = (function () {
- function AnimationStateData(skeletonData) {
- this.animationToMixTime = {};
- this.defaultMix = 0;
- if (skeletonData == null)
- throw new Error("skeletonData cannot be null.");
- this.skeletonData = skeletonData;
- }
- AnimationStateData.prototype.setMix = function (fromName, toName, duration) {
- var from = this.skeletonData.findAnimation(fromName);
- if (from == null)
- throw new Error("Animation not found: " + fromName);
- var to = this.skeletonData.findAnimation(toName);
- if (to == null)
- throw new Error("Animation not found: " + toName);
- this.setMixWith(from, to, duration);
- };
- AnimationStateData.prototype.setMixByName = function (fromName, toName, duration) {
- if (!AnimationStateData.deprecatedWarning1) {
- AnimationStateData.deprecatedWarning1 = true;
- console.warn("Deprecation Warning: AnimationStateData.setMixByName is deprecated, please use setMix from now on.");
- }
- this.setMix(fromName, toName, duration);
- };
- AnimationStateData.prototype.setMixWith = function (from, to, duration) {
- if (from == null)
- throw new Error("from cannot be null.");
- if (to == null)
- throw new Error("to cannot be null.");
- var key = from.name + "." + to.name;
- this.animationToMixTime[key] = duration;
- };
- AnimationStateData.prototype.getMix = function (from, to) {
- var key = from.name + "." + to.name;
- var value = this.animationToMixTime[key];
- return value === undefined ? this.defaultMix : value;
- };
- AnimationStateData.deprecatedWarning1 = false;
- return AnimationStateData;
- }());
- core.AnimationStateData = AnimationStateData;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var AtlasAttachmentLoader = (function () {
- function AtlasAttachmentLoader(atlas) {
- this.atlas = atlas;
- }
- AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) {
- var region = this.atlas.findRegion(path);
- if (region == null)
- throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")");
- var attachment = new core.RegionAttachment(name);
- attachment.region = region;
- return attachment;
- };
- AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) {
- var region = this.atlas.findRegion(path);
- if (region == null)
- throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")");
- var attachment = new core.MeshAttachment(name);
- attachment.region = region;
- return attachment;
- };
- AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) {
- return new core.BoundingBoxAttachment(name);
- };
- AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) {
- return new core.PathAttachment(name);
- };
- AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) {
- return new core.PointAttachment(name);
- };
- AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) {
- return new core.ClippingAttachment(name);
- };
- return AtlasAttachmentLoader;
- }());
- core.AtlasAttachmentLoader = AtlasAttachmentLoader;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var BlendMode;
- (function (BlendMode) {
- BlendMode[BlendMode["Normal"] = 0] = "Normal";
- BlendMode[BlendMode["Additive"] = 1] = "Additive";
- BlendMode[BlendMode["Multiply"] = 2] = "Multiply";
- BlendMode[BlendMode["Screen"] = 3] = "Screen";
- })(BlendMode = core.BlendMode || (core.BlendMode = {}));
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Bone = (function () {
- function Bone(data, skeleton, parent) {
- this.matrix = new PIXI.Matrix();
- this.children = new Array();
- this.x = 0;
- this.y = 0;
- this.rotation = 0;
- this.scaleX = 0;
- this.scaleY = 0;
- this.shearX = 0;
- this.shearY = 0;
- this.ax = 0;
- this.ay = 0;
- this.arotation = 0;
- this.ascaleX = 0;
- this.ascaleY = 0;
- this.ashearX = 0;
- this.ashearY = 0;
- this.appliedValid = false;
- this.sorted = false;
- if (data == null)
- throw new Error("data cannot be null.");
- if (skeleton == null)
- throw new Error("skeleton cannot be null.");
- this.data = data;
- this.skeleton = skeleton;
- this.parent = parent;
- this.setToSetupPose();
- }
- Object.defineProperty(Bone.prototype, "worldX", {
- get: function () {
- return this.matrix.tx;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Bone.prototype, "worldY", {
- get: function () {
- return this.matrix.ty;
- },
- enumerable: true,
- configurable: true
- });
- Bone.prototype.update = function () {
- this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY);
- };
- Bone.prototype.updateWorldTransform = function () {
- this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY);
- };
- Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) {
- this.ax = x;
- this.ay = y;
- this.arotation = rotation;
- this.ascaleX = scaleX;
- this.ascaleY = scaleY;
- this.ashearX = shearX;
- this.ashearY = shearY;
- this.appliedValid = true;
- var parent = this.parent;
- var m = this.matrix;
- if (parent == null) {
- var rotationY = rotation + 90 + shearY;
- var la = core.MathUtils.cosDeg(rotation + shearX) * scaleX;
- var lb = core.MathUtils.cosDeg(rotationY) * scaleY;
- var lc = core.MathUtils.sinDeg(rotation + shearX) * scaleX;
- var ld = core.MathUtils.sinDeg(rotationY) * scaleY;
- var skeleton = this.skeleton;
- if (skeleton.flipX) {
- x = -x;
- la = -la;
- lb = -lb;
- }
- if (skeleton.flipY !== Bone.yDown) {
- y = -y;
- lc = -lc;
- ld = -ld;
- }
- m.a = la;
- m.c = lb;
- m.b = lc;
- m.d = ld;
- m.tx = x + skeleton.x;
- m.ty = y + skeleton.y;
- return;
- }
- var pa = parent.matrix.a, pb = parent.matrix.c, pc = parent.matrix.b, pd = parent.matrix.d;
- m.tx = pa * x + pb * y + parent.matrix.tx;
- m.ty = pc * x + pd * y + parent.matrix.ty;
- switch (this.data.transformMode) {
- case core.TransformMode.Normal: {
- var rotationY = rotation + 90 + shearY;
- var la = core.MathUtils.cosDeg(rotation + shearX) * scaleX;
- var lb = core.MathUtils.cosDeg(rotationY) * scaleY;
- var lc = core.MathUtils.sinDeg(rotation + shearX) * scaleX;
- var ld = core.MathUtils.sinDeg(rotationY) * scaleY;
- m.a = pa * la + pb * lc;
- m.c = pa * lb + pb * ld;
- m.b = pc * la + pd * lc;
- m.d = pc * lb + pd * ld;
- return;
- }
- case core.TransformMode.OnlyTranslation: {
- var rotationY = rotation + 90 + shearY;
- m.a = core.MathUtils.cosDeg(rotation + shearX) * scaleX;
- m.c = core.MathUtils.cosDeg(rotationY) * scaleY;
- m.b = core.MathUtils.sinDeg(rotation + shearX) * scaleX;
- m.d = core.MathUtils.sinDeg(rotationY) * scaleY;
- break;
- }
- case core.TransformMode.NoRotationOrReflection: {
- var s = pa * pa + pc * pc;
- var prx = 0;
- if (s > 0.0001) {
- s = Math.abs(pa * pd - pb * pc) / s;
- pb = pc * s;
- pd = pa * s;
- prx = Math.atan2(pc, pa) * core.MathUtils.radDeg;
- }
- else {
- pa = 0;
- pc = 0;
- prx = 90 - Math.atan2(pd, pb) * core.MathUtils.radDeg;
- }
- var rx = rotation + shearX - prx;
- var ry = rotation + shearY - prx + 90;
- var la = core.MathUtils.cosDeg(rx) * scaleX;
- var lb = core.MathUtils.cosDeg(ry) * scaleY;
- var lc = core.MathUtils.sinDeg(rx) * scaleX;
- var ld = core.MathUtils.sinDeg(ry) * scaleY;
- m.a = pa * la - pb * lc;
- m.c = pa * lb - pb * ld;
- m.b = pc * la + pd * lc;
- m.d = pc * lb + pd * ld;
- break;
- }
- case core.TransformMode.NoScale:
- case core.TransformMode.NoScaleOrReflection: {
- var cos = core.MathUtils.cosDeg(rotation);
- var sin = core.MathUtils.sinDeg(rotation);
- var za = pa * cos + pb * sin;
- var zc = pc * cos + pd * sin;
- var s = Math.sqrt(za * za + zc * zc);
- if (s > 0.00001)
- s = 1 / s;
- za *= s;
- zc *= s;
- s = Math.sqrt(za * za + zc * zc);
- var r = Math.PI / 2 + Math.atan2(zc, za);
- var zb = Math.cos(r) * s;
- var zd = Math.sin(r) * s;
- var la = core.MathUtils.cosDeg(shearX) * scaleX;
- var lb = core.MathUtils.cosDeg(90 + shearY) * scaleY;
- var lc = core.MathUtils.sinDeg(shearX) * scaleX;
- var ld = core.MathUtils.sinDeg(90 + shearY) * scaleY;
- m.a = za * la + zb * lc;
- m.c = za * lb + zb * ld;
- m.b = zc * la + zd * lc;
- m.d = zc * lb + zd * ld;
- if (this.data.transformMode != core.TransformMode.NoScaleOrReflection ? pa * pd - pb * pc < 0 : ((this.skeleton.flipX != this.skeleton.flipY) != Bone.yDown)) {
- m.c = -m.c;
- m.d = -m.d;
- }
- return;
- }
- }
- if (this.skeleton.flipX) {
- m.a = -m.a;
- m.c = -m.c;
- }
- if (this.skeleton.flipY != Bone.yDown) {
- m.b = -m.b;
- m.d = -m.d;
- }
- };
- Bone.prototype.setToSetupPose = function () {
- var data = this.data;
- this.x = data.x;
- this.y = data.y;
- this.rotation = data.rotation;
- this.scaleX = data.scaleX;
- this.scaleY = data.scaleY;
- this.shearX = data.shearX;
- this.shearY = data.shearY;
- };
- Bone.prototype.getWorldRotationX = function () {
- return Math.atan2(this.matrix.b, this.matrix.a) * core.MathUtils.radDeg;
- };
- Bone.prototype.getWorldRotationY = function () {
- return Math.atan2(this.matrix.d, this.matrix.c) * core.MathUtils.radDeg;
- };
- Bone.prototype.getWorldScaleX = function () {
- var m = this.matrix;
- return Math.sqrt(m.a * m.a + m.c * m.c);
- };
- Bone.prototype.getWorldScaleY = function () {
- var m = this.matrix;
- return Math.sqrt(m.b * m.b + m.d * m.d);
- };
- Bone.prototype.updateAppliedTransform = function () {
- this.appliedValid = true;
- var parent = this.parent;
- var m = this.matrix;
- if (parent == null) {
- this.ax = m.tx;
- this.ay = m.ty;
- this.arotation = Math.atan2(m.b, m.a) * core.MathUtils.radDeg;
- this.ascaleX = Math.sqrt(m.a * m.a + m.b * m.b);
- this.ascaleY = Math.sqrt(m.c * m.c + m.d * m.d);
- this.ashearX = 0;
- this.ashearY = Math.atan2(m.a * m.c + m.b * m.d, m.a * m.d - m.b * m.c) * core.MathUtils.radDeg;
- return;
- }
- var pm = parent.matrix;
- var pid = 1 / (pm.a * pm.d - pm.b * pm.c);
- var dx = m.tx - pm.tx, dy = m.ty - pm.ty;
- this.ax = (dx * pm.d * pid - dy * pm.c * pid);
- this.ay = (dy * pm.a * pid - dx * pm.b * pid);
- var ia = pid * pm.d;
- var id = pid * pm.a;
- var ib = pid * pm.c;
- var ic = pid * pm.b;
- var ra = ia * m.a - ib * m.b;
- var rb = ia * m.c - ib * m.d;
- var rc = id * m.b - ic * m.a;
- var rd = id * m.d - ic * m.c;
- this.ashearX = 0;
- this.ascaleX = Math.sqrt(ra * ra + rc * rc);
- if (this.ascaleX > 0.0001) {
- var det = ra * rd - rb * rc;
- this.ascaleY = det / this.ascaleX;
- this.ashearY = Math.atan2(ra * rb + rc * rd, det) * core.MathUtils.radDeg;
- this.arotation = Math.atan2(rc, ra) * core.MathUtils.radDeg;
- }
- else {
- this.ascaleX = 0;
- this.ascaleY = Math.sqrt(rb * rb + rd * rd);
- this.ashearY = 0;
- this.arotation = 90 - Math.atan2(rd, rb) * core.MathUtils.radDeg;
- }
- };
- Bone.prototype.worldToLocal = function (world) {
- var m = this.matrix;
- var a = m.a, b = m.c, c = m.b, d = m.d;
- var invDet = 1 / (a * d - b * c);
- var x = world.x - m.tx, y = world.y - m.ty;
- world.x = (x * d * invDet - y * b * invDet);
- world.y = (y * a * invDet - x * c * invDet);
- return world;
- };
- Bone.prototype.localToWorld = function (local) {
- var m = this.matrix;
- var x = local.x, y = local.y;
- local.x = x * m.a + y * m.c + m.tx;
- local.y = x * m.b + y * m.d + m.ty;
- return local;
- };
- Bone.prototype.worldToLocalRotation = function (worldRotation) {
- var sin = core.MathUtils.sinDeg(worldRotation), cos = core.MathUtils.cosDeg(worldRotation);
- var mat = this.matrix;
- return Math.atan2(mat.a * sin - mat.b * cos, mat.d * cos - mat.c * sin) * core.MathUtils.radDeg;
- };
- Bone.prototype.localToWorldRotation = function (localRotation) {
- var sin = core.MathUtils.sinDeg(localRotation), cos = core.MathUtils.cosDeg(localRotation);
- var mat = this.matrix;
- return Math.atan2(cos * mat.b + sin * mat.d, cos * mat.a + sin * mat.c) * core.MathUtils.radDeg;
- };
- Bone.prototype.rotateWorld = function (degrees) {
- var mat = this.matrix;
- var a = mat.a, b = mat.c, c = mat.b, d = mat.d;
- var cos = core.MathUtils.cosDeg(degrees), sin = core.MathUtils.sinDeg(degrees);
- mat.a = cos * a - sin * c;
- mat.c = cos * b - sin * d;
- mat.b = sin * a + cos * c;
- mat.d = sin * b + cos * d;
- this.appliedValid = false;
- };
- Bone.yDown = false;
- return Bone;
- }());
- core.Bone = Bone;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var BoneData = (function () {
- function BoneData(index, name, parent) {
- this.x = 0;
- this.y = 0;
- this.rotation = 0;
- this.scaleX = 1;
- this.scaleY = 1;
- this.shearX = 0;
- this.shearY = 0;
- this.transformMode = TransformMode.Normal;
- if (index < 0)
- throw new Error("index must be >= 0.");
- if (name == null)
- throw new Error("name cannot be null.");
- this.index = index;
- this.name = name;
- this.parent = parent;
- }
- return BoneData;
- }());
- core.BoneData = BoneData;
- var TransformMode;
- (function (TransformMode) {
- TransformMode[TransformMode["Normal"] = 0] = "Normal";
- TransformMode[TransformMode["OnlyTranslation"] = 1] = "OnlyTranslation";
- TransformMode[TransformMode["NoRotationOrReflection"] = 2] = "NoRotationOrReflection";
- TransformMode[TransformMode["NoScale"] = 3] = "NoScale";
- TransformMode[TransformMode["NoScaleOrReflection"] = 4] = "NoScaleOrReflection";
- })(TransformMode = core.TransformMode || (core.TransformMode = {}));
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Event = (function () {
- function Event(time, data) {
- if (data == null)
- throw new Error("data cannot be null.");
- this.time = time;
- this.data = data;
- }
- return Event;
- }());
- core.Event = Event;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var EventData = (function () {
- function EventData(name) {
- this.name = name;
- }
- return EventData;
- }());
- core.EventData = EventData;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var IkConstraint = (function () {
- function IkConstraint(data, skeleton) {
- this.mix = 1;
- this.bendDirection = 0;
- if (data == null)
- throw new Error("data cannot be null.");
- if (skeleton == null)
- throw new Error("skeleton cannot be null.");
- this.data = data;
- this.mix = data.mix;
- this.bendDirection = data.bendDirection;
- this.bones = new Array();
- for (var i = 0; i < data.bones.length; i++)
- this.bones.push(skeleton.findBone(data.bones[i].name));
- this.target = skeleton.findBone(data.target.name);
- }
- IkConstraint.prototype.getOrder = function () {
- return this.data.order;
- };
- IkConstraint.prototype.apply = function () {
- this.update();
- };
- IkConstraint.prototype.update = function () {
- var target = this.target;
- var bones = this.bones;
- switch (bones.length) {
- case 1:
- this.apply1(bones[0], target.worldX, target.worldY, this.mix);
- break;
- case 2:
- this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.mix);
- break;
- }
- };
- IkConstraint.prototype.apply1 = function (bone, targetX, targetY, alpha) {
- if (!bone.appliedValid)
- bone.updateAppliedTransform();
- var p = bone.parent.matrix;
- var id = 1 / (p.a * p.d - p.b * p.c);
- var x = targetX - p.tx, y = targetY - p.ty;
- var tx = (x * p.d - y * p.c) * id - bone.ax, ty = (y * p.a - x * p.b) * id - bone.ay;
- var rotationIK = Math.atan2(ty, tx) * core.MathUtils.radDeg - bone.ashearX - bone.arotation;
- if (bone.ascaleX < 0)
- rotationIK += 180;
- if (rotationIK > 180)
- rotationIK -= 360;
- else if (rotationIK < -180)
- rotationIK += 360;
- bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, bone.ascaleX, bone.ascaleY, bone.ashearX, bone.ashearY);
- };
- IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, alpha) {
- if (alpha == 0) {
- child.updateWorldTransform();
- return;
- }
- if (!parent.appliedValid)
- parent.updateAppliedTransform();
- if (!child.appliedValid)
- child.updateAppliedTransform();
- var px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, csx = child.ascaleX;
- var pmat = parent.matrix;
- var os1 = 0, os2 = 0, s2 = 0;
- if (psx < 0) {
- psx = -psx;
- os1 = 180;
- s2 = -1;
- }
- else {
- os1 = 0;
- s2 = 1;
- }
- if (psy < 0) {
- psy = -psy;
- s2 = -s2;
- }
- if (csx < 0) {
- csx = -csx;
- os2 = 180;
- }
- else
- os2 = 0;
- var cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = pmat.a, b = pmat.c, c = pmat.b, d = pmat.d;
- var u = Math.abs(psx - psy) <= 0.0001;
- if (!u) {
- cy = 0;
- cwx = a * cx + pmat.tx;
- cwy = c * cx + pmat.ty;
- }
- else {
- cy = child.ay;
- cwx = a * cx + b * cy + pmat.tx;
- cwy = c * cx + d * cy + pmat.ty;
- }
- var pp = parent.parent.matrix;
- a = pp.a;
- b = pp.c;
- c = pp.b;
- d = pp.d;
- var id = 1 / (a * d - b * c), x = targetX - pp.tx, y = targetY - pp.ty;
- var tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py;
- x = cwx - pp.tx;
- y = cwy - pp.ty;
- var dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py;
- var l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1 = 0, a2 = 0;
- outer: if (u) {
- l2 *= psx;
- var cos = (tx * tx + ty * ty - l1 * l1 - l2 * l2) / (2 * l1 * l2);
- if (cos < -1)
- cos = -1;
- else if (cos > 1)
- cos = 1;
- a2 = Math.acos(cos) * bendDir;
- a = l1 + l2 * cos;
- b = l2 * Math.sin(a2);
- a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b);
- }
- else {
- a = psx * l2;
- b = psy * l2;
- var aa = a * a, bb = b * b, dd = tx * tx + ty * ty, ta = Math.atan2(ty, tx);
- c = bb * l1 * l1 + aa * dd - aa * bb;
- var c1 = -2 * bb * l1, c2 = bb - aa;
- d = c1 * c1 - 4 * c2 * c;
- if (d >= 0) {
- var q = Math.sqrt(d);
- if (c1 < 0)
- q = -q;
- q = -(c1 + q) / 2;
- var r0 = q / c2, r1 = c / q;
- var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1;
- if (r * r <= dd) {
- y = Math.sqrt(dd - r * r) * bendDir;
- a1 = ta - Math.atan2(y, r);
- a2 = Math.atan2(y / psy, (r - l1) / psx);
- break outer;
- }
- }
- var minAngle = core.MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0;
- var maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0;
- c = -a * l1 / (aa - bb);
- if (c >= -1 && c <= 1) {
- c = Math.acos(c);
- x = a * Math.cos(c) + l1;
- y = b * Math.sin(c);
- d = x * x + y * y;
- if (d < minDist) {
- minAngle = c;
- minDist = d;
- minX = x;
- minY = y;
- }
- if (d > maxDist) {
- maxAngle = c;
- maxDist = d;
- maxX = x;
- maxY = y;
- }
- }
- if (dd <= (minDist + maxDist) / 2) {
- a1 = ta - Math.atan2(minY * bendDir, minX);
- a2 = minAngle * bendDir;
- }
- else {
- a1 = ta - Math.atan2(maxY * bendDir, maxX);
- a2 = maxAngle * bendDir;
- }
- }
- var os = Math.atan2(cy, cx) * s2;
- var rotation = parent.arotation;
- a1 = (a1 - os) * core.MathUtils.radDeg + os1 - rotation;
- if (a1 > 180)
- a1 -= 360;
- else if (a1 < -180)
- a1 += 360;
- parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, parent.ascaleX, parent.ascaleY, 0, 0);
- rotation = child.arotation;
- a2 = ((a2 + os) * core.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation;
- if (a2 > 180)
- a2 -= 360;
- else if (a2 < -180)
- a2 += 360;
- child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY);
- };
- return IkConstraint;
- }());
- core.IkConstraint = IkConstraint;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var IkConstraintData = (function () {
- function IkConstraintData(name) {
- this.order = 0;
- this.bones = new Array();
- this.bendDirection = 1;
- this.mix = 1;
- this.name = name;
- }
- return IkConstraintData;
- }());
- core.IkConstraintData = IkConstraintData;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var PathConstraint = (function () {
- function PathConstraint(data, skeleton) {
- this.position = 0;
- this.spacing = 0;
- this.rotateMix = 0;
- this.translateMix = 0;
- this.spaces = new Array();
- this.positions = new Array();
- this.world = new Array();
- this.curves = new Array();
- this.lengths = new Array();
- this.segments = new Array();
- if (data == null)
- throw new Error("data cannot be null.");
- if (skeleton == null)
- throw new Error("skeleton cannot be null.");
- this.data = data;
- this.bones = new Array();
- for (var i = 0, n = data.bones.length; i < n; i++)
- this.bones.push(skeleton.findBone(data.bones[i].name));
- this.target = skeleton.findSlot(data.target.name);
- this.position = data.position;
- this.spacing = data.spacing;
- this.rotateMix = data.rotateMix;
- this.translateMix = data.translateMix;
- }
- PathConstraint.prototype.apply = function () {
- this.update();
- };
- PathConstraint.prototype.update = function () {
- var attachment = this.target.getAttachment();
- if (!(attachment instanceof core.PathAttachment))
- return;
- var rotateMix = this.rotateMix, translateMix = this.translateMix;
- var translate = translateMix > 0, rotate = rotateMix > 0;
- if (!translate && !rotate)
- return;
- var data = this.data;
- var spacingMode = data.spacingMode;
- var lengthSpacing = spacingMode == core.SpacingMode.Length;
- var rotateMode = data.rotateMode;
- var tangents = rotateMode == core.RotateMode.Tangent, scale = rotateMode == core.RotateMode.ChainScale;
- var boneCount = this.bones.length, spacesCount = tangents ? boneCount : boneCount + 1;
- var bones = this.bones;
- var spaces = core.Utils.setArraySize(this.spaces, spacesCount), lengths = null;
- var spacing = this.spacing;
- if (scale || lengthSpacing) {
- if (scale)
- lengths = core.Utils.setArraySize(this.lengths, boneCount);
- for (var i = 0, n = spacesCount - 1; i < n;) {
- var bone = bones[i];
- var setupLength = bone.data.length;
- if (setupLength < PathConstraint.epsilon) {
- if (scale)
- lengths[i] = 0;
- spaces[++i] = 0;
- }
- else {
- var x = setupLength * bone.matrix.a, y = setupLength * bone.matrix.b;
- var length_1 = Math.sqrt(x * x + y * y);
- if (scale)
- lengths[i] = length_1;
- spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length_1 / setupLength;
- }
- }
- }
- else {
- for (var i = 1; i < spacesCount; i++)
- spaces[i] = spacing;
- }
- var positions = this.computeWorldPositions(attachment, spacesCount, tangents, data.positionMode == core.PositionMode.Percent, spacingMode == core.SpacingMode.Percent);
- var boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation;
- var tip = false;
- if (offsetRotation == 0)
- tip = rotateMode == core.RotateMode.Chain;
- else {
- tip = false;
- var p = this.target.bone.matrix;
- offsetRotation *= p.a * p.d - p.b * p.c > 0 ? core.MathUtils.degRad : -core.MathUtils.degRad;
- }
- for (var i = 0, p = 3; i < boneCount; i++, p += 3) {
- var bone = bones[i];
- var mat = bone.matrix;
- mat.tx += (boneX - mat.tx) * translateMix;
- mat.ty += (boneY - mat.ty) * translateMix;
- var x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY;
- if (scale) {
- var length_2 = lengths[i];
- if (length_2 != 0) {
- var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1;
- mat.a *= s;
- mat.b *= s;
- }
- }
- boneX = x;
- boneY = y;
- if (rotate) {
- var a = mat.a, b = mat.c, c = mat.b, d = mat.d, r = 0, cos = 0, sin = 0;
- if (tangents)
- r = positions[p - 1];
- else if (spaces[i + 1] == 0)
- r = positions[p + 2];
- else
- r = Math.atan2(dy, dx);
- r -= Math.atan2(c, a);
- if (tip) {
- cos = Math.cos(r);
- sin = Math.sin(r);
- var length_3 = bone.data.length;
- boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix;
- boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix;
- }
- else {
- r += offsetRotation;
- }
- if (r > core.MathUtils.PI)
- r -= core.MathUtils.PI2;
- else if (r < -core.MathUtils.PI)
- r += core.MathUtils.PI2;
- r *= rotateMix;
- cos = Math.cos(r);
- sin = Math.sin(r);
- mat.a = cos * a - sin * c;
- mat.c = cos * b - sin * d;
- mat.b = sin * a + cos * c;
- mat.d = sin * b + cos * d;
- }
- bone.appliedValid = false;
- }
- };
- PathConstraint.prototype.computeWorldPositions = function (path, spacesCount, tangents, percentPosition, percentSpacing) {
- var target = this.target;
- var position = this.position;
- var spaces = this.spaces, out = core.Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = null;
- var closed = path.closed;
- var verticesLength = path.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = PathConstraint.NONE;
- if (!path.constantSpeed) {
- var lengths = path.lengths;
- curveCount -= closed ? 1 : 2;
- var pathLength_1 = lengths[curveCount];
- if (percentPosition)
- position *= pathLength_1;
- if (percentSpacing) {
- for (var i = 0; i < spacesCount; i++)
- spaces[i] *= pathLength_1;
- }
- world = core.Utils.setArraySize(this.world, 8);
- for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) {
- var space = spaces[i];
- position += space;
- var p = position;
- if (closed) {
- p %= pathLength_1;
- if (p < 0)
- p += pathLength_1;
- curve = 0;
- }
- else if (p < 0) {
- if (prevCurve != PathConstraint.BEFORE) {
- prevCurve = PathConstraint.BEFORE;
- path.computeWorldVertices(target, 2, 4, world, 0, 2);
- }
- this.addBeforePosition(p, world, 0, out, o);
- continue;
- }
- else if (p > pathLength_1) {
- if (prevCurve != PathConstraint.AFTER) {
- prevCurve = PathConstraint.AFTER;
- path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2);
- }
- this.addAfterPosition(p - pathLength_1, world, 0, out, o);
- continue;
- }
- for (;; curve++) {
- var length_4 = lengths[curve];
- if (p > length_4)
- continue;
- if (curve == 0)
- p /= length_4;
- else {
- var prev = lengths[curve - 1];
- p = (p - prev) / (length_4 - prev);
- }
- break;
- }
- if (curve != prevCurve) {
- prevCurve = curve;
- if (closed && curve == curveCount) {
- path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2);
- path.computeWorldVertices(target, 0, 4, world, 4, 2);
- }
- else
- path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2);
- }
- this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || (i > 0 && space == 0));
- }
- return out;
- }
- if (closed) {
- verticesLength += 2;
- world = core.Utils.setArraySize(this.world, verticesLength);
- path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2);
- path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2);
- world[verticesLength - 2] = world[0];
- world[verticesLength - 1] = world[1];
- }
- else {
- curveCount--;
- verticesLength -= 4;
- world = core.Utils.setArraySize(this.world, verticesLength);
- path.computeWorldVertices(target, 2, verticesLength, world, 0, 2);
- }
- var curves = core.Utils.setArraySize(this.curves, curveCount);
- var pathLength = 0;
- var x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0;
- var tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0;
- for (var i = 0, w = 2; i < curveCount; i++, w += 6) {
- cx1 = world[w];
- cy1 = world[w + 1];
- cx2 = world[w + 2];
- cy2 = world[w + 3];
- x2 = world[w + 4];
- y2 = world[w + 5];
- tmpx = (x1 - cx1 * 2 + cx2) * 0.1875;
- tmpy = (y1 - cy1 * 2 + cy2) * 0.1875;
- dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375;
- dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375;
- ddfx = tmpx * 2 + dddfx;
- ddfy = tmpy * 2 + dddfy;
- dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667;
- dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667;
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
- dfx += ddfx;
- dfy += ddfy;
- ddfx += dddfx;
- ddfy += dddfy;
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
- dfx += ddfx;
- dfy += ddfy;
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
- dfx += ddfx + dddfx;
- dfy += ddfy + dddfy;
- pathLength += Math.sqrt(dfx * dfx + dfy * dfy);
- curves[i] = pathLength;
- x1 = x2;
- y1 = y2;
- }
- if (percentPosition)
- position *= pathLength;
- if (percentSpacing) {
- for (var i = 0; i < spacesCount; i++)
- spaces[i] *= pathLength;
- }
- var segments = this.segments;
- var curveLength = 0;
- for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) {
- var space = spaces[i];
- position += space;
- var p = position;
- if (closed) {
- p %= pathLength;
- if (p < 0)
- p += pathLength;
- curve = 0;
- }
- else if (p < 0) {
- this.addBeforePosition(p, world, 0, out, o);
- continue;
- }
- else if (p > pathLength) {
- this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o);
- continue;
- }
- for (;; curve++) {
- var length_5 = curves[curve];
- if (p > length_5)
- continue;
- if (curve == 0)
- p /= length_5;
- else {
- var prev = curves[curve - 1];
- p = (p - prev) / (length_5 - prev);
- }
- break;
- }
- if (curve != prevCurve) {
- prevCurve = curve;
- var ii = curve * 6;
- x1 = world[ii];
- y1 = world[ii + 1];
- cx1 = world[ii + 2];
- cy1 = world[ii + 3];
- cx2 = world[ii + 4];
- cy2 = world[ii + 5];
- x2 = world[ii + 6];
- y2 = world[ii + 7];
- tmpx = (x1 - cx1 * 2 + cx2) * 0.03;
- tmpy = (y1 - cy1 * 2 + cy2) * 0.03;
- dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006;
- dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006;
- ddfx = tmpx * 2 + dddfx;
- ddfy = tmpy * 2 + dddfy;
- dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667;
- dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667;
- curveLength = Math.sqrt(dfx * dfx + dfy * dfy);
- segments[0] = curveLength;
- for (ii = 1; ii < 8; ii++) {
- dfx += ddfx;
- dfy += ddfy;
- ddfx += dddfx;
- ddfy += dddfy;
- curveLength += Math.sqrt(dfx * dfx + dfy * dfy);
- segments[ii] = curveLength;
- }
- dfx += ddfx;
- dfy += ddfy;
- curveLength += Math.sqrt(dfx * dfx + dfy * dfy);
- segments[8] = curveLength;
- dfx += ddfx + dddfx;
- dfy += ddfy + dddfy;
- curveLength += Math.sqrt(dfx * dfx + dfy * dfy);
- segments[9] = curveLength;
- segment = 0;
- }
- p *= curveLength;
- for (;; segment++) {
- var length_6 = segments[segment];
- if (p > length_6)
- continue;
- if (segment == 0)
- p /= length_6;
- else {
- var prev = segments[segment - 1];
- p = segment + (p - prev) / (length_6 - prev);
- }
- break;
- }
- this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0));
- }
- return out;
- };
- PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) {
- var x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx);
- out[o] = x1 + p * Math.cos(r);
- out[o + 1] = y1 + p * Math.sin(r);
- out[o + 2] = r;
- };
- PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) {
- var x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx);
- out[o] = x1 + p * Math.cos(r);
- out[o + 1] = y1 + p * Math.sin(r);
- out[o + 2] = r;
- };
- PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) {
- if (p == 0 || isNaN(p))
- p = 0.0001;
- var tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u;
- var ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p;
- var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt;
- out[o] = x;
- out[o + 1] = y;
- if (tangents)
- out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt));
- };
- PathConstraint.prototype.getOrder = function () {
- return this.data.order;
- };
- PathConstraint.NONE = -1;
- PathConstraint.BEFORE = -2;
- PathConstraint.AFTER = -3;
- PathConstraint.epsilon = 0.00001;
- return PathConstraint;
- }());
- core.PathConstraint = PathConstraint;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var PathConstraintData = (function () {
- function PathConstraintData(name) {
- this.order = 0;
- this.bones = new Array();
- this.name = name;
- }
- return PathConstraintData;
- }());
- core.PathConstraintData = PathConstraintData;
- var PositionMode;
- (function (PositionMode) {
- PositionMode[PositionMode["Fixed"] = 0] = "Fixed";
- PositionMode[PositionMode["Percent"] = 1] = "Percent";
- })(PositionMode = core.PositionMode || (core.PositionMode = {}));
- var SpacingMode;
- (function (SpacingMode) {
- SpacingMode[SpacingMode["Length"] = 0] = "Length";
- SpacingMode[SpacingMode["Fixed"] = 1] = "Fixed";
- SpacingMode[SpacingMode["Percent"] = 2] = "Percent";
- })(SpacingMode = core.SpacingMode || (core.SpacingMode = {}));
- var RotateMode;
- (function (RotateMode) {
- RotateMode[RotateMode["Tangent"] = 0] = "Tangent";
- RotateMode[RotateMode["Chain"] = 1] = "Chain";
- RotateMode[RotateMode["ChainScale"] = 2] = "ChainScale";
- })(RotateMode = core.RotateMode || (core.RotateMode = {}));
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Skeleton = (function () {
- function Skeleton(data) {
- this._updateCache = new Array();
- this.updateCacheReset = new Array();
- this.time = 0;
- this.flipX = false;
- this.flipY = false;
- this.x = 0;
- this.y = 0;
- if (data == null)
- throw new Error("data cannot be null.");
- this.data = data;
- this.bones = new Array();
- for (var i = 0; i < data.bones.length; i++) {
- var boneData = data.bones[i];
- var bone = void 0;
- if (boneData.parent == null)
- bone = new core.Bone(boneData, this, null);
- else {
- var parent_1 = this.bones[boneData.parent.index];
- bone = new core.Bone(boneData, this, parent_1);
- parent_1.children.push(bone);
- }
- this.bones.push(bone);
- }
- this.slots = new Array();
- this.drawOrder = new Array();
- for (var i = 0; i < data.slots.length; i++) {
- var slotData = data.slots[i];
- var bone = this.bones[slotData.boneData.index];
- var slot = new core.Slot(slotData, bone);
- this.slots.push(slot);
- this.drawOrder.push(slot);
- }
- this.ikConstraints = new Array();
- for (var i = 0; i < data.ikConstraints.length; i++) {
- var ikConstraintData = data.ikConstraints[i];
- this.ikConstraints.push(new core.IkConstraint(ikConstraintData, this));
- }
- this.transformConstraints = new Array();
- for (var i = 0; i < data.transformConstraints.length; i++) {
- var transformConstraintData = data.transformConstraints[i];
- this.transformConstraints.push(new core.TransformConstraint(transformConstraintData, this));
- }
- this.pathConstraints = new Array();
- for (var i = 0; i < data.pathConstraints.length; i++) {
- var pathConstraintData = data.pathConstraints[i];
- this.pathConstraints.push(new core.PathConstraint(pathConstraintData, this));
- }
- this.color = new core.Color(1, 1, 1, 1);
- this.updateCache();
- }
- Skeleton.prototype.updateCache = function () {
- var updateCache = this._updateCache;
- updateCache.length = 0;
- this.updateCacheReset.length = 0;
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++)
- bones[i].sorted = false;
- var ikConstraints = this.ikConstraints;
- var transformConstraints = this.transformConstraints;
- var pathConstraints = this.pathConstraints;
- var ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length;
- var constraintCount = ikCount + transformCount + pathCount;
- outer: for (var i = 0; i < constraintCount; i++) {
- for (var ii = 0; ii < ikCount; ii++) {
- var constraint = ikConstraints[ii];
- if (constraint.data.order == i) {
- this.sortIkConstraint(constraint);
- continue outer;
- }
- }
- for (var ii = 0; ii < transformCount; ii++) {
- var constraint = transformConstraints[ii];
- if (constraint.data.order == i) {
- this.sortTransformConstraint(constraint);
- continue outer;
- }
- }
- for (var ii = 0; ii < pathCount; ii++) {
- var constraint = pathConstraints[ii];
- if (constraint.data.order == i) {
- this.sortPathConstraint(constraint);
- continue outer;
- }
- }
- }
- for (var i = 0, n = bones.length; i < n; i++)
- this.sortBone(bones[i]);
- };
- Skeleton.prototype.sortIkConstraint = function (constraint) {
- var target = constraint.target;
- this.sortBone(target);
- var constrained = constraint.bones;
- var parent = constrained[0];
- this.sortBone(parent);
- if (constrained.length > 1) {
- var child = constrained[constrained.length - 1];
- if (!(this._updateCache.indexOf(child) > -1))
- this.updateCacheReset.push(child);
- }
- this._updateCache.push(constraint);
- this.sortReset(parent.children);
- constrained[constrained.length - 1].sorted = true;
- };
- Skeleton.prototype.sortPathConstraint = function (constraint) {
- var slot = constraint.target;
- var slotIndex = slot.data.index;
- var slotBone = slot.bone;
- if (this.skin != null)
- this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone);
- if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin)
- this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone);
- for (var i = 0, n = this.data.skins.length; i < n; i++)
- this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone);
- var attachment = slot.getAttachment();
- if (attachment instanceof core.PathAttachment)
- this.sortPathConstraintAttachmentWith(attachment, slotBone);
- var constrained = constraint.bones;
- var boneCount = constrained.length;
- for (var i = 0; i < boneCount; i++)
- this.sortBone(constrained[i]);
- this._updateCache.push(constraint);
- for (var i = 0; i < boneCount; i++)
- this.sortReset(constrained[i].children);
- for (var i = 0; i < boneCount; i++)
- constrained[i].sorted = true;
- };
- Skeleton.prototype.sortTransformConstraint = function (constraint) {
- this.sortBone(constraint.target);
- var constrained = constraint.bones;
- var boneCount = constrained.length;
- if (constraint.data.local) {
- for (var i = 0; i < boneCount; i++) {
- var child = constrained[i];
- this.sortBone(child.parent);
- if (!(this._updateCache.indexOf(child) > -1))
- this.updateCacheReset.push(child);
- }
- }
- else {
- for (var i = 0; i < boneCount; i++) {
- this.sortBone(constrained[i]);
- }
- }
- this._updateCache.push(constraint);
- for (var ii = 0; ii < boneCount; ii++)
- this.sortReset(constrained[ii].children);
- for (var ii = 0; ii < boneCount; ii++)
- constrained[ii].sorted = true;
- };
- Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) {
- var attachments = skin.attachments[slotIndex];
- if (!attachments)
- return;
- for (var key in attachments) {
- this.sortPathConstraintAttachmentWith(attachments[key], slotBone);
- }
- };
- Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) {
- if (!(attachment instanceof core.PathAttachment))
- return;
- var pathBones = attachment.bones;
- if (pathBones == null)
- this.sortBone(slotBone);
- else {
- var bones = this.bones;
- var i = 0;
- while (i < pathBones.length) {
- var boneCount = pathBones[i++];
- for (var n = i + boneCount; i < n; i++) {
- var boneIndex = pathBones[i];
- this.sortBone(bones[boneIndex]);
- }
- }
- }
- };
- Skeleton.prototype.sortBone = function (bone) {
- if (bone.sorted)
- return;
- var parent = bone.parent;
- if (parent != null)
- this.sortBone(parent);
- bone.sorted = true;
- this._updateCache.push(bone);
- };
- Skeleton.prototype.sortReset = function (bones) {
- for (var i = 0, n = bones.length; i < n; i++) {
- var bone = bones[i];
- if (bone.sorted)
- this.sortReset(bone.children);
- bone.sorted = false;
- }
- };
- Skeleton.prototype.updateWorldTransform = function () {
- var updateCacheReset = this.updateCacheReset;
- for (var i = 0, n = updateCacheReset.length; i < n; i++) {
- var bone = updateCacheReset[i];
- bone.ax = bone.x;
- bone.ay = bone.y;
- bone.arotation = bone.rotation;
- bone.ascaleX = bone.scaleX;
- bone.ascaleY = bone.scaleY;
- bone.ashearX = bone.shearX;
- bone.ashearY = bone.shearY;
- bone.appliedValid = true;
- }
- var updateCache = this._updateCache;
- for (var i = 0, n = updateCache.length; i < n; i++)
- updateCache[i].update();
- };
- Skeleton.prototype.setToSetupPose = function () {
- this.setBonesToSetupPose();
- this.setSlotsToSetupPose();
- };
- Skeleton.prototype.setBonesToSetupPose = function () {
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++)
- bones[i].setToSetupPose();
- var ikConstraints = this.ikConstraints;
- for (var i = 0, n = ikConstraints.length; i < n; i++) {
- var constraint = ikConstraints[i];
- constraint.bendDirection = constraint.data.bendDirection;
- constraint.mix = constraint.data.mix;
- }
- var transformConstraints = this.transformConstraints;
- for (var i = 0, n = transformConstraints.length; i < n; i++) {
- var constraint = transformConstraints[i];
- var data = constraint.data;
- constraint.rotateMix = data.rotateMix;
- constraint.translateMix = data.translateMix;
- constraint.scaleMix = data.scaleMix;
- constraint.shearMix = data.shearMix;
- }
- var pathConstraints = this.pathConstraints;
- for (var i = 0, n = pathConstraints.length; i < n; i++) {
- var constraint = pathConstraints[i];
- var data = constraint.data;
- constraint.position = data.position;
- constraint.spacing = data.spacing;
- constraint.rotateMix = data.rotateMix;
- constraint.translateMix = data.translateMix;
- }
- };
- Skeleton.prototype.setSlotsToSetupPose = function () {
- var slots = this.slots;
- core.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length);
- for (var i = 0, n = slots.length; i < n; i++)
- slots[i].setToSetupPose();
- };
- Skeleton.prototype.getRootBone = function () {
- if (this.bones.length == 0)
- return null;
- return this.bones[0];
- };
- Skeleton.prototype.findBone = function (boneName) {
- if (boneName == null)
- throw new Error("boneName cannot be null.");
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++) {
- var bone = bones[i];
- if (bone.data.name == boneName)
- return bone;
- }
- return null;
- };
- Skeleton.prototype.findBoneIndex = function (boneName) {
- if (boneName == null)
- throw new Error("boneName cannot be null.");
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++)
- if (bones[i].data.name == boneName)
- return i;
- return -1;
- };
- Skeleton.prototype.findSlot = function (slotName) {
- if (slotName == null)
- throw new Error("slotName cannot be null.");
- var slots = this.slots;
- for (var i = 0, n = slots.length; i < n; i++) {
- var slot = slots[i];
- if (slot.data.name == slotName)
- return slot;
- }
- return null;
- };
- Skeleton.prototype.findSlotIndex = function (slotName) {
- if (slotName == null)
- throw new Error("slotName cannot be null.");
- var slots = this.slots;
- for (var i = 0, n = slots.length; i < n; i++)
- if (slots[i].data.name == slotName)
- return i;
- return -1;
- };
- Skeleton.prototype.setSkinByName = function (skinName) {
- var skin = this.data.findSkin(skinName);
- if (skin == null)
- throw new Error("Skin not found: " + skinName);
- this.setSkin(skin);
- };
- Skeleton.prototype.setSkin = function (newSkin) {
- if (newSkin != null) {
- if (this.skin != null)
- newSkin.attachAll(this, this.skin);
- else {
- var slots = this.slots;
- for (var i = 0, n = slots.length; i < n; i++) {
- var slot = slots[i];
- var name_1 = slot.data.attachmentName;
- if (name_1 != null) {
- var attachment = newSkin.getAttachment(i, name_1);
- if (attachment != null)
- slot.setAttachment(attachment);
- }
- }
- }
- }
- this.skin = newSkin;
- };
- Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) {
- return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName);
- };
- Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) {
- if (attachmentName == null)
- throw new Error("attachmentName cannot be null.");
- if (this.skin != null) {
- var attachment = this.skin.getAttachment(slotIndex, attachmentName);
- if (attachment != null)
- return attachment;
- }
- if (this.data.defaultSkin != null)
- return this.data.defaultSkin.getAttachment(slotIndex, attachmentName);
- return null;
- };
- Skeleton.prototype.setAttachment = function (slotName, attachmentName) {
- if (slotName == null)
- throw new Error("slotName cannot be null.");
- var slots = this.slots;
- for (var i = 0, n = slots.length; i < n; i++) {
- var slot = slots[i];
- if (slot.data.name == slotName) {
- var attachment = null;
- if (attachmentName != null) {
- attachment = this.getAttachment(i, attachmentName);
- if (attachment == null)
- throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName);
- }
- slot.setAttachment(attachment);
- return;
- }
- }
- throw new Error("Slot not found: " + slotName);
- };
- Skeleton.prototype.findIkConstraint = function (constraintName) {
- if (constraintName == null)
- throw new Error("constraintName cannot be null.");
- var ikConstraints = this.ikConstraints;
- for (var i = 0, n = ikConstraints.length; i < n; i++) {
- var ikConstraint = ikConstraints[i];
- if (ikConstraint.data.name == constraintName)
- return ikConstraint;
- }
- return null;
- };
- Skeleton.prototype.findTransformConstraint = function (constraintName) {
- if (constraintName == null)
- throw new Error("constraintName cannot be null.");
- var transformConstraints = this.transformConstraints;
- for (var i = 0, n = transformConstraints.length; i < n; i++) {
- var constraint = transformConstraints[i];
- if (constraint.data.name == constraintName)
- return constraint;
- }
- return null;
- };
- Skeleton.prototype.findPathConstraint = function (constraintName) {
- if (constraintName == null)
- throw new Error("constraintName cannot be null.");
- var pathConstraints = this.pathConstraints;
- for (var i = 0, n = pathConstraints.length; i < n; i++) {
- var constraint = pathConstraints[i];
- if (constraint.data.name == constraintName)
- return constraint;
- }
- return null;
- };
- Skeleton.prototype.getBounds = function (offset, size, temp) {
- if (offset == null)
- throw new Error("offset cannot be null.");
- if (size == null)
- throw new Error("size cannot be null.");
- var drawOrder = this.drawOrder;
- var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY;
- for (var i = 0, n = drawOrder.length; i < n; i++) {
- var slot = drawOrder[i];
- var verticesLength = 0;
- var vertices = null;
- var attachment = slot.getAttachment();
- if (attachment instanceof core.RegionAttachment) {
- verticesLength = 8;
- vertices = core.Utils.setArraySize(temp, verticesLength, 0);
- attachment.computeWorldVertices(slot.bone, vertices, 0, 2);
- }
- else if (attachment instanceof core.MeshAttachment) {
- var mesh = attachment;
- verticesLength = mesh.worldVerticesLength;
- vertices = core.Utils.setArraySize(temp, verticesLength, 0);
- mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2);
- }
- if (vertices != null) {
- for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) {
- var x = vertices[ii], y = vertices[ii + 1];
- minX = Math.min(minX, x);
- minY = Math.min(minY, y);
- maxX = Math.max(maxX, x);
- maxY = Math.max(maxY, y);
- }
- }
- }
- offset.set(minX, minY);
- size.set(maxX - minX, maxY - minY);
- };
- Skeleton.prototype.update = function (delta) {
- this.time += delta;
- };
- return Skeleton;
- }());
- core.Skeleton = Skeleton;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var SkeletonBounds = (function () {
- function SkeletonBounds() {
- this.minX = 0;
- this.minY = 0;
- this.maxX = 0;
- this.maxY = 0;
- this.boundingBoxes = new Array();
- this.polygons = new Array();
- this.polygonPool = new core.Pool(function () {
- return core.Utils.newFloatArray(16);
- });
- }
- SkeletonBounds.prototype.update = function (skeleton, updateAabb) {
- if (skeleton == null)
- throw new Error("skeleton cannot be null.");
- var boundingBoxes = this.boundingBoxes;
- var polygons = this.polygons;
- var polygonPool = this.polygonPool;
- var slots = skeleton.slots;
- var slotCount = slots.length;
- boundingBoxes.length = 0;
- polygonPool.freeAll(polygons);
- polygons.length = 0;
- for (var i = 0; i < slotCount; i++) {
- var slot = slots[i];
- var attachment = slot.getAttachment();
- if (attachment instanceof core.BoundingBoxAttachment) {
- var boundingBox = attachment;
- boundingBoxes.push(boundingBox);
- var polygon = polygonPool.obtain();
- if (polygon.length != boundingBox.worldVerticesLength) {
- polygon = core.Utils.newFloatArray(boundingBox.worldVerticesLength);
- }
- polygons.push(polygon);
- boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2);
- }
- }
- if (updateAabb) {
- this.aabbCompute();
- }
- else {
- this.minX = Number.POSITIVE_INFINITY;
- this.minY = Number.POSITIVE_INFINITY;
- this.maxX = Number.NEGATIVE_INFINITY;
- this.maxY = Number.NEGATIVE_INFINITY;
- }
- };
- SkeletonBounds.prototype.aabbCompute = function () {
- var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY;
- var polygons = this.polygons;
- for (var i = 0, n = polygons.length; i < n; i++) {
- var polygon = polygons[i];
- var vertices = polygon;
- for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) {
- var x = vertices[ii];
- var y = vertices[ii + 1];
- minX = Math.min(minX, x);
- minY = Math.min(minY, y);
- maxX = Math.max(maxX, x);
- maxY = Math.max(maxY, y);
- }
- }
- this.minX = minX;
- this.minY = minY;
- this.maxX = maxX;
- this.maxY = maxY;
- };
- SkeletonBounds.prototype.aabbContainsPoint = function (x, y) {
- return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY;
- };
- SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) {
- var minX = this.minX;
- var minY = this.minY;
- var maxX = this.maxX;
- var maxY = this.maxY;
- if ((x1 <= minX && x2 <= minX) || (y1 <= minY && y2 <= minY) || (x1 >= maxX && x2 >= maxX) || (y1 >= maxY && y2 >= maxY))
- return false;
- var m = (y2 - y1) / (x2 - x1);
- var y = m * (minX - x1) + y1;
- if (y > minY && y < maxY)
- return true;
- y = m * (maxX - x1) + y1;
- if (y > minY && y < maxY)
- return true;
- var x = (minY - y1) / m + x1;
- if (x > minX && x < maxX)
- return true;
- x = (maxY - y1) / m + x1;
- if (x > minX && x < maxX)
- return true;
- return false;
- };
- SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) {
- return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY;
- };
- SkeletonBounds.prototype.containsPoint = function (x, y) {
- var polygons = this.polygons;
- for (var i = 0, n = polygons.length; i < n; i++)
- if (this.containsPointPolygon(polygons[i], x, y))
- return this.boundingBoxes[i];
- return null;
- };
- SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) {
- var vertices = polygon;
- var nn = polygon.length;
- var prevIndex = nn - 2;
- var inside = false;
- for (var ii = 0; ii < nn; ii += 2) {
- var vertexY = vertices[ii + 1];
- var prevY = vertices[prevIndex + 1];
- if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) {
- var vertexX = vertices[ii];
- if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x)
- inside = !inside;
- }
- prevIndex = ii;
- }
- return inside;
- };
- SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) {
- var polygons = this.polygons;
- for (var i = 0, n = polygons.length; i < n; i++)
- if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2))
- return this.boundingBoxes[i];
- return null;
- };
- SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) {
- var vertices = polygon;
- var nn = polygon.length;
- var width12 = x1 - x2, height12 = y1 - y2;
- var det1 = x1 * y2 - y1 * x2;
- var x3 = vertices[nn - 2], y3 = vertices[nn - 1];
- for (var ii = 0; ii < nn; ii += 2) {
- var x4 = vertices[ii], y4 = vertices[ii + 1];
- var det2 = x3 * y4 - y3 * x4;
- var width34 = x3 - x4, height34 = y3 - y4;
- var det3 = width12 * height34 - height12 * width34;
- var x = (det1 * width34 - width12 * det2) / det3;
- if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) {
- var y = (det1 * height34 - height12 * det2) / det3;
- if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1)))
- return true;
- }
- x3 = x4;
- y3 = y4;
- }
- return false;
- };
- SkeletonBounds.prototype.getPolygon = function (boundingBox) {
- if (boundingBox == null)
- throw new Error("boundingBox cannot be null.");
- var index = this.boundingBoxes.indexOf(boundingBox);
- return index == -1 ? null : this.polygons[index];
- };
- SkeletonBounds.prototype.getWidth = function () {
- return this.maxX - this.minX;
- };
- SkeletonBounds.prototype.getHeight = function () {
- return this.maxY - this.minY;
- };
- return SkeletonBounds;
- }());
- core.SkeletonBounds = SkeletonBounds;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var SkeletonClipping = (function () {
- function SkeletonClipping() {
- this.triangulator = new core.Triangulator();
- this.clippingPolygon = new Array();
- this.clipOutput = new Array();
- this.clippedVertices = new Array();
- this.clippedTriangles = new Array();
- this.scratch = new Array();
- }
- SkeletonClipping.prototype.clipStart = function (slot, clip) {
- if (this.clipAttachment != null)
- return 0;
- this.clipAttachment = clip;
- var n = clip.worldVerticesLength;
- var vertices = core.Utils.setArraySize(this.clippingPolygon, n);
- clip.computeWorldVertices(slot, 0, n, vertices, 0, 2);
- var clippingPolygon = this.clippingPolygon;
- SkeletonClipping.makeClockwise(clippingPolygon);
- var clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon));
- for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) {
- var polygon = clippingPolygons[i];
- SkeletonClipping.makeClockwise(polygon);
- polygon.push(polygon[0]);
- polygon.push(polygon[1]);
- }
- return clippingPolygons.length;
- };
- SkeletonClipping.prototype.clipEndWithSlot = function (slot) {
- if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data)
- this.clipEnd();
- };
- SkeletonClipping.prototype.clipEnd = function () {
- if (this.clipAttachment == null)
- return;
- this.clipAttachment = null;
- this.clippingPolygons = null;
- this.clippedVertices.length = 0;
- this.clippedTriangles.length = 0;
- this.clippingPolygon.length = 0;
- };
- SkeletonClipping.prototype.isClipping = function () {
- return this.clipAttachment != null;
- };
- SkeletonClipping.prototype.clipTriangles = function (vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) {
- var clipOutput = this.clipOutput, clippedVertices = this.clippedVertices;
- var clippedTriangles = this.clippedTriangles;
- var polygons = this.clippingPolygons;
- var polygonsCount = this.clippingPolygons.length;
- var vertexSize = twoColor ? 12 : 8;
- var index = 0;
- clippedVertices.length = 0;
- clippedTriangles.length = 0;
- outer: for (var i = 0; i < trianglesLength; i += 3) {
- var vertexOffset = triangles[i] << 1;
- var x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1];
- var u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1];
- vertexOffset = triangles[i + 1] << 1;
- var x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1];
- var u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1];
- vertexOffset = triangles[i + 2] << 1;
- var x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1];
- var u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1];
- for (var p = 0; p < polygonsCount; p++) {
- var s = clippedVertices.length;
- if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) {
- var clipOutputLength = clipOutput.length;
- if (clipOutputLength == 0)
- continue;
- var d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1;
- var d = 1 / (d0 * d2 + d1 * (y1 - y3));
- var clipOutputCount = clipOutputLength >> 1;
- var clipOutputItems = this.clipOutput;
- var clippedVerticesItems = core.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize);
- for (var ii = 0; ii < clipOutputLength; ii += 2) {
- var x = clipOutputItems[ii], y = clipOutputItems[ii + 1];
- clippedVerticesItems[s] = x;
- clippedVerticesItems[s + 1] = y;
- clippedVerticesItems[s + 2] = light.r;
- clippedVerticesItems[s + 3] = light.g;
- clippedVerticesItems[s + 4] = light.b;
- clippedVerticesItems[s + 5] = light.a;
- var c0 = x - x3, c1 = y - y3;
- var a = (d0 * c0 + d1 * c1) * d;
- var b = (d4 * c0 + d2 * c1) * d;
- var c = 1 - a - b;
- clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c;
- clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c;
- if (twoColor) {
- clippedVerticesItems[s + 8] = dark.r;
- clippedVerticesItems[s + 9] = dark.g;
- clippedVerticesItems[s + 10] = dark.b;
- clippedVerticesItems[s + 11] = dark.a;
- }
- s += vertexSize;
- }
- s = clippedTriangles.length;
- var clippedTrianglesItems = core.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2));
- clipOutputCount--;
- for (var ii = 1; ii < clipOutputCount; ii++) {
- clippedTrianglesItems[s] = index;
- clippedTrianglesItems[s + 1] = (index + ii);
- clippedTrianglesItems[s + 2] = (index + ii + 1);
- s += 3;
- }
- index += clipOutputCount + 1;
- }
- else {
- var clippedVerticesItems = core.Utils.setArraySize(clippedVertices, s + 3 * vertexSize);
- clippedVerticesItems[s] = x1;
- clippedVerticesItems[s + 1] = y1;
- clippedVerticesItems[s + 2] = light.r;
- clippedVerticesItems[s + 3] = light.g;
- clippedVerticesItems[s + 4] = light.b;
- clippedVerticesItems[s + 5] = light.a;
- if (!twoColor) {
- clippedVerticesItems[s + 6] = u1;
- clippedVerticesItems[s + 7] = v1;
- clippedVerticesItems[s + 8] = x2;
- clippedVerticesItems[s + 9] = y2;
- clippedVerticesItems[s + 10] = light.r;
- clippedVerticesItems[s + 11] = light.g;
- clippedVerticesItems[s + 12] = light.b;
- clippedVerticesItems[s + 13] = light.a;
- clippedVerticesItems[s + 14] = u2;
- clippedVerticesItems[s + 15] = v2;
- clippedVerticesItems[s + 16] = x3;
- clippedVerticesItems[s + 17] = y3;
- clippedVerticesItems[s + 18] = light.r;
- clippedVerticesItems[s + 19] = light.g;
- clippedVerticesItems[s + 20] = light.b;
- clippedVerticesItems[s + 21] = light.a;
- clippedVerticesItems[s + 22] = u3;
- clippedVerticesItems[s + 23] = v3;
- }
- else {
- clippedVerticesItems[s + 6] = u1;
- clippedVerticesItems[s + 7] = v1;
- clippedVerticesItems[s + 8] = dark.r;
- clippedVerticesItems[s + 9] = dark.g;
- clippedVerticesItems[s + 10] = dark.b;
- clippedVerticesItems[s + 11] = dark.a;
- clippedVerticesItems[s + 12] = x2;
- clippedVerticesItems[s + 13] = y2;
- clippedVerticesItems[s + 14] = light.r;
- clippedVerticesItems[s + 15] = light.g;
- clippedVerticesItems[s + 16] = light.b;
- clippedVerticesItems[s + 17] = light.a;
- clippedVerticesItems[s + 18] = u2;
- clippedVerticesItems[s + 19] = v2;
- clippedVerticesItems[s + 20] = dark.r;
- clippedVerticesItems[s + 21] = dark.g;
- clippedVerticesItems[s + 22] = dark.b;
- clippedVerticesItems[s + 23] = dark.a;
- clippedVerticesItems[s + 24] = x3;
- clippedVerticesItems[s + 25] = y3;
- clippedVerticesItems[s + 26] = light.r;
- clippedVerticesItems[s + 27] = light.g;
- clippedVerticesItems[s + 28] = light.b;
- clippedVerticesItems[s + 29] = light.a;
- clippedVerticesItems[s + 30] = u3;
- clippedVerticesItems[s + 31] = v3;
- clippedVerticesItems[s + 32] = dark.r;
- clippedVerticesItems[s + 33] = dark.g;
- clippedVerticesItems[s + 34] = dark.b;
- clippedVerticesItems[s + 35] = dark.a;
- }
- s = clippedTriangles.length;
- var clippedTrianglesItems = core.Utils.setArraySize(clippedTriangles, s + 3);
- clippedTrianglesItems[s] = index;
- clippedTrianglesItems[s + 1] = (index + 1);
- clippedTrianglesItems[s + 2] = (index + 2);
- index += 3;
- continue outer;
- }
- }
- }
- };
- SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) {
- var originalOutput = output;
- var clipped = false;
- var input = null;
- if (clippingArea.length % 4 >= 2) {
- input = output;
- output = this.scratch;
- }
- else
- input = this.scratch;
- input.length = 0;
- input.push(x1);
- input.push(y1);
- input.push(x2);
- input.push(y2);
- input.push(x3);
- input.push(y3);
- input.push(x1);
- input.push(y1);
- output.length = 0;
- var clippingVertices = clippingArea;
- var clippingVerticesLast = clippingArea.length - 4;
- for (var i = 0;; i += 2) {
- var edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1];
- var edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3];
- var deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2;
- var inputVertices = input;
- var inputVerticesLength = input.length - 2, outputStart = output.length;
- for (var ii = 0; ii < inputVerticesLength; ii += 2) {
- var inputX = inputVertices[ii], inputY = inputVertices[ii + 1];
- var inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3];
- var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0;
- if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) {
- if (side2) {
- output.push(inputX2);
- output.push(inputY2);
- continue;
- }
- var c0 = inputY2 - inputY, c2 = inputX2 - inputX;
- var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY));
- output.push(edgeX + (edgeX2 - edgeX) * ua);
- output.push(edgeY + (edgeY2 - edgeY) * ua);
- }
- else if (side2) {
- var c0 = inputY2 - inputY, c2 = inputX2 - inputX;
- var ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY));
- output.push(edgeX + (edgeX2 - edgeX) * ua);
- output.push(edgeY + (edgeY2 - edgeY) * ua);
- output.push(inputX2);
- output.push(inputY2);
- }
- clipped = true;
- }
- if (outputStart == output.length) {
- originalOutput.length = 0;
- return true;
- }
- output.push(output[0]);
- output.push(output[1]);
- if (i == clippingVerticesLast)
- break;
- var temp = output;
- output = input;
- output.length = 0;
- input = temp;
- }
- if (originalOutput != output) {
- originalOutput.length = 0;
- for (var i = 0, n = output.length - 2; i < n; i++)
- originalOutput[i] = output[i];
- }
- else
- originalOutput.length = originalOutput.length - 2;
- return clipped;
- };
- SkeletonClipping.makeClockwise = function (polygon) {
- var vertices = polygon;
- var verticeslength = polygon.length;
- var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0;
- for (var i = 0, n = verticeslength - 3; i < n; i += 2) {
- p1x = vertices[i];
- p1y = vertices[i + 1];
- p2x = vertices[i + 2];
- p2y = vertices[i + 3];
- area += p1x * p2y - p2x * p1y;
- }
- if (area < 0)
- return;
- for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) {
- var x = vertices[i], y = vertices[i + 1];
- var other = lastX - i;
- vertices[i] = vertices[other];
- vertices[i + 1] = vertices[other + 1];
- vertices[other] = x;
- vertices[other + 1] = y;
- }
- };
- return SkeletonClipping;
- }());
- core.SkeletonClipping = SkeletonClipping;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var SkeletonData = (function () {
- function SkeletonData() {
- this.bones = new Array();
- this.slots = new Array();
- this.skins = new Array();
- this.events = new Array();
- this.animations = new Array();
- this.ikConstraints = new Array();
- this.transformConstraints = new Array();
- this.pathConstraints = new Array();
- this.fps = 0;
- }
- SkeletonData.prototype.findBone = function (boneName) {
- if (boneName == null)
- throw new Error("boneName cannot be null.");
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++) {
- var bone = bones[i];
- if (bone.name == boneName)
- return bone;
- }
- return null;
- };
- SkeletonData.prototype.findBoneIndex = function (boneName) {
- if (boneName == null)
- throw new Error("boneName cannot be null.");
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++)
- if (bones[i].name == boneName)
- return i;
- return -1;
- };
- SkeletonData.prototype.findSlot = function (slotName) {
- if (slotName == null)
- throw new Error("slotName cannot be null.");
- var slots = this.slots;
- for (var i = 0, n = slots.length; i < n; i++) {
- var slot = slots[i];
- if (slot.name == slotName)
- return slot;
- }
- return null;
- };
- SkeletonData.prototype.findSlotIndex = function (slotName) {
- if (slotName == null)
- throw new Error("slotName cannot be null.");
- var slots = this.slots;
- for (var i = 0, n = slots.length; i < n; i++)
- if (slots[i].name == slotName)
- return i;
- return -1;
- };
- SkeletonData.prototype.findSkin = function (skinName) {
- if (skinName == null)
- throw new Error("skinName cannot be null.");
- var skins = this.skins;
- for (var i = 0, n = skins.length; i < n; i++) {
- var skin = skins[i];
- if (skin.name == skinName)
- return skin;
- }
- return null;
- };
- SkeletonData.prototype.findEvent = function (eventDataName) {
- if (eventDataName == null)
- throw new Error("eventDataName cannot be null.");
- var events = this.events;
- for (var i = 0, n = events.length; i < n; i++) {
- var event_4 = events[i];
- if (event_4.name == eventDataName)
- return event_4;
- }
- return null;
- };
- SkeletonData.prototype.findAnimation = function (animationName) {
- if (animationName == null)
- throw new Error("animationName cannot be null.");
- var animations = this.animations;
- for (var i = 0, n = animations.length; i < n; i++) {
- var animation = animations[i];
- if (animation.name == animationName)
- return animation;
- }
- return null;
- };
- SkeletonData.prototype.findIkConstraint = function (constraintName) {
- if (constraintName == null)
- throw new Error("constraintName cannot be null.");
- var ikConstraints = this.ikConstraints;
- for (var i = 0, n = ikConstraints.length; i < n; i++) {
- var constraint = ikConstraints[i];
- if (constraint.name == constraintName)
- return constraint;
- }
- return null;
- };
- SkeletonData.prototype.findTransformConstraint = function (constraintName) {
- if (constraintName == null)
- throw new Error("constraintName cannot be null.");
- var transformConstraints = this.transformConstraints;
- for (var i = 0, n = transformConstraints.length; i < n; i++) {
- var constraint = transformConstraints[i];
- if (constraint.name == constraintName)
- return constraint;
- }
- return null;
- };
- SkeletonData.prototype.findPathConstraint = function (constraintName) {
- if (constraintName == null)
- throw new Error("constraintName cannot be null.");
- var pathConstraints = this.pathConstraints;
- for (var i = 0, n = pathConstraints.length; i < n; i++) {
- var constraint = pathConstraints[i];
- if (constraint.name == constraintName)
- return constraint;
- }
- return null;
- };
- SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) {
- if (pathConstraintName == null)
- throw new Error("pathConstraintName cannot be null.");
- var pathConstraints = this.pathConstraints;
- for (var i = 0, n = pathConstraints.length; i < n; i++)
- if (pathConstraints[i].name == pathConstraintName)
- return i;
- return -1;
- };
- return SkeletonData;
- }());
- core.SkeletonData = SkeletonData;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var SkeletonJson = (function () {
- function SkeletonJson(attachmentLoader) {
- this.scale = 1;
- this.linkedMeshes = new Array();
- this.attachmentLoader = attachmentLoader;
- }
- SkeletonJson.prototype.readSkeletonData = function (json) {
- var scale = this.scale;
- var skeletonData = new core.SkeletonData();
- var root = typeof (json) === "string" ? JSON.parse(json) : json;
- var skeletonMap = root.skeleton;
- if (skeletonMap != null) {
- skeletonData.hash = skeletonMap.hash;
- skeletonData.version = skeletonMap.spine;
- skeletonData.width = skeletonMap.width;
- skeletonData.height = skeletonMap.height;
- skeletonData.fps = skeletonMap.fps;
- skeletonData.imagesPath = skeletonMap.images;
- }
- if (root.bones) {
- for (var i = 0; i < root.bones.length; i++) {
- var boneMap = root.bones[i];
- var parent_2 = null;
- var parentName = this.getValue(boneMap, "parent", null);
- if (parentName != null) {
- parent_2 = skeletonData.findBone(parentName);
- if (parent_2 == null)
- throw new Error("Parent bone not found: " + parentName);
- }
- var data = new core.BoneData(skeletonData.bones.length, boneMap.name, parent_2);
- data.length = this.getValue(boneMap, "length", 0) * scale;
- data.x = this.getValue(boneMap, "x", 0) * scale;
- data.y = this.getValue(boneMap, "y", 0) * scale;
- data.rotation = this.getValue(boneMap, "rotation", 0);
- data.scaleX = this.getValue(boneMap, "scaleX", 1);
- data.scaleY = this.getValue(boneMap, "scaleY", 1);
- data.shearX = this.getValue(boneMap, "shearX", 0);
- data.shearY = this.getValue(boneMap, "shearY", 0);
- data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, "transform", "normal"));
- skeletonData.bones.push(data);
- }
- }
- if (root.slots) {
- for (var i = 0; i < root.slots.length; i++) {
- var slotMap = root.slots[i];
- var slotName = slotMap.name;
- var boneName = slotMap.bone;
- var boneData = skeletonData.findBone(boneName);
- if (boneData == null)
- throw new Error("Slot bone not found: " + boneName);
- var data = new core.SlotData(skeletonData.slots.length, slotName, boneData);
- var color = this.getValue(slotMap, "color", null);
- if (color != null)
- data.color.setFromString(color);
- var dark = this.getValue(slotMap, "dark", null);
- if (dark != null) {
- data.darkColor = new core.Color(1, 1, 1, 1);
- data.darkColor.setFromString(dark);
- }
- data.attachmentName = this.getValue(slotMap, "attachment", null);
- data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, "blend", "normal"));
- skeletonData.slots.push(data);
- }
- }
- if (root.ik) {
- for (var i = 0; i < root.ik.length; i++) {
- var constraintMap = root.ik[i];
- var data = new core.IkConstraintData(constraintMap.name);
- data.order = this.getValue(constraintMap, "order", 0);
- for (var j = 0; j < constraintMap.bones.length; j++) {
- var boneName = constraintMap.bones[j];
- var bone = skeletonData.findBone(boneName);
- if (bone == null)
- throw new Error("IK bone not found: " + boneName);
- data.bones.push(bone);
- }
- var targetName = constraintMap.target;
- data.target = skeletonData.findBone(targetName);
- if (data.target == null)
- throw new Error("IK target bone not found: " + targetName);
- data.bendDirection = this.getValue(constraintMap, "bendPositive", true) ? 1 : -1;
- data.mix = this.getValue(constraintMap, "mix", 1);
- skeletonData.ikConstraints.push(data);
- }
- }
- if (root.transform) {
- for (var i = 0; i < root.transform.length; i++) {
- var constraintMap = root.transform[i];
- var data = new core.TransformConstraintData(constraintMap.name);
- data.order = this.getValue(constraintMap, "order", 0);
- for (var j = 0; j < constraintMap.bones.length; j++) {
- var boneName = constraintMap.bones[j];
- var bone = skeletonData.findBone(boneName);
- if (bone == null)
- throw new Error("Transform constraint bone not found: " + boneName);
- data.bones.push(bone);
- }
- var targetName = constraintMap.target;
- data.target = skeletonData.findBone(targetName);
- if (data.target == null)
- throw new Error("Transform constraint target bone not found: " + targetName);
- data.local = this.getValue(constraintMap, "local", false);
- data.relative = this.getValue(constraintMap, "relative", false);
- data.offsetRotation = this.getValue(constraintMap, "rotation", 0);
- data.offsetX = this.getValue(constraintMap, "x", 0) * scale;
- data.offsetY = this.getValue(constraintMap, "y", 0) * scale;
- data.offsetScaleX = this.getValue(constraintMap, "scaleX", 0);
- data.offsetScaleY = this.getValue(constraintMap, "scaleY", 0);
- data.offsetShearY = this.getValue(constraintMap, "shearY", 0);
- data.rotateMix = this.getValue(constraintMap, "rotateMix", 1);
- data.translateMix = this.getValue(constraintMap, "translateMix", 1);
- data.scaleMix = this.getValue(constraintMap, "scaleMix", 1);
- data.shearMix = this.getValue(constraintMap, "shearMix", 1);
- skeletonData.transformConstraints.push(data);
- }
- }
- if (root.path) {
- for (var i = 0; i < root.path.length; i++) {
- var constraintMap = root.path[i];
- var data = new core.PathConstraintData(constraintMap.name);
- data.order = this.getValue(constraintMap, "order", 0);
- for (var j = 0; j < constraintMap.bones.length; j++) {
- var boneName = constraintMap.bones[j];
- var bone = skeletonData.findBone(boneName);
- if (bone == null)
- throw new Error("Transform constraint bone not found: " + boneName);
- data.bones.push(bone);
- }
- var targetName = constraintMap.target;
- data.target = skeletonData.findSlot(targetName);
- if (data.target == null)
- throw new Error("Path target slot not found: " + targetName);
- data.positionMode = SkeletonJson.positionModeFromString(this.getValue(constraintMap, "positionMode", "percent"));
- data.spacingMode = SkeletonJson.spacingModeFromString(this.getValue(constraintMap, "spacingMode", "length"));
- data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, "rotateMode", "tangent"));
- data.offsetRotation = this.getValue(constraintMap, "rotation", 0);
- data.position = this.getValue(constraintMap, "position", 0);
- if (data.positionMode == core.PositionMode.Fixed)
- data.position *= scale;
- data.spacing = this.getValue(constraintMap, "spacing", 0);
- if (data.spacingMode == core.SpacingMode.Length || data.spacingMode == core.SpacingMode.Fixed)
- data.spacing *= scale;
- data.rotateMix = this.getValue(constraintMap, "rotateMix", 1);
- data.translateMix = this.getValue(constraintMap, "translateMix", 1);
- skeletonData.pathConstraints.push(data);
- }
- }
- if (root.skins) {
- for (var skinName in root.skins) {
- var skinMap = root.skins[skinName];
- var skin = new core.Skin(skinName);
- for (var slotName in skinMap) {
- var slotIndex = skeletonData.findSlotIndex(slotName);
- if (slotIndex == -1)
- throw new Error("Slot not found: " + slotName);
- var slotMap = skinMap[slotName];
- for (var entryName in slotMap) {
- var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData);
- if (attachment != null)
- skin.addAttachment(slotIndex, entryName, attachment);
- }
- }
- skeletonData.skins.push(skin);
- if (skin.name == "default")
- skeletonData.defaultSkin = skin;
- }
- }
- for (var i = 0, n = this.linkedMeshes.length; i < n; i++) {
- var linkedMesh = this.linkedMeshes[i];
- var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin);
- if (skin == null)
- throw new Error("Skin not found: " + linkedMesh.skin);
- var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent);
- if (parent_3 == null)
- throw new Error("Parent mesh not found: " + linkedMesh.parent);
- linkedMesh.mesh.setParentMesh(parent_3);
- }
- this.linkedMeshes.length = 0;
- if (root.events) {
- for (var eventName in root.events) {
- var eventMap = root.events[eventName];
- var data = new core.EventData(eventName);
- data.intValue = this.getValue(eventMap, "int", 0);
- data.floatValue = this.getValue(eventMap, "float", 0);
- data.stringValue = this.getValue(eventMap, "string", "");
- data.audio = this.getValue(eventMap, "audio", null);
- skeletonData.events.push(data);
- }
- }
- if (root.animations) {
- for (var animationName in root.animations) {
- var animationMap = root.animations[animationName];
- this.readAnimation(animationMap, animationName, skeletonData);
- }
- }
- return skeletonData;
- };
- SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) {
- var scale = this.scale;
- name = this.getValue(map, "name", name);
- var type = this.getValue(map, "type", "region");
- switch (type) {
- case "region": {
- var path = this.getValue(map, "path", name);
- var region = this.attachmentLoader.newRegionAttachment(skin, name, path);
- if (region == null)
- return null;
- region.path = path;
- region.x = this.getValue(map, "x", 0) * scale;
- region.y = this.getValue(map, "y", 0) * scale;
- region.scaleX = this.getValue(map, "scaleX", 1);
- region.scaleY = this.getValue(map, "scaleY", 1);
- region.rotation = this.getValue(map, "rotation", 0);
- region.width = map.width * scale;
- region.height = map.height * scale;
- var color = this.getValue(map, "color", null);
- if (color != null)
- region.color.setFromString(color);
- return region;
- }
- case "boundingbox": {
- var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name);
- if (box == null)
- return null;
- this.readVertices(map, box, map.vertexCount << 1);
- var color = this.getValue(map, "color", null);
- if (color != null)
- box.color.setFromString(color);
- return box;
- }
- case "mesh":
- case "linkedmesh": {
- var path = this.getValue(map, "path", name);
- var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path);
- if (mesh == null)
- return null;
- mesh.path = path;
- var color = this.getValue(map, "color", null);
- if (color != null)
- mesh.color.setFromString(color);
- var parent_4 = this.getValue(map, "parent", null);
- if (parent_4 != null) {
- mesh.inheritDeform = this.getValue(map, "deform", true);
- this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, "skin", null), slotIndex, parent_4));
- return mesh;
- }
- var uvs = map.uvs;
- this.readVertices(map, mesh, uvs.length);
- mesh.triangles = map.triangles;
- mesh.regionUVs = uvs;
- mesh.hullLength = this.getValue(map, "hull", 0) * 2;
- return mesh;
- }
- case "path": {
- var path = this.attachmentLoader.newPathAttachment(skin, name);
- if (path == null)
- return null;
- path.closed = this.getValue(map, "closed", false);
- path.constantSpeed = this.getValue(map, "constantSpeed", true);
- var vertexCount = map.vertexCount;
- this.readVertices(map, path, vertexCount << 1);
- var lengths = core.Utils.newArray(vertexCount / 3, 0);
- for (var i = 0; i < map.lengths.length; i++)
- lengths[i] = map.lengths[i] * scale;
- path.lengths = lengths;
- var color = this.getValue(map, "color", null);
- if (color != null)
- path.color.setFromString(color);
- return path;
- }
- case "point": {
- var point = this.attachmentLoader.newPointAttachment(skin, name);
- if (point == null)
- return null;
- point.x = this.getValue(map, "x", 0) * scale;
- point.y = this.getValue(map, "y", 0) * scale;
- point.rotation = this.getValue(map, "rotation", 0);
- var color = this.getValue(map, "color", null);
- if (color != null)
- point.color.setFromString(color);
- return point;
- }
- case "clipping": {
- var clip = this.attachmentLoader.newClippingAttachment(skin, name);
- if (clip == null)
- return null;
- var end = this.getValue(map, "end", null);
- if (end != null) {
- var slot = skeletonData.findSlot(end);
- if (slot == null)
- throw new Error("Clipping end slot not found: " + end);
- clip.endSlot = slot;
- }
- var vertexCount = map.vertexCount;
- this.readVertices(map, clip, vertexCount << 1);
- var color = this.getValue(map, "color", null);
- if (color != null)
- clip.color.setFromString(color);
- return clip;
- }
- }
- return null;
- };
- SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) {
- var scale = this.scale;
- attachment.worldVerticesLength = verticesLength;
- var vertices = map.vertices;
- if (verticesLength == vertices.length) {
- var scaledVertices = core.Utils.toFloatArray(vertices);
- if (scale != 1) {
- for (var i = 0, n = vertices.length; i < n; i++)
- scaledVertices[i] *= scale;
- }
- attachment.vertices = scaledVertices;
- return;
- }
- var weights = new Array();
- var bones = new Array();
- for (var i = 0, n = vertices.length; i < n;) {
- var boneCount = vertices[i++];
- bones.push(boneCount);
- for (var nn = i + boneCount * 4; i < nn; i += 4) {
- bones.push(vertices[i]);
- weights.push(vertices[i + 1] * scale);
- weights.push(vertices[i + 2] * scale);
- weights.push(vertices[i + 3]);
- }
- }
- attachment.bones = bones;
- attachment.vertices = core.Utils.toFloatArray(weights);
- };
- SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) {
- var scale = this.scale;
- var timelines = new Array();
- var duration = 0;
- if (map.slots) {
- for (var slotName in map.slots) {
- var slotMap = map.slots[slotName];
- var slotIndex = skeletonData.findSlotIndex(slotName);
- if (slotIndex == -1)
- throw new Error("Slot not found: " + slotName);
- for (var timelineName in slotMap) {
- var timelineMap = slotMap[timelineName];
- if (timelineName == "attachment") {
- var timeline = new core.AttachmentTimeline(timelineMap.length);
- timeline.slotIndex = slotIndex;
- var frameIndex = 0;
- for (var i = 0; i < timelineMap.length; i++) {
- var valueMap = timelineMap[i];
- timeline.setFrame(frameIndex++, valueMap.time, valueMap.name);
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);
- }
- else if (timelineName == "color") {
- var timeline = new core.ColorTimeline(timelineMap.length);
- timeline.slotIndex = slotIndex;
- var frameIndex = 0;
- for (var i = 0; i < timelineMap.length; i++) {
- var valueMap = timelineMap[i];
- var color = new core.Color();
- color.setFromString(valueMap.color || "ffffffff");
- timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a);
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.ColorTimeline.ENTRIES]);
- }
- else if (timelineName == "twoColor") {
- var timeline = new core.TwoColorTimeline(timelineMap.length);
- timeline.slotIndex = slotIndex;
- var frameIndex = 0;
- for (var i = 0; i < timelineMap.length; i++) {
- var valueMap = timelineMap[i];
- var light = new core.Color();
- var dark = new core.Color();
- light.setFromString(valueMap.light);
- dark.setFromString(valueMap.dark);
- timeline.setFrame(frameIndex, valueMap.time, light.r, light.g, light.b, light.a, dark.r, dark.g, dark.b);
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.TwoColorTimeline.ENTRIES]);
- }
- else
- throw new Error("Invalid timeline type for a slot: " + timelineName + " (" + slotName + ")");
- }
- }
- }
- if (map.bones) {
- for (var boneName in map.bones) {
- var boneMap = map.bones[boneName];
- var boneIndex = skeletonData.findBoneIndex(boneName);
- if (boneIndex == -1)
- throw new Error("Bone not found: " + boneName);
- for (var timelineName in boneMap) {
- var timelineMap = boneMap[timelineName];
- if (timelineName === "rotate") {
- var timeline = new core.RotateTimeline(timelineMap.length);
- timeline.boneIndex = boneIndex;
- var frameIndex = 0;
- for (var i = 0; i < timelineMap.length; i++) {
- var valueMap = timelineMap[i];
- timeline.setFrame(frameIndex, valueMap.time, valueMap.angle);
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.RotateTimeline.ENTRIES]);
- }
- else if (timelineName === "translate" || timelineName === "scale" || timelineName === "shear") {
- var timeline = null;
- var timelineScale = 1;
- if (timelineName === "scale")
- timeline = new core.ScaleTimeline(timelineMap.length);
- else if (timelineName === "shear")
- timeline = new core.ShearTimeline(timelineMap.length);
- else {
- timeline = new core.TranslateTimeline(timelineMap.length);
- timelineScale = scale;
- }
- timeline.boneIndex = boneIndex;
- var frameIndex = 0;
- for (var i = 0; i < timelineMap.length; i++) {
- var valueMap = timelineMap[i];
- var x = this.getValue(valueMap, "x", 0), y = this.getValue(valueMap, "y", 0);
- timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale);
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.TranslateTimeline.ENTRIES]);
- }
- else
- throw new Error("Invalid timeline type for a bone: " + timelineName + " (" + boneName + ")");
- }
- }
- }
- if (map.ik) {
- for (var constraintName in map.ik) {
- var constraintMap = map.ik[constraintName];
- var constraint = skeletonData.findIkConstraint(constraintName);
- var timeline = new core.IkConstraintTimeline(constraintMap.length);
- timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint);
- var frameIndex = 0;
- for (var i = 0; i < constraintMap.length; i++) {
- var valueMap = constraintMap[i];
- timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "mix", 1), this.getValue(valueMap, "bendPositive", true) ? 1 : -1);
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.IkConstraintTimeline.ENTRIES]);
- }
- }
- if (map.transform) {
- for (var constraintName in map.transform) {
- var constraintMap = map.transform[constraintName];
- var constraint = skeletonData.findTransformConstraint(constraintName);
- var timeline = new core.TransformConstraintTimeline(constraintMap.length);
- timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint);
- var frameIndex = 0;
- for (var i = 0; i < constraintMap.length; i++) {
- var valueMap = constraintMap[i];
- timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1), this.getValue(valueMap, "scaleMix", 1), this.getValue(valueMap, "shearMix", 1));
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.TransformConstraintTimeline.ENTRIES]);
- }
- }
- if (map.paths) {
- for (var constraintName in map.paths) {
- var constraintMap = map.paths[constraintName];
- var index = skeletonData.findPathConstraintIndex(constraintName);
- if (index == -1)
- throw new Error("Path constraint not found: " + constraintName);
- var data = skeletonData.pathConstraints[index];
- for (var timelineName in constraintMap) {
- var timelineMap = constraintMap[timelineName];
- if (timelineName === "position" || timelineName === "spacing") {
- var timeline = null;
- var timelineScale = 1;
- if (timelineName === "spacing") {
- timeline = new core.PathConstraintSpacingTimeline(timelineMap.length);
- if (data.spacingMode == core.SpacingMode.Length || data.spacingMode == core.SpacingMode.Fixed)
- timelineScale = scale;
- }
- else {
- timeline = new core.PathConstraintPositionTimeline(timelineMap.length);
- if (data.positionMode == core.PositionMode.Fixed)
- timelineScale = scale;
- }
- timeline.pathConstraintIndex = index;
- var frameIndex = 0;
- for (var i = 0; i < timelineMap.length; i++) {
- var valueMap = timelineMap[i];
- timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, timelineName, 0) * timelineScale);
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.PathConstraintPositionTimeline.ENTRIES]);
- }
- else if (timelineName === "mix") {
- var timeline = new core.PathConstraintMixTimeline(timelineMap.length);
- timeline.pathConstraintIndex = index;
- var frameIndex = 0;
- for (var i = 0; i < timelineMap.length; i++) {
- var valueMap = timelineMap[i];
- timeline.setFrame(frameIndex, valueMap.time, this.getValue(valueMap, "rotateMix", 1), this.getValue(valueMap, "translateMix", 1));
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[(timeline.getFrameCount() - 1) * core.PathConstraintMixTimeline.ENTRIES]);
- }
- }
- }
- }
- if (map.deform) {
- for (var deformName in map.deform) {
- var deformMap = map.deform[deformName];
- var skin = skeletonData.findSkin(deformName);
- if (skin == null)
- throw new Error("Skin not found: " + deformName);
- for (var slotName in deformMap) {
- var slotMap = deformMap[slotName];
- var slotIndex = skeletonData.findSlotIndex(slotName);
- if (slotIndex == -1)
- throw new Error("Slot not found: " + slotMap.name);
- for (var timelineName in slotMap) {
- var timelineMap = slotMap[timelineName];
- var attachment = skin.getAttachment(slotIndex, timelineName);
- if (attachment == null)
- throw new Error("Deform attachment not found: " + timelineMap.name);
- var weighted = attachment.bones != null;
- var vertices = attachment.vertices;
- var deformLength = weighted ? vertices.length / 3 * 2 : vertices.length;
- var timeline = new core.DeformTimeline(timelineMap.length);
- timeline.slotIndex = slotIndex;
- timeline.attachment = attachment;
- var frameIndex = 0;
- for (var j = 0; j < timelineMap.length; j++) {
- var valueMap = timelineMap[j];
- var deform = void 0;
- var verticesValue = this.getValue(valueMap, "vertices", null);
- if (verticesValue == null)
- deform = weighted ? core.Utils.newFloatArray(deformLength) : vertices;
- else {
- deform = core.Utils.newFloatArray(deformLength);
- var start = this.getValue(valueMap, "offset", 0);
- core.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length);
- if (scale != 1) {
- for (var i = start, n = i + verticesValue.length; i < n; i++)
- deform[i] *= scale;
- }
- if (!weighted) {
- for (var i = 0; i < deformLength; i++)
- deform[i] += vertices[i];
- }
- }
- timeline.setFrame(frameIndex, valueMap.time, deform);
- this.readCurve(valueMap, timeline, frameIndex);
- frameIndex++;
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);
- }
- }
- }
- }
- var drawOrderNode = map.drawOrder;
- if (drawOrderNode == null)
- drawOrderNode = map.draworder;
- if (drawOrderNode != null) {
- var timeline = new core.DrawOrderTimeline(drawOrderNode.length);
- var slotCount = skeletonData.slots.length;
- var frameIndex = 0;
- for (var j = 0; j < drawOrderNode.length; j++) {
- var drawOrderMap = drawOrderNode[j];
- var drawOrder = null;
- var offsets = this.getValue(drawOrderMap, "offsets", null);
- if (offsets != null) {
- drawOrder = core.Utils.newArray(slotCount, -1);
- var unchanged = core.Utils.newArray(slotCount - offsets.length, 0);
- var originalIndex = 0, unchangedIndex = 0;
- for (var i = 0; i < offsets.length; i++) {
- var offsetMap = offsets[i];
- var slotIndex = skeletonData.findSlotIndex(offsetMap.slot);
- if (slotIndex == -1)
- throw new Error("Slot not found: " + offsetMap.slot);
- while (originalIndex != slotIndex)
- unchanged[unchangedIndex++] = originalIndex++;
- drawOrder[originalIndex + offsetMap.offset] = originalIndex++;
- }
- while (originalIndex < slotCount)
- unchanged[unchangedIndex++] = originalIndex++;
- for (var i = slotCount - 1; i >= 0; i--)
- if (drawOrder[i] == -1)
- drawOrder[i] = unchanged[--unchangedIndex];
- }
- timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder);
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);
- }
- if (map.events) {
- var timeline = new core.EventTimeline(map.events.length);
- var frameIndex = 0;
- for (var i = 0; i < map.events.length; i++) {
- var eventMap = map.events[i];
- var eventData = skeletonData.findEvent(eventMap.name);
- if (eventData == null)
- throw new Error("Event not found: " + eventMap.name);
- var event_5 = new core.Event(core.Utils.toSinglePrecision(eventMap.time), eventData);
- event_5.intValue = this.getValue(eventMap, "int", eventData.intValue);
- event_5.floatValue = this.getValue(eventMap, "float", eventData.floatValue);
- event_5.stringValue = this.getValue(eventMap, "string", eventData.stringValue);
- timeline.setFrame(frameIndex++, event_5);
- }
- timelines.push(timeline);
- duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);
- }
- if (isNaN(duration)) {
- throw new Error("Error while parsing animation, duration is NaN");
- }
- skeletonData.animations.push(new core.Animation(name, timelines, duration));
- };
- SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) {
- if (!map.curve)
- return;
- if (map.curve === "stepped")
- timeline.setStepped(frameIndex);
- else if (Object.prototype.toString.call(map.curve) === '[object Array]') {
- var curve = map.curve;
- timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]);
- }
- };
- SkeletonJson.prototype.getValue = function (map, prop, defaultValue) {
- return map[prop] !== undefined ? map[prop] : defaultValue;
- };
- SkeletonJson.blendModeFromString = function (str) {
- str = str.toLowerCase();
- if (str == "normal")
- return core.BlendMode.Normal;
- if (str == "additive")
- return core.BlendMode.Additive;
- if (str == "multiply")
- return core.BlendMode.Multiply;
- if (str == "screen")
- return core.BlendMode.Screen;
- throw new Error("Unknown blend mode: " + str);
- };
- SkeletonJson.positionModeFromString = function (str) {
- str = str.toLowerCase();
- if (str == "fixed")
- return core.PositionMode.Fixed;
- if (str == "percent")
- return core.PositionMode.Percent;
- throw new Error("Unknown position mode: " + str);
- };
- SkeletonJson.spacingModeFromString = function (str) {
- str = str.toLowerCase();
- if (str == "length")
- return core.SpacingMode.Length;
- if (str == "fixed")
- return core.SpacingMode.Fixed;
- if (str == "percent")
- return core.SpacingMode.Percent;
- throw new Error("Unknown position mode: " + str);
- };
- SkeletonJson.rotateModeFromString = function (str) {
- str = str.toLowerCase();
- if (str == "tangent")
- return core.RotateMode.Tangent;
- if (str == "chain")
- return core.RotateMode.Chain;
- if (str == "chainscale")
- return core.RotateMode.ChainScale;
- throw new Error("Unknown rotate mode: " + str);
- };
- SkeletonJson.transformModeFromString = function (str) {
- str = str.toLowerCase();
- if (str == "normal")
- return core.TransformMode.Normal;
- if (str == "onlytranslation")
- return core.TransformMode.OnlyTranslation;
- if (str == "norotationorreflection")
- return core.TransformMode.NoRotationOrReflection;
- if (str == "noscale")
- return core.TransformMode.NoScale;
- if (str == "noscaleorreflection")
- return core.TransformMode.NoScaleOrReflection;
- throw new Error("Unknown transform mode: " + str);
- };
- return SkeletonJson;
- }());
- core.SkeletonJson = SkeletonJson;
- var LinkedMesh = (function () {
- function LinkedMesh(mesh, skin, slotIndex, parent) {
- this.mesh = mesh;
- this.skin = skin;
- this.slotIndex = slotIndex;
- this.parent = parent;
- }
- return LinkedMesh;
- }());
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Skin = (function () {
- function Skin(name) {
- this.attachments = new Array();
- if (name == null)
- throw new Error("name cannot be null.");
- this.name = name;
- }
- Skin.prototype.addAttachment = function (slotIndex, name, attachment) {
- if (attachment == null)
- throw new Error("attachment cannot be null.");
- var attachments = this.attachments;
- if (slotIndex >= attachments.length)
- attachments.length = slotIndex + 1;
- if (!attachments[slotIndex])
- attachments[slotIndex] = {};
- attachments[slotIndex][name] = attachment;
- };
- Skin.prototype.getAttachment = function (slotIndex, name) {
- var dictionary = this.attachments[slotIndex];
- return dictionary ? dictionary[name] : null;
- };
- Skin.prototype.attachAll = function (skeleton, oldSkin) {
- var slotIndex = 0;
- for (var i = 0; i < skeleton.slots.length; i++) {
- var slot = skeleton.slots[i];
- var slotAttachment = slot.getAttachment();
- if (slotAttachment && slotIndex < oldSkin.attachments.length) {
- var dictionary = oldSkin.attachments[slotIndex];
- for (var key in dictionary) {
- var skinAttachment = dictionary[key];
- if (slotAttachment == skinAttachment) {
- var attachment = this.getAttachment(slotIndex, key);
- if (attachment != null)
- slot.setAttachment(attachment);
- break;
- }
- }
- }
- slotIndex++;
- }
- };
- return Skin;
- }());
- core.Skin = Skin;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Slot = (function () {
- function Slot(data, bone) {
- this.attachmentVertices = new Array();
- if (data == null)
- throw new Error("data cannot be null.");
- if (bone == null)
- throw new Error("bone cannot be null.");
- this.data = data;
- this.bone = bone;
- this.color = new core.Color();
- this.darkColor = data.darkColor == null ? null : new core.Color();
- this.setToSetupPose();
- this.blendMode = this.data.blendMode;
- }
- Slot.prototype.getAttachment = function () {
- return this.attachment;
- };
- Slot.prototype.setAttachment = function (attachment) {
- if (this.attachment == attachment)
- return;
- this.attachment = attachment;
- this.attachmentTime = this.bone.skeleton.time;
- this.attachmentVertices.length = 0;
- };
- Slot.prototype.setAttachmentTime = function (time) {
- this.attachmentTime = this.bone.skeleton.time - time;
- };
- Slot.prototype.getAttachmentTime = function () {
- return this.bone.skeleton.time - this.attachmentTime;
- };
- Slot.prototype.setToSetupPose = function () {
- this.color.setFromColor(this.data.color);
- if (this.darkColor != null)
- this.darkColor.setFromColor(this.data.darkColor);
- if (this.data.attachmentName == null)
- this.attachment = null;
- else {
- this.attachment = null;
- this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName));
- }
- };
- return Slot;
- }());
- core.Slot = Slot;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var SlotData = (function () {
- function SlotData(index, name, boneData) {
- this.color = new core.Color(1, 1, 1, 1);
- if (index < 0)
- throw new Error("index must be >= 0.");
- if (name == null)
- throw new Error("name cannot be null.");
- if (boneData == null)
- throw new Error("boneData cannot be null.");
- this.index = index;
- this.name = name;
- this.boneData = boneData;
- }
- return SlotData;
- }());
- core.SlotData = SlotData;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Texture = (function () {
- function Texture(image) {
- this._image = image;
- }
- Texture.prototype.getImage = function () {
- return this._image;
- };
- Texture.filterFromString = function (text) {
- switch (text.toLowerCase()) {
- case "nearest": return TextureFilter.Nearest;
- case "linear": return TextureFilter.Linear;
- case "mipmap": return TextureFilter.MipMap;
- case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest;
- case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest;
- case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear;
- case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear;
- default: throw new Error("Unknown texture filter " + text);
- }
- };
- Texture.wrapFromString = function (text) {
- switch (text.toLowerCase()) {
- case "mirroredtepeat": return TextureWrap.MirroredRepeat;
- case "clamptoedge": return TextureWrap.ClampToEdge;
- case "repeat": return TextureWrap.Repeat;
- default: throw new Error("Unknown texture wrap " + text);
- }
- };
- return Texture;
- }());
- core.Texture = Texture;
- var TextureFilter;
- (function (TextureFilter) {
- TextureFilter[TextureFilter["Nearest"] = 9728] = "Nearest";
- TextureFilter[TextureFilter["Linear"] = 9729] = "Linear";
- TextureFilter[TextureFilter["MipMap"] = 9987] = "MipMap";
- TextureFilter[TextureFilter["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest";
- TextureFilter[TextureFilter["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest";
- TextureFilter[TextureFilter["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear";
- TextureFilter[TextureFilter["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear";
- })(TextureFilter = core.TextureFilter || (core.TextureFilter = {}));
- var TextureWrap;
- (function (TextureWrap) {
- TextureWrap[TextureWrap["MirroredRepeat"] = 33648] = "MirroredRepeat";
- TextureWrap[TextureWrap["ClampToEdge"] = 33071] = "ClampToEdge";
- TextureWrap[TextureWrap["Repeat"] = 10497] = "Repeat";
- })(TextureWrap = core.TextureWrap || (core.TextureWrap = {}));
- var TextureRegion = (function () {
- function TextureRegion() {
- this.size = null;
- }
- Object.defineProperty(TextureRegion.prototype, "width", {
- get: function () {
- var tex = this.texture;
- if (PIXI.VERSION[0] == '3') {
- return tex.crop.width;
- }
- if (tex.trim) {
- return tex.trim.width;
- }
- return tex.orig.width;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "height", {
- get: function () {
- var tex = this.texture;
- if (PIXI.VERSION[0] == '3') {
- return tex.crop.height;
- }
- if (tex.trim) {
- return tex.trim.height;
- }
- return tex.orig.height;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "u", {
- get: function () {
- return this.texture._uvs.x0;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "v", {
- get: function () {
- return this.texture._uvs.y0;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "u2", {
- get: function () {
- return this.texture._uvs.x2;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "v2", {
- get: function () {
- return this.texture._uvs.y2;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "offsetX", {
- get: function () {
- var tex = this.texture;
- return tex.trim ? tex.trim.x : 0;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "offsetY", {
- get: function () {
- console.warn("Deprecation Warning: @Hackerham: I guess, if you are using PIXI-SPINE ATLAS region.offsetY, you want a texture, right? Use region.texture from now on.");
- return this.spineOffsetY;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "pixiOffsetY", {
- get: function () {
- var tex = this.texture;
- return tex.trim ? tex.trim.y : 0;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "spineOffsetY", {
- get: function () {
- var tex = this.texture;
- return this.originalHeight - this.height - (tex.trim ? tex.trim.y : 0);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "originalWidth", {
- get: function () {
- var tex = this.texture;
- if (PIXI.VERSION[0] == '3') {
- if (tex.trim) {
- return tex.trim.width;
- }
- return tex.crop.width;
- }
- return tex.orig.width;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "originalHeight", {
- get: function () {
- var tex = this.texture;
- if (PIXI.VERSION[0] == '3') {
- if (tex.trim) {
- return tex.trim.height;
- }
- return tex.crop.height;
- }
- return tex.orig.height;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "x", {
- get: function () {
- return this.texture.frame.x;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "y", {
- get: function () {
- return this.texture.frame.y;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TextureRegion.prototype, "rotate", {
- get: function () {
- return this.texture.rotate !== 0;
- },
- enumerable: true,
- configurable: true
- });
- return TextureRegion;
- }());
- core.TextureRegion = TextureRegion;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var TextureAtlas = (function () {
- function TextureAtlas(atlasText, textureLoader, callback) {
- this.pages = new Array();
- this.regions = new Array();
- if (atlasText) {
- this.addSpineAtlas(atlasText, textureLoader, callback);
- }
- }
- TextureAtlas.prototype.addTexture = function (name, texture) {
- var pages = this.pages;
- var page = null;
- for (var i = 0; i < pages.length; i++) {
- if (pages[i].baseTexture === texture.baseTexture) {
- page = pages[i];
- break;
- }
- }
- if (page === null) {
- page = new TextureAtlasPage();
- page.name = 'texturePage';
- var baseTexture = texture.baseTexture;
- page.width = baseTexture.realWidth;
- page.height = baseTexture.realHeight;
- page.baseTexture = baseTexture;
- page.minFilter = page.magFilter = core.TextureFilter.Nearest;
- page.uWrap = core.TextureWrap.ClampToEdge;
- page.vWrap = core.TextureWrap.ClampToEdge;
- pages.push(page);
- }
- var region = new TextureAtlasRegion();
- region.name = name;
- region.page = page;
- region.texture = texture;
- region.index = -1;
- this.regions.push(region);
- return region;
- };
- TextureAtlas.prototype.addTextureHash = function (textures, stripExtension) {
- for (var key in textures) {
- if (textures.hasOwnProperty(key)) {
- this.addTexture(stripExtension && key.indexOf('.') !== -1 ? key.substr(0, key.lastIndexOf('.')) : key, textures[key]);
- }
- }
- };
- TextureAtlas.prototype.addSpineAtlas = function (atlasText, textureLoader, callback) {
- return this.load(atlasText, textureLoader, callback);
- };
- TextureAtlas.prototype.load = function (atlasText, textureLoader, callback) {
- var _this = this;
- if (textureLoader == null)
- throw new Error("textureLoader cannot be null.");
- var reader = new TextureAtlasReader(atlasText);
- var tuple = new Array(4);
- var page = null;
- var iterateParser = function () {
- while (true) {
- var line = reader.readLine();
- if (line == null) {
- return callback && callback(_this);
- }
- line = line.trim();
- if (line.length == 0)
- page = null;
- else if (!page) {
- page = new TextureAtlasPage();
- page.name = line;
- if (reader.readTuple(tuple) == 2) {
- page.width = parseInt(tuple[0]);
- page.height = parseInt(tuple[1]);
- reader.readTuple(tuple);
- }
- reader.readTuple(tuple);
- page.minFilter = core.Texture.filterFromString(tuple[0]);
- page.magFilter = core.Texture.filterFromString(tuple[1]);
- var direction = reader.readValue();
- page.uWrap = core.TextureWrap.ClampToEdge;
- page.vWrap = core.TextureWrap.ClampToEdge;
- if (direction == "x")
- page.uWrap = core.TextureWrap.Repeat;
- else if (direction == "y")
- page.vWrap = core.TextureWrap.Repeat;
- else if (direction == "xy")
- page.uWrap = page.vWrap = core.TextureWrap.Repeat;
- textureLoader(line, function (texture) {
- page.baseTexture = texture;
- if (!texture.hasLoaded) {
- texture.width = page.width;
- texture.height = page.height;
- }
- _this.pages.push(page);
- page.setFilters();
- if (!page.width || !page.height) {
- page.width = texture.realWidth;
- page.height = texture.realHeight;
- if (!page.width || !page.height) {
- console.log("ERROR spine atlas page " + page.name + ": meshes wont work if you dont specify size in atlas (http://www.html5gamedevs.com/topic/18888-pixi-spines-and-meshes/?p=107121)");
- }
- }
- iterateParser();
- });
- _this.pages.push(page);
- break;
- }
- else {
- var region = new TextureAtlasRegion();
- region.name = line;
- region.page = page;
- var rotate = reader.readValue() == "true" ? 6 : 0;
- reader.readTuple(tuple);
- var x = parseInt(tuple[0]);
- var y = parseInt(tuple[1]);
- reader.readTuple(tuple);
- var width = parseInt(tuple[0]);
- var height = parseInt(tuple[1]);
- var resolution = page.baseTexture.resolution;
- x /= resolution;
- y /= resolution;
- width /= resolution;
- height /= resolution;
- var frame = new PIXI.Rectangle(x, y, rotate ? height : width, rotate ? width : height);
- if (reader.readTuple(tuple) == 4) {
- if (reader.readTuple(tuple) == 4) {
- reader.readTuple(tuple);
- }
- }
- var originalWidth = parseInt(tuple[0]) / resolution;
- var originalHeight = parseInt(tuple[1]) / resolution;
- reader.readTuple(tuple);
- var offsetX = parseInt(tuple[0]) / resolution;
- var offsetY = parseInt(tuple[1]) / resolution;
- var orig = new PIXI.Rectangle(0, 0, originalWidth, originalHeight);
- var trim = new PIXI.Rectangle(offsetX, originalHeight - height - offsetY, width, height);
- if (PIXI.VERSION[0] != '3') {
- region.texture = new PIXI.Texture(region.page.baseTexture, frame, orig, trim, rotate);
- }
- else {
- var frame2 = new PIXI.Rectangle(x, y, width, height);
- var crop = frame2.clone();
- trim.width = originalWidth;
- trim.height = originalHeight;
- region.texture = new PIXI.Texture(region.page.baseTexture, frame2, crop, trim, rotate);
- }
- region.index = parseInt(reader.readValue());
- region.texture._updateUvs();
- _this.regions.push(region);
- }
- }
- };
- iterateParser();
- };
- TextureAtlas.prototype.findRegion = function (name) {
- for (var i = 0; i < this.regions.length; i++) {
- if (this.regions[i].name == name) {
- return this.regions[i];
- }
- }
- return null;
- };
- TextureAtlas.prototype.dispose = function () {
- for (var i = 0; i < this.pages.length; i++) {
- this.pages[i].baseTexture.dispose();
- }
- };
- return TextureAtlas;
- }());
- core.TextureAtlas = TextureAtlas;
- var TextureAtlasReader = (function () {
- function TextureAtlasReader(text) {
- this.index = 0;
- this.lines = text.split(/\r\n|\r|\n/);
- }
- TextureAtlasReader.prototype.readLine = function () {
- if (this.index >= this.lines.length)
- return null;
- return this.lines[this.index++];
- };
- TextureAtlasReader.prototype.readValue = function () {
- var line = this.readLine();
- var colon = line.indexOf(":");
- if (colon == -1)
- throw new Error("Invalid line: " + line);
- return line.substring(colon + 1).trim();
- };
- TextureAtlasReader.prototype.readTuple = function (tuple) {
- var line = this.readLine();
- var colon = line.indexOf(":");
- if (colon == -1)
- throw new Error("Invalid line: " + line);
- var i = 0, lastMatch = colon + 1;
- for (; i < 3; i++) {
- var comma = line.indexOf(",", lastMatch);
- if (comma == -1)
- break;
- tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();
- lastMatch = comma + 1;
- }
- tuple[i] = line.substring(lastMatch).trim();
- return i + 1;
- };
- return TextureAtlasReader;
- }());
- var TextureAtlasPage = (function () {
- function TextureAtlasPage() {
- }
- TextureAtlasPage.prototype.setFilters = function () {
- var tex = this.baseTexture;
- var filter = this.minFilter;
- if (filter == core.TextureFilter.Linear) {
- tex.scaleMode = PIXI.SCALE_MODES.LINEAR;
- }
- else if (this.minFilter == core.TextureFilter.Nearest) {
- tex.scaleMode = PIXI.SCALE_MODES.NEAREST;
- }
- else {
- tex.mipmap = true;
- if (filter == core.TextureFilter.MipMapNearestNearest) {
- tex.scaleMode = PIXI.SCALE_MODES.NEAREST;
- }
- else {
- tex.scaleMode = PIXI.SCALE_MODES.LINEAR;
- }
- }
- };
- return TextureAtlasPage;
- }());
- core.TextureAtlasPage = TextureAtlasPage;
- var TextureAtlasRegion = (function (_super) {
- __extends(TextureAtlasRegion, _super);
- function TextureAtlasRegion() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return TextureAtlasRegion;
- }(core.TextureRegion));
- core.TextureAtlasRegion = TextureAtlasRegion;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var TransformConstraint = (function () {
- function TransformConstraint(data, skeleton) {
- this.rotateMix = 0;
- this.translateMix = 0;
- this.scaleMix = 0;
- this.shearMix = 0;
- this.temp = new core.Vector2();
- if (data == null)
- throw new Error("data cannot be null.");
- if (skeleton == null)
- throw new Error("skeleton cannot be null.");
- this.data = data;
- this.rotateMix = data.rotateMix;
- this.translateMix = data.translateMix;
- this.scaleMix = data.scaleMix;
- this.shearMix = data.shearMix;
- this.bones = new Array();
- for (var i = 0; i < data.bones.length; i++)
- this.bones.push(skeleton.findBone(data.bones[i].name));
- this.target = skeleton.findBone(data.target.name);
- }
- TransformConstraint.prototype.apply = function () {
- this.update();
- };
- TransformConstraint.prototype.update = function () {
- if (this.data.local) {
- if (this.data.relative)
- this.applyRelativeLocal();
- else
- this.applyAbsoluteLocal();
- }
- else {
- if (this.data.relative)
- this.applyRelativeWorld();
- else
- this.applyAbsoluteWorld();
- }
- };
- TransformConstraint.prototype.applyAbsoluteWorld = function () {
- var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix;
- var target = this.target;
- var targetMat = target.matrix;
- var ta = targetMat.a, tb = targetMat.c, tc = targetMat.b, td = targetMat.d;
- var degRadReflect = ta * td - tb * tc > 0 ? core.MathUtils.degRad : -core.MathUtils.degRad;
- var offsetRotation = this.data.offsetRotation * degRadReflect;
- var offsetShearY = this.data.offsetShearY * degRadReflect;
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++) {
- var bone = bones[i];
- var modified = false;
- var mat = bone.matrix;
- if (rotateMix != 0) {
- var a = mat.a, b = mat.c, c = mat.b, d = mat.d;
- var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation;
- if (r > core.MathUtils.PI)
- r -= core.MathUtils.PI2;
- else if (r < -core.MathUtils.PI)
- r += core.MathUtils.PI2;
- r *= rotateMix;
- var cos = Math.cos(r), sin = Math.sin(r);
- mat.a = cos * a - sin * c;
- mat.c = cos * b - sin * d;
- mat.b = sin * a + cos * c;
- mat.d = sin * b + cos * d;
- modified = true;
- }
- if (translateMix != 0) {
- var temp = this.temp;
- target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY));
- mat.tx += (temp.x - mat.tx) * translateMix;
- mat.ty += (temp.y - mat.ty) * translateMix;
- modified = true;
- }
- if (scaleMix > 0) {
- var s = Math.sqrt(mat.a * mat.a + mat.b * mat.b);
- var ts = Math.sqrt(ta * ta + tc * tc);
- if (s > 0.00001)
- s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s;
- mat.a *= s;
- mat.b *= s;
- s = Math.sqrt(mat.c * mat.c + mat.d * mat.d);
- ts = Math.sqrt(tb * tb + td * td);
- if (s > 0.00001)
- s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s;
- mat.c *= s;
- mat.d *= s;
- modified = true;
- }
- if (shearMix > 0) {
- var b = mat.c, d = mat.d;
- var by = Math.atan2(d, b);
- var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(mat.b, mat.a));
- if (r > core.MathUtils.PI)
- r -= core.MathUtils.PI2;
- else if (r < -core.MathUtils.PI)
- r += core.MathUtils.PI2;
- r = by + (r + offsetShearY) * shearMix;
- var s = Math.sqrt(b * b + d * d);
- mat.c = Math.cos(r) * s;
- mat.d = Math.sin(r) * s;
- modified = true;
- }
- if (modified)
- bone.appliedValid = false;
- }
- };
- TransformConstraint.prototype.applyRelativeWorld = function () {
- var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix;
- var target = this.target;
- var targetMat = target.matrix;
- var ta = targetMat.a, tb = targetMat.c, tc = targetMat.b, td = targetMat.d;
- var degRadReflect = ta * td - tb * tc > 0 ? core.MathUtils.degRad : -core.MathUtils.degRad;
- var offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect;
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++) {
- var bone = bones[i];
- var modified = false;
- var mat = bone.matrix;
- if (rotateMix != 0) {
- var a = mat.a, b = mat.c, c = mat.b, d = mat.d;
- var r = Math.atan2(tc, ta) + offsetRotation;
- if (r > core.MathUtils.PI)
- r -= core.MathUtils.PI2;
- else if (r < -core.MathUtils.PI)
- r += core.MathUtils.PI2;
- r *= rotateMix;
- var cos = Math.cos(r), sin = Math.sin(r);
- mat.a = cos * a - sin * c;
- mat.c = cos * b - sin * d;
- mat.b = sin * a + cos * c;
- mat.d = sin * b + cos * d;
- modified = true;
- }
- if (translateMix != 0) {
- var temp = this.temp;
- target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY));
- mat.tx += temp.x * translateMix;
- mat.ty += temp.y * translateMix;
- modified = true;
- }
- if (scaleMix > 0) {
- var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1;
- mat.a *= s;
- mat.b *= s;
- s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1;
- mat.c *= s;
- mat.d *= s;
- modified = true;
- }
- if (shearMix > 0) {
- var r = Math.atan2(td, tb) - Math.atan2(tc, ta);
- if (r > core.MathUtils.PI)
- r -= core.MathUtils.PI2;
- else if (r < -core.MathUtils.PI)
- r += core.MathUtils.PI2;
- var b = mat.c, d = mat.d;
- r = Math.atan2(d, b) + (r - core.MathUtils.PI / 2 + offsetShearY) * shearMix;
- var s = Math.sqrt(b * b + d * d);
- mat.c = Math.cos(r) * s;
- mat.d = Math.sin(r) * s;
- modified = true;
- }
- if (modified)
- bone.appliedValid = false;
- }
- };
- TransformConstraint.prototype.applyAbsoluteLocal = function () {
- var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix;
- var target = this.target;
- if (!target.appliedValid)
- target.updateAppliedTransform();
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++) {
- var bone = bones[i];
- if (!bone.appliedValid)
- bone.updateAppliedTransform();
- var rotation = bone.arotation;
- if (rotateMix != 0) {
- var r = target.arotation - rotation + this.data.offsetRotation;
- r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360;
- rotation += r * rotateMix;
- }
- var x = bone.ax, y = bone.ay;
- if (translateMix != 0) {
- x += (target.ax - x + this.data.offsetX) * translateMix;
- y += (target.ay - y + this.data.offsetY) * translateMix;
- }
- var scaleX = bone.ascaleX, scaleY = bone.ascaleY;
- if (scaleMix > 0) {
- if (scaleX > 0.00001)
- scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX;
- if (scaleY > 0.00001)
- scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY;
- }
- var shearY = bone.ashearY;
- if (shearMix > 0) {
- var r = target.ashearY - shearY + this.data.offsetShearY;
- r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360;
- bone.shearY += r * shearMix;
- }
- bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY);
- }
- };
- TransformConstraint.prototype.applyRelativeLocal = function () {
- var rotateMix = this.rotateMix, translateMix = this.translateMix, scaleMix = this.scaleMix, shearMix = this.shearMix;
- var target = this.target;
- if (!target.appliedValid)
- target.updateAppliedTransform();
- var bones = this.bones;
- for (var i = 0, n = bones.length; i < n; i++) {
- var bone = bones[i];
- if (!bone.appliedValid)
- bone.updateAppliedTransform();
- var rotation = bone.arotation;
- if (rotateMix != 0)
- rotation += (target.arotation + this.data.offsetRotation) * rotateMix;
- var x = bone.ax, y = bone.ay;
- if (translateMix != 0) {
- x += (target.ax + this.data.offsetX) * translateMix;
- y += (target.ay + this.data.offsetY) * translateMix;
- }
- var scaleX = bone.ascaleX, scaleY = bone.ascaleY;
- if (scaleMix > 0) {
- if (scaleX > 0.00001)
- scaleX *= ((target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix) + 1;
- if (scaleY > 0.00001)
- scaleY *= ((target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix) + 1;
- }
- var shearY = bone.ashearY;
- if (shearMix > 0)
- shearY += (target.ashearY + this.data.offsetShearY) * shearMix;
- bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY);
- }
- };
- TransformConstraint.prototype.getOrder = function () {
- return this.data.order;
- };
- return TransformConstraint;
- }());
- core.TransformConstraint = TransformConstraint;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var TransformConstraintData = (function () {
- function TransformConstraintData(name) {
- this.order = 0;
- this.bones = new Array();
- this.rotateMix = 0;
- this.translateMix = 0;
- this.scaleMix = 0;
- this.shearMix = 0;
- this.offsetRotation = 0;
- this.offsetX = 0;
- this.offsetY = 0;
- this.offsetScaleX = 0;
- this.offsetScaleY = 0;
- this.offsetShearY = 0;
- this.relative = false;
- this.local = false;
- if (name == null)
- throw new Error("name cannot be null.");
- this.name = name;
- }
- return TransformConstraintData;
- }());
- core.TransformConstraintData = TransformConstraintData;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Triangulator = (function () {
- function Triangulator() {
- this.convexPolygons = new Array();
- this.convexPolygonsIndices = new Array();
- this.indicesArray = new Array();
- this.isConcaveArray = new Array();
- this.triangles = new Array();
- this.polygonPool = new core.Pool(function () {
- return new Array();
- });
- this.polygonIndicesPool = new core.Pool(function () {
- return new Array();
- });
- }
- Triangulator.prototype.triangulate = function (verticesArray) {
- var vertices = verticesArray;
- var vertexCount = verticesArray.length >> 1;
- var indices = this.indicesArray;
- indices.length = 0;
- for (var i = 0; i < vertexCount; i++)
- indices[i] = i;
- var isConcave = this.isConcaveArray;
- isConcave.length = 0;
- for (var i = 0, n = vertexCount; i < n; ++i)
- isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices);
- var triangles = this.triangles;
- triangles.length = 0;
- while (vertexCount > 3) {
- var previous = vertexCount - 1, i = 0, next = 1;
- while (true) {
- outer: if (!isConcave[i]) {
- var p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1;
- var p1x = vertices[p1], p1y = vertices[p1 + 1];
- var p2x = vertices[p2], p2y = vertices[p2 + 1];
- var p3x = vertices[p3], p3y = vertices[p3 + 1];
- for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) {
- if (!isConcave[ii])
- continue;
- var v = indices[ii] << 1;
- var vx = vertices[v], vy = vertices[v + 1];
- if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) {
- if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) {
- if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy))
- break outer;
- }
- }
- }
- break;
- }
- if (next == 0) {
- do {
- if (!isConcave[i])
- break;
- i--;
- } while (i > 0);
- break;
- }
- previous = i;
- i = next;
- next = (next + 1) % vertexCount;
- }
- triangles.push(indices[(vertexCount + i - 1) % vertexCount]);
- triangles.push(indices[i]);
- triangles.push(indices[(i + 1) % vertexCount]);
- indices.splice(i, 1);
- isConcave.splice(i, 1);
- vertexCount--;
- var previousIndex = (vertexCount + i - 1) % vertexCount;
- var nextIndex = i == vertexCount ? 0 : i;
- isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices);
- isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices);
- }
- if (vertexCount == 3) {
- triangles.push(indices[2]);
- triangles.push(indices[0]);
- triangles.push(indices[1]);
- }
- return triangles;
- };
- Triangulator.prototype.decompose = function (verticesArray, triangles) {
- var vertices = verticesArray;
- var convexPolygons = this.convexPolygons;
- this.polygonPool.freeAll(convexPolygons);
- convexPolygons.length = 0;
- var convexPolygonsIndices = this.convexPolygonsIndices;
- this.polygonIndicesPool.freeAll(convexPolygonsIndices);
- convexPolygonsIndices.length = 0;
- var polygonIndices = this.polygonIndicesPool.obtain();
- polygonIndices.length = 0;
- var polygon = this.polygonPool.obtain();
- polygon.length = 0;
- var fanBaseIndex = -1, lastWinding = 0;
- for (var i = 0, n = triangles.length; i < n; i += 3) {
- var t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1;
- var x1 = vertices[t1], y1 = vertices[t1 + 1];
- var x2 = vertices[t2], y2 = vertices[t2 + 1];
- var x3 = vertices[t3], y3 = vertices[t3 + 1];
- var merged = false;
- if (fanBaseIndex == t1) {
- var o = polygon.length - 4;
- var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3);
- var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]);
- if (winding1 == lastWinding && winding2 == lastWinding) {
- polygon.push(x3);
- polygon.push(y3);
- polygonIndices.push(t3);
- merged = true;
- }
- }
- if (!merged) {
- if (polygon.length > 0) {
- convexPolygons.push(polygon);
- convexPolygonsIndices.push(polygonIndices);
- }
- else {
- this.polygonPool.free(polygon);
- this.polygonIndicesPool.free(polygonIndices);
- }
- polygon = this.polygonPool.obtain();
- polygon.length = 0;
- polygon.push(x1);
- polygon.push(y1);
- polygon.push(x2);
- polygon.push(y2);
- polygon.push(x3);
- polygon.push(y3);
- polygonIndices = this.polygonIndicesPool.obtain();
- polygonIndices.length = 0;
- polygonIndices.push(t1);
- polygonIndices.push(t2);
- polygonIndices.push(t3);
- lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3);
- fanBaseIndex = t1;
- }
- }
- if (polygon.length > 0) {
- convexPolygons.push(polygon);
- convexPolygonsIndices.push(polygonIndices);
- }
- for (var i = 0, n = convexPolygons.length; i < n; i++) {
- polygonIndices = convexPolygonsIndices[i];
- if (polygonIndices.length == 0)
- continue;
- var firstIndex = polygonIndices[0];
- var lastIndex = polygonIndices[polygonIndices.length - 1];
- polygon = convexPolygons[i];
- var o = polygon.length - 4;
- var prevPrevX = polygon[o], prevPrevY = polygon[o + 1];
- var prevX = polygon[o + 2], prevY = polygon[o + 3];
- var firstX = polygon[0], firstY = polygon[1];
- var secondX = polygon[2], secondY = polygon[3];
- var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY);
- for (var ii = 0; ii < n; ii++) {
- if (ii == i)
- continue;
- var otherIndices = convexPolygonsIndices[ii];
- if (otherIndices.length != 3)
- continue;
- var otherFirstIndex = otherIndices[0];
- var otherSecondIndex = otherIndices[1];
- var otherLastIndex = otherIndices[2];
- var otherPoly = convexPolygons[ii];
- var x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1];
- if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex)
- continue;
- var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3);
- var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY);
- if (winding1 == winding && winding2 == winding) {
- otherPoly.length = 0;
- otherIndices.length = 0;
- polygon.push(x3);
- polygon.push(y3);
- polygonIndices.push(otherLastIndex);
- prevPrevX = prevX;
- prevPrevY = prevY;
- prevX = x3;
- prevY = y3;
- ii = 0;
- }
- }
- }
- for (var i = convexPolygons.length - 1; i >= 0; i--) {
- polygon = convexPolygons[i];
- if (polygon.length == 0) {
- convexPolygons.splice(i, 1);
- this.polygonPool.free(polygon);
- polygonIndices = convexPolygonsIndices[i];
- convexPolygonsIndices.splice(i, 1);
- this.polygonIndicesPool.free(polygonIndices);
- }
- }
- return convexPolygons;
- };
- Triangulator.isConcave = function (index, vertexCount, vertices, indices) {
- var previous = indices[(vertexCount + index - 1) % vertexCount] << 1;
- var current = indices[index] << 1;
- var next = indices[(index + 1) % vertexCount] << 1;
- return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]);
- };
- Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) {
- return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0;
- };
- Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) {
- var px = p2x - p1x, py = p2y - p1y;
- return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1;
- };
- return Triangulator;
- }());
- core.Triangulator = Triangulator;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var IntSet = (function () {
- function IntSet() {
- this.array = new Array();
- }
- IntSet.prototype.add = function (value) {
- var contains = this.contains(value);
- this.array[value | 0] = value | 0;
- return !contains;
- };
- IntSet.prototype.contains = function (value) {
- return this.array[value | 0] != undefined;
- };
- IntSet.prototype.remove = function (value) {
- this.array[value | 0] = undefined;
- };
- IntSet.prototype.clear = function () {
- this.array.length = 0;
- };
- return IntSet;
- }());
- core.IntSet = IntSet;
- var Color = (function () {
- function Color(r, g, b, a) {
- if (r === void 0) { r = 0; }
- if (g === void 0) { g = 0; }
- if (b === void 0) { b = 0; }
- if (a === void 0) { a = 0; }
- this.r = r;
- this.g = g;
- this.b = b;
- this.a = a;
- }
- Color.prototype.set = function (r, g, b, a) {
- this.r = r;
- this.g = g;
- this.b = b;
- this.a = a;
- this.clamp();
- return this;
- };
- Color.prototype.setFromColor = function (c) {
- this.r = c.r;
- this.g = c.g;
- this.b = c.b;
- this.a = c.a;
- return this;
- };
- Color.prototype.setFromString = function (hex) {
- hex = hex.charAt(0) == '#' ? hex.substr(1) : hex;
- this.r = parseInt(hex.substr(0, 2), 16) / 255.0;
- this.g = parseInt(hex.substr(2, 2), 16) / 255.0;
- this.b = parseInt(hex.substr(4, 2), 16) / 255.0;
- this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0;
- return this;
- };
- Color.prototype.add = function (r, g, b, a) {
- this.r += r;
- this.g += g;
- this.b += b;
- this.a += a;
- this.clamp();
- return this;
- };
- Color.prototype.clamp = function () {
- if (this.r < 0)
- this.r = 0;
- else if (this.r > 1)
- this.r = 1;
- if (this.g < 0)
- this.g = 0;
- else if (this.g > 1)
- this.g = 1;
- if (this.b < 0)
- this.b = 0;
- else if (this.b > 1)
- this.b = 1;
- if (this.a < 0)
- this.a = 0;
- else if (this.a > 1)
- this.a = 1;
- return this;
- };
- Color.WHITE = new Color(1, 1, 1, 1);
- Color.RED = new Color(1, 0, 0, 1);
- Color.GREEN = new Color(0, 1, 0, 1);
- Color.BLUE = new Color(0, 0, 1, 1);
- Color.MAGENTA = new Color(1, 0, 1, 1);
- return Color;
- }());
- core.Color = Color;
- var MathUtils = (function () {
- function MathUtils() {
- }
- MathUtils.clamp = function (value, min, max) {
- if (value < min)
- return min;
- if (value > max)
- return max;
- return value;
- };
- MathUtils.cosDeg = function (degrees) {
- return Math.cos(degrees * MathUtils.degRad);
- };
- MathUtils.sinDeg = function (degrees) {
- return Math.sin(degrees * MathUtils.degRad);
- };
- MathUtils.signum = function (value) {
- return value > 0 ? 1 : value < 0 ? -1 : 0;
- };
- MathUtils.toInt = function (x) {
- return x > 0 ? Math.floor(x) : Math.ceil(x);
- };
- MathUtils.cbrt = function (x) {
- var y = Math.pow(Math.abs(x), 1 / 3);
- return x < 0 ? -y : y;
- };
- MathUtils.randomTriangular = function (min, max) {
- return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
- };
- MathUtils.randomTriangularWith = function (min, max, mode) {
- var u = Math.random();
- var d = max - min;
- if (u <= (mode - min) / d)
- return min + Math.sqrt(u * d * (mode - min));
- return max - Math.sqrt((1 - u) * d * (max - mode));
- };
- MathUtils.PI = 3.1415927;
- MathUtils.PI2 = MathUtils.PI * 2;
- MathUtils.radiansToDegrees = 180 / MathUtils.PI;
- MathUtils.radDeg = MathUtils.radiansToDegrees;
- MathUtils.degreesToRadians = MathUtils.PI / 180;
- MathUtils.degRad = MathUtils.degreesToRadians;
- return MathUtils;
- }());
- core.MathUtils = MathUtils;
- var Interpolation = (function () {
- function Interpolation() {
- }
- Interpolation.prototype.apply = function (start, end, a) {
- return start + (end - start) * this.applyInternal(a);
- };
- return Interpolation;
- }());
- core.Interpolation = Interpolation;
- var Pow = (function (_super) {
- __extends(Pow, _super);
- function Pow(power) {
- var _this = _super.call(this) || this;
- _this.power = 2;
- _this.power = power;
- return _this;
- }
- Pow.prototype.applyInternal = function (a) {
- if (a <= 0.5)
- return Math.pow(a * 2, this.power) / 2;
- return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
- };
- return Pow;
- }(Interpolation));
- core.Pow = Pow;
- var PowOut = (function (_super) {
- __extends(PowOut, _super);
- function PowOut(power) {
- return _super.call(this, power) || this;
- }
- PowOut.prototype.applyInternal = function (a) {
- return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
- };
- return PowOut;
- }(Pow));
- core.PowOut = PowOut;
- var Utils = (function () {
- function Utils() {
- }
- Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) {
- for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) {
- dest[j] = source[i];
- }
- };
- Utils.setArraySize = function (array, size, value) {
- if (value === void 0) { value = 0; }
- var oldSize = array.length;
- if (oldSize == size)
- return array;
- array.length = size;
- if (oldSize < size) {
- for (var i = oldSize; i < size; i++)
- array[i] = value;
- }
- return array;
- };
- Utils.ensureArrayCapacity = function (array, size, value) {
- if (value === void 0) { value = 0; }
- if (array.length >= size)
- return array;
- return Utils.setArraySize(array, size, value);
- };
- Utils.newArray = function (size, defaultValue) {
- var array = new Array(size);
- for (var i = 0; i < size; i++)
- array[i] = defaultValue;
- return array;
- };
- Utils.newFloatArray = function (size) {
- if (Utils.SUPPORTS_TYPED_ARRAYS) {
- return new Float32Array(size);
- }
- else {
- var array = new Array(size);
- for (var i = 0; i < array.length; i++)
- array[i] = 0;
- return array;
- }
- };
- Utils.newShortArray = function (size) {
- if (Utils.SUPPORTS_TYPED_ARRAYS) {
- return new Int16Array(size);
- }
- else {
- var array = new Array(size);
- for (var i = 0; i < array.length; i++)
- array[i] = 0;
- return array;
- }
- };
- Utils.toFloatArray = function (array) {
- return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
- };
- Utils.toSinglePrecision = function (value) {
- return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
- };
- Utils.webkit602BugfixHelper = function (alpha, pose) {
- };
- Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";
- return Utils;
- }());
- core.Utils = Utils;
- var DebugUtils = (function () {
- function DebugUtils() {
- }
- DebugUtils.logBones = function (skeleton) {
- for (var i = 0; i < skeleton.bones.length; i++) {
- var bone = skeleton.bones[i];
- var mat = bone.matrix;
- console.log(bone.data.name + ", " + mat.a + ", " + mat.b + ", " + mat.c + ", " + mat.d + ", " + mat.tx + ", " + mat.ty);
- }
- };
- return DebugUtils;
- }());
- core.DebugUtils = DebugUtils;
- var Pool = (function () {
- function Pool(instantiator) {
- this.items = new Array();
- this.instantiator = instantiator;
- }
- Pool.prototype.obtain = function () {
- return this.items.length > 0 ? this.items.pop() : this.instantiator();
- };
- Pool.prototype.free = function (item) {
- if (item.reset)
- item.reset();
- this.items.push(item);
- };
- Pool.prototype.freeAll = function (items) {
- for (var i = 0; i < items.length; i++) {
- if (items[i].reset)
- items[i].reset();
- this.items[i] = items[i];
- }
- };
- Pool.prototype.clear = function () {
- this.items.length = 0;
- };
- return Pool;
- }());
- core.Pool = Pool;
- var Vector2 = (function () {
- function Vector2(x, y) {
- if (x === void 0) { x = 0; }
- if (y === void 0) { y = 0; }
- this.x = x;
- this.y = y;
- }
- Vector2.prototype.set = function (x, y) {
- this.x = x;
- this.y = y;
- return this;
- };
- Vector2.prototype.length = function () {
- var x = this.x;
- var y = this.y;
- return Math.sqrt(x * x + y * y);
- };
- Vector2.prototype.normalize = function () {
- var len = this.length();
- if (len != 0) {
- this.x /= len;
- this.y /= len;
- }
- return this;
- };
- return Vector2;
- }());
- core.Vector2 = Vector2;
- var TimeKeeper = (function () {
- function TimeKeeper() {
- this.maxDelta = 0.064;
- this.framesPerSecond = 0;
- this.delta = 0;
- this.totalTime = 0;
- this.lastTime = Date.now() / 1000;
- this.frameCount = 0;
- this.frameTime = 0;
- }
- TimeKeeper.prototype.update = function () {
- var now = Date.now() / 1000;
- this.delta = now - this.lastTime;
- this.frameTime += this.delta;
- this.totalTime += this.delta;
- if (this.delta > this.maxDelta)
- this.delta = this.maxDelta;
- this.lastTime = now;
- this.frameCount++;
- if (this.frameTime > 1) {
- this.framesPerSecond = this.frameCount / this.frameTime;
- this.frameTime = 0;
- this.frameCount = 0;
- }
- };
- return TimeKeeper;
- }());
- core.TimeKeeper = TimeKeeper;
- var WindowedMean = (function () {
- function WindowedMean(windowSize) {
- if (windowSize === void 0) { windowSize = 32; }
- this.addedValues = 0;
- this.lastValue = 0;
- this.mean = 0;
- this.dirty = true;
- this.values = new Array(windowSize);
- }
- WindowedMean.prototype.hasEnoughData = function () {
- return this.addedValues >= this.values.length;
- };
- WindowedMean.prototype.addValue = function (value) {
- if (this.addedValues < this.values.length)
- this.addedValues++;
- this.values[this.lastValue++] = value;
- if (this.lastValue > this.values.length - 1)
- this.lastValue = 0;
- this.dirty = true;
- };
- WindowedMean.prototype.getMean = function () {
- if (this.hasEnoughData()) {
- if (this.dirty) {
- var mean = 0;
- for (var i = 0; i < this.values.length; i++) {
- mean += this.values[i];
- }
- this.mean = mean / this.values.length;
- this.dirty = false;
- }
- return this.mean;
- }
- else {
- return 0;
- }
- };
- return WindowedMean;
- }());
- core.WindowedMean = WindowedMean;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var Attachment = (function () {
- function Attachment(name) {
- if (name == null)
- throw new Error("name cannot be null.");
- this.name = name;
- }
- return Attachment;
- }());
- core.Attachment = Attachment;
- var VertexAttachment = (function (_super) {
- __extends(VertexAttachment, _super);
- function VertexAttachment(name) {
- var _this = _super.call(this, name) || this;
- _this.id = (VertexAttachment.nextID++ & 65535) << 11;
- _this.worldVerticesLength = 0;
- return _this;
- }
- VertexAttachment.prototype.computeWorldVerticesOld = function (slot, worldVertices) {
- this.computeWorldVertices(slot, 0, this.worldVerticesLength, worldVertices, 0, 2);
- };
- VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) {
- count = offset + (count >> 1) * stride;
- var skeleton = slot.bone.skeleton;
- var deformArray = slot.attachmentVertices;
- var vertices = this.vertices;
- var bones = this.bones;
- if (bones == null) {
- if (deformArray.length > 0)
- vertices = deformArray;
- var mat = slot.bone.matrix;
- var x = mat.tx;
- var y = mat.ty;
- var a = mat.a, b = mat.c, c = mat.b, d = mat.d;
- for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) {
- var vx = vertices[v_1], vy = vertices[v_1 + 1];
- worldVertices[w] = vx * a + vy * b + x;
- worldVertices[w + 1] = vx * c + vy * d + y;
- }
- return;
- }
- var v = 0, skip = 0;
- for (var i = 0; i < start; i += 2) {
- var n = bones[v];
- v += n + 1;
- skip += n;
- }
- var skeletonBones = skeleton.bones;
- if (deformArray.length == 0) {
- for (var w = offset, b = skip * 3; w < count; w += stride) {
- var wx = 0, wy = 0;
- var n = bones[v++];
- n += v;
- for (; v < n; v++, b += 3) {
- var mat = skeletonBones[bones[v]].matrix;
- var vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2];
- wx += (vx * mat.a + vy * mat.c + mat.tx) * weight;
- wy += (vx * mat.b + vy * mat.d + mat.ty) * weight;
- }
- worldVertices[w] = wx;
- worldVertices[w + 1] = wy;
- }
- }
- else {
- var deform = deformArray;
- for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) {
- var wx = 0, wy = 0;
- var n = bones[v++];
- n += v;
- for (; v < n; v++, b += 3, f += 2) {
- var mat = skeletonBones[bones[v]].matrix;
- var vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2];
- wx += (vx * mat.a + vy * mat.c + mat.tx) * weight;
- wy += (vx * mat.b + vy * mat.d + mat.ty) * weight;
- }
- worldVertices[w] = wx;
- worldVertices[w + 1] = wy;
- }
- }
- };
- VertexAttachment.prototype.applyDeform = function (sourceAttachment) {
- return this == sourceAttachment;
- };
- VertexAttachment.nextID = 0;
- return VertexAttachment;
- }(Attachment));
- core.VertexAttachment = VertexAttachment;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var AttachmentType;
- (function (AttachmentType) {
- AttachmentType[AttachmentType["Region"] = 0] = "Region";
- AttachmentType[AttachmentType["BoundingBox"] = 1] = "BoundingBox";
- AttachmentType[AttachmentType["Mesh"] = 2] = "Mesh";
- AttachmentType[AttachmentType["LinkedMesh"] = 3] = "LinkedMesh";
- AttachmentType[AttachmentType["Path"] = 4] = "Path";
- AttachmentType[AttachmentType["Point"] = 5] = "Point";
- })(AttachmentType = core.AttachmentType || (core.AttachmentType = {}));
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var BoundingBoxAttachment = (function (_super) {
- __extends(BoundingBoxAttachment, _super);
- function BoundingBoxAttachment(name) {
- var _this = _super.call(this, name) || this;
- _this.color = new core.Color(1, 1, 1, 1);
- return _this;
- }
- return BoundingBoxAttachment;
- }(core.VertexAttachment));
- core.BoundingBoxAttachment = BoundingBoxAttachment;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var ClippingAttachment = (function (_super) {
- __extends(ClippingAttachment, _super);
- function ClippingAttachment(name) {
- var _this = _super.call(this, name) || this;
- _this.color = new core.Color(0.2275, 0.2275, 0.8078, 1);
- return _this;
- }
- return ClippingAttachment;
- }(core.VertexAttachment));
- core.ClippingAttachment = ClippingAttachment;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var MeshAttachment = (function (_super) {
- __extends(MeshAttachment, _super);
- function MeshAttachment(name) {
- var _this = _super.call(this, name) || this;
- _this.color = new core.Color(1, 1, 1, 1);
- _this.inheritDeform = false;
- _this.tempColor = new core.Color(0, 0, 0, 0);
- return _this;
- }
- MeshAttachment.prototype.updateUVs = function (region, uvs) {
- var regionUVs = this.regionUVs;
- var n = regionUVs.length;
- if (!uvs || uvs.length != n) {
- uvs = core.Utils.newFloatArray(n);
- }
- if (region == null) {
- return;
- }
- var texture = region.texture;
- var r = texture._uvs;
- var w1 = region.width, h1 = region.height, w2 = region.originalWidth, h2 = region.originalHeight;
- var x = region.offsetX, y = region.pixiOffsetY;
- for (var i = 0; i < n; i += 2) {
- var u = this.regionUVs[i], v = this.regionUVs[i + 1];
- u = (u * w2 - x) / w1;
- v = (v * h2 - y) / h1;
- uvs[i] = (r.x0 * (1 - u) + r.x1 * u) * (1 - v) + (r.x3 * (1 - u) + r.x2 * u) * v;
- uvs[i + 1] = (r.y0 * (1 - u) + r.y1 * u) * (1 - v) + (r.y3 * (1 - u) + r.y2 * u) * v;
- }
- return uvs;
- };
- MeshAttachment.prototype.applyDeform = function (sourceAttachment) {
- return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment);
- };
- MeshAttachment.prototype.getParentMesh = function () {
- return this.parentMesh;
- };
- MeshAttachment.prototype.setParentMesh = function (parentMesh) {
- this.parentMesh = parentMesh;
- if (parentMesh != null) {
- this.bones = parentMesh.bones;
- this.vertices = parentMesh.vertices;
- this.worldVerticesLength = parentMesh.worldVerticesLength;
- this.regionUVs = parentMesh.regionUVs;
- this.triangles = parentMesh.triangles;
- this.hullLength = parentMesh.hullLength;
- this.worldVerticesLength = parentMesh.worldVerticesLength;
- }
- };
- return MeshAttachment;
- }(core.VertexAttachment));
- core.MeshAttachment = MeshAttachment;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var PathAttachment = (function (_super) {
- __extends(PathAttachment, _super);
- function PathAttachment(name) {
- var _this = _super.call(this, name) || this;
- _this.closed = false;
- _this.constantSpeed = false;
- _this.color = new core.Color(1, 1, 1, 1);
- return _this;
- }
- return PathAttachment;
- }(core.VertexAttachment));
- core.PathAttachment = PathAttachment;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var PointAttachment = (function (_super) {
- __extends(PointAttachment, _super);
- function PointAttachment(name) {
- var _this = _super.call(this, name) || this;
- _this.color = new core.Color(0.38, 0.94, 0, 1);
- return _this;
- }
- PointAttachment.prototype.computeWorldPosition = function (bone, point) {
- var mat = bone.matrix;
- point.x = this.x * mat.a + this.y * mat.c + bone.worldX;
- point.y = this.x * mat.b + this.y * mat.d + bone.worldY;
- return point;
- };
- PointAttachment.prototype.computeWorldRotation = function (bone) {
- var mat = bone.matrix;
- var cos = core.MathUtils.cosDeg(this.rotation), sin = core.MathUtils.sinDeg(this.rotation);
- var x = cos * mat.a + sin * mat.c;
- var y = cos * mat.b + sin * mat.d;
- return Math.atan2(y, x) * core.MathUtils.radDeg;
- };
- return PointAttachment;
- }(core.VertexAttachment));
- core.PointAttachment = PointAttachment;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var RegionAttachment = (function (_super) {
- __extends(RegionAttachment, _super);
- function RegionAttachment(name) {
- var _this = _super.call(this, name) || this;
- _this.x = 0;
- _this.y = 0;
- _this.scaleX = 1;
- _this.scaleY = 1;
- _this.rotation = 0;
- _this.width = 0;
- _this.height = 0;
- _this.color = new core.Color(1, 1, 1, 1);
- _this.offset = core.Utils.newFloatArray(8);
- _this.uvs = core.Utils.newFloatArray(8);
- _this.tempColor = new core.Color(1, 1, 1, 1);
- return _this;
- }
- RegionAttachment.prototype.updateOffset = function () {
- var regionScaleX = this.width / this.region.originalWidth * this.scaleX;
- var regionScaleY = this.height / this.region.originalHeight * this.scaleY;
- var localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX;
- var localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY;
- var localX2 = localX + this.region.width * regionScaleX;
- var localY2 = localY + this.region.height * regionScaleY;
- var radians = this.rotation * Math.PI / 180;
- var cos = Math.cos(radians);
- var sin = Math.sin(radians);
- var localXCos = localX * cos + this.x;
- var localXSin = localX * sin;
- var localYCos = localY * cos + this.y;
- var localYSin = localY * sin;
- var localX2Cos = localX2 * cos + this.x;
- var localX2Sin = localX2 * sin;
- var localY2Cos = localY2 * cos + this.y;
- var localY2Sin = localY2 * sin;
- var offset = this.offset;
- offset[RegionAttachment.OX1] = localXCos - localYSin;
- offset[RegionAttachment.OY1] = localYCos + localXSin;
- offset[RegionAttachment.OX2] = localXCos - localY2Sin;
- offset[RegionAttachment.OY2] = localY2Cos + localXSin;
- offset[RegionAttachment.OX3] = localX2Cos - localY2Sin;
- offset[RegionAttachment.OY3] = localY2Cos + localX2Sin;
- offset[RegionAttachment.OX4] = localX2Cos - localYSin;
- offset[RegionAttachment.OY4] = localYCos + localX2Sin;
- };
- RegionAttachment.prototype.setRegion = function (region) {
- this.region = region;
- var uvs = this.uvs;
- if (region.rotate) {
- uvs[2] = region.u;
- uvs[3] = region.v2;
- uvs[4] = region.u;
- uvs[5] = region.v;
- uvs[6] = region.u2;
- uvs[7] = region.v;
- uvs[0] = region.u2;
- uvs[1] = region.v2;
- }
- else {
- uvs[0] = region.u;
- uvs[1] = region.v2;
- uvs[2] = region.u;
- uvs[3] = region.v;
- uvs[4] = region.u2;
- uvs[5] = region.v;
- uvs[6] = region.u2;
- uvs[7] = region.v2;
- }
- };
- RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) {
- var vertexOffset = this.offset;
- var mat = bone.matrix;
- var x = mat.tx, y = mat.ty;
- var a = mat.a, b = mat.c, c = mat.b, d = mat.d;
- var offsetX = 0, offsetY = 0;
- offsetX = vertexOffset[RegionAttachment.OX1];
- offsetY = vertexOffset[RegionAttachment.OY1];
- worldVertices[offset] = offsetX * a + offsetY * b + x;
- worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
- offset += stride;
- offsetX = vertexOffset[RegionAttachment.OX2];
- offsetY = vertexOffset[RegionAttachment.OY2];
- worldVertices[offset] = offsetX * a + offsetY * b + x;
- worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
- offset += stride;
- offsetX = vertexOffset[RegionAttachment.OX3];
- offsetY = vertexOffset[RegionAttachment.OY3];
- worldVertices[offset] = offsetX * a + offsetY * b + x;
- worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
- offset += stride;
- offsetX = vertexOffset[RegionAttachment.OX4];
- offsetY = vertexOffset[RegionAttachment.OY4];
- worldVertices[offset] = offsetX * a + offsetY * b + x;
- worldVertices[offset + 1] = offsetX * c + offsetY * d + y;
- };
- RegionAttachment.OX1 = 0;
- RegionAttachment.OY1 = 1;
- RegionAttachment.OX2 = 2;
- RegionAttachment.OY2 = 3;
- RegionAttachment.OX3 = 4;
- RegionAttachment.OY3 = 5;
- RegionAttachment.OX4 = 6;
- RegionAttachment.OY4 = 7;
- RegionAttachment.X1 = 0;
- RegionAttachment.Y1 = 1;
- RegionAttachment.C1R = 2;
- RegionAttachment.C1G = 3;
- RegionAttachment.C1B = 4;
- RegionAttachment.C1A = 5;
- RegionAttachment.U1 = 6;
- RegionAttachment.V1 = 7;
- RegionAttachment.X2 = 8;
- RegionAttachment.Y2 = 9;
- RegionAttachment.C2R = 10;
- RegionAttachment.C2G = 11;
- RegionAttachment.C2B = 12;
- RegionAttachment.C2A = 13;
- RegionAttachment.U2 = 14;
- RegionAttachment.V2 = 15;
- RegionAttachment.X3 = 16;
- RegionAttachment.Y3 = 17;
- RegionAttachment.C3R = 18;
- RegionAttachment.C3G = 19;
- RegionAttachment.C3B = 20;
- RegionAttachment.C3A = 21;
- RegionAttachment.U3 = 22;
- RegionAttachment.V3 = 23;
- RegionAttachment.X4 = 24;
- RegionAttachment.Y4 = 25;
- RegionAttachment.C4R = 26;
- RegionAttachment.C4G = 27;
- RegionAttachment.C4B = 28;
- RegionAttachment.C4A = 29;
- RegionAttachment.U4 = 30;
- RegionAttachment.V4 = 31;
- return RegionAttachment;
- }(core.Attachment));
- core.RegionAttachment = RegionAttachment;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var JitterEffect = (function () {
- function JitterEffect(jitterX, jitterY) {
- this.jitterX = 0;
- this.jitterY = 0;
- this.jitterX = jitterX;
- this.jitterY = jitterY;
- }
- JitterEffect.prototype.begin = function (skeleton) {
- };
- JitterEffect.prototype.transform = function (position, uv, light, dark) {
- position.x += core.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
- position.y += core.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
- };
- JitterEffect.prototype.end = function () {
- };
- return JitterEffect;
- }());
- core.JitterEffect = JitterEffect;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- var core;
- (function (core) {
- var SwirlEffect = (function () {
- function SwirlEffect(radius) {
- this.centerX = 0;
- this.centerY = 0;
- this.radius = 0;
- this.angle = 0;
- this.worldX = 0;
- this.worldY = 0;
- this.radius = radius;
- }
- SwirlEffect.prototype.begin = function (skeleton) {
- this.worldX = skeleton.x + this.centerX;
- this.worldY = skeleton.y + this.centerY;
- };
- SwirlEffect.prototype.transform = function (position, uv, light, dark) {
- var radAngle = this.angle * core.MathUtils.degreesToRadians;
- var x = position.x - this.worldX;
- var y = position.y - this.worldY;
- var dist = Math.sqrt(x * x + y * y);
- if (dist < this.radius) {
- var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);
- var cos = Math.cos(theta);
- var sin = Math.sin(theta);
- position.x = cos * x - sin * y + this.worldX;
- position.y = sin * x + cos * y + this.worldY;
- }
- };
- SwirlEffect.prototype.end = function () {
- };
- SwirlEffect.interpolation = new core.PowOut(2);
- return SwirlEffect;
- }());
- core.SwirlEffect = SwirlEffect;
- })(core = pixi_spine.core || (pixi_spine.core = {}));
- })(pixi_spine || (pixi_spine = {}));
- (function () {
- if (!Math.fround) {
- Math.fround = Math.fround = (function (array) {
- return function (x) {
- return array[0] = x, array[0];
- };
- })(new Float32Array(1));
- }
- })();
- var pixi_spine;
- (function (pixi_spine) {
- pixi_spine.core.Bone.yDown = true;
- var tempRgb = [0, 0, 0];
- var SpineSprite = (function (_super) {
- __extends(SpineSprite, _super);
- function SpineSprite() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.region = null;
- return _this;
- }
- return SpineSprite;
- }(PIXI.Sprite));
- pixi_spine.SpineSprite = SpineSprite;
- var SpineMesh = (function (_super) {
- __extends(SpineMesh, _super);
- function SpineMesh(texture, vertices, uvs, indices, drawMode) {
- return _super.call(this, texture, vertices, uvs, indices, drawMode) || this;
- }
- return SpineMesh;
- }(PIXI.mesh.Mesh));
- pixi_spine.SpineMesh = SpineMesh;
- var Spine = (function (_super) {
- __extends(Spine, _super);
- function Spine(spineData) {
- var _this = _super.call(this) || this;
- if (!spineData) {
- throw new Error('The spineData param is required.');
- }
- if ((typeof spineData) === "string") {
- throw new Error('spineData param cant be string. Please use spine.Spine.fromAtlas("YOUR_RESOURCE_NAME") from now on.');
- }
- _this.spineData = spineData;
- _this.skeleton = new pixi_spine.core.Skeleton(spineData);
- _this.skeleton.updateWorldTransform();
- _this.stateData = new pixi_spine.core.AnimationStateData(spineData);
- _this.state = new pixi_spine.core.AnimationState(_this.stateData);
- _this.slotContainers = [];
- _this.tempClipContainers = [];
- for (var i = 0, n = _this.skeleton.slots.length; i < n; i++) {
- var slot = _this.skeleton.slots[i];
- var attachment = slot.attachment;
- var slotContainer = _this.newContainer();
- _this.slotContainers.push(slotContainer);
- _this.addChild(slotContainer);
- _this.tempClipContainers.push(null);
- if (attachment instanceof pixi_spine.core.RegionAttachment) {
- var spriteName = attachment.region.name;
- var sprite = _this.createSprite(slot, attachment, spriteName);
- slot.currentSprite = sprite;
- slot.currentSpriteName = spriteName;
- slotContainer.addChild(sprite);
- }
- else if (attachment instanceof pixi_spine.core.MeshAttachment) {
- var mesh = _this.createMesh(slot, attachment);
- slot.currentMesh = mesh;
- slot.currentMeshName = attachment.name;
- slotContainer.addChild(mesh);
- }
- else if (attachment instanceof pixi_spine.core.ClippingAttachment) {
- _this.createGraphics(slot, attachment);
- slotContainer.addChild(slot.clippingContainer);
- slotContainer.addChild(slot.currentGraphics);
- }
- else {
- continue;
- }
- }
- _this.autoUpdate = true;
- _this.tintRgb = new Float32Array([1, 1, 1]);
- return _this;
- }
- Object.defineProperty(Spine.prototype, "autoUpdate", {
- get: function () {
- return (this.updateTransform === Spine.prototype.autoUpdateTransform);
- },
- set: function (value) {
- this.updateTransform = value ? Spine.prototype.autoUpdateTransform : PIXI.Container.prototype.updateTransform;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Spine.prototype, "tint", {
- get: function () {
- return PIXI.utils.rgb2hex(this.tintRgb);
- },
- set: function (value) {
- this.tintRgb = PIXI.utils.hex2rgb(value, this.tintRgb);
- },
- enumerable: true,
- configurable: true
- });
- Spine.prototype.update = function (dt) {
- this.state.update(dt);
- this.state.apply(this.skeleton);
- this.skeleton.updateWorldTransform();
- var slots = this.skeleton.slots;
- var globalClr = this.color;
- var light = null, dark = null;
- if (globalClr) {
- light = globalClr.light;
- dark = globalClr.dark;
- }
- else {
- light = this.tintRgb;
- }
- var thack = PIXI.TransformBase && (this.transformHack() == 1);
- for (var i = 0, n = slots.length; i < n; i++) {
- var slot = slots[i];
- var attachment = slot.attachment;
- var slotContainer = this.slotContainers[i];
- if (!attachment) {
- slotContainer.visible = false;
- continue;
- }
- var spriteColor = null;
- var attColor = attachment.color;
- if (attachment instanceof pixi_spine.core.RegionAttachment) {
- var region = attachment.region;
- if (region) {
- if (slot.currentMesh) {
- slot.currentMesh.visible = false;
- slot.currentMesh = null;
- slot.currentMeshName = undefined;
- }
- var ar = region;
- if (!slot.currentSpriteName || slot.currentSpriteName !== ar.name) {
- var spriteName = ar.name;
- if (slot.currentSprite) {
- slot.currentSprite.visible = false;
- }
- slot.sprites = slot.sprites || {};
- if (slot.sprites[spriteName] !== undefined) {
- slot.sprites[spriteName].visible = true;
- }
- else {
- var sprite = this.createSprite(slot, attachment, spriteName);
- slotContainer.addChild(sprite);
- }
- slot.currentSprite = slot.sprites[spriteName];
- slot.currentSpriteName = spriteName;
- }
- }
- if (slotContainer.transform) {
- var transform = slotContainer.transform;
- var transAny = transform;
- var lt = null;
- if (transAny.matrix2d) {
- lt = transAny.matrix2d;
- transAny._dirtyVersion++;
- transAny.version = transAny._dirtyVersion;
- transAny.isStatic = true;
- transAny.operMode = 0;
- }
- else {
- if (thack) {
- if (transAny.position) {
- transform = new PIXI.TransformBase();
- transform._parentID = -1;
- transform._worldID = slotContainer.transform._worldID;
- slotContainer.transform = transform;
- }
- lt = transform.localTransform;
- }
- else {
- transAny.setFromMatrix(slot.bone.matrix);
- }
- }
- if (lt) {
- slot.bone.matrix.copy(lt);
- }
- }
- else {
- var lt = slotContainer.localTransform || new PIXI.Matrix();
- slot.bone.matrix.copy(lt);
- slotContainer.localTransform = lt;
- slotContainer.displayObjectUpdateTransform = SlotContainerUpdateTransformV3;
- }
- if (slot.currentSprite.color) {
- spriteColor = slot.currentSprite.color;
- }
- else {
- tempRgb[0] = light[0] * slot.color.r * attColor.r;
- tempRgb[1] = light[1] * slot.color.g * attColor.g;
- tempRgb[2] = light[2] * slot.color.b * attColor.b;
- slot.currentSprite.tint = PIXI.utils.rgb2hex(tempRgb);
- }
- slot.currentSprite.blendMode = slot.blendMode;
- }
- else if (attachment instanceof pixi_spine.core.MeshAttachment) {
- if (slot.currentSprite) {
- slot.currentSprite.visible = false;
- slot.currentSprite = null;
- slot.currentSpriteName = undefined;
- if (slotContainer.transform) {
- var transform = new PIXI.TransformStatic();
- transform._parentID = -1;
- transform._worldID = slotContainer.transform._worldID;
- slotContainer.transform = transform;
- }
- else {
- slotContainer.localTransform = new PIXI.Matrix();
- slotContainer.displayObjectUpdateTransform = PIXI.DisplayObject.prototype.updateTransform;
- }
- }
- if (!slot.currentMeshName || slot.currentMeshName !== attachment.name) {
- var meshName = attachment.name;
- if (slot.currentMesh) {
- slot.currentMesh.visible = false;
- }
- slot.meshes = slot.meshes || {};
- if (slot.meshes[meshName] !== undefined) {
- slot.meshes[meshName].visible = true;
- }
- else {
- var mesh = this.createMesh(slot, attachment);
- slotContainer.addChild(mesh);
- }
- slot.currentMesh = slot.meshes[meshName];
- slot.currentMeshName = meshName;
- }
- attachment.computeWorldVerticesOld(slot, slot.currentMesh.vertices);
- if (slot.currentMesh.color) {
- spriteColor = slot.currentMesh.color;
- }
- else if (PIXI.VERSION[0] !== '3') {
- var tintRgb = slot.currentMesh.tintRgb;
- tintRgb[0] = light[0] * slot.color.r * attColor.r;
- tintRgb[1] = light[1] * slot.color.g * attColor.g;
- tintRgb[2] = light[2] * slot.color.b * attColor.b;
- }
- slot.currentMesh.blendMode = slot.blendMode;
- }
- else if (attachment instanceof pixi_spine.core.ClippingAttachment) {
- if (!slot.currentGraphics) {
- this.createGraphics(slot, attachment);
- slotContainer.addChild(slot.clippingContainer);
- slotContainer.addChild(slot.currentGraphics);
- }
- this.updateGraphics(slot, attachment);
- }
- else {
- slotContainer.visible = false;
- continue;
- }
- slotContainer.visible = true;
- if (spriteColor) {
- var r0 = slot.color.r * attColor.r;
- var g0 = slot.color.g * attColor.g;
- var b0 = slot.color.b * attColor.b;
- spriteColor.setLight(light[0] * r0 + dark[0] * (1.0 - r0), light[1] * g0 + dark[1] * (1.0 - g0), light[2] * b0 + dark[2] * (1.0 - b0));
- if (slot.darkColor) {
- r0 = slot.darkColor.r;
- g0 = slot.darkColor.g;
- b0 = slot.darkColor.b;
- }
- else {
- r0 = 0.0;
- g0 = 0.0;
- b0 = 0.0;
- }
- spriteColor.setDark(light[0] * r0 + dark[0] * (1 - r0), light[1] * g0 + dark[1] * (1 - g0), light[2] * b0 + dark[2] * (1 - b0));
- }
- slotContainer.alpha = slot.color.a;
- }
- var drawOrder = this.skeleton.drawOrder;
- var clippingAttachment = null;
- var clippingContainer = null;
- for (var i = 0, n = drawOrder.length; i < n; i++) {
- var slot = slots[drawOrder[i].data.index];
- var slotContainer = this.slotContainers[drawOrder[i].data.index];
- if (!clippingContainer) {
- if (slotContainer.parent !== this) {
- slotContainer.parent.removeChild(slotContainer);
- slotContainer.parent = this;
- }
- }
- if (slot.currentGraphics && slot.attachment) {
- clippingContainer = slot.clippingContainer;
- clippingAttachment = slot.attachment;
- clippingContainer.children.length = 0;
- this.children[i] = slotContainer;
- if (clippingAttachment.endSlot == slot.data) {
- clippingAttachment.endSlot = null;
- }
- }
- else {
- if (clippingContainer) {
- var c = this.tempClipContainers[i];
- if (!c) {
- c = this.tempClipContainers[i] = this.newContainer();
- c.visible = false;
- }
- this.children[i] = c;
- slotContainer.parent = null;
- clippingContainer.addChild(slotContainer);
- if (clippingAttachment.endSlot == slot.data) {
- clippingContainer.renderable = true;
- clippingContainer = null;
- clippingAttachment = null;
- }
- }
- else {
- this.children[i] = slotContainer;
- }
- }
- }
- };
- ;
- Spine.prototype.setSpriteRegion = function (attachment, sprite, region) {
- sprite.region = region;
- sprite.texture = region.texture;
- if (!region.size) {
- sprite.scale.x = attachment.scaleX * attachment.width / region.originalWidth;
- sprite.scale.y = -attachment.scaleY * attachment.height / region.originalHeight;
- }
- else {
- sprite.scale.x = region.size.width / region.originalWidth;
- sprite.scale.y = -region.size.height / region.originalHeight;
- }
- };
- Spine.prototype.setMeshRegion = function (attachment, mesh, region) {
- mesh.region = region;
- mesh.texture = region.texture;
- region.texture._updateUvs();
- attachment.updateUVs(region, mesh.uvs);
- mesh.dirty++;
- };
- Spine.prototype.autoUpdateTransform = function () {
- if (Spine.globalAutoUpdate) {
- this.lastTime = this.lastTime || Date.now();
- var timeDelta = (Date.now() - this.lastTime) * 0.001;
- this.lastTime = Date.now();
- this.update(timeDelta);
- }
- else {
- this.lastTime = 0;
- }
- PIXI.Container.prototype.updateTransform.call(this);
- };
- ;
- Spine.prototype.createSprite = function (slot, attachment, defName) {
- var region = attachment.region;
- if (slot.tempAttachment === attachment) {
- region = slot.tempRegion;
- slot.tempAttachment = null;
- slot.tempRegion = null;
- }
- var texture = region.texture;
- var sprite = this.newSprite(texture);
- sprite.rotation = attachment.rotation * pixi_spine.core.MathUtils.degRad;
- sprite.anchor.x = 0.5;
- sprite.anchor.y = 0.5;
- sprite.position.x = attachment.x;
- sprite.position.y = attachment.y;
- sprite.alpha = attachment.color.a;
- sprite.region = attachment.region;
- this.setSpriteRegion(attachment, sprite, attachment.region);
- slot.sprites = slot.sprites || {};
- slot.sprites[defName] = sprite;
- return sprite;
- };
- ;
- Spine.prototype.createMesh = function (slot, attachment) {
- var region = attachment.region;
- if (slot.tempAttachment === attachment) {
- region = slot.tempRegion;
- slot.tempAttachment = null;
- slot.tempRegion = null;
- }
- var strip = this.newMesh(region.texture, new Float32Array(attachment.regionUVs.length), new Float32Array(attachment.regionUVs.length), new Uint16Array(attachment.triangles), PIXI.mesh.Mesh.DRAW_MODES.TRIANGLES);
- strip.canvasPadding = 1.5;
- strip.alpha = attachment.color.a;
- strip.region = attachment.region;
- this.setMeshRegion(attachment, strip, region);
- slot.meshes = slot.meshes || {};
- slot.meshes[attachment.name] = strip;
- return strip;
- };
- ;
- Spine.prototype.createGraphics = function (slot, clip) {
- var graphics = this.newGraphics();
- var poly = new PIXI.Polygon([]);
- graphics.clear();
- graphics.beginFill(0xffffff, 1);
- graphics.drawPolygon(poly);
- graphics.renderable = false;
- slot.currentGraphics = graphics;
- slot.clippingContainer = this.newContainer();
- slot.clippingContainer.mask = slot.currentGraphics;
- return graphics;
- };
- Spine.prototype.updateGraphics = function (slot, clip) {
- var vertices = slot.currentGraphics.graphicsData[0].shape.points;
- var n = clip.worldVerticesLength;
- vertices.length = n;
- clip.computeWorldVertices(slot, 0, n, vertices, 0, 2);
- slot.currentGraphics.dirty++;
- slot.currentGraphics.clearDirty++;
- };
- Spine.prototype.hackTextureBySlotIndex = function (slotIndex, texture, size) {
- if (texture === void 0) { texture = null; }
- if (size === void 0) { size = null; }
- var slot = this.skeleton.slots[slotIndex];
- if (!slot) {
- return false;
- }
- var attachment = slot.attachment;
- var region = attachment.region;
- if (texture) {
- region = new pixi_spine.core.TextureRegion();
- region.texture = texture;
- region.size = size;
- }
- if (slot.currentSprite && slot.currentSprite.region != region) {
- this.setSpriteRegion(attachment, slot.currentSprite, region);
- slot.currentSprite.region = region;
- }
- else if (slot.currentMesh && slot.currentMesh.region != region) {
- this.setMeshRegion(attachment, slot.currentMesh, region);
- }
- else {
- slot.tempRegion = region;
- slot.tempAttachment = attachment;
- }
- return true;
- };
- Spine.prototype.hackTextureBySlotName = function (slotName, texture, size) {
- if (texture === void 0) { texture = null; }
- if (size === void 0) { size = null; }
- var index = this.skeleton.findSlotIndex(slotName);
- if (index == -1) {
- return false;
- }
- return this.hackTextureBySlotIndex(index, texture, size);
- };
- Spine.prototype.newContainer = function () {
- return new PIXI.Container();
- };
- Spine.prototype.newSprite = function (tex) {
- return new SpineSprite(tex);
- };
- Spine.prototype.newGraphics = function () {
- return new PIXI.Graphics();
- };
- Spine.prototype.newMesh = function (texture, vertices, uvs, indices, drawMode) {
- return new SpineMesh(texture, vertices, uvs, indices, drawMode);
- };
- Spine.prototype.transformHack = function () {
- return 1;
- };
- Spine.globalAutoUpdate = true;
- Spine.clippingPolygon = [];
- return Spine;
- }(PIXI.Container));
- pixi_spine.Spine = Spine;
- function SlotContainerUpdateTransformV3() {
- var pt = this.parent.worldTransform;
- var wt = this.worldTransform;
- var lt = this.localTransform;
- wt.a = lt.a * pt.a + lt.b * pt.c;
- wt.b = lt.a * pt.b + lt.b * pt.d;
- wt.c = lt.c * pt.a + lt.d * pt.c;
- wt.d = lt.c * pt.b + lt.d * pt.d;
- wt.tx = lt.tx * pt.a + lt.ty * pt.c + pt.tx;
- wt.ty = lt.tx * pt.b + lt.ty * pt.d + pt.ty;
- this.worldAlpha = this.alpha * this.parent.worldAlpha;
- this._currentBounds = null;
- }
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- PIXI.spine = pixi_spine;
- var TextureProto = PIXI.Texture.prototype;
- if (!TextureProto._updateUvs) {
- TextureProto._updateUvs = TextureProto.updateUvs;
- }
- })(pixi_spine || (pixi_spine = {}));
- var pixi_spine;
- (function (pixi_spine) {
- function isJson(resource) {
- return resource.type === PIXI.loaders.Resource.TYPE.JSON;
- }
- function atlasParser() {
- return function (resource, next) {
- if (!resource.data ||
- !isJson(resource) ||
- !resource.data.bones) {
- return next();
- }
- var metadata = resource.metadata || {};
- var metadataSkeletonScale = metadata ? resource.metadata.spineSkeletonScale : null;
- var metadataAtlas = metadata ? resource.metadata.spineAtlas : null;
- if (metadataAtlas === false) {
- return next();
- }
- if (metadataAtlas && metadataAtlas.pages) {
- var spineJsonParser = new pixi_spine.core.SkeletonJson(new pixi_spine.core.AtlasAttachmentLoader(metadataAtlas));
- var skeletonData = spineJsonParser.readSkeletonData(resource.data);
- resource.spineData = skeletonData;
- resource.spineAtlas = metadataAtlas;
- return next();
- }
- var metadataAtlasSuffix = metadata.spineAtlasSuffix || '.atlas';
- var atlasPath = resource.url.substr(0, resource.url.lastIndexOf('.')) + metadataAtlasSuffix;
- if (resource.metadata && resource.metadata.spineAtlasFile) {
- atlasPath = resource.metadata.spineAtlasFile;
- }
- atlasPath = atlasPath.replace(this.baseUrl, '');
- var atlasOptions = {
- crossOrigin: resource.crossOrigin,
- xhrType: PIXI.loaders.Resource.XHR_RESPONSE_TYPE.TEXT,
- metadata: metadata.spineMetadata || null,
- parentResource: resource
- };
- var imageOptions = {
- crossOrigin: resource.crossOrigin,
- metadata: metadata.imageMetadata || null,
- parentResource: resource
- };
- var baseUrl = resource.url.substr(0, resource.url.lastIndexOf('/') + 1);
- baseUrl = baseUrl.replace(this.baseUrl, '');
- var adapter = metadata.images ? staticImageLoader(metadata.images)
- : metadata.image ? staticImageLoader({ 'default': metadata.image })
- : metadata.imageLoader ? metadata.imageLoader(this, resource.name + '_atlas_page_', baseUrl, imageOptions)
- : imageLoaderAdapter(this, resource.name + '_atlas_page_', baseUrl, imageOptions);
- var createSkeletonWithRawAtlas = function (rawData) {
- new pixi_spine.core.TextureAtlas(rawData, adapter, function (spineAtlas) {
- var spineJsonParser = new pixi_spine.core.SkeletonJson(new pixi_spine.core.AtlasAttachmentLoader(spineAtlas));
- if (metadataSkeletonScale) {
- spineJsonParser.scale = metadataSkeletonScale;
- }
- resource.spineData = spineJsonParser.readSkeletonData(resource.data);
- resource.spineAtlas = spineAtlas;
- next();
- });
- };
- if (resource.metadata && resource.metadata.atlasRawData) {
- createSkeletonWithRawAtlas(resource.metadata.atlasRawData);
- }
- else {
- this.add(resource.name + '_atlas', atlasPath, atlasOptions, function (atlasResource) {
- createSkeletonWithRawAtlas(atlasResource.xhr.responseText);
- });
- }
- };
- }
- pixi_spine.atlasParser = atlasParser;
- function imageLoaderAdapter(loader, namePrefix, baseUrl, imageOptions) {
- if (baseUrl && baseUrl.lastIndexOf('/') !== (baseUrl.length - 1)) {
- baseUrl += '/';
- }
- return function (line, callback) {
- var name = namePrefix + line;
- var url = baseUrl + line;
- loader.add(name, url, imageOptions, function (resource) {
- callback(resource.texture.baseTexture);
- });
- };
- }
- pixi_spine.imageLoaderAdapter = imageLoaderAdapter;
- function syncImageLoaderAdapter(baseUrl, crossOrigin) {
- if (baseUrl && baseUrl.lastIndexOf('/') !== (baseUrl.length - 1)) {
- baseUrl += '/';
- }
- return function (line, callback) {
- callback(PIXI.BaseTexture.fromImage(line, crossOrigin));
- };
- }
- pixi_spine.syncImageLoaderAdapter = syncImageLoaderAdapter;
- function staticImageLoader(pages) {
- return function (line, callback) {
- var page = pages[line] || pages['default'];
- if (page && page.baseTexture)
- callback(page.baseTexture);
- else
- callback(page);
- };
- }
- pixi_spine.staticImageLoader = staticImageLoader;
- PIXI.loaders.Loader.addPixiMiddleware(atlasParser);
- PIXI.loader.use(atlasParser());
- })(pixi_spine || (pixi_spine = {}));
- export default pixi_spine
- //# sourceMappingURL=pixi-spine.js.map
|