babylon.inspector.module.d.ts 402 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617
  1. /// <reference types="react" />
  2. declare module "babylonjs-inspector/components/propertyChangedEvent" {
  3. export class PropertyChangedEvent {
  4. object: any;
  5. property: string;
  6. value: any;
  7. initialValue: any;
  8. allowNullValue?: boolean;
  9. }
  10. }
  11. declare module "babylonjs-inspector/components/replayRecorder" {
  12. import { Scene } from 'babylonjs/scene';
  13. export class ReplayRecorder {
  14. private _sceneRecorder;
  15. private _isRecording;
  16. get isRecording(): boolean;
  17. cancel(): void;
  18. trackScene(scene: Scene): void;
  19. applyDelta(json: any, scene: Scene): void;
  20. export(): void;
  21. }
  22. }
  23. declare module "babylonjs-inspector/components/globalState" {
  24. import { IGLTFValidationResults } from "babylonjs-gltf2interface";
  25. import { Nullable } from "babylonjs/types";
  26. import { Observable, Observer } from "babylonjs/Misc/observable";
  27. import { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from "babylonjs/Loading/sceneLoader";
  28. import { Scene } from "babylonjs/scene";
  29. import { Light } from "babylonjs/Lights/light";
  30. import { Camera } from "babylonjs/Cameras/camera";
  31. import { LightGizmo } from "babylonjs/Gizmos/lightGizmo";
  32. import { CameraGizmo } from "babylonjs/Gizmos/cameraGizmo";
  33. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  34. import { ReplayRecorder } from "babylonjs-inspector/components/replayRecorder";
  35. export class GlobalState {
  36. onSelectionChangedObservable: Observable<any>;
  37. onPropertyChangedObservable: Observable<PropertyChangedEvent>;
  38. onInspectorClosedObservable: Observable<Scene>;
  39. onTabChangedObservable: Observable<number>;
  40. onSelectionRenamedObservable: Observable<void>;
  41. onPluginActivatedObserver: Nullable<Observer<ISceneLoaderPlugin | ISceneLoaderPluginAsync>>;
  42. onNewSceneObservable: Observable<Scene>;
  43. sceneImportDefaults: {
  44. [key: string]: any;
  45. };
  46. validationResults: Nullable<IGLTFValidationResults>;
  47. onValidationResultsUpdatedObservable: Observable<Nullable<IGLTFValidationResults>>;
  48. onExtensionLoadedObservable: Observable<import("babylonjs-loaders/glTF/index").IGLTFLoaderExtension>;
  49. glTFLoaderExtensionDefaults: {
  50. [name: string]: {
  51. [key: string]: any;
  52. };
  53. };
  54. glTFLoaderDefaults: {
  55. [key: string]: any;
  56. };
  57. glTFLoaderExtensions: {
  58. [key: string]: import("babylonjs-loaders/glTF/index").IGLTFLoaderExtension;
  59. };
  60. blockMutationUpdates: boolean;
  61. selectedLineContainerTitles: Array<string>;
  62. selectedLineContainerTitlesNoFocus: Array<string>;
  63. recorder: ReplayRecorder;
  64. private _onlyUseEulers;
  65. get onlyUseEulers(): boolean;
  66. set onlyUseEulers(value: boolean);
  67. private _ignoreBackfacesForPicking;
  68. get ignoreBackfacesForPicking(): boolean;
  69. set ignoreBackfacesForPicking(value: boolean);
  70. init(propertyChangedObservable: Observable<PropertyChangedEvent>): void;
  71. prepareGLTFPlugin(loader: import("babylonjs-loaders/glTF/index").GLTFFileLoader): void;
  72. resetGLTFValidationResults(): void;
  73. lightGizmos: Array<LightGizmo>;
  74. enableLightGizmo(light: Light, enable?: boolean): void;
  75. cameraGizmos: Array<CameraGizmo>;
  76. enableCameraGizmo(camera: Camera, enable?: boolean): void;
  77. }
  78. }
  79. declare module "babylonjs-inspector/components/actionTabs/paneComponent" {
  80. import * as React from "react";
  81. import { Observable } from "babylonjs/Misc/observable";
  82. import { Scene } from "babylonjs/scene";
  83. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  84. import { GlobalState } from "babylonjs-inspector/components/globalState";
  85. export interface IPaneComponentProps {
  86. title: string;
  87. scene: Scene;
  88. selectedEntity?: any;
  89. onSelectionChangedObservable?: Observable<any>;
  90. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  91. globalState: GlobalState;
  92. }
  93. export class PaneComponent extends React.Component<IPaneComponentProps, {
  94. tag: any;
  95. }> {
  96. constructor(props: IPaneComponentProps);
  97. render(): JSX.Element | null;
  98. }
  99. }
  100. declare module "babylonjs-inspector/components/actionTabs/tabsComponent" {
  101. import * as React from "react";
  102. import { PaneComponent } from "babylonjs-inspector/components/actionTabs/paneComponent";
  103. interface ITabsComponentProps {
  104. children: any[];
  105. selectedIndex: number;
  106. onSelectedIndexChange: (value: number) => void;
  107. }
  108. export class TabsComponent extends React.Component<ITabsComponentProps> {
  109. constructor(props: ITabsComponentProps);
  110. onSelect(index: number): void;
  111. renderLabel(child: PaneComponent, index: number): JSX.Element;
  112. render(): JSX.Element;
  113. }
  114. }
  115. declare module "babylonjs-inspector/sharedUiComponents/lines/textLineComponent" {
  116. import * as React from "react";
  117. interface ITextLineComponentProps {
  118. label?: string;
  119. value?: string;
  120. color?: string;
  121. underline?: boolean;
  122. onLink?: () => void;
  123. url?: string;
  124. ignoreValue?: boolean;
  125. additionalClass?: string;
  126. }
  127. export class TextLineComponent extends React.Component<ITextLineComponentProps> {
  128. constructor(props: ITextLineComponentProps);
  129. onLink(): void;
  130. renderContent(): JSX.Element | null;
  131. render(): JSX.Element;
  132. }
  133. }
  134. declare module "babylonjs-inspector/components/actionTabs/lineContainerComponent" {
  135. import * as React from "react";
  136. import { GlobalState } from "babylonjs-inspector/components/globalState";
  137. interface ILineContainerComponentProps {
  138. globalState?: GlobalState;
  139. title: string;
  140. children: any[] | any;
  141. closed?: boolean;
  142. }
  143. export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
  144. isExpanded: boolean;
  145. isHighlighted: boolean;
  146. }> {
  147. constructor(props: ILineContainerComponentProps);
  148. switchExpandedState(): void;
  149. componentDidMount(): void;
  150. renderHeader(): JSX.Element;
  151. render(): JSX.Element;
  152. }
  153. }
  154. declare module "babylonjs-inspector/sharedUiComponents/lines/valueLineComponent" {
  155. import * as React from "react";
  156. interface IValueLineComponentProps {
  157. label: string;
  158. value: number;
  159. color?: string;
  160. fractionDigits?: number;
  161. units?: string;
  162. }
  163. export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
  164. constructor(props: IValueLineComponentProps);
  165. render(): JSX.Element;
  166. }
  167. }
  168. declare module "babylonjs-inspector/sharedUiComponents/lines/booleanLineComponent" {
  169. import * as React from "react";
  170. export interface IBooleanLineComponentProps {
  171. label: string;
  172. value: boolean;
  173. }
  174. export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
  175. constructor(props: IBooleanLineComponentProps);
  176. render(): JSX.Element;
  177. }
  178. }
  179. declare module "babylonjs-inspector/components/actionTabs/tabs/statisticsTabComponent" {
  180. import { PaneComponent, IPaneComponentProps } from "babylonjs-inspector/components/actionTabs/paneComponent";
  181. export class StatisticsTabComponent extends PaneComponent {
  182. private _sceneInstrumentation;
  183. private _engineInstrumentation;
  184. private _timerIntervalId;
  185. constructor(props: IPaneComponentProps);
  186. componentWillUnmount(): void;
  187. render(): JSX.Element | null;
  188. }
  189. }
  190. declare module "babylonjs-inspector/sharedUiComponents/propertyChangedEvent" {
  191. export class PropertyChangedEvent {
  192. object: any;
  193. property: string;
  194. value: any;
  195. initialValue: any;
  196. allowNullValue?: boolean;
  197. }
  198. }
  199. declare module "babylonjs-inspector/sharedUiComponents/lines/checkBoxLineComponent" {
  200. import * as React from "react";
  201. import { Observable } from "babylonjs/Misc/observable";
  202. import { PropertyChangedEvent } from "babylonjs-inspector/sharedUiComponents/propertyChangedEvent";
  203. export interface ICheckBoxLineComponentProps {
  204. label: string;
  205. target?: any;
  206. propertyName?: string;
  207. isSelected?: () => boolean;
  208. onSelect?: (value: boolean) => void;
  209. onValueChanged?: () => void;
  210. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  211. disabled?: boolean;
  212. }
  213. export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
  214. isSelected: boolean;
  215. isDisabled?: boolean;
  216. }> {
  217. private static _UniqueIdSeed;
  218. private _uniqueId;
  219. private _localChange;
  220. constructor(props: ICheckBoxLineComponentProps);
  221. shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
  222. isSelected: boolean;
  223. isDisabled: boolean;
  224. }): boolean;
  225. onChange(): void;
  226. render(): JSX.Element;
  227. }
  228. }
  229. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/renderGridPropertyGridComponent" {
  230. import * as React from "react";
  231. import { Scene } from "babylonjs/scene";
  232. import { GlobalState } from "babylonjs-inspector/components/globalState";
  233. interface IRenderGridPropertyGridComponentProps {
  234. globalState: GlobalState;
  235. scene: Scene;
  236. }
  237. export class RenderGridPropertyGridComponent extends React.Component<IRenderGridPropertyGridComponentProps, {
  238. isEnabled: boolean;
  239. }> {
  240. private _gridMesh;
  241. constructor(props: IRenderGridPropertyGridComponentProps);
  242. componentDidMount(): void;
  243. addOrRemoveGrid(): void;
  244. render(): JSX.Element;
  245. }
  246. }
  247. declare module "babylonjs-inspector/components/actionTabs/tabs/debugTabComponent" {
  248. import { PaneComponent, IPaneComponentProps } from "babylonjs-inspector/components/actionTabs/paneComponent";
  249. export class DebugTabComponent extends PaneComponent {
  250. private _physicsViewersEnabled;
  251. constructor(props: IPaneComponentProps);
  252. switchPhysicsViewers(): void;
  253. render(): JSX.Element | null;
  254. }
  255. }
  256. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject" {
  257. /**
  258. * Class used to provide lock mechanism
  259. */
  260. export class LockObject {
  261. /**
  262. * Gets or set if the lock is engaged
  263. */
  264. lock: boolean;
  265. }
  266. }
  267. declare module "babylonjs-inspector/components/actionTabs/lines/floatLineComponent" {
  268. import * as React from "react";
  269. import { Observable } from "babylonjs/Misc/observable";
  270. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  271. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  272. interface IFloatLineComponentProps {
  273. label: string;
  274. target: any;
  275. propertyName: string;
  276. lockObject?: LockObject;
  277. onChange?: (newValue: number) => void;
  278. isInteger?: boolean;
  279. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  280. additionalClass?: string;
  281. step?: string;
  282. digits?: number;
  283. useEuler?: boolean;
  284. min?: number;
  285. max?: number;
  286. smallUI?: boolean;
  287. onEnter?: (newValue: number) => void;
  288. }
  289. export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
  290. value: string;
  291. }> {
  292. private _localChange;
  293. private _store;
  294. constructor(props: IFloatLineComponentProps);
  295. componentWillUnmount(): void;
  296. shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
  297. value: string;
  298. }): boolean;
  299. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  300. updateValue(valueString: string): void;
  301. lock(): void;
  302. unlock(): void;
  303. render(): JSX.Element;
  304. }
  305. }
  306. declare module "babylonjs-inspector/components/actionTabs/lines/sliderLineComponent" {
  307. import * as React from "react";
  308. import { Observable } from "babylonjs/Misc/observable";
  309. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  310. interface ISliderLineComponentProps {
  311. label: string;
  312. target?: any;
  313. propertyName?: string;
  314. minimum: number;
  315. maximum: number;
  316. step: number;
  317. directValue?: number;
  318. useEuler?: boolean;
  319. onChange?: (value: number) => void;
  320. onInput?: (value: number) => void;
  321. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  322. decimalCount?: number;
  323. margin?: boolean;
  324. }
  325. export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
  326. value: number;
  327. }> {
  328. private _localChange;
  329. constructor(props: ISliderLineComponentProps);
  330. shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
  331. value: number;
  332. }): boolean;
  333. onChange(newValueString: any): void;
  334. onInput(newValueString: any): void;
  335. prepareDataToRead(value: number): number;
  336. render(): JSX.Element;
  337. }
  338. }
  339. declare module "babylonjs-inspector/sharedUiComponents/lines/optionsLineComponent" {
  340. import * as React from "react";
  341. import { Observable } from "babylonjs/Misc/observable";
  342. import { PropertyChangedEvent } from "babylonjs-inspector/sharedUiComponents/propertyChangedEvent";
  343. export const Null_Value: number;
  344. export class ListLineOption {
  345. label: string;
  346. value: number;
  347. selected?: boolean;
  348. }
  349. export interface IOptionsLineComponentProps {
  350. label: string;
  351. target: any;
  352. propertyName: string;
  353. options: ListLineOption[];
  354. noDirectUpdate?: boolean;
  355. onSelect?: (value: number) => void;
  356. extractValue?: () => number;
  357. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  358. allowNullValue?: boolean;
  359. }
  360. export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
  361. value: number;
  362. }> {
  363. private _localChange;
  364. private remapValueIn;
  365. private remapValueOut;
  366. constructor(props: IOptionsLineComponentProps);
  367. shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
  368. value: number;
  369. }): boolean;
  370. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  371. updateValue(valueString: string): void;
  372. render(): JSX.Element;
  373. }
  374. }
  375. declare module "babylonjs-inspector/sharedUiComponents/lines/numericInputComponent" {
  376. import * as React from "react";
  377. interface INumericInputComponentProps {
  378. label: string;
  379. value: number;
  380. step?: number;
  381. onChange: (value: number) => void;
  382. precision?: number;
  383. }
  384. export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
  385. value: string;
  386. }> {
  387. static defaultProps: {
  388. step: number;
  389. };
  390. private _localChange;
  391. constructor(props: INumericInputComponentProps);
  392. shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
  393. value: string;
  394. }): boolean;
  395. updateValue(evt: any): void;
  396. onBlur(): void;
  397. render(): JSX.Element;
  398. }
  399. }
  400. declare module "babylonjs-inspector/sharedUiComponents/colorPicker/colorComponentEntry" {
  401. import * as React from "react";
  402. export interface IColorComponentEntryProps {
  403. value: number;
  404. label: string;
  405. max?: number;
  406. min?: number;
  407. onChange: (value: number) => void;
  408. }
  409. export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
  410. constructor(props: IColorComponentEntryProps);
  411. updateValue(valueString: string): void;
  412. render(): JSX.Element;
  413. }
  414. }
  415. declare module "babylonjs-inspector/sharedUiComponents/colorPicker/hexColor" {
  416. import * as React from "react";
  417. export interface IHexColorProps {
  418. value: string;
  419. expectedLength: number;
  420. onChange: (value: string) => void;
  421. }
  422. export class HexColor extends React.Component<IHexColorProps, {
  423. hex: string;
  424. }> {
  425. constructor(props: IHexColorProps);
  426. shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
  427. hex: string;
  428. }): boolean;
  429. updateHexValue(valueString: string): void;
  430. render(): JSX.Element;
  431. }
  432. }
  433. declare module "babylonjs-inspector/sharedUiComponents/colorPicker/colorPicker" {
  434. import * as React from "react";
  435. import { Color3, Color4 } from "babylonjs/Maths/math.color";
  436. /**
  437. * Interface used to specify creation options for color picker
  438. */
  439. export interface IColorPickerProps {
  440. color: Color3 | Color4;
  441. debugMode?: boolean;
  442. onColorChanged?: (color: Color3 | Color4) => void;
  443. }
  444. /**
  445. * Interface used to specify creation options for color picker
  446. */
  447. export interface IColorPickerState {
  448. color: Color3;
  449. alpha: number;
  450. }
  451. /**
  452. * Class used to create a color picker
  453. */
  454. export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
  455. private _saturationRef;
  456. private _hueRef;
  457. private _isSaturationPointerDown;
  458. private _isHuePointerDown;
  459. constructor(props: IColorPickerProps);
  460. onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  461. onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  462. onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  463. onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  464. onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  465. onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  466. private _evaluateSaturation;
  467. private _evaluateHue;
  468. componentDidUpdate(): void;
  469. raiseOnColorChanged(): void;
  470. render(): JSX.Element;
  471. }
  472. }
  473. declare module "babylonjs-inspector/sharedUiComponents/lines/colorPickerComponent" {
  474. import * as React from "react";
  475. import { Color4, Color3 } from 'babylonjs/Maths/math.color';
  476. export interface IColorPickerComponentProps {
  477. value: Color4 | Color3;
  478. onColorChanged: (newOne: string) => void;
  479. }
  480. interface IColorPickerComponentState {
  481. pickerEnabled: boolean;
  482. color: Color3 | Color4;
  483. hex: string;
  484. }
  485. export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
  486. private _floatRef;
  487. private _floatHostRef;
  488. constructor(props: IColorPickerComponentProps);
  489. syncPositions(): void;
  490. shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
  491. componentDidUpdate(): void;
  492. componentDidMount(): void;
  493. render(): JSX.Element;
  494. }
  495. }
  496. declare module "babylonjs-inspector/sharedUiComponents/lines/color3LineComponent" {
  497. import * as React from "react";
  498. import { Observable } from "babylonjs/Misc/observable";
  499. import { PropertyChangedEvent } from "babylonjs-inspector/sharedUiComponents/propertyChangedEvent";
  500. import { Color3 } from 'babylonjs/Maths/math.color';
  501. export interface IColor3LineComponentProps {
  502. label: string;
  503. target: any;
  504. propertyName: string;
  505. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  506. isLinear?: boolean;
  507. }
  508. export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
  509. isExpanded: boolean;
  510. color: Color3;
  511. }> {
  512. private _localChange;
  513. constructor(props: IColor3LineComponentProps);
  514. shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
  515. color: Color3;
  516. }): boolean;
  517. setPropertyValue(newColor: Color3): void;
  518. onChange(newValue: string): void;
  519. switchExpandState(): void;
  520. raiseOnPropertyChanged(previousValue: Color3): void;
  521. updateStateR(value: number): void;
  522. updateStateG(value: number): void;
  523. updateStateB(value: number): void;
  524. copyToClipboard(): void;
  525. render(): JSX.Element;
  526. }
  527. }
  528. declare module "babylonjs-inspector/components/actionTabs/lines/vector3LineComponent" {
  529. import * as React from "react";
  530. import { Vector3 } from "babylonjs/Maths/math.vector";
  531. import { Observable } from "babylonjs/Misc/observable";
  532. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  533. interface IVector3LineComponentProps {
  534. label: string;
  535. target: any;
  536. propertyName: string;
  537. step?: number;
  538. onChange?: (newvalue: Vector3) => void;
  539. useEuler?: boolean;
  540. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  541. noSlider?: boolean;
  542. }
  543. export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
  544. isExpanded: boolean;
  545. value: Vector3;
  546. }> {
  547. static defaultProps: {
  548. step: number;
  549. };
  550. private _localChange;
  551. constructor(props: IVector3LineComponentProps);
  552. getCurrentValue(): any;
  553. shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
  554. isExpanded: boolean;
  555. value: Vector3;
  556. }): boolean;
  557. switchExpandState(): void;
  558. raiseOnPropertyChanged(previousValue: Vector3): void;
  559. updateVector3(): void;
  560. updateStateX(value: number): void;
  561. updateStateY(value: number): void;
  562. updateStateZ(value: number): void;
  563. render(): JSX.Element;
  564. }
  565. }
  566. declare module "babylonjs-inspector/components/actionTabs/lines/quaternionLineComponent" {
  567. import * as React from "react";
  568. import { Observable } from "babylonjs/Misc/observable";
  569. import { Quaternion, Vector3 } from "babylonjs/Maths/math.vector";
  570. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  571. interface IQuaternionLineComponentProps {
  572. label: string;
  573. target: any;
  574. useEuler?: boolean;
  575. propertyName: string;
  576. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  577. }
  578. export class QuaternionLineComponent extends React.Component<IQuaternionLineComponentProps, {
  579. isExpanded: boolean;
  580. value: Quaternion;
  581. eulerValue: Vector3;
  582. }> {
  583. private _localChange;
  584. constructor(props: IQuaternionLineComponentProps);
  585. _checkRoundCircle(a: number, b: number): boolean;
  586. shouldComponentUpdate(nextProps: IQuaternionLineComponentProps, nextState: {
  587. isExpanded: boolean;
  588. value: Quaternion;
  589. eulerValue: Vector3;
  590. }): boolean;
  591. switchExpandState(): void;
  592. raiseOnPropertyChanged(currentValue: Quaternion, previousValue: Quaternion): void;
  593. updateQuaternion(): void;
  594. updateStateX(value: number): void;
  595. updateStateY(value: number): void;
  596. updateStateZ(value: number): void;
  597. updateStateW(value: number): void;
  598. updateQuaternionFromEuler(): void;
  599. updateStateEulerX(value: number): void;
  600. updateStateEulerY(value: number): void;
  601. updateStateEulerZ(value: number): void;
  602. render(): JSX.Element;
  603. }
  604. }
  605. declare module "babylonjs-inspector/components/actionTabs/lines/textInputLineComponent" {
  606. import * as React from "react";
  607. import { Observable } from "babylonjs/Misc/observable";
  608. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  609. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  610. interface ITextInputLineComponentProps {
  611. label: string;
  612. lockObject: LockObject;
  613. target?: any;
  614. propertyName?: string;
  615. value?: string;
  616. onChange?: (value: string) => void;
  617. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  618. }
  619. export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
  620. value: string;
  621. }> {
  622. private _localChange;
  623. constructor(props: ITextInputLineComponentProps);
  624. componentWillUnmount(): void;
  625. shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
  626. value: string;
  627. }): boolean;
  628. raiseOnPropertyChanged(newValue: string, previousValue: string): void;
  629. updateValue(value: string): void;
  630. render(): JSX.Element;
  631. }
  632. }
  633. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/customPropertyGridComponent" {
  634. import * as React from "react";
  635. import { Observable } from "babylonjs/Misc/observable";
  636. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  637. import { GlobalState } from "babylonjs-inspector/components/globalState";
  638. import { IInspectable } from 'babylonjs/Misc/iInspectable';
  639. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  640. interface ICustomPropertyGridComponentProps {
  641. globalState: GlobalState;
  642. target: any;
  643. lockObject: LockObject;
  644. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  645. }
  646. export class CustomPropertyGridComponent extends React.Component<ICustomPropertyGridComponentProps, {
  647. mode: number;
  648. }> {
  649. constructor(props: ICustomPropertyGridComponentProps);
  650. renderInspectable(inspectable: IInspectable): JSX.Element | null;
  651. render(): JSX.Element | null;
  652. }
  653. }
  654. declare module "babylonjs-inspector/sharedUiComponents/lines/buttonLineComponent" {
  655. import * as React from "react";
  656. export interface IButtonLineComponentProps {
  657. label: string;
  658. onClick: () => void;
  659. }
  660. export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
  661. constructor(props: IButtonLineComponentProps);
  662. render(): JSX.Element;
  663. }
  664. }
  665. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationPropertyGridComponent" {
  666. import * as React from "react";
  667. import { Observable } from "babylonjs/Misc/observable";
  668. import { Scene } from "babylonjs/scene";
  669. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  670. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  671. import { GlobalState } from "babylonjs-inspector/components/globalState";
  672. import { IAnimatable } from "babylonjs/Animations/animatable.interface";
  673. interface IAnimationGridComponentProps {
  674. globalState: GlobalState;
  675. animatable: IAnimatable;
  676. scene: Scene;
  677. lockObject: LockObject;
  678. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  679. }
  680. export class AnimationGridComponent extends React.Component<IAnimationGridComponentProps, {
  681. currentFrame: number;
  682. }> {
  683. private _animations;
  684. private _ranges;
  685. private _mainAnimatable;
  686. private _onBeforeRenderObserver;
  687. private _isPlaying;
  688. private timelineRef;
  689. private _animationControl;
  690. constructor(props: IAnimationGridComponentProps);
  691. playOrPause(): void;
  692. componentDidMount(): void;
  693. componentWillUnmount(): void;
  694. onCurrentFrameChange(value: number): void;
  695. onChangeFromOrTo(): void;
  696. render(): JSX.Element;
  697. }
  698. }
  699. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/commonMaterialPropertyGridComponent" {
  700. import * as React from "react";
  701. import { Observable } from "babylonjs/Misc/observable";
  702. import { Material } from "babylonjs/Materials/material";
  703. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  704. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  705. import { GlobalState } from "babylonjs-inspector/components/globalState";
  706. interface ICommonMaterialPropertyGridComponentProps {
  707. globalState: GlobalState;
  708. material: Material;
  709. lockObject: LockObject;
  710. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  711. }
  712. export class CommonMaterialPropertyGridComponent extends React.Component<ICommonMaterialPropertyGridComponentProps> {
  713. constructor(props: ICommonMaterialPropertyGridComponentProps);
  714. render(): JSX.Element;
  715. }
  716. }
  717. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/materialPropertyGridComponent" {
  718. import * as React from "react";
  719. import { Observable } from "babylonjs/Misc/observable";
  720. import { Material } from "babylonjs/Materials/material";
  721. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  722. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  723. import { GlobalState } from "babylonjs-inspector/components/globalState";
  724. interface IMaterialPropertyGridComponentProps {
  725. globalState: GlobalState;
  726. material: Material;
  727. lockObject: LockObject;
  728. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  729. }
  730. export class MaterialPropertyGridComponent extends React.Component<IMaterialPropertyGridComponentProps> {
  731. constructor(props: IMaterialPropertyGridComponentProps);
  732. render(): JSX.Element;
  733. }
  734. }
  735. declare module "babylonjs-inspector/sharedUiComponents/lines/fileButtonLineComponent" {
  736. import * as React from "react";
  737. interface IFileButtonLineComponentProps {
  738. label: string;
  739. onClick: (file: File) => void;
  740. accept: string;
  741. }
  742. export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
  743. private static _IDGenerator;
  744. private _id;
  745. private uploadInputRef;
  746. constructor(props: IFileButtonLineComponentProps);
  747. onChange(evt: any): void;
  748. render(): JSX.Element;
  749. }
  750. }
  751. declare module "babylonjs-inspector/components/actionTabs/lines/textureLinkLineComponent" {
  752. import * as React from "react";
  753. import { Nullable } from "babylonjs/types";
  754. import { Observable } from "babylonjs/Misc/observable";
  755. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  756. import { Material } from "babylonjs/Materials/material";
  757. export interface ITextureLinkLineComponentProps {
  758. label: string;
  759. texture: Nullable<BaseTexture>;
  760. material?: Material;
  761. onSelectionChangedObservable?: Observable<any>;
  762. onDebugSelectionChangeObservable?: Observable<TextureLinkLineComponent>;
  763. propertyName?: string;
  764. onTextureCreated?: (texture: BaseTexture) => void;
  765. customDebugAction?: (state: boolean) => void;
  766. onTextureRemoved?: () => void;
  767. }
  768. export class TextureLinkLineComponent extends React.Component<ITextureLinkLineComponentProps, {
  769. isDebugSelected: boolean;
  770. }> {
  771. private _onDebugSelectionChangeObserver;
  772. constructor(props: ITextureLinkLineComponentProps);
  773. componentDidMount(): void;
  774. componentWillUnmount(): void;
  775. debugTexture(): void;
  776. onLink(): void;
  777. updateTexture(file: File): void;
  778. removeTexture(): void;
  779. render(): JSX.Element | null;
  780. }
  781. }
  782. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/standardMaterialPropertyGridComponent" {
  783. import * as React from "react";
  784. import { Observable } from "babylonjs/Misc/observable";
  785. import { StandardMaterial } from "babylonjs/Materials/standardMaterial";
  786. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  787. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  788. import { GlobalState } from "babylonjs-inspector/components/globalState";
  789. interface IStandardMaterialPropertyGridComponentProps {
  790. globalState: GlobalState;
  791. material: StandardMaterial;
  792. lockObject: LockObject;
  793. onSelectionChangedObservable?: Observable<any>;
  794. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  795. }
  796. export class StandardMaterialPropertyGridComponent extends React.Component<IStandardMaterialPropertyGridComponentProps> {
  797. private _onDebugSelectionChangeObservable;
  798. constructor(props: IStandardMaterialPropertyGridComponentProps);
  799. renderTextures(): JSX.Element;
  800. render(): JSX.Element;
  801. }
  802. }
  803. declare module "babylonjs-inspector/lod" {
  804. /** @hidden */
  805. export var lodPixelShader: {
  806. name: string;
  807. shader: string;
  808. };
  809. }
  810. declare module "babylonjs-inspector/lodCube" {
  811. /** @hidden */
  812. export var lodCubePixelShader: {
  813. name: string;
  814. shader: string;
  815. };
  816. }
  817. declare module "babylonjs-inspector/textureHelper" {
  818. import { GlobalState } from "babylonjs-inspector/components/globalState";
  819. import { BaseTexture } from 'babylonjs/Materials/Textures/baseTexture';
  820. import "babylonjs-inspector/lod";
  821. import "babylonjs-inspector/lodCube";
  822. export interface TextureChannelsToDisplay {
  823. R: boolean;
  824. G: boolean;
  825. B: boolean;
  826. A: boolean;
  827. }
  828. export class TextureHelper {
  829. private static _ProcessAsync;
  830. static GetTextureDataAsync(texture: BaseTexture, width: number, height: number, face: number, channels: TextureChannelsToDisplay, globalState?: GlobalState, lod?: number): Promise<Uint8Array>;
  831. }
  832. }
  833. declare module "babylonjs-inspector/components/actionTabs/lines/textureLineComponent" {
  834. import * as React from "react";
  835. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  836. import { GlobalState } from "babylonjs-inspector/components/globalState";
  837. import { TextureChannelsToDisplay } from "babylonjs-inspector/textureHelper";
  838. interface ITextureLineComponentProps {
  839. texture: BaseTexture;
  840. width: number;
  841. height: number;
  842. globalState?: GlobalState;
  843. hideChannelSelect?: boolean;
  844. }
  845. export class TextureLineComponent extends React.Component<ITextureLineComponentProps, {
  846. channels: TextureChannelsToDisplay;
  847. face: number;
  848. }> {
  849. private canvasRef;
  850. private static TextureChannelStates;
  851. constructor(props: ITextureLineComponentProps);
  852. shouldComponentUpdate(nextProps: ITextureLineComponentProps, nextState: {
  853. channels: TextureChannelsToDisplay;
  854. face: number;
  855. }): boolean;
  856. componentDidMount(): void;
  857. componentDidUpdate(): void;
  858. updatePreview(): Promise<void>;
  859. render(): JSX.Element;
  860. }
  861. }
  862. declare module "babylonjs-inspector/components/popupComponent" {
  863. import * as React from "react";
  864. interface IPopupComponentProps {
  865. id: string;
  866. title: string;
  867. size: {
  868. width: number;
  869. height: number;
  870. };
  871. onOpen: (window: Window) => void;
  872. onClose: (window: Window) => void;
  873. }
  874. export class PopupComponent extends React.Component<IPopupComponentProps, {
  875. isComponentMounted: boolean;
  876. blockedByBrowser: boolean;
  877. }> {
  878. private _container;
  879. private _window;
  880. private _curveEditorHost;
  881. constructor(props: IPopupComponentProps);
  882. componentDidMount(): void;
  883. openPopup(): void;
  884. componentWillUnmount(): void;
  885. getWindow(): Window | null;
  886. render(): React.ReactPortal | null;
  887. }
  888. }
  889. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/toolBar" {
  890. import * as React from 'react';
  891. import { IToolData, IToolType, IMetadata } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent";
  892. import { Color4 } from 'babylonjs/Maths/math.color';
  893. export interface ITool extends IToolData {
  894. instance: IToolType;
  895. }
  896. interface IToolBarProps {
  897. tools: ITool[];
  898. addTool(url: string): void;
  899. changeTool(toolIndex: number): void;
  900. activeToolIndex: number;
  901. metadata: IMetadata;
  902. setMetadata(data: any): void;
  903. pickerOpen: boolean;
  904. setPickerOpen(open: boolean): void;
  905. pickerRef: React.RefObject<HTMLDivElement>;
  906. hasAlpha: boolean;
  907. }
  908. interface IToolBarState {
  909. toolURL: string;
  910. addOpen: boolean;
  911. }
  912. export class ToolBar extends React.Component<IToolBarProps, IToolBarState> {
  913. constructor(props: IToolBarProps);
  914. computeRGBAColor(): Color4;
  915. shouldComponentUpdate(nextProps: IToolBarProps): boolean;
  916. render(): JSX.Element;
  917. }
  918. }
  919. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/channelsBar" {
  920. import * as React from 'react';
  921. export interface IChannel {
  922. visible: boolean;
  923. editable: boolean;
  924. name: string;
  925. id: 'R' | 'G' | 'B' | 'A';
  926. icon: any;
  927. }
  928. interface IChannelsBarProps {
  929. channels: IChannel[];
  930. setChannels(channelState: IChannel[]): void;
  931. }
  932. export class ChannelsBar extends React.PureComponent<IChannelsBarProps> {
  933. render(): JSX.Element;
  934. }
  935. }
  936. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/canvasShader" {
  937. export const canvasShader: {
  938. path: {
  939. vertexSource: string;
  940. fragmentSource: string;
  941. };
  942. options: {
  943. attributes: string[];
  944. uniforms: string[];
  945. };
  946. };
  947. }
  948. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasManager" {
  949. import { Scene } from 'babylonjs/scene';
  950. import { Vector2 } from 'babylonjs/Maths/math.vector';
  951. import { Nullable } from 'babylonjs/types';
  952. import { BaseTexture } from 'babylonjs/Materials/Textures/baseTexture';
  953. import { ISize } from 'babylonjs/Maths/math.size';
  954. import { PointerInfo } from 'babylonjs/Events/pointerEvents';
  955. import { ITool } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/toolBar";
  956. import { IChannel } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/channelsBar";
  957. import { IMetadata } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent";
  958. export interface IPixelData {
  959. x?: number;
  960. y?: number;
  961. r?: number;
  962. g?: number;
  963. b?: number;
  964. a?: number;
  965. }
  966. export class TextureCanvasManager {
  967. private _engine;
  968. private _scene;
  969. private _camera;
  970. private _cameraPos;
  971. private _scale;
  972. private _isPanning;
  973. private _mouseX;
  974. private _mouseY;
  975. private _UICanvas;
  976. private _size;
  977. /** The canvas we paint onto using the canvas API */
  978. private _2DCanvas;
  979. /** The canvas we apply post processes to */
  980. private _3DCanvas;
  981. /** The canvas which handles channel filtering */
  982. private _channelsTexture;
  983. private _3DEngine;
  984. private _3DPlane;
  985. private _3DCanvasTexture;
  986. private _3DScene;
  987. private _channels;
  988. private _face;
  989. private _mipLevel;
  990. /** The texture from the original engine that we invoked the editor on */
  991. private _originalTexture;
  992. /** This is a hidden texture which is only responsible for holding the actual texture memory in the original engine */
  993. private _target;
  994. /** The internal texture representation of the original texture */
  995. private _originalInternalTexture;
  996. /** Keeps track of whether we have modified the texture */
  997. private _didEdit;
  998. private _plane;
  999. private _planeMaterial;
  1000. /** Tracks which keys are currently pressed */
  1001. private _keyMap;
  1002. private readonly ZOOM_MOUSE_SPEED;
  1003. private readonly ZOOM_KEYBOARD_SPEED;
  1004. private readonly ZOOM_IN_KEY;
  1005. private readonly ZOOM_OUT_KEY;
  1006. private readonly PAN_SPEED;
  1007. private readonly PAN_MOUSE_BUTTON;
  1008. private readonly MIN_SCALE;
  1009. private readonly GRID_SCALE;
  1010. private readonly MAX_SCALE;
  1011. private readonly SELECT_ALL_KEY;
  1012. private readonly SAVE_KEY;
  1013. private readonly RESET_KEY;
  1014. private readonly DESELECT_KEY;
  1015. /** The number of milliseconds between texture updates */
  1016. private readonly PUSH_FREQUENCY;
  1017. private _tool;
  1018. private _setPixelData;
  1019. private _setMipLevel;
  1020. private _window;
  1021. private _metadata;
  1022. private _editing3D;
  1023. private _onUpdate;
  1024. private _setMetadata;
  1025. private _imageData;
  1026. private _canPush;
  1027. private _shouldPush;
  1028. private _paintCanvas;
  1029. constructor(texture: BaseTexture, window: Window, canvasUI: HTMLCanvasElement, canvas2D: HTMLCanvasElement, canvas3D: HTMLCanvasElement, setPixelData: (pixelData: IPixelData) => void, metadata: IMetadata, onUpdate: () => void, setMetadata: (metadata: any) => void, setMipLevel: (level: number) => void);
  1030. updateTexture(): Promise<void>;
  1031. private pushTexture;
  1032. startPainting(): Promise<CanvasRenderingContext2D>;
  1033. updatePainting(): void;
  1034. stopPainting(): void;
  1035. private updateDisplay;
  1036. set channels(channels: IChannel[]);
  1037. paintPixelsOnCanvas(pixelData: Uint8Array, canvas: HTMLCanvasElement): void;
  1038. grabOriginalTexture(): Promise<Uint8Array>;
  1039. getMouseCoordinates(pointerInfo: PointerInfo): Vector2;
  1040. get scene(): Scene;
  1041. get canvas2D(): HTMLCanvasElement;
  1042. get size(): ISize;
  1043. set tool(tool: Nullable<ITool>);
  1044. get tool(): Nullable<ITool>;
  1045. set face(face: number);
  1046. set mipLevel(mipLevel: number);
  1047. /** Returns the 3D scene used for postprocesses */
  1048. get scene3D(): Scene;
  1049. set metadata(metadata: IMetadata);
  1050. private makePlane;
  1051. reset(): void;
  1052. resize(newSize: ISize): Promise<void>;
  1053. setSize(size: ISize): void;
  1054. upload(file: File): void;
  1055. saveTexture(): void;
  1056. dispose(): void;
  1057. }
  1058. }
  1059. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/propertiesBar" {
  1060. import * as React from 'react';
  1061. import { BaseTexture } from 'babylonjs/Materials/Textures/baseTexture';
  1062. import { IPixelData } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasManager";
  1063. import { ISize } from 'babylonjs/Maths/math.size';
  1064. interface IPropertiesBarProps {
  1065. texture: BaseTexture;
  1066. size: ISize;
  1067. saveTexture(): void;
  1068. pixelData: IPixelData;
  1069. face: number;
  1070. setFace(face: number): void;
  1071. resetTexture(): void;
  1072. resizeTexture(width: number, height: number): void;
  1073. uploadTexture(file: File): void;
  1074. mipLevel: number;
  1075. setMipLevel: (mipLevel: number) => void;
  1076. }
  1077. interface IPropertiesBarState {
  1078. width: number;
  1079. height: number;
  1080. }
  1081. export class PropertiesBar extends React.PureComponent<IPropertiesBarProps, IPropertiesBarState> {
  1082. private _resetButton;
  1083. private _uploadButton;
  1084. private _saveButton;
  1085. private _babylonLogo;
  1086. private _resizeButton;
  1087. private _mipUp;
  1088. private _mipDown;
  1089. private _faces;
  1090. constructor(props: IPropertiesBarProps);
  1091. private pixelData;
  1092. private getNewDimension;
  1093. componentWillUpdate(nextProps: IPropertiesBarProps): void;
  1094. render(): JSX.Element;
  1095. }
  1096. }
  1097. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/bottomBar" {
  1098. import * as React from 'react';
  1099. import { BaseTexture } from 'babylonjs/Materials/Textures/baseTexture';
  1100. interface IBottomBarProps {
  1101. texture: BaseTexture;
  1102. mipLevel: number;
  1103. }
  1104. export class BottomBar extends React.PureComponent<IBottomBarProps> {
  1105. render(): JSX.Element;
  1106. }
  1107. }
  1108. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasComponent" {
  1109. import * as React from 'react';
  1110. import { BaseTexture } from 'babylonjs/Materials/Textures/baseTexture';
  1111. interface ITextureCanvasComponentProps {
  1112. canvasUI: React.RefObject<HTMLCanvasElement>;
  1113. canvas2D: React.RefObject<HTMLCanvasElement>;
  1114. canvas3D: React.RefObject<HTMLCanvasElement>;
  1115. texture: BaseTexture;
  1116. }
  1117. export class TextureCanvasComponent extends React.Component<ITextureCanvasComponentProps> {
  1118. render(): JSX.Element;
  1119. }
  1120. }
  1121. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/paintbrush" {
  1122. import { IToolData } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent";
  1123. export const Paintbrush: IToolData;
  1124. }
  1125. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/eyedropper" {
  1126. import { IToolData } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent";
  1127. export const Eyedropper: IToolData;
  1128. }
  1129. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/floodfill" {
  1130. import { IToolData } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent";
  1131. export const Floodfill: IToolData;
  1132. }
  1133. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/rectangleSelect" {
  1134. import { IToolData } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent";
  1135. export const RectangleSelect: IToolData;
  1136. }
  1137. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/defaultTools" {
  1138. const _default: import("babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent").IToolData[];
  1139. export default _default;
  1140. }
  1141. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/toolSettings" {
  1142. import * as React from 'react';
  1143. import { ITool } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/toolBar";
  1144. interface IToolSettingsProps {
  1145. tool: ITool | undefined;
  1146. }
  1147. export class ToolSettings extends React.Component<IToolSettingsProps> {
  1148. render(): JSX.Element;
  1149. }
  1150. }
  1151. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent" {
  1152. import * as React from 'react';
  1153. import { IPixelData } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasManager";
  1154. import { ITool } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/toolBar";
  1155. import { IChannel } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/channelsBar";
  1156. import { BaseTexture } from 'babylonjs/Materials/Textures/baseTexture';
  1157. import { Scene } from 'babylonjs/scene';
  1158. import { ISize } from 'babylonjs/Maths/math.size';
  1159. import { Vector2 } from 'babylonjs/Maths/math.vector';
  1160. import { PointerInfo } from 'babylonjs/Events/pointerEvents';
  1161. import { PopupComponent } from "babylonjs-inspector/components/popupComponent";
  1162. interface ITextureEditorComponentProps {
  1163. texture: BaseTexture;
  1164. url: string;
  1165. window: React.RefObject<PopupComponent>;
  1166. onUpdate: () => void;
  1167. }
  1168. interface ITextureEditorComponentState {
  1169. tools: ITool[];
  1170. activeToolIndex: number;
  1171. metadata: IMetadata;
  1172. channels: IChannel[];
  1173. pixelData: IPixelData;
  1174. face: number;
  1175. mipLevel: number;
  1176. pickerOpen: boolean;
  1177. }
  1178. export interface IToolParameters {
  1179. /** The visible scene in the editor. Useful for adding pointer and keyboard events. */
  1180. scene: Scene;
  1181. /** The 2D canvas which you can sample pixel data from. Tools should not paint directly on this canvas. */
  1182. canvas2D: HTMLCanvasElement;
  1183. /** The 3D scene which tools can add post processes to. */
  1184. scene3D: Scene;
  1185. /** The size of the texture. */
  1186. size: ISize;
  1187. /** Pushes the editor texture back to the original scene. This should be called every time a tool makes any modification to a texture. */
  1188. updateTexture: () => void;
  1189. /** The metadata object which is shared between all tools. Feel free to store any information here. Do not set this directly: instead call setMetadata. */
  1190. metadata: IMetadata;
  1191. /** Call this when you want to mutate the metadata. */
  1192. setMetadata: (data: any) => void;
  1193. /** Returns the texture coordinates under the cursor */
  1194. getMouseCoordinates: (pointerInfo: PointerInfo) => Vector2;
  1195. /** Provides access to the BABYLON namespace */
  1196. BABYLON: any;
  1197. /** Provides a canvas that you can use the canvas API to paint on. */
  1198. startPainting: () => Promise<CanvasRenderingContext2D>;
  1199. /** After you have painted on your canvas, call this method to push the updates back to the texture. */
  1200. updatePainting: () => void;
  1201. /** Call this when you are finished painting. */
  1202. stopPainting: () => void;
  1203. }
  1204. export interface IToolGUIProps {
  1205. instance: IToolType;
  1206. }
  1207. /** An interface representing the definition of a tool */
  1208. export interface IToolData {
  1209. /** Name to display on the toolbar */
  1210. name: string;
  1211. /** A class definition for the tool including setup and cleanup methods */
  1212. type: IToolConstructable;
  1213. /** An SVG icon encoded in Base64 */
  1214. icon: string;
  1215. /** Whether the tool uses postprocesses */
  1216. is3D?: boolean;
  1217. cursor?: string;
  1218. settingsComponent?: React.ComponentType<IToolGUIProps>;
  1219. }
  1220. export interface IToolType {
  1221. /** Called when the tool is selected. */
  1222. setup: () => void;
  1223. /** Called when the tool is deselected. */
  1224. cleanup: () => void;
  1225. /** Optional. Called when the user resets the texture or uploads a new texture. Tools may want to reset their state when this happens. */
  1226. onReset?: () => void;
  1227. }
  1228. /** For constructable types, TS requires that you define a seperate interface which constructs your actual interface */
  1229. interface IToolConstructable {
  1230. new (getParameters: () => IToolParameters): IToolType;
  1231. }
  1232. export interface IMetadata {
  1233. color: string;
  1234. alpha: number;
  1235. select: {
  1236. x1: number;
  1237. y1: number;
  1238. x2: number;
  1239. y2: number;
  1240. };
  1241. [key: string]: any;
  1242. }
  1243. global {
  1244. var _TOOL_DATA_: IToolData;
  1245. }
  1246. export class TextureEditorComponent extends React.Component<ITextureEditorComponentProps, ITextureEditorComponentState> {
  1247. private _textureCanvasManager;
  1248. private _UICanvas;
  1249. private _2DCanvas;
  1250. private _3DCanvas;
  1251. private _pickerRef;
  1252. private _timer;
  1253. private static PREVIEW_UPDATE_DELAY_MS;
  1254. constructor(props: ITextureEditorComponentProps);
  1255. componentDidMount(): void;
  1256. componentDidUpdate(): void;
  1257. componentWillUnmount(): void;
  1258. textureDidUpdate(): void;
  1259. loadToolFromURL(url: string): void;
  1260. addTools(tools: IToolData[]): void;
  1261. getToolParameters(): IToolParameters;
  1262. changeTool(index: number): void;
  1263. setMetadata(newMetadata: any): void;
  1264. setPickerOpen(open: boolean): void;
  1265. onPointerDown(evt: React.PointerEvent): void;
  1266. saveTexture(): void;
  1267. resetTexture(): void;
  1268. resizeTexture(width: number, height: number): void;
  1269. uploadTexture(file: File): void;
  1270. render(): JSX.Element;
  1271. }
  1272. }
  1273. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/texturePropertyGridComponent" {
  1274. import * as React from "react";
  1275. import { Nullable } from "babylonjs/types";
  1276. import { Observable } from "babylonjs/Misc/observable";
  1277. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  1278. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1279. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1280. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1281. interface ITexturePropertyGridComponentProps {
  1282. texture: BaseTexture;
  1283. lockObject: LockObject;
  1284. globalState: GlobalState;
  1285. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1286. }
  1287. interface ITexturePropertyGridComponentState {
  1288. isTextureEditorOpen: boolean;
  1289. textureEditing: Nullable<BaseTexture>;
  1290. }
  1291. export class TexturePropertyGridComponent extends React.Component<ITexturePropertyGridComponentProps, ITexturePropertyGridComponentState> {
  1292. private _adtInstrumentation;
  1293. private popoutWindowRef;
  1294. private textureLineRef;
  1295. private _textureInspectorSize;
  1296. constructor(props: ITexturePropertyGridComponentProps);
  1297. componentWillUnmount(): void;
  1298. updateTexture(file: File): void;
  1299. openTextureEditor(): void;
  1300. onOpenTextureEditor(window: Window): void;
  1301. onCloseTextureEditor(callback?: {
  1302. (): void;
  1303. }): void;
  1304. forceRefresh(): void;
  1305. render(): JSX.Element;
  1306. }
  1307. }
  1308. declare module "babylonjs-inspector/sharedUiComponents/lines/vector2LineComponent" {
  1309. import * as React from "react";
  1310. import { Vector2 } from "babylonjs/Maths/math.vector";
  1311. import { Observable } from "babylonjs/Misc/observable";
  1312. import { PropertyChangedEvent } from "babylonjs-inspector/sharedUiComponents/propertyChangedEvent";
  1313. interface IVector2LineComponentProps {
  1314. label: string;
  1315. target: any;
  1316. propertyName: string;
  1317. step?: number;
  1318. onChange?: (newvalue: Vector2) => void;
  1319. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1320. }
  1321. export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
  1322. isExpanded: boolean;
  1323. value: Vector2;
  1324. }> {
  1325. static defaultProps: {
  1326. step: number;
  1327. };
  1328. private _localChange;
  1329. constructor(props: IVector2LineComponentProps);
  1330. shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
  1331. isExpanded: boolean;
  1332. value: Vector2;
  1333. }): boolean;
  1334. switchExpandState(): void;
  1335. raiseOnPropertyChanged(previousValue: Vector2): void;
  1336. updateStateX(value: number): void;
  1337. updateStateY(value: number): void;
  1338. render(): JSX.Element;
  1339. }
  1340. }
  1341. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/pbrMaterialPropertyGridComponent" {
  1342. import * as React from "react";
  1343. import { Observable } from "babylonjs/Misc/observable";
  1344. import { PBRMaterial } from "babylonjs/Materials/PBR/pbrMaterial";
  1345. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1346. import { TextureLinkLineComponent } from "babylonjs-inspector/components/actionTabs/lines/textureLinkLineComponent";
  1347. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1348. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1349. interface IPBRMaterialPropertyGridComponentProps {
  1350. globalState: GlobalState;
  1351. material: PBRMaterial;
  1352. lockObject: LockObject;
  1353. onSelectionChangedObservable?: Observable<any>;
  1354. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1355. }
  1356. export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMaterialPropertyGridComponentProps> {
  1357. private _onDebugSelectionChangeObservable;
  1358. constructor(props: IPBRMaterialPropertyGridComponentProps);
  1359. switchAmbientMode(state: boolean): void;
  1360. renderTextures(onDebugSelectionChangeObservable: Observable<TextureLinkLineComponent>): JSX.Element;
  1361. render(): JSX.Element;
  1362. }
  1363. }
  1364. declare module "babylonjs-inspector/sharedUiComponents/lines/radioLineComponent" {
  1365. import * as React from "react";
  1366. import { Observable } from "babylonjs/Misc/observable";
  1367. interface IRadioButtonLineComponentProps {
  1368. onSelectionChangedObservable: Observable<RadioButtonLineComponent>;
  1369. label: string;
  1370. isSelected: () => boolean;
  1371. onSelect: () => void;
  1372. }
  1373. export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
  1374. isSelected: boolean;
  1375. }> {
  1376. private _onSelectionChangedObserver;
  1377. constructor(props: IRadioButtonLineComponentProps);
  1378. componentDidMount(): void;
  1379. componentWillUnmount(): void;
  1380. onChange(): void;
  1381. render(): JSX.Element;
  1382. }
  1383. }
  1384. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/fogPropertyGridComponent" {
  1385. import * as React from "react";
  1386. import { Observable } from "babylonjs/Misc/observable";
  1387. import { Scene } from "babylonjs/scene";
  1388. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1389. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1390. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1391. interface IFogPropertyGridComponentProps {
  1392. globalState: GlobalState;
  1393. scene: Scene;
  1394. lockObject: LockObject;
  1395. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1396. }
  1397. export class FogPropertyGridComponent extends React.Component<IFogPropertyGridComponentProps, {
  1398. mode: number;
  1399. }> {
  1400. constructor(props: IFogPropertyGridComponentProps);
  1401. render(): JSX.Element;
  1402. }
  1403. }
  1404. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/scenePropertyGridComponent" {
  1405. import * as React from "react";
  1406. import { Observable } from "babylonjs/Misc/observable";
  1407. import { Vector3 } from "babylonjs/Maths/math.vector";
  1408. import { Scene } from "babylonjs/scene";
  1409. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1410. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1411. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1412. interface IScenePropertyGridComponentProps {
  1413. globalState: GlobalState;
  1414. scene: Scene;
  1415. lockObject: LockObject;
  1416. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1417. onSelectionChangedObservable?: Observable<any>;
  1418. }
  1419. export class ScenePropertyGridComponent extends React.Component<IScenePropertyGridComponentProps> {
  1420. private _storedEnvironmentTexture;
  1421. private _renderingModeGroupObservable;
  1422. constructor(props: IScenePropertyGridComponentProps);
  1423. setRenderingModes(point: boolean, wireframe: boolean): void;
  1424. switchIBL(): void;
  1425. updateEnvironmentTexture(file: File): void;
  1426. updateGravity(newValue: Vector3): void;
  1427. updateTimeStep(newValue: number): void;
  1428. normalizeScene(): void;
  1429. render(): JSX.Element;
  1430. }
  1431. }
  1432. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lights/commonLightPropertyGridComponent" {
  1433. import * as React from "react";
  1434. import { Observable } from "babylonjs/Misc/observable";
  1435. import { Light } from "babylonjs/Lights/light";
  1436. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1437. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1438. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1439. interface ICommonLightPropertyGridComponentProps {
  1440. globalState: GlobalState;
  1441. light: Light;
  1442. lockObject: LockObject;
  1443. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1444. }
  1445. export class CommonLightPropertyGridComponent extends React.Component<ICommonLightPropertyGridComponentProps> {
  1446. constructor(props: ICommonLightPropertyGridComponentProps);
  1447. render(): JSX.Element;
  1448. }
  1449. }
  1450. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lights/hemisphericLightPropertyGridComponent" {
  1451. import * as React from "react";
  1452. import { Observable } from "babylonjs/Misc/observable";
  1453. import { HemisphericLight } from "babylonjs/Lights/hemisphericLight";
  1454. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1455. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1456. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1457. interface IHemisphericLightPropertyGridComponentProps {
  1458. globalState: GlobalState;
  1459. light: HemisphericLight;
  1460. lockObject: LockObject;
  1461. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1462. }
  1463. export class HemisphericLightPropertyGridComponent extends React.Component<IHemisphericLightPropertyGridComponentProps> {
  1464. constructor(props: IHemisphericLightPropertyGridComponentProps);
  1465. render(): JSX.Element;
  1466. }
  1467. }
  1468. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lights/commonShadowLightPropertyGridComponent" {
  1469. import * as React from "react";
  1470. import { Observable } from "babylonjs/Misc/observable";
  1471. import { IShadowLight } from "babylonjs/Lights/shadowLight";
  1472. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1473. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1474. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1475. interface ICommonShadowLightPropertyGridComponentProps {
  1476. globalState: GlobalState;
  1477. light: IShadowLight;
  1478. lockObject: LockObject;
  1479. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1480. }
  1481. export class CommonShadowLightPropertyGridComponent extends React.Component<ICommonShadowLightPropertyGridComponentProps> {
  1482. private _internals;
  1483. constructor(props: ICommonShadowLightPropertyGridComponentProps);
  1484. createShadowGenerator(): void;
  1485. disposeShadowGenerator(): void;
  1486. render(): JSX.Element;
  1487. }
  1488. }
  1489. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lights/pointLightPropertyGridComponent" {
  1490. import * as React from "react";
  1491. import { Observable } from "babylonjs/Misc/observable";
  1492. import { PointLight } from "babylonjs/Lights/pointLight";
  1493. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1494. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1495. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1496. interface IPointLightPropertyGridComponentProps {
  1497. globalState: GlobalState;
  1498. light: PointLight;
  1499. lockObject: LockObject;
  1500. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1501. }
  1502. export class PointLightPropertyGridComponent extends React.Component<IPointLightPropertyGridComponentProps> {
  1503. constructor(props: IPointLightPropertyGridComponentProps);
  1504. render(): JSX.Element;
  1505. }
  1506. }
  1507. declare module "babylonjs-inspector/components/actionTabs/lines/hexLineComponent" {
  1508. import * as React from "react";
  1509. import { Observable } from "babylonjs/Misc/observable";
  1510. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1511. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1512. interface IHexLineComponentProps {
  1513. label: string;
  1514. target: any;
  1515. propertyName: string;
  1516. lockObject?: LockObject;
  1517. onChange?: (newValue: number) => void;
  1518. isInteger?: boolean;
  1519. replaySourceReplacement?: string;
  1520. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1521. additionalClass?: string;
  1522. step?: string;
  1523. digits?: number;
  1524. useEuler?: boolean;
  1525. min?: number;
  1526. }
  1527. export class HexLineComponent extends React.Component<IHexLineComponentProps, {
  1528. value: string;
  1529. }> {
  1530. private _localChange;
  1531. private _store;
  1532. private _propertyChange;
  1533. constructor(props: IHexLineComponentProps);
  1534. componentWillUnmount(): void;
  1535. shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
  1536. value: string;
  1537. }): boolean;
  1538. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  1539. convertToHexString(valueString: string): string;
  1540. updateValue(valueString: string, raisePropertyChanged: boolean): void;
  1541. lock(): void;
  1542. unlock(): void;
  1543. render(): JSX.Element;
  1544. }
  1545. }
  1546. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/cameras/commonCameraPropertyGridComponent" {
  1547. import * as React from "react";
  1548. import { Camera } from "babylonjs/Cameras/camera";
  1549. import { Observable } from "babylonjs/Misc/observable";
  1550. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1551. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1552. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1553. interface ICommonCameraPropertyGridComponentProps {
  1554. globalState: GlobalState;
  1555. camera: Camera;
  1556. lockObject: LockObject;
  1557. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1558. }
  1559. export class CommonCameraPropertyGridComponent extends React.Component<ICommonCameraPropertyGridComponentProps, {
  1560. mode: number;
  1561. }> {
  1562. constructor(props: ICommonCameraPropertyGridComponentProps);
  1563. render(): JSX.Element;
  1564. }
  1565. }
  1566. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/cameras/freeCameraPropertyGridComponent" {
  1567. import * as React from "react";
  1568. import { FreeCamera } from "babylonjs/Cameras/freeCamera";
  1569. import { Observable } from "babylonjs/Misc/observable";
  1570. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1571. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1572. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1573. interface IFreeCameraPropertyGridComponentProps {
  1574. globalState: GlobalState;
  1575. camera: FreeCamera;
  1576. lockObject: LockObject;
  1577. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1578. }
  1579. export class FreeCameraPropertyGridComponent extends React.Component<IFreeCameraPropertyGridComponentProps> {
  1580. constructor(props: IFreeCameraPropertyGridComponentProps);
  1581. render(): JSX.Element;
  1582. }
  1583. }
  1584. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/cameras/arcRotateCameraPropertyGridComponent" {
  1585. import * as React from "react";
  1586. import { ArcRotateCamera } from "babylonjs/Cameras/arcRotateCamera";
  1587. import { Observable } from "babylonjs/Misc/observable";
  1588. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1589. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1590. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1591. interface IArcRotateCameraPropertyGridComponentProps {
  1592. globalState: GlobalState;
  1593. camera: ArcRotateCamera;
  1594. lockObject: LockObject;
  1595. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1596. }
  1597. export class ArcRotateCameraPropertyGridComponent extends React.Component<IArcRotateCameraPropertyGridComponentProps> {
  1598. constructor(props: IArcRotateCameraPropertyGridComponentProps);
  1599. render(): JSX.Element;
  1600. }
  1601. }
  1602. declare module "babylonjs-inspector/sharedUiComponents/lines/indentedTextLineComponent" {
  1603. import * as React from "react";
  1604. interface IIndentedTextLineComponentProps {
  1605. value?: string;
  1606. color?: string;
  1607. underline?: boolean;
  1608. onLink?: () => void;
  1609. url?: string;
  1610. additionalClass?: string;
  1611. }
  1612. export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
  1613. constructor(props: IIndentedTextLineComponentProps);
  1614. onLink(): void;
  1615. renderContent(): JSX.Element;
  1616. render(): JSX.Element;
  1617. }
  1618. }
  1619. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/commonPropertyGridComponent" {
  1620. import * as React from "react";
  1621. import { Observable } from "babylonjs/Misc/observable";
  1622. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1623. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1624. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1625. interface ICommonPropertyGridComponentProps {
  1626. globalState: GlobalState;
  1627. host: {
  1628. metadata: any;
  1629. };
  1630. lockObject: LockObject;
  1631. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1632. }
  1633. export class CommonPropertyGridComponent extends React.Component<ICommonPropertyGridComponentProps> {
  1634. constructor(props: ICommonPropertyGridComponentProps);
  1635. renderLevel(jsonObject: any): JSX.Element[];
  1636. render(): JSX.Element | null;
  1637. }
  1638. }
  1639. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/variantsPropertyGridComponent" {
  1640. import * as React from "react";
  1641. import { Observable } from "babylonjs/Misc/observable";
  1642. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1643. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1644. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1645. interface IVariantsPropertyGridComponentProps {
  1646. globalState: GlobalState;
  1647. host: any;
  1648. lockObject: LockObject;
  1649. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1650. }
  1651. export class VariantsPropertyGridComponent extends React.Component<IVariantsPropertyGridComponentProps> {
  1652. constructor(props: IVariantsPropertyGridComponentProps);
  1653. private _getVariantsExtension;
  1654. render(): JSX.Element | null;
  1655. }
  1656. }
  1657. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/meshes/meshPropertyGridComponent" {
  1658. import * as React from "react";
  1659. import { Observable } from "babylonjs/Misc/observable";
  1660. import { Mesh } from "babylonjs/Meshes/mesh";
  1661. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1662. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1663. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1664. interface IMeshPropertyGridComponentProps {
  1665. globalState: GlobalState;
  1666. mesh: Mesh;
  1667. lockObject: LockObject;
  1668. onSelectionChangedObservable?: Observable<any>;
  1669. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1670. }
  1671. export class MeshPropertyGridComponent extends React.Component<IMeshPropertyGridComponentProps, {
  1672. displayNormals: boolean;
  1673. displayVertexColors: boolean;
  1674. displayBoneWeights: boolean;
  1675. displayBoneIndex: number;
  1676. displaySkeletonMap: boolean;
  1677. }> {
  1678. constructor(props: IMeshPropertyGridComponentProps);
  1679. renderWireframeOver(): void;
  1680. renderNormalVectors(): void;
  1681. displayNormals(): void;
  1682. displayVertexColors(): void;
  1683. displayBoneWeights(): void;
  1684. displaySkeletonMap(): void;
  1685. onBoneDisplayIndexChange(value: number): void;
  1686. onMaterialLink(): void;
  1687. onSourceMeshLink(): void;
  1688. onSkeletonLink(): void;
  1689. convertPhysicsTypeToString(): string;
  1690. render(): JSX.Element;
  1691. }
  1692. }
  1693. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/meshes/transformNodePropertyGridComponent" {
  1694. import * as React from "react";
  1695. import { TransformNode } from "babylonjs/Meshes/transformNode";
  1696. import { Observable } from "babylonjs/Misc/observable";
  1697. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1698. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1699. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1700. interface ITransformNodePropertyGridComponentProps {
  1701. globalState: GlobalState;
  1702. transformNode: TransformNode;
  1703. lockObject: LockObject;
  1704. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1705. }
  1706. export class TransformNodePropertyGridComponent extends React.Component<ITransformNodePropertyGridComponentProps> {
  1707. constructor(props: ITransformNodePropertyGridComponentProps);
  1708. render(): JSX.Element;
  1709. }
  1710. }
  1711. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/backgroundMaterialPropertyGridComponent" {
  1712. import * as React from "react";
  1713. import { Observable } from "babylonjs/Misc/observable";
  1714. import { BackgroundMaterial } from "babylonjs/Materials/Background/backgroundMaterial";
  1715. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1716. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1717. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1718. interface IBackgroundMaterialPropertyGridComponentProps {
  1719. globalState: GlobalState;
  1720. material: BackgroundMaterial;
  1721. lockObject: LockObject;
  1722. onSelectionChangedObservable?: Observable<any>;
  1723. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1724. }
  1725. export class BackgroundMaterialPropertyGridComponent extends React.Component<IBackgroundMaterialPropertyGridComponentProps> {
  1726. private _onDebugSelectionChangeObservable;
  1727. constructor(props: IBackgroundMaterialPropertyGridComponentProps);
  1728. renderTextures(): JSX.Element;
  1729. render(): JSX.Element;
  1730. }
  1731. }
  1732. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
  1733. import * as React from "react";
  1734. import { Observable } from "babylonjs/Misc/observable";
  1735. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1736. import { Control } from "babylonjs-gui/2D/controls/control";
  1737. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1738. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1739. interface ICommonControlPropertyGridComponentProps {
  1740. globalState: GlobalState;
  1741. control: Control;
  1742. lockObject: LockObject;
  1743. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1744. }
  1745. export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
  1746. constructor(props: ICommonControlPropertyGridComponentProps);
  1747. renderGridInformation(): JSX.Element | null;
  1748. render(): JSX.Element;
  1749. }
  1750. }
  1751. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/controlPropertyGridComponent" {
  1752. import * as React from "react";
  1753. import { Observable } from "babylonjs/Misc/observable";
  1754. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1755. import { Control } from "babylonjs-gui/2D/controls/control";
  1756. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1757. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1758. interface IControlPropertyGridComponentProps {
  1759. globalState: GlobalState;
  1760. control: Control;
  1761. lockObject: LockObject;
  1762. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1763. }
  1764. export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
  1765. constructor(props: IControlPropertyGridComponentProps);
  1766. render(): JSX.Element;
  1767. }
  1768. }
  1769. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
  1770. import * as React from "react";
  1771. import { Observable } from "babylonjs/Misc/observable";
  1772. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1773. import { TextBlock } from "babylonjs-gui/2D/controls/textBlock";
  1774. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1775. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1776. interface ITextBlockPropertyGridComponentProps {
  1777. globalState: GlobalState;
  1778. textBlock: TextBlock;
  1779. lockObject: LockObject;
  1780. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1781. }
  1782. export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
  1783. constructor(props: ITextBlockPropertyGridComponentProps);
  1784. render(): JSX.Element;
  1785. }
  1786. }
  1787. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
  1788. import * as React from "react";
  1789. import { Observable } from "babylonjs/Misc/observable";
  1790. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1791. import { InputText } from "babylonjs-gui/2D/controls/inputText";
  1792. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1793. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1794. interface IInputTextPropertyGridComponentProps {
  1795. globalState: GlobalState;
  1796. inputText: InputText;
  1797. lockObject: LockObject;
  1798. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1799. }
  1800. export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
  1801. constructor(props: IInputTextPropertyGridComponentProps);
  1802. render(): JSX.Element;
  1803. }
  1804. }
  1805. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
  1806. import * as React from "react";
  1807. import { Observable } from "babylonjs/Misc/observable";
  1808. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1809. import { ColorPicker } from "babylonjs-gui/2D/controls/colorpicker";
  1810. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1811. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1812. interface IColorPickerPropertyGridComponentProps {
  1813. globalState: GlobalState;
  1814. colorPicker: ColorPicker;
  1815. lockObject: LockObject;
  1816. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1817. }
  1818. export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
  1819. constructor(props: IColorPickerPropertyGridComponentProps);
  1820. render(): JSX.Element;
  1821. }
  1822. }
  1823. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationGroupPropertyGridComponent" {
  1824. import * as React from "react";
  1825. import { Observable } from "babylonjs/Misc/observable";
  1826. import { AnimationGroup } from "babylonjs/Animations/animationGroup";
  1827. import { Scene } from "babylonjs/scene";
  1828. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1829. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1830. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1831. interface IAnimationGroupGridComponentProps {
  1832. globalState: GlobalState;
  1833. animationGroup: AnimationGroup;
  1834. scene: Scene;
  1835. lockObject: LockObject;
  1836. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1837. }
  1838. export class AnimationGroupGridComponent extends React.Component<IAnimationGroupGridComponentProps, {
  1839. playButtonText: string;
  1840. currentFrame: number;
  1841. }> {
  1842. private _onAnimationGroupPlayObserver;
  1843. private _onAnimationGroupPauseObserver;
  1844. private _onBeforeRenderObserver;
  1845. private timelineRef;
  1846. constructor(props: IAnimationGroupGridComponentProps);
  1847. disconnect(animationGroup: AnimationGroup): void;
  1848. connect(animationGroup: AnimationGroup): void;
  1849. updateCurrentFrame(animationGroup: AnimationGroup): void;
  1850. shouldComponentUpdate(nextProps: IAnimationGroupGridComponentProps): boolean;
  1851. componentWillUnmount(): void;
  1852. playOrPause(): void;
  1853. onCurrentFrameChange(value: number): void;
  1854. render(): JSX.Element;
  1855. }
  1856. }
  1857. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/imagePropertyGridComponent" {
  1858. import * as React from "react";
  1859. import { Observable } from "babylonjs/Misc/observable";
  1860. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1861. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1862. import { Image } from "babylonjs-gui/2D/controls/image";
  1863. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1864. interface IImagePropertyGridComponentProps {
  1865. globalState: GlobalState;
  1866. image: Image;
  1867. lockObject: LockObject;
  1868. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1869. }
  1870. export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
  1871. constructor(props: IImagePropertyGridComponentProps);
  1872. render(): JSX.Element;
  1873. }
  1874. }
  1875. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
  1876. import * as React from "react";
  1877. import { Observable } from "babylonjs/Misc/observable";
  1878. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1879. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1880. import { Slider } from "babylonjs-gui/2D/controls/sliders/slider";
  1881. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1882. interface ISliderPropertyGridComponentProps {
  1883. globalState: GlobalState;
  1884. slider: Slider;
  1885. lockObject: LockObject;
  1886. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1887. }
  1888. export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
  1889. constructor(props: ISliderPropertyGridComponentProps);
  1890. render(): JSX.Element;
  1891. }
  1892. }
  1893. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
  1894. import * as React from "react";
  1895. import { Observable } from "babylonjs/Misc/observable";
  1896. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1897. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1898. import { ImageBasedSlider } from "babylonjs-gui/2D/controls/sliders/imageBasedSlider";
  1899. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1900. interface IImageBasedSliderPropertyGridComponentProps {
  1901. globalState: GlobalState;
  1902. imageBasedSlider: ImageBasedSlider;
  1903. lockObject: LockObject;
  1904. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1905. }
  1906. export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
  1907. constructor(props: IImageBasedSliderPropertyGridComponentProps);
  1908. render(): JSX.Element;
  1909. }
  1910. }
  1911. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
  1912. import * as React from "react";
  1913. import { Observable } from "babylonjs/Misc/observable";
  1914. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1915. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1916. import { Rectangle } from "babylonjs-gui/2D/controls/rectangle";
  1917. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1918. interface IRectanglePropertyGridComponentProps {
  1919. globalState: GlobalState;
  1920. rectangle: Rectangle;
  1921. lockObject: LockObject;
  1922. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1923. }
  1924. export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
  1925. constructor(props: IRectanglePropertyGridComponentProps);
  1926. render(): JSX.Element;
  1927. }
  1928. }
  1929. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
  1930. import * as React from "react";
  1931. import { Observable } from "babylonjs/Misc/observable";
  1932. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1933. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1934. import { Ellipse } from "babylonjs-gui/2D/controls/ellipse";
  1935. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1936. interface IEllipsePropertyGridComponentProps {
  1937. globalState: GlobalState;
  1938. ellipse: Ellipse;
  1939. lockObject: LockObject;
  1940. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1941. }
  1942. export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
  1943. constructor(props: IEllipsePropertyGridComponentProps);
  1944. render(): JSX.Element;
  1945. }
  1946. }
  1947. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
  1948. import * as React from "react";
  1949. import { Observable } from "babylonjs/Misc/observable";
  1950. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1951. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1952. import { Checkbox } from "babylonjs-gui/2D/controls/checkbox";
  1953. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1954. interface ICheckboxPropertyGridComponentProps {
  1955. globalState: GlobalState;
  1956. checkbox: Checkbox;
  1957. lockObject: LockObject;
  1958. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1959. }
  1960. export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
  1961. constructor(props: ICheckboxPropertyGridComponentProps);
  1962. render(): JSX.Element;
  1963. }
  1964. }
  1965. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
  1966. import * as React from "react";
  1967. import { Observable } from "babylonjs/Misc/observable";
  1968. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1969. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1970. import { RadioButton } from "babylonjs-gui/2D/controls/radioButton";
  1971. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1972. interface IRadioButtonPropertyGridComponentProps {
  1973. globalState: GlobalState;
  1974. radioButton: RadioButton;
  1975. lockObject: LockObject;
  1976. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1977. }
  1978. export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
  1979. constructor(props: IRadioButtonPropertyGridComponentProps);
  1980. render(): JSX.Element;
  1981. }
  1982. }
  1983. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/linePropertyGridComponent" {
  1984. import * as React from "react";
  1985. import { Observable } from "babylonjs/Misc/observable";
  1986. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  1987. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  1988. import { Line } from "babylonjs-gui/2D/controls/line";
  1989. import { GlobalState } from "babylonjs-inspector/components/globalState";
  1990. interface ILinePropertyGridComponentProps {
  1991. globalState: GlobalState;
  1992. line: Line;
  1993. lockObject: LockObject;
  1994. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  1995. }
  1996. export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
  1997. constructor(props: ILinePropertyGridComponentProps);
  1998. onDashChange(value: string): void;
  1999. render(): JSX.Element;
  2000. }
  2001. }
  2002. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
  2003. import * as React from "react";
  2004. import { Observable } from "babylonjs/Misc/observable";
  2005. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2006. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2007. import { ScrollViewer } from "babylonjs-gui/2D/controls/scrollViewers/scrollViewer";
  2008. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2009. interface IScrollViewerPropertyGridComponentProps {
  2010. globalState: GlobalState;
  2011. scrollViewer: ScrollViewer;
  2012. lockObject: LockObject;
  2013. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2014. }
  2015. export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
  2016. constructor(props: IScrollViewerPropertyGridComponentProps);
  2017. render(): JSX.Element;
  2018. }
  2019. }
  2020. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/gridPropertyGridComponent" {
  2021. import * as React from "react";
  2022. import { Observable } from "babylonjs/Misc/observable";
  2023. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2024. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2025. import { Grid } from "babylonjs-gui/2D/controls/grid";
  2026. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2027. interface IGridPropertyGridComponentProps {
  2028. globalState: GlobalState;
  2029. grid: Grid;
  2030. lockObject: LockObject;
  2031. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2032. }
  2033. export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
  2034. constructor(props: IGridPropertyGridComponentProps);
  2035. renderRows(): JSX.Element[];
  2036. renderColumns(): JSX.Element[];
  2037. render(): JSX.Element;
  2038. }
  2039. }
  2040. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/pbrMetallicRoughnessMaterialPropertyGridComponent" {
  2041. import * as React from "react";
  2042. import { Observable } from "babylonjs/Misc/observable";
  2043. import { PBRMetallicRoughnessMaterial } from "babylonjs/Materials/PBR/pbrMetallicRoughnessMaterial";
  2044. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2045. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2046. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2047. interface IPBRMetallicRoughnessMaterialPropertyGridComponentProps {
  2048. globalState: GlobalState;
  2049. material: PBRMetallicRoughnessMaterial;
  2050. lockObject: LockObject;
  2051. onSelectionChangedObservable?: Observable<any>;
  2052. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2053. }
  2054. export class PBRMetallicRoughnessMaterialPropertyGridComponent extends React.Component<IPBRMetallicRoughnessMaterialPropertyGridComponentProps> {
  2055. private _onDebugSelectionChangeObservable;
  2056. constructor(props: IPBRMetallicRoughnessMaterialPropertyGridComponentProps);
  2057. renderTextures(): JSX.Element;
  2058. render(): JSX.Element;
  2059. }
  2060. }
  2061. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/pbrSpecularGlossinessMaterialPropertyGridComponent" {
  2062. import * as React from "react";
  2063. import { Observable } from "babylonjs/Misc/observable";
  2064. import { PBRSpecularGlossinessMaterial } from "babylonjs/Materials/PBR/pbrSpecularGlossinessMaterial";
  2065. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2066. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2067. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2068. interface IPBRSpecularGlossinessMaterialPropertyGridComponentProps {
  2069. globalState: GlobalState;
  2070. material: PBRSpecularGlossinessMaterial;
  2071. lockObject: LockObject;
  2072. onSelectionChangedObservable?: Observable<any>;
  2073. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2074. }
  2075. export class PBRSpecularGlossinessMaterialPropertyGridComponent extends React.Component<IPBRSpecularGlossinessMaterialPropertyGridComponentProps> {
  2076. private _onDebugSelectionChangeObservable;
  2077. constructor(props: IPBRSpecularGlossinessMaterialPropertyGridComponentProps);
  2078. renderTextures(): JSX.Element;
  2079. render(): JSX.Element;
  2080. }
  2081. }
  2082. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
  2083. import * as React from "react";
  2084. import { Observable } from "babylonjs/Misc/observable";
  2085. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2086. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2087. import { StackPanel } from "babylonjs-gui/2D/controls/stackPanel";
  2088. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2089. interface IStackPanelPropertyGridComponentProps {
  2090. globalState: GlobalState;
  2091. stackPanel: StackPanel;
  2092. lockObject: LockObject;
  2093. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2094. }
  2095. export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
  2096. constructor(props: IStackPanelPropertyGridComponentProps);
  2097. render(): JSX.Element;
  2098. }
  2099. }
  2100. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/commonPostProcessPropertyGridComponent" {
  2101. import * as React from "react";
  2102. import { Observable } from "babylonjs/Misc/observable";
  2103. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2104. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2105. import { PostProcess } from 'babylonjs/PostProcesses/postProcess';
  2106. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2107. interface ICommonPostProcessPropertyGridComponentProps {
  2108. globalState: GlobalState;
  2109. postProcess: PostProcess;
  2110. lockObject: LockObject;
  2111. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2112. }
  2113. export class CommonPostProcessPropertyGridComponent extends React.Component<ICommonPostProcessPropertyGridComponentProps> {
  2114. constructor(props: ICommonPostProcessPropertyGridComponentProps);
  2115. render(): JSX.Element;
  2116. }
  2117. }
  2118. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/postProcessPropertyGridComponent" {
  2119. import * as React from "react";
  2120. import { Observable } from "babylonjs/Misc/observable";
  2121. import { PostProcess } from "babylonjs/PostProcesses/postProcess";
  2122. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2123. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2124. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2125. interface IPostProcessPropertyGridComponentProps {
  2126. globalState: GlobalState;
  2127. postProcess: PostProcess;
  2128. lockObject: LockObject;
  2129. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2130. }
  2131. export class PostProcessPropertyGridComponent extends React.Component<IPostProcessPropertyGridComponentProps> {
  2132. constructor(props: IPostProcessPropertyGridComponentProps);
  2133. edit(): void;
  2134. render(): JSX.Element;
  2135. }
  2136. }
  2137. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/commonRenderingPipelinePropertyGridComponent" {
  2138. import * as React from "react";
  2139. import { Observable } from "babylonjs/Misc/observable";
  2140. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2141. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2142. import { PostProcessRenderPipeline } from 'babylonjs/PostProcesses/RenderPipeline/postProcessRenderPipeline';
  2143. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2144. interface ICommonRenderingPipelinePropertyGridComponentProps {
  2145. globalState: GlobalState;
  2146. renderPipeline: PostProcessRenderPipeline;
  2147. lockObject: LockObject;
  2148. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2149. }
  2150. export class CommonRenderingPipelinePropertyGridComponent extends React.Component<ICommonRenderingPipelinePropertyGridComponentProps> {
  2151. constructor(props: ICommonRenderingPipelinePropertyGridComponentProps);
  2152. render(): JSX.Element;
  2153. }
  2154. }
  2155. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/renderingPipelinePropertyGridComponent" {
  2156. import * as React from "react";
  2157. import { Observable } from "babylonjs/Misc/observable";
  2158. import { PostProcessRenderPipeline } from "babylonjs/PostProcesses/RenderPipeline/postProcessRenderPipeline";
  2159. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2160. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2161. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2162. interface IRenderingPipelinePropertyGridComponentProps {
  2163. globalState: GlobalState;
  2164. renderPipeline: PostProcessRenderPipeline;
  2165. lockObject: LockObject;
  2166. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2167. }
  2168. export class RenderingPipelinePropertyGridComponent extends React.Component<IRenderingPipelinePropertyGridComponentProps> {
  2169. constructor(props: IRenderingPipelinePropertyGridComponentProps);
  2170. render(): JSX.Element;
  2171. }
  2172. }
  2173. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/defaultRenderingPipelinePropertyGridComponent" {
  2174. import * as React from "react";
  2175. import { Observable } from "babylonjs/Misc/observable";
  2176. import { DefaultRenderingPipeline } from "babylonjs/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline";
  2177. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2178. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2179. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2180. interface IDefaultRenderingPipelinePropertyGridComponentProps {
  2181. globalState: GlobalState;
  2182. renderPipeline: DefaultRenderingPipeline;
  2183. lockObject: LockObject;
  2184. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2185. }
  2186. export class DefaultRenderingPipelinePropertyGridComponent extends React.Component<IDefaultRenderingPipelinePropertyGridComponentProps> {
  2187. constructor(props: IDefaultRenderingPipelinePropertyGridComponentProps);
  2188. render(): JSX.Element;
  2189. }
  2190. }
  2191. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/ssaoRenderingPipelinePropertyGridComponent" {
  2192. import * as React from "react";
  2193. import { Observable } from "babylonjs/Misc/observable";
  2194. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2195. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2196. import { SSAORenderingPipeline } from 'babylonjs/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline';
  2197. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2198. interface ISSAORenderingPipelinePropertyGridComponentProps {
  2199. globalState: GlobalState;
  2200. renderPipeline: SSAORenderingPipeline;
  2201. lockObject: LockObject;
  2202. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2203. }
  2204. export class SSAORenderingPipelinePropertyGridComponent extends React.Component<ISSAORenderingPipelinePropertyGridComponentProps> {
  2205. constructor(props: ISSAORenderingPipelinePropertyGridComponentProps);
  2206. render(): JSX.Element;
  2207. }
  2208. }
  2209. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/ssao2RenderingPipelinePropertyGridComponent" {
  2210. import * as React from "react";
  2211. import { Observable } from "babylonjs/Misc/observable";
  2212. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2213. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2214. import { SSAO2RenderingPipeline } from 'babylonjs/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline';
  2215. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2216. interface ISSAO2RenderingPipelinePropertyGridComponentProps {
  2217. globalState: GlobalState;
  2218. renderPipeline: SSAO2RenderingPipeline;
  2219. lockObject: LockObject;
  2220. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2221. }
  2222. export class SSAO2RenderingPipelinePropertyGridComponent extends React.Component<ISSAO2RenderingPipelinePropertyGridComponentProps> {
  2223. constructor(props: ISSAO2RenderingPipelinePropertyGridComponentProps);
  2224. render(): JSX.Element;
  2225. }
  2226. }
  2227. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/meshes/skeletonPropertyGridComponent" {
  2228. import * as React from "react";
  2229. import { Observable } from "babylonjs/Misc/observable";
  2230. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2231. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2232. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2233. import { Skeleton } from 'babylonjs/Bones/skeleton';
  2234. interface ISkeletonPropertyGridComponentProps {
  2235. globalState: GlobalState;
  2236. skeleton: Skeleton;
  2237. lockObject: LockObject;
  2238. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2239. }
  2240. export class SkeletonPropertyGridComponent extends React.Component<ISkeletonPropertyGridComponentProps> {
  2241. private _skeletonViewersEnabled;
  2242. private _skeletonViewerDisplayOptions;
  2243. private _skeletonViewers;
  2244. constructor(props: ISkeletonPropertyGridComponentProps);
  2245. switchSkeletonViewers(): void;
  2246. checkSkeletonViewerState(props: ISkeletonPropertyGridComponentProps): void;
  2247. changeDisplayMode(): void;
  2248. changeDisplayOptions(option: string, value: number): void;
  2249. shouldComponentUpdate(nextProps: ISkeletonPropertyGridComponentProps): boolean;
  2250. onOverrideMeshLink(): void;
  2251. render(): JSX.Element;
  2252. }
  2253. }
  2254. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/meshes/bonePropertyGridComponent" {
  2255. import * as React from "react";
  2256. import { Observable } from "babylonjs/Misc/observable";
  2257. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2258. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2259. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2260. import { Bone } from 'babylonjs/Bones/bone';
  2261. interface IBonePropertyGridComponentProps {
  2262. globalState: GlobalState;
  2263. bone: Bone;
  2264. lockObject: LockObject;
  2265. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2266. }
  2267. export class BonePropertyGridComponent extends React.Component<IBonePropertyGridComponentProps> {
  2268. constructor(props: IBonePropertyGridComponentProps);
  2269. onTransformNodeLink(): void;
  2270. render(): JSX.Element;
  2271. }
  2272. }
  2273. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lights/directionalLightPropertyGridComponent" {
  2274. import * as React from "react";
  2275. import { Observable } from "babylonjs/Misc/observable";
  2276. import { DirectionalLight } from "babylonjs/Lights/directionalLight";
  2277. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2278. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2279. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2280. interface IDirectionalLightPropertyGridComponentProps {
  2281. globalState: GlobalState;
  2282. light: DirectionalLight;
  2283. lockObject: LockObject;
  2284. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2285. }
  2286. export class DirectionalLightPropertyGridComponent extends React.Component<IDirectionalLightPropertyGridComponentProps> {
  2287. constructor(props: IDirectionalLightPropertyGridComponentProps);
  2288. render(): JSX.Element;
  2289. }
  2290. }
  2291. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lights/spotLightPropertyGridComponent" {
  2292. import * as React from "react";
  2293. import { Observable } from "babylonjs/Misc/observable";
  2294. import { SpotLight } from "babylonjs/Lights/spotLight";
  2295. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2296. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2297. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2298. interface ISpotLightPropertyGridComponentProps {
  2299. globalState: GlobalState;
  2300. light: SpotLight;
  2301. lockObject: LockObject;
  2302. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2303. }
  2304. export class SpotLightPropertyGridComponent extends React.Component<ISpotLightPropertyGridComponentProps> {
  2305. constructor(props: ISpotLightPropertyGridComponentProps);
  2306. render(): JSX.Element;
  2307. }
  2308. }
  2309. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/postProcesses/lensRenderingPipelinePropertyGridComponent" {
  2310. import * as React from "react";
  2311. import { Observable } from "babylonjs/Misc/observable";
  2312. import { LensRenderingPipeline } from "babylonjs/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline";
  2313. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2314. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2315. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2316. interface ILenstRenderingPipelinePropertyGridComponentProps {
  2317. globalState: GlobalState;
  2318. renderPipeline: LensRenderingPipeline;
  2319. lockObject: LockObject;
  2320. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2321. }
  2322. export class LensRenderingPipelinePropertyGridComponent extends React.Component<ILenstRenderingPipelinePropertyGridComponentProps> {
  2323. constructor(props: ILenstRenderingPipelinePropertyGridComponentProps);
  2324. render(): JSX.Element;
  2325. }
  2326. }
  2327. declare module "babylonjs-inspector/sharedUiComponents/lines/vector4LineComponent" {
  2328. import * as React from "react";
  2329. import { Vector4 } from "babylonjs/Maths/math.vector";
  2330. import { Observable } from "babylonjs/Misc/observable";
  2331. import { PropertyChangedEvent } from "babylonjs-inspector/sharedUiComponents/propertyChangedEvent";
  2332. interface IVector4LineComponentProps {
  2333. label: string;
  2334. target: any;
  2335. propertyName: string;
  2336. step?: number;
  2337. onChange?: (newvalue: Vector4) => void;
  2338. useEuler?: boolean;
  2339. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2340. }
  2341. export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
  2342. isExpanded: boolean;
  2343. value: Vector4;
  2344. }> {
  2345. static defaultProps: {
  2346. step: number;
  2347. };
  2348. private _localChange;
  2349. constructor(props: IVector4LineComponentProps);
  2350. getCurrentValue(): any;
  2351. shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
  2352. isExpanded: boolean;
  2353. value: Vector4;
  2354. }): boolean;
  2355. switchExpandState(): void;
  2356. raiseOnPropertyChanged(previousValue: Vector4): void;
  2357. updateVector4(): void;
  2358. updateStateX(value: number): void;
  2359. updateStateY(value: number): void;
  2360. updateStateZ(value: number): void;
  2361. updateStateW(value: number): void;
  2362. render(): JSX.Element;
  2363. }
  2364. }
  2365. declare module "babylonjs-inspector/components/actionTabs/tabs/gradientStepComponent" {
  2366. import * as React from 'react';
  2367. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2368. import { GradientBlockColorStep } from 'babylonjs/Materials/Node/Blocks/gradientBlock';
  2369. interface IGradientStepComponentProps {
  2370. globalState: GlobalState;
  2371. step: GradientBlockColorStep;
  2372. lineIndex: number;
  2373. onDelete: () => void;
  2374. onUpdateStep: () => void;
  2375. onCheckForReOrder: () => void;
  2376. onCopy?: () => void;
  2377. }
  2378. export class GradientStepComponent extends React.Component<IGradientStepComponentProps, {
  2379. gradient: number;
  2380. }> {
  2381. constructor(props: IGradientStepComponentProps);
  2382. updateColor(color: string): void;
  2383. updateStep(gradient: number): void;
  2384. onPointerUp(): void;
  2385. render(): JSX.Element;
  2386. }
  2387. }
  2388. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyComponentProps" {
  2389. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2390. import { NodeMaterialBlock } from 'babylonjs/Materials/Node/nodeMaterialBlock';
  2391. export interface IPropertyComponentProps {
  2392. globalState: GlobalState;
  2393. block: NodeMaterialBlock;
  2394. }
  2395. }
  2396. declare module "babylonjs-inspector/components/actionTabs/tabs/gradientNodePropertyComponent" {
  2397. import * as React from "react";
  2398. import { GradientBlockColorStep } from 'babylonjs/Materials/Node/Blocks/gradientBlock';
  2399. import { IPropertyComponentProps } from "babylonjs-inspector/components/actionTabs/tabs/propertyComponentProps";
  2400. export class GradientPropertyTabComponent extends React.Component<IPropertyComponentProps> {
  2401. private _gradientBlock;
  2402. constructor(props: IPropertyComponentProps);
  2403. forceRebuild(): void;
  2404. deleteStep(step: GradientBlockColorStep): void;
  2405. copyStep(step: GradientBlockColorStep): void;
  2406. addNewStep(): void;
  2407. checkForReOrder(): void;
  2408. render(): JSX.Element;
  2409. }
  2410. }
  2411. declare module "babylonjs-inspector/sharedUiComponents/lines/color4LineComponent" {
  2412. import * as React from "react";
  2413. import { Observable } from "babylonjs/Misc/observable";
  2414. import { Color4 } from "babylonjs/Maths/math.color";
  2415. import { PropertyChangedEvent } from "babylonjs-inspector/sharedUiComponents/propertyChangedEvent";
  2416. export interface IColor4LineComponentProps {
  2417. label: string;
  2418. target: any;
  2419. propertyName: string;
  2420. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2421. onChange?: () => void;
  2422. isLinear?: boolean;
  2423. }
  2424. export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
  2425. isExpanded: boolean;
  2426. color: Color4;
  2427. }> {
  2428. private _localChange;
  2429. constructor(props: IColor4LineComponentProps);
  2430. shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
  2431. color: Color4;
  2432. }): boolean;
  2433. setPropertyValue(newColor: Color4): void;
  2434. onChange(newValue: string): void;
  2435. switchExpandState(): void;
  2436. raiseOnPropertyChanged(previousValue: Color4): void;
  2437. updateStateR(value: number): void;
  2438. updateStateG(value: number): void;
  2439. updateStateB(value: number): void;
  2440. updateStateA(value: number): void;
  2441. copyToClipboard(): void;
  2442. render(): JSX.Element;
  2443. }
  2444. }
  2445. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/nodeMaterialPropertyGridComponent" {
  2446. import * as React from "react";
  2447. import { Observable } from "babylonjs/Misc/observable";
  2448. import { NodeMaterial } from "babylonjs/Materials/Node/nodeMaterial";
  2449. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2450. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2451. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2452. import { InputBlock } from 'babylonjs/Materials/Node/Blocks/Input/inputBlock';
  2453. interface INodeMaterialPropertyGridComponentProps {
  2454. globalState: GlobalState;
  2455. material: NodeMaterial;
  2456. lockObject: LockObject;
  2457. onSelectionChangedObservable?: Observable<any>;
  2458. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2459. }
  2460. export class NodeMaterialPropertyGridComponent extends React.Component<INodeMaterialPropertyGridComponentProps> {
  2461. private _onDebugSelectionChangeObservable;
  2462. constructor(props: INodeMaterialPropertyGridComponentProps);
  2463. edit(): void;
  2464. renderTextures(): JSX.Element | null;
  2465. renderInputBlock(block: InputBlock): JSX.Element | null;
  2466. renderInputValues(): JSX.Element;
  2467. render(): JSX.Element;
  2468. }
  2469. }
  2470. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/multiMaterialPropertyGridComponent" {
  2471. import * as React from "react";
  2472. import { Observable } from "babylonjs/Misc/observable";
  2473. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2474. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2475. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2476. import { Material } from 'babylonjs/Materials/material';
  2477. import { MultiMaterial } from 'babylonjs/Materials/multiMaterial';
  2478. interface IMultiMaterialPropertyGridComponentProps {
  2479. globalState: GlobalState;
  2480. material: MultiMaterial;
  2481. lockObject: LockObject;
  2482. onSelectionChangedObservable?: Observable<any>;
  2483. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2484. }
  2485. export class MultiMaterialPropertyGridComponent extends React.Component<IMultiMaterialPropertyGridComponentProps> {
  2486. constructor(props: IMultiMaterialPropertyGridComponentProps);
  2487. onMaterialLink(mat: Material): void;
  2488. renderChildMaterial(): JSX.Element;
  2489. render(): JSX.Element;
  2490. }
  2491. }
  2492. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/boxEmitterGridComponent" {
  2493. import * as React from "react";
  2494. import { Observable } from "babylonjs/Misc/observable";
  2495. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2496. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2497. import { BoxParticleEmitter } from 'babylonjs/Particles/EmitterTypes/boxParticleEmitter';
  2498. interface IBoxEmitterGridComponentProps {
  2499. globalState: GlobalState;
  2500. emitter: BoxParticleEmitter;
  2501. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2502. }
  2503. export class BoxEmitterGridComponent extends React.Component<IBoxEmitterGridComponentProps> {
  2504. constructor(props: IBoxEmitterGridComponentProps);
  2505. render(): JSX.Element;
  2506. }
  2507. }
  2508. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/coneEmitterGridComponent" {
  2509. import * as React from "react";
  2510. import { Observable } from "babylonjs/Misc/observable";
  2511. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2512. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2513. import { ConeParticleEmitter } from 'babylonjs/Particles/EmitterTypes/coneParticleEmitter';
  2514. interface IConeEmitterGridComponentProps {
  2515. globalState: GlobalState;
  2516. emitter: ConeParticleEmitter;
  2517. onSelectionChangedObservable?: Observable<any>;
  2518. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2519. }
  2520. export class ConeEmitterGridComponent extends React.Component<IConeEmitterGridComponentProps> {
  2521. constructor(props: IConeEmitterGridComponentProps);
  2522. render(): JSX.Element;
  2523. }
  2524. }
  2525. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/cylinderEmitterGridComponent" {
  2526. import * as React from "react";
  2527. import { Observable } from "babylonjs/Misc/observable";
  2528. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2529. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2530. import { CylinderParticleEmitter } from 'babylonjs/Particles/EmitterTypes/cylinderParticleEmitter';
  2531. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2532. interface ICylinderEmitterGridComponentProps {
  2533. globalState: GlobalState;
  2534. emitter: CylinderParticleEmitter;
  2535. lockObject: LockObject;
  2536. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2537. }
  2538. export class CylinderEmitterGridComponent extends React.Component<ICylinderEmitterGridComponentProps> {
  2539. constructor(props: ICylinderEmitterGridComponentProps);
  2540. render(): JSX.Element;
  2541. }
  2542. }
  2543. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/hemisphericEmitterGridComponent" {
  2544. import * as React from "react";
  2545. import { Observable } from "babylonjs/Misc/observable";
  2546. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2547. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2548. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2549. import { HemisphericParticleEmitter } from 'babylonjs/Particles/EmitterTypes/hemisphericParticleEmitter';
  2550. interface IHemisphericEmitterGridComponentProps {
  2551. globalState: GlobalState;
  2552. emitter: HemisphericParticleEmitter;
  2553. lockObject: LockObject;
  2554. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2555. }
  2556. export class HemisphericEmitterGridComponent extends React.Component<IHemisphericEmitterGridComponentProps> {
  2557. constructor(props: IHemisphericEmitterGridComponentProps);
  2558. render(): JSX.Element;
  2559. }
  2560. }
  2561. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/pointEmitterGridComponent" {
  2562. import * as React from "react";
  2563. import { Observable } from "babylonjs/Misc/observable";
  2564. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2565. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2566. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2567. import { PointParticleEmitter } from 'babylonjs/Particles/EmitterTypes/pointParticleEmitter';
  2568. interface IPointEmitterGridComponentProps {
  2569. globalState: GlobalState;
  2570. emitter: PointParticleEmitter;
  2571. lockObject: LockObject;
  2572. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2573. }
  2574. export class PointEmitterGridComponent extends React.Component<IPointEmitterGridComponentProps> {
  2575. constructor(props: IPointEmitterGridComponentProps);
  2576. render(): JSX.Element;
  2577. }
  2578. }
  2579. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/sphereEmitterGridComponent" {
  2580. import * as React from "react";
  2581. import { Observable } from "babylonjs/Misc/observable";
  2582. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2583. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2584. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2585. import { SphereParticleEmitter } from 'babylonjs/Particles/EmitterTypes/sphereParticleEmitter';
  2586. interface ISphereEmitterGridComponentProps {
  2587. globalState: GlobalState;
  2588. emitter: SphereParticleEmitter;
  2589. lockObject: LockObject;
  2590. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2591. }
  2592. export class SphereEmitterGridComponent extends React.Component<ISphereEmitterGridComponentProps> {
  2593. constructor(props: ISphereEmitterGridComponentProps);
  2594. render(): JSX.Element;
  2595. }
  2596. }
  2597. declare module "babylonjs-inspector/components/actionTabs/lines/meshPickerComponent" {
  2598. import * as React from "react";
  2599. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2600. import { Observable } from 'babylonjs/Misc/observable';
  2601. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2602. import { Scene } from 'babylonjs/scene';
  2603. interface IMeshPickerComponentProps {
  2604. globalState: GlobalState;
  2605. target: any;
  2606. property: string;
  2607. scene: Scene;
  2608. label: string;
  2609. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2610. }
  2611. export class MeshPickerComponent extends React.Component<IMeshPickerComponentProps> {
  2612. constructor(props: IMeshPickerComponentProps);
  2613. render(): JSX.Element;
  2614. }
  2615. }
  2616. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/meshEmitterGridComponent" {
  2617. import * as React from "react";
  2618. import { Observable } from "babylonjs/Misc/observable";
  2619. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2620. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2621. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2622. import { MeshParticleEmitter } from 'babylonjs/Particles/EmitterTypes/meshParticleEmitter';
  2623. import { Scene } from 'babylonjs/scene';
  2624. interface IMeshEmitterGridComponentProps {
  2625. globalState: GlobalState;
  2626. emitter: MeshParticleEmitter;
  2627. scene: Scene;
  2628. lockObject: LockObject;
  2629. onSelectionChangedObservable?: Observable<any>;
  2630. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2631. }
  2632. export class MeshEmitterGridComponent extends React.Component<IMeshEmitterGridComponentProps> {
  2633. constructor(props: IMeshEmitterGridComponentProps);
  2634. render(): JSX.Element;
  2635. }
  2636. }
  2637. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/factorGradientStepGridComponent" {
  2638. import * as React from 'react';
  2639. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2640. import { FactorGradient } from 'babylonjs/Misc/gradients';
  2641. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2642. import { IParticleSystem } from 'babylonjs/Particles/IParticleSystem';
  2643. interface IFactorGradientStepGridComponent {
  2644. globalState: GlobalState;
  2645. gradient: FactorGradient;
  2646. lockObject: LockObject;
  2647. lineIndex: number;
  2648. onDelete: () => void;
  2649. onUpdateGradient: () => void;
  2650. onCheckForReOrder: () => void;
  2651. host: IParticleSystem;
  2652. codeRecorderPropertyName: string;
  2653. }
  2654. export class FactorGradientStepGridComponent extends React.Component<IFactorGradientStepGridComponent, {
  2655. gradient: number;
  2656. factor1: string;
  2657. factor2?: string;
  2658. }> {
  2659. constructor(props: IFactorGradientStepGridComponent);
  2660. shouldComponentUpdate(nextProps: IFactorGradientStepGridComponent, nextState: {
  2661. gradient: number;
  2662. factor1: string;
  2663. factor2?: string;
  2664. }): boolean;
  2665. updateFactor1(valueString: string): void;
  2666. updateFactor2(valueString: string): void;
  2667. updateGradient(gradient: number): void;
  2668. onPointerUp(): void;
  2669. lock(): void;
  2670. unlock(): void;
  2671. render(): JSX.Element;
  2672. }
  2673. }
  2674. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/colorGradientStepGridComponent" {
  2675. import * as React from 'react';
  2676. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2677. import { ColorGradient, Color3Gradient } from 'babylonjs/Misc/gradients';
  2678. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2679. import { IParticleSystem } from 'babylonjs/Particles/IParticleSystem';
  2680. interface IColorGradientStepGridComponent {
  2681. globalState: GlobalState;
  2682. gradient: ColorGradient | Color3Gradient;
  2683. lockObject: LockObject;
  2684. lineIndex: number;
  2685. isColor3: boolean;
  2686. onDelete: () => void;
  2687. onUpdateGradient: () => void;
  2688. onCheckForReOrder: () => void;
  2689. host: IParticleSystem;
  2690. codeRecorderPropertyName: string;
  2691. }
  2692. export class ColorGradientStepGridComponent extends React.Component<IColorGradientStepGridComponent, {
  2693. gradient: number;
  2694. }> {
  2695. constructor(props: IColorGradientStepGridComponent);
  2696. updateColor1(color: string): void;
  2697. updateColor2(color: string): void;
  2698. updateGradient(gradient: number): void;
  2699. onPointerUp(): void;
  2700. lock(): void;
  2701. unlock(): void;
  2702. render(): JSX.Element;
  2703. }
  2704. }
  2705. declare module "babylonjs-inspector/sharedUiComponents/lines/linkButtonComponent" {
  2706. import * as React from "react";
  2707. interface ILinkButtonComponentProps {
  2708. label: string;
  2709. buttonLabel: string;
  2710. url?: string;
  2711. onClick: () => void;
  2712. onIconClick?: () => void;
  2713. }
  2714. export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
  2715. constructor(props: ILinkButtonComponentProps);
  2716. onLink(): void;
  2717. render(): JSX.Element;
  2718. }
  2719. }
  2720. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/valueGradientGridComponent" {
  2721. import * as React from "react";
  2722. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2723. import { IValueGradient } from 'babylonjs/Misc/gradients';
  2724. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2725. import { Nullable } from 'babylonjs/types';
  2726. import { IParticleSystem } from 'babylonjs/Particles/IParticleSystem';
  2727. export enum GradientGridMode {
  2728. Factor = 0,
  2729. Color3 = 1,
  2730. Color4 = 2
  2731. }
  2732. interface IValueGradientGridComponent {
  2733. globalState: GlobalState;
  2734. label: string;
  2735. gradients: Nullable<Array<IValueGradient>>;
  2736. lockObject: LockObject;
  2737. docLink?: string;
  2738. mode: GradientGridMode;
  2739. host: IParticleSystem;
  2740. codeRecorderPropertyName: string;
  2741. onCreateRequired: () => void;
  2742. }
  2743. export class ValueGradientGridComponent extends React.Component<IValueGradientGridComponent> {
  2744. constructor(props: IValueGradientGridComponent);
  2745. deleteStep(step: IValueGradient): void;
  2746. addNewStep(): void;
  2747. checkForReOrder(): void;
  2748. updateAndSync(): void;
  2749. render(): JSX.Element;
  2750. }
  2751. }
  2752. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/particleSystems/particleSystemPropertyGridComponent" {
  2753. import * as React from "react";
  2754. import { Observable } from "babylonjs/Misc/observable";
  2755. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2756. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2757. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2758. import { IParticleSystem } from 'babylonjs/Particles/IParticleSystem';
  2759. interface IParticleSystemPropertyGridComponentProps {
  2760. globalState: GlobalState;
  2761. system: IParticleSystem;
  2762. lockObject: LockObject;
  2763. onSelectionChangedObservable?: Observable<any>;
  2764. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2765. }
  2766. export class ParticleSystemPropertyGridComponent extends React.Component<IParticleSystemPropertyGridComponentProps> {
  2767. private _snippetUrl;
  2768. constructor(props: IParticleSystemPropertyGridComponentProps);
  2769. renderEmitter(): JSX.Element | null;
  2770. raiseOnPropertyChanged(property: string, newValue: any, previousValue: any): void;
  2771. renderControls(): JSX.Element;
  2772. saveToFile(): void;
  2773. loadFromFile(file: File): void;
  2774. loadFromSnippet(): void;
  2775. saveToSnippet(): void;
  2776. render(): JSX.Element;
  2777. }
  2778. }
  2779. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/sprites/spriteManagerPropertyGridComponent" {
  2780. import * as React from "react";
  2781. import { Observable } from "babylonjs/Misc/observable";
  2782. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2783. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2784. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2785. import { SpriteManager } from 'babylonjs/Sprites/spriteManager';
  2786. interface ISpriteManagerPropertyGridComponentProps {
  2787. globalState: GlobalState;
  2788. spriteManager: SpriteManager;
  2789. lockObject: LockObject;
  2790. onSelectionChangedObservable?: Observable<any>;
  2791. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2792. }
  2793. export class SpriteManagerPropertyGridComponent extends React.Component<ISpriteManagerPropertyGridComponentProps> {
  2794. private _snippetUrl;
  2795. constructor(props: ISpriteManagerPropertyGridComponentProps);
  2796. addNewSprite(): void;
  2797. disposeManager(): void;
  2798. saveToFile(): void;
  2799. loadFromFile(file: File): void;
  2800. loadFromSnippet(): void;
  2801. saveToSnippet(): void;
  2802. render(): JSX.Element;
  2803. }
  2804. }
  2805. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/sprites/spritePropertyGridComponent" {
  2806. import * as React from "react";
  2807. import { Observable } from "babylonjs/Misc/observable";
  2808. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2809. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2810. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2811. import { Sprite } from 'babylonjs/Sprites/sprite';
  2812. interface ISpritePropertyGridComponentProps {
  2813. globalState: GlobalState;
  2814. sprite: Sprite;
  2815. lockObject: LockObject;
  2816. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2817. onSelectionChangedObservable?: Observable<any>;
  2818. }
  2819. export class SpritePropertyGridComponent extends React.Component<ISpritePropertyGridComponentProps> {
  2820. private canvasRef;
  2821. private imageData;
  2822. private cachedCellIndex;
  2823. constructor(props: ISpritePropertyGridComponentProps);
  2824. onManagerLink(): void;
  2825. switchPlayStopState(): void;
  2826. disposeSprite(): void;
  2827. componentDidMount(): void;
  2828. componentDidUpdate(): void;
  2829. shouldComponentUpdate(nextProps: ISpritePropertyGridComponentProps): boolean;
  2830. updatePreview(): void;
  2831. render(): JSX.Element;
  2832. }
  2833. }
  2834. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/targetedAnimationPropertyGridComponent" {
  2835. import * as React from "react";
  2836. import { Observable } from "babylonjs/Misc/observable";
  2837. import { TargetedAnimation } from "babylonjs/Animations/animationGroup";
  2838. import { Scene } from "babylonjs/scene";
  2839. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2840. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2841. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2842. interface ITargetedAnimationGridComponentProps {
  2843. globalState: GlobalState;
  2844. targetedAnimation: TargetedAnimation;
  2845. scene: Scene;
  2846. lockObject: LockObject;
  2847. onSelectionChangedObservable?: Observable<any>;
  2848. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2849. }
  2850. export class TargetedAnimationGridComponent extends React.Component<ITargetedAnimationGridComponentProps> {
  2851. private _animationGroup;
  2852. constructor(props: ITargetedAnimationGridComponentProps);
  2853. playOrPause: () => void;
  2854. deleteAnimation: () => void;
  2855. render(): JSX.Element;
  2856. }
  2857. }
  2858. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/cameras/followCameraPropertyGridComponent" {
  2859. import * as React from "react";
  2860. import { Observable } from "babylonjs/Misc/observable";
  2861. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2862. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2863. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2864. import { FollowCamera } from 'babylonjs/Cameras/followCamera';
  2865. interface IFollowCameraPropertyGridComponentProps {
  2866. globalState: GlobalState;
  2867. camera: FollowCamera;
  2868. lockObject: LockObject;
  2869. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2870. }
  2871. export class FollowCameraPropertyGridComponent extends React.Component<IFollowCameraPropertyGridComponentProps> {
  2872. constructor(props: IFollowCameraPropertyGridComponentProps);
  2873. render(): JSX.Element;
  2874. }
  2875. }
  2876. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/sounds/soundPropertyGridComponent" {
  2877. import * as React from "react";
  2878. import { Observable } from "babylonjs/Misc/observable";
  2879. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  2880. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  2881. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2882. import { Sound } from 'babylonjs/Audio/sound';
  2883. import { IExplorerExtensibilityGroup } from 'babylonjs/Debug/debugLayer';
  2884. interface ISoundPropertyGridComponentProps {
  2885. globalState: GlobalState;
  2886. sound: Sound;
  2887. extensibilityGroups?: IExplorerExtensibilityGroup[];
  2888. lockObject: LockObject;
  2889. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  2890. }
  2891. export class SoundPropertyGridComponent extends React.Component<ISoundPropertyGridComponentProps> {
  2892. constructor(props: ISoundPropertyGridComponentProps);
  2893. render(): JSX.Element;
  2894. }
  2895. }
  2896. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGridTabComponent" {
  2897. import { PaneComponent, IPaneComponentProps } from "babylonjs-inspector/components/actionTabs/paneComponent";
  2898. export class PropertyGridTabComponent extends PaneComponent {
  2899. private _timerIntervalId;
  2900. private _lockObject;
  2901. constructor(props: IPaneComponentProps);
  2902. timerRefresh(): void;
  2903. componentDidMount(): void;
  2904. componentWillUnmount(): void;
  2905. render(): JSX.Element | null;
  2906. }
  2907. }
  2908. declare module "babylonjs-inspector/components/headerComponent" {
  2909. import * as React from "react";
  2910. import { Observable } from "babylonjs/Misc/observable";
  2911. export interface IHeaderComponentProps {
  2912. title: string;
  2913. handleBack?: boolean;
  2914. noExpand?: boolean;
  2915. noClose?: boolean;
  2916. noCommands?: boolean;
  2917. onPopup: () => void;
  2918. onClose: () => void;
  2919. onSelectionChangedObservable?: Observable<any>;
  2920. }
  2921. export class HeaderComponent extends React.Component<IHeaderComponentProps, {
  2922. isBackVisible: boolean;
  2923. }> {
  2924. private _backStack;
  2925. private _onSelectionChangeObserver;
  2926. constructor(props: IHeaderComponentProps);
  2927. componentDidMount(): void;
  2928. componentWillUnmount(): void;
  2929. goBack(): void;
  2930. renderLogo(): JSX.Element | null;
  2931. render(): JSX.Element;
  2932. }
  2933. }
  2934. declare module "babylonjs-inspector/sharedUiComponents/lines/messageLineComponent" {
  2935. import * as React from "react";
  2936. interface IMessageLineComponentProps {
  2937. text: string;
  2938. color?: string;
  2939. }
  2940. export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
  2941. constructor(props: IMessageLineComponentProps);
  2942. render(): JSX.Element;
  2943. }
  2944. }
  2945. declare module "babylonjs-inspector/components/actionTabs/tabs/tools/gltfComponent" {
  2946. import * as React from "react";
  2947. import { Scene } from "babylonjs/scene";
  2948. import { GlobalState } from "babylonjs-inspector/components/globalState";
  2949. interface IGLTFComponentProps {
  2950. scene: Scene;
  2951. globalState: GlobalState;
  2952. }
  2953. export class GLTFComponent extends React.Component<IGLTFComponentProps> {
  2954. private _onValidationResultsUpdatedObserver;
  2955. openValidationDetails(): void;
  2956. prepareText(singularForm: string, count: number): string;
  2957. componentDidMount(): void;
  2958. componentWillUnmount(): void;
  2959. renderValidation(): JSX.Element | null;
  2960. render(): JSX.Element;
  2961. }
  2962. }
  2963. declare module "babylonjs-inspector/sharedUiComponents/lines/fileMultipleButtonLineComponent" {
  2964. import * as React from "react";
  2965. interface IFileMultipleButtonLineComponentProps {
  2966. label: string;
  2967. onClick: (event: any) => void;
  2968. accept: string;
  2969. }
  2970. export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
  2971. private static _IDGenerator;
  2972. private _id;
  2973. private uploadInputRef;
  2974. constructor(props: IFileMultipleButtonLineComponentProps);
  2975. onChange(evt: any): void;
  2976. render(): JSX.Element;
  2977. }
  2978. }
  2979. declare module "babylonjs-inspector/components/actionTabs/tabs/toolsTabComponent" {
  2980. import { PaneComponent, IPaneComponentProps } from "babylonjs-inspector/components/actionTabs/paneComponent";
  2981. import { Node } from "babylonjs/node";
  2982. export class ToolsTabComponent extends PaneComponent {
  2983. private _videoRecorder;
  2984. private _screenShotSize;
  2985. private _gifOptions;
  2986. private _useWidthHeight;
  2987. private _isExporting;
  2988. private _gifWorkerBlob;
  2989. private _gifRecorder;
  2990. private _previousRenderingScale;
  2991. private _crunchingGIF;
  2992. constructor(props: IPaneComponentProps);
  2993. componentDidMount(): void;
  2994. componentWillUnmount(): void;
  2995. captureScreenshot(): void;
  2996. captureRender(): void;
  2997. recordVideo(): void;
  2998. recordGIFInternal(): void;
  2999. recordGIF(): void;
  3000. importAnimations(event: any): void;
  3001. shouldExport(node: Node): boolean;
  3002. exportGLTF(): void;
  3003. exportBabylon(): void;
  3004. createEnvTexture(): void;
  3005. exportReplay(): void;
  3006. startRecording(): void;
  3007. applyDelta(file: File): void;
  3008. render(): JSX.Element | null;
  3009. }
  3010. }
  3011. declare module "babylonjs-inspector/components/actionTabs/tabs/settingsTabComponent" {
  3012. import { PaneComponent, IPaneComponentProps } from "babylonjs-inspector/components/actionTabs/paneComponent";
  3013. export class SettingsTabComponent extends PaneComponent {
  3014. constructor(props: IPaneComponentProps);
  3015. render(): JSX.Element;
  3016. }
  3017. }
  3018. declare module "babylonjs-inspector/components/actionTabs/actionTabsComponent" {
  3019. import * as React from "react";
  3020. import { Scene } from "babylonjs/scene";
  3021. import { DebugLayerTab } from "babylonjs/Debug/debugLayer";
  3022. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3023. interface IActionTabsComponentProps {
  3024. scene?: Scene;
  3025. noCommands?: boolean;
  3026. noHeader?: boolean;
  3027. noExpand?: boolean;
  3028. noClose?: boolean;
  3029. popupMode?: boolean;
  3030. onPopup?: () => void;
  3031. onClose?: () => void;
  3032. globalState?: GlobalState;
  3033. initialTab?: DebugLayerTab;
  3034. }
  3035. export class ActionTabsComponent extends React.Component<IActionTabsComponentProps, {
  3036. selectedEntity: any;
  3037. selectedIndex: number;
  3038. }> {
  3039. private _onSelectionChangeObserver;
  3040. private _onTabChangedObserver;
  3041. private _once;
  3042. constructor(props: IActionTabsComponentProps);
  3043. componentDidMount(): void;
  3044. componentWillUnmount(): void;
  3045. changeSelectedTab(index: number): void;
  3046. renderContent(): JSX.Element | null;
  3047. onClose(): void;
  3048. onPopup(): void;
  3049. render(): JSX.Element;
  3050. }
  3051. }
  3052. declare module "babylonjs-inspector/components/sceneExplorer/treeItemLabelComponent" {
  3053. import * as React from "react";
  3054. interface ITreeItemLabelComponentProps {
  3055. label: string;
  3056. onClick?: () => void;
  3057. color: string;
  3058. }
  3059. export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps> {
  3060. constructor(props: ITreeItemLabelComponentProps);
  3061. onClick(): void;
  3062. render(): JSX.Element;
  3063. }
  3064. }
  3065. declare module "babylonjs-inspector/components/sceneExplorer/extensionsComponent" {
  3066. import * as React from "react";
  3067. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3068. interface IExtensionsComponentProps {
  3069. target: any;
  3070. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3071. }
  3072. export class ExtensionsComponent extends React.Component<IExtensionsComponentProps, {
  3073. popupVisible: boolean;
  3074. }> {
  3075. private _popup;
  3076. private extensionRef;
  3077. constructor(props: IExtensionsComponentProps);
  3078. showPopup(): void;
  3079. componentDidMount(): void;
  3080. componentDidUpdate(): void;
  3081. render(): JSX.Element | null;
  3082. }
  3083. }
  3084. declare module "babylonjs-inspector/components/sceneExplorer/entities/meshTreeItemComponent" {
  3085. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3086. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  3087. import * as React from "react";
  3088. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3089. interface IMeshTreeItemComponentProps {
  3090. mesh: AbstractMesh;
  3091. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3092. onClick: () => void;
  3093. globalState: GlobalState;
  3094. }
  3095. export class MeshTreeItemComponent extends React.Component<IMeshTreeItemComponentProps, {
  3096. isBoundingBoxEnabled: boolean;
  3097. isVisible: boolean;
  3098. }> {
  3099. constructor(props: IMeshTreeItemComponentProps);
  3100. showBoundingBox(): void;
  3101. switchVisibility(): void;
  3102. render(): JSX.Element;
  3103. }
  3104. }
  3105. declare module "babylonjs-inspector/components/sceneExplorer/entities/cameraTreeItemComponent" {
  3106. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3107. import { Camera } from "babylonjs/Cameras/camera";
  3108. import * as React from "react";
  3109. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3110. interface ICameraTreeItemComponentProps {
  3111. camera: Camera;
  3112. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3113. onClick: () => void;
  3114. globalState: GlobalState;
  3115. }
  3116. export class CameraTreeItemComponent extends React.Component<ICameraTreeItemComponentProps, {
  3117. isActive: boolean;
  3118. isGizmoEnabled: boolean;
  3119. }> {
  3120. private _onBeforeRenderObserver;
  3121. constructor(props: ICameraTreeItemComponentProps);
  3122. setActive(): void;
  3123. componentDidMount(): void;
  3124. componentWillUnmount(): void;
  3125. toggleGizmo(): void;
  3126. render(): JSX.Element;
  3127. }
  3128. }
  3129. declare module "babylonjs-inspector/components/sceneExplorer/entities/lightTreeItemComponent" {
  3130. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3131. import { Light } from "babylonjs/Lights/light";
  3132. import * as React from "react";
  3133. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3134. interface ILightTreeItemComponentProps {
  3135. light: Light;
  3136. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3137. onClick: () => void;
  3138. globalState: GlobalState;
  3139. }
  3140. export class LightTreeItemComponent extends React.Component<ILightTreeItemComponentProps, {
  3141. isEnabled: boolean;
  3142. isGizmoEnabled: boolean;
  3143. }> {
  3144. constructor(props: ILightTreeItemComponentProps);
  3145. switchIsEnabled(): void;
  3146. toggleGizmo(): void;
  3147. render(): JSX.Element;
  3148. }
  3149. }
  3150. declare module "babylonjs-inspector/components/sceneExplorer/entities/materialTreeItemComponent" {
  3151. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3152. import { Material } from "babylonjs/Materials/material";
  3153. import * as React from 'react';
  3154. import { NodeMaterial } from 'babylonjs/Materials/Node/nodeMaterial';
  3155. interface IMaterialTreeItemComponentProps {
  3156. material: Material | NodeMaterial;
  3157. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3158. onClick: () => void;
  3159. }
  3160. export class MaterialTreeItemComponent extends React.Component<IMaterialTreeItemComponentProps> {
  3161. constructor(props: IMaterialTreeItemComponentProps);
  3162. render(): JSX.Element;
  3163. }
  3164. }
  3165. declare module "babylonjs-inspector/components/sceneExplorer/entities/textureTreeItemComponent" {
  3166. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3167. import { Texture } from "babylonjs/Materials/Textures/texture";
  3168. import * as React from 'react';
  3169. interface ITextureTreeItemComponentProps {
  3170. texture: Texture;
  3171. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3172. onClick: () => void;
  3173. }
  3174. export class TextureTreeItemComponent extends React.Component<ITextureTreeItemComponentProps> {
  3175. constructor(props: ITextureTreeItemComponentProps);
  3176. render(): JSX.Element;
  3177. }
  3178. }
  3179. declare module "babylonjs-inspector/components/sceneExplorer/entities/transformNodeTreeItemComponent" {
  3180. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3181. import { TransformNode } from "babylonjs/Meshes/transformNode";
  3182. import * as React from "react";
  3183. interface ITransformNodeItemComponentProps {
  3184. transformNode: TransformNode;
  3185. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3186. onClick: () => void;
  3187. }
  3188. export class TransformNodeItemComponent extends React.Component<ITransformNodeItemComponentProps> {
  3189. constructor(props: ITransformNodeItemComponentProps);
  3190. render(): JSX.Element;
  3191. }
  3192. }
  3193. declare module "babylonjs-inspector/components/sceneExplorer/entities/gui/controlTreeItemComponent" {
  3194. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3195. import { Control } from "babylonjs-gui/2D/controls/control";
  3196. import * as React from 'react';
  3197. interface IControlTreeItemComponentProps {
  3198. control: Control;
  3199. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3200. onClick: () => void;
  3201. }
  3202. export class ControlTreeItemComponent extends React.Component<IControlTreeItemComponentProps, {
  3203. isActive: boolean;
  3204. isVisible: boolean;
  3205. }> {
  3206. constructor(props: IControlTreeItemComponentProps);
  3207. highlight(): void;
  3208. switchVisibility(): void;
  3209. render(): JSX.Element;
  3210. }
  3211. }
  3212. declare module "babylonjs-inspector/components/sceneExplorer/entities/gui/advancedDynamicTextureTreeItemComponent" {
  3213. import { Observable } from "babylonjs/Misc/observable";
  3214. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3215. import { AdvancedDynamicTexture } from 'babylonjs-gui/2D/advancedDynamicTexture';
  3216. import * as React from 'react';
  3217. interface IAdvancedDynamicTextureTreeItemComponentProps {
  3218. texture: AdvancedDynamicTexture;
  3219. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3220. onSelectionChangedObservable?: Observable<any>;
  3221. onClick: () => void;
  3222. }
  3223. export class AdvancedDynamicTextureTreeItemComponent extends React.Component<IAdvancedDynamicTextureTreeItemComponentProps, {
  3224. isInPickingMode: boolean;
  3225. }> {
  3226. private _onControlPickedObserver;
  3227. constructor(props: IAdvancedDynamicTextureTreeItemComponentProps);
  3228. componentWillUnmount(): void;
  3229. onPickingMode(): void;
  3230. render(): JSX.Element;
  3231. }
  3232. }
  3233. declare module "babylonjs-inspector/components/sceneExplorer/entities/animationGroupTreeItemComponent" {
  3234. import { AnimationGroup } from "babylonjs/Animations/animationGroup";
  3235. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3236. import * as React from "react";
  3237. interface IAnimationGroupItemComponentProps {
  3238. animationGroup: AnimationGroup;
  3239. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3240. onClick: () => void;
  3241. }
  3242. export class AnimationGroupItemComponent extends React.Component<IAnimationGroupItemComponentProps> {
  3243. constructor(props: IAnimationGroupItemComponentProps);
  3244. render(): JSX.Element;
  3245. }
  3246. }
  3247. declare module "babylonjs-inspector/components/sceneExplorer/entities/postProcessTreeItemComponent" {
  3248. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3249. import { PostProcess } from 'babylonjs/PostProcesses/postProcess';
  3250. import * as React from 'react';
  3251. interface IPostProcessItemComponentProps {
  3252. postProcess: PostProcess;
  3253. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3254. onClick: () => void;
  3255. }
  3256. export class PostProcessItemComponent extends React.Component<IPostProcessItemComponentProps> {
  3257. constructor(props: IPostProcessItemComponentProps);
  3258. render(): JSX.Element;
  3259. }
  3260. }
  3261. declare module "babylonjs-inspector/components/sceneExplorer/entities/renderingPipelineTreeItemComponent" {
  3262. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3263. import { PostProcessRenderPipeline } from 'babylonjs/PostProcesses/RenderPipeline/postProcessRenderPipeline';
  3264. import * as React from 'react';
  3265. interface IRenderPipelineItemComponenttProps {
  3266. renderPipeline: PostProcessRenderPipeline;
  3267. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3268. onClick: () => void;
  3269. }
  3270. export class RenderingPipelineItemComponent extends React.Component<IRenderPipelineItemComponenttProps> {
  3271. constructor(props: IRenderPipelineItemComponenttProps);
  3272. render(): JSX.Element;
  3273. }
  3274. }
  3275. declare module "babylonjs-inspector/components/sceneExplorer/entities/skeletonTreeItemComponent" {
  3276. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3277. import * as React from "react";
  3278. import { Skeleton } from 'babylonjs/Bones/skeleton';
  3279. interface ISkeletonTreeItemComponentProps {
  3280. skeleton: Skeleton;
  3281. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3282. onClick: () => void;
  3283. }
  3284. export class SkeletonTreeItemComponent extends React.Component<ISkeletonTreeItemComponentProps> {
  3285. constructor(props: ISkeletonTreeItemComponentProps);
  3286. render(): JSX.Element;
  3287. }
  3288. }
  3289. declare module "babylonjs-inspector/components/sceneExplorer/entities/boneTreeItemComponent" {
  3290. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3291. import * as React from "react";
  3292. import { Bone } from 'babylonjs/Bones/bone';
  3293. interface IBoneTreeItemComponenttProps {
  3294. bone: Bone;
  3295. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3296. onClick: () => void;
  3297. }
  3298. export class BoneTreeItemComponent extends React.Component<IBoneTreeItemComponenttProps> {
  3299. constructor(props: IBoneTreeItemComponenttProps);
  3300. render(): JSX.Element;
  3301. }
  3302. }
  3303. declare module "babylonjs-inspector/components/sceneExplorer/entities/particleSystemTreeItemComponent" {
  3304. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3305. import * as React from 'react';
  3306. import { IParticleSystem } from 'babylonjs/Particles/IParticleSystem';
  3307. interface IParticleSystemTreeItemComponentProps {
  3308. system: IParticleSystem;
  3309. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3310. onClick: () => void;
  3311. }
  3312. export class ParticleSystemTreeItemComponent extends React.Component<IParticleSystemTreeItemComponentProps> {
  3313. constructor(props: IParticleSystemTreeItemComponentProps);
  3314. render(): JSX.Element;
  3315. }
  3316. }
  3317. declare module "babylonjs-inspector/components/sceneExplorer/entities/spriteManagerTreeItemComponent" {
  3318. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3319. import * as React from 'react';
  3320. import { SpriteManager } from 'babylonjs/Sprites/spriteManager';
  3321. interface ISpriteManagerTreeItemComponentProps {
  3322. spriteManager: SpriteManager;
  3323. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3324. onClick: () => void;
  3325. }
  3326. export class SpriteManagerTreeItemComponent extends React.Component<ISpriteManagerTreeItemComponentProps> {
  3327. constructor(props: ISpriteManagerTreeItemComponentProps);
  3328. render(): JSX.Element;
  3329. }
  3330. }
  3331. declare module "babylonjs-inspector/components/sceneExplorer/entities/spriteTreeItemComponent" {
  3332. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3333. import * as React from 'react';
  3334. import { Sprite } from 'babylonjs/Sprites/sprite';
  3335. interface ISpriteTreeItemComponentProps {
  3336. sprite: Sprite;
  3337. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3338. onClick: () => void;
  3339. }
  3340. export class SpriteTreeItemComponent extends React.Component<ISpriteTreeItemComponentProps> {
  3341. constructor(props: ISpriteTreeItemComponentProps);
  3342. render(): JSX.Element;
  3343. }
  3344. }
  3345. declare module "babylonjs-inspector/components/sceneExplorer/entities/targetedAnimationTreeItemComponent" {
  3346. import { TargetedAnimation } from "babylonjs/Animations/animationGroup";
  3347. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3348. import * as React from "react";
  3349. interface ITargetedAnimationItemComponentProps {
  3350. targetedAnimation: TargetedAnimation;
  3351. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3352. onClick: () => void;
  3353. }
  3354. export class TargetedAnimationItemComponent extends React.Component<ITargetedAnimationItemComponentProps> {
  3355. constructor(props: ITargetedAnimationItemComponentProps);
  3356. render(): JSX.Element;
  3357. }
  3358. }
  3359. declare module "babylonjs-inspector/components/sceneExplorer/entities/soundTreeItemComponent" {
  3360. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3361. import * as React from "react";
  3362. import { Sound } from 'babylonjs/Audio/sound';
  3363. interface ISoundTreeItemComponentProps {
  3364. sound: Sound;
  3365. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3366. onClick: () => void;
  3367. }
  3368. export class SoundTreeItemComponent extends React.Component<ISoundTreeItemComponentProps> {
  3369. constructor(props: ISoundTreeItemComponentProps);
  3370. render(): JSX.Element;
  3371. }
  3372. }
  3373. declare module "babylonjs-inspector/components/sceneExplorer/treeItemSpecializedComponent" {
  3374. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3375. import * as React from "react";
  3376. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3377. interface ITreeItemSpecializedComponentProps {
  3378. label: string;
  3379. entity?: any;
  3380. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3381. globalState: GlobalState;
  3382. onClick?: () => void;
  3383. }
  3384. export class TreeItemSpecializedComponent extends React.Component<ITreeItemSpecializedComponentProps> {
  3385. constructor(props: ITreeItemSpecializedComponentProps);
  3386. onClick(): void;
  3387. render(): JSX.Element;
  3388. }
  3389. }
  3390. declare module "babylonjs-inspector/tools" {
  3391. export class Tools {
  3392. static LookForItem(item: any, selectedEntity: any): boolean;
  3393. private static _RecursiveRemoveHiddenMeshesAndHoistChildren;
  3394. static SortAndFilter(parent: any, items: any[]): any[];
  3395. }
  3396. }
  3397. declare module "babylonjs-inspector/components/sceneExplorer/treeItemSelectableComponent" {
  3398. import { Nullable } from "babylonjs/types";
  3399. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3400. import * as React from "react";
  3401. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3402. export interface ITreeItemSelectableComponentProps {
  3403. entity: any;
  3404. selectedEntity?: any;
  3405. mustExpand?: boolean;
  3406. offset: number;
  3407. globalState: GlobalState;
  3408. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3409. filter: Nullable<string>;
  3410. }
  3411. export class TreeItemSelectableComponent extends React.Component<ITreeItemSelectableComponentProps, {
  3412. isExpanded: boolean;
  3413. isSelected: boolean;
  3414. }> {
  3415. private _wasSelected;
  3416. constructor(props: ITreeItemSelectableComponentProps);
  3417. switchExpandedState(): void;
  3418. shouldComponentUpdate(nextProps: ITreeItemSelectableComponentProps, nextState: {
  3419. isExpanded: boolean;
  3420. isSelected: boolean;
  3421. }): boolean;
  3422. scrollIntoView(): void;
  3423. componentDidMount(): void;
  3424. componentDidUpdate(): void;
  3425. onSelect(): void;
  3426. renderChildren(): JSX.Element[] | null;
  3427. render(): JSX.Element | null;
  3428. }
  3429. }
  3430. declare module "babylonjs-inspector/components/sceneExplorer/treeItemComponent" {
  3431. import * as React from "react";
  3432. import { Nullable } from "babylonjs/types";
  3433. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3434. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3435. export interface ITreeItemComponentProps {
  3436. items?: Nullable<any[]>;
  3437. label: string;
  3438. offset: number;
  3439. filter: Nullable<string>;
  3440. forceSubitems?: boolean;
  3441. globalState: GlobalState;
  3442. entity?: any;
  3443. selectedEntity: any;
  3444. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3445. contextMenuItems?: {
  3446. label: string;
  3447. action: () => void;
  3448. }[];
  3449. }
  3450. export class TreeItemComponent extends React.Component<ITreeItemComponentProps, {
  3451. isExpanded: boolean;
  3452. mustExpand: boolean;
  3453. }> {
  3454. static _ContextMenuUniqueIdGenerator: number;
  3455. constructor(props: ITreeItemComponentProps);
  3456. switchExpandedState(): void;
  3457. shouldComponentUpdate(nextProps: ITreeItemComponentProps, nextState: {
  3458. isExpanded: boolean;
  3459. }): boolean;
  3460. expandAll(expand: boolean): void;
  3461. renderContextMenu(): JSX.Element | null;
  3462. render(): JSX.Element;
  3463. }
  3464. }
  3465. declare module "babylonjs-inspector/components/sceneExplorer/entities/sceneTreeItemComponent" {
  3466. import { Observable } from "babylonjs/Misc/observable";
  3467. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3468. import { Scene } from "babylonjs/scene";
  3469. import * as React from "react";
  3470. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3471. interface ISceneTreeItemComponentProps {
  3472. scene: Scene;
  3473. onRefresh: () => void;
  3474. selectedEntity?: any;
  3475. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3476. onSelectionChangedObservable?: Observable<any>;
  3477. globalState: GlobalState;
  3478. }
  3479. export class SceneTreeItemComponent extends React.Component<ISceneTreeItemComponentProps, {
  3480. isSelected: boolean;
  3481. isInPickingMode: boolean;
  3482. gizmoMode: number;
  3483. }> {
  3484. private _gizmoLayerOnPointerObserver;
  3485. private _onPointerObserver;
  3486. private _onSelectionChangeObserver;
  3487. private _selectedEntity;
  3488. private _posDragEnd;
  3489. private _scaleDragEnd;
  3490. private _rotateDragEnd;
  3491. constructor(props: ISceneTreeItemComponentProps);
  3492. shouldComponentUpdate(nextProps: ISceneTreeItemComponentProps, nextState: {
  3493. isSelected: boolean;
  3494. isInPickingMode: boolean;
  3495. }): boolean;
  3496. componentDidMount(): void;
  3497. componentWillUnmount(): void;
  3498. onSelect(): void;
  3499. onPickingMode(): void;
  3500. setGizmoMode(mode: number): void;
  3501. render(): JSX.Element;
  3502. }
  3503. }
  3504. declare module "babylonjs-inspector/components/sceneExplorer/sceneExplorerComponent" {
  3505. import * as React from "react";
  3506. import { Nullable } from "babylonjs/types";
  3507. import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer";
  3508. import { Scene } from "babylonjs/scene";
  3509. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3510. interface ISceneExplorerFilterComponentProps {
  3511. onFilter: (filter: string) => void;
  3512. }
  3513. export class SceneExplorerFilterComponent extends React.Component<ISceneExplorerFilterComponentProps> {
  3514. constructor(props: ISceneExplorerFilterComponentProps);
  3515. render(): JSX.Element;
  3516. }
  3517. interface ISceneExplorerComponentProps {
  3518. scene: Scene;
  3519. noCommands?: boolean;
  3520. noHeader?: boolean;
  3521. noExpand?: boolean;
  3522. noClose?: boolean;
  3523. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3524. globalState: GlobalState;
  3525. popupMode?: boolean;
  3526. onPopup?: () => void;
  3527. onClose?: () => void;
  3528. }
  3529. export class SceneExplorerComponent extends React.Component<ISceneExplorerComponentProps, {
  3530. filter: Nullable<string>;
  3531. selectedEntity: any;
  3532. scene: Scene;
  3533. }> {
  3534. private _onSelectionChangeObserver;
  3535. private _onSelectionRenamedObserver;
  3536. private _onNewSceneAddedObserver;
  3537. private _onNewSceneObserver;
  3538. private sceneExplorerRef;
  3539. private _once;
  3540. private _hooked;
  3541. private sceneMutationFunc;
  3542. constructor(props: ISceneExplorerComponentProps);
  3543. processMutation(): void;
  3544. componentDidMount(): void;
  3545. componentWillUnmount(): void;
  3546. filterContent(filter: string): void;
  3547. findSiblings(parent: any, items: any[], target: any, goNext: boolean, data: {
  3548. previousOne?: any;
  3549. found?: boolean;
  3550. }): boolean;
  3551. processKeys(keyEvent: React.KeyboardEvent<HTMLDivElement>): void;
  3552. renderContent(): JSX.Element | null;
  3553. onClose(): void;
  3554. onPopup(): void;
  3555. render(): JSX.Element;
  3556. }
  3557. }
  3558. declare module "babylonjs-inspector/components/embedHost/embedHostComponent" {
  3559. import * as React from "react";
  3560. import { Scene } from "babylonjs/scene";
  3561. import { GlobalState } from "babylonjs-inspector/components/globalState";
  3562. import { IExplorerExtensibilityGroup, DebugLayerTab } from 'babylonjs/Debug/debugLayer';
  3563. interface IEmbedHostComponentProps {
  3564. scene: Scene;
  3565. globalState: GlobalState;
  3566. popupMode: boolean;
  3567. noClose?: boolean;
  3568. noExpand?: boolean;
  3569. onClose: () => void;
  3570. onPopup: () => void;
  3571. extensibilityGroups?: IExplorerExtensibilityGroup[];
  3572. initialTab?: DebugLayerTab;
  3573. }
  3574. export class EmbedHostComponent extends React.Component<IEmbedHostComponentProps> {
  3575. private _once;
  3576. private splitRef;
  3577. private topPartRef;
  3578. private bottomPartRef;
  3579. constructor(props: IEmbedHostComponentProps);
  3580. componentDidMount(): void;
  3581. renderContent(): JSX.Element;
  3582. render(): JSX.Element;
  3583. }
  3584. }
  3585. declare module "babylonjs-inspector/inspector" {
  3586. import { IInspectorOptions } from "babylonjs/Debug/debugLayer";
  3587. import { Observable } from "babylonjs/Misc/observable";
  3588. import { Scene } from "babylonjs/scene";
  3589. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  3590. export class Inspector {
  3591. private static _SceneExplorerHost;
  3592. private static _ActionTabsHost;
  3593. private static _EmbedHost;
  3594. private static _NewCanvasContainer;
  3595. private static _SceneExplorerWindow;
  3596. private static _ActionTabsWindow;
  3597. private static _EmbedHostWindow;
  3598. private static _Scene;
  3599. private static _OpenedPane;
  3600. private static _OnBeforeRenderObserver;
  3601. static OnSelectionChangeObservable: Observable<any>;
  3602. static OnPropertyChangedObservable: Observable<PropertyChangedEvent>;
  3603. private static _GlobalState;
  3604. static MarkLineContainerTitleForHighlighting(title: string): void;
  3605. static MarkMultipleLineContainerTitlesForHighlighting(titles: string[]): void;
  3606. private static _CopyStyles;
  3607. private static _CreateSceneExplorer;
  3608. private static _CreateActionTabs;
  3609. private static _CreateEmbedHost;
  3610. static _CreatePopup(title: string, windowVariableName: string, width?: number, height?: number, lateBinding?: boolean): HTMLDivElement | null;
  3611. static get IsVisible(): boolean;
  3612. static EarlyAttachToLoader(): void;
  3613. static Show(scene: Scene, userOptions: Partial<IInspectorOptions>): void;
  3614. static _SetNewScene(scene: Scene): void;
  3615. static _CreateCanvasContainer(parentControl: HTMLElement): void;
  3616. private static _DestroyCanvasContainer;
  3617. private static _Cleanup;
  3618. private static _RemoveElementFromDOM;
  3619. static Hide(): void;
  3620. }
  3621. }
  3622. declare module "babylonjs-inspector/index" {
  3623. export * from "babylonjs-inspector/inspector";
  3624. }
  3625. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/addAnimation" {
  3626. import * as React from "react";
  3627. import { Observable } from "babylonjs/Misc/observable";
  3628. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  3629. import { Animation } from "babylonjs/Animations/animation";
  3630. import { IAnimatable } from "babylonjs/Animations/animatable.interface";
  3631. interface IAddAnimationProps {
  3632. isOpen: boolean;
  3633. close: () => void;
  3634. entity: IAnimatable;
  3635. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  3636. setNotificationMessage: (message: string) => void;
  3637. finishedUpdate: () => void;
  3638. addedNewAnimation: (animation: Animation) => void;
  3639. fps: number;
  3640. selectedToUpdate?: Animation | undefined;
  3641. }
  3642. /**
  3643. * Controls the creation of a new animation.
  3644. * @property {boolean} isOpen controls if the add animation pannel is open or closed in the editor controls;
  3645. * @property {()=>void} close sends the message to close this panel setting isOpen to false;
  3646. * @property {IAnimatable} entity is the animation object to add the animation to;
  3647. * @property {Observable<PropertyChangedEvent>} onPropertyChangedObservable is the registered observable
  3648. * @property {(message: string) => void} setNotificationMessage sends the message string to display errors on the message box
  3649. * @property {() => void} finishedUpdate tells the parent component the update on the animation collection has completed
  3650. * @property { (animation: Animation) => void} addedNewAnimation sends the animation to the editor to process how its is rendered
  3651. * @property {number} fps Frames per second of the animation.
  3652. * @property {Animation | undefined} selectedToUpdate the selected animation so we can update the renderer curve.
  3653. */
  3654. export class AddAnimation extends React.Component<IAddAnimationProps, {
  3655. animationName: string;
  3656. animationTargetProperty: string;
  3657. animationType: number;
  3658. loopMode: number;
  3659. animationTargetPath: string;
  3660. isUpdating: boolean;
  3661. }> {
  3662. constructor(props: IAddAnimationProps);
  3663. setInitialState(editingAnimation?: Animation): {
  3664. animationName: string;
  3665. animationTargetPath: string;
  3666. animationType: number;
  3667. loopMode: number;
  3668. animationTargetProperty: string;
  3669. isUpdating: boolean;
  3670. };
  3671. /**
  3672. * We decide wether the animation will be added or edited
  3673. * @param prevProps Previous props.
  3674. * @param prevState Previous state.
  3675. */
  3676. componentDidUpdate(prevProps: IAddAnimationProps, prevState: any): void;
  3677. /**
  3678. * Updates the animation with the correct properties
  3679. * Updates its name, loopmode and targetProperty.
  3680. * This allows the edition of the animation in the curve editor.
  3681. * We can only update these props for the animation.
  3682. * Keyframes of course are updated on the curve editor.
  3683. */
  3684. updateAnimation: () => void;
  3685. /**
  3686. * Returns the animation type as string
  3687. * @param type Type of animation so we return a string.
  3688. */
  3689. getTypeAsString(type: number): "Size" | "Color4" | "Vector3" | "Float" | "Quaternion" | "Vector2" | "Color3";
  3690. /**
  3691. * Process the creation of a new animation.
  3692. * We verify is the property to animate is present on the object
  3693. * We verify if the property derives from a correct class *type of animation to add an animation
  3694. * At the end we create an empty animation named animation.
  3695. * The animation keys array is set to empty so we can add keyframes in the editor.
  3696. * We return the animation to the curve editor and update the entity animation collection
  3697. */
  3698. addAnimation: () => void;
  3699. raiseOnPropertyChanged(newValue: Animation[], previousValue: Animation[]): void;
  3700. raiseOnPropertyUpdated(newValue: string | number | undefined, previousValue: string | number, property: string): void;
  3701. handlePathChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  3702. handleNameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  3703. handleTypeChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
  3704. handlePropertyChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  3705. handleLoopModeChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
  3706. render(): JSX.Element;
  3707. }
  3708. }
  3709. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/anchorSvgPoint" {
  3710. import * as React from "react";
  3711. import { Vector2 } from "babylonjs/Maths/math.vector";
  3712. interface IAnchorSvgPointProps {
  3713. control: Vector2;
  3714. anchor: Vector2;
  3715. active: boolean;
  3716. type: string;
  3717. index: string;
  3718. selected: boolean;
  3719. selectControlPoint: (id: string) => void;
  3720. framesInCanvasView: {
  3721. from: number;
  3722. to: number;
  3723. };
  3724. }
  3725. /**
  3726. * Renders the control point to a keyframe.
  3727. * Each keyframe has left and right control points to control de tangent of the curve
  3728. * This controls the inTangent and outTangent values for the keyframe in the animation.
  3729. * @property {Vector2} control is the control point to control de curve tangent
  3730. * @property {Vector2} anchor represents the Keyframe point which acts origin point.
  3731. * @property {boolen} active tells the component if the control point is currently active
  3732. * @property {string} type (left/right) if the control will be the left or right control point
  3733. * @property {boolean} selected if the control point is currently selected. If selected we can move the control point and will become active
  3734. * @property {(id: string) => void;} selectControlPoint sends the id of the control point to the parent component to tell if it is selected
  3735. * @property {{ from: number; to: number }} framesInCanvasView controls from/to which keyframe should the control point can expand and control de curve
  3736. * The frames in canvas tells us how many frames are currently visible in the canvas and therefore control the width of the line between the control and anchor point
  3737. */
  3738. export class AnchorSvgPoint extends React.Component<IAnchorSvgPointProps, {
  3739. visiblePoint: Vector2;
  3740. }> {
  3741. constructor(props: IAnchorSvgPointProps);
  3742. componentDidUpdate(prevProps: IAnchorSvgPointProps, prevState: any): void;
  3743. select: () => void;
  3744. /**
  3745. * Controls where should we render the visible point (representing the control point)
  3746. * The visible control point differs from the control point for UX reasons. The control point
  3747. * expands beyond the visible canvas.
  3748. */
  3749. setVisiblePoint(): Vector2;
  3750. render(): JSX.Element;
  3751. }
  3752. }
  3753. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/keyframeSvgPoint" {
  3754. import * as React from "react";
  3755. import { Vector2 } from "babylonjs/Maths/math.vector";
  3756. export interface IKeyframeSvgPoint {
  3757. keyframePoint: Vector2;
  3758. rightControlPoint: Vector2 | null;
  3759. leftControlPoint: Vector2 | null;
  3760. id: string;
  3761. selected: boolean;
  3762. isLeftActive: boolean;
  3763. isRightActive: boolean;
  3764. curveId?: ICurveMetaData;
  3765. }
  3766. export interface ICurveMetaData {
  3767. id: number;
  3768. animationName: string;
  3769. property: string;
  3770. }
  3771. interface IKeyframeSvgPointProps {
  3772. keyframePoint: Vector2;
  3773. leftControlPoint: Vector2 | null;
  3774. rightControlPoint: Vector2 | null;
  3775. id: string;
  3776. selected: boolean;
  3777. selectKeyframe: (id: string, multiselect: boolean) => void;
  3778. selectedControlPoint: (type: string, id: string) => void;
  3779. isLeftActive: boolean;
  3780. isRightActive: boolean;
  3781. framesInCanvasView: {
  3782. from: number;
  3783. to: number;
  3784. };
  3785. }
  3786. /**
  3787. * Renders the Keyframe as an SVG Element for the Canvas component.
  3788. * Holds the two control points to generate the proper curve.
  3789. */
  3790. export class KeyframeSvgPoint extends React.Component<IKeyframeSvgPointProps> {
  3791. constructor(props: IKeyframeSvgPointProps);
  3792. /**
  3793. * Select a keyframe. If the control key is pressed, multiselect keyframes
  3794. * @param e Mouse event
  3795. */
  3796. select: (e: React.MouseEvent<SVGImageElement>) => void;
  3797. /**
  3798. * Send the ID of the selected keyframe
  3799. * @param type Type of selected keyframe
  3800. */
  3801. selectedControlPointId: (type: string) => void;
  3802. render(): JSX.Element;
  3803. }
  3804. }
  3805. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/svgDraggableArea" {
  3806. import * as React from "react";
  3807. import { Vector2 } from "babylonjs/Maths/math.vector";
  3808. import { IKeyframeSvgPoint } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/keyframeSvgPoint";
  3809. interface ISvgDraggableAreaProps {
  3810. keyframeSvgPoints: IKeyframeSvgPoint[];
  3811. updatePosition: (updatedKeyframe: IKeyframeSvgPoint, id: string) => void;
  3812. scale: number;
  3813. viewBoxScale: number;
  3814. deselectKeyframes: () => void;
  3815. removeSelectedKeyframes: (points: IKeyframeSvgPoint[]) => void;
  3816. panningY: (panningY: number) => void;
  3817. panningX: (panningX: number) => void;
  3818. setCurrentFrame: (direction: number) => void;
  3819. positionCanvas?: Vector2;
  3820. repositionCanvas?: boolean;
  3821. canvasPositionEnded: () => void;
  3822. resetActionableKeyframe: () => void;
  3823. framesInCanvasView: {
  3824. from: number;
  3825. to: number;
  3826. };
  3827. framesResized: number;
  3828. }
  3829. /**
  3830. * The SvgDraggableArea is a wrapper for SVG Canvas the interaction
  3831. *
  3832. * Here we control the drag and key behavior for the SVG components.
  3833. */
  3834. export class SvgDraggableArea extends React.Component<ISvgDraggableAreaProps, {
  3835. panX: number;
  3836. panY: number;
  3837. }> {
  3838. private _active;
  3839. private _isCurrentPointControl;
  3840. private _currentPointId;
  3841. private _draggableArea;
  3842. private _panStart;
  3843. private _panStop;
  3844. private _playheadDrag;
  3845. private _playheadSelected;
  3846. private _movedX;
  3847. private _movedY;
  3848. private _isControlKeyPress;
  3849. readonly _dragBuffer: number;
  3850. readonly _draggingMultiplier: number;
  3851. constructor(props: ISvgDraggableAreaProps);
  3852. /**
  3853. * Listen to key events to be able to drag and set the correct canvas client width
  3854. */
  3855. componentDidMount(): void;
  3856. /**
  3857. * Makes sure the canvas has resposition correctly
  3858. * @param prevProps previous props
  3859. */
  3860. componentDidUpdate(prevProps: ISvgDraggableAreaProps): void;
  3861. /**
  3862. * Identify the type of target of the mouse event
  3863. * @param e SVG Mouse Event
  3864. */
  3865. dragStart: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  3866. /**
  3867. * Handle dragging
  3868. * @param e SVG Mouse Event
  3869. */
  3870. drag: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  3871. /**
  3872. * Resets the dragging state
  3873. * @param e Drag event
  3874. */
  3875. dragEnd: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  3876. /**
  3877. * Gets the current position of the mouse in a SVG Canvas
  3878. * @param e Mouse event
  3879. */
  3880. getMousePosition: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => Vector2 | undefined;
  3881. /**
  3882. * Handles the canvas panning direction and sets the X and Y values to move the
  3883. * SVG canvas
  3884. */
  3885. panDirection(): void;
  3886. /**
  3887. * Allows dragging
  3888. * @param e Keyboard event
  3889. */
  3890. keyDown(e: KeyboardEvent): void;
  3891. /**
  3892. * Allows multiple selection
  3893. * @param e Keyboard event
  3894. */
  3895. keyUp(e: KeyboardEvent): void;
  3896. /**
  3897. * Focus on the SVG canvas
  3898. * @param e Mouse event
  3899. */
  3900. focus: (e: React.MouseEvent<SVGSVGElement>) => void;
  3901. /**
  3902. * Is the control point active or not
  3903. */
  3904. isNotControlPointActive(): boolean;
  3905. render(): JSX.Element;
  3906. }
  3907. }
  3908. declare module "babylonjs-inspector/sharedUiComponents/lines/iconButtonLineComponent" {
  3909. import * as React from 'react';
  3910. export interface IIconButtonLineComponentProps {
  3911. icon: string;
  3912. onClick: () => void;
  3913. tooltip: string;
  3914. active?: boolean;
  3915. }
  3916. export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
  3917. constructor(props: IIconButtonLineComponentProps);
  3918. render(): JSX.Element;
  3919. }
  3920. }
  3921. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/controls" {
  3922. import * as React from "react";
  3923. import { IAnimationKey } from "babylonjs/Animations/animationKey";
  3924. interface IControlsProps {
  3925. keyframes: IAnimationKey[] | null;
  3926. selected: IAnimationKey | null;
  3927. currentFrame: number;
  3928. onCurrentFrameChange: (frame: number) => void;
  3929. repositionCanvas: (keyframe: IAnimationKey) => void;
  3930. playPause: (direction: number) => void;
  3931. isPlaying: boolean;
  3932. scrollable: React.RefObject<HTMLDivElement>;
  3933. }
  3934. /**
  3935. * The playback controls for the animation editor
  3936. */
  3937. export class Controls extends React.Component<IControlsProps, {
  3938. selected: IAnimationKey;
  3939. playingType: string;
  3940. }> {
  3941. readonly _sizeOfKeyframe: number;
  3942. constructor(props: IControlsProps);
  3943. playBackwards: () => void;
  3944. play: () => void;
  3945. pause: () => void;
  3946. /**
  3947. * Set animation to initial keyframe
  3948. */
  3949. moveToAnimationStart: () => void;
  3950. /**
  3951. * Set animation to the last keyframe
  3952. */
  3953. moveToAnimationEnd: () => void;
  3954. /** Move to next keyframe */
  3955. nextKeyframe: () => void;
  3956. /** Move to previous keyframe */
  3957. previousKeyframe: () => void;
  3958. render(): JSX.Element;
  3959. }
  3960. }
  3961. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/timeline" {
  3962. import * as React from "react";
  3963. import { IAnimationKey } from "babylonjs/Animations/animationKey";
  3964. interface ITimelineProps {
  3965. keyframes: IAnimationKey[] | null;
  3966. selected: IAnimationKey | null;
  3967. currentFrame: number;
  3968. onCurrentFrameChange: (frame: number) => void;
  3969. onAnimationLimitChange: (limit: number) => void;
  3970. dragKeyframe: (frame: number, index: number) => void;
  3971. playPause: (direction: number) => void;
  3972. isPlaying: boolean;
  3973. animationLimit: number;
  3974. fps: number;
  3975. repositionCanvas: (keyframe: IAnimationKey) => void;
  3976. resizeWindowProportion: number;
  3977. }
  3978. interface ITimelineState {
  3979. selected: IAnimationKey;
  3980. activeKeyframe: number | null;
  3981. start: number;
  3982. end: number;
  3983. scrollWidth: number | undefined;
  3984. selectionLength: number[];
  3985. limitValue: number;
  3986. }
  3987. /**
  3988. * The Timeline for the curve editor
  3989. *
  3990. * Has a scrollbar that can be resized and move to left and right.
  3991. * The timeline does not affect the Canvas but only the frame container.
  3992. */
  3993. export class Timeline extends React.Component<ITimelineProps, ITimelineState> {
  3994. private _scrollable;
  3995. private _scrollbarHandle;
  3996. private _scrollContainer;
  3997. private _inputAnimationLimit;
  3998. private _direction;
  3999. private _scrolling;
  4000. private _shiftX;
  4001. private _active;
  4002. readonly _marginScrollbar: number;
  4003. constructor(props: ITimelineProps);
  4004. /** Listen to keyup events and set the initial lenght of the scrollbar */
  4005. componentDidMount(): void;
  4006. /** Recalculate the scrollwidth if a window resize happens */
  4007. componentDidUpdate(prevProps: ITimelineProps): void;
  4008. /** Remove key event listener */
  4009. componentWillUnmount(): void;
  4010. /**
  4011. * Set component state if enter key is pressed
  4012. * @param event enter key event
  4013. */
  4014. isEnterKeyUp(event: KeyboardEvent): void;
  4015. /**
  4016. * Detect blur event
  4017. * @param event Blur event
  4018. */
  4019. onInputBlur(event: React.FocusEvent<HTMLInputElement>): void;
  4020. /** Set component state (scrollbar width, position, and start and end) */
  4021. setControlState(): void;
  4022. /**
  4023. * Set scrollwidth on the timeline
  4024. * @param {number} start Frame from which the scrollbar should begin.
  4025. * @param {number} end Last frame for the timeline.
  4026. */
  4027. calculateScrollWidth(start: number, end: number): number | undefined;
  4028. /**
  4029. * Play animation backwards
  4030. * @param event Mouse event
  4031. */
  4032. playBackwards(event: React.MouseEvent<HTMLDivElement>): void;
  4033. /**
  4034. * Play animation
  4035. * @param event Mouse event
  4036. */
  4037. play(event: React.MouseEvent<HTMLDivElement>): void;
  4038. /**
  4039. * Pause the animation
  4040. * @param event Mouse event
  4041. */
  4042. pause(event: React.MouseEvent<HTMLDivElement>): void;
  4043. /**
  4044. * Set the selected frame
  4045. * @param event Mouse event
  4046. */
  4047. setCurrentFrame: (event: React.MouseEvent<HTMLDivElement>) => void;
  4048. /**
  4049. * Handles the change of number of frames available in the timeline.
  4050. */
  4051. handleLimitChange(event: React.ChangeEvent<HTMLInputElement>): void;
  4052. /**
  4053. * Starts the scrollbar dragging
  4054. * @param e Mouse event on SVG Element
  4055. */
  4056. dragStart: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  4057. /**
  4058. * Update the canvas visible frames while dragging
  4059. * @param e Mouse event
  4060. */
  4061. drag: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  4062. /**
  4063. * Check if the frame is being used as a Keyframe by the animation
  4064. * @param frame number of frame
  4065. * @param direction frame increment or decrement
  4066. */
  4067. isFrameBeingUsed(frame: number, direction: number): number | false;
  4068. /**
  4069. * Reset drag state
  4070. * @param e Mouse event on SVG Element
  4071. */
  4072. dragEnd: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  4073. /**
  4074. * Change position of the scrollbar
  4075. * @param e Mouse event
  4076. */
  4077. scrollDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
  4078. /**
  4079. * Change size of scrollbar
  4080. * @param e Mouse event
  4081. */
  4082. scrollDrag: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
  4083. /**
  4084. * Reset scroll drag
  4085. * @param e Mouse event
  4086. */
  4087. scrollDragEnd: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
  4088. /**
  4089. * Sets the start, end and selection length of the scrollbar. This will control the width and
  4090. * height of the scrollbar as well as the number of frames available
  4091. * @param {number} pageX Controls the X axis of the scrollbar movement.
  4092. */
  4093. moveScrollbar(pageX: number): void;
  4094. /**
  4095. * Controls the resizing of the scrollbar from the right handle
  4096. * @param {number} clientX how much mouse has moved
  4097. */
  4098. resizeScrollbarRight(clientX: number): void;
  4099. /**
  4100. * Controls the resizing of the scrollbar from the left handle
  4101. * @param {number} clientX how much mouse has moved
  4102. */
  4103. resizeScrollbarLeft(clientX: number): void;
  4104. /**
  4105. * Returns array with the expected length between two numbers
  4106. * @param start initial visible frame
  4107. * @param stop last visible frame
  4108. */
  4109. range(start: number, end: number): number[];
  4110. /**
  4111. * Get the animation keyframe
  4112. * @param frame Frame
  4113. */
  4114. getKeyframe(frame: number): false | IAnimationKey | undefined;
  4115. /**
  4116. * Get the current animation keyframe
  4117. * @param frame Frame
  4118. */
  4119. getCurrentFrame(frame: number): boolean;
  4120. dragDomFalse: () => boolean;
  4121. render(): JSX.Element;
  4122. }
  4123. }
  4124. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/notification" {
  4125. import * as React from "react";
  4126. interface IPlayheadProps {
  4127. message: string;
  4128. open: boolean;
  4129. close: () => void;
  4130. }
  4131. /**
  4132. * Renders the notification for the user
  4133. */
  4134. export class Notification extends React.Component<IPlayheadProps> {
  4135. constructor(props: IPlayheadProps);
  4136. render(): JSX.Element;
  4137. }
  4138. }
  4139. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/graphActionsBar" {
  4140. import * as React from "react";
  4141. import { IActionableKeyFrame } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationCurveEditorComponent";
  4142. interface IGraphActionsBarProps {
  4143. addKeyframe: () => void;
  4144. removeKeyframe: () => void;
  4145. frameSelectedKeyframes: () => void;
  4146. handleValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  4147. handleFrameChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  4148. flatTangent: () => void;
  4149. brokeTangents: () => void;
  4150. setLerpToActiveControlPoint: () => void;
  4151. brokenMode: boolean;
  4152. lerpMode: boolean;
  4153. actionableKeyframe: IActionableKeyFrame;
  4154. title: string;
  4155. enabled: boolean;
  4156. setKeyframeValue: (actionableKeyframe: IActionableKeyFrame) => void;
  4157. frameRange: {
  4158. min: number | undefined;
  4159. max: number | undefined;
  4160. };
  4161. }
  4162. /**
  4163. * Has the buttons and actions for the Canvas Graph.
  4164. * Handles input change and actions (flat, broken mode, set linear control points)
  4165. */
  4166. export class GraphActionsBar extends React.Component<IGraphActionsBarProps, {
  4167. frame: string;
  4168. value: string;
  4169. min: number | undefined;
  4170. max: number | undefined;
  4171. }> {
  4172. private _frameInput;
  4173. private _valueInput;
  4174. constructor(props: IGraphActionsBarProps);
  4175. /**
  4176. * Listen to keyup changes to handle if the input event has ended or change
  4177. */
  4178. componentDidMount(): void;
  4179. /**
  4180. * Set the changing state of frame, value and range of the actionablekeyframe
  4181. * @param prevProps previous props
  4182. * @param prevState previous state
  4183. */
  4184. componentDidUpdate(prevProps: IGraphActionsBarProps, prevState: any): void;
  4185. /**
  4186. * Returns the frame and value for the keyframe
  4187. * @param keyframe The keyframe to update
  4188. */
  4189. selectedKeyframeChanged(keyframe: IActionableKeyFrame): {
  4190. frame: string;
  4191. value: string;
  4192. };
  4193. /**
  4194. * Remove listeners
  4195. */
  4196. componentWillUnmount(): void;
  4197. /**
  4198. * Trigger the change on the keyframe
  4199. * @param event Enter keyevent
  4200. */
  4201. isEnterKeyUp(event: KeyboardEvent): void;
  4202. /**
  4203. * Trigger the chnage on the keyframe on blur
  4204. * @param event Focus event
  4205. */
  4206. onBlur: (event: React.FocusEvent<HTMLInputElement>) => void;
  4207. /**
  4208. * Gets the keyframe frame
  4209. */
  4210. getFrame(): string | number;
  4211. /**
  4212. * Gets the keyframe value
  4213. */
  4214. getValue(): string | number;
  4215. /**
  4216. * Set keyframe value state
  4217. * @param e Input event
  4218. */
  4219. handleValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  4220. /**
  4221. * Set the keyframe frame state
  4222. * @param e Input event
  4223. */
  4224. handleFrameChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  4225. render(): JSX.Element;
  4226. }
  4227. }
  4228. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationListTree" {
  4229. import * as React from "react";
  4230. import { IAnimatable } from "babylonjs/Animations/animatable.interface";
  4231. import { TargetedAnimation } from "babylonjs/Animations/animationGroup";
  4232. import { Observable } from "babylonjs/Misc/observable";
  4233. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  4234. import { Animation } from "babylonjs/Animations/animation";
  4235. import { Nullable } from "babylonjs/types";
  4236. interface IAnimationListTreeProps {
  4237. isTargetedAnimation: boolean;
  4238. entity: IAnimatable | TargetedAnimation;
  4239. selected: Animation | null;
  4240. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  4241. selectAnimation: (selected: Animation, coordinate?: SelectedCoordinate) => void;
  4242. empty: () => void;
  4243. editAnimation: (selected: Animation) => void;
  4244. deselectAnimation: () => void;
  4245. }
  4246. interface Item {
  4247. index: number;
  4248. name: string;
  4249. property: string;
  4250. selected: boolean;
  4251. open: boolean;
  4252. }
  4253. export enum SelectedCoordinate {
  4254. x = 0,
  4255. y = 1,
  4256. z = 2,
  4257. w = 3,
  4258. r = 0,
  4259. g = 1,
  4260. b = 2,
  4261. a = 3,
  4262. width = 0,
  4263. height = 1
  4264. }
  4265. interface ItemCoordinate {
  4266. id: string;
  4267. color: string;
  4268. coordinate: SelectedCoordinate;
  4269. }
  4270. /**
  4271. * Renders a list of current animations.
  4272. */
  4273. export class AnimationListTree extends React.Component<IAnimationListTreeProps, {
  4274. selectedCoordinate: SelectedCoordinate;
  4275. selectedAnimation: number;
  4276. animationList: Item[] | null;
  4277. animations: Nullable<Animation[]> | Animation;
  4278. }> {
  4279. constructor(props: IAnimationListTreeProps);
  4280. /**
  4281. * Set the animation list if has changed properties
  4282. * @param prevProps previous properties
  4283. */
  4284. componentDidUpdate(prevProps: IAnimationListTreeProps): void;
  4285. /**
  4286. * Delete animation from list
  4287. */
  4288. deleteAnimation: () => void;
  4289. /**
  4290. * Update the animations collection
  4291. * @param newValue new animation list
  4292. * @param previousValue previous animation list
  4293. */
  4294. raiseOnPropertyChanged(newValue: Animation[], previousValue: Animation[]): void;
  4295. /**
  4296. * Renders the animation list
  4297. */
  4298. generateList(): Item[] | null;
  4299. /**
  4300. * Open or closes the animation to show its coordinate animations
  4301. * @param index Animation index
  4302. */
  4303. toggleProperty(index: number): void;
  4304. /**
  4305. * Select the animation to render
  4306. * @param animation Selected animation
  4307. * @param coordinate Selected coordinate (x, y, z)
  4308. * @param index Index
  4309. */
  4310. setSelectedCoordinate(animation: Animation, coordinate: SelectedCoordinate, index: number): void;
  4311. /**
  4312. * Renders the coordinate belonging to an animation
  4313. * @param i Index
  4314. * @param animation Selected animation
  4315. * @param coordinate Coordinate name
  4316. * @param color Color identifier
  4317. * @param selectedCoordinate Selected coordinate (x, y, z)
  4318. */
  4319. coordinateItem(i: number, animation: Animation, coordinate: string, color: string, selectedCoordinate: SelectedCoordinate): JSX.Element;
  4320. /**
  4321. * Render animation
  4322. * @param animation selected animations
  4323. * @param i index
  4324. * @param childrenElements its coordinate (x,y,z) animations
  4325. */
  4326. typeAnimationItem(animation: Animation, i: number, childrenElements: ItemCoordinate[]): JSX.Element;
  4327. /**
  4328. * Render animation item
  4329. * @param animation Selected aniamtion
  4330. * @param i index
  4331. */
  4332. setListItem(animation: Animation, i: number): JSX.Element | null;
  4333. render(): JSX.Element;
  4334. }
  4335. }
  4336. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/loadsnippet" {
  4337. import * as React from "react";
  4338. import { Observable } from "babylonjs/Misc/observable";
  4339. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  4340. import { Animation } from "babylonjs/Animations/animation";
  4341. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  4342. import { GlobalState } from "babylonjs-inspector/components/globalState";
  4343. import { IAnimatable } from "babylonjs/Animations/animatable.interface";
  4344. import { TargetedAnimation } from "babylonjs/Animations/animationGroup";
  4345. interface ILoadSnippetProps {
  4346. animations: Animation[];
  4347. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  4348. lockObject: LockObject;
  4349. globalState: GlobalState;
  4350. snippetServer: string;
  4351. setSnippetId: (id: string) => void;
  4352. entity: IAnimatable | TargetedAnimation;
  4353. setNotificationMessage: (message: string) => void;
  4354. animationsLoaded: (numberOfAnimations: number) => void;
  4355. }
  4356. /**
  4357. * Loads animation locally or from the Babylon.js Snippet Server
  4358. */
  4359. export class LoadSnippet extends React.Component<ILoadSnippetProps, {
  4360. snippetId: string;
  4361. }> {
  4362. private _serverAddress;
  4363. constructor(props: ILoadSnippetProps);
  4364. /**
  4365. * Set the animations snippet id
  4366. * @param value Snippet ID
  4367. */
  4368. change: (value: string) => void;
  4369. /**
  4370. * Select a local file to load animations
  4371. * @param file File name
  4372. */
  4373. loadFromFile: (file: File) => void;
  4374. /**
  4375. * Load animations from server identified with a snippet id
  4376. */
  4377. loadFromSnippet: () => void;
  4378. render(): JSX.Element;
  4379. }
  4380. }
  4381. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/saveSnippet" {
  4382. import * as React from "react";
  4383. import { Observable } from "babylonjs/Misc/observable";
  4384. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  4385. import { Animation } from "babylonjs/Animations/animation";
  4386. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  4387. import { Nullable } from "babylonjs/types";
  4388. import { GlobalState } from "babylonjs-inspector/components/globalState";
  4389. interface ISaveSnippetProps {
  4390. animations: Nullable<Animation[]>;
  4391. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  4392. lockObject: LockObject;
  4393. globalState: GlobalState;
  4394. snippetServer: string;
  4395. snippetId: string;
  4396. }
  4397. export interface Snippet {
  4398. url: string;
  4399. id: string;
  4400. }
  4401. interface SelectedAnimation {
  4402. id: string;
  4403. name: string;
  4404. index: number;
  4405. selected: boolean;
  4406. }
  4407. /**
  4408. * Saves the animation snippet to the Babylon.js site or downloads the animation file locally
  4409. */
  4410. export class SaveSnippet extends React.Component<ISaveSnippetProps, {
  4411. selectedAnimations: SelectedAnimation[];
  4412. }> {
  4413. constructor(props: ISaveSnippetProps);
  4414. /**
  4415. * Set the selected animations to save
  4416. * @param e Input event
  4417. */
  4418. handleCheckboxChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  4419. /**
  4420. * Stringify the selected animation
  4421. */
  4422. stringifySelectedAnimations(): string;
  4423. /**
  4424. * Save the selected animations to a local file
  4425. */
  4426. saveToFile: () => void;
  4427. /**
  4428. * Save the selected animations if a snippet ID is set
  4429. */
  4430. saveToSnippet: () => void;
  4431. render(): JSX.Element;
  4432. }
  4433. }
  4434. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/editorControls" {
  4435. import * as React from "react";
  4436. import { Observable } from "babylonjs/Misc/observable";
  4437. import { PropertyChangedEvent } from "babylonjs-inspector/components/propertyChangedEvent";
  4438. import { Animation } from "babylonjs/Animations/animation";
  4439. import { SelectedCoordinate } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationListTree";
  4440. import { IAnimatable } from "babylonjs/Animations/animatable.interface";
  4441. import { TargetedAnimation } from "babylonjs/Animations/animationGroup";
  4442. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  4443. import { GlobalState } from "babylonjs-inspector/components/globalState";
  4444. interface IEditorControlsProps {
  4445. isTargetedAnimation: boolean;
  4446. entity: IAnimatable | TargetedAnimation;
  4447. selected: Animation | null;
  4448. lockObject: LockObject;
  4449. onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
  4450. setNotificationMessage: (message: string) => void;
  4451. selectAnimation: (selected: Animation, axis?: SelectedCoordinate) => void;
  4452. setFps: (fps: number) => void;
  4453. setIsLooping: () => void;
  4454. globalState: GlobalState;
  4455. snippetServer: string;
  4456. deselectAnimation: () => void;
  4457. fps: number;
  4458. }
  4459. interface IEditorControlsState {
  4460. isAnimationTabOpen: boolean;
  4461. isEditTabOpen: boolean;
  4462. isLoadTabOpen: boolean;
  4463. isSaveTabOpen: boolean;
  4464. isLoopActive: boolean;
  4465. animationsCount: number;
  4466. framesPerSecond: number;
  4467. snippetId: string;
  4468. selected: Animation | undefined;
  4469. }
  4470. /**
  4471. * Renders the Curve Editor controls to create, save, remove, load and edit animations
  4472. */
  4473. export class EditorControls extends React.Component<IEditorControlsProps, IEditorControlsState> {
  4474. constructor(props: IEditorControlsProps);
  4475. /**
  4476. * Makes sure the frames per second receive the updated prop
  4477. * @param prevProps previous properties
  4478. */
  4479. componentDidUpdate(prevProps: IEditorControlsProps): void;
  4480. /**
  4481. * Add the nimation, recounts the list and opens the correct tab
  4482. * @param animation The recently empty created animation
  4483. */
  4484. onAnimationAdded: (animation: Animation) => void;
  4485. /**
  4486. * Set state when the animations list has finished updated
  4487. */
  4488. finishedUpdate: () => void;
  4489. recountAnimations(): number;
  4490. /**
  4491. * Toggles loop
  4492. */
  4493. changeLoopBehavior: () => void;
  4494. /**
  4495. * This avoids using lambda functions in JSX
  4496. */
  4497. handleFirstTab: () => void;
  4498. handleSecondTab: () => void;
  4499. handleThirdTab: () => void;
  4500. handleFourthTab: () => void;
  4501. handleTabs(tab: number): void;
  4502. handleChangeFps: (fps: number) => void;
  4503. /**
  4504. * Cleans the list when has been emptied
  4505. */
  4506. onEmptiedList: () => void;
  4507. /**
  4508. * When animations have been reloaded update tabs
  4509. */
  4510. animationsLoaded: (numberOfAnimations: number) => void;
  4511. /**
  4512. * The currently selected animation to edit it
  4513. * @param selected Selected animation
  4514. */
  4515. editAnimation: (selected: Animation) => void;
  4516. setSnippetId: (id: string) => void;
  4517. /**
  4518. * Marks animation tab closed and hides the tab
  4519. */
  4520. onCloseAddAnimation: () => void;
  4521. render(): JSX.Element;
  4522. }
  4523. }
  4524. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/scale-label" {
  4525. import * as React from "react";
  4526. import { CurveScale } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationCurveEditorComponent";
  4527. interface ISwitchButtonProps {
  4528. /** Current scale */
  4529. current: CurveScale;
  4530. /** On click change of scale */
  4531. action?: (event: CurveScale) => void;
  4532. }
  4533. /**
  4534. * Displays the current scale
  4535. */
  4536. export class ScaleLabel extends React.Component<ISwitchButtonProps, {
  4537. current: CurveScale;
  4538. }> {
  4539. constructor(props: ISwitchButtonProps);
  4540. renderLabel(scale: CurveScale): "" | "DEG" | "FLT" | "INT" | "RAD";
  4541. onClickHandle: () => void;
  4542. render(): JSX.Element;
  4543. }
  4544. }
  4545. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationCurveEditorComponent" {
  4546. import * as React from "react";
  4547. import { Animation } from "babylonjs/Animations/animation";
  4548. import { Vector2, Vector3, Quaternion } from "babylonjs/Maths/math.vector";
  4549. import { Color3, Color4 } from "babylonjs/Maths/math.color";
  4550. import { Size } from "babylonjs/Maths/math.size";
  4551. import { EasingFunction } from "babylonjs/Animations/easing";
  4552. import { IAnimationKey } from "babylonjs/Animations/animationKey";
  4553. import { IKeyframeSvgPoint } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/keyframeSvgPoint";
  4554. import { Scene } from "babylonjs/scene";
  4555. import { IAnimatable } from "babylonjs/Animations/animatable.interface";
  4556. import { TargetedAnimation } from "babylonjs/Animations/animationGroup";
  4557. import { SelectedCoordinate } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/animationListTree";
  4558. import { LockObject } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/lockObject";
  4559. import { GlobalState } from "babylonjs-inspector/components/globalState";
  4560. import { Nullable } from "babylonjs/types";
  4561. interface IAnimationCurveEditorComponentProps {
  4562. playOrPause?: () => void;
  4563. scene: Scene;
  4564. entity: IAnimatable | TargetedAnimation;
  4565. lockObject: LockObject;
  4566. globalState: GlobalState;
  4567. }
  4568. /**
  4569. * Represent an Axis of the canvas. This help us control the frame/panning
  4570. */
  4571. interface ICanvasAxis {
  4572. value: number;
  4573. label: number;
  4574. }
  4575. /**
  4576. * This help us identify the type of scaling on the selected animated property
  4577. */
  4578. export enum CurveScale {
  4579. float = 0,
  4580. radians = 1,
  4581. degrees = 2,
  4582. integers = 3,
  4583. default = 4
  4584. }
  4585. /**
  4586. * This represents the visible selected keyframe in the canvas. If the keyframe is selected
  4587. * we should be able to edit the frame and value.
  4588. */
  4589. export interface IActionableKeyFrame {
  4590. frame?: number | string;
  4591. value?: any;
  4592. }
  4593. /**
  4594. * Each curve is an SVG Path. This Interface give us its properties to render on the canvas.
  4595. */
  4596. interface ICurveData {
  4597. pathData: string;
  4598. pathLength: number;
  4599. domCurve: React.RefObject<SVGPathElement>;
  4600. color: string;
  4601. id: string;
  4602. }
  4603. /**
  4604. * The curve editor state
  4605. */
  4606. interface IAnimationCurveEditorComponentState {
  4607. /** If the editor is opened or closed */
  4608. isOpen: boolean;
  4609. /** The currently selected animation from which the curves will render */
  4610. selected: Animation | null;
  4611. /** A list of keyframes to be rendered as SVG Elements in the curve */
  4612. svgKeyframes: IKeyframeSvgPoint[] | undefined;
  4613. /** The current frame in which the playhead is positioned */
  4614. currentFrame: number;
  4615. /** The current value in which the playhead is positioned */
  4616. currentValue: number;
  4617. /** The number of frame in which the current canvas is divided. The helps to render the frames in the graph editor */
  4618. frameAxisLength: ICanvasAxis[];
  4619. /** The number of values in which the current canvas is divided. The helps to render the frames in the graph editor. The current scale decides how these values are rendered*/
  4620. valueAxisLength: ICanvasAxis[];
  4621. /** If the selected keyframe should be treated as a flat tangent curve */
  4622. isFlatTangentMode: boolean;
  4623. /** If the tangent mode is active */
  4624. isTangentMode: boolean;
  4625. /** If the control points are broken or not */
  4626. isBrokenMode: boolean;
  4627. /** If selected keyframe should render its selected control point to be linear or not */
  4628. lerpMode: boolean;
  4629. /** The scale of the canvas */
  4630. scale: number;
  4631. /** The offset of the playhead to position itself on the canvas */
  4632. playheadOffset: number;
  4633. /** The error or warning message to display */
  4634. notification: string;
  4635. /** The current selected point in the SVG curve */
  4636. currentPoint: SVGPoint | undefined;
  4637. /** The start position of the playhead */
  4638. playheadPos: number;
  4639. /** If the animation is playing or not */
  4640. isPlaying: boolean;
  4641. /** The selected curve represented with an array of curves */
  4642. selectedPathData: ICurveData[] | undefined;
  4643. /** The currently selected coordinate of a complex property (i.e. x, y, z) */
  4644. selectedCoordinate: number;
  4645. /** The number of frames available in the canvas timeline*/
  4646. animationLimit: number;
  4647. /** The currently animation frames per second */
  4648. fps: number;
  4649. /** If the animation is set to loop or not while animation is playing */
  4650. isLooping: boolean;
  4651. /** The amount of vertical panning the user has moved the canvas */
  4652. panningY: number;
  4653. /** The amount of horizontal panning the user has moved the canvas */
  4654. panningX: number;
  4655. /** If the canvas has finished repositioned itself */
  4656. repositionCanvas: boolean;
  4657. /** The current selected keyframe on which we can perform actions (update frame and value) */
  4658. actionableKeyframe: IActionableKeyFrame;
  4659. /** The current value scale */
  4660. valueScaleType: CurveScale;
  4661. /** The amount scale to update valyes */
  4662. valueScale: number;
  4663. /** The canvas proportion width */
  4664. canvasLength: number;
  4665. /** The last frame to be created. */
  4666. lastKeyframeCreated: Nullable<string>;
  4667. /** The canvas scale width */
  4668. canvasWidthScale: number;
  4669. /** How the resize of the canvas will change the value axis */
  4670. valuesPositionResize: number;
  4671. /** How many frames are currently visible in the canvas */
  4672. framesInCanvasView: {
  4673. from: number;
  4674. to: number;
  4675. };
  4676. /** Limits the maximum frame from which a keyframe can move in the curve. So it wont overlap the curve*/
  4677. maxFrame: number | undefined;
  4678. /** Limits the minimum frame from which a keyframe can move in the curve. So it wont overlap the curve*/
  4679. minFrame: number | undefined;
  4680. /** How many frames have been increased or reduced on a windows resize event */
  4681. framesResized: number;
  4682. }
  4683. /**
  4684. * Animation curve Editor Component
  4685. * This component allows the use to create animations visualy from the Babylon.js playground.
  4686. * The principal features for the curve editor are:
  4687. * 1. Create animations for the selected entity properties.
  4688. * 2. Edit the animations a selected entity has.
  4689. * 3. You can load and save animations locally and from the snippet server.
  4690. * 4. After creating an animation you need to add keyframes.
  4691. * 5. You can update the frame and value of each frame.
  4692. * @property {() => void} playOrPause is the event to stop or inititate the animation on the playground scene
  4693. * @property {Scene} scene is the scene object from the playground
  4694. * @property {IAnimatable | TargetedAnimation} entity represents the selected entity which will be the animations target
  4695. * @property {LockObject} lockObject the inherited object to lock for modification with the Observable pattern
  4696. * @property {GlobalState} globalState the playground globalstate
  4697. * Check the IAnimationCurveEditorComponentState for state functionality
  4698. */
  4699. export class AnimationCurveEditorComponent extends React.Component<IAnimationCurveEditorComponentProps, IAnimationCurveEditorComponentState> {
  4700. readonly _entityName: string;
  4701. private _snippetUrl;
  4702. private _heightScale;
  4703. private _scaleFactor;
  4704. private _currentScale;
  4705. private _pixelFrameUnit;
  4706. private _svgKeyframes;
  4707. private _isPlaying;
  4708. private _graphCanvas;
  4709. private _editor;
  4710. private _editorWindow;
  4711. private _resizeId;
  4712. private _svgCanvas;
  4713. private _isTargetedAnimation;
  4714. private _resizedTimeline;
  4715. private _onBeforeRenderObserver;
  4716. private _mainAnimatable;
  4717. constructor(props: IAnimationCurveEditorComponentProps);
  4718. componentDidMount(): void;
  4719. /**
  4720. * Connects scene frame with curve editor animation
  4721. * @param prevProps previous Props
  4722. * @param prevState previous State
  4723. */
  4724. componentDidUpdate(prevProps: IAnimationCurveEditorComponentProps, prevState: any): void;
  4725. /**
  4726. * Clean up observer and listeners
  4727. */
  4728. componentWillUnmount(): void;
  4729. /**
  4730. * Set the frame on the animation
  4731. * @param value number of frame to move animation
  4732. */
  4733. onCurrentFrameChangeScene(value: number): void;
  4734. /**
  4735. * Notifications
  4736. * To add notification we set the state and clear to make the notification bar hide.
  4737. */
  4738. clearNotification: () => void;
  4739. /**
  4740. * Zoom and Scroll
  4741. * This section handles zoom and scroll
  4742. * of the graph area.
  4743. */
  4744. zoom: (e: React.WheelEvent<HTMLDivElement>) => void;
  4745. /**
  4746. * Returns Array with labels and values for Frame axis in Canvas
  4747. */
  4748. setFrameAxis(currentLength: number): {
  4749. value: number;
  4750. label: number;
  4751. }[];
  4752. /**
  4753. * Returns Array with labels, lines and values for Value axis in Canvas
  4754. */
  4755. setValueLines(): {
  4756. value: number;
  4757. label: string;
  4758. }[];
  4759. /**
  4760. * Creates a string id from animation name and the keyframe index
  4761. * @param animationName Name of animation
  4762. * @param keyframeIndex Index of keyframe
  4763. */
  4764. encodeCurveId(animationName: string, keyframeIndex: number): string;
  4765. /**
  4766. * Returns the animation keyframe index and the animation selected coordinate (x, y, z)
  4767. * @param id curve id created with index and coordinate of animation
  4768. */
  4769. decodeCurveId(id: string): {
  4770. order: number;
  4771. coordinate: number;
  4772. };
  4773. /**
  4774. * Returns the value from a keyframe
  4775. * @param id curve id
  4776. */
  4777. getKeyframeValueFromAnimation(id: string): {
  4778. frame: number;
  4779. value: number;
  4780. } | undefined;
  4781. /**
  4782. * Keyframe Manipulation
  4783. * This section handles events from SvgDraggableArea.
  4784. * @param id selected keyframe id
  4785. * @param multiselect if we are multiselecting keyframes
  4786. */
  4787. selectKeyframe: (id: string, multiselect: boolean) => void;
  4788. /**
  4789. * Determine if two control points are collinear (flat tangent)
  4790. * @param kf keyframe point
  4791. */
  4792. hasCollinearPoints: (kf: IKeyframeSvgPoint | undefined) => boolean;
  4793. /**
  4794. * Returns the previous and next keyframe from a selected frame.
  4795. * @param frame index of keyframe
  4796. */
  4797. getPreviousAndNextKeyframe: (frame: number) => {
  4798. prev: number | undefined;
  4799. next: number | undefined;
  4800. };
  4801. /**
  4802. * Selects a keyframe in animation based on its Id
  4803. * @param id keyframe id
  4804. * @param actionableKeyframe selected keyframe
  4805. */
  4806. selectKeyframeFromId: (id: string, actionableKeyframe: IActionableKeyFrame) => void;
  4807. /**
  4808. * Resets the current selected keyframe as an updatable pairs by Graph Control Bar
  4809. */
  4810. resetActionableKeyframe: () => void;
  4811. /**
  4812. * Sets the selected control point.
  4813. * @param type left or right control point
  4814. * @param id id of selected svg keyframe
  4815. */
  4816. selectedControlPoint: (type: string, id: string) => void;
  4817. /**
  4818. * Sets the selected control point.
  4819. */
  4820. deselectKeyframes: () => void;
  4821. /**
  4822. * Update the Animation Key values based on its type
  4823. * @param dataType Type of animated property
  4824. * @param newValue New value of animated property
  4825. * @param coordinate The selected property coordinate to animate (i.e. x, y, z)
  4826. */
  4827. updateValuePerCoordinate(dataType: number, value: number | Vector2 | Vector3 | Color3 | Color4 | Size | Quaternion, newValue: number, coordinate?: number): number | Vector3 | Quaternion | Color3 | Color4 | Vector2 | Size;
  4828. /**
  4829. * Animation should always have a keyframe at Frame Zero
  4830. * @param keys Animation key collection
  4831. */
  4832. forceFrameZeroToExist(keys: IAnimationKey[]): void;
  4833. /**
  4834. * Renders SVG points with dragging of the curve
  4835. * @param updatedSvgKeyFrame selected keyframe to update
  4836. * @param id curve id where the keyframe is localted
  4837. */
  4838. renderPoints: (updatedSvgKeyFrame: IKeyframeSvgPoint, id: string) => void;
  4839. /**
  4840. * Updates the left control point on render points
  4841. * @param updatedSvgKeyFrame selected svg keyframe
  4842. * @param key animation key to update
  4843. * @param dataType type of animation
  4844. * @param coordinate coordinate to change its value (x, y, or z)
  4845. */
  4846. updateLeftControlPoint(updatedSvgKeyFrame: IKeyframeSvgPoint, key: IAnimationKey, dataType: number, coordinate: number): void;
  4847. /**
  4848. * Updates the right control point on render points
  4849. * @param updatedSvgKeyFrame selected svg keyframe
  4850. * @param key animation key to update
  4851. * @param dataType type of animation
  4852. * @param coordinate coordinate to change its value (x, y, or z)
  4853. */
  4854. updateRightControlPoint(updatedSvgKeyFrame: IKeyframeSvgPoint, key: IAnimationKey, dataType: number, coordinate: number): void;
  4855. /**
  4856. * Get the current Control Point weight (how far the X value is multiplied)
  4857. * @param updatedSvgKeyFrame svg keyframe from which to calculate the distance to control point
  4858. */
  4859. getControlPointWeight(updatedSvgKeyFrame: IKeyframeSvgPoint): number;
  4860. /**
  4861. * Handles a Frame selection change
  4862. * @event event input event to change frame value
  4863. */
  4864. handleFrameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  4865. /**
  4866. * Handles how a value change on a selected frame
  4867. * @event event input event to change the value of the keyframe
  4868. */
  4869. handleValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  4870. /**
  4871. * Set the Keyframe from input control in Graph Control Bar
  4872. * @param actionableKeyframe selected keyframe
  4873. */
  4874. setKeyframeValueFromInput: (actionableKeyframe: IActionableKeyFrame) => void;
  4875. /**
  4876. * Sets the SVG Keyframe value
  4877. * Finds the selected svg keyframe and passes the correct value to the correct animated keyframe.
  4878. */
  4879. setKeyframeValue: () => void;
  4880. /**
  4881. * Set the flat tangent to the current selected control points.
  4882. * get the selected control point and updates its tangent to flat the tangent
  4883. */
  4884. setFlatTangent: () => void;
  4885. /**
  4886. * Sets Broken mode of lines
  4887. * Broken mode enables control points not to be connected on drag
  4888. */
  4889. setBrokenMode: () => void;
  4890. /**
  4891. * Sets a control point to be a linear interpolation with its Keyframe
  4892. * If left or right control point is selected, sets the Tangent value to match the next keyframe and become linear
  4893. */
  4894. setLerpToActiveControlPoint: () => void;
  4895. /**
  4896. * Adds a new keyframe to the curve on canvas click
  4897. */
  4898. addKeyframeClick: () => void;
  4899. /**
  4900. * Remove keyframe on click
  4901. */
  4902. removeKeyframeClick: () => void;
  4903. /**
  4904. * Remove the selected keyframes
  4905. * @param points the selected keyframes to remove
  4906. */
  4907. removeKeyframes: (points: IKeyframeSvgPoint[]) => void;
  4908. /**
  4909. * Adds a keyframe
  4910. * @event event Mouse click event to generate new keyframe
  4911. */
  4912. addKeyFrame(event: React.MouseEvent<SVGSVGElement>): void;
  4913. /**
  4914. * Curve Rendering Functions
  4915. * This section handles how to render curves.
  4916. * @param point point in canvas
  4917. * @param index index of svg
  4918. */
  4919. setKeyframePointLinear(point: Vector2, index: number): void;
  4920. /**
  4921. * Flats the tangents of the selected keyframes
  4922. * @param keyframes Selected keyframes to flat its tangents
  4923. * @param dataType Type of animated property
  4924. */
  4925. flatTangents(keyframes: IAnimationKey[], dataType: number): IAnimationKey[];
  4926. /**
  4927. * Return a Keyframe zero value depending on Type
  4928. * @param dataType Type of animated property
  4929. */
  4930. returnZero(dataType: number): 0 | Vector3 | Quaternion | Color3 | Color4 | Vector2 | Size;
  4931. /**
  4932. * Return the keyframe value as an array depending on type
  4933. * @param valueType type of animated property
  4934. * @param value the value of the property
  4935. */
  4936. getValueAsArray(valueType: number, value: number | Vector2 | Vector3 | Color3 | Color4 | Size | Quaternion): number[];
  4937. /**
  4938. * Sets the keyframe value as an array depending on type
  4939. * @param valueType type of animated property
  4940. * @param arrayValue array to place the correct value
  4941. */
  4942. setValueAsType(valueType: number, arrayValue: number[]): number | Vector3 | Quaternion | Color3 | Color4 | Vector2 | Size;
  4943. /**
  4944. * Returns the SVG Path Data to render the curve
  4945. * @param animation The animation object from where to get its keyframes
  4946. */
  4947. getPathData(animation: Animation | null): ICurveData[] | undefined;
  4948. /**
  4949. * Gets the selected animation properties
  4950. * @param animation Animation
  4951. */
  4952. getAnimationData(animation: Animation): {
  4953. loopMode: number | undefined;
  4954. name: string;
  4955. blendingSpeed: number;
  4956. targetPropertyPath: string[];
  4957. targetProperty: string;
  4958. framesPerSecond: number;
  4959. highestFrame: number;
  4960. usesTangents: boolean;
  4961. easingType: string | undefined;
  4962. easingMode: number | undefined;
  4963. valueType: number;
  4964. };
  4965. /**
  4966. * Calculate the correct tangents to be linear
  4967. * @param keyframes the animation keyframes
  4968. */
  4969. calculateLinearTangents(keyframes: IAnimationKey[]): IAnimationKey[];
  4970. /**
  4971. * Calculates the proper linear tangents if there is no tangents defined
  4972. * Before calculation of svg path we need to calculate the proper tangents
  4973. * @param keyframes the animation keyframes
  4974. * @param data initial svg path
  4975. * @param middle the middle of the canvas to draw the curve
  4976. * @param type type of animation
  4977. * @param coordinate (x, y, z) value
  4978. * @param animationName The animation name to generate the curve id
  4979. */
  4980. curvePathWithoutTangents(keyframes: IAnimationKey[], data: string, middle: number, type: number, coordinate: number, animationName: string): string;
  4981. /**
  4982. * Calculates the curve data and control points for animation
  4983. * @param keyframes the animation keyframes
  4984. * @param data initial svg path
  4985. * @param middle the middle of the canvas to draw the curve
  4986. * @param type type of animation
  4987. * @param coordinate (x, y, z) value
  4988. * @param animationName The animation name to generate the curve id
  4989. */
  4990. curvePathWithTangents(keyframes: IAnimationKey[], data: string, middle: number, type: number, coordinate: number, animationName: string): string;
  4991. /**
  4992. * Calculates a curve path from predefined easing function
  4993. * @param keyframes animation keyframes
  4994. * @param data the initial svg path
  4995. * @param middle the center of the canvas
  4996. * @param easingFunction the easing function to calculate the curve from (easing function should generate the correct curve)
  4997. */
  4998. curvePath(keyframes: IAnimationKey[], data: string, middle: number, easingFunction: EasingFunction): string;
  4999. /**
  5000. * Sets the proper SVG Keyframe points
  5001. * @param controlPoints array of points to generate the svg keyframe collection
  5002. * @param index index of the animation
  5003. * @param keyframesCount How many keyframes should we process
  5004. */
  5005. setKeyframePoint(controlPoints: Vector2[], index: number, keyframesCount: number): void;
  5006. /**
  5007. * Creates curve based on interpolated points
  5008. * @param p0 starting point of curve
  5009. * @param p1 first control point
  5010. * @param u distance between p0 and p3 as percentage to affect p1
  5011. * @param p2 second control point
  5012. * @param v distance between p0 and p3 as percentage to affect p2
  5013. * @param p3 finish point of curve
  5014. */
  5015. interpolateControlPoints(p0: Vector2, p1: Vector2, u: number, p2: Vector2, v: number, p3: Vector2): Vector2[] | undefined;
  5016. /**
  5017. * Deselects the current animations
  5018. */
  5019. deselectAnimation: () => void;
  5020. /**
  5021. * Remove all curves from canvas
  5022. */
  5023. cleanCanvas: () => void;
  5024. /**
  5025. * Selects the animation and renders the curve
  5026. * @param animation the animation to select and render as curve
  5027. * @param coordinate the property coordinate (x, y, z) to represent as curve
  5028. */
  5029. selectAnimation: (animation: Animation, coordinate?: SelectedCoordinate | undefined) => void;
  5030. /**
  5031. * Set the state for the last selected keyframe
  5032. */
  5033. postSelectionEvents: () => void;
  5034. /**
  5035. * Set main animatable to play or pause the animation
  5036. */
  5037. setMainAnimatable(): void;
  5038. /**
  5039. * Check if animation is playing
  5040. */
  5041. isAnimationPlaying(): boolean;
  5042. /**
  5043. * Stops the current playing animation
  5044. */
  5045. stopAnimation(): void;
  5046. /**
  5047. * Set if animation is looping and stops animation after it
  5048. */
  5049. setIsLooping: () => void;
  5050. setFramesPerSecond: (fps: number) => void;
  5051. /**
  5052. * Check if the animation has easing predefined
  5053. */
  5054. analyzeAnimationForLerp(animation: Animation | null): boolean;
  5055. /**
  5056. * Change the current frame in the canvas and timeline
  5057. * @param frame value to update on canvas and timeline
  5058. */
  5059. changeCurrentFrame: (frame: number) => void;
  5060. /**
  5061. * Calculate the value of the selected frame in curve
  5062. * @param frame the frame to calculate its current value on the curve
  5063. */
  5064. calculateCurrentPointInCurve: (frame: number) => number | undefined;
  5065. /**
  5066. * Center the position the canvas depending on Keyframe value and frame
  5067. * @param keyframe the keyframe to set as middle point
  5068. */
  5069. setCanvasPosition: (keyframe: IAnimationKey) => void;
  5070. /**
  5071. * Sets the current frame
  5072. * @param frame the value to set the frame
  5073. */
  5074. setCurrentFrame: (frame: number) => void;
  5075. /**
  5076. * Change the timeline animation frame limit
  5077. */
  5078. changeAnimationLimit: (limit: number) => void;
  5079. /**
  5080. * Update the frame in the selected Keyframe
  5081. */
  5082. updateFrameInKeyFrame: (frame: number, index: number) => void;
  5083. /**
  5084. * Plays or pauses the animation
  5085. * @param direction 0 stops the animation, 1 starts the animation, -1 plays animation backwards
  5086. */
  5087. playPause: (direction: number) => void;
  5088. /**
  5089. * Set the frame to selected position on canvas
  5090. * @event e click event on the SVG canvas
  5091. */
  5092. moveFrameTo(e: React.MouseEvent<SVGRectElement, MouseEvent>): void;
  5093. /**
  5094. * Register the observables for the state
  5095. */
  5096. registerObs(): void;
  5097. /**
  5098. * Checks if the current frame macthes the parameter
  5099. * @param frame The frame to check
  5100. */
  5101. isCurrentFrame(frame: number): boolean;
  5102. /**
  5103. * Set the Vertical Panning State
  5104. * @param panningY the vertical panning value
  5105. */
  5106. setPanningY: (panningY: number) => void;
  5107. /**
  5108. * Set the Vertical Panning State
  5109. * @param panningX the horizontal panning value
  5110. */
  5111. setPanningX: (panningX: number) => void;
  5112. /**
  5113. * Set state when canvas has been respositioned
  5114. */
  5115. canvasPositionEnded: () => void;
  5116. /**
  5117. *
  5118. * @param message The message to display in the notification bar
  5119. */
  5120. setNotificationMessage: (message: string) => void;
  5121. /**
  5122. * Zoom or frame the selected keyframes in the available canvas space
  5123. */
  5124. frameSelectedKeyframes: () => void;
  5125. /**
  5126. * Handle the frames quantity and scale on Window resize width
  5127. */
  5128. onWindowResizeWidth: () => void;
  5129. /**
  5130. * Set the state of frames Resized on window resize event
  5131. * @param framesResized how many frame have been added or removed on resize
  5132. */
  5133. onWindowEndResize: (framesResized: number) => void;
  5134. /** Resizes the width of the timeline */
  5135. onTimelineResize: () => void;
  5136. render(): JSX.Element;
  5137. }
  5138. }
  5139. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/animations/playhead" {
  5140. import * as React from "react";
  5141. interface IPlayheadProps {
  5142. frame: number;
  5143. offset: number;
  5144. onCurrentFrameChange: (frame: number) => void;
  5145. }
  5146. /**
  5147. * Renders the Playhead
  5148. */
  5149. export class Playhead extends React.Component<IPlayheadProps> {
  5150. private _direction;
  5151. private _active;
  5152. constructor(props: IPlayheadProps);
  5153. dragStart(e: React.TouchEvent<HTMLDivElement>): void;
  5154. dragStart(e: React.MouseEvent<HTMLDivElement, MouseEvent>): void;
  5155. drag(e: React.TouchEvent<HTMLDivElement>): void;
  5156. drag(e: React.MouseEvent<HTMLDivElement, MouseEvent>): void;
  5157. dragEnd(e: React.TouchEvent<HTMLDivElement>): void;
  5158. dragEnd(e: React.MouseEvent<HTMLDivElement, MouseEvent>): void;
  5159. calculateMove(): string;
  5160. render(): JSX.Element;
  5161. }
  5162. }
  5163. declare module "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/defaultTools/contrast" {
  5164. import { IToolData } from "babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent";
  5165. export const Contrast: IToolData;
  5166. }
  5167. declare module "babylonjs-inspector/legacy/legacy" {
  5168. export * from "babylonjs-inspector/index";
  5169. }
  5170. declare module "babylonjs-inspector/sharedUiComponents/lines/draggableLineComponent" {
  5171. import * as React from "react";
  5172. export interface IButtonLineComponentProps {
  5173. data: string;
  5174. tooltip: string;
  5175. }
  5176. export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
  5177. constructor(props: IButtonLineComponentProps);
  5178. render(): JSX.Element;
  5179. }
  5180. }
  5181. declare module "babylonjs-inspector/sharedUiComponents/lines/popup" {
  5182. export class Popup {
  5183. static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
  5184. private static _CopyStyles;
  5185. }
  5186. }
  5187. declare module "babylonjs-inspector" {
  5188. export * from "babylonjs-inspector/legacy/legacy";
  5189. }
  5190. /// <reference types="react" />
  5191. declare module INSPECTOR {
  5192. export class PropertyChangedEvent {
  5193. object: any;
  5194. property: string;
  5195. value: any;
  5196. initialValue: any;
  5197. allowNullValue?: boolean;
  5198. }
  5199. }
  5200. declare module INSPECTOR {
  5201. export class ReplayRecorder {
  5202. private _sceneRecorder;
  5203. private _isRecording;
  5204. get isRecording(): boolean;
  5205. cancel(): void;
  5206. trackScene(scene: BABYLON.Scene): void;
  5207. applyDelta(json: any, scene: BABYLON.Scene): void;
  5208. export(): void;
  5209. }
  5210. }
  5211. declare module INSPECTOR {
  5212. export class GlobalState {
  5213. onSelectionChangedObservable: BABYLON.Observable<any>;
  5214. onPropertyChangedObservable: BABYLON.Observable<PropertyChangedEvent>;
  5215. onInspectorClosedObservable: BABYLON.Observable<BABYLON.Scene>;
  5216. onTabChangedObservable: BABYLON.Observable<number>;
  5217. onSelectionRenamedObservable: BABYLON.Observable<void>;
  5218. onPluginActivatedObserver: BABYLON.Nullable<BABYLON.Observer<BABYLON.ISceneLoaderPlugin | BABYLON.ISceneLoaderPluginAsync>>;
  5219. onNewSceneObservable: BABYLON.Observable<BABYLON.Scene>;
  5220. sceneImportDefaults: {
  5221. [key: string]: any;
  5222. };
  5223. validationResults: BABYLON.Nullable<BABYLON.GLTF2.IGLTFValidationResults>;
  5224. onValidationResultsUpdatedObservable: BABYLON.Observable<BABYLON.Nullable<BABYLON.GLTF2.IGLTFValidationResults>>;
  5225. onExtensionLoadedObservable: BABYLON.Observable<import("babylonjs-loaders/glTF/index").IGLTFLoaderExtension>;
  5226. glTFLoaderExtensionDefaults: {
  5227. [name: string]: {
  5228. [key: string]: any;
  5229. };
  5230. };
  5231. glTFLoaderDefaults: {
  5232. [key: string]: any;
  5233. };
  5234. glTFLoaderExtensions: {
  5235. [key: string]: import("babylonjs-loaders/glTF/index").IGLTFLoaderExtension;
  5236. };
  5237. blockMutationUpdates: boolean;
  5238. selectedLineContainerTitles: Array<string>;
  5239. selectedLineContainerTitlesNoFocus: Array<string>;
  5240. recorder: ReplayRecorder;
  5241. private _onlyUseEulers;
  5242. get onlyUseEulers(): boolean;
  5243. set onlyUseEulers(value: boolean);
  5244. private _ignoreBackfacesForPicking;
  5245. get ignoreBackfacesForPicking(): boolean;
  5246. set ignoreBackfacesForPicking(value: boolean);
  5247. init(propertyChangedObservable: BABYLON.Observable<PropertyChangedEvent>): void;
  5248. prepareGLTFPlugin(loader: import("babylonjs-loaders/glTF/index").GLTFFileLoader): void;
  5249. resetGLTFValidationResults(): void;
  5250. lightGizmos: Array<BABYLON.LightGizmo>;
  5251. enableLightGizmo(light: BABYLON.Light, enable?: boolean): void;
  5252. cameraGizmos: Array<BABYLON.CameraGizmo>;
  5253. enableCameraGizmo(camera: BABYLON.Camera, enable?: boolean): void;
  5254. }
  5255. }
  5256. declare module INSPECTOR {
  5257. export interface IPaneComponentProps {
  5258. title: string;
  5259. scene: BABYLON.Scene;
  5260. selectedEntity?: any;
  5261. onSelectionChangedObservable?: BABYLON.Observable<any>;
  5262. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5263. globalState: GlobalState;
  5264. }
  5265. export class PaneComponent extends React.Component<IPaneComponentProps, {
  5266. tag: any;
  5267. }> {
  5268. constructor(props: IPaneComponentProps);
  5269. render(): JSX.Element | null;
  5270. }
  5271. }
  5272. declare module INSPECTOR {
  5273. interface ITabsComponentProps {
  5274. children: any[];
  5275. selectedIndex: number;
  5276. onSelectedIndexChange: (value: number) => void;
  5277. }
  5278. export class TabsComponent extends React.Component<ITabsComponentProps> {
  5279. constructor(props: ITabsComponentProps);
  5280. onSelect(index: number): void;
  5281. renderLabel(child: PaneComponent, index: number): JSX.Element;
  5282. render(): JSX.Element;
  5283. }
  5284. }
  5285. declare module INSPECTOR {
  5286. interface ITextLineComponentProps {
  5287. label?: string;
  5288. value?: string;
  5289. color?: string;
  5290. underline?: boolean;
  5291. onLink?: () => void;
  5292. url?: string;
  5293. ignoreValue?: boolean;
  5294. additionalClass?: string;
  5295. }
  5296. export class TextLineComponent extends React.Component<ITextLineComponentProps> {
  5297. constructor(props: ITextLineComponentProps);
  5298. onLink(): void;
  5299. renderContent(): JSX.Element | null;
  5300. render(): JSX.Element;
  5301. }
  5302. }
  5303. declare module INSPECTOR {
  5304. interface ILineContainerComponentProps {
  5305. globalState?: GlobalState;
  5306. title: string;
  5307. children: any[] | any;
  5308. closed?: boolean;
  5309. }
  5310. export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
  5311. isExpanded: boolean;
  5312. isHighlighted: boolean;
  5313. }> {
  5314. constructor(props: ILineContainerComponentProps);
  5315. switchExpandedState(): void;
  5316. componentDidMount(): void;
  5317. renderHeader(): JSX.Element;
  5318. render(): JSX.Element;
  5319. }
  5320. }
  5321. declare module INSPECTOR {
  5322. interface IValueLineComponentProps {
  5323. label: string;
  5324. value: number;
  5325. color?: string;
  5326. fractionDigits?: number;
  5327. units?: string;
  5328. }
  5329. export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
  5330. constructor(props: IValueLineComponentProps);
  5331. render(): JSX.Element;
  5332. }
  5333. }
  5334. declare module INSPECTOR {
  5335. export interface IBooleanLineComponentProps {
  5336. label: string;
  5337. value: boolean;
  5338. }
  5339. export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
  5340. constructor(props: IBooleanLineComponentProps);
  5341. render(): JSX.Element;
  5342. }
  5343. }
  5344. declare module INSPECTOR {
  5345. export class StatisticsTabComponent extends PaneComponent {
  5346. private _sceneInstrumentation;
  5347. private _engineInstrumentation;
  5348. private _timerIntervalId;
  5349. constructor(props: IPaneComponentProps);
  5350. componentWillUnmount(): void;
  5351. render(): JSX.Element | null;
  5352. }
  5353. }
  5354. declare module INSPECTOR {
  5355. export class PropertyChangedEvent {
  5356. object: any;
  5357. property: string;
  5358. value: any;
  5359. initialValue: any;
  5360. allowNullValue?: boolean;
  5361. }
  5362. }
  5363. declare module INSPECTOR {
  5364. export interface ICheckBoxLineComponentProps {
  5365. label: string;
  5366. target?: any;
  5367. propertyName?: string;
  5368. isSelected?: () => boolean;
  5369. onSelect?: (value: boolean) => void;
  5370. onValueChanged?: () => void;
  5371. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5372. disabled?: boolean;
  5373. }
  5374. export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
  5375. isSelected: boolean;
  5376. isDisabled?: boolean;
  5377. }> {
  5378. private static _UniqueIdSeed;
  5379. private _uniqueId;
  5380. private _localChange;
  5381. constructor(props: ICheckBoxLineComponentProps);
  5382. shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
  5383. isSelected: boolean;
  5384. isDisabled: boolean;
  5385. }): boolean;
  5386. onChange(): void;
  5387. render(): JSX.Element;
  5388. }
  5389. }
  5390. declare module INSPECTOR {
  5391. interface IRenderGridPropertyGridComponentProps {
  5392. globalState: GlobalState;
  5393. scene: BABYLON.Scene;
  5394. }
  5395. export class RenderGridPropertyGridComponent extends React.Component<IRenderGridPropertyGridComponentProps, {
  5396. isEnabled: boolean;
  5397. }> {
  5398. private _gridMesh;
  5399. constructor(props: IRenderGridPropertyGridComponentProps);
  5400. componentDidMount(): void;
  5401. addOrRemoveGrid(): void;
  5402. render(): JSX.Element;
  5403. }
  5404. }
  5405. declare module INSPECTOR {
  5406. export class DebugTabComponent extends PaneComponent {
  5407. private _physicsViewersEnabled;
  5408. constructor(props: IPaneComponentProps);
  5409. switchPhysicsViewers(): void;
  5410. render(): JSX.Element | null;
  5411. }
  5412. }
  5413. declare module INSPECTOR {
  5414. /**
  5415. * Class used to provide lock mechanism
  5416. */
  5417. export class LockObject {
  5418. /**
  5419. * Gets or set if the lock is engaged
  5420. */
  5421. lock: boolean;
  5422. }
  5423. }
  5424. declare module INSPECTOR {
  5425. interface IFloatLineComponentProps {
  5426. label: string;
  5427. target: any;
  5428. propertyName: string;
  5429. lockObject?: LockObject;
  5430. onChange?: (newValue: number) => void;
  5431. isInteger?: boolean;
  5432. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5433. additionalClass?: string;
  5434. step?: string;
  5435. digits?: number;
  5436. useEuler?: boolean;
  5437. min?: number;
  5438. max?: number;
  5439. smallUI?: boolean;
  5440. onEnter?: (newValue: number) => void;
  5441. }
  5442. export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
  5443. value: string;
  5444. }> {
  5445. private _localChange;
  5446. private _store;
  5447. constructor(props: IFloatLineComponentProps);
  5448. componentWillUnmount(): void;
  5449. shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
  5450. value: string;
  5451. }): boolean;
  5452. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  5453. updateValue(valueString: string): void;
  5454. lock(): void;
  5455. unlock(): void;
  5456. render(): JSX.Element;
  5457. }
  5458. }
  5459. declare module INSPECTOR {
  5460. interface ISliderLineComponentProps {
  5461. label: string;
  5462. target?: any;
  5463. propertyName?: string;
  5464. minimum: number;
  5465. maximum: number;
  5466. step: number;
  5467. directValue?: number;
  5468. useEuler?: boolean;
  5469. onChange?: (value: number) => void;
  5470. onInput?: (value: number) => void;
  5471. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5472. decimalCount?: number;
  5473. margin?: boolean;
  5474. }
  5475. export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
  5476. value: number;
  5477. }> {
  5478. private _localChange;
  5479. constructor(props: ISliderLineComponentProps);
  5480. shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
  5481. value: number;
  5482. }): boolean;
  5483. onChange(newValueString: any): void;
  5484. onInput(newValueString: any): void;
  5485. prepareDataToRead(value: number): number;
  5486. render(): JSX.Element;
  5487. }
  5488. }
  5489. declare module INSPECTOR {
  5490. export const Null_Value: number;
  5491. export class ListLineOption {
  5492. label: string;
  5493. value: number;
  5494. selected?: boolean;
  5495. }
  5496. export interface IOptionsLineComponentProps {
  5497. label: string;
  5498. target: any;
  5499. propertyName: string;
  5500. options: ListLineOption[];
  5501. noDirectUpdate?: boolean;
  5502. onSelect?: (value: number) => void;
  5503. extractValue?: () => number;
  5504. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5505. allowNullValue?: boolean;
  5506. }
  5507. export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
  5508. value: number;
  5509. }> {
  5510. private _localChange;
  5511. private remapValueIn;
  5512. private remapValueOut;
  5513. constructor(props: IOptionsLineComponentProps);
  5514. shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
  5515. value: number;
  5516. }): boolean;
  5517. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  5518. updateValue(valueString: string): void;
  5519. render(): JSX.Element;
  5520. }
  5521. }
  5522. declare module INSPECTOR {
  5523. interface INumericInputComponentProps {
  5524. label: string;
  5525. value: number;
  5526. step?: number;
  5527. onChange: (value: number) => void;
  5528. precision?: number;
  5529. }
  5530. export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
  5531. value: string;
  5532. }> {
  5533. static defaultProps: {
  5534. step: number;
  5535. };
  5536. private _localChange;
  5537. constructor(props: INumericInputComponentProps);
  5538. shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
  5539. value: string;
  5540. }): boolean;
  5541. updateValue(evt: any): void;
  5542. onBlur(): void;
  5543. render(): JSX.Element;
  5544. }
  5545. }
  5546. declare module INSPECTOR {
  5547. export interface IColorComponentEntryProps {
  5548. value: number;
  5549. label: string;
  5550. max?: number;
  5551. min?: number;
  5552. onChange: (value: number) => void;
  5553. }
  5554. export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
  5555. constructor(props: IColorComponentEntryProps);
  5556. updateValue(valueString: string): void;
  5557. render(): JSX.Element;
  5558. }
  5559. }
  5560. declare module INSPECTOR {
  5561. export interface IHexColorProps {
  5562. value: string;
  5563. expectedLength: number;
  5564. onChange: (value: string) => void;
  5565. }
  5566. export class HexColor extends React.Component<IHexColorProps, {
  5567. hex: string;
  5568. }> {
  5569. constructor(props: IHexColorProps);
  5570. shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
  5571. hex: string;
  5572. }): boolean;
  5573. updateHexValue(valueString: string): void;
  5574. render(): JSX.Element;
  5575. }
  5576. }
  5577. declare module INSPECTOR {
  5578. /**
  5579. * Interface used to specify creation options for color picker
  5580. */
  5581. export interface IColorPickerProps {
  5582. color: BABYLON.Color3 | BABYLON.Color4;
  5583. debugMode?: boolean;
  5584. onColorChanged?: (color: BABYLON.Color3 | BABYLON.Color4) => void;
  5585. }
  5586. /**
  5587. * Interface used to specify creation options for color picker
  5588. */
  5589. export interface IColorPickerState {
  5590. color: BABYLON.Color3;
  5591. alpha: number;
  5592. }
  5593. /**
  5594. * Class used to create a color picker
  5595. */
  5596. export class BABYLON.GUI.ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
  5597. private _saturationRef;
  5598. private _hueRef;
  5599. private _isSaturationPointerDown;
  5600. private _isHuePointerDown;
  5601. constructor(props: IColorPickerProps);
  5602. onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  5603. onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  5604. onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  5605. onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
  5606. onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
  5607. onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
  5608. private _evaluateSaturation;
  5609. private _evaluateHue;
  5610. componentDidUpdate(): void;
  5611. raiseOnColorChanged(): void;
  5612. render(): JSX.Element;
  5613. }
  5614. }
  5615. declare module INSPECTOR {
  5616. export interface IColorPickerComponentProps {
  5617. value: BABYLON.Color4 | BABYLON.Color3;
  5618. onColorChanged: (newOne: string) => void;
  5619. }
  5620. interface IColorPickerComponentState {
  5621. pickerEnabled: boolean;
  5622. color: BABYLON.Color3 | BABYLON.Color4;
  5623. hex: string;
  5624. }
  5625. export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
  5626. private _floatRef;
  5627. private _floatHostRef;
  5628. constructor(props: IColorPickerComponentProps);
  5629. syncPositions(): void;
  5630. shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
  5631. componentDidUpdate(): void;
  5632. componentDidMount(): void;
  5633. render(): JSX.Element;
  5634. }
  5635. }
  5636. declare module INSPECTOR {
  5637. export interface IColor3LineComponentProps {
  5638. label: string;
  5639. target: any;
  5640. propertyName: string;
  5641. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5642. isLinear?: boolean;
  5643. }
  5644. export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
  5645. isExpanded: boolean;
  5646. color: BABYLON.Color3;
  5647. }> {
  5648. private _localChange;
  5649. constructor(props: IColor3LineComponentProps);
  5650. shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
  5651. color: BABYLON.Color3;
  5652. }): boolean;
  5653. setPropertyValue(newColor: BABYLON.Color3): void;
  5654. onChange(newValue: string): void;
  5655. switchExpandState(): void;
  5656. raiseOnPropertyChanged(previousValue: BABYLON.Color3): void;
  5657. updateStateR(value: number): void;
  5658. updateStateG(value: number): void;
  5659. updateStateB(value: number): void;
  5660. copyToClipboard(): void;
  5661. render(): JSX.Element;
  5662. }
  5663. }
  5664. declare module INSPECTOR {
  5665. interface IVector3LineComponentProps {
  5666. label: string;
  5667. target: any;
  5668. propertyName: string;
  5669. step?: number;
  5670. onChange?: (newvalue: BABYLON.Vector3) => void;
  5671. useEuler?: boolean;
  5672. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5673. noSlider?: boolean;
  5674. }
  5675. export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
  5676. isExpanded: boolean;
  5677. value: BABYLON.Vector3;
  5678. }> {
  5679. static defaultProps: {
  5680. step: number;
  5681. };
  5682. private _localChange;
  5683. constructor(props: IVector3LineComponentProps);
  5684. getCurrentValue(): any;
  5685. shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
  5686. isExpanded: boolean;
  5687. value: BABYLON.Vector3;
  5688. }): boolean;
  5689. switchExpandState(): void;
  5690. raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void;
  5691. updateVector3(): void;
  5692. updateStateX(value: number): void;
  5693. updateStateY(value: number): void;
  5694. updateStateZ(value: number): void;
  5695. render(): JSX.Element;
  5696. }
  5697. }
  5698. declare module INSPECTOR {
  5699. interface IQuaternionLineComponentProps {
  5700. label: string;
  5701. target: any;
  5702. useEuler?: boolean;
  5703. propertyName: string;
  5704. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5705. }
  5706. export class QuaternionLineComponent extends React.Component<IQuaternionLineComponentProps, {
  5707. isExpanded: boolean;
  5708. value: BABYLON.Quaternion;
  5709. eulerValue: BABYLON.Vector3;
  5710. }> {
  5711. private _localChange;
  5712. constructor(props: IQuaternionLineComponentProps);
  5713. _checkRoundCircle(a: number, b: number): boolean;
  5714. shouldComponentUpdate(nextProps: IQuaternionLineComponentProps, nextState: {
  5715. isExpanded: boolean;
  5716. value: BABYLON.Quaternion;
  5717. eulerValue: BABYLON.Vector3;
  5718. }): boolean;
  5719. switchExpandState(): void;
  5720. raiseOnPropertyChanged(currentValue: BABYLON.Quaternion, previousValue: BABYLON.Quaternion): void;
  5721. updateQuaternion(): void;
  5722. updateStateX(value: number): void;
  5723. updateStateY(value: number): void;
  5724. updateStateZ(value: number): void;
  5725. updateStateW(value: number): void;
  5726. updateQuaternionFromEuler(): void;
  5727. updateStateEulerX(value: number): void;
  5728. updateStateEulerY(value: number): void;
  5729. updateStateEulerZ(value: number): void;
  5730. render(): JSX.Element;
  5731. }
  5732. }
  5733. declare module INSPECTOR {
  5734. interface ITextInputLineComponentProps {
  5735. label: string;
  5736. lockObject: LockObject;
  5737. target?: any;
  5738. propertyName?: string;
  5739. value?: string;
  5740. onChange?: (value: string) => void;
  5741. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5742. }
  5743. export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
  5744. value: string;
  5745. }> {
  5746. private _localChange;
  5747. constructor(props: ITextInputLineComponentProps);
  5748. componentWillUnmount(): void;
  5749. shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
  5750. value: string;
  5751. }): boolean;
  5752. raiseOnPropertyChanged(newValue: string, previousValue: string): void;
  5753. updateValue(value: string): void;
  5754. render(): JSX.Element;
  5755. }
  5756. }
  5757. declare module INSPECTOR {
  5758. interface ICustomPropertyGridComponentProps {
  5759. globalState: GlobalState;
  5760. target: any;
  5761. lockObject: LockObject;
  5762. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5763. }
  5764. export class CustomPropertyGridComponent extends React.Component<ICustomPropertyGridComponentProps, {
  5765. mode: number;
  5766. }> {
  5767. constructor(props: ICustomPropertyGridComponentProps);
  5768. renderInspectable(inspectable: BABYLON.IInspectable): JSX.Element | null;
  5769. render(): JSX.Element | null;
  5770. }
  5771. }
  5772. declare module INSPECTOR {
  5773. export interface IButtonLineComponentProps {
  5774. label: string;
  5775. onClick: () => void;
  5776. }
  5777. export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
  5778. constructor(props: IButtonLineComponentProps);
  5779. render(): JSX.Element;
  5780. }
  5781. }
  5782. declare module INSPECTOR {
  5783. interface IAnimationGridComponentProps {
  5784. globalState: GlobalState;
  5785. animatable: BABYLON.IAnimatable;
  5786. scene: BABYLON.Scene;
  5787. lockObject: LockObject;
  5788. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5789. }
  5790. export class AnimationGridComponent extends React.Component<IAnimationGridComponentProps, {
  5791. currentFrame: number;
  5792. }> {
  5793. private _animations;
  5794. private _ranges;
  5795. private _mainAnimatable;
  5796. private _onBeforeRenderObserver;
  5797. private _isPlaying;
  5798. private timelineRef;
  5799. private _animationControl;
  5800. constructor(props: IAnimationGridComponentProps);
  5801. playOrPause(): void;
  5802. componentDidMount(): void;
  5803. componentWillUnmount(): void;
  5804. onCurrentFrameChange(value: number): void;
  5805. onChangeFromOrTo(): void;
  5806. render(): JSX.Element;
  5807. }
  5808. }
  5809. declare module INSPECTOR {
  5810. interface ICommonMaterialPropertyGridComponentProps {
  5811. globalState: GlobalState;
  5812. material: BABYLON.Material;
  5813. lockObject: LockObject;
  5814. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5815. }
  5816. export class CommonMaterialPropertyGridComponent extends React.Component<ICommonMaterialPropertyGridComponentProps> {
  5817. constructor(props: ICommonMaterialPropertyGridComponentProps);
  5818. render(): JSX.Element;
  5819. }
  5820. }
  5821. declare module INSPECTOR {
  5822. interface IMaterialPropertyGridComponentProps {
  5823. globalState: GlobalState;
  5824. material: BABYLON.Material;
  5825. lockObject: LockObject;
  5826. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5827. }
  5828. export class MaterialPropertyGridComponent extends React.Component<IMaterialPropertyGridComponentProps> {
  5829. constructor(props: IMaterialPropertyGridComponentProps);
  5830. render(): JSX.Element;
  5831. }
  5832. }
  5833. declare module INSPECTOR {
  5834. interface IFileButtonLineComponentProps {
  5835. label: string;
  5836. onClick: (file: File) => void;
  5837. accept: string;
  5838. }
  5839. export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
  5840. private static _IDGenerator;
  5841. private _id;
  5842. private uploadInputRef;
  5843. constructor(props: IFileButtonLineComponentProps);
  5844. onChange(evt: any): void;
  5845. render(): JSX.Element;
  5846. }
  5847. }
  5848. declare module INSPECTOR {
  5849. export interface ITextureLinkLineComponentProps {
  5850. label: string;
  5851. texture: BABYLON.Nullable<BABYLON.BaseTexture>;
  5852. material?: BABYLON.Material;
  5853. onSelectionChangedObservable?: BABYLON.Observable<any>;
  5854. onDebugSelectionChangeObservable?: BABYLON.Observable<TextureLinkLineComponent>;
  5855. propertyName?: string;
  5856. onTextureCreated?: (texture: BABYLON.BaseTexture) => void;
  5857. customDebugAction?: (state: boolean) => void;
  5858. onTextureRemoved?: () => void;
  5859. }
  5860. export class TextureLinkLineComponent extends React.Component<ITextureLinkLineComponentProps, {
  5861. isDebugSelected: boolean;
  5862. }> {
  5863. private _onDebugSelectionChangeObserver;
  5864. constructor(props: ITextureLinkLineComponentProps);
  5865. componentDidMount(): void;
  5866. componentWillUnmount(): void;
  5867. debugTexture(): void;
  5868. onLink(): void;
  5869. updateTexture(file: File): void;
  5870. removeTexture(): void;
  5871. render(): JSX.Element | null;
  5872. }
  5873. }
  5874. declare module INSPECTOR {
  5875. interface IStandardMaterialPropertyGridComponentProps {
  5876. globalState: GlobalState;
  5877. material: BABYLON.StandardMaterial;
  5878. lockObject: LockObject;
  5879. onSelectionChangedObservable?: BABYLON.Observable<any>;
  5880. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  5881. }
  5882. export class StandardMaterialPropertyGridComponent extends React.Component<IStandardMaterialPropertyGridComponentProps> {
  5883. private _onDebugSelectionChangeObservable;
  5884. constructor(props: IStandardMaterialPropertyGridComponentProps);
  5885. renderTextures(): JSX.Element;
  5886. render(): JSX.Element;
  5887. }
  5888. }
  5889. declare module INSPECTOR {
  5890. /** @hidden */
  5891. export var lodPixelShader: {
  5892. name: string;
  5893. shader: string;
  5894. };
  5895. }
  5896. declare module INSPECTOR {
  5897. /** @hidden */
  5898. export var lodCubePixelShader: {
  5899. name: string;
  5900. shader: string;
  5901. };
  5902. }
  5903. declare module INSPECTOR {
  5904. export interface TextureChannelsToDisplay {
  5905. R: boolean;
  5906. G: boolean;
  5907. B: boolean;
  5908. A: boolean;
  5909. }
  5910. export class TextureHelper {
  5911. private static _ProcessAsync;
  5912. static GetTextureDataAsync(texture: BABYLON.BaseTexture, width: number, height: number, face: number, channels: TextureChannelsToDisplay, globalState?: GlobalState, lod?: number): Promise<Uint8Array>;
  5913. }
  5914. }
  5915. declare module INSPECTOR {
  5916. interface ITextureLineComponentProps {
  5917. texture: BABYLON.BaseTexture;
  5918. width: number;
  5919. height: number;
  5920. globalState?: GlobalState;
  5921. hideChannelSelect?: boolean;
  5922. }
  5923. export class TextureLineComponent extends React.Component<ITextureLineComponentProps, {
  5924. channels: TextureChannelsToDisplay;
  5925. face: number;
  5926. }> {
  5927. private canvasRef;
  5928. private static TextureChannelStates;
  5929. constructor(props: ITextureLineComponentProps);
  5930. shouldComponentUpdate(nextProps: ITextureLineComponentProps, nextState: {
  5931. channels: TextureChannelsToDisplay;
  5932. face: number;
  5933. }): boolean;
  5934. componentDidMount(): void;
  5935. componentDidUpdate(): void;
  5936. updatePreview(): Promise<void>;
  5937. render(): JSX.Element;
  5938. }
  5939. }
  5940. declare module INSPECTOR {
  5941. interface IPopupComponentProps {
  5942. id: string;
  5943. title: string;
  5944. size: {
  5945. width: number;
  5946. height: number;
  5947. };
  5948. onOpen: (window: Window) => void;
  5949. onClose: (window: Window) => void;
  5950. }
  5951. export class PopupComponent extends React.Component<IPopupComponentProps, {
  5952. isComponentMounted: boolean;
  5953. blockedByBrowser: boolean;
  5954. }> {
  5955. private _container;
  5956. private _window;
  5957. private _curveEditorHost;
  5958. constructor(props: IPopupComponentProps);
  5959. componentDidMount(): void;
  5960. openPopup(): void;
  5961. componentWillUnmount(): void;
  5962. getWindow(): Window | null;
  5963. render(): React.ReactPortal | null;
  5964. }
  5965. }
  5966. declare module INSPECTOR {
  5967. export interface ITool extends IToolData {
  5968. instance: IToolType;
  5969. }
  5970. interface IToolBarProps {
  5971. tools: ITool[];
  5972. addTool(url: string): void;
  5973. changeTool(toolIndex: number): void;
  5974. activeToolIndex: number;
  5975. metadata: IMetadata;
  5976. setMetadata(data: any): void;
  5977. pickerOpen: boolean;
  5978. setPickerOpen(open: boolean): void;
  5979. pickerRef: React.RefObject<HTMLDivElement>;
  5980. hasAlpha: boolean;
  5981. }
  5982. interface IToolBarState {
  5983. toolURL: string;
  5984. addOpen: boolean;
  5985. }
  5986. export class ToolBar extends React.Component<IToolBarProps, IToolBarState> {
  5987. constructor(props: IToolBarProps);
  5988. computeRGBAColor(): BABYLON.Color4;
  5989. shouldComponentUpdate(nextProps: IToolBarProps): boolean;
  5990. render(): JSX.Element;
  5991. }
  5992. }
  5993. declare module INSPECTOR {
  5994. export interface IChannel {
  5995. visible: boolean;
  5996. editable: boolean;
  5997. name: string;
  5998. id: 'R' | 'G' | 'B' | 'A';
  5999. icon: any;
  6000. }
  6001. interface IChannelsBarProps {
  6002. channels: IChannel[];
  6003. setChannels(channelState: IChannel[]): void;
  6004. }
  6005. export class ChannelsBar extends React.PureComponent<IChannelsBarProps> {
  6006. render(): JSX.Element;
  6007. }
  6008. }
  6009. declare module INSPECTOR {
  6010. export const canvasShader: {
  6011. path: {
  6012. vertexSource: string;
  6013. fragmentSource: string;
  6014. };
  6015. options: {
  6016. attributes: string[];
  6017. uniforms: string[];
  6018. };
  6019. };
  6020. }
  6021. declare module INSPECTOR {
  6022. export interface IPixelData {
  6023. x?: number;
  6024. y?: number;
  6025. r?: number;
  6026. g?: number;
  6027. b?: number;
  6028. a?: number;
  6029. }
  6030. export class TextureCanvasManager {
  6031. private _engine;
  6032. private _scene;
  6033. private _camera;
  6034. private _cameraPos;
  6035. private _scale;
  6036. private _isPanning;
  6037. private _mouseX;
  6038. private _mouseY;
  6039. private _UICanvas;
  6040. private _size;
  6041. /** The canvas we paint onto using the canvas API */
  6042. private _2DCanvas;
  6043. /** The canvas we apply post processes to */
  6044. private _3DCanvas;
  6045. /** The canvas which handles channel filtering */
  6046. private _channelsTexture;
  6047. private _3DEngine;
  6048. private _3DPlane;
  6049. private _3DCanvasTexture;
  6050. private _3DScene;
  6051. private _channels;
  6052. private _face;
  6053. private _mipLevel;
  6054. /** The texture from the original engine that we invoked the editor on */
  6055. private _originalTexture;
  6056. /** This is a hidden texture which is only responsible for holding the actual texture memory in the original engine */
  6057. private _target;
  6058. /** The internal texture representation of the original texture */
  6059. private _originalInternalTexture;
  6060. /** Keeps track of whether we have modified the texture */
  6061. private _didEdit;
  6062. private _plane;
  6063. private _planeMaterial;
  6064. /** Tracks which keys are currently pressed */
  6065. private _keyMap;
  6066. private readonly ZOOM_MOUSE_SPEED;
  6067. private readonly ZOOM_KEYBOARD_SPEED;
  6068. private readonly ZOOM_IN_KEY;
  6069. private readonly ZOOM_OUT_KEY;
  6070. private readonly PAN_SPEED;
  6071. private readonly PAN_MOUSE_BUTTON;
  6072. private readonly MIN_SCALE;
  6073. private readonly GRID_SCALE;
  6074. private readonly MAX_SCALE;
  6075. private readonly SELECT_ALL_KEY;
  6076. private readonly SAVE_KEY;
  6077. private readonly RESET_KEY;
  6078. private readonly DESELECT_KEY;
  6079. /** The number of milliseconds between texture updates */
  6080. private readonly PUSH_FREQUENCY;
  6081. private _tool;
  6082. private _setPixelData;
  6083. private _setMipLevel;
  6084. private _window;
  6085. private _metadata;
  6086. private _editing3D;
  6087. private _onUpdate;
  6088. private _setMetadata;
  6089. private _imageData;
  6090. private _canPush;
  6091. private _shouldPush;
  6092. private _paintCanvas;
  6093. constructor(texture: BABYLON.BaseTexture, window: Window, canvasUI: HTMLCanvasElement, canvas2D: HTMLCanvasElement, canvas3D: HTMLCanvasElement, setPixelData: (pixelData: IPixelData) => void, metadata: IMetadata, onUpdate: () => void, setMetadata: (metadata: any) => void, setMipLevel: (level: number) => void);
  6094. updateTexture(): Promise<void>;
  6095. private pushTexture;
  6096. startPainting(): Promise<CanvasRenderingContext2D>;
  6097. updatePainting(): void;
  6098. stopPainting(): void;
  6099. private updateDisplay;
  6100. set channels(channels: IChannel[]);
  6101. paintPixelsOnCanvas(pixelData: Uint8Array, canvas: HTMLCanvasElement): void;
  6102. grabOriginalTexture(): Promise<Uint8Array>;
  6103. getMouseCoordinates(pointerInfo: BABYLON.PointerInfo): BABYLON.Vector2;
  6104. get scene(): BABYLON.Scene;
  6105. get canvas2D(): HTMLCanvasElement;
  6106. get size(): BABYLON.ISize;
  6107. set tool(tool: BABYLON.Nullable<ITool>);
  6108. get tool(): BABYLON.Nullable<ITool>;
  6109. set face(face: number);
  6110. set mipLevel(mipLevel: number);
  6111. /** Returns the 3D scene used for postprocesses */
  6112. get scene3D(): BABYLON.Scene;
  6113. set metadata(metadata: IMetadata);
  6114. private makePlane;
  6115. reset(): void;
  6116. resize(newSize: BABYLON.ISize): Promise<void>;
  6117. setSize(size: BABYLON.ISize): void;
  6118. upload(file: File): void;
  6119. saveTexture(): void;
  6120. dispose(): void;
  6121. }
  6122. }
  6123. declare module INSPECTOR {
  6124. interface IPropertiesBarProps {
  6125. texture: BABYLON.BaseTexture;
  6126. size: BABYLON.ISize;
  6127. saveTexture(): void;
  6128. pixelData: IPixelData;
  6129. face: number;
  6130. setFace(face: number): void;
  6131. resetTexture(): void;
  6132. resizeTexture(width: number, height: number): void;
  6133. uploadTexture(file: File): void;
  6134. mipLevel: number;
  6135. setMipLevel: (mipLevel: number) => void;
  6136. }
  6137. interface IPropertiesBarState {
  6138. width: number;
  6139. height: number;
  6140. }
  6141. export class PropertiesBar extends React.PureComponent<IPropertiesBarProps, IPropertiesBarState> {
  6142. private _resetButton;
  6143. private _uploadButton;
  6144. private _saveButton;
  6145. private _babylonLogo;
  6146. private _resizeButton;
  6147. private _mipUp;
  6148. private _mipDown;
  6149. private _faces;
  6150. constructor(props: IPropertiesBarProps);
  6151. private pixelData;
  6152. private getNewDimension;
  6153. componentWillUpdate(nextProps: IPropertiesBarProps): void;
  6154. render(): JSX.Element;
  6155. }
  6156. }
  6157. declare module INSPECTOR {
  6158. interface IBottomBarProps {
  6159. texture: BABYLON.BaseTexture;
  6160. mipLevel: number;
  6161. }
  6162. export class BottomBar extends React.PureComponent<IBottomBarProps> {
  6163. render(): JSX.Element;
  6164. }
  6165. }
  6166. declare module INSPECTOR {
  6167. interface ITextureCanvasComponentProps {
  6168. canvasUI: React.RefObject<HTMLCanvasElement>;
  6169. canvas2D: React.RefObject<HTMLCanvasElement>;
  6170. canvas3D: React.RefObject<HTMLCanvasElement>;
  6171. texture: BABYLON.BaseTexture;
  6172. }
  6173. export class TextureCanvasComponent extends React.Component<ITextureCanvasComponentProps> {
  6174. render(): JSX.Element;
  6175. }
  6176. }
  6177. declare module INSPECTOR {
  6178. export const Paintbrush: IToolData;
  6179. }
  6180. declare module INSPECTOR {
  6181. export const Eyedropper: IToolData;
  6182. }
  6183. declare module INSPECTOR {
  6184. export const Floodfill: IToolData;
  6185. }
  6186. declare module INSPECTOR {
  6187. export const RectangleSelect: IToolData;
  6188. }
  6189. declare module INSPECTOR {
  6190. const _default: import("babylonjs-inspector/components/actionTabs/tabs/propertyGrids/materials/textures/textureEditorComponent").IToolData[];
  6191. export default _default;
  6192. }
  6193. declare module INSPECTOR {
  6194. interface IToolSettingsProps {
  6195. tool: ITool | undefined;
  6196. }
  6197. export class ToolSettings extends React.Component<IToolSettingsProps> {
  6198. render(): JSX.Element;
  6199. }
  6200. }
  6201. declare module INSPECTOR {
  6202. interface ITextureEditorComponentProps {
  6203. texture: BABYLON.BaseTexture;
  6204. url: string;
  6205. window: React.RefObject<PopupComponent>;
  6206. onUpdate: () => void;
  6207. }
  6208. interface ITextureEditorComponentState {
  6209. tools: ITool[];
  6210. activeToolIndex: number;
  6211. metadata: IMetadata;
  6212. channels: IChannel[];
  6213. pixelData: IPixelData;
  6214. face: number;
  6215. mipLevel: number;
  6216. pickerOpen: boolean;
  6217. }
  6218. export interface IToolParameters {
  6219. /** The visible scene in the editor. Useful for adding pointer and keyboard events. */
  6220. scene: BABYLON.Scene;
  6221. /** The 2D canvas which you can sample pixel data from. Tools should not paint directly on this canvas. */
  6222. canvas2D: HTMLCanvasElement;
  6223. /** The 3D scene which tools can add post processes to. */
  6224. scene3D: BABYLON.Scene;
  6225. /** The size of the texture. */
  6226. size: BABYLON.ISize;
  6227. /** Pushes the editor texture back to the original scene. This should be called every time a tool makes any modification to a texture. */
  6228. updateTexture: () => void;
  6229. /** The metadata object which is shared between all tools. Feel free to store any information here. Do not set this directly: instead call setMetadata. */
  6230. metadata: IMetadata;
  6231. /** Call this when you want to mutate the metadata. */
  6232. setMetadata: (data: any) => void;
  6233. /** Returns the texture coordinates under the cursor */
  6234. getMouseCoordinates: (pointerInfo: BABYLON.PointerInfo) => BABYLON.Vector2;
  6235. /** Provides access to the BABYLON namespace */
  6236. BABYLON: any;
  6237. /** Provides a canvas that you can use the canvas API to paint on. */
  6238. startPainting: () => Promise<CanvasRenderingContext2D>;
  6239. /** After you have painted on your canvas, call this method to push the updates back to the texture. */
  6240. updatePainting: () => void;
  6241. /** Call this when you are finished painting. */
  6242. stopPainting: () => void;
  6243. }
  6244. export interface IToolGUIProps {
  6245. instance: IToolType;
  6246. }
  6247. /** An interface representing the definition of a tool */
  6248. export interface IToolData {
  6249. /** Name to display on the toolbar */
  6250. name: string;
  6251. /** A class definition for the tool including setup and cleanup methods */
  6252. type: IToolConstructable;
  6253. /** An SVG icon encoded in Base64 */
  6254. icon: string;
  6255. /** Whether the tool uses postprocesses */
  6256. is3D?: boolean;
  6257. cursor?: string;
  6258. settingsComponent?: React.ComponentType<IToolGUIProps>;
  6259. }
  6260. export interface IToolType {
  6261. /** Called when the tool is selected. */
  6262. setup: () => void;
  6263. /** Called when the tool is deselected. */
  6264. cleanup: () => void;
  6265. /** Optional. Called when the user resets the texture or uploads a new texture. Tools may want to reset their state when this happens. */
  6266. onReset?: () => void;
  6267. }
  6268. /** For constructable types, TS requires that you define a seperate interface which constructs your actual interface */
  6269. interface IToolConstructable {
  6270. new (getParameters: () => IToolParameters): IToolType;
  6271. }
  6272. export interface IMetadata {
  6273. color: string;
  6274. alpha: number;
  6275. select: {
  6276. x1: number;
  6277. y1: number;
  6278. x2: number;
  6279. y2: number;
  6280. };
  6281. [key: string]: any;
  6282. }
  6283. global {
  6284. var _TOOL_DATA_: IToolData;
  6285. }
  6286. export class TextureEditorComponent extends React.Component<ITextureEditorComponentProps, ITextureEditorComponentState> {
  6287. private _textureCanvasManager;
  6288. private _UICanvas;
  6289. private _2DCanvas;
  6290. private _3DCanvas;
  6291. private _pickerRef;
  6292. private _timer;
  6293. private static PREVIEW_UPDATE_DELAY_MS;
  6294. constructor(props: ITextureEditorComponentProps);
  6295. componentDidMount(): void;
  6296. componentDidUpdate(): void;
  6297. componentWillUnmount(): void;
  6298. textureDidUpdate(): void;
  6299. loadToolFromURL(url: string): void;
  6300. addTools(tools: IToolData[]): void;
  6301. getToolParameters(): IToolParameters;
  6302. changeTool(index: number): void;
  6303. setMetadata(newMetadata: any): void;
  6304. setPickerOpen(open: boolean): void;
  6305. onPointerDown(evt: React.PointerEvent): void;
  6306. saveTexture(): void;
  6307. resetTexture(): void;
  6308. resizeTexture(width: number, height: number): void;
  6309. uploadTexture(file: File): void;
  6310. render(): JSX.Element;
  6311. }
  6312. }
  6313. declare module INSPECTOR {
  6314. interface ITexturePropertyGridComponentProps {
  6315. texture: BABYLON.BaseTexture;
  6316. lockObject: LockObject;
  6317. globalState: GlobalState;
  6318. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6319. }
  6320. interface ITexturePropertyGridComponentState {
  6321. isTextureEditorOpen: boolean;
  6322. textureEditing: BABYLON.Nullable<BABYLON.BaseTexture>;
  6323. }
  6324. export class TexturePropertyGridComponent extends React.Component<ITexturePropertyGridComponentProps, ITexturePropertyGridComponentState> {
  6325. private _adtInstrumentation;
  6326. private popoutWindowRef;
  6327. private textureLineRef;
  6328. private _textureInspectorSize;
  6329. constructor(props: ITexturePropertyGridComponentProps);
  6330. componentWillUnmount(): void;
  6331. updateTexture(file: File): void;
  6332. openTextureEditor(): void;
  6333. onOpenTextureEditor(window: Window): void;
  6334. onCloseTextureEditor(callback?: {
  6335. (): void;
  6336. }): void;
  6337. forceRefresh(): void;
  6338. render(): JSX.Element;
  6339. }
  6340. }
  6341. declare module INSPECTOR {
  6342. interface IVector2LineComponentProps {
  6343. label: string;
  6344. target: any;
  6345. propertyName: string;
  6346. step?: number;
  6347. onChange?: (newvalue: BABYLON.Vector2) => void;
  6348. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6349. }
  6350. export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
  6351. isExpanded: boolean;
  6352. value: BABYLON.Vector2;
  6353. }> {
  6354. static defaultProps: {
  6355. step: number;
  6356. };
  6357. private _localChange;
  6358. constructor(props: IVector2LineComponentProps);
  6359. shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
  6360. isExpanded: boolean;
  6361. value: BABYLON.Vector2;
  6362. }): boolean;
  6363. switchExpandState(): void;
  6364. raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void;
  6365. updateStateX(value: number): void;
  6366. updateStateY(value: number): void;
  6367. render(): JSX.Element;
  6368. }
  6369. }
  6370. declare module INSPECTOR {
  6371. interface IPBRMaterialPropertyGridComponentProps {
  6372. globalState: GlobalState;
  6373. material: BABYLON.PBRMaterial;
  6374. lockObject: LockObject;
  6375. onSelectionChangedObservable?: BABYLON.Observable<any>;
  6376. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6377. }
  6378. export class PBRMaterialPropertyGridComponent extends React.Component<IPBRMaterialPropertyGridComponentProps> {
  6379. private _onDebugSelectionChangeObservable;
  6380. constructor(props: IPBRMaterialPropertyGridComponentProps);
  6381. switchAmbientMode(state: boolean): void;
  6382. renderTextures(onDebugSelectionChangeObservable: BABYLON.Observable<TextureLinkLineComponent>): JSX.Element;
  6383. render(): JSX.Element;
  6384. }
  6385. }
  6386. declare module INSPECTOR {
  6387. interface IRadioButtonLineComponentProps {
  6388. onSelectionChangedObservable: BABYLON.Observable<RadioButtonLineComponent>;
  6389. label: string;
  6390. isSelected: () => boolean;
  6391. onSelect: () => void;
  6392. }
  6393. export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
  6394. isSelected: boolean;
  6395. }> {
  6396. private _onSelectionChangedObserver;
  6397. constructor(props: IRadioButtonLineComponentProps);
  6398. componentDidMount(): void;
  6399. componentWillUnmount(): void;
  6400. onChange(): void;
  6401. render(): JSX.Element;
  6402. }
  6403. }
  6404. declare module INSPECTOR {
  6405. interface IFogPropertyGridComponentProps {
  6406. globalState: GlobalState;
  6407. scene: BABYLON.Scene;
  6408. lockObject: LockObject;
  6409. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6410. }
  6411. export class FogPropertyGridComponent extends React.Component<IFogPropertyGridComponentProps, {
  6412. mode: number;
  6413. }> {
  6414. constructor(props: IFogPropertyGridComponentProps);
  6415. render(): JSX.Element;
  6416. }
  6417. }
  6418. declare module INSPECTOR {
  6419. interface IScenePropertyGridComponentProps {
  6420. globalState: GlobalState;
  6421. scene: BABYLON.Scene;
  6422. lockObject: LockObject;
  6423. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6424. onSelectionChangedObservable?: BABYLON.Observable<any>;
  6425. }
  6426. export class ScenePropertyGridComponent extends React.Component<IScenePropertyGridComponentProps> {
  6427. private _storedEnvironmentTexture;
  6428. private _renderingModeGroupObservable;
  6429. constructor(props: IScenePropertyGridComponentProps);
  6430. setRenderingModes(point: boolean, wireframe: boolean): void;
  6431. switchIBL(): void;
  6432. updateEnvironmentTexture(file: File): void;
  6433. updateGravity(newValue: BABYLON.Vector3): void;
  6434. updateTimeStep(newValue: number): void;
  6435. normalizeScene(): void;
  6436. render(): JSX.Element;
  6437. }
  6438. }
  6439. declare module INSPECTOR {
  6440. interface ICommonLightPropertyGridComponentProps {
  6441. globalState: GlobalState;
  6442. light: BABYLON.Light;
  6443. lockObject: LockObject;
  6444. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6445. }
  6446. export class CommonLightPropertyGridComponent extends React.Component<ICommonLightPropertyGridComponentProps> {
  6447. constructor(props: ICommonLightPropertyGridComponentProps);
  6448. render(): JSX.Element;
  6449. }
  6450. }
  6451. declare module INSPECTOR {
  6452. interface IHemisphericLightPropertyGridComponentProps {
  6453. globalState: GlobalState;
  6454. light: BABYLON.HemisphericLight;
  6455. lockObject: LockObject;
  6456. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6457. }
  6458. export class HemisphericLightPropertyGridComponent extends React.Component<IHemisphericLightPropertyGridComponentProps> {
  6459. constructor(props: IHemisphericLightPropertyGridComponentProps);
  6460. render(): JSX.Element;
  6461. }
  6462. }
  6463. declare module INSPECTOR {
  6464. interface ICommonShadowLightPropertyGridComponentProps {
  6465. globalState: GlobalState;
  6466. light: BABYLON.IShadowLight;
  6467. lockObject: LockObject;
  6468. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6469. }
  6470. export class CommonShadowLightPropertyGridComponent extends React.Component<ICommonShadowLightPropertyGridComponentProps> {
  6471. private _internals;
  6472. constructor(props: ICommonShadowLightPropertyGridComponentProps);
  6473. createShadowGenerator(): void;
  6474. disposeShadowGenerator(): void;
  6475. render(): JSX.Element;
  6476. }
  6477. }
  6478. declare module INSPECTOR {
  6479. interface IPointLightPropertyGridComponentProps {
  6480. globalState: GlobalState;
  6481. light: BABYLON.PointLight;
  6482. lockObject: LockObject;
  6483. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6484. }
  6485. export class PointLightPropertyGridComponent extends React.Component<IPointLightPropertyGridComponentProps> {
  6486. constructor(props: IPointLightPropertyGridComponentProps);
  6487. render(): JSX.Element;
  6488. }
  6489. }
  6490. declare module INSPECTOR {
  6491. interface IHexLineComponentProps {
  6492. label: string;
  6493. target: any;
  6494. propertyName: string;
  6495. lockObject?: LockObject;
  6496. onChange?: (newValue: number) => void;
  6497. isInteger?: boolean;
  6498. replaySourceReplacement?: string;
  6499. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6500. additionalClass?: string;
  6501. step?: string;
  6502. digits?: number;
  6503. useEuler?: boolean;
  6504. min?: number;
  6505. }
  6506. export class HexLineComponent extends React.Component<IHexLineComponentProps, {
  6507. value: string;
  6508. }> {
  6509. private _localChange;
  6510. private _store;
  6511. private _propertyChange;
  6512. constructor(props: IHexLineComponentProps);
  6513. componentWillUnmount(): void;
  6514. shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
  6515. value: string;
  6516. }): boolean;
  6517. raiseOnPropertyChanged(newValue: number, previousValue: number): void;
  6518. convertToHexString(valueString: string): string;
  6519. updateValue(valueString: string, raisePropertyChanged: boolean): void;
  6520. lock(): void;
  6521. unlock(): void;
  6522. render(): JSX.Element;
  6523. }
  6524. }
  6525. declare module INSPECTOR {
  6526. interface ICommonCameraPropertyGridComponentProps {
  6527. globalState: GlobalState;
  6528. camera: BABYLON.Camera;
  6529. lockObject: LockObject;
  6530. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6531. }
  6532. export class CommonCameraPropertyGridComponent extends React.Component<ICommonCameraPropertyGridComponentProps, {
  6533. mode: number;
  6534. }> {
  6535. constructor(props: ICommonCameraPropertyGridComponentProps);
  6536. render(): JSX.Element;
  6537. }
  6538. }
  6539. declare module INSPECTOR {
  6540. interface IFreeCameraPropertyGridComponentProps {
  6541. globalState: GlobalState;
  6542. camera: BABYLON.FreeCamera;
  6543. lockObject: LockObject;
  6544. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6545. }
  6546. export class FreeCameraPropertyGridComponent extends React.Component<IFreeCameraPropertyGridComponentProps> {
  6547. constructor(props: IFreeCameraPropertyGridComponentProps);
  6548. render(): JSX.Element;
  6549. }
  6550. }
  6551. declare module INSPECTOR {
  6552. interface IArcRotateCameraPropertyGridComponentProps {
  6553. globalState: GlobalState;
  6554. camera: BABYLON.ArcRotateCamera;
  6555. lockObject: LockObject;
  6556. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6557. }
  6558. export class ArcRotateCameraPropertyGridComponent extends React.Component<IArcRotateCameraPropertyGridComponentProps> {
  6559. constructor(props: IArcRotateCameraPropertyGridComponentProps);
  6560. render(): JSX.Element;
  6561. }
  6562. }
  6563. declare module INSPECTOR {
  6564. interface IIndentedTextLineComponentProps {
  6565. value?: string;
  6566. color?: string;
  6567. underline?: boolean;
  6568. onLink?: () => void;
  6569. url?: string;
  6570. additionalClass?: string;
  6571. }
  6572. export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
  6573. constructor(props: IIndentedTextLineComponentProps);
  6574. onLink(): void;
  6575. renderContent(): JSX.Element;
  6576. render(): JSX.Element;
  6577. }
  6578. }
  6579. declare module INSPECTOR {
  6580. interface ICommonPropertyGridComponentProps {
  6581. globalState: GlobalState;
  6582. host: {
  6583. metadata: any;
  6584. };
  6585. lockObject: LockObject;
  6586. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6587. }
  6588. export class CommonPropertyGridComponent extends React.Component<ICommonPropertyGridComponentProps> {
  6589. constructor(props: ICommonPropertyGridComponentProps);
  6590. renderLevel(jsonObject: any): JSX.Element[];
  6591. render(): JSX.Element | null;
  6592. }
  6593. }
  6594. declare module INSPECTOR {
  6595. interface IVariantsPropertyGridComponentProps {
  6596. globalState: GlobalState;
  6597. host: any;
  6598. lockObject: LockObject;
  6599. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6600. }
  6601. export class VariantsPropertyGridComponent extends React.Component<IVariantsPropertyGridComponentProps> {
  6602. constructor(props: IVariantsPropertyGridComponentProps);
  6603. private _getVariantsExtension;
  6604. render(): JSX.Element | null;
  6605. }
  6606. }
  6607. declare module INSPECTOR {
  6608. interface IMeshPropertyGridComponentProps {
  6609. globalState: GlobalState;
  6610. mesh: BABYLON.Mesh;
  6611. lockObject: LockObject;
  6612. onSelectionChangedObservable?: BABYLON.Observable<any>;
  6613. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6614. }
  6615. export class MeshPropertyGridComponent extends React.Component<IMeshPropertyGridComponentProps, {
  6616. displayNormals: boolean;
  6617. displayVertexColors: boolean;
  6618. displayBoneWeights: boolean;
  6619. displayBoneIndex: number;
  6620. displaySkeletonMap: boolean;
  6621. }> {
  6622. constructor(props: IMeshPropertyGridComponentProps);
  6623. renderWireframeOver(): void;
  6624. renderNormalVectors(): void;
  6625. displayNormals(): void;
  6626. displayVertexColors(): void;
  6627. displayBoneWeights(): void;
  6628. displaySkeletonMap(): void;
  6629. onBoneDisplayIndexChange(value: number): void;
  6630. onMaterialLink(): void;
  6631. onSourceMeshLink(): void;
  6632. onSkeletonLink(): void;
  6633. convertPhysicsTypeToString(): string;
  6634. render(): JSX.Element;
  6635. }
  6636. }
  6637. declare module INSPECTOR {
  6638. interface ITransformNodePropertyGridComponentProps {
  6639. globalState: GlobalState;
  6640. transformNode: BABYLON.TransformNode;
  6641. lockObject: LockObject;
  6642. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6643. }
  6644. export class TransformNodePropertyGridComponent extends React.Component<ITransformNodePropertyGridComponentProps> {
  6645. constructor(props: ITransformNodePropertyGridComponentProps);
  6646. render(): JSX.Element;
  6647. }
  6648. }
  6649. declare module INSPECTOR {
  6650. interface IBackgroundMaterialPropertyGridComponentProps {
  6651. globalState: GlobalState;
  6652. material: BABYLON.BackgroundMaterial;
  6653. lockObject: LockObject;
  6654. onSelectionChangedObservable?: BABYLON.Observable<any>;
  6655. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6656. }
  6657. export class BackgroundMaterialPropertyGridComponent extends React.Component<IBackgroundMaterialPropertyGridComponentProps> {
  6658. private _onDebugSelectionChangeObservable;
  6659. constructor(props: IBackgroundMaterialPropertyGridComponentProps);
  6660. renderTextures(): JSX.Element;
  6661. render(): JSX.Element;
  6662. }
  6663. }
  6664. declare module INSPECTOR {
  6665. interface ICommonControlPropertyGridComponentProps {
  6666. globalState: GlobalState;
  6667. control: BABYLON.GUI.Control;
  6668. lockObject: LockObject;
  6669. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6670. }
  6671. export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
  6672. constructor(props: ICommonControlPropertyGridComponentProps);
  6673. renderGridInformation(): JSX.Element | null;
  6674. render(): JSX.Element;
  6675. }
  6676. }
  6677. declare module INSPECTOR {
  6678. interface IControlPropertyGridComponentProps {
  6679. globalState: GlobalState;
  6680. control: BABYLON.GUI.Control;
  6681. lockObject: LockObject;
  6682. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6683. }
  6684. export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
  6685. constructor(props: IControlPropertyGridComponentProps);
  6686. render(): JSX.Element;
  6687. }
  6688. }
  6689. declare module INSPECTOR {
  6690. interface ITextBlockPropertyGridComponentProps {
  6691. globalState: GlobalState;
  6692. textBlock: BABYLON.GUI.TextBlock;
  6693. lockObject: LockObject;
  6694. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6695. }
  6696. export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
  6697. constructor(props: ITextBlockPropertyGridComponentProps);
  6698. render(): JSX.Element;
  6699. }
  6700. }
  6701. declare module INSPECTOR {
  6702. interface IInputTextPropertyGridComponentProps {
  6703. globalState: GlobalState;
  6704. inputText: BABYLON.GUI.InputText;
  6705. lockObject: LockObject;
  6706. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6707. }
  6708. export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
  6709. constructor(props: IInputTextPropertyGridComponentProps);
  6710. render(): JSX.Element;
  6711. }
  6712. }
  6713. declare module INSPECTOR {
  6714. interface IColorPickerPropertyGridComponentProps {
  6715. globalState: GlobalState;
  6716. colorPicker: BABYLON.GUI.ColorPicker;
  6717. lockObject: LockObject;
  6718. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6719. }
  6720. export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
  6721. constructor(props: IColorPickerPropertyGridComponentProps);
  6722. render(): JSX.Element;
  6723. }
  6724. }
  6725. declare module INSPECTOR {
  6726. interface IAnimationGroupGridComponentProps {
  6727. globalState: GlobalState;
  6728. animationGroup: BABYLON.AnimationGroup;
  6729. scene: BABYLON.Scene;
  6730. lockObject: LockObject;
  6731. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6732. }
  6733. export class AnimationGroupGridComponent extends React.Component<IAnimationGroupGridComponentProps, {
  6734. playButtonText: string;
  6735. currentFrame: number;
  6736. }> {
  6737. private _onAnimationGroupPlayObserver;
  6738. private _onAnimationGroupPauseObserver;
  6739. private _onBeforeRenderObserver;
  6740. private timelineRef;
  6741. constructor(props: IAnimationGroupGridComponentProps);
  6742. disconnect(animationGroup: BABYLON.AnimationGroup): void;
  6743. connect(animationGroup: BABYLON.AnimationGroup): void;
  6744. updateCurrentFrame(animationGroup: BABYLON.AnimationGroup): void;
  6745. shouldComponentUpdate(nextProps: IAnimationGroupGridComponentProps): boolean;
  6746. componentWillUnmount(): void;
  6747. playOrPause(): void;
  6748. onCurrentFrameChange(value: number): void;
  6749. render(): JSX.Element;
  6750. }
  6751. }
  6752. declare module INSPECTOR {
  6753. interface IImagePropertyGridComponentProps {
  6754. globalState: GlobalState;
  6755. image: BABYLON.GUI.Image;
  6756. lockObject: LockObject;
  6757. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6758. }
  6759. export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
  6760. constructor(props: IImagePropertyGridComponentProps);
  6761. render(): JSX.Element;
  6762. }
  6763. }
  6764. declare module INSPECTOR {
  6765. interface ISliderPropertyGridComponentProps {
  6766. globalState: GlobalState;
  6767. slider: BABYLON.GUI.Slider;
  6768. lockObject: LockObject;
  6769. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6770. }
  6771. export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
  6772. constructor(props: ISliderPropertyGridComponentProps);
  6773. render(): JSX.Element;
  6774. }
  6775. }
  6776. declare module INSPECTOR {
  6777. interface IImageBasedSliderPropertyGridComponentProps {
  6778. globalState: GlobalState;
  6779. imageBasedSlider: BABYLON.GUI.ImageBasedSlider;
  6780. lockObject: LockObject;
  6781. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6782. }
  6783. export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
  6784. constructor(props: IImageBasedSliderPropertyGridComponentProps);
  6785. render(): JSX.Element;
  6786. }
  6787. }
  6788. declare module INSPECTOR {
  6789. interface IRectanglePropertyGridComponentProps {
  6790. globalState: GlobalState;
  6791. rectangle: BABYLON.GUI.Rectangle;
  6792. lockObject: LockObject;
  6793. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6794. }
  6795. export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
  6796. constructor(props: IRectanglePropertyGridComponentProps);
  6797. render(): JSX.Element;
  6798. }
  6799. }
  6800. declare module INSPECTOR {
  6801. interface IEllipsePropertyGridComponentProps {
  6802. globalState: GlobalState;
  6803. ellipse: BABYLON.GUI.Ellipse;
  6804. lockObject: LockObject;
  6805. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6806. }
  6807. export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
  6808. constructor(props: IEllipsePropertyGridComponentProps);
  6809. render(): JSX.Element;
  6810. }
  6811. }
  6812. declare module INSPECTOR {
  6813. interface ICheckboxPropertyGridComponentProps {
  6814. globalState: GlobalState;
  6815. checkbox: BABYLON.GUI.Checkbox;
  6816. lockObject: LockObject;
  6817. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6818. }
  6819. export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
  6820. constructor(props: ICheckboxPropertyGridComponentProps);
  6821. render(): JSX.Element;
  6822. }
  6823. }
  6824. declare module INSPECTOR {
  6825. interface IRadioButtonPropertyGridComponentProps {
  6826. globalState: GlobalState;
  6827. radioButton: BABYLON.GUI.RadioButton;
  6828. lockObject: LockObject;
  6829. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6830. }
  6831. export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
  6832. constructor(props: IRadioButtonPropertyGridComponentProps);
  6833. render(): JSX.Element;
  6834. }
  6835. }
  6836. declare module INSPECTOR {
  6837. interface ILinePropertyGridComponentProps {
  6838. globalState: GlobalState;
  6839. line: BABYLON.GUI.Line;
  6840. lockObject: LockObject;
  6841. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6842. }
  6843. export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
  6844. constructor(props: ILinePropertyGridComponentProps);
  6845. onDashChange(value: string): void;
  6846. render(): JSX.Element;
  6847. }
  6848. }
  6849. declare module INSPECTOR {
  6850. interface IScrollViewerPropertyGridComponentProps {
  6851. globalState: GlobalState;
  6852. scrollViewer: BABYLON.GUI.ScrollViewer;
  6853. lockObject: LockObject;
  6854. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6855. }
  6856. export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
  6857. constructor(props: IScrollViewerPropertyGridComponentProps);
  6858. render(): JSX.Element;
  6859. }
  6860. }
  6861. declare module INSPECTOR {
  6862. interface IGridPropertyGridComponentProps {
  6863. globalState: GlobalState;
  6864. grid: BABYLON.GUI.Grid;
  6865. lockObject: LockObject;
  6866. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6867. }
  6868. export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
  6869. constructor(props: IGridPropertyGridComponentProps);
  6870. renderRows(): JSX.Element[];
  6871. renderColumns(): JSX.Element[];
  6872. render(): JSX.Element;
  6873. }
  6874. }
  6875. declare module INSPECTOR {
  6876. interface IPBRMetallicRoughnessMaterialPropertyGridComponentProps {
  6877. globalState: GlobalState;
  6878. material: BABYLON.PBRMetallicRoughnessMaterial;
  6879. lockObject: LockObject;
  6880. onSelectionChangedObservable?: BABYLON.Observable<any>;
  6881. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6882. }
  6883. export class PBRMetallicRoughnessMaterialPropertyGridComponent extends React.Component<IPBRMetallicRoughnessMaterialPropertyGridComponentProps> {
  6884. private _onDebugSelectionChangeObservable;
  6885. constructor(props: IPBRMetallicRoughnessMaterialPropertyGridComponentProps);
  6886. renderTextures(): JSX.Element;
  6887. render(): JSX.Element;
  6888. }
  6889. }
  6890. declare module INSPECTOR {
  6891. interface IPBRSpecularGlossinessMaterialPropertyGridComponentProps {
  6892. globalState: GlobalState;
  6893. material: BABYLON.PBRSpecularGlossinessMaterial;
  6894. lockObject: LockObject;
  6895. onSelectionChangedObservable?: BABYLON.Observable<any>;
  6896. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6897. }
  6898. export class PBRSpecularGlossinessMaterialPropertyGridComponent extends React.Component<IPBRSpecularGlossinessMaterialPropertyGridComponentProps> {
  6899. private _onDebugSelectionChangeObservable;
  6900. constructor(props: IPBRSpecularGlossinessMaterialPropertyGridComponentProps);
  6901. renderTextures(): JSX.Element;
  6902. render(): JSX.Element;
  6903. }
  6904. }
  6905. declare module INSPECTOR {
  6906. interface IStackPanelPropertyGridComponentProps {
  6907. globalState: GlobalState;
  6908. stackPanel: BABYLON.GUI.StackPanel;
  6909. lockObject: LockObject;
  6910. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6911. }
  6912. export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
  6913. constructor(props: IStackPanelPropertyGridComponentProps);
  6914. render(): JSX.Element;
  6915. }
  6916. }
  6917. declare module INSPECTOR {
  6918. interface ICommonPostProcessPropertyGridComponentProps {
  6919. globalState: GlobalState;
  6920. postProcess: BABYLON.PostProcess;
  6921. lockObject: LockObject;
  6922. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6923. }
  6924. export class CommonPostProcessPropertyGridComponent extends React.Component<ICommonPostProcessPropertyGridComponentProps> {
  6925. constructor(props: ICommonPostProcessPropertyGridComponentProps);
  6926. render(): JSX.Element;
  6927. }
  6928. }
  6929. declare module INSPECTOR {
  6930. interface IPostProcessPropertyGridComponentProps {
  6931. globalState: GlobalState;
  6932. postProcess: BABYLON.PostProcess;
  6933. lockObject: LockObject;
  6934. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6935. }
  6936. export class PostProcessPropertyGridComponent extends React.Component<IPostProcessPropertyGridComponentProps> {
  6937. constructor(props: IPostProcessPropertyGridComponentProps);
  6938. edit(): void;
  6939. render(): JSX.Element;
  6940. }
  6941. }
  6942. declare module INSPECTOR {
  6943. interface ICommonRenderingPipelinePropertyGridComponentProps {
  6944. globalState: GlobalState;
  6945. renderPipeline: BABYLON.PostProcessRenderPipeline;
  6946. lockObject: LockObject;
  6947. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6948. }
  6949. export class CommonRenderingPipelinePropertyGridComponent extends React.Component<ICommonRenderingPipelinePropertyGridComponentProps> {
  6950. constructor(props: ICommonRenderingPipelinePropertyGridComponentProps);
  6951. render(): JSX.Element;
  6952. }
  6953. }
  6954. declare module INSPECTOR {
  6955. interface IRenderingPipelinePropertyGridComponentProps {
  6956. globalState: GlobalState;
  6957. renderPipeline: BABYLON.PostProcessRenderPipeline;
  6958. lockObject: LockObject;
  6959. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6960. }
  6961. export class RenderingPipelinePropertyGridComponent extends React.Component<IRenderingPipelinePropertyGridComponentProps> {
  6962. constructor(props: IRenderingPipelinePropertyGridComponentProps);
  6963. render(): JSX.Element;
  6964. }
  6965. }
  6966. declare module INSPECTOR {
  6967. interface IDefaultRenderingPipelinePropertyGridComponentProps {
  6968. globalState: GlobalState;
  6969. renderPipeline: BABYLON.DefaultRenderingPipeline;
  6970. lockObject: LockObject;
  6971. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6972. }
  6973. export class DefaultRenderingPipelinePropertyGridComponent extends React.Component<IDefaultRenderingPipelinePropertyGridComponentProps> {
  6974. constructor(props: IDefaultRenderingPipelinePropertyGridComponentProps);
  6975. render(): JSX.Element;
  6976. }
  6977. }
  6978. declare module INSPECTOR {
  6979. interface ISSAORenderingPipelinePropertyGridComponentProps {
  6980. globalState: GlobalState;
  6981. renderPipeline: BABYLON.SSAORenderingPipeline;
  6982. lockObject: LockObject;
  6983. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6984. }
  6985. export class SSAORenderingPipelinePropertyGridComponent extends React.Component<ISSAORenderingPipelinePropertyGridComponentProps> {
  6986. constructor(props: ISSAORenderingPipelinePropertyGridComponentProps);
  6987. render(): JSX.Element;
  6988. }
  6989. }
  6990. declare module INSPECTOR {
  6991. interface ISSAO2RenderingPipelinePropertyGridComponentProps {
  6992. globalState: GlobalState;
  6993. renderPipeline: BABYLON.SSAO2RenderingPipeline;
  6994. lockObject: LockObject;
  6995. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  6996. }
  6997. export class SSAO2RenderingPipelinePropertyGridComponent extends React.Component<ISSAO2RenderingPipelinePropertyGridComponentProps> {
  6998. constructor(props: ISSAO2RenderingPipelinePropertyGridComponentProps);
  6999. render(): JSX.Element;
  7000. }
  7001. }
  7002. declare module INSPECTOR {
  7003. interface ISkeletonPropertyGridComponentProps {
  7004. globalState: GlobalState;
  7005. skeleton: BABYLON.Skeleton;
  7006. lockObject: LockObject;
  7007. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7008. }
  7009. export class SkeletonPropertyGridComponent extends React.Component<ISkeletonPropertyGridComponentProps> {
  7010. private _skeletonViewersEnabled;
  7011. private _skeletonViewerDisplayOptions;
  7012. private _skeletonViewers;
  7013. constructor(props: ISkeletonPropertyGridComponentProps);
  7014. switchSkeletonViewers(): void;
  7015. checkSkeletonViewerState(props: ISkeletonPropertyGridComponentProps): void;
  7016. changeDisplayMode(): void;
  7017. changeDisplayOptions(option: string, value: number): void;
  7018. shouldComponentUpdate(nextProps: ISkeletonPropertyGridComponentProps): boolean;
  7019. onOverrideMeshLink(): void;
  7020. render(): JSX.Element;
  7021. }
  7022. }
  7023. declare module INSPECTOR {
  7024. interface IBonePropertyGridComponentProps {
  7025. globalState: GlobalState;
  7026. bone: BABYLON.Bone;
  7027. lockObject: LockObject;
  7028. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7029. }
  7030. export class BonePropertyGridComponent extends React.Component<IBonePropertyGridComponentProps> {
  7031. constructor(props: IBonePropertyGridComponentProps);
  7032. onTransformNodeLink(): void;
  7033. render(): JSX.Element;
  7034. }
  7035. }
  7036. declare module INSPECTOR {
  7037. interface IDirectionalLightPropertyGridComponentProps {
  7038. globalState: GlobalState;
  7039. light: BABYLON.DirectionalLight;
  7040. lockObject: LockObject;
  7041. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7042. }
  7043. export class DirectionalLightPropertyGridComponent extends React.Component<IDirectionalLightPropertyGridComponentProps> {
  7044. constructor(props: IDirectionalLightPropertyGridComponentProps);
  7045. render(): JSX.Element;
  7046. }
  7047. }
  7048. declare module INSPECTOR {
  7049. interface ISpotLightPropertyGridComponentProps {
  7050. globalState: GlobalState;
  7051. light: BABYLON.SpotLight;
  7052. lockObject: LockObject;
  7053. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7054. }
  7055. export class SpotLightPropertyGridComponent extends React.Component<ISpotLightPropertyGridComponentProps> {
  7056. constructor(props: ISpotLightPropertyGridComponentProps);
  7057. render(): JSX.Element;
  7058. }
  7059. }
  7060. declare module INSPECTOR {
  7061. interface ILenstRenderingPipelinePropertyGridComponentProps {
  7062. globalState: GlobalState;
  7063. renderPipeline: BABYLON.LensRenderingPipeline;
  7064. lockObject: LockObject;
  7065. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7066. }
  7067. export class LensRenderingPipelinePropertyGridComponent extends React.Component<ILenstRenderingPipelinePropertyGridComponentProps> {
  7068. constructor(props: ILenstRenderingPipelinePropertyGridComponentProps);
  7069. render(): JSX.Element;
  7070. }
  7071. }
  7072. declare module INSPECTOR {
  7073. interface IVector4LineComponentProps {
  7074. label: string;
  7075. target: any;
  7076. propertyName: string;
  7077. step?: number;
  7078. onChange?: (newvalue: BABYLON.Vector4) => void;
  7079. useEuler?: boolean;
  7080. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7081. }
  7082. export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
  7083. isExpanded: boolean;
  7084. value: BABYLON.Vector4;
  7085. }> {
  7086. static defaultProps: {
  7087. step: number;
  7088. };
  7089. private _localChange;
  7090. constructor(props: IVector4LineComponentProps);
  7091. getCurrentValue(): any;
  7092. shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
  7093. isExpanded: boolean;
  7094. value: BABYLON.Vector4;
  7095. }): boolean;
  7096. switchExpandState(): void;
  7097. raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void;
  7098. updateVector4(): void;
  7099. updateStateX(value: number): void;
  7100. updateStateY(value: number): void;
  7101. updateStateZ(value: number): void;
  7102. updateStateW(value: number): void;
  7103. render(): JSX.Element;
  7104. }
  7105. }
  7106. declare module INSPECTOR {
  7107. interface IGradientStepComponentProps {
  7108. globalState: GlobalState;
  7109. step: BABYLON.GradientBlockColorStep;
  7110. lineIndex: number;
  7111. onDelete: () => void;
  7112. onUpdateStep: () => void;
  7113. onCheckForReOrder: () => void;
  7114. onCopy?: () => void;
  7115. }
  7116. export class GradientStepComponent extends React.Component<IGradientStepComponentProps, {
  7117. gradient: number;
  7118. }> {
  7119. constructor(props: IGradientStepComponentProps);
  7120. updateColor(color: string): void;
  7121. updateStep(gradient: number): void;
  7122. onPointerUp(): void;
  7123. render(): JSX.Element;
  7124. }
  7125. }
  7126. declare module INSPECTOR {
  7127. export interface IPropertyComponentProps {
  7128. globalState: GlobalState;
  7129. block: BABYLON.NodeMaterialBlock;
  7130. }
  7131. }
  7132. declare module INSPECTOR {
  7133. export class GradientPropertyTabComponent extends React.Component<IPropertyComponentProps> {
  7134. private _gradientBlock;
  7135. constructor(props: IPropertyComponentProps);
  7136. forceRebuild(): void;
  7137. deleteStep(step: BABYLON.GradientBlockColorStep): void;
  7138. copyStep(step: BABYLON.GradientBlockColorStep): void;
  7139. addNewStep(): void;
  7140. checkForReOrder(): void;
  7141. render(): JSX.Element;
  7142. }
  7143. }
  7144. declare module INSPECTOR {
  7145. export interface IColor4LineComponentProps {
  7146. label: string;
  7147. target: any;
  7148. propertyName: string;
  7149. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7150. onChange?: () => void;
  7151. isLinear?: boolean;
  7152. }
  7153. export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
  7154. isExpanded: boolean;
  7155. color: BABYLON.Color4;
  7156. }> {
  7157. private _localChange;
  7158. constructor(props: IColor4LineComponentProps);
  7159. shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
  7160. color: BABYLON.Color4;
  7161. }): boolean;
  7162. setPropertyValue(newColor: BABYLON.Color4): void;
  7163. onChange(newValue: string): void;
  7164. switchExpandState(): void;
  7165. raiseOnPropertyChanged(previousValue: BABYLON.Color4): void;
  7166. updateStateR(value: number): void;
  7167. updateStateG(value: number): void;
  7168. updateStateB(value: number): void;
  7169. updateStateA(value: number): void;
  7170. copyToClipboard(): void;
  7171. render(): JSX.Element;
  7172. }
  7173. }
  7174. declare module INSPECTOR {
  7175. interface INodeMaterialPropertyGridComponentProps {
  7176. globalState: GlobalState;
  7177. material: BABYLON.NodeMaterial;
  7178. lockObject: LockObject;
  7179. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7180. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7181. }
  7182. export class NodeMaterialPropertyGridComponent extends React.Component<INodeMaterialPropertyGridComponentProps> {
  7183. private _onDebugSelectionChangeObservable;
  7184. constructor(props: INodeMaterialPropertyGridComponentProps);
  7185. edit(): void;
  7186. renderTextures(): JSX.Element | null;
  7187. renderInputBlock(block: BABYLON.InputBlock): JSX.Element | null;
  7188. renderInputValues(): JSX.Element;
  7189. render(): JSX.Element;
  7190. }
  7191. }
  7192. declare module INSPECTOR {
  7193. interface IMultiMaterialPropertyGridComponentProps {
  7194. globalState: GlobalState;
  7195. material: BABYLON.MultiMaterial;
  7196. lockObject: LockObject;
  7197. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7198. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7199. }
  7200. export class MultiMaterialPropertyGridComponent extends React.Component<IMultiMaterialPropertyGridComponentProps> {
  7201. constructor(props: IMultiMaterialPropertyGridComponentProps);
  7202. onMaterialLink(mat: BABYLON.Material): void;
  7203. renderChildMaterial(): JSX.Element;
  7204. render(): JSX.Element;
  7205. }
  7206. }
  7207. declare module INSPECTOR {
  7208. interface IBoxEmitterGridComponentProps {
  7209. globalState: GlobalState;
  7210. emitter: BABYLON.BoxParticleEmitter;
  7211. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7212. }
  7213. export class BoxEmitterGridComponent extends React.Component<IBoxEmitterGridComponentProps> {
  7214. constructor(props: IBoxEmitterGridComponentProps);
  7215. render(): JSX.Element;
  7216. }
  7217. }
  7218. declare module INSPECTOR {
  7219. interface IConeEmitterGridComponentProps {
  7220. globalState: GlobalState;
  7221. emitter: BABYLON.ConeParticleEmitter;
  7222. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7223. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7224. }
  7225. export class ConeEmitterGridComponent extends React.Component<IConeEmitterGridComponentProps> {
  7226. constructor(props: IConeEmitterGridComponentProps);
  7227. render(): JSX.Element;
  7228. }
  7229. }
  7230. declare module INSPECTOR {
  7231. interface ICylinderEmitterGridComponentProps {
  7232. globalState: GlobalState;
  7233. emitter: BABYLON.CylinderParticleEmitter;
  7234. lockObject: LockObject;
  7235. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7236. }
  7237. export class CylinderEmitterGridComponent extends React.Component<ICylinderEmitterGridComponentProps> {
  7238. constructor(props: ICylinderEmitterGridComponentProps);
  7239. render(): JSX.Element;
  7240. }
  7241. }
  7242. declare module INSPECTOR {
  7243. interface IHemisphericEmitterGridComponentProps {
  7244. globalState: GlobalState;
  7245. emitter: BABYLON.HemisphericParticleEmitter;
  7246. lockObject: LockObject;
  7247. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7248. }
  7249. export class HemisphericEmitterGridComponent extends React.Component<IHemisphericEmitterGridComponentProps> {
  7250. constructor(props: IHemisphericEmitterGridComponentProps);
  7251. render(): JSX.Element;
  7252. }
  7253. }
  7254. declare module INSPECTOR {
  7255. interface IPointEmitterGridComponentProps {
  7256. globalState: GlobalState;
  7257. emitter: BABYLON.PointParticleEmitter;
  7258. lockObject: LockObject;
  7259. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7260. }
  7261. export class PointEmitterGridComponent extends React.Component<IPointEmitterGridComponentProps> {
  7262. constructor(props: IPointEmitterGridComponentProps);
  7263. render(): JSX.Element;
  7264. }
  7265. }
  7266. declare module INSPECTOR {
  7267. interface ISphereEmitterGridComponentProps {
  7268. globalState: GlobalState;
  7269. emitter: BABYLON.SphereParticleEmitter;
  7270. lockObject: LockObject;
  7271. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7272. }
  7273. export class SphereEmitterGridComponent extends React.Component<ISphereEmitterGridComponentProps> {
  7274. constructor(props: ISphereEmitterGridComponentProps);
  7275. render(): JSX.Element;
  7276. }
  7277. }
  7278. declare module INSPECTOR {
  7279. interface IMeshPickerComponentProps {
  7280. globalState: GlobalState;
  7281. target: any;
  7282. property: string;
  7283. scene: BABYLON.Scene;
  7284. label: string;
  7285. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7286. }
  7287. export class MeshPickerComponent extends React.Component<IMeshPickerComponentProps> {
  7288. constructor(props: IMeshPickerComponentProps);
  7289. render(): JSX.Element;
  7290. }
  7291. }
  7292. declare module INSPECTOR {
  7293. interface IMeshEmitterGridComponentProps {
  7294. globalState: GlobalState;
  7295. emitter: BABYLON.MeshParticleEmitter;
  7296. scene: BABYLON.Scene;
  7297. lockObject: LockObject;
  7298. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7299. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7300. }
  7301. export class MeshEmitterGridComponent extends React.Component<IMeshEmitterGridComponentProps> {
  7302. constructor(props: IMeshEmitterGridComponentProps);
  7303. render(): JSX.Element;
  7304. }
  7305. }
  7306. declare module INSPECTOR {
  7307. interface IFactorGradientStepGridComponent {
  7308. globalState: GlobalState;
  7309. gradient: BABYLON.FactorGradient;
  7310. lockObject: LockObject;
  7311. lineIndex: number;
  7312. onDelete: () => void;
  7313. onUpdateGradient: () => void;
  7314. onCheckForReOrder: () => void;
  7315. host: BABYLON.IParticleSystem;
  7316. codeRecorderPropertyName: string;
  7317. }
  7318. export class FactorGradientStepGridComponent extends React.Component<IFactorGradientStepGridComponent, {
  7319. gradient: number;
  7320. factor1: string;
  7321. factor2?: string;
  7322. }> {
  7323. constructor(props: IFactorGradientStepGridComponent);
  7324. shouldComponentUpdate(nextProps: IFactorGradientStepGridComponent, nextState: {
  7325. gradient: number;
  7326. factor1: string;
  7327. factor2?: string;
  7328. }): boolean;
  7329. updateFactor1(valueString: string): void;
  7330. updateFactor2(valueString: string): void;
  7331. updateGradient(gradient: number): void;
  7332. onPointerUp(): void;
  7333. lock(): void;
  7334. unlock(): void;
  7335. render(): JSX.Element;
  7336. }
  7337. }
  7338. declare module INSPECTOR {
  7339. interface IColorGradientStepGridComponent {
  7340. globalState: GlobalState;
  7341. gradient: BABYLON.ColorGradient | BABYLON.Color3Gradient;
  7342. lockObject: LockObject;
  7343. lineIndex: number;
  7344. isColor3: boolean;
  7345. onDelete: () => void;
  7346. onUpdateGradient: () => void;
  7347. onCheckForReOrder: () => void;
  7348. host: BABYLON.IParticleSystem;
  7349. codeRecorderPropertyName: string;
  7350. }
  7351. export class ColorGradientStepGridComponent extends React.Component<IColorGradientStepGridComponent, {
  7352. gradient: number;
  7353. }> {
  7354. constructor(props: IColorGradientStepGridComponent);
  7355. updateColor1(color: string): void;
  7356. updateColor2(color: string): void;
  7357. updateGradient(gradient: number): void;
  7358. onPointerUp(): void;
  7359. lock(): void;
  7360. unlock(): void;
  7361. render(): JSX.Element;
  7362. }
  7363. }
  7364. declare module INSPECTOR {
  7365. interface ILinkButtonComponentProps {
  7366. label: string;
  7367. buttonLabel: string;
  7368. url?: string;
  7369. onClick: () => void;
  7370. onIconClick?: () => void;
  7371. }
  7372. export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
  7373. constructor(props: ILinkButtonComponentProps);
  7374. onLink(): void;
  7375. render(): JSX.Element;
  7376. }
  7377. }
  7378. declare module INSPECTOR {
  7379. export enum GradientGridMode {
  7380. Factor = 0,
  7381. BABYLON.Color3 = 1,
  7382. BABYLON.Color4 = 2
  7383. }
  7384. interface IValueGradientGridComponent {
  7385. globalState: GlobalState;
  7386. label: string;
  7387. gradients: BABYLON.Nullable<Array<BABYLON.IValueGradient>>;
  7388. lockObject: LockObject;
  7389. docLink?: string;
  7390. mode: GradientGridMode;
  7391. host: BABYLON.IParticleSystem;
  7392. codeRecorderPropertyName: string;
  7393. onCreateRequired: () => void;
  7394. }
  7395. export class ValueGradientGridComponent extends React.Component<IValueGradientGridComponent> {
  7396. constructor(props: IValueGradientGridComponent);
  7397. deleteStep(step: BABYLON.IValueGradient): void;
  7398. addNewStep(): void;
  7399. checkForReOrder(): void;
  7400. updateAndSync(): void;
  7401. render(): JSX.Element;
  7402. }
  7403. }
  7404. declare module INSPECTOR {
  7405. interface IParticleSystemPropertyGridComponentProps {
  7406. globalState: GlobalState;
  7407. system: BABYLON.IParticleSystem;
  7408. lockObject: LockObject;
  7409. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7410. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7411. }
  7412. export class ParticleSystemPropertyGridComponent extends React.Component<IParticleSystemPropertyGridComponentProps> {
  7413. private _snippetUrl;
  7414. constructor(props: IParticleSystemPropertyGridComponentProps);
  7415. renderEmitter(): JSX.Element | null;
  7416. raiseOnPropertyChanged(property: string, newValue: any, previousValue: any): void;
  7417. renderControls(): JSX.Element;
  7418. saveToFile(): void;
  7419. loadFromFile(file: File): void;
  7420. loadFromSnippet(): void;
  7421. saveToSnippet(): void;
  7422. render(): JSX.Element;
  7423. }
  7424. }
  7425. declare module INSPECTOR {
  7426. interface ISpriteManagerPropertyGridComponentProps {
  7427. globalState: GlobalState;
  7428. spriteManager: BABYLON.SpriteManager;
  7429. lockObject: LockObject;
  7430. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7431. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7432. }
  7433. export class SpriteManagerPropertyGridComponent extends React.Component<ISpriteManagerPropertyGridComponentProps> {
  7434. private _snippetUrl;
  7435. constructor(props: ISpriteManagerPropertyGridComponentProps);
  7436. addNewSprite(): void;
  7437. disposeManager(): void;
  7438. saveToFile(): void;
  7439. loadFromFile(file: File): void;
  7440. loadFromSnippet(): void;
  7441. saveToSnippet(): void;
  7442. render(): JSX.Element;
  7443. }
  7444. }
  7445. declare module INSPECTOR {
  7446. interface ISpritePropertyGridComponentProps {
  7447. globalState: GlobalState;
  7448. sprite: BABYLON.Sprite;
  7449. lockObject: LockObject;
  7450. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7451. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7452. }
  7453. export class SpritePropertyGridComponent extends React.Component<ISpritePropertyGridComponentProps> {
  7454. private canvasRef;
  7455. private imageData;
  7456. private cachedCellIndex;
  7457. constructor(props: ISpritePropertyGridComponentProps);
  7458. onManagerLink(): void;
  7459. switchPlayStopState(): void;
  7460. disposeSprite(): void;
  7461. componentDidMount(): void;
  7462. componentDidUpdate(): void;
  7463. shouldComponentUpdate(nextProps: ISpritePropertyGridComponentProps): boolean;
  7464. updatePreview(): void;
  7465. render(): JSX.Element;
  7466. }
  7467. }
  7468. declare module INSPECTOR {
  7469. interface ITargetedAnimationGridComponentProps {
  7470. globalState: GlobalState;
  7471. targetedAnimation: BABYLON.TargetedAnimation;
  7472. scene: BABYLON.Scene;
  7473. lockObject: LockObject;
  7474. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7475. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7476. }
  7477. export class TargetedAnimationGridComponent extends React.Component<ITargetedAnimationGridComponentProps> {
  7478. private _animationGroup;
  7479. constructor(props: ITargetedAnimationGridComponentProps);
  7480. playOrPause: () => void;
  7481. deleteAnimation: () => void;
  7482. render(): JSX.Element;
  7483. }
  7484. }
  7485. declare module INSPECTOR {
  7486. interface IFollowCameraPropertyGridComponentProps {
  7487. globalState: GlobalState;
  7488. camera: BABYLON.FollowCamera;
  7489. lockObject: LockObject;
  7490. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7491. }
  7492. export class FollowCameraPropertyGridComponent extends React.Component<IFollowCameraPropertyGridComponentProps> {
  7493. constructor(props: IFollowCameraPropertyGridComponentProps);
  7494. render(): JSX.Element;
  7495. }
  7496. }
  7497. declare module INSPECTOR {
  7498. interface ISoundPropertyGridComponentProps {
  7499. globalState: GlobalState;
  7500. sound: BABYLON.Sound;
  7501. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7502. lockObject: LockObject;
  7503. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  7504. }
  7505. export class SoundPropertyGridComponent extends React.Component<ISoundPropertyGridComponentProps> {
  7506. constructor(props: ISoundPropertyGridComponentProps);
  7507. render(): JSX.Element;
  7508. }
  7509. }
  7510. declare module INSPECTOR {
  7511. export class PropertyGridTabComponent extends PaneComponent {
  7512. private _timerIntervalId;
  7513. private _lockObject;
  7514. constructor(props: IPaneComponentProps);
  7515. timerRefresh(): void;
  7516. componentDidMount(): void;
  7517. componentWillUnmount(): void;
  7518. render(): JSX.Element | null;
  7519. }
  7520. }
  7521. declare module INSPECTOR {
  7522. export interface IHeaderComponentProps {
  7523. title: string;
  7524. handleBack?: boolean;
  7525. noExpand?: boolean;
  7526. noClose?: boolean;
  7527. noCommands?: boolean;
  7528. onPopup: () => void;
  7529. onClose: () => void;
  7530. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7531. }
  7532. export class HeaderComponent extends React.Component<IHeaderComponentProps, {
  7533. isBackVisible: boolean;
  7534. }> {
  7535. private _backStack;
  7536. private _onSelectionChangeObserver;
  7537. constructor(props: IHeaderComponentProps);
  7538. componentDidMount(): void;
  7539. componentWillUnmount(): void;
  7540. goBack(): void;
  7541. renderLogo(): JSX.Element | null;
  7542. render(): JSX.Element;
  7543. }
  7544. }
  7545. declare module INSPECTOR {
  7546. interface IMessageLineComponentProps {
  7547. text: string;
  7548. color?: string;
  7549. }
  7550. export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
  7551. constructor(props: IMessageLineComponentProps);
  7552. render(): JSX.Element;
  7553. }
  7554. }
  7555. declare module INSPECTOR {
  7556. interface IGLTFComponentProps {
  7557. scene: BABYLON.Scene;
  7558. globalState: GlobalState;
  7559. }
  7560. export class GLTFComponent extends React.Component<IGLTFComponentProps> {
  7561. private _onValidationResultsUpdatedObserver;
  7562. openValidationDetails(): void;
  7563. prepareText(singularForm: string, count: number): string;
  7564. componentDidMount(): void;
  7565. componentWillUnmount(): void;
  7566. renderValidation(): JSX.Element | null;
  7567. render(): JSX.Element;
  7568. }
  7569. }
  7570. declare module INSPECTOR {
  7571. interface IFileMultipleButtonLineComponentProps {
  7572. label: string;
  7573. onClick: (event: any) => void;
  7574. accept: string;
  7575. }
  7576. export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
  7577. private static _IDGenerator;
  7578. private _id;
  7579. private uploadInputRef;
  7580. constructor(props: IFileMultipleButtonLineComponentProps);
  7581. onChange(evt: any): void;
  7582. render(): JSX.Element;
  7583. }
  7584. }
  7585. declare module INSPECTOR {
  7586. export class ToolsTabComponent extends PaneComponent {
  7587. private _videoRecorder;
  7588. private _screenShotSize;
  7589. private _gifOptions;
  7590. private _useWidthHeight;
  7591. private _isExporting;
  7592. private _gifWorkerBlob;
  7593. private _gifRecorder;
  7594. private _previousRenderingScale;
  7595. private _crunchingGIF;
  7596. constructor(props: IPaneComponentProps);
  7597. componentDidMount(): void;
  7598. componentWillUnmount(): void;
  7599. captureScreenshot(): void;
  7600. captureRender(): void;
  7601. recordVideo(): void;
  7602. recordGIFInternal(): void;
  7603. recordGIF(): void;
  7604. importAnimations(event: any): void;
  7605. shouldExport(node: BABYLON.Node): boolean;
  7606. exportGLTF(): void;
  7607. exportBabylon(): void;
  7608. createEnvTexture(): void;
  7609. exportReplay(): void;
  7610. startRecording(): void;
  7611. applyDelta(file: File): void;
  7612. render(): JSX.Element | null;
  7613. }
  7614. }
  7615. declare module INSPECTOR {
  7616. export class SettingsTabComponent extends PaneComponent {
  7617. constructor(props: IPaneComponentProps);
  7618. render(): JSX.Element;
  7619. }
  7620. }
  7621. declare module INSPECTOR {
  7622. interface IActionTabsComponentProps {
  7623. scene?: BABYLON.Scene;
  7624. noCommands?: boolean;
  7625. noHeader?: boolean;
  7626. noExpand?: boolean;
  7627. noClose?: boolean;
  7628. popupMode?: boolean;
  7629. onPopup?: () => void;
  7630. onClose?: () => void;
  7631. globalState?: GlobalState;
  7632. initialTab?: BABYLON.DebugLayerTab;
  7633. }
  7634. export class ActionTabsComponent extends React.Component<IActionTabsComponentProps, {
  7635. selectedEntity: any;
  7636. selectedIndex: number;
  7637. }> {
  7638. private _onSelectionChangeObserver;
  7639. private _onTabChangedObserver;
  7640. private _once;
  7641. constructor(props: IActionTabsComponentProps);
  7642. componentDidMount(): void;
  7643. componentWillUnmount(): void;
  7644. changeSelectedTab(index: number): void;
  7645. renderContent(): JSX.Element | null;
  7646. onClose(): void;
  7647. onPopup(): void;
  7648. render(): JSX.Element;
  7649. }
  7650. }
  7651. declare module INSPECTOR {
  7652. interface ITreeItemLabelComponentProps {
  7653. label: string;
  7654. onClick?: () => void;
  7655. color: string;
  7656. }
  7657. export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps> {
  7658. constructor(props: ITreeItemLabelComponentProps);
  7659. onClick(): void;
  7660. render(): JSX.Element;
  7661. }
  7662. }
  7663. declare module INSPECTOR {
  7664. interface IExtensionsComponentProps {
  7665. target: any;
  7666. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7667. }
  7668. export class ExtensionsComponent extends React.Component<IExtensionsComponentProps, {
  7669. popupVisible: boolean;
  7670. }> {
  7671. private _popup;
  7672. private extensionRef;
  7673. constructor(props: IExtensionsComponentProps);
  7674. showPopup(): void;
  7675. componentDidMount(): void;
  7676. componentDidUpdate(): void;
  7677. render(): JSX.Element | null;
  7678. }
  7679. }
  7680. declare module INSPECTOR {
  7681. interface IMeshTreeItemComponentProps {
  7682. mesh: BABYLON.AbstractMesh;
  7683. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7684. onClick: () => void;
  7685. globalState: GlobalState;
  7686. }
  7687. export class MeshTreeItemComponent extends React.Component<IMeshTreeItemComponentProps, {
  7688. isBoundingBoxEnabled: boolean;
  7689. isVisible: boolean;
  7690. }> {
  7691. constructor(props: IMeshTreeItemComponentProps);
  7692. showBoundingBox(): void;
  7693. switchVisibility(): void;
  7694. render(): JSX.Element;
  7695. }
  7696. }
  7697. declare module INSPECTOR {
  7698. interface ICameraTreeItemComponentProps {
  7699. camera: BABYLON.Camera;
  7700. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7701. onClick: () => void;
  7702. globalState: GlobalState;
  7703. }
  7704. export class CameraTreeItemComponent extends React.Component<ICameraTreeItemComponentProps, {
  7705. isActive: boolean;
  7706. isGizmoEnabled: boolean;
  7707. }> {
  7708. private _onBeforeRenderObserver;
  7709. constructor(props: ICameraTreeItemComponentProps);
  7710. setActive(): void;
  7711. componentDidMount(): void;
  7712. componentWillUnmount(): void;
  7713. toggleGizmo(): void;
  7714. render(): JSX.Element;
  7715. }
  7716. }
  7717. declare module INSPECTOR {
  7718. interface ILightTreeItemComponentProps {
  7719. light: BABYLON.Light;
  7720. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7721. onClick: () => void;
  7722. globalState: GlobalState;
  7723. }
  7724. export class LightTreeItemComponent extends React.Component<ILightTreeItemComponentProps, {
  7725. isEnabled: boolean;
  7726. isGizmoEnabled: boolean;
  7727. }> {
  7728. constructor(props: ILightTreeItemComponentProps);
  7729. switchIsEnabled(): void;
  7730. toggleGizmo(): void;
  7731. render(): JSX.Element;
  7732. }
  7733. }
  7734. declare module INSPECTOR {
  7735. interface IMaterialTreeItemComponentProps {
  7736. material: BABYLON.Material | BABYLON.NodeMaterial;
  7737. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7738. onClick: () => void;
  7739. }
  7740. export class MaterialTreeItemComponent extends React.Component<IMaterialTreeItemComponentProps> {
  7741. constructor(props: IMaterialTreeItemComponentProps);
  7742. render(): JSX.Element;
  7743. }
  7744. }
  7745. declare module INSPECTOR {
  7746. interface ITextureTreeItemComponentProps {
  7747. texture: BABYLON.Texture;
  7748. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7749. onClick: () => void;
  7750. }
  7751. export class TextureTreeItemComponent extends React.Component<ITextureTreeItemComponentProps> {
  7752. constructor(props: ITextureTreeItemComponentProps);
  7753. render(): JSX.Element;
  7754. }
  7755. }
  7756. declare module INSPECTOR {
  7757. interface ITransformNodeItemComponentProps {
  7758. transformNode: BABYLON.TransformNode;
  7759. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7760. onClick: () => void;
  7761. }
  7762. export class TransformNodeItemComponent extends React.Component<ITransformNodeItemComponentProps> {
  7763. constructor(props: ITransformNodeItemComponentProps);
  7764. render(): JSX.Element;
  7765. }
  7766. }
  7767. declare module INSPECTOR {
  7768. interface IControlTreeItemComponentProps {
  7769. control: BABYLON.GUI.Control;
  7770. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7771. onClick: () => void;
  7772. }
  7773. export class ControlTreeItemComponent extends React.Component<IControlTreeItemComponentProps, {
  7774. isActive: boolean;
  7775. isVisible: boolean;
  7776. }> {
  7777. constructor(props: IControlTreeItemComponentProps);
  7778. highlight(): void;
  7779. switchVisibility(): void;
  7780. render(): JSX.Element;
  7781. }
  7782. }
  7783. declare module INSPECTOR {
  7784. interface IAdvancedDynamicTextureTreeItemComponentProps {
  7785. texture: BABYLON.GUI.AdvancedDynamicTexture;
  7786. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7787. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7788. onClick: () => void;
  7789. }
  7790. export class AdvancedDynamicTextureTreeItemComponent extends React.Component<IAdvancedDynamicTextureTreeItemComponentProps, {
  7791. isInPickingMode: boolean;
  7792. }> {
  7793. private _onControlPickedObserver;
  7794. constructor(props: IAdvancedDynamicTextureTreeItemComponentProps);
  7795. componentWillUnmount(): void;
  7796. onPickingMode(): void;
  7797. render(): JSX.Element;
  7798. }
  7799. }
  7800. declare module INSPECTOR {
  7801. interface IAnimationGroupItemComponentProps {
  7802. animationGroup: BABYLON.AnimationGroup;
  7803. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7804. onClick: () => void;
  7805. }
  7806. export class AnimationGroupItemComponent extends React.Component<IAnimationGroupItemComponentProps> {
  7807. constructor(props: IAnimationGroupItemComponentProps);
  7808. render(): JSX.Element;
  7809. }
  7810. }
  7811. declare module INSPECTOR {
  7812. interface IPostProcessItemComponentProps {
  7813. postProcess: BABYLON.PostProcess;
  7814. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7815. onClick: () => void;
  7816. }
  7817. export class PostProcessItemComponent extends React.Component<IPostProcessItemComponentProps> {
  7818. constructor(props: IPostProcessItemComponentProps);
  7819. render(): JSX.Element;
  7820. }
  7821. }
  7822. declare module INSPECTOR {
  7823. interface IRenderPipelineItemComponenttProps {
  7824. renderPipeline: BABYLON.PostProcessRenderPipeline;
  7825. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7826. onClick: () => void;
  7827. }
  7828. export class RenderingPipelineItemComponent extends React.Component<IRenderPipelineItemComponenttProps> {
  7829. constructor(props: IRenderPipelineItemComponenttProps);
  7830. render(): JSX.Element;
  7831. }
  7832. }
  7833. declare module INSPECTOR {
  7834. interface ISkeletonTreeItemComponentProps {
  7835. skeleton: BABYLON.Skeleton;
  7836. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7837. onClick: () => void;
  7838. }
  7839. export class SkeletonTreeItemComponent extends React.Component<ISkeletonTreeItemComponentProps> {
  7840. constructor(props: ISkeletonTreeItemComponentProps);
  7841. render(): JSX.Element;
  7842. }
  7843. }
  7844. declare module INSPECTOR {
  7845. interface IBoneTreeItemComponenttProps {
  7846. bone: BABYLON.Bone;
  7847. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7848. onClick: () => void;
  7849. }
  7850. export class BoneTreeItemComponent extends React.Component<IBoneTreeItemComponenttProps> {
  7851. constructor(props: IBoneTreeItemComponenttProps);
  7852. render(): JSX.Element;
  7853. }
  7854. }
  7855. declare module INSPECTOR {
  7856. interface IParticleSystemTreeItemComponentProps {
  7857. system: BABYLON.IParticleSystem;
  7858. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7859. onClick: () => void;
  7860. }
  7861. export class ParticleSystemTreeItemComponent extends React.Component<IParticleSystemTreeItemComponentProps> {
  7862. constructor(props: IParticleSystemTreeItemComponentProps);
  7863. render(): JSX.Element;
  7864. }
  7865. }
  7866. declare module INSPECTOR {
  7867. interface ISpriteManagerTreeItemComponentProps {
  7868. spriteManager: BABYLON.SpriteManager;
  7869. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7870. onClick: () => void;
  7871. }
  7872. export class SpriteManagerTreeItemComponent extends React.Component<ISpriteManagerTreeItemComponentProps> {
  7873. constructor(props: ISpriteManagerTreeItemComponentProps);
  7874. render(): JSX.Element;
  7875. }
  7876. }
  7877. declare module INSPECTOR {
  7878. interface ISpriteTreeItemComponentProps {
  7879. sprite: BABYLON.Sprite;
  7880. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7881. onClick: () => void;
  7882. }
  7883. export class SpriteTreeItemComponent extends React.Component<ISpriteTreeItemComponentProps> {
  7884. constructor(props: ISpriteTreeItemComponentProps);
  7885. render(): JSX.Element;
  7886. }
  7887. }
  7888. declare module INSPECTOR {
  7889. interface ITargetedAnimationItemComponentProps {
  7890. targetedAnimation: BABYLON.TargetedAnimation;
  7891. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7892. onClick: () => void;
  7893. }
  7894. export class TargetedAnimationItemComponent extends React.Component<ITargetedAnimationItemComponentProps> {
  7895. constructor(props: ITargetedAnimationItemComponentProps);
  7896. render(): JSX.Element;
  7897. }
  7898. }
  7899. declare module INSPECTOR {
  7900. interface ISoundTreeItemComponentProps {
  7901. sound: BABYLON.Sound;
  7902. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7903. onClick: () => void;
  7904. }
  7905. export class SoundTreeItemComponent extends React.Component<ISoundTreeItemComponentProps> {
  7906. constructor(props: ISoundTreeItemComponentProps);
  7907. render(): JSX.Element;
  7908. }
  7909. }
  7910. declare module INSPECTOR {
  7911. interface ITreeItemSpecializedComponentProps {
  7912. label: string;
  7913. entity?: any;
  7914. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7915. globalState: GlobalState;
  7916. onClick?: () => void;
  7917. }
  7918. export class TreeItemSpecializedComponent extends React.Component<ITreeItemSpecializedComponentProps> {
  7919. constructor(props: ITreeItemSpecializedComponentProps);
  7920. onClick(): void;
  7921. render(): JSX.Element;
  7922. }
  7923. }
  7924. declare module INSPECTOR {
  7925. export class Tools {
  7926. static LookForItem(item: any, selectedEntity: any): boolean;
  7927. private static _RecursiveRemoveHiddenMeshesAndHoistChildren;
  7928. static SortAndFilter(parent: any, items: any[]): any[];
  7929. }
  7930. }
  7931. declare module INSPECTOR {
  7932. export interface ITreeItemSelectableComponentProps {
  7933. entity: any;
  7934. selectedEntity?: any;
  7935. mustExpand?: boolean;
  7936. offset: number;
  7937. globalState: GlobalState;
  7938. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7939. filter: BABYLON.Nullable<string>;
  7940. }
  7941. export class TreeItemSelectableComponent extends React.Component<ITreeItemSelectableComponentProps, {
  7942. isExpanded: boolean;
  7943. isSelected: boolean;
  7944. }> {
  7945. private _wasSelected;
  7946. constructor(props: ITreeItemSelectableComponentProps);
  7947. switchExpandedState(): void;
  7948. shouldComponentUpdate(nextProps: ITreeItemSelectableComponentProps, nextState: {
  7949. isExpanded: boolean;
  7950. isSelected: boolean;
  7951. }): boolean;
  7952. scrollIntoView(): void;
  7953. componentDidMount(): void;
  7954. componentDidUpdate(): void;
  7955. onSelect(): void;
  7956. renderChildren(): JSX.Element[] | null;
  7957. render(): JSX.Element | null;
  7958. }
  7959. }
  7960. declare module INSPECTOR {
  7961. export interface ITreeItemComponentProps {
  7962. items?: BABYLON.Nullable<any[]>;
  7963. label: string;
  7964. offset: number;
  7965. filter: BABYLON.Nullable<string>;
  7966. forceSubitems?: boolean;
  7967. globalState: GlobalState;
  7968. entity?: any;
  7969. selectedEntity: any;
  7970. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7971. contextMenuItems?: {
  7972. label: string;
  7973. action: () => void;
  7974. }[];
  7975. }
  7976. export class TreeItemComponent extends React.Component<ITreeItemComponentProps, {
  7977. isExpanded: boolean;
  7978. mustExpand: boolean;
  7979. }> {
  7980. static _ContextMenuUniqueIdGenerator: number;
  7981. constructor(props: ITreeItemComponentProps);
  7982. switchExpandedState(): void;
  7983. shouldComponentUpdate(nextProps: ITreeItemComponentProps, nextState: {
  7984. isExpanded: boolean;
  7985. }): boolean;
  7986. expandAll(expand: boolean): void;
  7987. renderContextMenu(): JSX.Element | null;
  7988. render(): JSX.Element;
  7989. }
  7990. }
  7991. declare module INSPECTOR {
  7992. interface ISceneTreeItemComponentProps {
  7993. scene: BABYLON.Scene;
  7994. onRefresh: () => void;
  7995. selectedEntity?: any;
  7996. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  7997. onSelectionChangedObservable?: BABYLON.Observable<any>;
  7998. globalState: GlobalState;
  7999. }
  8000. export class SceneTreeItemComponent extends React.Component<ISceneTreeItemComponentProps, {
  8001. isSelected: boolean;
  8002. isInPickingMode: boolean;
  8003. gizmoMode: number;
  8004. }> {
  8005. private _gizmoLayerOnPointerObserver;
  8006. private _onPointerObserver;
  8007. private _onSelectionChangeObserver;
  8008. private _selectedEntity;
  8009. private _posDragEnd;
  8010. private _scaleDragEnd;
  8011. private _rotateDragEnd;
  8012. constructor(props: ISceneTreeItemComponentProps);
  8013. shouldComponentUpdate(nextProps: ISceneTreeItemComponentProps, nextState: {
  8014. isSelected: boolean;
  8015. isInPickingMode: boolean;
  8016. }): boolean;
  8017. componentDidMount(): void;
  8018. componentWillUnmount(): void;
  8019. onSelect(): void;
  8020. onPickingMode(): void;
  8021. setGizmoMode(mode: number): void;
  8022. render(): JSX.Element;
  8023. }
  8024. }
  8025. declare module INSPECTOR {
  8026. interface ISceneExplorerFilterComponentProps {
  8027. onFilter: (filter: string) => void;
  8028. }
  8029. export class SceneExplorerFilterComponent extends React.Component<ISceneExplorerFilterComponentProps> {
  8030. constructor(props: ISceneExplorerFilterComponentProps);
  8031. render(): JSX.Element;
  8032. }
  8033. interface ISceneExplorerComponentProps {
  8034. scene: BABYLON.Scene;
  8035. noCommands?: boolean;
  8036. noHeader?: boolean;
  8037. noExpand?: boolean;
  8038. noClose?: boolean;
  8039. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  8040. globalState: GlobalState;
  8041. popupMode?: boolean;
  8042. onPopup?: () => void;
  8043. onClose?: () => void;
  8044. }
  8045. export class SceneExplorerComponent extends React.Component<ISceneExplorerComponentProps, {
  8046. filter: BABYLON.Nullable<string>;
  8047. selectedEntity: any;
  8048. scene: BABYLON.Scene;
  8049. }> {
  8050. private _onSelectionChangeObserver;
  8051. private _onSelectionRenamedObserver;
  8052. private _onNewSceneAddedObserver;
  8053. private _onNewSceneObserver;
  8054. private sceneExplorerRef;
  8055. private _once;
  8056. private _hooked;
  8057. private sceneMutationFunc;
  8058. constructor(props: ISceneExplorerComponentProps);
  8059. processMutation(): void;
  8060. componentDidMount(): void;
  8061. componentWillUnmount(): void;
  8062. filterContent(filter: string): void;
  8063. findSiblings(parent: any, items: any[], target: any, goNext: boolean, data: {
  8064. previousOne?: any;
  8065. found?: boolean;
  8066. }): boolean;
  8067. processKeys(keyEvent: React.KeyboardEvent<HTMLDivElement>): void;
  8068. renderContent(): JSX.Element | null;
  8069. onClose(): void;
  8070. onPopup(): void;
  8071. render(): JSX.Element;
  8072. }
  8073. }
  8074. declare module INSPECTOR {
  8075. interface IEmbedHostComponentProps {
  8076. scene: BABYLON.Scene;
  8077. globalState: GlobalState;
  8078. popupMode: boolean;
  8079. noClose?: boolean;
  8080. noExpand?: boolean;
  8081. onClose: () => void;
  8082. onPopup: () => void;
  8083. extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
  8084. initialTab?: BABYLON.DebugLayerTab;
  8085. }
  8086. export class EmbedHostComponent extends React.Component<IEmbedHostComponentProps> {
  8087. private _once;
  8088. private splitRef;
  8089. private topPartRef;
  8090. private bottomPartRef;
  8091. constructor(props: IEmbedHostComponentProps);
  8092. componentDidMount(): void;
  8093. renderContent(): JSX.Element;
  8094. render(): JSX.Element;
  8095. }
  8096. }
  8097. declare module INSPECTOR {
  8098. export class Inspector {
  8099. private static _SceneExplorerHost;
  8100. private static _ActionTabsHost;
  8101. private static _EmbedHost;
  8102. private static _NewCanvasContainer;
  8103. private static _SceneExplorerWindow;
  8104. private static _ActionTabsWindow;
  8105. private static _EmbedHostWindow;
  8106. private static _Scene;
  8107. private static _OpenedPane;
  8108. private static _OnBeforeRenderObserver;
  8109. static OnSelectionChangeObservable: BABYLON.Observable<any>;
  8110. static OnPropertyChangedObservable: BABYLON.Observable<PropertyChangedEvent>;
  8111. private static _GlobalState;
  8112. static MarkLineContainerTitleForHighlighting(title: string): void;
  8113. static MarkMultipleLineContainerTitlesForHighlighting(titles: string[]): void;
  8114. private static _CopyStyles;
  8115. private static _CreateSceneExplorer;
  8116. private static _CreateActionTabs;
  8117. private static _CreateEmbedHost;
  8118. static _CreatePopup(title: string, windowVariableName: string, width?: number, height?: number, lateBinding?: boolean): HTMLDivElement | null;
  8119. static get IsVisible(): boolean;
  8120. static EarlyAttachToLoader(): void;
  8121. static Show(scene: BABYLON.Scene, userOptions: Partial<BABYLON.IInspectorOptions>): void;
  8122. static _SetNewScene(scene: BABYLON.Scene): void;
  8123. static _CreateCanvasContainer(parentControl: HTMLElement): void;
  8124. private static _DestroyCanvasContainer;
  8125. private static _Cleanup;
  8126. private static _RemoveElementFromDOM;
  8127. static Hide(): void;
  8128. }
  8129. }
  8130. declare module INSPECTOR {
  8131. interface IAddAnimationProps {
  8132. isOpen: boolean;
  8133. close: () => void;
  8134. entity: BABYLON.IAnimatable;
  8135. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  8136. setNotificationMessage: (message: string) => void;
  8137. finishedUpdate: () => void;
  8138. addedNewAnimation: (animation: BABYLON.Animation) => void;
  8139. fps: number;
  8140. selectedToUpdate?: BABYLON.Animation | undefined;
  8141. }
  8142. /**
  8143. * Controls the creation of a new animation.
  8144. * @property {boolean} isOpen controls if the add animation pannel is open or closed in the editor controls;
  8145. * @property {()=>void} close sends the message to close this panel setting isOpen to false;
  8146. * @property {IAnimatable} entity is the animation object to add the animation to;
  8147. * @property {Observable<PropertyChangedEvent>} onPropertyChangedObservable is the registered observable
  8148. * @property {(message: string) => void} setNotificationMessage sends the message string to display errors on the message box
  8149. * @property {() => void} finishedUpdate tells the parent component the update on the animation collection has completed
  8150. * @property { (animation: BABYLON.Animation) => void} addedNewAnimation sends the animation to the editor to process how its is rendered
  8151. * @property {number} fps Frames per second of the animation.
  8152. * @property {Animation | undefined} selectedToUpdate the selected animation so we can update the renderer curve.
  8153. */
  8154. export class AddAnimation extends React.Component<IAddAnimationProps, {
  8155. animationName: string;
  8156. animationTargetProperty: string;
  8157. animationType: number;
  8158. loopMode: number;
  8159. animationTargetPath: string;
  8160. isUpdating: boolean;
  8161. }> {
  8162. constructor(props: IAddAnimationProps);
  8163. setInitialState(editingAnimation?: BABYLON.Animation): {
  8164. animationName: string;
  8165. animationTargetPath: string;
  8166. animationType: number;
  8167. loopMode: number;
  8168. animationTargetProperty: string;
  8169. isUpdating: boolean;
  8170. };
  8171. /**
  8172. * We decide wether the animation will be added or edited
  8173. * @param prevProps Previous props.
  8174. * @param prevState Previous state.
  8175. */
  8176. componentDidUpdate(prevProps: IAddAnimationProps, prevState: any): void;
  8177. /**
  8178. * Updates the animation with the correct properties
  8179. * Updates its name, loopmode and targetProperty.
  8180. * This allows the edition of the animation in the curve editor.
  8181. * We can only update these props for the animation.
  8182. * Keyframes of course are updated on the curve editor.
  8183. */
  8184. updateAnimation: () => void;
  8185. /**
  8186. * Returns the animation type as string
  8187. * @param type Type of animation so we return a string.
  8188. */
  8189. getTypeAsString(type: number): "Size" | "Color4" | "Vector3" | "Float" | "Quaternion" | "Vector2" | "Color3";
  8190. /**
  8191. * Process the creation of a new animation.
  8192. * We verify is the property to animate is present on the object
  8193. * We verify if the property derives from a correct class *type of animation to add an animation
  8194. * At the end we create an empty animation named animation.
  8195. * The animation keys array is set to empty so we can add keyframes in the editor.
  8196. * We return the animation to the curve editor and update the entity animation collection
  8197. */
  8198. addAnimation: () => void;
  8199. raiseOnPropertyChanged(newValue: BABYLON.Animation[], previousValue: BABYLON.Animation[]): void;
  8200. raiseOnPropertyUpdated(newValue: string | number | undefined, previousValue: string | number, property: string): void;
  8201. handlePathChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  8202. handleNameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  8203. handleTypeChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
  8204. handlePropertyChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  8205. handleLoopModeChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
  8206. render(): JSX.Element;
  8207. }
  8208. }
  8209. declare module INSPECTOR {
  8210. interface IAnchorSvgPointProps {
  8211. control: BABYLON.Vector2;
  8212. anchor: BABYLON.Vector2;
  8213. active: boolean;
  8214. type: string;
  8215. index: string;
  8216. selected: boolean;
  8217. selectControlPoint: (id: string) => void;
  8218. framesInCanvasView: {
  8219. from: number;
  8220. to: number;
  8221. };
  8222. }
  8223. /**
  8224. * Renders the control point to a keyframe.
  8225. * Each keyframe has left and right control points to control de tangent of the curve
  8226. * This controls the inTangent and outTangent values for the keyframe in the animation.
  8227. * @property {Vector2} control is the control point to control de curve tangent
  8228. * @property {Vector2} anchor represents the Keyframe point which acts origin point.
  8229. * @property {boolen} active tells the component if the control point is currently active
  8230. * @property {string} type (left/right) if the control will be the left or right control point
  8231. * @property {boolean} selected if the control point is currently selected. If selected we can move the control point and will become active
  8232. * @property {(id: string) => void;} selectControlPoint sends the id of the control point to the parent component to tell if it is selected
  8233. * @property {{ from: number; to: number }} framesInCanvasView controls from/to which keyframe should the control point can expand and control de curve
  8234. * The frames in canvas tells us how many frames are currently visible in the canvas and therefore control the width of the line between the control and anchor point
  8235. */
  8236. export class AnchorSvgPoint extends React.Component<IAnchorSvgPointProps, {
  8237. visiblePoint: BABYLON.Vector2;
  8238. }> {
  8239. constructor(props: IAnchorSvgPointProps);
  8240. componentDidUpdate(prevProps: IAnchorSvgPointProps, prevState: any): void;
  8241. select: () => void;
  8242. /**
  8243. * Controls where should we render the visible point (representing the control point)
  8244. * The visible control point differs from the control point for UX reasons. The control point
  8245. * expands beyond the visible canvas.
  8246. */
  8247. setVisiblePoint(): BABYLON.Vector2;
  8248. render(): JSX.Element;
  8249. }
  8250. }
  8251. declare module INSPECTOR {
  8252. export interface IKeyframeSvgPoint {
  8253. keyframePoint: BABYLON.Vector2;
  8254. rightControlPoint: BABYLON.Vector2 | null;
  8255. leftControlPoint: BABYLON.Vector2 | null;
  8256. id: string;
  8257. selected: boolean;
  8258. isLeftActive: boolean;
  8259. isRightActive: boolean;
  8260. curveId?: ICurveMetaData;
  8261. }
  8262. export interface ICurveMetaData {
  8263. id: number;
  8264. animationName: string;
  8265. property: string;
  8266. }
  8267. interface IKeyframeSvgPointProps {
  8268. keyframePoint: BABYLON.Vector2;
  8269. leftControlPoint: BABYLON.Vector2 | null;
  8270. rightControlPoint: BABYLON.Vector2 | null;
  8271. id: string;
  8272. selected: boolean;
  8273. selectKeyframe: (id: string, multiselect: boolean) => void;
  8274. selectedControlPoint: (type: string, id: string) => void;
  8275. isLeftActive: boolean;
  8276. isRightActive: boolean;
  8277. framesInCanvasView: {
  8278. from: number;
  8279. to: number;
  8280. };
  8281. }
  8282. /**
  8283. * Renders the Keyframe as an SVG Element for the Canvas component.
  8284. * Holds the two control points to generate the proper curve.
  8285. */
  8286. export class KeyframeSvgPoint extends React.Component<IKeyframeSvgPointProps> {
  8287. constructor(props: IKeyframeSvgPointProps);
  8288. /**
  8289. * Select a keyframe. If the control key is pressed, multiselect keyframes
  8290. * @param e Mouse event
  8291. */
  8292. select: (e: React.MouseEvent<SVGImageElement>) => void;
  8293. /**
  8294. * Send the ID of the selected keyframe
  8295. * @param type Type of selected keyframe
  8296. */
  8297. selectedControlPointId: (type: string) => void;
  8298. render(): JSX.Element;
  8299. }
  8300. }
  8301. declare module INSPECTOR {
  8302. interface ISvgDraggableAreaProps {
  8303. keyframeSvgPoints: IKeyframeSvgPoint[];
  8304. updatePosition: (updatedKeyframe: IKeyframeSvgPoint, id: string) => void;
  8305. scale: number;
  8306. viewBoxScale: number;
  8307. deselectKeyframes: () => void;
  8308. removeSelectedKeyframes: (points: IKeyframeSvgPoint[]) => void;
  8309. panningY: (panningY: number) => void;
  8310. panningX: (panningX: number) => void;
  8311. setCurrentFrame: (direction: number) => void;
  8312. positionCanvas?: BABYLON.Vector2;
  8313. repositionCanvas?: boolean;
  8314. canvasPositionEnded: () => void;
  8315. resetActionableKeyframe: () => void;
  8316. framesInCanvasView: {
  8317. from: number;
  8318. to: number;
  8319. };
  8320. framesResized: number;
  8321. }
  8322. /**
  8323. * The SvgDraggableArea is a wrapper for SVG Canvas the interaction
  8324. *
  8325. * Here we control the drag and key behavior for the SVG components.
  8326. */
  8327. export class SvgDraggableArea extends React.Component<ISvgDraggableAreaProps, {
  8328. panX: number;
  8329. panY: number;
  8330. }> {
  8331. private _active;
  8332. private _isCurrentPointControl;
  8333. private _currentPointId;
  8334. private _draggableArea;
  8335. private _panStart;
  8336. private _panStop;
  8337. private _playheadDrag;
  8338. private _playheadSelected;
  8339. private _movedX;
  8340. private _movedY;
  8341. private _isControlKeyPress;
  8342. readonly _dragBuffer: number;
  8343. readonly _draggingMultiplier: number;
  8344. constructor(props: ISvgDraggableAreaProps);
  8345. /**
  8346. * Listen to key events to be able to drag and set the correct canvas client width
  8347. */
  8348. componentDidMount(): void;
  8349. /**
  8350. * Makes sure the canvas has resposition correctly
  8351. * @param prevProps previous props
  8352. */
  8353. componentDidUpdate(prevProps: ISvgDraggableAreaProps): void;
  8354. /**
  8355. * Identify the type of target of the mouse event
  8356. * @param e SVG Mouse Event
  8357. */
  8358. dragStart: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  8359. /**
  8360. * Handle dragging
  8361. * @param e SVG Mouse Event
  8362. */
  8363. drag: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  8364. /**
  8365. * Resets the dragging state
  8366. * @param e Drag event
  8367. */
  8368. dragEnd: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  8369. /**
  8370. * Gets the current position of the mouse in a SVG Canvas
  8371. * @param e Mouse event
  8372. */
  8373. getMousePosition: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => BABYLON.Vector2 | undefined;
  8374. /**
  8375. * Handles the canvas panning direction and sets the X and Y values to move the
  8376. * SVG canvas
  8377. */
  8378. panDirection(): void;
  8379. /**
  8380. * Allows dragging
  8381. * @param e Keyboard event
  8382. */
  8383. keyDown(e: KeyboardEvent): void;
  8384. /**
  8385. * Allows multiple selection
  8386. * @param e Keyboard event
  8387. */
  8388. keyUp(e: KeyboardEvent): void;
  8389. /**
  8390. * Focus on the SVG canvas
  8391. * @param e Mouse event
  8392. */
  8393. focus: (e: React.MouseEvent<SVGSVGElement>) => void;
  8394. /**
  8395. * Is the control point active or not
  8396. */
  8397. isNotControlPointActive(): boolean;
  8398. render(): JSX.Element;
  8399. }
  8400. }
  8401. declare module INSPECTOR {
  8402. export interface IIconButtonLineComponentProps {
  8403. icon: string;
  8404. onClick: () => void;
  8405. tooltip: string;
  8406. active?: boolean;
  8407. }
  8408. export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
  8409. constructor(props: IIconButtonLineComponentProps);
  8410. render(): JSX.Element;
  8411. }
  8412. }
  8413. declare module INSPECTOR {
  8414. interface IControlsProps {
  8415. keyframes: BABYLON.IAnimationKey[] | null;
  8416. selected: BABYLON.IAnimationKey | null;
  8417. currentFrame: number;
  8418. onCurrentFrameChange: (frame: number) => void;
  8419. repositionCanvas: (keyframe: BABYLON.IAnimationKey) => void;
  8420. playPause: (direction: number) => void;
  8421. isPlaying: boolean;
  8422. scrollable: React.RefObject<HTMLDivElement>;
  8423. }
  8424. /**
  8425. * The playback controls for the animation editor
  8426. */
  8427. export class Controls extends React.Component<IControlsProps, {
  8428. selected: BABYLON.IAnimationKey;
  8429. playingType: string;
  8430. }> {
  8431. readonly _sizeOfKeyframe: number;
  8432. constructor(props: IControlsProps);
  8433. playBackwards: () => void;
  8434. play: () => void;
  8435. pause: () => void;
  8436. /**
  8437. * Set animation to initial keyframe
  8438. */
  8439. moveToAnimationStart: () => void;
  8440. /**
  8441. * Set animation to the last keyframe
  8442. */
  8443. moveToAnimationEnd: () => void;
  8444. /** Move to next keyframe */
  8445. nextKeyframe: () => void;
  8446. /** Move to previous keyframe */
  8447. previousKeyframe: () => void;
  8448. render(): JSX.Element;
  8449. }
  8450. }
  8451. declare module INSPECTOR {
  8452. interface ITimelineProps {
  8453. keyframes: BABYLON.IAnimationKey[] | null;
  8454. selected: BABYLON.IAnimationKey | null;
  8455. currentFrame: number;
  8456. onCurrentFrameChange: (frame: number) => void;
  8457. onAnimationLimitChange: (limit: number) => void;
  8458. dragKeyframe: (frame: number, index: number) => void;
  8459. playPause: (direction: number) => void;
  8460. isPlaying: boolean;
  8461. animationLimit: number;
  8462. fps: number;
  8463. repositionCanvas: (keyframe: BABYLON.IAnimationKey) => void;
  8464. resizeWindowProportion: number;
  8465. }
  8466. interface ITimelineState {
  8467. selected: BABYLON.IAnimationKey;
  8468. activeKeyframe: number | null;
  8469. start: number;
  8470. end: number;
  8471. scrollWidth: number | undefined;
  8472. selectionLength: number[];
  8473. limitValue: number;
  8474. }
  8475. /**
  8476. * The Timeline for the curve editor
  8477. *
  8478. * Has a scrollbar that can be resized and move to left and right.
  8479. * The timeline does not affect the Canvas but only the frame container.
  8480. */
  8481. export class Timeline extends React.Component<ITimelineProps, ITimelineState> {
  8482. private _scrollable;
  8483. private _scrollbarHandle;
  8484. private _scrollContainer;
  8485. private _inputAnimationLimit;
  8486. private _direction;
  8487. private _scrolling;
  8488. private _shiftX;
  8489. private _active;
  8490. readonly _marginScrollbar: number;
  8491. constructor(props: ITimelineProps);
  8492. /** Listen to keyup events and set the initial lenght of the scrollbar */
  8493. componentDidMount(): void;
  8494. /** Recalculate the scrollwidth if a window resize happens */
  8495. componentDidUpdate(prevProps: ITimelineProps): void;
  8496. /** Remove key event listener */
  8497. componentWillUnmount(): void;
  8498. /**
  8499. * Set component state if enter key is pressed
  8500. * @param event enter key event
  8501. */
  8502. isEnterKeyUp(event: KeyboardEvent): void;
  8503. /**
  8504. * Detect blur event
  8505. * @param event Blur event
  8506. */
  8507. onInputBlur(event: React.FocusEvent<HTMLInputElement>): void;
  8508. /** Set component state (scrollbar width, position, and start and end) */
  8509. setControlState(): void;
  8510. /**
  8511. * Set scrollwidth on the timeline
  8512. * @param {number} start Frame from which the scrollbar should begin.
  8513. * @param {number} end Last frame for the timeline.
  8514. */
  8515. calculateScrollWidth(start: number, end: number): number | undefined;
  8516. /**
  8517. * Play animation backwards
  8518. * @param event Mouse event
  8519. */
  8520. playBackwards(event: React.MouseEvent<HTMLDivElement>): void;
  8521. /**
  8522. * Play animation
  8523. * @param event Mouse event
  8524. */
  8525. play(event: React.MouseEvent<HTMLDivElement>): void;
  8526. /**
  8527. * Pause the animation
  8528. * @param event Mouse event
  8529. */
  8530. pause(event: React.MouseEvent<HTMLDivElement>): void;
  8531. /**
  8532. * Set the selected frame
  8533. * @param event Mouse event
  8534. */
  8535. setCurrentFrame: (event: React.MouseEvent<HTMLDivElement>) => void;
  8536. /**
  8537. * Handles the change of number of frames available in the timeline.
  8538. */
  8539. handleLimitChange(event: React.ChangeEvent<HTMLInputElement>): void;
  8540. /**
  8541. * Starts the scrollbar dragging
  8542. * @param e Mouse event on SVG Element
  8543. */
  8544. dragStart: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  8545. /**
  8546. * Update the canvas visible frames while dragging
  8547. * @param e Mouse event
  8548. */
  8549. drag: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  8550. /**
  8551. * Check if the frame is being used as a Keyframe by the animation
  8552. * @param frame number of frame
  8553. * @param direction frame increment or decrement
  8554. */
  8555. isFrameBeingUsed(frame: number, direction: number): number | false;
  8556. /**
  8557. * Reset drag state
  8558. * @param e Mouse event on SVG Element
  8559. */
  8560. dragEnd: (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => void;
  8561. /**
  8562. * Change position of the scrollbar
  8563. * @param e Mouse event
  8564. */
  8565. scrollDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
  8566. /**
  8567. * Change size of scrollbar
  8568. * @param e Mouse event
  8569. */
  8570. scrollDrag: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
  8571. /**
  8572. * Reset scroll drag
  8573. * @param e Mouse event
  8574. */
  8575. scrollDragEnd: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
  8576. /**
  8577. * Sets the start, end and selection length of the scrollbar. This will control the width and
  8578. * height of the scrollbar as well as the number of frames available
  8579. * @param {number} pageX Controls the X axis of the scrollbar movement.
  8580. */
  8581. moveScrollbar(pageX: number): void;
  8582. /**
  8583. * Controls the resizing of the scrollbar from the right handle
  8584. * @param {number} clientX how much mouse has moved
  8585. */
  8586. resizeScrollbarRight(clientX: number): void;
  8587. /**
  8588. * Controls the resizing of the scrollbar from the left handle
  8589. * @param {number} clientX how much mouse has moved
  8590. */
  8591. resizeScrollbarLeft(clientX: number): void;
  8592. /**
  8593. * Returns array with the expected length between two numbers
  8594. * @param start initial visible frame
  8595. * @param stop last visible frame
  8596. */
  8597. range(start: number, end: number): number[];
  8598. /**
  8599. * Get the animation keyframe
  8600. * @param frame Frame
  8601. */
  8602. getKeyframe(frame: number): false | BABYLON.IAnimationKey | undefined;
  8603. /**
  8604. * Get the current animation keyframe
  8605. * @param frame Frame
  8606. */
  8607. getCurrentFrame(frame: number): boolean;
  8608. dragDomFalse: () => boolean;
  8609. render(): JSX.Element;
  8610. }
  8611. }
  8612. declare module INSPECTOR {
  8613. interface IPlayheadProps {
  8614. message: string;
  8615. open: boolean;
  8616. close: () => void;
  8617. }
  8618. /**
  8619. * Renders the notification for the user
  8620. */
  8621. export class Notification extends React.Component<IPlayheadProps> {
  8622. constructor(props: IPlayheadProps);
  8623. render(): JSX.Element;
  8624. }
  8625. }
  8626. declare module INSPECTOR {
  8627. interface IGraphActionsBarProps {
  8628. addKeyframe: () => void;
  8629. removeKeyframe: () => void;
  8630. frameSelectedKeyframes: () => void;
  8631. handleValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  8632. handleFrameChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  8633. flatTangent: () => void;
  8634. brokeTangents: () => void;
  8635. setLerpToActiveControlPoint: () => void;
  8636. brokenMode: boolean;
  8637. lerpMode: boolean;
  8638. actionableKeyframe: IActionableKeyFrame;
  8639. title: string;
  8640. enabled: boolean;
  8641. setKeyframeValue: (actionableKeyframe: IActionableKeyFrame) => void;
  8642. frameRange: {
  8643. min: number | undefined;
  8644. max: number | undefined;
  8645. };
  8646. }
  8647. /**
  8648. * Has the buttons and actions for the Canvas Graph.
  8649. * Handles input change and actions (flat, broken mode, set linear control points)
  8650. */
  8651. export class GraphActionsBar extends React.Component<IGraphActionsBarProps, {
  8652. frame: string;
  8653. value: string;
  8654. min: number | undefined;
  8655. max: number | undefined;
  8656. }> {
  8657. private _frameInput;
  8658. private _valueInput;
  8659. constructor(props: IGraphActionsBarProps);
  8660. /**
  8661. * Listen to keyup changes to handle if the input event has ended or change
  8662. */
  8663. componentDidMount(): void;
  8664. /**
  8665. * Set the changing state of frame, value and range of the actionablekeyframe
  8666. * @param prevProps previous props
  8667. * @param prevState previous state
  8668. */
  8669. componentDidUpdate(prevProps: IGraphActionsBarProps, prevState: any): void;
  8670. /**
  8671. * Returns the frame and value for the keyframe
  8672. * @param keyframe The keyframe to update
  8673. */
  8674. selectedKeyframeChanged(keyframe: IActionableKeyFrame): {
  8675. frame: string;
  8676. value: string;
  8677. };
  8678. /**
  8679. * Remove listeners
  8680. */
  8681. componentWillUnmount(): void;
  8682. /**
  8683. * Trigger the change on the keyframe
  8684. * @param event Enter keyevent
  8685. */
  8686. isEnterKeyUp(event: KeyboardEvent): void;
  8687. /**
  8688. * Trigger the chnage on the keyframe on blur
  8689. * @param event Focus event
  8690. */
  8691. onBlur: (event: React.FocusEvent<HTMLInputElement>) => void;
  8692. /**
  8693. * Gets the keyframe frame
  8694. */
  8695. getFrame(): string | number;
  8696. /**
  8697. * Gets the keyframe value
  8698. */
  8699. getValue(): string | number;
  8700. /**
  8701. * Set keyframe value state
  8702. * @param e Input event
  8703. */
  8704. handleValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  8705. /**
  8706. * Set the keyframe frame state
  8707. * @param e Input event
  8708. */
  8709. handleFrameChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  8710. render(): JSX.Element;
  8711. }
  8712. }
  8713. declare module INSPECTOR {
  8714. interface IAnimationListTreeProps {
  8715. isTargetedAnimation: boolean;
  8716. entity: BABYLON.IAnimatable | BABYLON.TargetedAnimation;
  8717. selected: BABYLON.Animation | null;
  8718. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  8719. selectAnimation: (selected: BABYLON.Animation, coordinate?: SelectedCoordinate) => void;
  8720. empty: () => void;
  8721. editAnimation: (selected: BABYLON.Animation) => void;
  8722. deselectAnimation: () => void;
  8723. }
  8724. interface Item {
  8725. index: number;
  8726. name: string;
  8727. property: string;
  8728. selected: boolean;
  8729. open: boolean;
  8730. }
  8731. export enum SelectedCoordinate {
  8732. x = 0,
  8733. y = 1,
  8734. z = 2,
  8735. w = 3,
  8736. r = 0,
  8737. g = 1,
  8738. b = 2,
  8739. a = 3,
  8740. width = 0,
  8741. height = 1
  8742. }
  8743. interface ItemCoordinate {
  8744. id: string;
  8745. color: string;
  8746. coordinate: SelectedCoordinate;
  8747. }
  8748. /**
  8749. * Renders a list of current animations.
  8750. */
  8751. export class AnimationListTree extends React.Component<IAnimationListTreeProps, {
  8752. selectedCoordinate: SelectedCoordinate;
  8753. selectedAnimation: number;
  8754. animationList: Item[] | null;
  8755. animations: BABYLON.Nullable<BABYLON.Animation[]> | BABYLON.Animation;
  8756. }> {
  8757. constructor(props: IAnimationListTreeProps);
  8758. /**
  8759. * Set the animation list if has changed properties
  8760. * @param prevProps previous properties
  8761. */
  8762. componentDidUpdate(prevProps: IAnimationListTreeProps): void;
  8763. /**
  8764. * Delete animation from list
  8765. */
  8766. deleteAnimation: () => void;
  8767. /**
  8768. * Update the animations collection
  8769. * @param newValue new animation list
  8770. * @param previousValue previous animation list
  8771. */
  8772. raiseOnPropertyChanged(newValue: BABYLON.Animation[], previousValue: BABYLON.Animation[]): void;
  8773. /**
  8774. * Renders the animation list
  8775. */
  8776. generateList(): Item[] | null;
  8777. /**
  8778. * Open or closes the animation to show its coordinate animations
  8779. * @param index BABYLON.Animation index
  8780. */
  8781. toggleProperty(index: number): void;
  8782. /**
  8783. * Select the animation to render
  8784. * @param animation Selected animation
  8785. * @param coordinate Selected coordinate (x, y, z)
  8786. * @param index Index
  8787. */
  8788. setSelectedCoordinate(animation: BABYLON.Animation, coordinate: SelectedCoordinate, index: number): void;
  8789. /**
  8790. * Renders the coordinate belonging to an animation
  8791. * @param i Index
  8792. * @param animation Selected animation
  8793. * @param coordinate Coordinate name
  8794. * @param color Color identifier
  8795. * @param selectedCoordinate Selected coordinate (x, y, z)
  8796. */
  8797. coordinateItem(i: number, animation: BABYLON.Animation, coordinate: string, color: string, selectedCoordinate: SelectedCoordinate): JSX.Element;
  8798. /**
  8799. * Render animation
  8800. * @param animation selected animations
  8801. * @param i index
  8802. * @param childrenElements its coordinate (x,y,z) animations
  8803. */
  8804. typeAnimationItem(animation: BABYLON.Animation, i: number, childrenElements: ItemCoordinate[]): JSX.Element;
  8805. /**
  8806. * Render animation item
  8807. * @param animation Selected aniamtion
  8808. * @param i index
  8809. */
  8810. setListItem(animation: BABYLON.Animation, i: number): JSX.Element | null;
  8811. render(): JSX.Element;
  8812. }
  8813. }
  8814. declare module INSPECTOR {
  8815. interface ILoadSnippetProps {
  8816. animations: BABYLON.Animation[];
  8817. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  8818. lockObject: LockObject;
  8819. globalState: GlobalState;
  8820. snippetServer: string;
  8821. setSnippetId: (id: string) => void;
  8822. entity: BABYLON.IAnimatable | BABYLON.TargetedAnimation;
  8823. setNotificationMessage: (message: string) => void;
  8824. animationsLoaded: (numberOfAnimations: number) => void;
  8825. }
  8826. /**
  8827. * Loads animation locally or from the Babylon.js Snippet Server
  8828. */
  8829. export class LoadSnippet extends React.Component<ILoadSnippetProps, {
  8830. snippetId: string;
  8831. }> {
  8832. private _serverAddress;
  8833. constructor(props: ILoadSnippetProps);
  8834. /**
  8835. * Set the animations snippet id
  8836. * @param value Snippet ID
  8837. */
  8838. change: (value: string) => void;
  8839. /**
  8840. * Select a local file to load animations
  8841. * @param file File name
  8842. */
  8843. loadFromFile: (file: File) => void;
  8844. /**
  8845. * Load animations from server identified with a snippet id
  8846. */
  8847. loadFromSnippet: () => void;
  8848. render(): JSX.Element;
  8849. }
  8850. }
  8851. declare module INSPECTOR {
  8852. interface ISaveSnippetProps {
  8853. animations: BABYLON.Nullable<BABYLON.Animation[]>;
  8854. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  8855. lockObject: LockObject;
  8856. globalState: GlobalState;
  8857. snippetServer: string;
  8858. snippetId: string;
  8859. }
  8860. export interface Snippet {
  8861. url: string;
  8862. id: string;
  8863. }
  8864. interface SelectedAnimation {
  8865. id: string;
  8866. name: string;
  8867. index: number;
  8868. selected: boolean;
  8869. }
  8870. /**
  8871. * Saves the animation snippet to the Babylon.js site or downloads the animation file locally
  8872. */
  8873. export class SaveSnippet extends React.Component<ISaveSnippetProps, {
  8874. selectedAnimations: SelectedAnimation[];
  8875. }> {
  8876. constructor(props: ISaveSnippetProps);
  8877. /**
  8878. * Set the selected animations to save
  8879. * @param e Input event
  8880. */
  8881. handleCheckboxChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  8882. /**
  8883. * Stringify the selected animation
  8884. */
  8885. stringifySelectedAnimations(): string;
  8886. /**
  8887. * Save the selected animations to a local file
  8888. */
  8889. saveToFile: () => void;
  8890. /**
  8891. * Save the selected animations if a snippet ID is set
  8892. */
  8893. saveToSnippet: () => void;
  8894. render(): JSX.Element;
  8895. }
  8896. }
  8897. declare module INSPECTOR {
  8898. interface IEditorControlsProps {
  8899. isTargetedAnimation: boolean;
  8900. entity: BABYLON.IAnimatable | BABYLON.TargetedAnimation;
  8901. selected: BABYLON.Animation | null;
  8902. lockObject: LockObject;
  8903. onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
  8904. setNotificationMessage: (message: string) => void;
  8905. selectAnimation: (selected: BABYLON.Animation, axis?: SelectedCoordinate) => void;
  8906. setFps: (fps: number) => void;
  8907. setIsLooping: () => void;
  8908. globalState: GlobalState;
  8909. snippetServer: string;
  8910. deselectAnimation: () => void;
  8911. fps: number;
  8912. }
  8913. interface IEditorControlsState {
  8914. isAnimationTabOpen: boolean;
  8915. isEditTabOpen: boolean;
  8916. isLoadTabOpen: boolean;
  8917. isSaveTabOpen: boolean;
  8918. isLoopActive: boolean;
  8919. animationsCount: number;
  8920. framesPerSecond: number;
  8921. snippetId: string;
  8922. selected: BABYLON.Animation | undefined;
  8923. }
  8924. /**
  8925. * Renders the Curve Editor controls to create, save, remove, load and edit animations
  8926. */
  8927. export class EditorControls extends React.Component<IEditorControlsProps, IEditorControlsState> {
  8928. constructor(props: IEditorControlsProps);
  8929. /**
  8930. * Makes sure the frames per second receive the updated prop
  8931. * @param prevProps previous properties
  8932. */
  8933. componentDidUpdate(prevProps: IEditorControlsProps): void;
  8934. /**
  8935. * Add the nimation, recounts the list and opens the correct tab
  8936. * @param animation The recently empty created animation
  8937. */
  8938. onAnimationAdded: (animation: BABYLON.Animation) => void;
  8939. /**
  8940. * Set state when the animations list has finished updated
  8941. */
  8942. finishedUpdate: () => void;
  8943. recountAnimations(): number;
  8944. /**
  8945. * Toggles loop
  8946. */
  8947. changeLoopBehavior: () => void;
  8948. /**
  8949. * This avoids using lambda functions in JSX
  8950. */
  8951. handleFirstTab: () => void;
  8952. handleSecondTab: () => void;
  8953. handleThirdTab: () => void;
  8954. handleFourthTab: () => void;
  8955. handleTabs(tab: number): void;
  8956. handleChangeFps: (fps: number) => void;
  8957. /**
  8958. * Cleans the list when has been emptied
  8959. */
  8960. onEmptiedList: () => void;
  8961. /**
  8962. * When animations have been reloaded update tabs
  8963. */
  8964. animationsLoaded: (numberOfAnimations: number) => void;
  8965. /**
  8966. * The currently selected animation to edit it
  8967. * @param selected Selected animation
  8968. */
  8969. editAnimation: (selected: BABYLON.Animation) => void;
  8970. setSnippetId: (id: string) => void;
  8971. /**
  8972. * Marks animation tab closed and hides the tab
  8973. */
  8974. onCloseAddAnimation: () => void;
  8975. render(): JSX.Element;
  8976. }
  8977. }
  8978. declare module INSPECTOR {
  8979. interface ISwitchButtonProps {
  8980. /** Current scale */
  8981. current: CurveScale;
  8982. /** On click change of scale */
  8983. action?: (event: CurveScale) => void;
  8984. }
  8985. /**
  8986. * Displays the current scale
  8987. */
  8988. export class ScaleLabel extends React.Component<ISwitchButtonProps, {
  8989. current: CurveScale;
  8990. }> {
  8991. constructor(props: ISwitchButtonProps);
  8992. renderLabel(scale: CurveScale): "" | "DEG" | "FLT" | "INT" | "RAD";
  8993. onClickHandle: () => void;
  8994. render(): JSX.Element;
  8995. }
  8996. }
  8997. declare module INSPECTOR {
  8998. interface IAnimationCurveEditorComponentProps {
  8999. playOrPause?: () => void;
  9000. scene: BABYLON.Scene;
  9001. entity: BABYLON.IAnimatable | BABYLON.TargetedAnimation;
  9002. lockObject: LockObject;
  9003. globalState: GlobalState;
  9004. }
  9005. /**
  9006. * Represent an Axis of the canvas. This help us control the frame/panning
  9007. */
  9008. interface ICanvasAxis {
  9009. value: number;
  9010. label: number;
  9011. }
  9012. /**
  9013. * This help us identify the type of scaling on the selected animated property
  9014. */
  9015. export enum CurveScale {
  9016. float = 0,
  9017. radians = 1,
  9018. degrees = 2,
  9019. integers = 3,
  9020. default = 4
  9021. }
  9022. /**
  9023. * This represents the visible selected keyframe in the canvas. If the keyframe is selected
  9024. * we should be able to edit the frame and value.
  9025. */
  9026. export interface IActionableKeyFrame {
  9027. frame?: number | string;
  9028. value?: any;
  9029. }
  9030. /**
  9031. * Each curve is an SVG Path. This Interface give us its properties to render on the canvas.
  9032. */
  9033. interface ICurveData {
  9034. pathData: string;
  9035. pathLength: number;
  9036. domCurve: React.RefObject<SVGPathElement>;
  9037. color: string;
  9038. id: string;
  9039. }
  9040. /**
  9041. * The curve editor state
  9042. */
  9043. interface IAnimationCurveEditorComponentState {
  9044. /** If the editor is opened or closed */
  9045. isOpen: boolean;
  9046. /** The currently selected animation from which the curves will render */
  9047. selected: BABYLON.Animation | null;
  9048. /** A list of keyframes to be rendered as SVG Elements in the curve */
  9049. svgKeyframes: IKeyframeSvgPoint[] | undefined;
  9050. /** The current frame in which the playhead is positioned */
  9051. currentFrame: number;
  9052. /** The current value in which the playhead is positioned */
  9053. currentValue: number;
  9054. /** The number of frame in which the current canvas is divided. The helps to render the frames in the graph editor */
  9055. frameAxisLength: ICanvasAxis[];
  9056. /** The number of values in which the current canvas is divided. The helps to render the frames in the graph editor. The current scale decides how these values are rendered*/
  9057. valueAxisLength: ICanvasAxis[];
  9058. /** If the selected keyframe should be treated as a flat tangent curve */
  9059. isFlatTangentMode: boolean;
  9060. /** If the tangent mode is active */
  9061. isTangentMode: boolean;
  9062. /** If the control points are broken or not */
  9063. isBrokenMode: boolean;
  9064. /** If selected keyframe should render its selected control point to be linear or not */
  9065. lerpMode: boolean;
  9066. /** The scale of the canvas */
  9067. scale: number;
  9068. /** The offset of the playhead to position itself on the canvas */
  9069. playheadOffset: number;
  9070. /** The error or warning message to display */
  9071. notification: string;
  9072. /** The current selected point in the SVG curve */
  9073. currentPoint: SVGPoint | undefined;
  9074. /** The start position of the playhead */
  9075. playheadPos: number;
  9076. /** If the animation is playing or not */
  9077. isPlaying: boolean;
  9078. /** The selected curve represented with an array of curves */
  9079. selectedPathData: ICurveData[] | undefined;
  9080. /** The currently selected coordinate of a complex property (i.e. x, y, z) */
  9081. selectedCoordinate: number;
  9082. /** The number of frames available in the canvas timeline*/
  9083. animationLimit: number;
  9084. /** The currently animation frames per second */
  9085. fps: number;
  9086. /** If the animation is set to loop or not while animation is playing */
  9087. isLooping: boolean;
  9088. /** The amount of vertical panning the user has moved the canvas */
  9089. panningY: number;
  9090. /** The amount of horizontal panning the user has moved the canvas */
  9091. panningX: number;
  9092. /** If the canvas has finished repositioned itself */
  9093. repositionCanvas: boolean;
  9094. /** The current selected keyframe on which we can perform actions (update frame and value) */
  9095. actionableKeyframe: IActionableKeyFrame;
  9096. /** The current value scale */
  9097. valueScaleType: CurveScale;
  9098. /** The amount scale to update valyes */
  9099. valueScale: number;
  9100. /** The canvas proportion width */
  9101. canvasLength: number;
  9102. /** The last frame to be created. */
  9103. lastKeyframeCreated: BABYLON.Nullable<string>;
  9104. /** The canvas scale width */
  9105. canvasWidthScale: number;
  9106. /** How the resize of the canvas will change the value axis */
  9107. valuesPositionResize: number;
  9108. /** How many frames are currently visible in the canvas */
  9109. framesInCanvasView: {
  9110. from: number;
  9111. to: number;
  9112. };
  9113. /** Limits the maximum frame from which a keyframe can move in the curve. So it wont overlap the curve*/
  9114. maxFrame: number | undefined;
  9115. /** Limits the minimum frame from which a keyframe can move in the curve. So it wont overlap the curve*/
  9116. minFrame: number | undefined;
  9117. /** How many frames have been increased or reduced on a windows resize event */
  9118. framesResized: number;
  9119. }
  9120. /**
  9121. * BABYLON.Animation curve Editor Component
  9122. * This component allows the use to create animations visualy from the Babylon.js playground.
  9123. * The principal features for the curve editor are:
  9124. * 1. Create animations for the selected entity properties.
  9125. * 2. Edit the animations a selected entity has.
  9126. * 3. You can load and save animations locally and from the snippet server.
  9127. * 4. After creating an animation you need to add keyframes.
  9128. * 5. You can update the frame and value of each frame.
  9129. * @property {() => void} playOrPause is the event to stop or inititate the animation on the playground scene
  9130. * @property {Scene} scene is the scene object from the playground
  9131. * @property {IAnimatable | BABYLON.TargetedAnimation} entity represents the selected entity which will be the animations target
  9132. * @property {LockObject} lockObject the inherited object to lock for modification with the BABYLON.Observable pattern
  9133. * @property {GlobalState} globalState the playground globalstate
  9134. * Check the IAnimationCurveEditorComponentState for state functionality
  9135. */
  9136. export class AnimationCurveEditorComponent extends React.Component<IAnimationCurveEditorComponentProps, IAnimationCurveEditorComponentState> {
  9137. readonly _entityName: string;
  9138. private _snippetUrl;
  9139. private _heightScale;
  9140. private _scaleFactor;
  9141. private _currentScale;
  9142. private _pixelFrameUnit;
  9143. private _svgKeyframes;
  9144. private _isPlaying;
  9145. private _graphCanvas;
  9146. private _editor;
  9147. private _editorWindow;
  9148. private _resizeId;
  9149. private _svgCanvas;
  9150. private _isTargetedAnimation;
  9151. private _resizedTimeline;
  9152. private _onBeforeRenderObserver;
  9153. private _mainAnimatable;
  9154. constructor(props: IAnimationCurveEditorComponentProps);
  9155. componentDidMount(): void;
  9156. /**
  9157. * Connects scene frame with curve editor animation
  9158. * @param prevProps previous Props
  9159. * @param prevState previous State
  9160. */
  9161. componentDidUpdate(prevProps: IAnimationCurveEditorComponentProps, prevState: any): void;
  9162. /**
  9163. * Clean up observer and listeners
  9164. */
  9165. componentWillUnmount(): void;
  9166. /**
  9167. * Set the frame on the animation
  9168. * @param value number of frame to move animation
  9169. */
  9170. onCurrentFrameChangeScene(value: number): void;
  9171. /**
  9172. * Notifications
  9173. * To add notification we set the state and clear to make the notification bar hide.
  9174. */
  9175. clearNotification: () => void;
  9176. /**
  9177. * Zoom and Scroll
  9178. * This section handles zoom and scroll
  9179. * of the graph area.
  9180. */
  9181. zoom: (e: React.WheelEvent<HTMLDivElement>) => void;
  9182. /**
  9183. * Returns Array with labels and values for Frame axis in Canvas
  9184. */
  9185. setFrameAxis(currentLength: number): {
  9186. value: number;
  9187. label: number;
  9188. }[];
  9189. /**
  9190. * Returns Array with labels, lines and values for Value axis in Canvas
  9191. */
  9192. setValueLines(): {
  9193. value: number;
  9194. label: string;
  9195. }[];
  9196. /**
  9197. * Creates a string id from animation name and the keyframe index
  9198. * @param animationName Name of animation
  9199. * @param keyframeIndex Index of keyframe
  9200. */
  9201. encodeCurveId(animationName: string, keyframeIndex: number): string;
  9202. /**
  9203. * Returns the animation keyframe index and the animation selected coordinate (x, y, z)
  9204. * @param id curve id created with index and coordinate of animation
  9205. */
  9206. decodeCurveId(id: string): {
  9207. order: number;
  9208. coordinate: number;
  9209. };
  9210. /**
  9211. * Returns the value from a keyframe
  9212. * @param id curve id
  9213. */
  9214. getKeyframeValueFromAnimation(id: string): {
  9215. frame: number;
  9216. value: number;
  9217. } | undefined;
  9218. /**
  9219. * Keyframe Manipulation
  9220. * This section handles events from SvgDraggableArea.
  9221. * @param id selected keyframe id
  9222. * @param multiselect if we are multiselecting keyframes
  9223. */
  9224. selectKeyframe: (id: string, multiselect: boolean) => void;
  9225. /**
  9226. * Determine if two control points are collinear (flat tangent)
  9227. * @param kf keyframe point
  9228. */
  9229. hasCollinearPoints: (kf: IKeyframeSvgPoint | undefined) => boolean;
  9230. /**
  9231. * Returns the previous and next keyframe from a selected frame.
  9232. * @param frame index of keyframe
  9233. */
  9234. getPreviousAndNextKeyframe: (frame: number) => {
  9235. prev: number | undefined;
  9236. next: number | undefined;
  9237. };
  9238. /**
  9239. * Selects a keyframe in animation based on its Id
  9240. * @param id keyframe id
  9241. * @param actionableKeyframe selected keyframe
  9242. */
  9243. selectKeyframeFromId: (id: string, actionableKeyframe: IActionableKeyFrame) => void;
  9244. /**
  9245. * Resets the current selected keyframe as an updatable pairs by Graph BABYLON.GUI.Control Bar
  9246. */
  9247. resetActionableKeyframe: () => void;
  9248. /**
  9249. * Sets the selected control point.
  9250. * @param type left or right control point
  9251. * @param id id of selected svg keyframe
  9252. */
  9253. selectedControlPoint: (type: string, id: string) => void;
  9254. /**
  9255. * Sets the selected control point.
  9256. */
  9257. deselectKeyframes: () => void;
  9258. /**
  9259. * Update the BABYLON.Animation Key values based on its type
  9260. * @param dataType Type of animated property
  9261. * @param newValue New value of animated property
  9262. * @param coordinate The selected property coordinate to animate (i.e. x, y, z)
  9263. */
  9264. updateValuePerCoordinate(dataType: number, value: number | BABYLON.Vector2 | BABYLON.Vector3 | BABYLON.Color3 | BABYLON.Color4 | BABYLON.Size | BABYLON.Quaternion, newValue: number, coordinate?: number): number | BABYLON.Vector3 | BABYLON.Quaternion | BABYLON.Color3 | BABYLON.Color4 | BABYLON.Vector2 | BABYLON.Size;
  9265. /**
  9266. * BABYLON.Animation should always have a keyframe at Frame Zero
  9267. * @param keys BABYLON.Animation key collection
  9268. */
  9269. forceFrameZeroToExist(keys: BABYLON.IAnimationKey[]): void;
  9270. /**
  9271. * Renders SVG points with dragging of the curve
  9272. * @param updatedSvgKeyFrame selected keyframe to update
  9273. * @param id curve id where the keyframe is localted
  9274. */
  9275. renderPoints: (updatedSvgKeyFrame: IKeyframeSvgPoint, id: string) => void;
  9276. /**
  9277. * Updates the left control point on render points
  9278. * @param updatedSvgKeyFrame selected svg keyframe
  9279. * @param key animation key to update
  9280. * @param dataType type of animation
  9281. * @param coordinate coordinate to change its value (x, y, or z)
  9282. */
  9283. updateLeftControlPoint(updatedSvgKeyFrame: IKeyframeSvgPoint, key: BABYLON.IAnimationKey, dataType: number, coordinate: number): void;
  9284. /**
  9285. * Updates the right control point on render points
  9286. * @param updatedSvgKeyFrame selected svg keyframe
  9287. * @param key animation key to update
  9288. * @param dataType type of animation
  9289. * @param coordinate coordinate to change its value (x, y, or z)
  9290. */
  9291. updateRightControlPoint(updatedSvgKeyFrame: IKeyframeSvgPoint, key: BABYLON.IAnimationKey, dataType: number, coordinate: number): void;
  9292. /**
  9293. * Get the current BABYLON.GUI.Control Point weight (how far the X value is multiplied)
  9294. * @param updatedSvgKeyFrame svg keyframe from which to calculate the distance to control point
  9295. */
  9296. getControlPointWeight(updatedSvgKeyFrame: IKeyframeSvgPoint): number;
  9297. /**
  9298. * Handles a Frame selection change
  9299. * @event event input event to change frame value
  9300. */
  9301. handleFrameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  9302. /**
  9303. * Handles how a value change on a selected frame
  9304. * @event event input event to change the value of the keyframe
  9305. */
  9306. handleValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  9307. /**
  9308. * Set the Keyframe from input control in Graph BABYLON.GUI.Control Bar
  9309. * @param actionableKeyframe selected keyframe
  9310. */
  9311. setKeyframeValueFromInput: (actionableKeyframe: IActionableKeyFrame) => void;
  9312. /**
  9313. * Sets the SVG Keyframe value
  9314. * Finds the selected svg keyframe and passes the correct value to the correct animated keyframe.
  9315. */
  9316. setKeyframeValue: () => void;
  9317. /**
  9318. * Set the flat tangent to the current selected control points.
  9319. * get the selected control point and updates its tangent to flat the tangent
  9320. */
  9321. setFlatTangent: () => void;
  9322. /**
  9323. * Sets Broken mode of lines
  9324. * Broken mode enables control points not to be connected on drag
  9325. */
  9326. setBrokenMode: () => void;
  9327. /**
  9328. * Sets a control point to be a linear interpolation with its Keyframe
  9329. * If left or right control point is selected, sets the Tangent value to match the next keyframe and become linear
  9330. */
  9331. setLerpToActiveControlPoint: () => void;
  9332. /**
  9333. * Adds a new keyframe to the curve on canvas click
  9334. */
  9335. addKeyframeClick: () => void;
  9336. /**
  9337. * Remove keyframe on click
  9338. */
  9339. removeKeyframeClick: () => void;
  9340. /**
  9341. * Remove the selected keyframes
  9342. * @param points the selected keyframes to remove
  9343. */
  9344. removeKeyframes: (points: IKeyframeSvgPoint[]) => void;
  9345. /**
  9346. * Adds a keyframe
  9347. * @event event Mouse click event to generate new keyframe
  9348. */
  9349. addKeyFrame(event: React.MouseEvent<SVGSVGElement>): void;
  9350. /**
  9351. * Curve Rendering Functions
  9352. * This section handles how to render curves.
  9353. * @param point point in canvas
  9354. * @param index index of svg
  9355. */
  9356. setKeyframePointLinear(point: BABYLON.Vector2, index: number): void;
  9357. /**
  9358. * Flats the tangents of the selected keyframes
  9359. * @param keyframes Selected keyframes to flat its tangents
  9360. * @param dataType Type of animated property
  9361. */
  9362. flatTangents(keyframes: BABYLON.IAnimationKey[], dataType: number): BABYLON.IAnimationKey[];
  9363. /**
  9364. * Return a Keyframe zero value depending on Type
  9365. * @param dataType Type of animated property
  9366. */
  9367. returnZero(dataType: number): 0 | BABYLON.Vector3 | BABYLON.Quaternion | BABYLON.Color3 | BABYLON.Color4 | BABYLON.Vector2 | BABYLON.Size;
  9368. /**
  9369. * Return the keyframe value as an array depending on type
  9370. * @param valueType type of animated property
  9371. * @param value the value of the property
  9372. */
  9373. getValueAsArray(valueType: number, value: number | BABYLON.Vector2 | BABYLON.Vector3 | BABYLON.Color3 | BABYLON.Color4 | BABYLON.Size | BABYLON.Quaternion): number[];
  9374. /**
  9375. * Sets the keyframe value as an array depending on type
  9376. * @param valueType type of animated property
  9377. * @param arrayValue array to place the correct value
  9378. */
  9379. setValueAsType(valueType: number, arrayValue: number[]): number | BABYLON.Vector3 | BABYLON.Quaternion | BABYLON.Color3 | BABYLON.Color4 | BABYLON.Vector2 | BABYLON.Size;
  9380. /**
  9381. * Returns the SVG Path Data to render the curve
  9382. * @param animation The animation object from where to get its keyframes
  9383. */
  9384. getPathData(animation: BABYLON.Animation | null): ICurveData[] | undefined;
  9385. /**
  9386. * Gets the selected animation properties
  9387. * @param animation BABYLON.Animation
  9388. */
  9389. getAnimationData(animation: BABYLON.Animation): {
  9390. loopMode: number | undefined;
  9391. name: string;
  9392. blendingSpeed: number;
  9393. targetPropertyPath: string[];
  9394. targetProperty: string;
  9395. framesPerSecond: number;
  9396. highestFrame: number;
  9397. usesTangents: boolean;
  9398. easingType: string | undefined;
  9399. easingMode: number | undefined;
  9400. valueType: number;
  9401. };
  9402. /**
  9403. * Calculate the correct tangents to be linear
  9404. * @param keyframes the animation keyframes
  9405. */
  9406. calculateLinearTangents(keyframes: BABYLON.IAnimationKey[]): BABYLON.IAnimationKey[];
  9407. /**
  9408. * Calculates the proper linear tangents if there is no tangents defined
  9409. * Before calculation of svg path we need to calculate the proper tangents
  9410. * @param keyframes the animation keyframes
  9411. * @param data initial svg path
  9412. * @param middle the middle of the canvas to draw the curve
  9413. * @param type type of animation
  9414. * @param coordinate (x, y, z) value
  9415. * @param animationName The animation name to generate the curve id
  9416. */
  9417. curvePathWithoutTangents(keyframes: BABYLON.IAnimationKey[], data: string, middle: number, type: number, coordinate: number, animationName: string): string;
  9418. /**
  9419. * Calculates the curve data and control points for animation
  9420. * @param keyframes the animation keyframes
  9421. * @param data initial svg path
  9422. * @param middle the middle of the canvas to draw the curve
  9423. * @param type type of animation
  9424. * @param coordinate (x, y, z) value
  9425. * @param animationName The animation name to generate the curve id
  9426. */
  9427. curvePathWithTangents(keyframes: BABYLON.IAnimationKey[], data: string, middle: number, type: number, coordinate: number, animationName: string): string;
  9428. /**
  9429. * Calculates a curve path from predefined easing function
  9430. * @param keyframes animation keyframes
  9431. * @param data the initial svg path
  9432. * @param middle the center of the canvas
  9433. * @param easingFunction the easing function to calculate the curve from (easing function should generate the correct curve)
  9434. */
  9435. curvePath(keyframes: BABYLON.IAnimationKey[], data: string, middle: number, easingFunction: BABYLON.EasingFunction): string;
  9436. /**
  9437. * Sets the proper SVG Keyframe points
  9438. * @param controlPoints array of points to generate the svg keyframe collection
  9439. * @param index index of the animation
  9440. * @param keyframesCount How many keyframes should we process
  9441. */
  9442. setKeyframePoint(controlPoints: BABYLON.Vector2[], index: number, keyframesCount: number): void;
  9443. /**
  9444. * Creates curve based on interpolated points
  9445. * @param p0 starting point of curve
  9446. * @param p1 first control point
  9447. * @param u distance between p0 and p3 as percentage to affect p1
  9448. * @param p2 second control point
  9449. * @param v distance between p0 and p3 as percentage to affect p2
  9450. * @param p3 finish point of curve
  9451. */
  9452. interpolateControlPoints(p0: BABYLON.Vector2, p1: BABYLON.Vector2, u: number, p2: BABYLON.Vector2, v: number, p3: BABYLON.Vector2): BABYLON.Vector2[] | undefined;
  9453. /**
  9454. * Deselects the current animations
  9455. */
  9456. deselectAnimation: () => void;
  9457. /**
  9458. * Remove all curves from canvas
  9459. */
  9460. cleanCanvas: () => void;
  9461. /**
  9462. * Selects the animation and renders the curve
  9463. * @param animation the animation to select and render as curve
  9464. * @param coordinate the property coordinate (x, y, z) to represent as curve
  9465. */
  9466. selectAnimation: (animation: BABYLON.Animation, coordinate?: SelectedCoordinate | undefined) => void;
  9467. /**
  9468. * Set the state for the last selected keyframe
  9469. */
  9470. postSelectionEvents: () => void;
  9471. /**
  9472. * Set main animatable to play or pause the animation
  9473. */
  9474. setMainAnimatable(): void;
  9475. /**
  9476. * Check if animation is playing
  9477. */
  9478. isAnimationPlaying(): boolean;
  9479. /**
  9480. * Stops the current playing animation
  9481. */
  9482. stopAnimation(): void;
  9483. /**
  9484. * Set if animation is looping and stops animation after it
  9485. */
  9486. setIsLooping: () => void;
  9487. setFramesPerSecond: (fps: number) => void;
  9488. /**
  9489. * Check if the animation has easing predefined
  9490. */
  9491. analyzeAnimationForLerp(animation: BABYLON.Animation | null): boolean;
  9492. /**
  9493. * Change the current frame in the canvas and timeline
  9494. * @param frame value to update on canvas and timeline
  9495. */
  9496. changeCurrentFrame: (frame: number) => void;
  9497. /**
  9498. * Calculate the value of the selected frame in curve
  9499. * @param frame the frame to calculate its current value on the curve
  9500. */
  9501. calculateCurrentPointInCurve: (frame: number) => number | undefined;
  9502. /**
  9503. * Center the position the canvas depending on Keyframe value and frame
  9504. * @param keyframe the keyframe to set as middle point
  9505. */
  9506. setCanvasPosition: (keyframe: BABYLON.IAnimationKey) => void;
  9507. /**
  9508. * Sets the current frame
  9509. * @param frame the value to set the frame
  9510. */
  9511. setCurrentFrame: (frame: number) => void;
  9512. /**
  9513. * Change the timeline animation frame limit
  9514. */
  9515. changeAnimationLimit: (limit: number) => void;
  9516. /**
  9517. * Update the frame in the selected Keyframe
  9518. */
  9519. updateFrameInKeyFrame: (frame: number, index: number) => void;
  9520. /**
  9521. * Plays or pauses the animation
  9522. * @param direction 0 stops the animation, 1 starts the animation, -1 plays animation backwards
  9523. */
  9524. playPause: (direction: number) => void;
  9525. /**
  9526. * Set the frame to selected position on canvas
  9527. * @event e click event on the SVG canvas
  9528. */
  9529. moveFrameTo(e: React.MouseEvent<SVGRectElement, MouseEvent>): void;
  9530. /**
  9531. * Register the observables for the state
  9532. */
  9533. registerObs(): void;
  9534. /**
  9535. * Checks if the current frame macthes the parameter
  9536. * @param frame The frame to check
  9537. */
  9538. isCurrentFrame(frame: number): boolean;
  9539. /**
  9540. * Set the Vertical Panning State
  9541. * @param panningY the vertical panning value
  9542. */
  9543. setPanningY: (panningY: number) => void;
  9544. /**
  9545. * Set the Vertical Panning State
  9546. * @param panningX the horizontal panning value
  9547. */
  9548. setPanningX: (panningX: number) => void;
  9549. /**
  9550. * Set state when canvas has been respositioned
  9551. */
  9552. canvasPositionEnded: () => void;
  9553. /**
  9554. *
  9555. * @param message The message to display in the notification bar
  9556. */
  9557. setNotificationMessage: (message: string) => void;
  9558. /**
  9559. * Zoom or frame the selected keyframes in the available canvas space
  9560. */
  9561. frameSelectedKeyframes: () => void;
  9562. /**
  9563. * Handle the frames quantity and scale on Window resize width
  9564. */
  9565. onWindowResizeWidth: () => void;
  9566. /**
  9567. * Set the state of frames Resized on window resize event
  9568. * @param framesResized how many frame have been added or removed on resize
  9569. */
  9570. onWindowEndResize: (framesResized: number) => void;
  9571. /** Resizes the width of the timeline */
  9572. onTimelineResize: () => void;
  9573. render(): JSX.Element;
  9574. }
  9575. }
  9576. declare module INSPECTOR {
  9577. interface IPlayheadProps {
  9578. frame: number;
  9579. offset: number;
  9580. onCurrentFrameChange: (frame: number) => void;
  9581. }
  9582. /**
  9583. * Renders the Playhead
  9584. */
  9585. export class Playhead extends React.Component<IPlayheadProps> {
  9586. private _direction;
  9587. private _active;
  9588. constructor(props: IPlayheadProps);
  9589. dragStart(e: React.TouchEvent<HTMLDivElement>): void;
  9590. dragStart(e: React.MouseEvent<HTMLDivElement, MouseEvent>): void;
  9591. drag(e: React.TouchEvent<HTMLDivElement>): void;
  9592. drag(e: React.MouseEvent<HTMLDivElement, MouseEvent>): void;
  9593. dragEnd(e: React.TouchEvent<HTMLDivElement>): void;
  9594. dragEnd(e: React.MouseEvent<HTMLDivElement, MouseEvent>): void;
  9595. calculateMove(): string;
  9596. render(): JSX.Element;
  9597. }
  9598. }
  9599. declare module INSPECTOR {
  9600. export const Contrast: IToolData;
  9601. }
  9602. declare module INSPECTOR {
  9603. export interface IButtonLineComponentProps {
  9604. data: string;
  9605. tooltip: string;
  9606. }
  9607. export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
  9608. constructor(props: IButtonLineComponentProps);
  9609. render(): JSX.Element;
  9610. }
  9611. }
  9612. declare module INSPECTOR {
  9613. export class Popup {
  9614. static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
  9615. private static _CopyStyles;
  9616. }
  9617. }