123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413 |
- declare module "cesium" {
- interface DictionaryLike {
- [index: string]: any;
- }
- export enum WebGLConstants {
- DEPTH_BUFFER_BIT = 256,
- STENCIL_BUFFER_BIT = 1024,
- COLOR_BUFFER_BIT = 16384,
- POINTS = 0,
- LINES = 1,
- LINE_LOOP = 2,
- LINE_STRIP = 3,
- TRIANGLES = 4,
- TRIANGLE_STRIP = 5,
- TRIANGLE_FAN = 6,
- ZERO = 0,
- ONE = 1,
- SRC_COLOR = 768,
- ONE_MINUS_SRC_COLOR = 769,
- SRC_ALPHA = 770,
- ONE_MINUS_SRC_ALPHA = 771,
- DST_ALPHA = 772,
- ONE_MINUS_DST_ALPHA = 773,
- DST_COLOR = 774,
- ONE_MINUS_DST_COLOR = 775,
- SRC_ALPHA_SATURATE = 776,
- FUNC_ADD = 32774,
- BLEND_EQUATION = 32777,
- BLEND_EQUATION_RGB = 32777,
- BLEND_EQUATION_ALPHA = 34877,
- FUNC_SUBTRACT = 32778,
- FUNC_REVERSE_SUBTRACT = 32779,
- BLEND_DST_RGB = 32968,
- BLEND_SRC_RGB = 32969,
- BLEND_DST_ALPHA = 32970,
- BLEND_SRC_ALPHA = 32971,
- CONSTANT_COLOR = 32769,
- ONE_MINUS_CONSTANT_COLOR = 32770,
- CONSTANT_ALPHA = 32771,
- ONE_MINUS_CONSTANT_ALPHA = 32772,
- BLEND_COLOR = 32773,
- ARRAY_BUFFER = 34962,
- ELEMENT_ARRAY_BUFFER = 34963,
- ARRAY_BUFFER_BINDING = 34964,
- ELEMENT_ARRAY_BUFFER_BINDING = 34965,
- STREAM_DRAW = 35040,
- STATIC_DRAW = 35044,
- DYNAMIC_DRAW = 35048,
- BUFFER_SIZE = 34660,
- BUFFER_USAGE = 34661,
- CURRENT_VERTEX_ATTRIB = 34342,
- FRONT = 1028,
- BACK = 1029,
- FRONT_AND_BACK = 1032,
- CULL_FACE = 2884,
- BLEND = 3042,
- DITHER = 3024,
- STENCIL_TEST = 2960,
- DEPTH_TEST = 2929,
- SCISSOR_TEST = 3089,
- POLYGON_OFFSET_FILL = 32823,
- SAMPLE_ALPHA_TO_COVERAGE = 32926,
- SAMPLE_COVERAGE = 32928,
- NO_ERROR = 0,
- INVALID_ENUM = 1280,
- INVALID_VALUE = 1281,
- INVALID_OPERATION = 1282,
- OUT_OF_MEMORY = 1285,
- CW = 2304,
- CCW = 2305,
- LINE_WIDTH = 2849,
- ALIASED_POINT_SIZE_RANGE = 33901,
- ALIASED_LINE_WIDTH_RANGE = 33902,
- CULL_FACE_MODE = 2885,
- FRONT_FACE = 2886,
- DEPTH_RANGE = 2928,
- DEPTH_WRITEMASK = 2930,
- DEPTH_CLEAR_VALUE = 2931,
- DEPTH_FUNC = 2932,
- STENCIL_CLEAR_VALUE = 2961,
- STENCIL_FUNC = 2962,
- STENCIL_FAIL = 2964,
- STENCIL_PASS_DEPTH_FAIL = 2965,
- STENCIL_PASS_DEPTH_PASS = 2966,
- STENCIL_REF = 2967,
- STENCIL_VALUE_MASK = 2963,
- STENCIL_WRITEMASK = 2968,
- STENCIL_BACK_FUNC = 34816,
- STENCIL_BACK_FAIL = 34817,
- STENCIL_BACK_PASS_DEPTH_FAIL = 34818,
- STENCIL_BACK_PASS_DEPTH_PASS = 34819,
- STENCIL_BACK_REF = 36003,
- STENCIL_BACK_VALUE_MASK = 36004,
- STENCIL_BACK_WRITEMASK = 36005,
- VIEWPORT = 2978,
- SCISSOR_BOX = 3088,
- COLOR_CLEAR_VALUE = 3106,
- COLOR_WRITEMASK = 3107,
- UNPACK_ALIGNMENT = 3317,
- PACK_ALIGNMENT = 3333,
- MAX_TEXTURE_SIZE = 3379,
- MAX_VIEWPORT_DIMS = 3386,
- SUBPIXEL_BITS = 3408,
- RED_BITS = 3410,
- GREEN_BITS = 3411,
- BLUE_BITS = 3412,
- ALPHA_BITS = 3413,
- DEPTH_BITS = 3414,
- STENCIL_BITS = 3415,
- POLYGON_OFFSET_UNITS = 10752,
- POLYGON_OFFSET_FACTOR = 32824,
- TEXTURE_BINDING_2D = 32873,
- SAMPLE_BUFFERS = 32936,
- SAMPLES = 32937,
- SAMPLE_COVERAGE_VALUE = 32938,
- SAMPLE_COVERAGE_INVERT = 32939,
- COMPRESSED_TEXTURE_FORMATS = 34467,
- DONT_CARE = 4352,
- FASTEST = 4353,
- NICEST = 4354,
- GENERATE_MIPMAP_HINT = 33170,
- BYTE = 5120,
- UNSIGNED_BYTE = 5121,
- SHORT = 5122,
- UNSIGNED_SHORT = 5123,
- INT = 5124,
- UNSIGNED_INT = 5125,
- FLOAT = 5126,
- DEPTH_COMPONENT = 6402,
- ALPHA = 6406,
- RGB = 6407,
- RGBA = 6408,
- LUMINANCE = 6409,
- LUMINANCE_ALPHA = 6410,
- UNSIGNED_SHORT_4_4_4_4 = 32819,
- UNSIGNED_SHORT_5_5_5_1 = 32820,
- UNSIGNED_SHORT_5_6_5 = 33635,
- FRAGMENT_SHADER = 35632,
- VERTEX_SHADER = 35633,
- MAX_VERTEX_ATTRIBS = 34921,
- MAX_VERTEX_UNIFORM_VECTORS = 36347,
- MAX_VARYING_VECTORS = 36348,
- MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661,
- MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660,
- MAX_TEXTURE_IMAGE_UNITS = 34930,
- MAX_FRAGMENT_UNIFORM_VECTORS = 36349,
- SHADER_TYPE = 35663,
- DELETE_STATUS = 35712,
- LINK_STATUS = 35714,
- VALIDATE_STATUS = 35715,
- ATTACHED_SHADERS = 35717,
- ACTIVE_UNIFORMS = 35718,
- ACTIVE_ATTRIBUTES = 35721,
- SHADING_LANGUAGE_VERSION = 35724,
- CURRENT_PROGRAM = 35725,
- NEVER = 512,
- LESS = 513,
- EQUAL = 514,
- LEQUAL = 515,
- GREATER = 516,
- NOTEQUAL = 517,
- GEQUAL = 518,
- ALWAYS = 519,
- KEEP = 7680,
- REPLACE = 7681,
- INCR = 7682,
- DECR = 7683,
- INVERT = 5386,
- INCR_WRAP = 34055,
- DECR_WRAP = 34056,
- VENDOR = 7936,
- RENDERER = 7937,
- VERSION = 7938,
- NEAREST = 9728,
- LINEAR = 9729,
- NEAREST_MIPMAP_NEAREST = 9984,
- LINEAR_MIPMAP_NEAREST = 9985,
- NEAREST_MIPMAP_LINEAR = 9986,
- LINEAR_MIPMAP_LINEAR = 9987,
- TEXTURE_MAG_FILTER = 10240,
- TEXTURE_MIN_FILTER = 10241,
- TEXTURE_WRAP_S = 10242,
- TEXTURE_WRAP_T = 10243,
- TEXTURE_2D = 3553,
- TEXTURE = 5890,
- TEXTURE_CUBE_MAP = 34067,
- TEXTURE_BINDING_CUBE_MAP = 34068,
- TEXTURE_CUBE_MAP_POSITIVE_X = 34069,
- TEXTURE_CUBE_MAP_NEGATIVE_X = 34070,
- TEXTURE_CUBE_MAP_POSITIVE_Y = 34071,
- TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072,
- TEXTURE_CUBE_MAP_POSITIVE_Z = 34073,
- TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074,
- MAX_CUBE_MAP_TEXTURE_SIZE = 34076,
- TEXTURE0 = 33984,
- TEXTURE1 = 33985,
- TEXTURE2 = 33986,
- TEXTURE3 = 33987,
- TEXTURE4 = 33988,
- TEXTURE5 = 33989,
- TEXTURE6 = 33990,
- TEXTURE7 = 33991,
- TEXTURE8 = 33992,
- TEXTURE9 = 33993,
- TEXTURE10 = 33994,
- TEXTURE11 = 33995,
- TEXTURE12 = 33996,
- TEXTURE13 = 33997,
- TEXTURE14 = 33998,
- TEXTURE15 = 33999,
- TEXTURE16 = 34000,
- TEXTURE17 = 34001,
- TEXTURE18 = 34002,
- TEXTURE19 = 34003,
- TEXTURE20 = 34004,
- TEXTURE21 = 34005,
- TEXTURE22 = 34006,
- TEXTURE23 = 34007,
- TEXTURE24 = 34008,
- TEXTURE25 = 34009,
- TEXTURE26 = 34010,
- TEXTURE27 = 34011,
- TEXTURE28 = 34012,
- TEXTURE29 = 34013,
- TEXTURE30 = 34014,
- TEXTURE31 = 34015,
- ACTIVE_TEXTURE = 34016,
- REPEAT = 10497,
- CLAMP_TO_EDGE = 33071,
- MIRRORED_REPEAT = 33648,
- FLOAT_VEC2 = 35664,
- FLOAT_VEC3 = 35665,
- FLOAT_VEC4 = 35666,
- INT_VEC2 = 35667,
- INT_VEC3 = 35668,
- INT_VEC4 = 35669,
- BOOL = 35670,
- BOOL_VEC2 = 35671,
- BOOL_VEC3 = 35672,
- BOOL_VEC4 = 35673,
- FLOAT_MAT2 = 35674,
- FLOAT_MAT3 = 35675,
- FLOAT_MAT4 = 35676,
- SAMPLER_2D = 35678,
- SAMPLER_CUBE = 35680,
- VERTEX_ATTRIB_ARRAY_ENABLED = 34338,
- VERTEX_ATTRIB_ARRAY_SIZE = 34339,
- VERTEX_ATTRIB_ARRAY_STRIDE = 34340,
- VERTEX_ATTRIB_ARRAY_TYPE = 34341,
- VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922,
- VERTEX_ATTRIB_ARRAY_POINTER = 34373,
- VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975,
- IMPLEMENTATION_COLOR_READ_TYPE = 35738,
- IMPLEMENTATION_COLOR_READ_FORMAT = 35739,
- COMPILE_STATUS = 35713,
- LOW_FLOAT = 36336,
- MEDIUM_FLOAT = 36337,
- HIGH_FLOAT = 36338,
- LOW_INT = 36339,
- MEDIUM_INT = 36340,
- HIGH_INT = 36341,
- FRAMEBUFFER = 36160,
- RENDERBUFFER = 36161,
- RGBA4 = 32854,
- RGB5_A1 = 32855,
- RGB565 = 36194,
- DEPTH_COMPONENT16 = 33189,
- STENCIL_INDEX = 6401,
- STENCIL_INDEX8 = 36168,
- DEPTH_STENCIL = 34041,
- RENDERBUFFER_WIDTH = 36162,
- RENDERBUFFER_HEIGHT = 36163,
- RENDERBUFFER_INTERNAL_FORMAT = 36164,
- RENDERBUFFER_RED_SIZE = 36176,
- RENDERBUFFER_GREEN_SIZE = 36177,
- RENDERBUFFER_BLUE_SIZE = 36178,
- RENDERBUFFER_ALPHA_SIZE = 36179,
- RENDERBUFFER_DEPTH_SIZE = 36180,
- RENDERBUFFER_STENCIL_SIZE = 36181,
- FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048,
- FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049,
- FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050,
- FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051,
- COLOR_ATTACHMENT0 = 36064,
- DEPTH_ATTACHMENT = 36096,
- STENCIL_ATTACHMENT = 36128,
- DEPTH_STENCIL_ATTACHMENT = 33306,
- NONE = 0,
- FRAMEBUFFER_COMPLETE = 36053,
- FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054,
- FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055,
- FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057,
- FRAMEBUFFER_UNSUPPORTED = 36061,
- FRAMEBUFFER_BINDING = 36006,
- RENDERBUFFER_BINDING = 36007,
- MAX_RENDERBUFFER_SIZE = 34024,
- INVALID_FRAMEBUFFER_OPERATION = 1286,
- UNPACK_FLIP_Y_WEBGL = 37440,
- UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441,
- CONTEXT_LOST_WEBGL = 37442,
- UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443,
- BROWSER_DEFAULT_WEBGL = 37444,
- COMPRESSED_RGB_S3TC_DXT1_EXT = 33776,
- COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777,
- COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778,
- COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779,
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840,
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841,
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842,
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843,
- COMPRESSED_RGBA_ASTC_4x4_WEBGL = 37808,
- COMPRESSED_RGB_ETC1_WEBGL = 36196,
- COMPRESSED_RGBA_BPTC_UNORM = 36492,
- HALF_FLOAT_OES = 36193,
- DOUBLE = 5130,
- READ_BUFFER = 3074,
- UNPACK_ROW_LENGTH = 3314,
- UNPACK_SKIP_ROWS = 3315,
- UNPACK_SKIP_PIXELS = 3316,
- PACK_ROW_LENGTH = 3330,
- PACK_SKIP_ROWS = 3331,
- PACK_SKIP_PIXELS = 3332,
- COLOR = 6144,
- DEPTH = 6145,
- STENCIL = 6146,
- RED = 6403,
- RGB8 = 32849,
- RGBA8 = 32856,
- RGB10_A2 = 32857,
- TEXTURE_BINDING_3D = 32874,
- UNPACK_SKIP_IMAGES = 32877,
- UNPACK_IMAGE_HEIGHT = 32878,
- TEXTURE_3D = 32879,
- TEXTURE_WRAP_R = 32882,
- MAX_3D_TEXTURE_SIZE = 32883,
- UNSIGNED_INT_2_10_10_10_REV = 33640,
- MAX_ELEMENTS_VERTICES = 33000,
- MAX_ELEMENTS_INDICES = 33001,
- TEXTURE_MIN_LOD = 33082,
- TEXTURE_MAX_LOD = 33083,
- TEXTURE_BASE_LEVEL = 33084,
- TEXTURE_MAX_LEVEL = 33085,
- MIN = 32775,
- MAX = 32776,
- DEPTH_COMPONENT24 = 33190,
- MAX_TEXTURE_LOD_BIAS = 34045,
- TEXTURE_COMPARE_MODE = 34892,
- TEXTURE_COMPARE_FUNC = 34893,
- CURRENT_QUERY = 34917,
- QUERY_RESULT = 34918,
- QUERY_RESULT_AVAILABLE = 34919,
- STREAM_READ = 35041,
- STREAM_COPY = 35042,
- STATIC_READ = 35045,
- STATIC_COPY = 35046,
- DYNAMIC_READ = 35049,
- DYNAMIC_COPY = 35050,
- MAX_DRAW_BUFFERS = 34852,
- DRAW_BUFFER0 = 34853,
- DRAW_BUFFER1 = 34854,
- DRAW_BUFFER2 = 34855,
- DRAW_BUFFER3 = 34856,
- DRAW_BUFFER4 = 34857,
- DRAW_BUFFER5 = 34858,
- DRAW_BUFFER6 = 34859,
- DRAW_BUFFER7 = 34860,
- DRAW_BUFFER8 = 34861,
- DRAW_BUFFER9 = 34862,
- DRAW_BUFFER10 = 34863,
- DRAW_BUFFER11 = 34864,
- DRAW_BUFFER12 = 34865,
- DRAW_BUFFER13 = 34866,
- DRAW_BUFFER14 = 34867,
- DRAW_BUFFER15 = 34868,
- MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657,
- MAX_VERTEX_UNIFORM_COMPONENTS = 35658,
- SAMPLER_3D = 35679,
- SAMPLER_2D_SHADOW = 35682,
- FRAGMENT_SHADER_DERIVATIVE_HINT = 35723,
- PIXEL_PACK_BUFFER = 35051,
- PIXEL_UNPACK_BUFFER = 35052,
- PIXEL_PACK_BUFFER_BINDING = 35053,
- PIXEL_UNPACK_BUFFER_BINDING = 35055,
- FLOAT_MAT2x3 = 35685,
- FLOAT_MAT2x4 = 35686,
- FLOAT_MAT3x2 = 35687,
- FLOAT_MAT3x4 = 35688,
- FLOAT_MAT4x2 = 35689,
- FLOAT_MAT4x3 = 35690,
- SRGB = 35904,
- SRGB8 = 35905,
- SRGB8_ALPHA8 = 35907,
- COMPARE_REF_TO_TEXTURE = 34894,
- RGBA32F = 34836,
- RGB32F = 34837,
- RGBA16F = 34842,
- RGB16F = 34843,
- VERTEX_ATTRIB_ARRAY_INTEGER = 35069,
- MAX_ARRAY_TEXTURE_LAYERS = 35071,
- MIN_PROGRAM_TEXEL_OFFSET = 35076,
- MAX_PROGRAM_TEXEL_OFFSET = 35077,
- MAX_VARYING_COMPONENTS = 35659,
- TEXTURE_2D_ARRAY = 35866,
- TEXTURE_BINDING_2D_ARRAY = 35869,
- R11F_G11F_B10F = 35898,
- UNSIGNED_INT_10F_11F_11F_REV = 35899,
- RGB9_E5 = 35901,
- UNSIGNED_INT_5_9_9_9_REV = 35902,
- TRANSFORM_FEEDBACK_BUFFER_MODE = 35967,
- MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968,
- TRANSFORM_FEEDBACK_VARYINGS = 35971,
- TRANSFORM_FEEDBACK_BUFFER_START = 35972,
- TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973,
- TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976,
- RASTERIZER_DISCARD = 35977,
- MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978,
- MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979,
- INTERLEAVED_ATTRIBS = 35980,
- SEPARATE_ATTRIBS = 35981,
- TRANSFORM_FEEDBACK_BUFFER = 35982,
- TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983,
- RGBA32UI = 36208,
- RGB32UI = 36209,
- RGBA16UI = 36214,
- RGB16UI = 36215,
- RGBA8UI = 36220,
- RGB8UI = 36221,
- RGBA32I = 36226,
- RGB32I = 36227,
- RGBA16I = 36232,
- RGB16I = 36233,
- RGBA8I = 36238,
- RGB8I = 36239,
- RED_INTEGER = 36244,
- RGB_INTEGER = 36248,
- RGBA_INTEGER = 36249,
- SAMPLER_2D_ARRAY = 36289,
- SAMPLER_2D_ARRAY_SHADOW = 36292,
- SAMPLER_CUBE_SHADOW = 36293,
- UNSIGNED_INT_VEC2 = 36294,
- UNSIGNED_INT_VEC3 = 36295,
- UNSIGNED_INT_VEC4 = 36296,
- INT_SAMPLER_2D = 36298,
- INT_SAMPLER_3D = 36299,
- INT_SAMPLER_CUBE = 36300,
- INT_SAMPLER_2D_ARRAY = 36303,
- UNSIGNED_INT_SAMPLER_2D = 36306,
- UNSIGNED_INT_SAMPLER_3D = 36307,
- UNSIGNED_INT_SAMPLER_CUBE = 36308,
- UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311,
- DEPTH_COMPONENT32F = 36012,
- DEPTH32F_STENCIL8 = 36013,
- FLOAT_32_UNSIGNED_INT_24_8_REV = 36269,
- FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296,
- FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297,
- FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298,
- FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299,
- FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300,
- FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301,
- FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302,
- FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303,
- FRAMEBUFFER_DEFAULT = 33304,
- UNSIGNED_INT_24_8 = 34042,
- DEPTH24_STENCIL8 = 35056,
- UNSIGNED_NORMALIZED = 35863,
- DRAW_FRAMEBUFFER_BINDING = 36006,
- READ_FRAMEBUFFER = 36008,
- DRAW_FRAMEBUFFER = 36009,
- READ_FRAMEBUFFER_BINDING = 36010,
- RENDERBUFFER_SAMPLES = 36011,
- FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052,
- MAX_COLOR_ATTACHMENTS = 36063,
- COLOR_ATTACHMENT1 = 36065,
- COLOR_ATTACHMENT2 = 36066,
- COLOR_ATTACHMENT3 = 36067,
- COLOR_ATTACHMENT4 = 36068,
- COLOR_ATTACHMENT5 = 36069,
- COLOR_ATTACHMENT6 = 36070,
- COLOR_ATTACHMENT7 = 36071,
- COLOR_ATTACHMENT8 = 36072,
- COLOR_ATTACHMENT9 = 36073,
- COLOR_ATTACHMENT10 = 36074,
- COLOR_ATTACHMENT11 = 36075,
- COLOR_ATTACHMENT12 = 36076,
- COLOR_ATTACHMENT13 = 36077,
- COLOR_ATTACHMENT14 = 36078,
- COLOR_ATTACHMENT15 = 36079,
- FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182,
- MAX_SAMPLES = 36183,
- HALF_FLOAT = 5131,
- RG = 33319,
- RG_INTEGER = 33320,
- R8 = 33321,
- RG8 = 33323,
- R16F = 33325,
- R32F = 33326,
- RG16F = 33327,
- RG32F = 33328,
- R8I = 33329,
- R8UI = 33330,
- R16I = 33331,
- R16UI = 33332,
- R32I = 33333,
- R32UI = 33334,
- RG8I = 33335,
- RG8UI = 33336,
- RG16I = 33337,
- RG16UI = 33338,
- RG32I = 33339,
- RG32UI = 33340,
- VERTEX_ARRAY_BINDING = 34229,
- R8_SNORM = 36756,
- RG8_SNORM = 36757,
- RGB8_SNORM = 36758,
- RGBA8_SNORM = 36759,
- SIGNED_NORMALIZED = 36764,
- COPY_READ_BUFFER = 36662,
- COPY_WRITE_BUFFER = 36663,
- COPY_READ_BUFFER_BINDING = 36662,
- COPY_WRITE_BUFFER_BINDING = 36663,
- UNIFORM_BUFFER = 35345,
- UNIFORM_BUFFER_BINDING = 35368,
- UNIFORM_BUFFER_START = 35369,
- UNIFORM_BUFFER_SIZE = 35370,
- MAX_VERTEX_UNIFORM_BLOCKS = 35371,
- MAX_FRAGMENT_UNIFORM_BLOCKS = 35373,
- MAX_COMBINED_UNIFORM_BLOCKS = 35374,
- MAX_UNIFORM_BUFFER_BINDINGS = 35375,
- MAX_UNIFORM_BLOCK_SIZE = 35376,
- MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377,
- MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379,
- UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380,
- ACTIVE_UNIFORM_BLOCKS = 35382,
- UNIFORM_TYPE = 35383,
- UNIFORM_SIZE = 35384,
- UNIFORM_BLOCK_INDEX = 35386,
- UNIFORM_OFFSET = 35387,
- UNIFORM_ARRAY_STRIDE = 35388,
- UNIFORM_MATRIX_STRIDE = 35389,
- UNIFORM_IS_ROW_MAJOR = 35390,
- UNIFORM_BLOCK_BINDING = 35391,
- UNIFORM_BLOCK_DATA_SIZE = 35392,
- UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394,
- UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395,
- UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396,
- UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398,
- INVALID_INDEX = 4294967295,
- MAX_VERTEX_OUTPUT_COMPONENTS = 37154,
- MAX_FRAGMENT_INPUT_COMPONENTS = 37157,
- MAX_SERVER_WAIT_TIMEOUT = 37137,
- OBJECT_TYPE = 37138,
- SYNC_CONDITION = 37139,
- SYNC_STATUS = 37140,
- SYNC_FLAGS = 37141,
- SYNC_FENCE = 37142,
- SYNC_GPU_COMMANDS_COMPLETE = 37143,
- UNSIGNALED = 37144,
- SIGNALED = 37145,
- ALREADY_SIGNALED = 37146,
- TIMEOUT_EXPIRED = 37147,
- CONDITION_SATISFIED = 37148,
- WAIT_FAILED = 37149,
- SYNC_FLUSH_COMMANDS_BIT = 1,
- VERTEX_ATTRIB_ARRAY_DIVISOR = 35070,
- ANY_SAMPLES_PASSED = 35887,
- ANY_SAMPLES_PASSED_CONSERVATIVE = 36202,
- SAMPLER_BINDING = 35097,
- RGB10_A2UI = 36975,
- INT_2_10_10_10_REV = 36255,
- TRANSFORM_FEEDBACK = 36386,
- TRANSFORM_FEEDBACK_PAUSED = 36387,
- TRANSFORM_FEEDBACK_ACTIVE = 36388,
- TRANSFORM_FEEDBACK_BINDING = 36389,
- COMPRESSED_R11_EAC = 37488,
- COMPRESSED_SIGNED_R11_EAC = 37489,
- COMPRESSED_RG11_EAC = 37490,
- COMPRESSED_SIGNED_RG11_EAC = 37491,
- COMPRESSED_RGB8_ETC2 = 37492,
- COMPRESSED_SRGB8_ETC2 = 37493,
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494,
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495,
- COMPRESSED_RGBA8_ETC2_EAC = 37496,
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497,
- TEXTURE_IMMUTABLE_FORMAT = 37167,
- MAX_ELEMENT_INDEX = 36203,
- TEXTURE_IMMUTABLE_LEVELS = 33503,
- MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047
- }
- export class ArcGISTiledElevationTerrainProvider {
- constructor(options: {
- url: Resource | string | Promise<Resource> | Promise<string>;
- token?: string;
- ellipsoid?: Ellipsoid;
- });
-
- readonly errorEvent: Event;
-
- readonly credit: Credit;
-
- readonly tilingScheme: GeographicTilingScheme;
-
- readonly ready: boolean;
-
- readonly readyPromise: Promise<boolean>;
-
- readonly hasWaterMask: boolean;
-
- readonly hasVertexNormals: boolean;
-
- readonly availability: TileAvailability;
-
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
-
- getLevelMaximumGeometricError(level: number): number;
-
- getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
-
- loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
- }
- export enum ArcType {
-
- NONE = 0,
-
- GEODESIC = 1,
-
- RHUMB = 2
- }
- export class AssociativeArray {
- constructor();
- /**
- * Gets the number of items in the collection.
- */
- length: number;
- /**
- * Gets an unordered array of all values in the collection.
- * This is a live array that will automatically reflect the values in the collection,
- * it should not be modified directly.
- */
- values: any[];
- /**
- * Determines if the provided key is in the array.
- * @param key - The key to check.
- * @returns <code>true</code> if the key is in the array, <code>false</code> otherwise.
- */
- contains(key: string | number): boolean;
- /**
- * Associates the provided key with the provided value. If the key already
- * exists, it is overwritten with the new value.
- * @param key - A unique identifier.
- * @param value - The value to associate with the provided key.
- */
- set(key: string | number, value: any): void;
- /**
- * Retrieves the value associated with the provided key.
- * @param key - The key whose value is to be retrieved.
- * @returns The associated value, or undefined if the key does not exist in the collection.
- */
- get(key: string | number): any;
- /**
- * Removes a key-value pair from the collection.
- * @param key - The key to be removed.
- * @returns True if it was removed, false if the key was not in the collection.
- */
- remove(key: string | number): boolean;
- /**
- * Clears the collection.
- */
- removeAll(): void;
- }
- /**
- * Creates an instance of an AxisAlignedBoundingBox from the minimum and maximum points along the x, y, and z axes.
- * @param [minimum = Cartesian3.ZERO] - The minimum point along the x, y, and z axes.
- * @param [maximum = Cartesian3.ZERO] - The maximum point along the x, y, and z axes.
- * @param [center] - The center of the box; automatically computed if not supplied.
- */
- export class AxisAlignedBoundingBox {
- constructor(minimum?: Cartesian3, maximum?: Cartesian3, center?: Cartesian3);
- /**
- * The minimum point defining the bounding box.
- */
- minimum: Cartesian3;
- /**
- * The maximum point defining the bounding box.
- */
- maximum: Cartesian3;
- /**
- * The center point of the bounding box.
- */
- center: Cartesian3;
- /**
- * Computes an instance of an AxisAlignedBoundingBox. The box is determined by
- * finding the points spaced the farthest apart on the x, y, and z axes.
- * @example
- * // Compute an axis aligned bounding box enclosing two points.
- * var box = Cesium.AxisAlignedBoundingBox.fromPoints([new Cesium.Cartesian3(2, 0, 0), new Cesium.Cartesian3(-2, 0, 0)]);
- * @param positions - List of points that the bounding box will enclose. Each point must have a <code>x</code>, <code>y</code>, and <code>z</code> properties.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new AxisAlignedBoundingBox instance if one was not provided.
- */
- static fromPoints(positions: Cartesian3[], result?: AxisAlignedBoundingBox): AxisAlignedBoundingBox;
- /**
- * Duplicates a AxisAlignedBoundingBox instance.
- * @param box - The bounding box to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new AxisAlignedBoundingBox instance if none was provided. (Returns undefined if box is undefined)
- */
- static clone(box: AxisAlignedBoundingBox, result?: AxisAlignedBoundingBox): AxisAlignedBoundingBox;
- /**
- * Compares the provided AxisAlignedBoundingBox componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first AxisAlignedBoundingBox.
- * @param [right] - The second AxisAlignedBoundingBox.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: AxisAlignedBoundingBox, right?: AxisAlignedBoundingBox): boolean;
- /**
- * Determines which side of a plane a box is located.
- * @param box - The bounding box to test.
- * @param plane - The plane to test against.
- * @returns {@link Intersect.INSIDE} if the entire box is on the side of the plane
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire box is
- * on the opposite side, and {@link Intersect.INTERSECTING} if the box
- * intersects the plane.
- */
- static intersectPlane(box: AxisAlignedBoundingBox, plane: Plane): Intersect;
- /**
- * Duplicates this AxisAlignedBoundingBox instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new AxisAlignedBoundingBox instance if one was not provided.
- */
- clone(result?: AxisAlignedBoundingBox): AxisAlignedBoundingBox;
- /**
- * Determines which side of a plane this box is located.
- * @param plane - The plane to test against.
- * @returns {@link Intersect.INSIDE} if the entire box is on the side of the plane
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire box is
- * on the opposite side, and {@link Intersect.INTERSECTING} if the box
- * intersects the plane.
- */
- intersectPlane(plane: Plane): Intersect;
- /**
- * Compares this AxisAlignedBoundingBox against the provided AxisAlignedBoundingBox componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side AxisAlignedBoundingBox.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: AxisAlignedBoundingBox): boolean;
- }
- /**
- * Provides geocoding through Bing Maps.
- * @param options - Object with the following properties:
- * @param options.key - A key to use with the Bing Maps geocoding service
- * @param [options.culture] - A Bing Maps {@link https:
- */
- export class BingMapsGeocoderService {
- constructor(options: {
- key: string;
- culture?: string;
- });
- /**
- * The URL endpoint for the Bing geocoder service
- */
- readonly url: string;
- /**
- * The key for the Bing geocoder service
- */
- readonly key: string;
- /**
- * @param query - The query to be sent to the geocoder service
- */
- geocode(query: string): Promise<GeocoderService.Result[]>;
- }
- /**
- * A bounding rectangle given by a corner, width and height.
- * @param [x = 0.0] - The x coordinate of the rectangle.
- * @param [y = 0.0] - The y coordinate of the rectangle.
- * @param [width = 0.0] - The width of the rectangle.
- * @param [height = 0.0] - The height of the rectangle.
- */
- export class BoundingRectangle {
- constructor(x?: number, y?: number, width?: number, height?: number);
- /**
- * The x coordinate of the rectangle.
- */
- x: number;
- /**
- * The y coordinate of the rectangle.
- */
- y: number;
- /**
- * The width of the rectangle.
- */
- width: number;
- /**
- * The height of the rectangle.
- */
- height: number;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: BoundingRectangle, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new BoundingRectangle instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: BoundingRectangle): BoundingRectangle;
- /**
- * Computes a bounding rectangle enclosing the list of 2D points.
- * The rectangle is oriented with the corner at the bottom left.
- * @param positions - List of points that the bounding rectangle will enclose. Each point must have <code>x</code> and <code>y</code> properties.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingRectangle instance if one was not provided.
- */
- static fromPoints(positions: Cartesian2[], result?: BoundingRectangle): BoundingRectangle;
- /**
- * Computes a bounding rectangle from a rectangle.
- * @param rectangle - The valid rectangle used to create a bounding rectangle.
- * @param [projection = GeographicProjection] - The projection used to project the rectangle into 2D.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingRectangle instance if one was not provided.
- */
- static fromRectangle(rectangle: Rectangle, projection?: any, result?: BoundingRectangle): BoundingRectangle;
- /**
- * Duplicates a BoundingRectangle instance.
- * @param rectangle - The bounding rectangle to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingRectangle instance if one was not provided. (Returns undefined if rectangle is undefined)
- */
- static clone(rectangle: BoundingRectangle, result?: BoundingRectangle): BoundingRectangle;
- /**
- * Computes a bounding rectangle that is the union of the left and right bounding rectangles.
- * @param left - A rectangle to enclose in bounding rectangle.
- * @param right - A rectangle to enclose in a bounding rectangle.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingRectangle instance if one was not provided.
- */
- static union(left: BoundingRectangle, right: BoundingRectangle, result?: BoundingRectangle): BoundingRectangle;
- /**
- * Computes a bounding rectangle by enlarging the provided rectangle until it contains the provided point.
- * @param rectangle - A rectangle to expand.
- * @param point - A point to enclose in a bounding rectangle.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingRectangle instance if one was not provided.
- */
- static expand(rectangle: BoundingRectangle, point: Cartesian2, result?: BoundingRectangle): BoundingRectangle;
- /**
- * Determines if two rectangles intersect.
- * @param left - A rectangle to check for intersection.
- * @param right - The other rectangle to check for intersection.
- * @returns <code>Intersect.INTERSECTING</code> if the rectangles intersect, <code>Intersect.OUTSIDE</code> otherwise.
- */
- static intersect(left: BoundingRectangle, right: BoundingRectangle): Intersect;
- /**
- * Compares the provided BoundingRectangles componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first BoundingRectangle.
- * @param [right] - The second BoundingRectangle.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: BoundingRectangle, right?: BoundingRectangle): boolean;
- /**
- * Duplicates this BoundingRectangle instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingRectangle instance if one was not provided.
- */
- clone(result?: BoundingRectangle): BoundingRectangle;
- /**
- * Determines if this rectangle intersects with another.
- * @param right - A rectangle to check for intersection.
- * @returns <code>Intersect.INTERSECTING</code> if the rectangles intersect, <code>Intersect.OUTSIDE</code> otherwise.
- */
- intersect(right: BoundingRectangle): Intersect;
- /**
- * Compares this BoundingRectangle against the provided BoundingRectangle componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side BoundingRectangle.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: BoundingRectangle): boolean;
- }
- /**
- * A bounding sphere with a center and a radius.
- * @param [center = Cartesian3.ZERO] - The center of the bounding sphere.
- * @param [radius = 0.0] - The radius of the bounding sphere.
- */
- export class BoundingSphere {
- constructor(center?: Cartesian3, radius?: number);
- /**
- * The center point of the sphere.
- */
- center: Cartesian3;
- /**
- * The radius of the sphere.
- */
- radius: number;
- /**
- * Computes a tight-fitting bounding sphere enclosing a list of 3D Cartesian points.
- * The bounding sphere is computed by running two algorithms, a naive algorithm and
- * Ritter's algorithm. The smaller of the two spheres is used to ensure a tight fit.
- * @param [positions] - An array of points that the bounding sphere will enclose. Each point must have <code>x</code>, <code>y</code>, and <code>z</code> properties.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if one was not provided.
- */
- static fromPoints(positions?: Cartesian3[], result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a bounding sphere from a rectangle projected in 2D.
- * @param [rectangle] - The rectangle around which to create a bounding sphere.
- * @param [projection = GeographicProjection] - The projection used to project the rectangle into 2D.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static fromRectangle2D(rectangle?: Rectangle, projection?: any, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a bounding sphere from a rectangle projected in 2D. The bounding sphere accounts for the
- * object's minimum and maximum heights over the rectangle.
- * @param [rectangle] - The rectangle around which to create a bounding sphere.
- * @param [projection = GeographicProjection] - The projection used to project the rectangle into 2D.
- * @param [minimumHeight = 0.0] - The minimum height over the rectangle.
- * @param [maximumHeight = 0.0] - The maximum height over the rectangle.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static fromRectangleWithHeights2D(rectangle?: Rectangle, projection?: any, minimumHeight?: number, maximumHeight?: number, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a bounding sphere from a rectangle in 3D. The bounding sphere is created using a subsample of points
- * on the ellipsoid and contained in the rectangle. It may not be accurate for all rectangles on all types of ellipsoids.
- * @param [rectangle] - The valid rectangle used to create a bounding sphere.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid used to determine positions of the rectangle.
- * @param [surfaceHeight = 0.0] - The height above the surface of the ellipsoid.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static fromRectangle3D(rectangle?: Rectangle, ellipsoid?: Ellipsoid, surfaceHeight?: number, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a tight-fitting bounding sphere enclosing a list of 3D points, where the points are
- * stored in a flat array in X, Y, Z, order. The bounding sphere is computed by running two
- * algorithms, a naive algorithm and Ritter's algorithm. The smaller of the two spheres is used to
- * ensure a tight fit.
- * @example
- * // Compute the bounding sphere from 3 positions, each specified relative to a center.
- * // In addition to the X, Y, and Z coordinates, the points array contains two additional
- * // elements per point which are ignored for the purpose of computing the bounding sphere.
- * var center = new Cesium.Cartesian3(1.0, 2.0, 3.0);
- * var points = [1.0, 2.0, 3.0, 0.1, 0.2,
- * 4.0, 5.0, 6.0, 0.1, 0.2,
- * 7.0, 8.0, 9.0, 0.1, 0.2];
- * var sphere = Cesium.BoundingSphere.fromVertices(points, center, 5);
- * @param [positions] - An array of points that the bounding sphere will enclose. Each point
- * is formed from three elements in the array in the order X, Y, Z.
- * @param [center = Cartesian3.ZERO] - The position to which the positions are relative, which need not be the
- * origin of the coordinate system. This is useful when the positions are to be used for
- * relative-to-center (RTC) rendering.
- * @param [stride = 3] - The number of array elements per vertex. It must be at least 3, but it may
- * be higher. Regardless of the value of this parameter, the X coordinate of the first position
- * is at array index 0, the Y coordinate is at array index 1, and the Z coordinate is at array index
- * 2. When stride is 3, the X coordinate of the next position then begins at array index 3. If
- * the stride is 5, however, two array elements are skipped and the next position begins at array
- * index 5.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if one was not provided.
- */
- static fromVertices(positions?: number[], center?: Cartesian3, stride?: number, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a tight-fitting bounding sphere enclosing a list of EncodedCartesian3s, where the points are
- * stored in parallel flat arrays in X, Y, Z, order. The bounding sphere is computed by running two
- * algorithms, a naive algorithm and Ritter's algorithm. The smaller of the two spheres is used to
- * ensure a tight fit.
- * @param [positionsHigh] - An array of high bits of the encoded cartesians that the bounding sphere will enclose. Each point
- * is formed from three elements in the array in the order X, Y, Z.
- * @param [positionsLow] - An array of low bits of the encoded cartesians that the bounding sphere will enclose. Each point
- * is formed from three elements in the array in the order X, Y, Z.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if one was not provided.
- */
- static fromEncodedCartesianVertices(positionsHigh?: number[], positionsLow?: number[], result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a bounding sphere from the corner points of an axis-aligned bounding box. The sphere
- * tighly and fully encompases the box.
- * @example
- *
- * var sphere = Cesium.BoundingSphere.fromCornerPoints(new Cesium.Cartesian3(-0.5, -0.5, -0.5), new Cesium.Cartesian3(0.5, 0.5, 0.5));
- * @param [corner] - The minimum height over the rectangle.
- * @param [oppositeCorner] - The maximum height over the rectangle.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static fromCornerPoints(corner?: Cartesian3, oppositeCorner?: Cartesian3, result?: BoundingSphere): BoundingSphere;
- /**
- * Creates a bounding sphere encompassing an ellipsoid.
- * @example
- * var boundingSphere = Cesium.BoundingSphere.fromEllipsoid(ellipsoid);
- * @param ellipsoid - The ellipsoid around which to create a bounding sphere.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static fromEllipsoid(ellipsoid: Ellipsoid, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a tight-fitting bounding sphere enclosing the provided array of bounding spheres.
- * @param [boundingSpheres] - The array of bounding spheres.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static fromBoundingSpheres(boundingSpheres?: BoundingSphere[], result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a tight-fitting bounding sphere enclosing the provided oriented bounding box.
- * @param orientedBoundingBox - The oriented bounding box.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static fromOrientedBoundingBox(orientedBoundingBox: OrientedBoundingBox, result?: BoundingSphere): BoundingSphere;
- /**
- * Duplicates a BoundingSphere instance.
- * @param sphere - The bounding sphere to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided. (Returns undefined if sphere is undefined)
- */
- static clone(sphere: BoundingSphere, result?: BoundingSphere): BoundingSphere;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: BoundingSphere, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a bounding sphere that contains both the left and right bounding spheres.
- * @param left - A sphere to enclose in a bounding sphere.
- * @param right - A sphere to enclose in a bounding sphere.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static union(left: BoundingSphere, right: BoundingSphere, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes a bounding sphere by enlarging the provided sphere to contain the provided point.
- * @param sphere - A sphere to expand.
- * @param point - A point to enclose in a bounding sphere.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static expand(sphere: BoundingSphere, point: Cartesian3, result?: BoundingSphere): BoundingSphere;
- /**
- * Determines which side of a plane a sphere is located.
- * @param sphere - The bounding sphere to test.
- * @param plane - The plane to test against.
- * @returns {@link Intersect.INSIDE} if the entire sphere is on the side of the plane
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire sphere is
- * on the opposite side, and {@link Intersect.INTERSECTING} if the sphere
- * intersects the plane.
- */
- static intersectPlane(sphere: BoundingSphere, plane: Plane): Intersect;
- /**
- * Applies a 4x4 affine transformation matrix to a bounding sphere.
- * @param sphere - The bounding sphere to apply the transformation to.
- * @param transform - The transformation matrix to apply to the bounding sphere.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static transform(sphere: BoundingSphere, transform: Matrix4, result?: BoundingSphere): BoundingSphere;
- /**
- * Computes the estimated distance squared from the closest point on a bounding sphere to a point.
- * @example
- *
- * spheres.sort(function(a, b) {
- * return Cesium.BoundingSphere.distanceSquaredTo(b, camera.positionWC) - Cesium.BoundingSphere.distanceSquaredTo(a, camera.positionWC);
- * });
- * @param sphere - The sphere.
- * @param cartesian - The point
- * @returns The distance squared from the bounding sphere to the point. Returns 0 if the point is inside the sphere.
- */
- static distanceSquaredTo(sphere: BoundingSphere, cartesian: Cartesian3): number;
- /**
- * Applies a 4x4 affine transformation matrix to a bounding sphere where there is no scale
- * The transformation matrix is not verified to have a uniform scale of 1.
- * This method is faster than computing the general bounding sphere transform using {@link BoundingSphere.transform}.
- * @example
- * var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid);
- * var boundingSphere = new Cesium.BoundingSphere();
- * var newBoundingSphere = Cesium.BoundingSphere.transformWithoutScale(boundingSphere, modelMatrix);
- * @param sphere - The bounding sphere to apply the transformation to.
- * @param transform - The transformation matrix to apply to the bounding sphere.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static transformWithoutScale(sphere: BoundingSphere, transform: Matrix4, result?: BoundingSphere): BoundingSphere;
- /**
- * The distances calculated by the vector from the center of the bounding sphere to position projected onto direction
- * plus/minus the radius of the bounding sphere.
- * <br>
- * If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the
- * closest and farthest planes from position that intersect the bounding sphere.
- * @param sphere - The bounding sphere to calculate the distance to.
- * @param position - The position to calculate the distance from.
- * @param direction - The direction from position.
- * @param [result] - A Interval to store the nearest and farthest distances.
- * @returns The nearest and farthest distances on the bounding sphere from position in direction.
- */
- static computePlaneDistances(sphere: BoundingSphere, position: Cartesian3, direction: Cartesian3, result?: Interval): Interval;
- /**
- * Creates a bounding sphere in 2D from a bounding sphere in 3D world coordinates.
- * @param sphere - The bounding sphere to transform to 2D.
- * @param [projection = GeographicProjection] - The projection to 2D.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- static projectTo2D(sphere: BoundingSphere, projection?: any, result?: BoundingSphere): BoundingSphere;
- /**
- * Determines whether or not a sphere is hidden from view by the occluder.
- * @param sphere - The bounding sphere surrounding the occludee object.
- * @param occluder - The occluder.
- * @returns <code>true</code> if the sphere is not visible; otherwise <code>false</code>.
- */
- static isOccluded(sphere: BoundingSphere, occluder: Occluder): boolean;
- /**
- * Compares the provided BoundingSphere componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first BoundingSphere.
- * @param [right] - The second BoundingSphere.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: BoundingSphere, right?: BoundingSphere): boolean;
- /**
- * Determines which side of a plane the sphere is located.
- * @param plane - The plane to test against.
- * @returns {@link Intersect.INSIDE} if the entire sphere is on the side of the plane
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire sphere is
- * on the opposite side, and {@link Intersect.INTERSECTING} if the sphere
- * intersects the plane.
- */
- intersectPlane(plane: Plane): Intersect;
- /**
- * Computes the estimated distance squared from the closest point on a bounding sphere to a point.
- * @example
- *
- * spheres.sort(function(a, b) {
- * return b.distanceSquaredTo(camera.positionWC) - a.distanceSquaredTo(camera.positionWC);
- * });
- * @param cartesian - The point
- * @returns The estimated distance squared from the bounding sphere to the point.
- */
- distanceSquaredTo(cartesian: Cartesian3): number;
- /**
- * The distances calculated by the vector from the center of the bounding sphere to position projected onto direction
- * plus/minus the radius of the bounding sphere.
- * <br>
- * If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the
- * closest and farthest planes from position that intersect the bounding sphere.
- * @param position - The position to calculate the distance from.
- * @param direction - The direction from position.
- * @param [result] - A Interval to store the nearest and farthest distances.
- * @returns The nearest and farthest distances on the bounding sphere from position in direction.
- */
- computePlaneDistances(position: Cartesian3, direction: Cartesian3, result?: Interval): Interval;
- /**
- * Determines whether or not a sphere is hidden from view by the occluder.
- * @param occluder - The occluder.
- * @returns <code>true</code> if the sphere is not visible; otherwise <code>false</code>.
- */
- isOccluded(occluder: Occluder): boolean;
- /**
- * Compares this BoundingSphere against the provided BoundingSphere componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side BoundingSphere.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: BoundingSphere): boolean;
- /**
- * Duplicates this BoundingSphere instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new BoundingSphere instance if none was provided.
- */
- clone(result?: BoundingSphere): BoundingSphere;
- /**
- * Computes the radius of the BoundingSphere.
- * @returns The radius of the BoundingSphere.
- */
- volume(): number;
- }
- /**
- * Describes a cube centered at the origin.
- * @example
- * var box = new Cesium.BoxGeometry({
- * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
- * maximum : new Cesium.Cartesian3(250000.0, 250000.0, 250000.0),
- * minimum : new Cesium.Cartesian3(-250000.0, -250000.0, -250000.0)
- * });
- * var geometry = Cesium.BoxGeometry.createGeometry(box);
- * @param options - Object with the following properties:
- * @param options.minimum - The minimum x, y, and z coordinates of the box.
- * @param options.maximum - The maximum x, y, and z coordinates of the box.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- */
- export class BoxGeometry {
- constructor(options: {
- minimum: Cartesian3;
- maximum: Cartesian3;
- vertexFormat?: VertexFormat;
- });
- /**
- * Creates a cube centered at the origin given its dimensions.
- * @example
- * var box = Cesium.BoxGeometry.fromDimensions({
- * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
- * dimensions : new Cesium.Cartesian3(500000.0, 500000.0, 500000.0)
- * });
- * var geometry = Cesium.BoxGeometry.createGeometry(box);
- * @param options - Object with the following properties:
- * @param options.dimensions - The width, depth, and height of the box stored in the x, y, and z coordinates of the <code>Cartesian3</code>, respectively.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- */
- static fromDimensions(options: {
- dimensions: Cartesian3;
- vertexFormat?: VertexFormat;
- }): BoxGeometry;
-
- static fromAxisAlignedBoundingBox(boundingBox: AxisAlignedBoundingBox): BoxGeometry;
-
- static packedLength: number;
-
- static pack(value: BoxGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: BoxGeometry): BoxGeometry;
-
- static createGeometry(boxGeometry: BoxGeometry): Geometry | undefined;
- }
- export class BoxOutlineGeometry {
- constructor(options: {
- minimum: Cartesian3;
- maximum: Cartesian3;
- });
-
- static fromDimensions(options: {
- dimensions: Cartesian3;
- }): BoxOutlineGeometry;
-
- static fromAxisAlignedBoundingBox(boundingBox: AxisAlignedBoundingBox): BoxOutlineGeometry;
-
- static packedLength: number;
-
- static pack(value: BoxOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: BoxOutlineGeometry): BoxOutlineGeometry;
-
- static createGeometry(boxGeometry: BoxOutlineGeometry): Geometry | undefined;
- }
- export class Cartesian2 {
- constructor(x?: number, y?: number);
- /**
- * The X component.
- */
- x: number;
- /**
- * The Y component.
- */
- y: number;
- /**
- * Creates a Cartesian2 instance from x and y coordinates.
- * @param x - The x coordinate.
- * @param y - The y coordinate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
- */
- static fromElements(x: number, y: number, result?: Cartesian2): Cartesian2;
- /**
- * Duplicates a Cartesian2 instance.
- * @param cartesian - The Cartesian to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if one was not provided. (Returns undefined if cartesian is undefined)
- */
- static clone(cartesian: Cartesian2, result?: Cartesian2): Cartesian2;
- /**
- * Creates a Cartesian2 instance from an existing Cartesian3. This simply takes the
- * x and y properties of the Cartesian3 and drops z.
- * @param cartesian - The Cartesian3 instance to create a Cartesian2 instance from.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
- */
- static fromCartesian3(cartesian: Cartesian3, result?: Cartesian2): Cartesian2;
- /**
- * Creates a Cartesian2 instance from an existing Cartesian4. This simply takes the
- * x and y properties of the Cartesian4 and drops z and w.
- * @param cartesian - The Cartesian4 instance to create a Cartesian2 instance from.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
- */
- static fromCartesian4(cartesian: Cartesian4, result?: Cartesian2): Cartesian2;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Cartesian2, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Cartesian2): Cartesian2;
- /**
- * Flattens an array of Cartesian2s into and array of components.
- * @param array - The array of cartesians to pack.
- * @param [result] - The array onto which to store the result. If this is a typed array, it must have array.length * 2 components, else a {@link DeveloperError} will be thrown. If it is a regular array, it will be resized to have (array.length * 2) elements.
- * @returns The packed array.
- */
- static packArray(array: Cartesian2[], result?: number[]): number[];
- /**
- * Unpacks an array of cartesian components into and array of Cartesian2s.
- * @param array - The array of components to unpack.
- * @param [result] - The array onto which to store the result.
- * @returns The unpacked array.
- */
- static unpackArray(array: number[], result?: Cartesian2[]): Cartesian2[];
- /**
- * Creates a Cartesian2 from two consecutive elements in an array.
- * @example
- *
- * var v = [1.0, 2.0];
- * var p = Cesium.Cartesian2.fromArray(v);
- *
- *
- * var v2 = [0.0, 0.0, 1.0, 2.0];
- * var p2 = Cesium.Cartesian2.fromArray(v2, 2);
- * @param array - The array whose two consecutive elements correspond to the x and y components, respectively.
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to the x component.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
- */
- static fromArray(array: number[], startingIndex?: number, result?: Cartesian2): Cartesian2;
- /**
- * Computes the value of the maximum component for the supplied Cartesian.
- * @param cartesian - The cartesian to use.
- * @returns The value of the maximum component.
- */
- static maximumComponent(cartesian: Cartesian2): number;
- /**
- * Computes the value of the minimum component for the supplied Cartesian.
- * @param cartesian - The cartesian to use.
- * @returns The value of the minimum component.
- */
- static minimumComponent(cartesian: Cartesian2): number;
- /**
- * Compares two Cartesians and computes a Cartesian which contains the minimum components of the supplied Cartesians.
- * @param first - A cartesian to compare.
- * @param second - A cartesian to compare.
- * @param result - The object into which to store the result.
- * @returns A cartesian with the minimum components.
- */
- static minimumByComponent(first: Cartesian2, second: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Compares two Cartesians and computes a Cartesian which contains the maximum components of the supplied Cartesians.
- * @param first - A cartesian to compare.
- * @param second - A cartesian to compare.
- * @param result - The object into which to store the result.
- * @returns A cartesian with the maximum components.
- */
- static maximumByComponent(first: Cartesian2, second: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the provided Cartesian's squared magnitude.
- * @param cartesian - The Cartesian instance whose squared magnitude is to be computed.
- * @returns The squared magnitude.
- */
- static magnitudeSquared(cartesian: Cartesian2): number;
- /**
- * Computes the Cartesian's magnitude (length).
- * @param cartesian - The Cartesian instance whose magnitude is to be computed.
- * @returns The magnitude.
- */
- static magnitude(cartesian: Cartesian2): number;
- /**
- * Computes the distance between two points.
- * @example
- *
- * var d = Cesium.Cartesian2.distance(new Cesium.Cartesian2(1.0, 0.0), new Cesium.Cartesian2(2.0, 0.0));
- * @param left - The first point to compute the distance from.
- * @param right - The second point to compute the distance to.
- * @returns The distance between two points.
- */
- static distance(left: Cartesian2, right: Cartesian2): number;
- /**
- * Computes the squared distance between two points. Comparing squared distances
- * using this function is more efficient than comparing distances using {@link Cartesian2#distance}.
- * @example
- *
- * var d = Cesium.Cartesian2.distance(new Cesium.Cartesian2(1.0, 0.0), new Cesium.Cartesian2(3.0, 0.0));
- * @param left - The first point to compute the distance from.
- * @param right - The second point to compute the distance to.
- * @returns The distance between two points.
- */
- static distanceSquared(left: Cartesian2, right: Cartesian2): number;
- /**
- * Computes the normalized form of the supplied Cartesian.
- * @param cartesian - The Cartesian to be normalized.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static normalize(cartesian: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the dot (scalar) product of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @returns The dot product.
- */
- static dot(left: Cartesian2, right: Cartesian2): number;
- /**
- * Computes the magnitude of the cross product that would result from implicitly setting the Z coordinate of the input vectors to 0
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @returns The cross product.
- */
- static cross(left: Cartesian2, right: Cartesian2): number;
- /**
- * Computes the componentwise product of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyComponents(left: Cartesian2, right: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the componentwise quotient of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static divideComponents(left: Cartesian2, right: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the componentwise sum of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static add(left: Cartesian2, right: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the componentwise difference of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static subtract(left: Cartesian2, right: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Multiplies the provided Cartesian componentwise by the provided scalar.
- * @param cartesian - The Cartesian to be scaled.
- * @param scalar - The scalar to multiply with.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScalar(cartesian: Cartesian2, scalar: number, result: Cartesian2): Cartesian2;
- /**
- * Divides the provided Cartesian componentwise by the provided scalar.
- * @param cartesian - The Cartesian to be divided.
- * @param scalar - The scalar to divide by.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static divideByScalar(cartesian: Cartesian2, scalar: number, result: Cartesian2): Cartesian2;
- /**
- * Negates the provided Cartesian.
- * @param cartesian - The Cartesian to be negated.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static negate(cartesian: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the absolute value of the provided Cartesian.
- * @param cartesian - The Cartesian whose absolute value is to be computed.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static abs(cartesian: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the linear interpolation or extrapolation at t using the provided cartesians.
- * @param start - The value corresponding to t at 0.0.
- * @param end - The value corresponding to t at 1.0.
- * @param t - The point along t at which to interpolate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static lerp(start: Cartesian2, end: Cartesian2, t: number, result: Cartesian2): Cartesian2;
- /**
- * Returns the angle, in radians, between the provided Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @returns The angle between the Cartesians.
- */
- static angleBetween(left: Cartesian2, right: Cartesian2): number;
- /**
- * Returns the axis that is most orthogonal to the provided Cartesian.
- * @param cartesian - The Cartesian on which to find the most orthogonal axis.
- * @param result - The object onto which to store the result.
- * @returns The most orthogonal axis.
- */
- static mostOrthogonalAxis(cartesian: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Compares the provided Cartesians componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first Cartesian.
- * @param [right] - The second Cartesian.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: Cartesian2, right?: Cartesian2): boolean;
- /**
- * Compares the provided Cartesians componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [left] - The first Cartesian.
- * @param [right] - The second Cartesian.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: Cartesian2, right?: Cartesian2, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * An immutable Cartesian2 instance initialized to (0.0, 0.0).
- */
- static readonly ZERO: Cartesian2;
- /**
- * An immutable Cartesian2 instance initialized to (1.0, 1.0).
- */
- static readonly ONE: Cartesian2;
- /**
- * An immutable Cartesian2 instance initialized to (1.0, 0.0).
- */
- static readonly UNIT_X: Cartesian2;
- /**
- * An immutable Cartesian2 instance initialized to (0.0, 1.0).
- */
- static readonly UNIT_Y: Cartesian2;
- /**
- * Duplicates this Cartesian2 instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if one was not provided.
- */
- clone(result?: Cartesian2): Cartesian2;
- /**
- * Compares this Cartesian against the provided Cartesian componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side Cartesian.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: Cartesian2): boolean;
- /**
- * Compares this Cartesian against the provided Cartesian componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [right] - The right hand side Cartesian.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(right?: Cartesian2, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * Creates a string representing this Cartesian in the format '(x, y)'.
- * @returns A string representing the provided Cartesian in the format '(x, y)'.
- */
- toString(): string;
- }
- /**
- * A 3D Cartesian point.
- * @param [x = 0.0] - The X component.
- * @param [y = 0.0] - The Y component.
- * @param [z = 0.0] - The Z component.
- */
- export class Cartesian3 {
- constructor(x?: number, y?: number, z?: number);
- /**
- * The X component.
- */
- x: number;
- /**
- * The Y component.
- */
- y: number;
- /**
- * The Z component.
- */
- z: number;
- /**
- * Converts the provided Spherical into Cartesian3 coordinates.
- * @param spherical - The Spherical to be converted to Cartesian3.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- static fromSpherical(spherical: Spherical, result?: Cartesian3): Cartesian3;
- /**
- * Creates a Cartesian3 instance from x, y and z coordinates.
- * @param x - The x coordinate.
- * @param y - The y coordinate.
- * @param z - The z coordinate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- static fromElements(x: number, y: number, z: number, result?: Cartesian3): Cartesian3;
- /**
- * Duplicates a Cartesian3 instance.
- * @param cartesian - The Cartesian to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided. (Returns undefined if cartesian is undefined)
- */
- static clone(cartesian: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Creates a Cartesian3 instance from an existing Cartesian4. This simply takes the
- * x, y, and z properties of the Cartesian4 and drops w.
- * @param cartesian - The Cartesian4 instance to create a Cartesian3 instance from.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- static fromCartesian4(cartesian: Cartesian4, result?: Cartesian3): Cartesian3;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Cartesian3, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Cartesian3): Cartesian3;
- /**
- * Flattens an array of Cartesian3s into an array of components.
- * @param array - The array of cartesians to pack.
- * @param [result] - The array onto which to store the result. If this is a typed array, it must have array.length * 3 components, else a {@link DeveloperError} will be thrown. If it is a regular array, it will be resized to have (array.length * 3) elements.
- * @returns The packed array.
- */
- static packArray(array: Cartesian3[], result?: number[]): number[];
- /**
- * Unpacks an array of cartesian components into an array of Cartesian3s.
- * @param array - The array of components to unpack.
- * @param [result] - The array onto which to store the result.
- * @returns The unpacked array.
- */
- static unpackArray(array: number[], result?: Cartesian3[]): Cartesian3[];
- /**
- * Creates a Cartesian3 from three consecutive elements in an array.
- * @example
- *
- * var v = [1.0, 2.0, 3.0];
- * var p = Cesium.Cartesian3.fromArray(v);
- *
- *
- * var v2 = [0.0, 0.0, 1.0, 2.0, 3.0];
- * var p2 = Cesium.Cartesian3.fromArray(v2, 2);
- * @param array - The array whose three consecutive elements correspond to the x, y, and z components, respectively.
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to the x component.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- static fromArray(array: number[], startingIndex?: number, result?: Cartesian3): Cartesian3;
- /**
- * Computes the value of the maximum component for the supplied Cartesian.
- * @param cartesian - The cartesian to use.
- * @returns The value of the maximum component.
- */
- static maximumComponent(cartesian: Cartesian3): number;
- /**
- * Computes the value of the minimum component for the supplied Cartesian.
- * @param cartesian - The cartesian to use.
- * @returns The value of the minimum component.
- */
- static minimumComponent(cartesian: Cartesian3): number;
- /**
- * Compares two Cartesians and computes a Cartesian which contains the minimum components of the supplied Cartesians.
- * @param first - A cartesian to compare.
- * @param second - A cartesian to compare.
- * @param result - The object into which to store the result.
- * @returns A cartesian with the minimum components.
- */
- static minimumByComponent(first: Cartesian3, second: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Compares two Cartesians and computes a Cartesian which contains the maximum components of the supplied Cartesians.
- * @param first - A cartesian to compare.
- * @param second - A cartesian to compare.
- * @param result - The object into which to store the result.
- * @returns A cartesian with the maximum components.
- */
- static maximumByComponent(first: Cartesian3, second: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the provided Cartesian's squared magnitude.
- * @param cartesian - The Cartesian instance whose squared magnitude is to be computed.
- * @returns The squared magnitude.
- */
- static magnitudeSquared(cartesian: Cartesian3): number;
- /**
- * Computes the Cartesian's magnitude (length).
- * @param cartesian - The Cartesian instance whose magnitude is to be computed.
- * @returns The magnitude.
- */
- static magnitude(cartesian: Cartesian3): number;
- /**
- * Computes the distance between two points.
- * @example
- *
- * var d = Cesium.Cartesian3.distance(new Cesium.Cartesian3(1.0, 0.0, 0.0), new Cesium.Cartesian3(2.0, 0.0, 0.0));
- * @param left - The first point to compute the distance from.
- * @param right - The second point to compute the distance to.
- * @returns The distance between two points.
- */
- static distance(left: Cartesian3, right: Cartesian3): number;
- /**
- * Computes the squared distance between two points. Comparing squared distances
- * using this function is more efficient than comparing distances using {@link Cartesian3#distance}.
- * @example
- *
- * var d = Cesium.Cartesian3.distanceSquared(new Cesium.Cartesian3(1.0, 0.0, 0.0), new Cesium.Cartesian3(3.0, 0.0, 0.0));
- * @param left - The first point to compute the distance from.
- * @param right - The second point to compute the distance to.
- * @returns The distance between two points.
- */
- static distanceSquared(left: Cartesian3, right: Cartesian3): number;
- /**
- * Computes the normalized form of the supplied Cartesian.
- * @param cartesian - The Cartesian to be normalized.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static normalize(cartesian: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the dot (scalar) product of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @returns The dot product.
- */
- static dot(left: Cartesian3, right: Cartesian3): number;
- /**
- * Computes the componentwise product of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyComponents(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the componentwise quotient of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static divideComponents(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the componentwise sum of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static add(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the componentwise difference of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static subtract(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Multiplies the provided Cartesian componentwise by the provided scalar.
- * @param cartesian - The Cartesian to be scaled.
- * @param scalar - The scalar to multiply with.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScalar(cartesian: Cartesian3, scalar: number, result: Cartesian3): Cartesian3;
- /**
- * Divides the provided Cartesian componentwise by the provided scalar.
- * @param cartesian - The Cartesian to be divided.
- * @param scalar - The scalar to divide by.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static divideByScalar(cartesian: Cartesian3, scalar: number, result: Cartesian3): Cartesian3;
- /**
- * Negates the provided Cartesian.
- * @param cartesian - The Cartesian to be negated.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static negate(cartesian: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the absolute value of the provided Cartesian.
- * @param cartesian - The Cartesian whose absolute value is to be computed.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static abs(cartesian: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the linear interpolation or extrapolation at t using the provided cartesians.
- * @param start - The value corresponding to t at 0.0.
- * @param end - The value corresponding to t at 1.0.
- * @param t - The point along t at which to interpolate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static lerp(start: Cartesian3, end: Cartesian3, t: number, result: Cartesian3): Cartesian3;
- /**
- * Returns the angle, in radians, between the provided Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @returns The angle between the Cartesians.
- */
- static angleBetween(left: Cartesian3, right: Cartesian3): number;
- /**
- * Returns the axis that is most orthogonal to the provided Cartesian.
- * @param cartesian - The Cartesian on which to find the most orthogonal axis.
- * @param result - The object onto which to store the result.
- * @returns The most orthogonal axis.
- */
- static mostOrthogonalAxis(cartesian: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Projects vector a onto vector b
- * @param a - The vector that needs projecting
- * @param b - The vector to project onto
- * @param result - The result cartesian
- * @returns The modified result parameter
- */
- static projectVector(a: Cartesian3, b: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Compares the provided Cartesians componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first Cartesian.
- * @param [right] - The second Cartesian.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: Cartesian3, right?: Cartesian3): boolean;
- /**
- * Compares the provided Cartesians componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [left] - The first Cartesian.
- * @param [right] - The second Cartesian.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: Cartesian3, right?: Cartesian3, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * Computes the cross (outer) product of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The cross product.
- */
- static cross(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the midpoint between the right and left Cartesian.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The midpoint.
- */
- static midpoint(left: Cartesian3, right: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Returns a Cartesian3 position from longitude and latitude values given in degrees.
- * @example
- * var position = Cesium.Cartesian3.fromDegrees(-115.0, 37.0);
- * @param longitude - The longitude, in degrees
- * @param latitude - The latitude, in degrees
- * @param [height = 0.0] - The height, in meters, above the ellipsoid.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the position lies.
- * @param [result] - The object onto which to store the result.
- * @returns The position
- */
- static fromDegrees(longitude: number, latitude: number, height?: number, ellipsoid?: Ellipsoid, result?: Cartesian3): Cartesian3;
- /**
- * Returns a Cartesian3 position from longitude and latitude values given in radians.
- * @example
- * var position = Cesium.Cartesian3.fromRadians(-2.007, 0.645);
- * @param longitude - The longitude, in radians
- * @param latitude - The latitude, in radians
- * @param [height = 0.0] - The height, in meters, above the ellipsoid.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the position lies.
- * @param [result] - The object onto which to store the result.
- * @returns The position
- */
- static fromRadians(longitude: number, latitude: number, height?: number, ellipsoid?: Ellipsoid, result?: Cartesian3): Cartesian3;
- /**
- * Returns an array of Cartesian3 positions given an array of longitude and latitude values given in degrees.
- * @example
- * var positions = Cesium.Cartesian3.fromDegreesArray([-115.0, 37.0, -107.0, 33.0]);
- * @param coordinates - A list of longitude and latitude values. Values alternate [longitude, latitude, longitude, latitude...].
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the coordinates lie.
- * @param [result] - An array of Cartesian3 objects to store the result.
- * @returns The array of positions.
- */
- static fromDegreesArray(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[];
- /**
- * Returns an array of Cartesian3 positions given an array of longitude and latitude values given in radians.
- * @example
- * var positions = Cesium.Cartesian3.fromRadiansArray([-2.007, 0.645, -1.867, .575]);
- * @param coordinates - A list of longitude and latitude values. Values alternate [longitude, latitude, longitude, latitude...].
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the coordinates lie.
- * @param [result] - An array of Cartesian3 objects to store the result.
- * @returns The array of positions.
- */
- static fromRadiansArray(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[];
- /**
- * Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in degrees.
- * @example
- * var positions = Cesium.Cartesian3.fromDegreesArrayHeights([-115.0, 37.0, 100000.0, -107.0, 33.0, 150000.0]);
- * @param coordinates - A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the position lies.
- * @param [result] - An array of Cartesian3 objects to store the result.
- * @returns The array of positions.
- */
- static fromDegreesArrayHeights(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[];
- /**
- * Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in radians.
- * @example
- * var positions = Cesium.Cartesian3.fromRadiansArrayHeights([-2.007, 0.645, 100000.0, -1.867, .575, 150000.0]);
- * @param coordinates - A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the position lies.
- * @param [result] - An array of Cartesian3 objects to store the result.
- * @returns The array of positions.
- */
- static fromRadiansArrayHeights(coordinates: number[], ellipsoid?: Ellipsoid, result?: Cartesian3[]): Cartesian3[];
- /**
- * An immutable Cartesian3 instance initialized to (0.0, 0.0, 0.0).
- */
- static readonly ZERO: Cartesian3;
- /**
- * An immutable Cartesian3 instance initialized to (1.0, 1.0, 1.0).
- */
- static readonly ONE: Cartesian3;
- /**
- * An immutable Cartesian3 instance initialized to (1.0, 0.0, 0.0).
- */
- static readonly UNIT_X: Cartesian3;
- /**
- * An immutable Cartesian3 instance initialized to (0.0, 1.0, 0.0).
- */
- static readonly UNIT_Y: Cartesian3;
- /**
- * An immutable Cartesian3 instance initialized to (0.0, 0.0, 1.0).
- */
- static readonly UNIT_Z: Cartesian3;
- /**
- * Duplicates this Cartesian3 instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- clone(result?: Cartesian3): Cartesian3;
- /**
- * Compares this Cartesian against the provided Cartesian componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side Cartesian.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: Cartesian3): boolean;
- /**
- * Compares this Cartesian against the provided Cartesian componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [right] - The right hand side Cartesian.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(right?: Cartesian3, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * Creates a string representing this Cartesian in the format '(x, y, z)'.
- * @returns A string representing this Cartesian in the format '(x, y, z)'.
- */
- toString(): string;
- }
- /**
- * A 4D Cartesian point.
- * @param [x = 0.0] - The X component.
- * @param [y = 0.0] - The Y component.
- * @param [z = 0.0] - The Z component.
- * @param [w = 0.0] - The W component.
- */
- export class Cartesian4 {
- constructor(x?: number, y?: number, z?: number, w?: number);
- /**
- * The X component.
- */
- x: number;
- /**
- * The Y component.
- */
- y: number;
- /**
- * The Z component.
- */
- z: number;
- /**
- * The W component.
- */
- w: number;
- /**
- * Creates a Cartesian4 instance from x, y, z and w coordinates.
- * @param x - The x coordinate.
- * @param y - The y coordinate.
- * @param z - The z coordinate.
- * @param w - The w coordinate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian4 instance if one was not provided.
- */
- static fromElements(x: number, y: number, z: number, w: number, result?: Cartesian4): Cartesian4;
- /**
- * Creates a Cartesian4 instance from a {@link Color}. <code>red</code>, <code>green</code>, <code>blue</code>,
- * and <code>alpha</code> map to <code>x</code>, <code>y</code>, <code>z</code>, and <code>w</code>, respectively.
- * @param color - The source color.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian4 instance if one was not provided.
- */
- static fromColor(color: Color, result?: Cartesian4): Cartesian4;
- /**
- * Duplicates a Cartesian4 instance.
- * @param cartesian - The Cartesian to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian4 instance if one was not provided. (Returns undefined if cartesian is undefined)
- */
- static clone(cartesian: Cartesian4, result?: Cartesian4): Cartesian4;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Cartesian4, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Cartesian4 instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Cartesian4): Cartesian4;
- /**
- * Flattens an array of Cartesian4s into and array of components.
- * @param array - The array of cartesians to pack.
- * @param [result] - The array onto which to store the result. If this is a typed array, it must have array.length * 4 components, else a {@link DeveloperError} will be thrown. If it is a regular array, it will be resized to have (array.length * 4) elements.
- * @returns The packed array.
- */
- static packArray(array: Cartesian4[], result?: number[]): number[];
- /**
- * Unpacks an array of cartesian components into and array of Cartesian4s.
- * @param array - The array of components to unpack.
- * @param [result] - The array onto which to store the result.
- * @returns The unpacked array.
- */
- static unpackArray(array: number[], result?: Cartesian4[]): Cartesian4[];
- /**
- * Creates a Cartesian4 from four consecutive elements in an array.
- * @example
- *
- * var v = [1.0, 2.0, 3.0, 4.0];
- * var p = Cesium.Cartesian4.fromArray(v);
- *
- *
- * var v2 = [0.0, 0.0, 1.0, 2.0, 3.0, 4.0];
- * var p2 = Cesium.Cartesian4.fromArray(v2, 2);
- * @param array - The array whose four consecutive elements correspond to the x, y, z, and w components, respectively.
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to the x component.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian4 instance if one was not provided.
- */
- static fromArray(array: number[], startingIndex?: number, result?: Cartesian4): Cartesian4;
- /**
- * Computes the value of the maximum component for the supplied Cartesian.
- * @param cartesian - The cartesian to use.
- * @returns The value of the maximum component.
- */
- static maximumComponent(cartesian: Cartesian4): number;
- /**
- * Computes the value of the minimum component for the supplied Cartesian.
- * @param cartesian - The cartesian to use.
- * @returns The value of the minimum component.
- */
- static minimumComponent(cartesian: Cartesian4): number;
- /**
- * Compares two Cartesians and computes a Cartesian which contains the minimum components of the supplied Cartesians.
- * @param first - A cartesian to compare.
- * @param second - A cartesian to compare.
- * @param result - The object into which to store the result.
- * @returns A cartesian with the minimum components.
- */
- static minimumByComponent(first: Cartesian4, second: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Compares two Cartesians and computes a Cartesian which contains the maximum components of the supplied Cartesians.
- * @param first - A cartesian to compare.
- * @param second - A cartesian to compare.
- * @param result - The object into which to store the result.
- * @returns A cartesian with the maximum components.
- */
- static maximumByComponent(first: Cartesian4, second: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Computes the provided Cartesian's squared magnitude.
- * @param cartesian - The Cartesian instance whose squared magnitude is to be computed.
- * @returns The squared magnitude.
- */
- static magnitudeSquared(cartesian: Cartesian4): number;
- /**
- * Computes the Cartesian's magnitude (length).
- * @param cartesian - The Cartesian instance whose magnitude is to be computed.
- * @returns The magnitude.
- */
- static magnitude(cartesian: Cartesian4): number;
- /**
- * Computes the 4-space distance between two points.
- * @example
- *
- * var d = Cesium.Cartesian4.distance(
- * new Cesium.Cartesian4(1.0, 0.0, 0.0, 0.0),
- * new Cesium.Cartesian4(2.0, 0.0, 0.0, 0.0));
- * @param left - The first point to compute the distance from.
- * @param right - The second point to compute the distance to.
- * @returns The distance between two points.
- */
- static distance(left: Cartesian4, right: Cartesian4): number;
- /**
- * Computes the squared distance between two points. Comparing squared distances
- * using this function is more efficient than comparing distances using {@link Cartesian4#distance}.
- * @example
- *
- * var d = Cesium.Cartesian4.distance(
- * new Cesium.Cartesian4(1.0, 0.0, 0.0, 0.0),
- * new Cesium.Cartesian4(3.0, 0.0, 0.0, 0.0));
- * @param left - The first point to compute the distance from.
- * @param right - The second point to compute the distance to.
- * @returns The distance between two points.
- */
- static distanceSquared(left: Cartesian4, right: Cartesian4): number;
- /**
- * Computes the normalized form of the supplied Cartesian.
- * @param cartesian - The Cartesian to be normalized.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static normalize(cartesian: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Computes the dot (scalar) product of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @returns The dot product.
- */
- static dot(left: Cartesian4, right: Cartesian4): number;
- /**
- * Computes the componentwise product of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyComponents(left: Cartesian4, right: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Computes the componentwise quotient of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static divideComponents(left: Cartesian4, right: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Computes the componentwise sum of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static add(left: Cartesian4, right: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Computes the componentwise difference of two Cartesians.
- * @param left - The first Cartesian.
- * @param right - The second Cartesian.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static subtract(left: Cartesian4, right: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Multiplies the provided Cartesian componentwise by the provided scalar.
- * @param cartesian - The Cartesian to be scaled.
- * @param scalar - The scalar to multiply with.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScalar(cartesian: Cartesian4, scalar: number, result: Cartesian4): Cartesian4;
- /**
- * Divides the provided Cartesian componentwise by the provided scalar.
- * @param cartesian - The Cartesian to be divided.
- * @param scalar - The scalar to divide by.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static divideByScalar(cartesian: Cartesian4, scalar: number, result: Cartesian4): Cartesian4;
- /**
- * Negates the provided Cartesian.
- * @param cartesian - The Cartesian to be negated.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static negate(cartesian: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Computes the absolute value of the provided Cartesian.
- * @param cartesian - The Cartesian whose absolute value is to be computed.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static abs(cartesian: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Computes the linear interpolation or extrapolation at t using the provided cartesians.
- * @param start - The value corresponding to t at 0.0.
- * @param end - The value corresponding to t at 1.0.
- * @param t - The point along t at which to interpolate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static lerp(start: Cartesian4, end: Cartesian4, t: number, result: Cartesian4): Cartesian4;
- /**
- * Returns the axis that is most orthogonal to the provided Cartesian.
- * @param cartesian - The Cartesian on which to find the most orthogonal axis.
- * @param result - The object onto which to store the result.
- * @returns The most orthogonal axis.
- */
- static mostOrthogonalAxis(cartesian: Cartesian4, result: Cartesian4): Cartesian4;
- /**
- * Compares the provided Cartesians componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first Cartesian.
- * @param [right] - The second Cartesian.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: Cartesian4, right?: Cartesian4): boolean;
- /**
- * Compares the provided Cartesians componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [left] - The first Cartesian.
- * @param [right] - The second Cartesian.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: Cartesian4, right?: Cartesian4, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * An immutable Cartesian4 instance initialized to (0.0, 0.0, 0.0, 0.0).
- */
- static readonly ZERO: Cartesian4;
- /**
- * An immutable Cartesian4 instance initialized to (1.0, 1.0, 1.0, 1.0).
- */
- static readonly ONE: Cartesian4;
- /**
- * An immutable Cartesian4 instance initialized to (1.0, 0.0, 0.0, 0.0).
- */
- static readonly UNIT_X: Cartesian4;
- /**
- * An immutable Cartesian4 instance initialized to (0.0, 1.0, 0.0, 0.0).
- */
- static readonly UNIT_Y: Cartesian4;
- /**
- * An immutable Cartesian4 instance initialized to (0.0, 0.0, 1.0, 0.0).
- */
- static readonly UNIT_Z: Cartesian4;
- /**
- * An immutable Cartesian4 instance initialized to (0.0, 0.0, 0.0, 1.0).
- */
- static readonly UNIT_W: Cartesian4;
- /**
- * Duplicates this Cartesian4 instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian4 instance if one was not provided.
- */
- clone(result?: Cartesian4): Cartesian4;
- /**
- * Compares this Cartesian against the provided Cartesian componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side Cartesian.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: Cartesian4): boolean;
- /**
- * Compares this Cartesian against the provided Cartesian componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [right] - The right hand side Cartesian.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(right?: Cartesian4, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * Creates a string representing this Cartesian in the format '(x, y, z, w)'.
- * @returns A string representing the provided Cartesian in the format '(x, y, z, w)'.
- */
- toString(): string;
- /**
- * Packs an arbitrary floating point value to 4 values representable using uint8.
- * @param value - A floating point number.
- * @param [result] - The Cartesian4 that will contain the packed float.
- * @returns A Cartesian4 representing the float packed to values in x, y, z, and w.
- */
- static packFloat(value: number, result?: Cartesian4): Cartesian4;
- }
- /**
- * A position defined by longitude, latitude, and height.
- * @param [longitude = 0.0] - The longitude, in radians.
- * @param [latitude = 0.0] - The latitude, in radians.
- * @param [height = 0.0] - The height, in meters, above the ellipsoid.
- */
- export class Cartographic {
- constructor(longitude?: number, latitude?: number, height?: number);
- /**
- * The longitude, in radians.
- */
- longitude: number;
- /**
- * The latitude, in radians.
- */
- latitude: number;
- /**
- * The height, in meters, above the ellipsoid.
- */
- height: number;
- /**
- * Creates a new Cartographic instance from longitude and latitude
- * specified in radians.
- * @param longitude - The longitude, in radians.
- * @param latitude - The latitude, in radians.
- * @param [height = 0.0] - The height, in meters, above the ellipsoid.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if one was not provided.
- */
- static fromRadians(longitude: number, latitude: number, height?: number, result?: Cartographic): Cartographic;
- /**
- * Creates a new Cartographic instance from longitude and latitude
- * specified in degrees. The values in the resulting object will
- * be in radians.
- * @param longitude - The longitude, in degrees.
- * @param latitude - The latitude, in degrees.
- * @param [height = 0.0] - The height, in meters, above the ellipsoid.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if one was not provided.
- */
- static fromDegrees(longitude: number, latitude: number, height?: number, result?: Cartographic): Cartographic;
- /**
- * Creates a new Cartographic instance from a Cartesian position. The values in the
- * resulting object will be in radians.
- * @param cartesian - The Cartesian position to convert to cartographic representation.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the position lies.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter, new Cartographic instance if none was provided, or undefined if the cartesian is at the center of the ellipsoid.
- */
- static fromCartesian(cartesian: Cartesian3, ellipsoid?: Ellipsoid, result?: Cartographic): Cartographic;
- /**
- * Creates a new Cartesian3 instance from a Cartographic input. The values in the inputted
- * object should be in radians.
- * @param cartographic - Input to be converted into a Cartesian3 output.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the position lies.
- * @param [result] - The object onto which to store the result.
- * @returns The position
- */
- static toCartesian(cartographic: Cartographic, ellipsoid?: Ellipsoid, result?: Cartesian3): Cartesian3;
- /**
- * Duplicates a Cartographic instance.
- * @param cartographic - The cartographic to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if one was not provided. (Returns undefined if cartographic is undefined)
- */
- static clone(cartographic: Cartographic, result?: Cartographic): Cartographic;
- /**
- * Compares the provided cartographics componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first cartographic.
- * @param [right] - The second cartographic.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: Cartographic, right?: Cartographic): boolean;
- /**
- * Compares the provided cartographics componentwise and returns
- * <code>true</code> if they are within the provided epsilon,
- * <code>false</code> otherwise.
- * @param [left] - The first cartographic.
- * @param [right] - The second cartographic.
- * @param [epsilon = 0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: Cartographic, right?: Cartographic, epsilon?: number): boolean;
- /**
- * An immutable Cartographic instance initialized to (0.0, 0.0, 0.0).
- */
- static readonly ZERO: Cartographic;
- /**
- * Duplicates this instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if one was not provided.
- */
- clone(result?: Cartographic): Cartographic;
- /**
- * Compares the provided against this cartographic componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The second cartographic.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(right?: Cartographic): boolean;
- /**
- * Compares the provided against this cartographic componentwise and returns
- * <code>true</code> if they are within the provided epsilon,
- * <code>false</code> otherwise.
- * @param [right] - The second cartographic.
- * @param [epsilon = 0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(right?: Cartographic, epsilon?: number): boolean;
- /**
- * Creates a string representing this cartographic in the format '(longitude, latitude, height)'.
- * @returns A string representing the provided cartographic in the format '(longitude, latitude, height)'.
- */
- toString(): string;
- }
- /**
- * Geocodes queries containing longitude and latitude coordinates and an optional height.
- * Query format: `longitude latitude (height)` with longitude/latitude in degrees and height in meters.
- */
- export class CartographicGeocoderService {
- constructor();
- /**
- * @param query - The query to be sent to the geocoder service
- */
- geocode(query: string): Promise<GeocoderService.Result[]>;
- }
- /**
- * A Catmull-Rom spline is a cubic spline where the tangent at control points,
- * except the first and last, are computed using the previous and next control points.
- * Catmull-Rom splines are in the class C<sup>1</sup>.
- * @example
- * // spline above the earth from Philadelphia to Los Angeles
- * var spline = new Cesium.CatmullRomSpline({
- * times : [ 0.0, 1.5, 3.0, 4.5, 6.0 ],
- * points : [
- * new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0),
- * new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0),
- * new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0),
- * new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0),
- * new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0)
- * ]
- * });
- *
- * var p0 = spline.evaluate(times[i]); // equal to positions[i]
- * var p1 = spline.evaluate(times[i] + delta); // interpolated value when delta < times[i + 1] - times[i]
- * @param options - Object with the following properties:
- * @param options.times - An array of strictly increasing, unit-less, floating-point times at each point.
- * The values are in no way connected to the clock time. They are the parameterization for the curve.
- * @param options.points - The array of {@link Cartesian3} control points.
- * @param [options.firstTangent] - The tangent of the curve at the first control point.
- * If the tangent is not given, it will be estimated.
- * @param [options.lastTangent] - The tangent of the curve at the last control point.
- * If the tangent is not given, it will be estimated.
- */
- export class CatmullRomSpline {
- constructor(options: {
- times: number[];
- points: Cartesian3[];
- firstTangent?: Cartesian3;
- lastTangent?: Cartesian3;
- });
-
- readonly times: number[];
-
- readonly points: Cartesian3[];
-
- readonly firstTangent: Cartesian3;
-
- readonly lastTangent: Cartesian3;
-
- findTimeInterval(time: number): number;
-
- wrapTime(time: number): number;
-
- clampTime(time: number): number;
-
- evaluate(time: number, result?: Cartesian3): Cartesian3;
- }
- export class CesiumTerrainProvider {
- constructor(options: {
- url: Resource | string | Promise<Resource> | Promise<string>;
- requestVertexNormals?: boolean;
- requestWaterMask?: boolean;
- requestMetadata?: boolean;
- ellipsoid?: Ellipsoid;
- credit?: Credit | string;
- });
-
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
-
- readonly errorEvent: Event;
-
- readonly credit: Credit;
-
- readonly tilingScheme: GeographicTilingScheme;
-
- readonly ready: boolean;
-
- readonly readyPromise: Promise<boolean>;
-
- readonly hasWaterMask: boolean;
-
- readonly hasVertexNormals: boolean;
-
- readonly hasMetadata: boolean;
-
- readonly requestVertexNormals: boolean;
-
- readonly requestWaterMask: boolean;
-
- readonly requestMetadata: boolean;
-
- readonly availability: TileAvailability;
-
- getLevelMaximumGeometricError(level: number): number;
-
- getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
-
- loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
- }
- export class CircleGeometry {
- constructor(options: {
- center: Cartesian3;
- radius: number;
- ellipsoid?: Ellipsoid;
- height?: number;
- granularity?: number;
- vertexFormat?: VertexFormat;
- extrudedHeight?: number;
- stRotation?: number;
- });
-
- static packedLength: number;
-
- static pack(value: CircleGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: CircleGeometry): CircleGeometry;
-
- static createGeometry(circleGeometry: CircleGeometry): Geometry | undefined;
- }
- export class CircleOutlineGeometry {
- constructor(options: {
- center: Cartesian3;
- radius: number;
- ellipsoid?: Ellipsoid;
- height?: number;
- granularity?: number;
- extrudedHeight?: number;
- numberOfVerticalLines?: number;
- });
-
- static packedLength: number;
-
- static pack(value: CircleOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: CircleOutlineGeometry): CircleOutlineGeometry;
-
- static createGeometry(circleGeometry: CircleOutlineGeometry): Geometry | undefined;
- }
- export class Clock {
- constructor(options?: {
- startTime?: JulianDate;
- stopTime?: JulianDate;
- currentTime?: JulianDate;
- multiplier?: number;
- clockStep?: ClockStep;
- clockRange?: ClockRange;
- canAnimate?: boolean;
- shouldAnimate?: boolean;
- });
-
- startTime: JulianDate;
-
- stopTime: JulianDate;
-
- clockRange: ClockRange;
-
- canAnimate: boolean;
-
- onTick: Event;
-
- onStop: Event;
-
- currentTime: JulianDate;
-
- multiplier: number;
-
- clockStep: ClockStep;
-
- shouldAnimate: boolean;
-
- tick(): JulianDate;
- }
- export enum ClockRange {
-
- UNBOUNDED = 0,
-
- CLAMPED = 1,
-
- LOOP_STOP = 2
- }
- export enum ClockStep {
-
- TICK_DEPENDENT = 0,
-
- SYSTEM_CLOCK_MULTIPLIER = 1,
-
- SYSTEM_CLOCK = 2
- }
- export class Color {
- constructor(red?: number, green?: number, blue?: number, alpha?: number);
- /**
- * The red component.
- */
- red: number;
- /**
- * The green component.
- */
- green: number;
- /**
- * The blue component.
- */
- blue: number;
- /**
- * The alpha component.
- */
- alpha: number;
- /**
- * Creates a Color instance from a {@link Cartesian4}. <code>x</code>, <code>y</code>, <code>z</code>,
- * and <code>w</code> map to <code>red</code>, <code>green</code>, <code>blue</code>, and <code>alpha</code>, respectively.
- * @param cartesian - The source cartesian.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Color instance if one was not provided.
- */
- static fromCartesian4(cartesian: Cartesian4, result?: Color): Color;
- /**
- * Creates a new Color specified using red, green, blue, and alpha values
- * that are in the range of 0 to 255, converting them internally to a range of 0.0 to 1.0.
- * @param [red = 255] - The red component.
- * @param [green = 255] - The green component.
- * @param [blue = 255] - The blue component.
- * @param [alpha = 255] - The alpha component.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Color instance if one was not provided.
- */
- static fromBytes(red?: number, green?: number, blue?: number, alpha?: number, result?: Color): Color;
- /**
- * Creates a new Color that has the same red, green, and blue components
- * of the specified color, but with the specified alpha value.
- * @example
- * var translucentRed = Cesium.Color.fromAlpha(Cesium.Color.RED, 0.9);
- * @param color - The base color
- * @param alpha - The new alpha component.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Color instance if one was not provided.
- */
- static fromAlpha(color: Color, alpha: number, result?: Color): Color;
- /**
- * Creates a new Color from a single numeric unsigned 32-bit RGBA value, using the endianness
- * of the system.
- * @example
- * var color = Cesium.Color.fromRgba(0x67ADDFFF);
- * @param rgba - A single numeric unsigned 32-bit RGBA value.
- * @param [result] - The object to store the result in, if undefined a new instance will be created.
- * @returns The color object.
- */
- static fromRgba(rgba: number, result?: Color): Color;
- /**
- * Creates a Color instance from hue, saturation, and lightness.
- * @param [hue = 0] - The hue angle 0...1
- * @param [saturation = 0] - The saturation value 0...1
- * @param [lightness = 0] - The lightness value 0...1
- * @param [alpha = 1.0] - The alpha component 0...1
- * @param [result] - The object to store the result in, if undefined a new instance will be created.
- * @returns The color object.
- */
- static fromHsl(hue?: number, saturation?: number, lightness?: number, alpha?: number, result?: Color): Color;
- /**
- * Creates a random color using the provided options. For reproducible random colors, you should
- * call {@link Math#setRandomNumberSeed} once at the beginning of your application.
- * @example
- *
- * var color = Cesium.Color.fromRandom();
- *
- *
- * var color = Cesium.Color.fromRandom({
- * red : 1.0,
- * green : 1.0,
- * alpha : 1.0
- * });
- *
- *
- * var color = Cesium.Color.fromRandom({
- * minimumRed : 0.75,
- * minimumGreen : 0.75,
- * minimumBlue : 0.75,
- * alpha : 1.0
- * });
- * @param [options] - Object with the following properties:
- * @param [options.red] - If specified, the red component to use instead of a randomized value.
- * @param [options.minimumRed = 0.0] - The maximum red value to generate if none was specified.
- * @param [options.maximumRed = 1.0] - The minimum red value to generate if none was specified.
- * @param [options.green] - If specified, the green component to use instead of a randomized value.
- * @param [options.minimumGreen = 0.0] - The maximum green value to generate if none was specified.
- * @param [options.maximumGreen = 1.0] - The minimum green value to generate if none was specified.
- * @param [options.blue] - If specified, the blue component to use instead of a randomized value.
- * @param [options.minimumBlue = 0.0] - The maximum blue value to generate if none was specified.
- * @param [options.maximumBlue = 1.0] - The minimum blue value to generate if none was specified.
- * @param [options.alpha] - If specified, the alpha component to use instead of a randomized value.
- * @param [options.minimumAlpha = 0.0] - The maximum alpha value to generate if none was specified.
- * @param [options.maximumAlpha = 1.0] - The minimum alpha value to generate if none was specified.
- * @param [result] - The object to store the result in, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined.
- */
- static fromRandom(options?: {
- red?: number;
- minimumRed?: number;
- maximumRed?: number;
- green?: number;
- minimumGreen?: number;
- maximumGreen?: number;
- blue?: number;
- minimumBlue?: number;
- maximumBlue?: number;
- alpha?: number;
- minimumAlpha?: number;
- maximumAlpha?: number;
- }, result?: Color): Color;
- /**
- * Creates a Color instance from a CSS color value.
- * @example
- * var cesiumBlue = Cesium.Color.fromCssColorString('#67ADDF');
- * var green = Cesium.Color.fromCssColorString('green');
- * @param color - The CSS color value in #rgb, #rgba, #rrggbb, #rrggbbaa, rgb(), rgba(), hsl(), or hsla() format.
- * @param [result] - The object to store the result in, if undefined a new instance will be created.
- * @returns The color object, or undefined if the string was not a valid CSS color.
- */
- static fromCssColorString(color: string, result?: Color): Color;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Color, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Color instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Color): Color;
- /**
- * Converts a 'byte' color component in the range of 0 to 255 into
- * a 'float' color component in the range of 0 to 1.0.
- * @param number - The number to be converted.
- * @returns The converted number.
- */
- static byteToFloat(number: number): number;
- /**
- * Converts a 'float' color component in the range of 0 to 1.0 into
- * a 'byte' color component in the range of 0 to 255.
- * @param number - The number to be converted.
- * @returns The converted number.
- */
- static floatToByte(number: number): number;
- /**
- * Duplicates a Color.
- * @param color - The Color to duplicate.
- * @param [result] - The object to store the result in, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined. (Returns undefined if color is undefined)
- */
- static clone(color: Color, result?: Color): Color;
- /**
- * Returns true if the first Color equals the second color.
- * @param left - The first Color to compare for equality.
- * @param right - The second Color to compare for equality.
- * @returns <code>true</code> if the Colors are equal; otherwise, <code>false</code>.
- */
- static equals(left: Color, right: Color): boolean;
- /**
- * Returns a duplicate of a Color instance.
- * @param [result] - The object to store the result in, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined.
- */
- clone(result?: Color): Color;
- /**
- * Returns true if this Color equals other.
- * @param other - The Color to compare for equality.
- * @returns <code>true</code> if the Colors are equal; otherwise, <code>false</code>.
- */
- equals(other: Color): boolean;
- /**
- * Returns <code>true</code> if this Color equals other componentwise within the specified epsilon.
- * @param other - The Color to compare for equality.
- * @param [epsilon = 0.0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if the Colors are equal within the specified epsilon; otherwise, <code>false</code>.
- */
- equalsEpsilon(other: Color, epsilon?: number): boolean;
-
- toString(): string;
-
- toCssColorString(): string;
-
- toCssHexString(): string;
-
- toBytes(result?: number[]): number[];
-
- toRgba(): number;
-
- brighten(magnitude: number, result: Color): Color;
-
- darken(magnitude: number, result: Color): Color;
-
- withAlpha(alpha: number, result?: Color): Color;
-
- static add(left: Color, right: Color, result: Color): Color;
-
- static subtract(left: Color, right: Color, result: Color): Color;
-
- static multiply(left: Color, right: Color, result: Color): Color;
-
- static divide(left: Color, right: Color, result: Color): Color;
-
- static mod(left: Color, right: Color, result: Color): Color;
-
- static lerp(start: Color, end: Color, t: number, result: Color): Color;
-
- static multiplyByScalar(color: Color, scalar: number, result: Color): Color;
-
- static divideByScalar(color: Color, scalar: number, result: Color): Color;
-
- static readonly ALICEBLUE: Color;
-
- static readonly ANTIQUEWHITE: Color;
-
- static readonly AQUA: Color;
-
- static readonly AQUAMARINE: Color;
-
- static readonly AZURE: Color;
-
- static readonly BEIGE: Color;
-
- static readonly BISQUE: Color;
-
- static readonly BLACK: Color;
-
- static readonly BLANCHEDALMOND: Color;
-
- static readonly BLUE: Color;
-
- static readonly BLUEVIOLET: Color;
-
- static readonly BROWN: Color;
-
- static readonly BURLYWOOD: Color;
-
- static readonly CADETBLUE: Color;
-
- static readonly CHARTREUSE: Color;
-
- static readonly CHOCOLATE: Color;
-
- static readonly CORAL: Color;
-
- static readonly CORNFLOWERBLUE: Color;
-
- static readonly CORNSILK: Color;
-
- static readonly CRIMSON: Color;
-
- static readonly CYAN: Color;
-
- static readonly DARKBLUE: Color;
-
- static readonly DARKCYAN: Color;
-
- static readonly DARKGOLDENROD: Color;
-
- static readonly DARKGRAY: Color;
-
- static readonly DARKGREEN: Color;
-
- static readonly DARKGREY: Color;
-
- static readonly DARKKHAKI: Color;
-
- static readonly DARKMAGENTA: Color;
-
- static readonly DARKOLIVEGREEN: Color;
-
- static readonly DARKORANGE: Color;
-
- static readonly DARKORCHID: Color;
-
- static readonly DARKRED: Color;
-
- static readonly DARKSALMON: Color;
-
- static readonly DARKSEAGREEN: Color;
-
- static readonly DARKSLATEBLUE: Color;
-
- static readonly DARKSLATEGRAY: Color;
-
- static readonly DARKSLATEGREY: Color;
-
- static readonly DARKTURQUOISE: Color;
-
- static readonly DARKVIOLET: Color;
-
- static readonly DEEPPINK: Color;
-
- static readonly DEEPSKYBLUE: Color;
-
- static readonly DIMGRAY: Color;
-
- static readonly DIMGREY: Color;
-
- static readonly DODGERBLUE: Color;
-
- static readonly FIREBRICK: Color;
-
- static readonly FLORALWHITE: Color;
-
- static readonly FORESTGREEN: Color;
-
- static readonly FUCHSIA: Color;
-
- static readonly GAINSBORO: Color;
-
- static readonly GHOSTWHITE: Color;
-
- static readonly GOLD: Color;
-
- static readonly GOLDENROD: Color;
-
- static readonly GRAY: Color;
-
- static readonly GREEN: Color;
-
- static readonly GREENYELLOW: Color;
-
- static readonly GREY: Color;
-
- static readonly HONEYDEW: Color;
-
- static readonly HOTPINK: Color;
-
- static readonly INDIANRED: Color;
-
- static readonly INDIGO: Color;
-
- static readonly IVORY: Color;
-
- static readonly KHAKI: Color;
-
- static readonly LAVENDER: Color;
-
- static readonly LAVENDAR_BLUSH: Color;
-
- static readonly LAWNGREEN: Color;
-
- static readonly LEMONCHIFFON: Color;
-
- static readonly LIGHTBLUE: Color;
-
- static readonly LIGHTCORAL: Color;
-
- static readonly LIGHTCYAN: Color;
-
- static readonly LIGHTGOLDENRODYELLOW: Color;
-
- static readonly LIGHTGRAY: Color;
-
- static readonly LIGHTGREEN: Color;
-
- static readonly LIGHTGREY: Color;
-
- static readonly LIGHTPINK: Color;
-
- static readonly LIGHTSEAGREEN: Color;
-
- static readonly LIGHTSKYBLUE: Color;
-
- static readonly LIGHTSLATEGRAY: Color;
-
- static readonly LIGHTSLATEGREY: Color;
-
- static readonly LIGHTSTEELBLUE: Color;
-
- static readonly LIGHTYELLOW: Color;
-
- static readonly LIME: Color;
-
- static readonly LIMEGREEN: Color;
-
- static readonly LINEN: Color;
-
- static readonly MAGENTA: Color;
-
- static readonly MAROON: Color;
-
- static readonly MEDIUMAQUAMARINE: Color;
-
- static readonly MEDIUMBLUE: Color;
-
- static readonly MEDIUMORCHID: Color;
-
- static readonly MEDIUMPURPLE: Color;
-
- static readonly MEDIUMSEAGREEN: Color;
-
- static readonly MEDIUMSLATEBLUE: Color;
-
- static readonly MEDIUMSPRINGGREEN: Color;
-
- static readonly MEDIUMTURQUOISE: Color;
-
- static readonly MEDIUMVIOLETRED: Color;
-
- static readonly MIDNIGHTBLUE: Color;
-
- static readonly MINTCREAM: Color;
-
- static readonly MISTYROSE: Color;
-
- static readonly MOCCASIN: Color;
-
- static readonly NAVAJOWHITE: Color;
-
- static readonly NAVY: Color;
-
- static readonly OLDLACE: Color;
-
- static readonly OLIVE: Color;
-
- static readonly OLIVEDRAB: Color;
-
- static readonly ORANGE: Color;
-
- static readonly ORANGERED: Color;
-
- static readonly ORCHID: Color;
-
- static readonly PALEGOLDENROD: Color;
-
- static readonly PALEGREEN: Color;
-
- static readonly PALETURQUOISE: Color;
-
- static readonly PALEVIOLETRED: Color;
-
- static readonly PAPAYAWHIP: Color;
-
- static readonly PEACHPUFF: Color;
-
- static readonly PERU: Color;
-
- static readonly PINK: Color;
-
- static readonly PLUM: Color;
-
- static readonly POWDERBLUE: Color;
-
- static readonly PURPLE: Color;
-
- static readonly RED: Color;
-
- static readonly ROSYBROWN: Color;
-
- static readonly ROYALBLUE: Color;
-
- static readonly SADDLEBROWN: Color;
-
- static readonly SALMON: Color;
-
- static readonly SANDYBROWN: Color;
-
- static readonly SEAGREEN: Color;
-
- static readonly SEASHELL: Color;
-
- static readonly SIENNA: Color;
-
- static readonly SILVER: Color;
-
- static readonly SKYBLUE: Color;
-
- static readonly SLATEBLUE: Color;
-
- static readonly SLATEGRAY: Color;
-
- static readonly SLATEGREY: Color;
-
- static readonly SNOW: Color;
-
- static readonly SPRINGGREEN: Color;
-
- static readonly STEELBLUE: Color;
-
- static readonly TAN: Color;
-
- static readonly TEAL: Color;
-
- static readonly THISTLE: Color;
-
- static readonly TOMATO: Color;
-
- static readonly TURQUOISE: Color;
-
- static readonly VIOLET: Color;
-
- static readonly WHEAT: Color;
-
- static readonly WHITE: Color;
-
- static readonly WHITESMOKE: Color;
-
- static readonly YELLOW: Color;
-
- static readonly YELLOWGREEN: Color;
-
- static readonly TRANSPARENT: Color;
- }
- export class ColorGeometryInstanceAttribute {
- constructor(red?: number, green?: number, blue?: number, alpha?: number);
- /**
- * The values for the attributes stored in a typed array.
- */
- value: Uint8Array;
- /**
- * The datatype of each component in the attribute, e.g., individual elements in
- * {@link ColorGeometryInstanceAttribute#value}.
- */
- readonly componentDatatype: ComponentDatatype;
- /**
- * The number of components in the attributes, i.e., {@link ColorGeometryInstanceAttribute#value}.
- */
- readonly componentsPerAttribute: number;
- /**
- * When <code>true</code> and <code>componentDatatype</code> is an integer format,
- * indicate that the components should be mapped to the range [0, 1] (unsigned)
- * or [-1, 1] (signed) when they are accessed as floating-point for rendering.
- */
- readonly normalize: boolean;
- /**
- * Creates a new {@link ColorGeometryInstanceAttribute} instance given the provided {@link Color}.
- * @example
- * var instance = new Cesium.GeometryInstance({
- * geometry : geometry,
- * attributes : {
- * color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.CORNFLOWERBLUE),
- * }
- * });
- * @param color - The color.
- * @returns The new {@link ColorGeometryInstanceAttribute} instance.
- */
- static fromColor(color: Color): ColorGeometryInstanceAttribute;
- /**
- * Converts a color to a typed array that can be used to assign a color attribute.
- * @example
- * var attributes = primitive.getGeometryInstanceAttributes('an id');
- * attributes.color = Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.AQUA, attributes.color);
- * @param color - The color.
- * @param [result] - The array to store the result in, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined.
- */
- static toValue(color: Color, result?: Uint8Array): Uint8Array;
- /**
- * Compares the provided ColorGeometryInstanceAttributes and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first ColorGeometryInstanceAttribute.
- * @param [right] - The second ColorGeometryInstanceAttribute.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: ColorGeometryInstanceAttribute, right?: ColorGeometryInstanceAttribute): boolean;
- }
- /**
- * WebGL component datatypes. Components are intrinsics,
- * which form attributes, which form vertices.
- */
- export enum ComponentDatatype {
- /**
- * 8-bit signed byte corresponding to <code>gl.BYTE</code> and the type
- * of an element in <code>Int8Array</code>.
- */
- BYTE = WebGLConstants.BYTE,
- /**
- * 8-bit unsigned byte corresponding to <code>UNSIGNED_BYTE</code> and the type
- * of an element in <code>Uint8Array</code>.
- */
- UNSIGNED_BYTE = WebGLConstants.UNSIGNED_BYTE,
- /**
- * 16-bit signed short corresponding to <code>SHORT</code> and the type
- * of an element in <code>Int16Array</code>.
- */
- SHORT = WebGLConstants.SHORT,
- /**
- * 16-bit unsigned short corresponding to <code>UNSIGNED_SHORT</code> and the type
- * of an element in <code>Uint16Array</code>.
- */
- UNSIGNED_SHORT = WebGLConstants.UNSIGNED_SHORT,
- /**
- * 32-bit signed int corresponding to <code>INT</code> and the type
- * of an element in <code>Int32Array</code>.
- */
- INT = WebGLConstants.INT,
- /**
- * 32-bit unsigned int corresponding to <code>UNSIGNED_INT</code> and the type
- * of an element in <code>Uint32Array</code>.
- */
- UNSIGNED_INT = WebGLConstants.UNSIGNED_INT,
- /**
- * 32-bit floating-point corresponding to <code>FLOAT</code> and the type
- * of an element in <code>Float32Array</code>.
- */
- FLOAT = WebGLConstants.FLOAT,
- /**
- * 64-bit floating-point corresponding to <code>gl.DOUBLE</code> (in Desktop OpenGL;
- * this is not supported in WebGL, and is emulated in Cesium via {@link GeometryPipeline.encodeAttribute})
- * and the type of an element in <code>Float64Array</code>.
- */
- DOUBLE = WebGLConstants.DOUBLE
- }
- /**
- * Describes a compressed texture and contains a compressed texture buffer.
- * @param internalFormat - The pixel format of the compressed texture.
- * @param pixelDatatype - The pixel datatype of the compressed texture.
- * @param width - The width of the texture.
- * @param height - The height of the texture.
- * @param buffer - The compressed texture buffer.
- */
- export class CompressedTextureBuffer {
- constructor(internalFormat: PixelFormat, pixelDatatype: PixelDatatype, width: number, height: number, buffer: Uint8Array);
- /**
- * The format of the compressed texture.
- */
- readonly internalFormat: PixelFormat;
- /**
- * The datatype of the compressed texture.
- */
- readonly pixelDatatype: PixelDatatype;
- /**
- * The width of the texture.
- */
- readonly width: number;
- /**
- * The height of the texture.
- */
- readonly height: number;
- /**
- * The compressed texture buffer.
- */
- readonly bufferView: Uint8Array;
- /**
- * Creates a shallow clone of a compressed texture buffer.
- * @param object - The compressed texture buffer to be cloned.
- * @returns A shallow clone of the compressed texture buffer.
- */
- static clone(object: CompressedTextureBuffer): CompressedTextureBuffer;
- /**
- * Creates a shallow clone of this compressed texture buffer.
- * @returns A shallow clone of the compressed texture buffer.
- */
- clone(): CompressedTextureBuffer;
- }
- /**
- * A description of a polygon composed of arbitrary coplanar positions.
- * @example
- * var polygonGeometry = new Cesium.CoplanarPolygonGeometry({
- * polygonHierarchy: new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArrayHeights([
- * -90.0, 30.0, 0.0,
- * -90.0, 30.0, 300000.0,
- * -80.0, 30.0, 300000.0,
- * -80.0, 30.0, 0.0
- * ]))
- * });
- * @param options - Object with the following properties:
- * @param options.polygonHierarchy - A polygon hierarchy that can include holes.
- * @param [options.stRotation = 0.0] - The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- */
- export class CoplanarPolygonGeometry {
- constructor(options: {
- polygonHierarchy: PolygonHierarchy;
- stRotation?: number;
- vertexFormat?: VertexFormat;
- ellipsoid?: Ellipsoid;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * A description of a coplanar polygon from an array of positions.
- * @example
- *
- * var polygon = Cesium.CoplanarPolygonGeometry.fromPositions({
- * positions : Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0,
- * -75.0, 30.0,
- * -70.0, 30.0,
- * -68.0, 40.0
- * ])
- * });
- * var geometry = Cesium.PolygonGeometry.createGeometry(polygon);
- * @param options - Object with the following properties:
- * @param options.positions - An array of positions that defined the corner points of the polygon.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.stRotation = 0.0] - The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- */
- static fromPositions(options: {
- positions: Cartesian3[];
- vertexFormat?: VertexFormat;
- stRotation?: number;
- ellipsoid?: Ellipsoid;
- }): CoplanarPolygonGeometry;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: CoplanarPolygonGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new CoplanarPolygonGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: CoplanarPolygonGeometry): CoplanarPolygonGeometry;
- /**
- * Computes the geometric representation of an arbitrary coplanar polygon, including its vertices, indices, and a bounding sphere.
- * @param polygonGeometry - A description of the polygon.
- * @returns The computed vertices and indices.
- */
- static createGeometry(polygonGeometry: CoplanarPolygonGeometry): Geometry | undefined;
- }
- /**
- * A description of the outline of a polygon composed of arbitrary coplanar positions.
- * @example
- * var polygonOutline = new Cesium.CoplanarPolygonOutlineGeometry({
- * positions : Cesium.Cartesian3.fromDegreesArrayHeights([
- * -90.0, 30.0, 0.0,
- * -90.0, 30.0, 1000.0,
- * -80.0, 30.0, 1000.0,
- * -80.0, 30.0, 0.0
- * ])
- * });
- * var geometry = Cesium.CoplanarPolygonOutlineGeometry.createGeometry(polygonOutline);
- * @param options - Object with the following properties:
- * @param options.polygonHierarchy - A polygon hierarchy that can include holes.
- */
- export class CoplanarPolygonOutlineGeometry {
- constructor(options: {
- polygonHierarchy: PolygonHierarchy;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * A description of a coplanar polygon outline from an array of positions.
- * @param options - Object with the following properties:
- * @param options.positions - An array of positions that defined the corner points of the polygon.
- */
- static fromPositions(options: {
- positions: Cartesian3[];
- }): CoplanarPolygonOutlineGeometry;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: CoplanarPolygonOutlineGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new CoplanarPolygonOutlineGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: CoplanarPolygonOutlineGeometry): CoplanarPolygonOutlineGeometry;
- /**
- * Computes the geometric representation of an arbitrary coplanar polygon, including its vertices, indices, and a bounding sphere.
- * @param polygonGeometry - A description of the polygon.
- * @returns The computed vertices and indices.
- */
- static createGeometry(polygonGeometry: CoplanarPolygonOutlineGeometry): Geometry | undefined;
- }
- /**
- * Style options for corners.
- */
- export enum CornerType {
- /**
- * <img src="Images/CornerTypeRounded.png" style="vertical-align: middle;" width="186" height="189" />
- *
- * Corner has a smooth edge.
- */
- ROUNDED = 0,
- /**
- * <img src="Images/CornerTypeMitered.png" style="vertical-align: middle;" width="186" height="189" />
- *
- * Corner point is the intersection of adjacent edges.
- */
- MITERED = 1,
- /**
- * <img src="Images/CornerTypeBeveled.png" style="vertical-align: middle;" width="186" height="189" />
- *
- * Corner is clipped.
- */
- BEVELED = 2
- }
- /**
- * A description of a corridor. Corridor geometry can be rendered with both {@link Primitive} and {@link GroundPrimitive}.
- * @example
- * var corridor = new Cesium.CorridorGeometry({
- * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
- * positions : Cesium.Cartesian3.fromDegreesArray([-72.0, 40.0, -70.0, 35.0]),
- * width : 100000
- * });
- * @param options - Object with the following properties:
- * @param options.positions - An array of positions that define the center of the corridor.
- * @param options.width - The distance between the edges of the corridor in meters.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.height = 0] - The distance in meters between the ellipsoid surface and the positions.
- * @param [options.extrudedHeight] - The distance in meters between the ellipsoid surface and the extruded face.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.cornerType = CornerType.ROUNDED] - Determines the style of the corners.
- */
- export class CorridorGeometry {
- constructor(options: {
- positions: Cartesian3[];
- width: number;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- height?: number;
- extrudedHeight?: number;
- vertexFormat?: VertexFormat;
- cornerType?: CornerType;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: CorridorGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new CorridorGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: CorridorGeometry): CorridorGeometry;
- /**
- * Computes the bounding rectangle given the provided options
- * @param options - Object with the following properties:
- * @param options.positions - An array of positions that define the center of the corridor.
- * @param options.width - The distance between the edges of the corridor in meters.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.cornerType = CornerType.ROUNDED] - Determines the style of the corners.
- * @param [result] - An object in which to store the result.
- * @returns The result rectangle.
- */
- static computeRectangle(options: {
- positions: Cartesian3[];
- width: number;
- ellipsoid?: Ellipsoid;
- cornerType?: CornerType;
- }, result?: Rectangle): Rectangle;
- /**
- * Computes the geometric representation of a corridor, including its vertices, indices, and a bounding sphere.
- * @param corridorGeometry - A description of the corridor.
- * @returns The computed vertices and indices.
- */
- static createGeometry(corridorGeometry: CorridorGeometry): Geometry | undefined;
- }
- /**
- * A description of a corridor outline.
- * @example
- * var corridor = new Cesium.CorridorOutlineGeometry({
- * positions : Cesium.Cartesian3.fromDegreesArray([-72.0, 40.0, -70.0, 35.0]),
- * width : 100000
- * });
- * @param options - Object with the following properties:
- * @param options.positions - An array of positions that define the center of the corridor outline.
- * @param options.width - The distance between the edges of the corridor outline.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.height = 0] - The distance in meters between the positions and the ellipsoid surface.
- * @param [options.extrudedHeight] - The distance in meters between the extruded face and the ellipsoid surface.
- * @param [options.cornerType = CornerType.ROUNDED] - Determines the style of the corners.
- */
- export class CorridorOutlineGeometry {
- constructor(options: {
- positions: Cartesian3[];
- width: number;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- height?: number;
- extrudedHeight?: number;
- cornerType?: CornerType;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: CorridorOutlineGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new CorridorOutlineGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: CorridorOutlineGeometry): CorridorOutlineGeometry;
- /**
- * Computes the geometric representation of a corridor, including its vertices, indices, and a bounding sphere.
- * @param corridorOutlineGeometry - A description of the corridor.
- * @returns The computed vertices and indices.
- */
- static createGeometry(corridorOutlineGeometry: CorridorOutlineGeometry): Geometry | undefined;
- }
- /**
- * A credit contains data pertaining to how to display attributions/credits for certain content on the screen.
- * @example
- *
- * var credit = new Cesium.Credit('<a href="https://cesium.com/" target="_blank"><img src="/images/cesium_logo.png" title="Cesium"/></a>');
- * @param html - An string representing an html code snippet
- * @param [showOnScreen = false] - If true, the credit will be visible in the main credit container. Otherwise, it will appear in a popover
- */
- export class Credit {
- constructor(html: string, showOnScreen?: boolean);
- /**
- * The credit content
- */
- readonly html: string;
- /**
- * Whether the credit should be displayed on screen or in a lightbox
- */
- readonly showOnScreen: boolean;
- /**
- * Gets the credit element
- */
- readonly element: HTMLElement;
- /**
- * Returns true if the credits are equal
- * @param left - The first credit
- * @param right - The second credit
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left: Credit, right: Credit): boolean;
- /**
- * Returns true if the credits are equal
- * @param credit - The credit to compare to.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(credit: Credit): boolean;
- /**
- * Duplicates a Credit instance.
- * @param [credit] - The Credit to duplicate.
- * @returns A new Credit instance that is a duplicate of the one provided. (Returns undefined if the credit is undefined)
- */
- static clone(credit?: Credit): Credit;
- }
- /**
- * Defines functions for 3rd order polynomial functions of one variable with only real coefficients.
- */
- export namespace CubicRealPolynomial {
- /**
- * Provides the discriminant of the cubic equation from the supplied coefficients.
- * @param a - The coefficient of the 3rd order monomial.
- * @param b - The coefficient of the 2nd order monomial.
- * @param c - The coefficient of the 1st order monomial.
- * @param d - The coefficient of the 0th order monomial.
- * @returns The value of the discriminant.
- */
- function computeDiscriminant(a: number, b: number, c: number, d: number): number;
- /**
- * Provides the real valued roots of the cubic polynomial with the provided coefficients.
- * @param a - The coefficient of the 3rd order monomial.
- * @param b - The coefficient of the 2nd order monomial.
- * @param c - The coefficient of the 1st order monomial.
- * @param d - The coefficient of the 0th order monomial.
- * @returns The real valued roots.
- */
- function computeRealRoots(a: number, b: number, c: number, d: number): number[];
- }
- /**
- * The culling volume defined by planes.
- * @param [planes] - An array of clipping planes.
- */
- export class CullingVolume {
- constructor(planes?: Cartesian4[]);
- /**
- * Each plane is represented by a Cartesian4 object, where the x, y, and z components
- * define the unit vector normal to the plane, and the w component is the distance of the
- * plane from the origin.
- */
- planes: Cartesian4[];
- /**
- * Constructs a culling volume from a bounding sphere. Creates six planes that create a box containing the sphere.
- * The planes are aligned to the x, y, and z axes in world coordinates.
- * @param boundingSphere - The bounding sphere used to create the culling volume.
- * @param [result] - The object onto which to store the result.
- * @returns The culling volume created from the bounding sphere.
- */
- static fromBoundingSphere(boundingSphere: BoundingSphere, result?: CullingVolume): CullingVolume;
- /**
- * Determines whether a bounding volume intersects the culling volume.
- * @param boundingVolume - The bounding volume whose intersection with the culling volume is to be tested.
- * @returns Intersect.OUTSIDE, Intersect.INTERSECTING, or Intersect.INSIDE.
- */
- computeVisibility(boundingVolume: any): Intersect;
- }
- export namespace CustomHeightmapTerrainProvider {
-
- type GeometryCallback = (x: number, y: number, level: number) => Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | number[] | Promise<Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | number[]> | undefined;
- }
- export class CustomHeightmapTerrainProvider {
- constructor(options: {
- callback: CustomHeightmapTerrainProvider.GeometryCallback;
- width: number;
- height: number;
- tilingScheme?: TilingScheme;
- ellipsoid?: Ellipsoid;
- credit?: Credit | string;
- });
-
- readonly errorEvent: Event;
-
- readonly credit: Credit;
-
- readonly tilingScheme: TilingScheme;
-
- readonly ready: boolean;
-
- readonly readyPromise: Promise<boolean>;
-
- readonly hasWaterMask: boolean;
-
- readonly hasVertexNormals: boolean;
-
- readonly width: boolean;
-
- readonly height: boolean;
-
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
-
- getLevelMaximumGeometricError(level: number): number;
-
- getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
-
- loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
- }
- export class CylinderGeometry {
- constructor(options: {
- length: number;
- topRadius: number;
- bottomRadius: number;
- slices?: number;
- vertexFormat?: VertexFormat;
- });
-
- static packedLength: number;
-
- static pack(value: CylinderGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: CylinderGeometry): CylinderGeometry;
-
- static createGeometry(cylinderGeometry: CylinderGeometry): Geometry | undefined;
- }
- export class CylinderOutlineGeometry {
- constructor(options: {
- length: number;
- topRadius: number;
- bottomRadius: number;
- slices?: number;
- numberOfVerticalLines?: number;
- });
-
- static packedLength: number;
-
- static pack(value: CylinderOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: CylinderOutlineGeometry): CylinderOutlineGeometry;
-
- static createGeometry(cylinderGeometry: CylinderOutlineGeometry): Geometry | undefined;
- }
- export class DefaultProxy extends Proxy {
- constructor(proxy: string);
- /**
- * Get the final URL to use to request a given resource.
- * @param resource - The resource to request.
- * @returns proxied resource
- */
- getURL(resource: string): string;
- }
- /**
- * Constructs an exception object that is thrown due to a developer error, e.g., invalid argument,
- * argument out of range, etc. This exception should only be thrown during development;
- * it usually indicates a bug in the calling code. This exception should never be
- * caught; instead the calling code should strive not to generate it.
- * <br /><br />
- * On the other hand, a {@link RuntimeError} indicates an exception that may
- * be thrown at runtime, e.g., out of memory, that the calling code should be prepared
- * to catch.
- * @param [message] - The error message for this exception.
- */
- export class DeveloperError extends Error {
- constructor(message?: string);
- /**
- * 'DeveloperError' indicating that this exception was thrown due to a developer error.
- */
- readonly name: string;
- /**
- * The explanation for why this exception was thrown.
- */
- readonly message: string;
- /**
- * The stack trace of this exception, if available.
- */
- readonly stack: string;
- }
- /**
- * Determines visibility based on the distance to the camera.
- * @example
- *
- * billboard.distanceDisplayCondition = new Cesium.DistanceDisplayCondition(10.0, 20.0);
- * @param [near = 0.0] - The smallest distance in the interval where the object is visible.
- * @param [far = Number.MAX_VALUE] - The largest distance in the interval where the object is visible.
- */
- export class DistanceDisplayCondition {
- constructor(near?: number, far?: number);
- /**
- * The smallest distance in the interval where the object is visible.
- */
- near: number;
- /**
- * The largest distance in the interval where the object is visible.
- */
- far: number;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: DistanceDisplayCondition, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new DistanceDisplayCondition instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: DistanceDisplayCondition): DistanceDisplayCondition;
- /**
- * Determines if two distance display conditions are equal.
- * @param left - A distance display condition.
- * @param right - Another distance display condition.
- * @returns Whether the two distance display conditions are equal.
- */
- static equals(left: DistanceDisplayCondition, right: DistanceDisplayCondition): boolean;
- /**
- * Duplicates a distance display condition instance.
- * @param [value] - The distance display condition to duplicate.
- * @param [result] - The result onto which to store the result.
- * @returns The duplicated instance.
- */
- static clone(value?: DistanceDisplayCondition, result?: DistanceDisplayCondition): DistanceDisplayCondition;
- /**
- * Duplicates this instance.
- * @param [result] - The result onto which to store the result.
- * @returns The duplicated instance.
- */
- clone(result?: DistanceDisplayCondition): DistanceDisplayCondition;
- /**
- * Determines if this distance display condition is equal to another.
- * @param other - Another distance display condition.
- * @returns Whether this distance display condition is equal to the other.
- */
- equals(other: DistanceDisplayCondition): boolean;
- }
- /**
- * Value and type information for per-instance geometry attribute that determines if the geometry instance has a distance display condition.
- * @example
- * var instance = new Cesium.GeometryInstance({
- * geometry : new Cesium.BoxGeometry({
- * vertexFormat : Cesium.VertexFormat.POSITION_AND_NORMAL,
- * minimum : new Cesium.Cartesian3(-250000.0, -250000.0, -250000.0),
- * maximum : new Cesium.Cartesian3(250000.0, 250000.0, 250000.0)
- * }),
- * modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
- * Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883)), new Cesium.Cartesian3(0.0, 0.0, 1000000.0), new Cesium.Matrix4()),
- * id : 'box',
- * attributes : {
- * distanceDisplayCondition : new Cesium.DistanceDisplayConditionGeometryInstanceAttribute(100.0, 10000.0)
- * }
- * });
- * @param [near = 0.0] - The near distance.
- * @param [far = Number.MAX_VALUE] - The far distance.
- */
- export class DistanceDisplayConditionGeometryInstanceAttribute {
- constructor(near?: number, far?: number);
- /**
- * The values for the attributes stored in a typed array.
- */
- value: Float32Array;
- /**
- * The datatype of each component in the attribute, e.g., individual elements in
- * {@link DistanceDisplayConditionGeometryInstanceAttribute#value}.
- */
- readonly componentDatatype: ComponentDatatype;
- /**
- * The number of components in the attributes, i.e., {@link DistanceDisplayConditionGeometryInstanceAttribute#value}.
- */
- readonly componentsPerAttribute: number;
- /**
- * When <code>true</code> and <code>componentDatatype</code> is an integer format,
- * indicate that the components should be mapped to the range [0, 1] (unsigned)
- * or [-1, 1] (signed) when they are accessed as floating-point for rendering.
- */
- readonly normalize: boolean;
- /**
- * Creates a new {@link DistanceDisplayConditionGeometryInstanceAttribute} instance given the provided an enabled flag and {@link DistanceDisplayCondition}.
- * @example
- * var distanceDisplayCondition = new Cesium.DistanceDisplayCondition(100.0, 10000.0);
- * var instance = new Cesium.GeometryInstance({
- * geometry : geometry,
- * attributes : {
- * distanceDisplayCondition : Cesium.DistanceDisplayConditionGeometryInstanceAttribute.fromDistanceDisplayCondition(distanceDisplayCondition)
- * }
- * });
- * @param distanceDisplayCondition - The distance display condition.
- * @returns The new {@link DistanceDisplayConditionGeometryInstanceAttribute} instance.
- */
- static fromDistanceDisplayCondition(distanceDisplayCondition: DistanceDisplayCondition): DistanceDisplayConditionGeometryInstanceAttribute;
- /**
- * Converts a distance display condition to a typed array that can be used to assign a distance display condition attribute.
- * @example
- * var attributes = primitive.getGeometryInstanceAttributes('an id');
- * attributes.distanceDisplayCondition = Cesium.DistanceDisplayConditionGeometryInstanceAttribute.toValue(distanceDisplayCondition, attributes.distanceDisplayCondition);
- * @param distanceDisplayCondition - The distance display condition value.
- * @param [result] - The array to store the result in, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined.
- */
- static toValue(distanceDisplayCondition: DistanceDisplayCondition, result?: Float32Array): Float32Array;
- }
- /**
- * Easing functions for use with TweenCollection. These function are from
- * {@link https://github.com/sole/tween.js/|Tween.js} and Robert Penner. See the
- * {@link http:
- */
- export namespace EasingFunction {
- /**
- * Linear easing.
- */
- const LINEAR_NONE: EasingFunction.Callback;
- /**
- * Quadratic in.
- */
- const QUADRATIC_IN: EasingFunction.Callback;
- /**
- * Quadratic out.
- */
- const QUADRATIC_OUT: EasingFunction.Callback;
- /**
- * Quadratic in then out.
- */
- const QUADRATIC_IN_OUT: EasingFunction.Callback;
- /**
- * Cubic in.
- */
- const CUBIC_IN: EasingFunction.Callback;
- /**
- * Cubic out.
- */
- const CUBIC_OUT: EasingFunction.Callback;
- /**
- * Cubic in then out.
- */
- const CUBIC_IN_OUT: EasingFunction.Callback;
- /**
- * Quartic in.
- */
- const QUARTIC_IN: EasingFunction.Callback;
- /**
- * Quartic out.
- */
- const QUARTIC_OUT: EasingFunction.Callback;
- /**
- * Quartic in then out.
- */
- const QUARTIC_IN_OUT: EasingFunction.Callback;
- /**
- * Quintic in.
- */
- const QUINTIC_IN: EasingFunction.Callback;
- /**
- * Quintic out.
- */
- const QUINTIC_OUT: EasingFunction.Callback;
- /**
- * Quintic in then out.
- */
- const QUINTIC_IN_OUT: EasingFunction.Callback;
- /**
- * Sinusoidal in.
- */
- const SINUSOIDAL_IN: EasingFunction.Callback;
- /**
- * Sinusoidal out.
- */
- const SINUSOIDAL_OUT: EasingFunction.Callback;
- /**
- * Sinusoidal in then out.
- */
- const SINUSOIDAL_IN_OUT: EasingFunction.Callback;
- /**
- * Exponential in.
- */
- const EXPONENTIAL_IN: EasingFunction.Callback;
- /**
- * Exponential out.
- */
- const EXPONENTIAL_OUT: EasingFunction.Callback;
- /**
- * Exponential in then out.
- */
- const EXPONENTIAL_IN_OUT: EasingFunction.Callback;
- /**
- * Circular in.
- */
- const CIRCULAR_IN: EasingFunction.Callback;
- /**
- * Circular out.
- */
- const CIRCULAR_OUT: EasingFunction.Callback;
- /**
- * Circular in then out.
- */
- const CIRCULAR_IN_OUT: EasingFunction.Callback;
- /**
- * Elastic in.
- */
- const ELASTIC_IN: EasingFunction.Callback;
- /**
- * Elastic out.
- */
- const ELASTIC_OUT: EasingFunction.Callback;
- /**
- * Elastic in then out.
- */
- const ELASTIC_IN_OUT: EasingFunction.Callback;
- /**
- * Back in.
- */
- const BACK_IN: EasingFunction.Callback;
- /**
- * Back out.
- */
- const BACK_OUT: EasingFunction.Callback;
- /**
- * Back in then out.
- */
- const BACK_IN_OUT: EasingFunction.Callback;
- /**
- * Bounce in.
- */
- const BOUNCE_IN: EasingFunction.Callback;
- /**
- * Bounce out.
- */
- const BOUNCE_OUT: EasingFunction.Callback;
- /**
- * Bounce in then out.
- */
- const BOUNCE_IN_OUT: EasingFunction.Callback;
- /**
- * Function interface for implementing a custom easing function.
- * @example
- * function quadraticIn(time) {
- * return time * time;
- * }
- * @example
- * function quadraticOut(time) {
- * return time * (2.0 - time);
- * }
- * @param time - The time in the range <code>[0, 1]</code>.
- */
- type Callback = (time: number) => number;
- }
- export class EllipseGeometry {
- constructor(options: {
- center: Cartesian3;
- semiMajorAxis: number;
- semiMinorAxis: number;
- ellipsoid?: Ellipsoid;
- height?: number;
- extrudedHeight?: number;
- rotation?: number;
- stRotation?: number;
- granularity?: number;
- vertexFormat?: VertexFormat;
- });
-
- static packedLength: number;
-
- static pack(value: EllipseGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: EllipseGeometry): EllipseGeometry;
-
- static computeRectangle(options: {
- center: Cartesian3;
- semiMajorAxis: number;
- semiMinorAxis: number;
- ellipsoid?: Ellipsoid;
- rotation?: number;
- granularity?: number;
- }, result?: Rectangle): Rectangle;
-
- static createGeometry(ellipseGeometry: EllipseGeometry): Geometry | undefined;
- }
- export class EllipseOutlineGeometry {
- constructor(options: {
- center: Cartesian3;
- semiMajorAxis: number;
- semiMinorAxis: number;
- ellipsoid?: Ellipsoid;
- height?: number;
- extrudedHeight?: number;
- rotation?: number;
- granularity?: number;
- numberOfVerticalLines?: number;
- });
-
- static packedLength: number;
-
- static pack(value: EllipseOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: EllipseOutlineGeometry): EllipseOutlineGeometry;
-
- static createGeometry(ellipseGeometry: EllipseOutlineGeometry): Geometry | undefined;
- }
- export class Ellipsoid {
- constructor(x?: number, y?: number, z?: number);
- /**
- * Gets the radii of the ellipsoid.
- */
- readonly radii: Cartesian3;
- /**
- * Gets the squared radii of the ellipsoid.
- */
- readonly radiiSquared: Cartesian3;
- /**
- * Gets the radii of the ellipsoid raise to the fourth power.
- */
- readonly radiiToTheFourth: Cartesian3;
- /**
- * Gets one over the radii of the ellipsoid.
- */
- readonly oneOverRadii: Cartesian3;
- /**
- * Gets one over the squared radii of the ellipsoid.
- */
- readonly oneOverRadiiSquared: Cartesian3;
- /**
- * Gets the minimum radius of the ellipsoid.
- */
- readonly minimumRadius: number;
- /**
- * Gets the maximum radius of the ellipsoid.
- */
- readonly maximumRadius: number;
- /**
- * Duplicates an Ellipsoid instance.
- * @param ellipsoid - The ellipsoid to duplicate.
- * @param [result] - The object onto which to store the result, or undefined if a new
- * instance should be created.
- * @returns The cloned Ellipsoid. (Returns undefined if ellipsoid is undefined)
- */
- static clone(ellipsoid: Ellipsoid, result?: Ellipsoid): Ellipsoid;
- /**
- * Computes an Ellipsoid from a Cartesian specifying the radii in x, y, and z directions.
- * @param [cartesian = Cartesian3.ZERO] - The ellipsoid's radius in the x, y, and z directions.
- * @param [result] - The object onto which to store the result, or undefined if a new
- * instance should be created.
- * @returns A new Ellipsoid instance.
- */
- static fromCartesian3(cartesian?: Cartesian3, result?: Ellipsoid): Ellipsoid;
- /**
- * An Ellipsoid instance initialized to the WGS84 standard.
- */
- static readonly WGS84: Ellipsoid;
- /**
- * An Ellipsoid instance initialized to radii of (1.0, 1.0, 1.0).
- */
- static readonly UNIT_SPHERE: Ellipsoid;
- /**
- * An Ellipsoid instance initialized to a sphere with the lunar radius.
- */
- static readonly MOON: Ellipsoid;
- /**
- * Duplicates an Ellipsoid instance.
- * @param [result] - The object onto which to store the result, or undefined if a new
- * instance should be created.
- * @returns The cloned Ellipsoid.
- */
- clone(result?: Ellipsoid): Ellipsoid;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Ellipsoid, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Ellipsoid instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Ellipsoid): Ellipsoid;
- /**
- * Computes the unit vector directed from the center of this ellipsoid toward the provided Cartesian position.
- * @param cartesian - The Cartesian for which to to determine the geocentric normal.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if none was provided.
- */
- geocentricSurfaceNormal(cartesian: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Computes the normal of the plane tangent to the surface of the ellipsoid at the provided position.
- * @param cartographic - The cartographic position for which to to determine the geodetic normal.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if none was provided.
- */
- geodeticSurfaceNormalCartographic(cartographic: Cartographic, result?: Cartesian3): Cartesian3;
- /**
- * Computes the normal of the plane tangent to the surface of the ellipsoid at the provided position.
- * @param cartesian - The Cartesian position for which to to determine the surface normal.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if none was provided, or undefined if a normal cannot be found.
- */
- geodeticSurfaceNormal(cartesian: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Converts the provided cartographic to Cartesian representation.
- * @example
- * //Create a Cartographic and determine it's Cartesian representation on a WGS84 ellipsoid.
- * var position = new Cesium.Cartographic(Cesium.Math.toRadians(21), Cesium.Math.toRadians(78), 5000);
- * var cartesianPosition = Cesium.Ellipsoid.WGS84.cartographicToCartesian(position);
- * @param cartographic - The cartographic position.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if none was provided.
- */
- cartographicToCartesian(cartographic: Cartographic, result?: Cartesian3): Cartesian3;
- /**
- * Converts the provided array of cartographics to an array of Cartesians.
- * @example
- * //Convert an array of Cartographics and determine their Cartesian representation on a WGS84 ellipsoid.
- * var positions = [new Cesium.Cartographic(Cesium.Math.toRadians(21), Cesium.Math.toRadians(78), 0),
- * new Cesium.Cartographic(Cesium.Math.toRadians(21.321), Cesium.Math.toRadians(78.123), 100),
- * new Cesium.Cartographic(Cesium.Math.toRadians(21.645), Cesium.Math.toRadians(78.456), 250)];
- * var cartesianPositions = Cesium.Ellipsoid.WGS84.cartographicArrayToCartesianArray(positions);
- * @param cartographics - An array of cartographic positions.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Array instance if none was provided.
- */
- cartographicArrayToCartesianArray(cartographics: Cartographic[], result?: Cartesian3[]): Cartesian3[];
- /**
- * Converts the provided cartesian to cartographic representation.
- * The cartesian is undefined at the center of the ellipsoid.
- * @example
- * //Create a Cartesian and determine it's Cartographic representation on a WGS84 ellipsoid.
- * var position = new Cesium.Cartesian3(17832.12, 83234.52, 952313.73);
- * var cartographicPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(position);
- * @param cartesian - The Cartesian position to convert to cartographic representation.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter, new Cartographic instance if none was provided, or undefined if the cartesian is at the center of the ellipsoid.
- */
- cartesianToCartographic(cartesian: Cartesian3, result?: Cartographic): Cartographic;
- /**
- * Converts the provided array of cartesians to an array of cartographics.
- * @example
- * //Create an array of Cartesians and determine their Cartographic representation on a WGS84 ellipsoid.
- * var positions = [new Cesium.Cartesian3(17832.12, 83234.52, 952313.73),
- * new Cesium.Cartesian3(17832.13, 83234.53, 952313.73),
- * new Cesium.Cartesian3(17832.14, 83234.54, 952313.73)]
- * var cartographicPositions = Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(positions);
- * @param cartesians - An array of Cartesian positions.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Array instance if none was provided.
- */
- cartesianArrayToCartographicArray(cartesians: Cartesian3[], result?: Cartographic[]): Cartographic[];
- /**
- * Scales the provided Cartesian position along the geodetic surface normal
- * so that it is on the surface of this ellipsoid. If the position is
- * at the center of the ellipsoid, this function returns undefined.
- * @param cartesian - The Cartesian position to scale.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter, a new Cartesian3 instance if none was provided, or undefined if the position is at the center.
- */
- scaleToGeodeticSurface(cartesian: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Scales the provided Cartesian position along the geocentric surface normal
- * so that it is on the surface of this ellipsoid.
- * @param cartesian - The Cartesian position to scale.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if none was provided.
- */
- scaleToGeocentricSurface(cartesian: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Transforms a Cartesian X, Y, Z position to the ellipsoid-scaled space by multiplying
- * its components by the result of {@link Ellipsoid#oneOverRadii}.
- * @param position - The position to transform.
- * @param [result] - The position to which to copy the result, or undefined to create and
- * return a new instance.
- * @returns The position expressed in the scaled space. The returned instance is the
- * one passed as the result parameter if it is not undefined, or a new instance of it is.
- */
- transformPositionToScaledSpace(position: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Transforms a Cartesian X, Y, Z position from the ellipsoid-scaled space by multiplying
- * its components by the result of {@link Ellipsoid#radii}.
- * @param position - The position to transform.
- * @param [result] - The position to which to copy the result, or undefined to create and
- * return a new instance.
- * @returns The position expressed in the unscaled space. The returned instance is the
- * one passed as the result parameter if it is not undefined, or a new instance of it is.
- */
- transformPositionFromScaledSpace(position: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Compares this Ellipsoid against the provided Ellipsoid componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The other Ellipsoid.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: Ellipsoid): boolean;
- /**
- * Creates a string representing this Ellipsoid in the format '(radii.x, radii.y, radii.z)'.
- * @returns A string representing this ellipsoid in the format '(radii.x, radii.y, radii.z)'.
- */
- toString(): string;
- /**
- * Computes a point which is the intersection of the surface normal with the z-axis.
- * @param position - the position. must be on the surface of the ellipsoid.
- * @param [buffer = 0.0] - A buffer to subtract from the ellipsoid size when checking if the point is inside the ellipsoid.
- * In earth case, with common earth datums, there is no need for this buffer since the intersection point is always (relatively) very close to the center.
- * In WGS84 datum, intersection point is at max z = +-42841.31151331382 (0.673% of z-axis).
- * Intersection point could be outside the ellipsoid if the ratio of MajorAxis / AxisOfRotation is bigger than the square root of 2
- * @param [result] - The cartesian to which to copy the result, or undefined to create and
- * return a new instance.
- * @returns the intersection point if it's inside the ellipsoid, undefined otherwise
- */
- getSurfaceNormalIntersectionWithZAxis(position: Cartesian3, buffer?: number, result?: Cartesian3): Cartesian3 | undefined;
- /**
- * Computes an approximation of the surface area of a rectangle on the surface of an ellipsoid using
- * Gauss-Legendre 10th order quadrature.
- * @param rectangle - The rectangle used for computing the surface area.
- * @returns The approximate area of the rectangle on the surface of this ellipsoid.
- */
- surfaceArea(rectangle: Rectangle): number;
- }
- /**
- * Initializes a geodesic on the ellipsoid connecting the two provided planetodetic points.
- * @param [start] - The initial planetodetic point on the path.
- * @param [end] - The final planetodetic point on the path.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the geodesic lies.
- */
- export class EllipsoidGeodesic {
- constructor(start?: Cartographic, end?: Cartographic, ellipsoid?: Ellipsoid);
- /**
- * Gets the ellipsoid.
- */
- readonly ellipsoid: Ellipsoid;
- /**
- * Gets the surface distance between the start and end point
- */
- readonly surfaceDistance: number;
- /**
- * Gets the initial planetodetic point on the path.
- */
- readonly start: Cartographic;
- /**
- * Gets the final planetodetic point on the path.
- */
- readonly end: Cartographic;
- /**
- * Gets the heading at the initial point.
- */
- readonly startHeading: number;
- /**
- * Gets the heading at the final point.
- */
- readonly endHeading: number;
- /**
- * Sets the start and end points of the geodesic
- * @param start - The initial planetodetic point on the path.
- * @param end - The final planetodetic point on the path.
- */
- setEndPoints(start: Cartographic, end: Cartographic): void;
- /**
- * Provides the location of a point at the indicated portion along the geodesic.
- * @param fraction - The portion of the distance between the initial and final points.
- * @param [result] - The object in which to store the result.
- * @returns The location of the point along the geodesic.
- */
- interpolateUsingFraction(fraction: number, result?: Cartographic): Cartographic;
- /**
- * Provides the location of a point at the indicated distance along the geodesic.
- * @param distance - The distance from the inital point to the point of interest along the geodesic
- * @param [result] - The object in which to store the result.
- * @returns The location of the point along the geodesic.
- */
- interpolateUsingSurfaceDistance(distance: number, result?: Cartographic): Cartographic;
- }
- /**
- * A description of an ellipsoid centered at the origin.
- * @example
- * var ellipsoid = new Cesium.EllipsoidGeometry({
- * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
- * radii : new Cesium.Cartesian3(1000000.0, 500000.0, 500000.0)
- * });
- * var geometry = Cesium.EllipsoidGeometry.createGeometry(ellipsoid);
- * @param [options] - Object with the following properties:
- * @param [options.radii = Cartesian3(1.0, 1.0, 1.0)] - The radii of the ellipsoid in the x, y, and z directions.
- * @param [options.innerRadii = options.radii] - The inner radii of the ellipsoid in the x, y, and z directions.
- * @param [options.minimumClock = 0.0] - The minimum angle lying in the xy-plane measured from the positive x-axis and toward the positive y-axis.
- * @param [options.maximumClock = 2*PI] - The maximum angle lying in the xy-plane measured from the positive x-axis and toward the positive y-axis.
- * @param [options.minimumCone = 0.0] - The minimum angle measured from the positive z-axis and toward the negative z-axis.
- * @param [options.maximumCone = PI] - The maximum angle measured from the positive z-axis and toward the negative z-axis.
- * @param [options.stackPartitions = 64] - The number of times to partition the ellipsoid into stacks.
- * @param [options.slicePartitions = 64] - The number of times to partition the ellipsoid into radial slices.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- */
- export class EllipsoidGeometry {
- constructor(options?: {
- radii?: Cartesian3;
- innerRadii?: Cartesian3;
- minimumClock?: number;
- maximumClock?: number;
- minimumCone?: number;
- maximumCone?: number;
- stackPartitions?: number;
- slicePartitions?: number;
- vertexFormat?: VertexFormat;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: EllipsoidGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new EllipsoidGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: EllipsoidGeometry): EllipsoidGeometry;
- /**
- * Computes the geometric representation of an ellipsoid, including its vertices, indices, and a bounding sphere.
- * @param ellipsoidGeometry - A description of the ellipsoid.
- * @returns The computed vertices and indices.
- */
- static createGeometry(ellipsoidGeometry: EllipsoidGeometry): Geometry | undefined;
- }
- /**
- * A description of the outline of an ellipsoid centered at the origin.
- * @example
- * var ellipsoid = new Cesium.EllipsoidOutlineGeometry({
- * radii : new Cesium.Cartesian3(1000000.0, 500000.0, 500000.0),
- * stackPartitions: 6,
- * slicePartitions: 5
- * });
- * var geometry = Cesium.EllipsoidOutlineGeometry.createGeometry(ellipsoid);
- * @param [options] - Object with the following properties:
- * @param [options.radii = Cartesian3(1.0, 1.0, 1.0)] - The radii of the ellipsoid in the x, y, and z directions.
- * @param [options.innerRadii = options.radii] - The inner radii of the ellipsoid in the x, y, and z directions.
- * @param [options.minimumClock = 0.0] - The minimum angle lying in the xy-plane measured from the positive x-axis and toward the positive y-axis.
- * @param [options.maximumClock = 2*PI] - The maximum angle lying in the xy-plane measured from the positive x-axis and toward the positive y-axis.
- * @param [options.minimumCone = 0.0] - The minimum angle measured from the positive z-axis and toward the negative z-axis.
- * @param [options.maximumCone = PI] - The maximum angle measured from the positive z-axis and toward the negative z-axis.
- * @param [options.stackPartitions = 10] - The count of stacks for the ellipsoid (1 greater than the number of parallel lines).
- * @param [options.slicePartitions = 8] - The count of slices for the ellipsoid (Equal to the number of radial lines).
- * @param [options.subdivisions = 128] - The number of points per line, determining the granularity of the curvature.
- */
- export class EllipsoidOutlineGeometry {
- constructor(options?: {
- radii?: Cartesian3;
- innerRadii?: Cartesian3;
- minimumClock?: number;
- maximumClock?: number;
- minimumCone?: number;
- maximumCone?: number;
- stackPartitions?: number;
- slicePartitions?: number;
- subdivisions?: number;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: EllipsoidOutlineGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new EllipsoidOutlineGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: EllipsoidOutlineGeometry): EllipsoidOutlineGeometry;
- /**
- * Computes the geometric representation of an outline of an ellipsoid, including its vertices, indices, and a bounding sphere.
- * @param ellipsoidGeometry - A description of the ellipsoid outline.
- * @returns The computed vertices and indices.
- */
- static createGeometry(ellipsoidGeometry: EllipsoidOutlineGeometry): Geometry | undefined;
- }
- /**
- * Initializes a rhumb line on the ellipsoid connecting the two provided planetodetic points.
- * @param [start] - The initial planetodetic point on the path.
- * @param [end] - The final planetodetic point on the path.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the rhumb line lies.
- */
- export class EllipsoidRhumbLine {
- constructor(start?: Cartographic, end?: Cartographic, ellipsoid?: Ellipsoid);
- /**
- * Gets the ellipsoid.
- */
- readonly ellipsoid: Ellipsoid;
- /**
- * Gets the surface distance between the start and end point
- */
- readonly surfaceDistance: number;
- /**
- * Gets the initial planetodetic point on the path.
- */
- readonly start: Cartographic;
- /**
- * Gets the final planetodetic point on the path.
- */
- readonly end: Cartographic;
- /**
- * Gets the heading from the start point to the end point.
- */
- readonly heading: number;
- /**
- * Create a rhumb line using an initial position with a heading and distance.
- * @param start - The initial planetodetic point on the path.
- * @param heading - The heading in radians.
- * @param distance - The rhumb line distance between the start and end point.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the rhumb line lies.
- * @param [result] - The object in which to store the result.
- * @returns The EllipsoidRhumbLine object.
- */
- static fromStartHeadingDistance(start: Cartographic, heading: number, distance: number, ellipsoid?: Ellipsoid, result?: EllipsoidRhumbLine): EllipsoidRhumbLine;
- /**
- * Sets the start and end points of the rhumb line.
- * @param start - The initial planetodetic point on the path.
- * @param end - The final planetodetic point on the path.
- */
- setEndPoints(start: Cartographic, end: Cartographic): void;
- /**
- * Provides the location of a point at the indicated portion along the rhumb line.
- * @param fraction - The portion of the distance between the initial and final points.
- * @param [result] - The object in which to store the result.
- * @returns The location of the point along the rhumb line.
- */
- interpolateUsingFraction(fraction: number, result?: Cartographic): Cartographic;
- /**
- * Provides the location of a point at the indicated distance along the rhumb line.
- * @param distance - The distance from the inital point to the point of interest along the rhumbLine.
- * @param [result] - The object in which to store the result.
- * @returns The location of the point along the rhumb line.
- */
- interpolateUsingSurfaceDistance(distance: number, result?: Cartographic): Cartographic;
- /**
- * Provides the location of a point at the indicated longitude along the rhumb line.
- * If the longitude is outside the range of start and end points, the first intersection with the longitude from the start point in the direction of the heading is returned. This follows the spiral property of a rhumb line.
- * @param intersectionLongitude - The longitude, in radians, at which to find the intersection point from the starting point using the heading.
- * @param [result] - The object in which to store the result.
- * @returns The location of the intersection point along the rhumb line, undefined if there is no intersection or infinite intersections.
- */
- findIntersectionWithLongitude(intersectionLongitude: number, result?: Cartographic): Cartographic;
- /**
- * Provides the location of a point at the indicated latitude along the rhumb line.
- * If the latitude is outside the range of start and end points, the first intersection with the latitude from that start point in the direction of the heading is returned. This follows the spiral property of a rhumb line.
- * @param intersectionLatitude - The latitude, in radians, at which to find the intersection point from the starting point using the heading.
- * @param [result] - The object in which to store the result.
- * @returns The location of the intersection point along the rhumb line, undefined if there is no intersection or infinite intersections.
- */
- findIntersectionWithLatitude(intersectionLatitude: number, result?: Cartographic): Cartographic;
- }
- /**
- * A plane tangent to the provided ellipsoid at the provided origin.
- * If origin is not on the surface of the ellipsoid, it's surface projection will be used.
- * If origin is at the center of the ellipsoid, an exception will be thrown.
- * @param origin - The point on the surface of the ellipsoid where the tangent plane touches.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid to use.
- */
- export class EllipsoidTangentPlane {
- constructor(origin: Cartesian3, ellipsoid?: Ellipsoid);
- /**
- * Gets the ellipsoid.
- */
- ellipsoid: Ellipsoid;
- /**
- * Gets the origin.
- */
- origin: Cartesian3;
- /**
- * Gets the plane which is tangent to the ellipsoid.
- */
- readonly plane: Plane;
- /**
- * Gets the local X-axis (east) of the tangent plane.
- */
- readonly xAxis: Cartesian3;
- /**
- * Gets the local Y-axis (north) of the tangent plane.
- */
- readonly yAxis: Cartesian3;
- /**
- * Gets the local Z-axis (up) of the tangent plane.
- */
- readonly zAxis: Cartesian3;
- /**
- * Creates a new instance from the provided ellipsoid and the center
- * point of the provided Cartesians.
- * @param cartesians - The list of positions surrounding the center point.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid to use.
- * @returns The new instance of EllipsoidTangentPlane.
- */
- static fromPoints(cartesians: Cartesian3[], ellipsoid?: Ellipsoid): EllipsoidTangentPlane;
- /**
- * Computes the projection of the provided 3D position onto the 2D plane, radially outward from the {@link EllipsoidTangentPlane.ellipsoid} coordinate system origin.
- * @param cartesian - The point to project.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if none was provided. Undefined if there is no intersection point
- */
- projectPointOntoPlane(cartesian: Cartesian3, result?: Cartesian2): Cartesian2;
- /**
- * Computes the projection of the provided 3D positions onto the 2D plane (where possible), radially outward from the global origin.
- * The resulting array may be shorter than the input array - if a single projection is impossible it will not be included.
- * @param cartesians - The array of points to project.
- * @param [result] - The array of Cartesian2 instances onto which to store results.
- * @returns The modified result parameter or a new array of Cartesian2 instances if none was provided.
- */
- projectPointsOntoPlane(cartesians: Cartesian3[], result?: Cartesian2[]): Cartesian2[];
- /**
- * Computes the projection of the provided 3D position onto the 2D plane, along the plane normal.
- * @param cartesian - The point to project.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian2 instance if none was provided.
- */
- projectPointToNearestOnPlane(cartesian: Cartesian3, result?: Cartesian2): Cartesian2;
- /**
- * Computes the projection of the provided 3D positions onto the 2D plane, along the plane normal.
- * @param cartesians - The array of points to project.
- * @param [result] - The array of Cartesian2 instances onto which to store results.
- * @returns The modified result parameter or a new array of Cartesian2 instances if none was provided. This will have the same length as <code>cartesians</code>.
- */
- projectPointsToNearestOnPlane(cartesians: Cartesian3[], result?: Cartesian2[]): Cartesian2[];
-
- projectPointOntoEllipsoid(cartesian: Cartesian2, result?: Cartesian3): Cartesian3;
-
- projectPointsOntoEllipsoid(cartesians: Cartesian2[], result?: Cartesian3[]): Cartesian3[];
- }
- export class EllipsoidTerrainProvider {
- constructor(options?: {
- tilingScheme?: TilingScheme;
- ellipsoid?: Ellipsoid;
- });
-
- readonly errorEvent: Event;
-
- readonly credit: Credit;
-
- readonly tilingScheme: GeographicTilingScheme;
-
- readonly ready: boolean;
-
- readonly readyPromise: Promise<boolean>;
-
- readonly hasWaterMask: boolean;
-
- readonly hasVertexNormals: boolean;
-
- readonly availability: TileAvailability;
-
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
-
- getLevelMaximumGeometricError(level: number): number;
-
- getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
-
- loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
- }
- export class Event {
- constructor();
- /**
- * The number of listeners currently subscribed to the event.
- */
- readonly numberOfListeners: number;
- /**
- * Registers a callback function to be executed whenever the event is raised.
- * An optional scope can be provided to serve as the <code>this</code> pointer
- * in which the function will execute.
- * @param listener - The function to be executed when the event is raised.
- * @param [scope] - An optional object scope to serve as the <code>this</code>
- * pointer in which the listener function will execute.
- * @returns A function that will remove this event listener when invoked.
- */
- addEventListener(listener: (...params: any[]) => any, scope?: any): Event.RemoveCallback;
- /**
- * Unregisters a previously registered callback.
- * @param listener - The function to be unregistered.
- * @param [scope] - The scope that was originally passed to addEventListener.
- * @returns <code>true</code> if the listener was removed; <code>false</code> if the listener and scope are not registered with the event.
- */
- removeEventListener(listener: (...params: any[]) => any, scope?: any): boolean;
- /**
- * Raises the event by calling each registered listener with all supplied arguments.
- * @param arguments - This method takes any number of parameters and passes them through to the listener functions.
- */
- raiseEvent(...arguments: any[]): void;
- }
- export namespace Event {
-
- type RemoveCallback = () => void;
- }
- export class EventHelper {
- constructor();
- /**
- * Adds a listener to an event, and records the registration to be cleaned up later.
- * @param event - The event to attach to.
- * @param listener - The function to be executed when the event is raised.
- * @param [scope] - An optional object scope to serve as the <code>this</code>
- * pointer in which the listener function will execute.
- * @returns A function that will remove this event listener when invoked.
- */
- add(event: Event, listener: (...params: any[]) => any, scope?: any): EventHelper.RemoveCallback;
- /**
- * Unregisters all previously added listeners.
- */
- removeAll(): void;
- }
- export namespace EventHelper {
-
- type RemoveCallback = () => void;
- }
- export enum ExtrapolationType {
-
- NONE = 0,
-
- HOLD = 1,
-
- EXTRAPOLATE = 2
- }
- export namespace FeatureDetection {
-
- function supportsBasis(scene: Scene): boolean;
-
- function supportsFullscreen(): boolean;
-
- function supportsTypedArrays(): boolean;
-
- function supportsBigInt64Array(): boolean;
-
- function supportsBigUint64Array(): boolean;
-
- function supportsBigInt(): boolean;
-
- function supportsWebWorkers(): boolean;
-
- function supportsWebAssembly(): boolean;
- }
- export class FrustumGeometry {
- constructor(options: {
- frustum: PerspectiveFrustum | OrthographicFrustum;
- origin: Cartesian3;
- orientation: Quaternion;
- vertexFormat?: VertexFormat;
- });
-
- packedLength: number;
-
- static pack(value: FrustumGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: FrustumGeometry): void;
-
- static createGeometry(frustumGeometry: FrustumGeometry): Geometry | undefined;
- }
- export class FrustumOutlineGeometry {
- constructor(options: {
- frustum: PerspectiveFrustum | OrthographicFrustum;
- origin: Cartesian3;
- orientation: Quaternion;
- });
-
- packedLength: number;
-
- static pack(value: FrustumOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: FrustumOutlineGeometry): void;
-
- static createGeometry(frustumGeometry: FrustumOutlineGeometry): Geometry | undefined;
- }
- export namespace Fullscreen {
-
- const element: any;
-
- const changeEventName: string;
-
- const errorEventName: string;
-
- const enabled: boolean;
-
- const fullscreen: boolean;
-
- function supportsFullscreen(): boolean;
-
- function requestFullscreen(element: any, vrDevice?: any): void;
-
- function exitFullscreen(): void;
- }
- export enum GeocodeType {
-
- SEARCH = 0,
-
- AUTOCOMPLETE = 1
- }
- export namespace GeocoderService {
-
- type Result = {
- displayName: string;
- destination: Rectangle | Cartesian3;
- };
- }
- export class GeocoderService {
- constructor();
- /**
- * @param query - The query to be sent to the geocoder service
- * @param [type = GeocodeType.SEARCH] - The type of geocode to perform.
- */
- geocode(query: string, type?: GeocodeType): Promise<GeocoderService.Result[]>;
- }
- /**
- * A simple map projection where longitude and latitude are linearly mapped to X and Y by multiplying
- * them by the {@link Ellipsoid#maximumRadius}. This projection
- * is commonly known as geographic, equirectangular, equidistant cylindrical, or plate carrée. It
- * is also known as EPSG:4326.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid.
- */
- export class GeographicProjection {
- constructor(ellipsoid?: Ellipsoid);
- /**
- * Gets the {@link Ellipsoid}.
- */
- readonly ellipsoid: Ellipsoid;
- /**
- * Projects a set of {@link Cartographic} coordinates, in radians, to map coordinates, in meters.
- * X and Y are the longitude and latitude, respectively, multiplied by the maximum radius of the
- * ellipsoid. Z is the unmodified height.
- * @param cartographic - The coordinates to project.
- * @param [result] - An instance into which to copy the result. If this parameter is
- * undefined, a new instance is created and returned.
- * @returns The projected coordinates. If the result parameter is not undefined, the
- * coordinates are copied there and that instance is returned. Otherwise, a new instance is
- * created and returned.
- */
- project(cartographic: Cartographic, result?: Cartesian3): Cartesian3;
- /**
- * Unprojects a set of projected {@link Cartesian3} coordinates, in meters, to {@link Cartographic}
- * coordinates, in radians. Longitude and Latitude are the X and Y coordinates, respectively,
- * divided by the maximum radius of the ellipsoid. Height is the unmodified Z coordinate.
- * @param cartesian - The Cartesian position to unproject with height (z) in meters.
- * @param [result] - An instance into which to copy the result. If this parameter is
- * undefined, a new instance is created and returned.
- * @returns The unprojected coordinates. If the result parameter is not undefined, the
- * coordinates are copied there and that instance is returned. Otherwise, a new instance is
- * created and returned.
- */
- unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic;
- }
- /**
- * A tiling scheme for geometry referenced to a simple {@link GeographicProjection} where
- * longitude and latitude are directly mapped to X and Y. This projection is commonly
- * known as geographic, equirectangular, equidistant cylindrical, or plate carrée.
- * @param [options] - Object with the following properties:
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid whose surface is being tiled. Defaults to
- * the WGS84 ellipsoid.
- * @param [options.rectangle = Rectangle.MAX_VALUE] - The rectangle, in radians, covered by the tiling scheme.
- * @param [options.numberOfLevelZeroTilesX = 2] - The number of tiles in the X direction at level zero of
- * the tile tree.
- * @param [options.numberOfLevelZeroTilesY = 1] - The number of tiles in the Y direction at level zero of
- * the tile tree.
- */
- export class GeographicTilingScheme {
- constructor(options?: {
- ellipsoid?: Ellipsoid;
- rectangle?: Rectangle;
- numberOfLevelZeroTilesX?: number;
- numberOfLevelZeroTilesY?: number;
- });
- /**
- * Gets the ellipsoid that is tiled by this tiling scheme.
- */
- ellipsoid: Ellipsoid;
- /**
- * Gets the rectangle, in radians, covered by this tiling scheme.
- */
- rectangle: Rectangle;
- /**
- * Gets the map projection used by this tiling scheme.
- */
- projection: MapProjection;
- /**
- * Gets the total number of tiles in the X direction at a specified level-of-detail.
- * @param level - The level-of-detail.
- * @returns The number of tiles in the X direction at the given level.
- */
- getNumberOfXTilesAtLevel(level: number): number;
- /**
- * Gets the total number of tiles in the Y direction at a specified level-of-detail.
- * @param level - The level-of-detail.
- * @returns The number of tiles in the Y direction at the given level.
- */
- getNumberOfYTilesAtLevel(level: number): number;
- /**
- * Transforms a rectangle specified in geodetic radians to the native coordinate system
- * of this tiling scheme.
- * @param rectangle - The rectangle to transform.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the native rectangle if 'result'
- * is undefined.
- */
- rectangleToNativeRectangle(rectangle: Rectangle, result?: Rectangle): Rectangle;
- /**
- * Converts tile x, y coordinates and level to a rectangle expressed in the native coordinates
- * of the tiling scheme.
- * @param x - The integer x coordinate of the tile.
- * @param y - The integer y coordinate of the tile.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the rectangle
- * if 'result' is undefined.
- */
- tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle;
- /**
- * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
- * @param x - The integer x coordinate of the tile.
- * @param y - The integer y coordinate of the tile.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the rectangle
- * if 'result' is undefined.
- */
- tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle;
- /**
- * Calculates the tile x, y coordinates of the tile containing
- * a given cartographic position.
- * @param position - The position.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the tile x, y coordinates
- * if 'result' is undefined.
- */
- positionToTileXY(position: Cartographic, level: number, result?: Cartesian2): Cartesian2;
- }
- /**
- * A geometry representation with attributes forming vertices and optional index data
- * defining primitives. Geometries and an {@link Appearance}, which describes the shading,
- * can be assigned to a {@link Primitive} for visualization. A <code>Primitive</code> can
- * be created from many heterogeneous - in many cases - geometries for performance.
- * <p>
- * Geometries can be transformed and optimized using functions in {@link GeometryPipeline}.
- * </p>
- * @example
- *
- * var positions = new Float64Array([
- * 0.0, 0.0, 0.0,
- * 7500000.0, 0.0, 0.0,
- * 0.0, 7500000.0, 0.0
- * ]);
- *
- * var geometry = new Cesium.Geometry({
- * attributes : {
- * position : new Cesium.GeometryAttribute({
- * componentDatatype : Cesium.ComponentDatatype.DOUBLE,
- * componentsPerAttribute : 3,
- * values : positions
- * })
- * },
- * indices : new Uint16Array([0, 1, 1, 2, 2, 0]),
- * primitiveType : Cesium.PrimitiveType.LINES,
- * boundingSphere : Cesium.BoundingSphere.fromVertices(positions)
- * });
- * @param options - Object with the following properties:
- * @param options.attributes - Attributes, which make up the geometry's vertices.
- * @param [options.primitiveType = PrimitiveType.TRIANGLES] - The type of primitives in the geometry.
- * @param [options.indices] - Optional index data that determines the primitives in the geometry.
- * @param [options.boundingSphere] - An optional bounding sphere that fully enclosed the geometry.
- */
- export class Geometry {
- constructor(options: {
- attributes: GeometryAttributes;
- primitiveType?: PrimitiveType;
- indices?: Uint16Array | Uint32Array;
- boundingSphere?: BoundingSphere;
- });
- /**
- * Attributes, which make up the geometry's vertices. Each property in this object corresponds to a
- * {@link GeometryAttribute} containing the attribute's data.
- * <p>
- * Attributes are always stored non-interleaved in a Geometry.
- * </p>
- * <p>
- * There are reserved attribute names with well-known semantics. The following attributes
- * are created by a Geometry (depending on the provided {@link VertexFormat}.
- * <ul>
- * <li><code>position</code> - 3D vertex position. 64-bit floating-point (for precision). 3 components per attribute. See {@link VertexFormat#position}.</li>
- * <li><code>normal</code> - Normal (normalized), commonly used for lighting. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#normal}.</li>
- * <li><code>st</code> - 2D texture coordinate. 32-bit floating-point. 2 components per attribute. See {@link VertexFormat#st}.</li>
- * <li><code>bitangent</code> - Bitangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#bitangent}.</li>
- * <li><code>tangent</code> - Tangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#tangent}.</li>
- * </ul>
- * </p>
- * <p>
- * The following attribute names are generally not created by a Geometry, but are added
- * to a Geometry by a {@link Primitive} or {@link GeometryPipeline} functions to prepare
- * the geometry for rendering.
- * <ul>
- * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
- * <li><code>position3DLow</code> - Low 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
- * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
- * <li><code>position2DLow</code> - Low 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>
- * <li><code>color</code> - RGBA color (normalized) usually from {@link GeometryInstance#color}. 32-bit floating-point. 4 components per attribute.</li>
- * <li><code>pickColor</code> - RGBA color used for picking. 32-bit floating-point. 4 components per attribute.</li>
- * </ul>
- * </p>
- * @example
- * geometry.attributes.position = new Cesium.GeometryAttribute({
- * componentDatatype : Cesium.ComponentDatatype.FLOAT,
- * componentsPerAttribute : 3,
- * values : new Float32Array(0)
- * });
- */
- attributes: GeometryAttributes;
- /**
- * Optional index data that - along with {@link Geometry#primitiveType} -
- * determines the primitives in the geometry.
- */
- indices: any[];
- /**
- * The type of primitives in the geometry. This is most often {@link PrimitiveType.TRIANGLES},
- * but can varying based on the specific geometry.
- */
- primitiveType: PrimitiveType;
- /**
- * An optional bounding sphere that fully encloses the geometry. This is
- * commonly used for culling.
- */
- boundingSphere: BoundingSphere;
- /**
- * Computes the number of vertices in a geometry. The runtime is linear with
- * respect to the number of attributes in a vertex, not the number of vertices.
- * @example
- * var numVertices = Cesium.Geometry.computeNumberOfVertices(geometry);
- * @param geometry - The geometry.
- * @returns The number of vertices in the geometry.
- */
- static computeNumberOfVertices(geometry: Geometry): number;
- }
- /**
- * Values and type information for geometry attributes. A {@link Geometry}
- * generally contains one or more attributes. All attributes together form
- * the geometry's vertices.
- * @example
- * var geometry = new Cesium.Geometry({
- * attributes : {
- * position : new Cesium.GeometryAttribute({
- * componentDatatype : Cesium.ComponentDatatype.FLOAT,
- * componentsPerAttribute : 3,
- * values : new Float32Array([
- * 0.0, 0.0, 0.0,
- * 7500000.0, 0.0, 0.0,
- * 0.0, 7500000.0, 0.0
- * ])
- * })
- * },
- * primitiveType : Cesium.PrimitiveType.LINE_LOOP
- * });
- * @param [options] - Object with the following properties:
- * @param [options.componentDatatype] - The datatype of each component in the attribute, e.g., individual elements in values.
- * @param [options.componentsPerAttribute] - A number between 1 and 4 that defines the number of components in an attributes.
- * @param [options.normalize = false] - When <code>true</code> and <code>componentDatatype</code> is an integer format, indicate that the components should be mapped to the range [0, 1] (unsigned) or [-1, 1] (signed) when they are accessed as floating-point for rendering.
- * @param [options.values] - The values for the attributes stored in a typed array.
- */
- export class GeometryAttribute {
- constructor(options?: {
- componentDatatype?: ComponentDatatype;
- componentsPerAttribute?: number;
- normalize?: boolean;
- values?: number[] | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
- });
- /**
- * The datatype of each component in the attribute, e.g., individual elements in
- * {@link GeometryAttribute#values}.
- */
- componentDatatype: ComponentDatatype;
- /**
- * A number between 1 and 4 that defines the number of components in an attributes.
- * For example, a position attribute with x, y, and z components would have 3 as
- * shown in the code example.
- * @example
- * attribute.componentDatatype = Cesium.ComponentDatatype.FLOAT;
- * attribute.componentsPerAttribute = 3;
- * attribute.values = new Float32Array([
- * 0.0, 0.0, 0.0,
- * 7500000.0, 0.0, 0.0,
- * 0.0, 7500000.0, 0.0
- * ]);
- */
- componentsPerAttribute: number;
- /**
- * When <code>true</code> and <code>componentDatatype</code> is an integer format,
- * indicate that the components should be mapped to the range [0, 1] (unsigned)
- * or [-1, 1] (signed) when they are accessed as floating-point for rendering.
- * <p>
- * This is commonly used when storing colors using {@link ComponentDatatype.UNSIGNED_BYTE}.
- * </p>
- * @example
- * attribute.componentDatatype = Cesium.ComponentDatatype.UNSIGNED_BYTE;
- * attribute.componentsPerAttribute = 4;
- * attribute.normalize = true;
- * attribute.values = new Uint8Array([
- * Cesium.Color.floatToByte(color.red),
- * Cesium.Color.floatToByte(color.green),
- * Cesium.Color.floatToByte(color.blue),
- * Cesium.Color.floatToByte(color.alpha)
- * ]);
- */
- normalize: boolean;
-
- values: number[] | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
- }
- export class GeometryAttributes {
- constructor();
- /**
- * The 3D position attribute.
- * <p>
- * 64-bit floating-point (for precision). 3 components per attribute.
- * </p>
- */
- position: GeometryAttribute;
- /**
- * The normal attribute (normalized), which is commonly used for lighting.
- * <p>
- * 32-bit floating-point. 3 components per attribute.
- * </p>
- */
- normal: GeometryAttribute;
- /**
- * The 2D texture coordinate attribute.
- * <p>
- * 32-bit floating-point. 2 components per attribute
- * </p>
- */
- st: GeometryAttribute;
- /**
- * The bitangent attribute (normalized), which is used for tangent-space effects like bump mapping.
- * <p>
- * 32-bit floating-point. 3 components per attribute.
- * </p>
- */
- bitangent: GeometryAttribute;
- /**
- * The tangent attribute (normalized), which is used for tangent-space effects like bump mapping.
- * <p>
- * 32-bit floating-point. 3 components per attribute.
- * </p>
- */
- tangent: GeometryAttribute;
- /**
- * The color attribute.
- * <p>
- * 8-bit unsigned integer. 4 components per attribute.
- * </p>
- */
- color: GeometryAttribute;
- }
- /**
- * Base class for all geometry creation utility classes that can be passed to {@link GeometryInstance}
- * for asynchronous geometry creation.
- */
- export class GeometryFactory {
- constructor();
- /**
- * Returns a geometry.
- * @param geometryFactory - A description of the circle.
- * @returns The computed vertices and indices.
- */
- static createGeometry(geometryFactory: GeometryFactory): Geometry | undefined;
- }
- /**
- * Geometry instancing allows one {@link Geometry} object to be positions in several
- * different locations and colored uniquely. For example, one {@link BoxGeometry} can
- * be instanced several times, each with a different <code>modelMatrix</code> to change
- * its position, rotation, and scale.
- * @example
- * // Create geometry for a box, and two instances that refer to it.
- * // One instance positions the box on the bottom and colored aqua.
- * // The other instance positions the box on the top and color white.
- * var geometry = Cesium.BoxGeometry.fromDimensions({
- * vertexFormat : Cesium.VertexFormat.POSITION_AND_NORMAL,
- * dimensions : new Cesium.Cartesian3(1000000.0, 1000000.0, 500000.0)
- * });
- * var instanceBottom = new Cesium.GeometryInstance({
- * geometry : geometry,
- * modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
- * Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883)), new Cesium.Cartesian3(0.0, 0.0, 1000000.0), new Cesium.Matrix4()),
- * attributes : {
- * color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
- * },
- * id : 'bottom'
- * });
- * var instanceTop = new Cesium.GeometryInstance({
- * geometry : geometry,
- * modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
- * Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883)), new Cesium.Cartesian3(0.0, 0.0, 3000000.0), new Cesium.Matrix4()),
- * attributes : {
- * color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
- * },
- * id : 'top'
- * });
- * @param options - Object with the following properties:
- * @param options.geometry - The geometry to instance.
- * @param [options.modelMatrix = Matrix4.IDENTITY] - The model matrix that transforms to transform the geometry from model to world coordinates.
- * @param [options.id] - A user-defined object to return when the instance is picked with {@link Scene#pick} or get/set per-instance attributes with {@link Primitive#getGeometryInstanceAttributes}.
- * @param [options.attributes] - Per-instance attributes like a show or color attribute shown in the example below.
- */
- export class GeometryInstance {
- constructor(options: {
- geometry: Geometry | GeometryFactory;
- modelMatrix?: Matrix4;
- id?: any;
- attributes?: any;
- });
- /**
- * The geometry being instanced.
- */
- geometry: Geometry;
- /**
- * The 4x4 transformation matrix that transforms the geometry from model to world coordinates.
- * When this is the identity matrix, the geometry is drawn in world coordinates, i.e., Earth's WGS84 coordinates.
- * Local reference frames can be used by providing a different transformation matrix, like that returned
- * by {@link Transforms.eastNorthUpToFixedFrame}.
- */
- modelMatrix: Matrix4;
- /**
- * User-defined object returned when the instance is picked or used to get/set per-instance attributes.
- */
- id: any;
- /**
- * Per-instance attributes like {@link ColorGeometryInstanceAttribute} or {@link ShowGeometryInstanceAttribute}.
- * {@link Geometry} attributes varying per vertex; these attributes are constant for the entire instance.
- */
- attributes: any;
- }
- /**
- * Values and type information for per-instance geometry attributes.
- * @example
- * var instance = new Cesium.GeometryInstance({
- * geometry : Cesium.BoxGeometry.fromDimensions({
- * dimensions : new Cesium.Cartesian3(1000000.0, 1000000.0, 500000.0)
- * }),
- * modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
- * Cesium.Cartesian3.fromDegrees(0.0, 0.0)), new Cesium.Cartesian3(0.0, 0.0, 1000000.0), new Cesium.Matrix4()),
- * id : 'box',
- * attributes : {
- * color : new Cesium.GeometryInstanceAttribute({
- * componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
- * componentsPerAttribute : 4,
- * normalize : true,
- * value : [255, 255, 0, 255]
- * })
- * }
- * });
- * @param options - Object with the following properties:
- * @param options.componentDatatype - The datatype of each component in the attribute, e.g., individual elements in values.
- * @param options.componentsPerAttribute - A number between 1 and 4 that defines the number of components in an attributes.
- * @param [options.normalize = false] - When <code>true</code> and <code>componentDatatype</code> is an integer format, indicate that the components should be mapped to the range [0, 1] (unsigned) or [-1, 1] (signed) when they are accessed as floating-point for rendering.
- * @param options.value - The value for the attribute.
- */
- export class GeometryInstanceAttribute {
- constructor(options: {
- componentDatatype: ComponentDatatype;
- componentsPerAttribute: number;
- normalize?: boolean;
- value: number[];
- });
- /**
- * The datatype of each component in the attribute, e.g., individual elements in
- * {@link GeometryInstanceAttribute#value}.
- */
- componentDatatype: ComponentDatatype;
- /**
- * A number between 1 and 4 that defines the number of components in an attributes.
- * For example, a position attribute with x, y, and z components would have 3 as
- * shown in the code example.
- * @example
- * show : new Cesium.GeometryInstanceAttribute({
- * componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
- * componentsPerAttribute : 1,
- * normalize : true,
- * value : [1.0]
- * })
- */
- componentsPerAttribute: number;
- /**
- * When <code>true</code> and <code>componentDatatype</code> is an integer format,
- * indicate that the components should be mapped to the range [0, 1] (unsigned)
- * or [-1, 1] (signed) when they are accessed as floating-point for rendering.
- * <p>
- * This is commonly used when storing colors using {@link ComponentDatatype.UNSIGNED_BYTE}.
- * </p>
- * @example
- * attribute.componentDatatype = Cesium.ComponentDatatype.UNSIGNED_BYTE;
- * attribute.componentsPerAttribute = 4;
- * attribute.normalize = true;
- * attribute.value = [
- * Cesium.Color.floatToByte(color.red),
- * Cesium.Color.floatToByte(color.green),
- * Cesium.Color.floatToByte(color.blue),
- * Cesium.Color.floatToByte(color.alpha)
- * ];
- */
- normalize: boolean;
- /**
- * The values for the attributes stored in a typed array. In the code example,
- * every three elements in <code>values</code> defines one attributes since
- * <code>componentsPerAttribute</code> is 3.
- * @example
- * show : new Cesium.GeometryInstanceAttribute({
- * componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
- * componentsPerAttribute : 1,
- * normalize : true,
- * value : [1.0]
- * })
- */
- value: number[];
- }
- /**
- * Content pipeline functions for geometries.
- */
- export namespace GeometryPipeline {
- /**
- * Converts a geometry's triangle indices to line indices. If the geometry has an <code>indices</code>
- * and its <code>primitiveType</code> is <code>TRIANGLES</code>, <code>TRIANGLE_STRIP</code>,
- * <code>TRIANGLE_FAN</code>, it is converted to <code>LINES</code>; otherwise, the geometry is not changed.
- * <p>
- * This is commonly used to create a wireframe geometry for visual debugging.
- * </p>
- * @example
- * geometry = Cesium.GeometryPipeline.toWireframe(geometry);
- * @param geometry - The geometry to modify.
- * @returns The modified <code>geometry</code> argument, with its triangle indices converted to lines.
- */
- function toWireframe(geometry: Geometry): Geometry;
- /**
- * Creates a new {@link Geometry} with <code>LINES</code> representing the provided
- * attribute (<code>attributeName</code>) for the provided geometry. This is used to
- * visualize vector attributes like normals, tangents, and bitangents.
- * @example
- * var geometry = Cesium.GeometryPipeline.createLineSegmentsForVectors(instance.geometry, 'bitangent', 100000.0);
- * @param geometry - The <code>Geometry</code> instance with the attribute.
- * @param [attributeName = 'normal'] - The name of the attribute.
- * @param [length = 10000.0] - The length of each line segment in meters. This can be negative to point the vector in the opposite direction.
- * @returns A new <code>Geometry</code> instance with line segments for the vector.
- */
- function createLineSegmentsForVectors(geometry: Geometry, attributeName?: string, length?: number): Geometry;
- /**
- * Creates an object that maps attribute names to unique locations (indices)
- * for matching vertex attributes and shader programs.
- * @example
- * var attributeLocations = Cesium.GeometryPipeline.createAttributeLocations(geometry);
- *
- *
- *
- *
- *
- * @param geometry - The geometry, which is not modified, to create the object for.
- * @returns An object with attribute name / index pairs.
- */
- function createAttributeLocations(geometry: Geometry): any;
- /**
- * Reorders a geometry's attributes and <code>indices</code> to achieve better performance from the GPU's pre-vertex-shader cache.
- * @example
- * geometry = Cesium.GeometryPipeline.reorderForPreVertexCache(geometry);
- * @param geometry - The geometry to modify.
- * @returns The modified <code>geometry</code> argument, with its attributes and indices reordered for the GPU's pre-vertex-shader cache.
- */
- function reorderForPreVertexCache(geometry: Geometry): Geometry;
-
- function reorderForPostVertexCache(geometry: Geometry, cacheCapacity?: number): Geometry;
-
- function fitToUnsignedShortIndices(geometry: Geometry): Geometry[];
-
- function projectTo2D(geometry: Geometry, attributeName: string, attributeName3D: string, attributeName2D: string, projection?: any): Geometry;
-
- function encodeAttribute(geometry: Geometry, attributeName: string, attributeHighName: string, attributeLowName: string): Geometry;
-
- function transformToWorldCoordinates(instance: GeometryInstance): GeometryInstance;
-
- function computeNormal(geometry: Geometry): Geometry;
-
- function computeTangentAndBitangent(geometry: Geometry): Geometry;
-
- function compressVertices(geometry: Geometry): Geometry;
- }
- export class GoogleEarthEnterpriseMetadata {
- constructor(resourceOrUrl: Resource | string);
- /**
- * True if imagery is available.
- */
- imageryPresent: boolean;
- /**
- * True if imagery is sent as a protocol buffer, false if sent as plain images. If undefined we will try both.
- */
- protoImagery: boolean;
- /**
- * True if terrain is available.
- */
- terrainPresent: boolean;
- /**
- * Exponent used to compute constant to calculate negative height values.
- */
- negativeAltitudeExponentBias: number;
- /**
- * Threshold where any numbers smaller are actually negative values. They are multiplied by -2^negativeAltitudeExponentBias.
- */
- negativeAltitudeThreshold: number;
- /**
- * Dictionary of provider id to copyright strings.
- */
- providers: any;
- /**
- * Key used to decode packets
- */
- key: ArrayBuffer;
- /**
- * Gets the name of the Google Earth Enterprise server.
- */
- readonly url: string;
- /**
- * Gets the proxy used for metadata requests.
- */
- readonly proxy: Proxy;
- /**
- * Gets the resource used for metadata requests.
- */
- readonly resource: Resource;
- /**
- * Gets a promise that resolves to true when the metadata is ready for use.
- */
- readonly readyPromise: Promise<boolean>;
- /**
- * Converts a tiles (x, y, level) position into a quadkey used to request an image
- * from a Google Earth Enterprise server.
- * @param x - The tile's x coordinate.
- * @param y - The tile's y coordinate.
- * @param level - The tile's zoom level.
- */
- static tileXYToQuadKey(x: number, y: number, level: number): void;
- /**
- * Converts a tile's quadkey used to request an image from a Google Earth Enterprise server into the
- * (x, y, level) position.
- * @param quadkey - The tile's quad key
- */
- static quadKeyToTileXY(quadkey: string): void;
- }
- /**
- * Terrain data for a single tile from a Google Earth Enterprise server.
- * @example
- * var buffer = ...
- * var childTileMask = ...
- * var terrainData = new Cesium.GoogleEarthEnterpriseTerrainData({
- * buffer : heightBuffer,
- * childTileMask : childTileMask
- * });
- * @param options - Object with the following properties:
- * @param options.buffer - The buffer containing terrain data.
- * @param options.negativeAltitudeExponentBias - Multiplier for negative terrain heights that are encoded as very small positive values.
- * @param options.negativeElevationThreshold - Threshold for negative values
- * @param [options.childTileMask = 15] - A bit mask indicating which of this tile's four children exist.
- * If a child's bit is set, geometry will be requested for that tile as well when it
- * is needed. If the bit is cleared, the child tile is not requested and geometry is
- * instead upsampled from the parent. The bit values are as follows:
- * <table>
- * <tr><th>Bit Position</th><th>Bit Value</th><th>Child Tile</th></tr>
- * <tr><td>0</td><td>1</td><td>Southwest</td></tr>
- * <tr><td>1</td><td>2</td><td>Southeast</td></tr>
- * <tr><td>2</td><td>4</td><td>Northeast</td></tr>
- * <tr><td>3</td><td>8</td><td>Northwest</td></tr>
- * </table>
- * @param [options.createdByUpsampling = false] - True if this instance was created by upsampling another instance;
- * otherwise, false.
- * @param [options.credits] - Array of credits for this tile.
- */
- export class GoogleEarthEnterpriseTerrainData {
- constructor(options: {
- buffer: ArrayBuffer;
- negativeAltitudeExponentBias: number;
- negativeElevationThreshold: number;
- childTileMask?: number;
- createdByUpsampling?: boolean;
- credits?: Credit[];
- });
-
- credits: Credit[];
-
- waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement;
-
- interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number;
-
- upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise<HeightmapTerrainData> | undefined;
-
- isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean;
-
- wasCreatedByUpsampling(): boolean;
- }
- export class GoogleEarthEnterpriseTerrainProvider {
- constructor(options: {
- url: Resource | string;
- metadata: GoogleEarthEnterpriseMetadata;
- ellipsoid?: Ellipsoid;
- credit?: Credit | string;
- });
-
- readonly url: string;
-
- readonly proxy: Proxy;
-
- readonly tilingScheme: TilingScheme;
-
- readonly errorEvent: Event;
-
- readonly ready: boolean;
-
- readonly readyPromise: Promise<boolean>;
-
- readonly credit: Credit;
-
- readonly hasWaterMask: boolean;
-
- readonly hasVertexNormals: boolean;
-
- readonly availability: TileAvailability;
-
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
-
- getLevelMaximumGeometricError(level: number): number;
-
- getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
-
- loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
- }
- export class GregorianDate {
- constructor(year?: number, month?: number, day?: number, hour?: number, minute?: number, second?: number, millisecond?: number, isLeapSecond?: boolean);
- /**
- * Gets or sets the year as a whole number.
- */
- year: number;
- /**
- * Gets or sets the month as a whole number with range [1, 12].
- */
- month: number;
- /**
- * Gets or sets the day of the month as a whole number starting at 1.
- */
- day: number;
- /**
- * Gets or sets the hour as a whole number with range [0, 23].
- */
- hour: number;
- /**
- * Gets or sets the minute of the hour as a whole number with range [0, 59].
- */
- minute: number;
- /**
- * Gets or sets the second of the minute as a whole number with range [0, 60], with 60 representing a leap second.
- */
- second: number;
- /**
- * Gets or sets the millisecond of the second as a floating point number with range [0.0, 1000.0).
- */
- millisecond: number;
- /**
- * Gets or sets whether this time is during a leap second.
- */
- isLeapSecond: boolean;
- }
- /**
- * A description of a polyline on terrain or 3D Tiles. Only to be used with {@link GroundPolylinePrimitive}.
- * @example
- * var positions = Cesium.Cartesian3.fromDegreesArray([
- * -112.1340164450331, 36.05494287836128,
- * -112.08821010582645, 36.097804071380715,
- * -112.13296079730024, 36.168769146801104
- * ]);
- *
- * var geometry = new Cesium.GroundPolylineGeometry({
- * positions : positions
- * });
- * @param options - Options with the following properties:
- * @param options.positions - An array of {@link Cartesian3} defining the polyline's points. Heights above the ellipsoid will be ignored.
- * @param [options.width = 1.0] - The screen space width in pixels.
- * @param [options.granularity = 9999.0] - The distance interval in meters used for interpolating options.points. Defaults to 9999.0 meters. Zero indicates no interpolation.
- * @param [options.loop = false] - Whether during geometry creation a line segment will be added between the last and first line positions to make this Polyline a loop.
- * @param [options.arcType = ArcType.GEODESIC] - The type of line the polyline segments must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
- */
- export class GroundPolylineGeometry {
- constructor(options: {
- positions: Cartesian3[];
- width?: number;
- granularity?: number;
- loop?: boolean;
- arcType?: ArcType;
- });
- /**
- * The screen space width in pixels.
- */
- width: number;
- /**
- * The distance interval used for interpolating options.points. Zero indicates no interpolation.
- * Default of 9999.0 allows centimeter accuracy with 32 bit floating point.
- */
- granularity: boolean;
- /**
- * Whether during geometry creation a line segment will be added between the last and first line positions to make this Polyline a loop.
- * If the geometry has two positions this parameter will be ignored.
- */
- loop: boolean;
- /**
- * The type of path the polyline must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
- */
- arcType: ArcType;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PolygonGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- */
- static unpack(array: number[], startingIndex?: number, result?: PolygonGeometry): void;
- }
- /**
- * Defines a heading angle, pitch angle, and range in a local frame.
- * Heading is the rotation from the local north direction where a positive angle is increasing eastward.
- * Pitch is the rotation from the local xy-plane. Positive pitch angles are above the plane. Negative pitch
- * angles are below the plane. Range is the distance from the center of the frame.
- * @param [heading = 0.0] - The heading angle in radians.
- * @param [pitch = 0.0] - The pitch angle in radians.
- * @param [range = 0.0] - The distance from the center in meters.
- */
- export class HeadingPitchRange {
- constructor(heading?: number, pitch?: number, range?: number);
- /**
- * Heading is the rotation from the local north direction where a positive angle is increasing eastward.
- */
- heading: number;
- /**
- * Pitch is the rotation from the local xy-plane. Positive pitch angles
- * are above the plane. Negative pitch angles are below the plane.
- */
- pitch: number;
- /**
- * Range is the distance from the center of the local frame.
- */
- range: number;
- /**
- * Duplicates a HeadingPitchRange instance.
- * @param hpr - The HeadingPitchRange to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new HeadingPitchRange instance if one was not provided. (Returns undefined if hpr is undefined)
- */
- static clone(hpr: HeadingPitchRange, result?: HeadingPitchRange): HeadingPitchRange;
- }
- /**
- * A rotation expressed as a heading, pitch, and roll. Heading is the rotation about the
- * negative z axis. Pitch is the rotation about the negative y axis. Roll is the rotation about
- * the positive x axis.
- * @param [heading = 0.0] - The heading component in radians.
- * @param [pitch = 0.0] - The pitch component in radians.
- * @param [roll = 0.0] - The roll component in radians.
- */
- export class HeadingPitchRoll {
- constructor(heading?: number, pitch?: number, roll?: number);
- /**
- * Gets or sets the heading.
- */
- heading: number;
- /**
- * Gets or sets the pitch.
- */
- pitch: number;
- /**
- * Gets or sets the roll.
- */
- roll: number;
- /**
- * Computes the heading, pitch and roll from a quaternion (see http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles )
- * @param quaternion - The quaternion from which to retrieve heading, pitch, and roll, all expressed in radians.
- * @param [result] - The object in which to store the result. If not provided, a new instance is created and returned.
- * @returns The modified result parameter or a new HeadingPitchRoll instance if one was not provided.
- */
- static fromQuaternion(quaternion: Quaternion, result?: HeadingPitchRoll): HeadingPitchRoll;
- /**
- * Returns a new HeadingPitchRoll instance from angles given in degrees.
- * @param heading - the heading in degrees
- * @param pitch - the pitch in degrees
- * @param roll - the heading in degrees
- * @param [result] - The object in which to store the result. If not provided, a new instance is created and returned.
- * @returns A new HeadingPitchRoll instance
- */
- static fromDegrees(heading: number, pitch: number, roll: number, result?: HeadingPitchRoll): HeadingPitchRoll;
- /**
- * Duplicates a HeadingPitchRoll instance.
- * @param headingPitchRoll - The HeadingPitchRoll to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new HeadingPitchRoll instance if one was not provided. (Returns undefined if headingPitchRoll is undefined)
- */
- static clone(headingPitchRoll: HeadingPitchRoll, result?: HeadingPitchRoll): HeadingPitchRoll;
- /**
- * Compares the provided HeadingPitchRolls componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first HeadingPitchRoll.
- * @param [right] - The second HeadingPitchRoll.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: HeadingPitchRoll, right?: HeadingPitchRoll): boolean;
- /**
- * Compares the provided HeadingPitchRolls componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [left] - The first HeadingPitchRoll.
- * @param [right] - The second HeadingPitchRoll.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: HeadingPitchRoll, right?: HeadingPitchRoll, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * Duplicates this HeadingPitchRoll instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new HeadingPitchRoll instance if one was not provided.
- */
- clone(result?: HeadingPitchRoll): HeadingPitchRoll;
- /**
- * Compares this HeadingPitchRoll against the provided HeadingPitchRoll componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side HeadingPitchRoll.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: HeadingPitchRoll): boolean;
- /**
- * Compares this HeadingPitchRoll against the provided HeadingPitchRoll componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [right] - The right hand side HeadingPitchRoll.
- * @param [relativeEpsilon = 0] - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(right?: HeadingPitchRoll, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
- /**
- * Creates a string representing this HeadingPitchRoll in the format '(heading, pitch, roll)' in radians.
- * @returns A string representing the provided HeadingPitchRoll in the format '(heading, pitch, roll)'.
- */
- toString(): string;
- }
- /**
- * The encoding that is used for a heightmap
- */
- export enum HeightmapEncoding {
- /**
- * No encoding
- */
- NONE = 0,
- /**
- * LERC encoding
- */
- LERC = 1
- }
- /**
- * Terrain data for a single tile where the terrain data is represented as a heightmap. A heightmap
- * is a rectangular array of heights in row-major order from north to south and west to east.
- * @example
- * var buffer = ...
- * var heightBuffer = new Uint16Array(buffer, 0, that._heightmapWidth * that._heightmapWidth);
- * var childTileMask = new Uint8Array(buffer, heightBuffer.byteLength, 1)[0];
- * var waterMask = new Uint8Array(buffer, heightBuffer.byteLength + 1, buffer.byteLength - heightBuffer.byteLength - 1);
- * var terrainData = new Cesium.HeightmapTerrainData({
- * buffer : heightBuffer,
- * width : 65,
- * height : 65,
- * childTileMask : childTileMask,
- * waterMask : waterMask
- * });
- * @param options - Object with the following properties:
- * @param options.buffer - The buffer containing height data.
- * @param options.width - The width (longitude direction) of the heightmap, in samples.
- * @param options.height - The height (latitude direction) of the heightmap, in samples.
- * @param [options.childTileMask = 15] - A bit mask indicating which of this tile's four children exist.
- * If a child's bit is set, geometry will be requested for that tile as well when it
- * is needed. If the bit is cleared, the child tile is not requested and geometry is
- * instead upsampled from the parent. The bit values are as follows:
- * <table>
- * <tr><th>Bit Position</th><th>Bit Value</th><th>Child Tile</th></tr>
- * <tr><td>0</td><td>1</td><td>Southwest</td></tr>
- * <tr><td>1</td><td>2</td><td>Southeast</td></tr>
- * <tr><td>2</td><td>4</td><td>Northwest</td></tr>
- * <tr><td>3</td><td>8</td><td>Northeast</td></tr>
- * </table>
- * @param [options.waterMask] - The water mask included in this terrain data, if any. A water mask is a square
- * Uint8Array or image where a value of 255 indicates water and a value of 0 indicates land.
- * Values in between 0 and 255 are allowed as well to smoothly blend between land and water.
- * @param [options.structure] - An object describing the structure of the height data.
- * @param [options.structure.heightScale = 1.0] - The factor by which to multiply height samples in order to obtain
- * the height above the heightOffset, in meters. The heightOffset is added to the resulting
- * height after multiplying by the scale.
- * @param [options.structure.heightOffset = 0.0] - The offset to add to the scaled height to obtain the final
- * height in meters. The offset is added after the height sample is multiplied by the
- * heightScale.
- * @param [options.structure.elementsPerHeight = 1] - The number of elements in the buffer that make up a single height
- * sample. This is usually 1, indicating that each element is a separate height sample. If
- * it is greater than 1, that number of elements together form the height sample, which is
- * computed according to the structure.elementMultiplier and structure.isBigEndian properties.
- * @param [options.structure.stride = 1] - The number of elements to skip to get from the first element of
- * one height to the first element of the next height.
- * @param [options.structure.elementMultiplier = 256.0] - The multiplier used to compute the height value when the
- * stride property is greater than 1. For example, if the stride is 4 and the strideMultiplier
- * is 256, the height is computed as follows:
- * `height = buffer[index] + buffer[index + 1] * 256 + buffer[index + 2] * 256 * 256 + buffer[index + 3] * 256 * 256 * 256`
- * This is assuming that the isBigEndian property is false. If it is true, the order of the
- * elements is reversed.
- * @param [options.structure.isBigEndian = false] - Indicates endianness of the elements in the buffer when the
- * stride property is greater than 1. If this property is false, the first element is the
- * low-order element. If it is true, the first element is the high-order element.
- * @param [options.structure.lowestEncodedHeight] - The lowest value that can be stored in the height buffer. Any heights that are lower
- * than this value after encoding with the `heightScale` and `heightOffset` are clamped to this value. For example, if the height
- * buffer is a `Uint16Array`, this value should be 0 because a `Uint16Array` cannot store negative numbers. If this parameter is
- * not specified, no minimum value is enforced.
- * @param [options.structure.highestEncodedHeight] - The highest value that can be stored in the height buffer. Any heights that are higher
- * than this value after encoding with the `heightScale` and `heightOffset` are clamped to this value. For example, if the height
- * buffer is a `Uint16Array`, this value should be `256 * 256 - 1` or 65535 because a `Uint16Array` cannot store numbers larger
- * than 65535. If this parameter is not specified, no maximum value is enforced.
- * @param [options.encoding = HeightmapEncoding.NONE] - The encoding that is used on the buffer.
- * @param [options.createdByUpsampling = false] - True if this instance was created by upsampling another instance;
- * otherwise, false.
- */
- export class HeightmapTerrainData {
- constructor(options: {
- buffer: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
- width: number;
- height: number;
- childTileMask?: number;
- waterMask?: Uint8Array;
- structure?: {
- heightScale?: number;
- heightOffset?: number;
- elementsPerHeight?: number;
- stride?: number;
- elementMultiplier?: number;
- isBigEndian?: boolean;
- lowestEncodedHeight?: number;
- highestEncodedHeight?: number;
- };
- encoding?: HeightmapEncoding;
- createdByUpsampling?: boolean;
- });
- /**
- * An array of credits for this tile.
- */
- credits: Credit[];
- /**
- * The water mask included in this terrain data, if any. A water mask is a square
- * Uint8Array or image where a value of 255 indicates water and a value of 0 indicates land.
- * Values in between 0 and 255 are allowed as well to smoothly blend between land and water.
- */
- waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement;
- /**
- * Computes the terrain height at a specified longitude and latitude.
- * @param rectangle - The rectangle covered by this terrain data.
- * @param longitude - The longitude in radians.
- * @param latitude - The latitude in radians.
- * @returns The terrain height at the specified position. If the position
- * is outside the rectangle, this method will extrapolate the height, which is likely to be wildly
- * incorrect for positions far outside the rectangle.
- */
- interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number;
- /**
- * Upsamples this terrain data for use by a descendant tile. The resulting instance will contain a subset of the
- * height samples in this instance, interpolated if necessary.
- * @param tilingScheme - The tiling scheme of this terrain data.
- * @param thisX - The X coordinate of this tile in the tiling scheme.
- * @param thisY - The Y coordinate of this tile in the tiling scheme.
- * @param thisLevel - The level of this tile in the tiling scheme.
- * @param descendantX - The X coordinate within the tiling scheme of the descendant tile for which we are upsampling.
- * @param descendantY - The Y coordinate within the tiling scheme of the descendant tile for which we are upsampling.
- * @param descendantLevel - The level within the tiling scheme of the descendant tile for which we are upsampling.
- * @returns A promise for upsampled heightmap terrain data for the descendant tile,
- * or undefined if too many asynchronous upsample operations are in progress and the request has been
- * deferred.
- */
- upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise<HeightmapTerrainData> | undefined;
- /**
- * Determines if a given child tile is available, based on the
- * {@link HeightmapTerrainData.childTileMask}. The given child tile coordinates are assumed
- * to be one of the four children of this tile. If non-child tile coordinates are
- * given, the availability of the southeast child tile is returned.
- * @param thisX - The tile X coordinate of this (the parent) tile.
- * @param thisY - The tile Y coordinate of this (the parent) tile.
- * @param childX - The tile X coordinate of the child tile to check for availability.
- * @param childY - The tile Y coordinate of the child tile to check for availability.
- * @returns True if the child tile is available; otherwise, false.
- */
- isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean;
- /**
- * Gets a value indicating whether or not this terrain data was created by upsampling lower resolution
- * terrain data. If this value is false, the data was obtained from some other source, such
- * as by downloading it from a remote server. This method should return true for instances
- * returned from a call to {@link HeightmapTerrainData#upsample}.
- * @returns True if this instance was created by upsampling; otherwise, false.
- */
- wasCreatedByUpsampling(): boolean;
- }
- /**
- * An {@link InterpolationAlgorithm} for performing Hermite interpolation.
- */
- export namespace HermitePolynomialApproximation {
- /**
- * Given the desired degree, returns the number of data points required for interpolation.
- * @param degree - The desired degree of interpolation.
- * @param [inputOrder = 0] - The order of the inputs (0 means just the data, 1 means the data and its derivative, etc).
- * @returns The number of required data points needed for the desired degree of interpolation.
- */
- function getRequiredDataPoints(degree: number, inputOrder?: number): number;
- /**
- * Interpolates values using Hermite Polynomial Approximation.
- * @param x - The independent variable for which the dependent variables will be interpolated.
- * @param xTable - The array of independent variables to use to interpolate. The values
- * in this array must be in increasing order and the same value must not occur twice in the array.
- * @param yTable - The array of dependent variables to use to interpolate. For a set of three
- * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
- * @param yStride - The number of dependent variable values in yTable corresponding to
- * each independent variable value in xTable.
- * @param [result] - An existing array into which to store the result.
- * @returns The array of interpolated values, or the result parameter if one was provided.
- */
- function interpolateOrderZero(x: number, xTable: number[], yTable: number[], yStride: number, result?: number[]): number[];
- /**
- * Interpolates values using Hermite Polynomial Approximation.
- * @param x - The independent variable for which the dependent variables will be interpolated.
- * @param xTable - The array of independent variables to use to interpolate. The values
- * in this array must be in increasing order and the same value must not occur twice in the array.
- * @param yTable - The array of dependent variables to use to interpolate. For a set of three
- * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
- * @param yStride - The number of dependent variable values in yTable corresponding to
- * each independent variable value in xTable.
- * @param inputOrder - The number of derivatives supplied for input.
- * @param outputOrder - The number of derivatives desired for output.
- * @param [result] - An existing array into which to store the result.
- * @returns The array of interpolated values, or the result parameter if one was provided.
- */
- function interpolate(x: number, xTable: number[], yTable: number[], yStride: number, inputOrder: number, outputOrder: number, result?: number[]): number[];
- }
- /**
- * A Hermite spline is a cubic interpolating spline. Points, incoming tangents, outgoing tangents, and times
- * must be defined for each control point. The outgoing tangents are defined for points [0, n - 2] and the incoming
- * tangents are defined for points [1, n - 1]. For example, when interpolating a segment of the curve between <code>points[i]</code> and
- * <code>points[i + 1]</code>, the tangents at the points will be <code>outTangents[i]</code> and <code>inTangents[i]</code>,
- * respectively.
- * @example
- * // Create a G<sup>1</sup> continuous Hermite spline
- * var times = [ 0.0, 1.5, 3.0, 4.5, 6.0 ];
- * var spline = new Cesium.HermiteSpline({
- * times : times,
- * points : [
- * new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0),
- * new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0),
- * new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0),
- * new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0),
- * new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0)
- * ],
- * outTangents : [
- * new Cesium.Cartesian3(1125196, -161816, 270551),
- * new Cesium.Cartesian3(-996690.5, -365906.5, 184028.5),
- * new Cesium.Cartesian3(-2096917, 48379.5, -292683.5),
- * new Cesium.Cartesian3(-890902.5, 408999.5, -447115)
- * ],
- * inTangents : [
- * new Cesium.Cartesian3(-1993381, -731813, 368057),
- * new Cesium.Cartesian3(-4193834, 96759, -585367),
- * new Cesium.Cartesian3(-1781805, 817999, -894230),
- * new Cesium.Cartesian3(1165345, 112641, 47281)
- * ]
- * });
- *
- * var p0 = spline.evaluate(times[0]);
- * @param options - Object with the following properties:
- * @param options.times - An array of strictly increasing, unit-less, floating-point times at each point.
- * The values are in no way connected to the clock time. They are the parameterization for the curve.
- * @param options.points - The array of {@link Cartesian3} control points.
- * @param options.inTangents - The array of {@link Cartesian3} incoming tangents at each control point.
- * @param options.outTangents - The array of {@link Cartesian3} outgoing tangents at each control point.
- */
- export class HermiteSpline {
- constructor(options: {
- times: number[];
- points: Cartesian3[];
- inTangents: Cartesian3[];
- outTangents: Cartesian3[];
- });
- /**
- * An array of times for the control points.
- */
- readonly times: number[];
- /**
- * An array of {@link Cartesian3} control points.
- */
- readonly points: Cartesian3[];
- /**
- * An array of {@link Cartesian3} incoming tangents at each control point.
- */
- readonly inTangents: Cartesian3[];
- /**
- * An array of {@link Cartesian3} outgoing tangents at each control point.
- */
- readonly outTangents: Cartesian3[];
- /**
- * Creates a spline where the tangents at each control point are the same.
- * The curves are guaranteed to be at least in the class C<sup>1</sup>.
- * @example
- * var points = [
- * new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0),
- * new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0),
- * new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0),
- * new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0),
- * new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0)
- * ];
- *
- * // Add tangents
- * var tangents = new Array(points.length);
- * tangents[0] = new Cesium.Cartesian3(1125196, -161816, 270551);
- * var temp = new Cesium.Cartesian3();
- * for (var i = 1; i < tangents.length - 1; ++i) {
- * tangents[i] = Cesium.Cartesian3.multiplyByScalar(Cesium.Cartesian3.subtract(points[i + 1], points[i - 1], temp), 0.5, new Cesium.Cartesian3());
- * }
- * tangents[tangents.length - 1] = new Cesium.Cartesian3(1165345, 112641, 47281);
- *
- * var spline = Cesium.HermiteSpline.createC1({
- * times : times,
- * points : points,
- * tangents : tangents
- * });
- * @param options - Object with the following properties:
- * @param options.times - The array of control point times.
- * @param options.points - The array of control points.
- * @param options.tangents - The array of tangents at the control points.
- * @returns A hermite spline.
- */
- static createC1(options: {
- times: number[];
- points: Cartesian3[];
- tangents: Cartesian3[];
- }): HermiteSpline;
- /**
- * Creates a natural cubic spline. The tangents at the control points are generated
- * to create a curve in the class C<sup>2</sup>.
- * @example
- * // Create a natural cubic spline above the earth from Philadelphia to Los Angeles.
- * var spline = Cesium.HermiteSpline.createNaturalCubic({
- * times : [ 0.0, 1.5, 3.0, 4.5, 6.0 ],
- * points : [
- * new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0),
- * new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0),
- * new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0),
- * new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0),
- * new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0)
- * ]
- * });
- * @param options - Object with the following properties:
- * @param options.times - The array of control point times.
- * @param options.points - The array of control points.
- * @returns A hermite spline or a linear spline if less than 3 control points were given.
- */
- static createNaturalCubic(options: {
- times: number[];
- points: Cartesian3[];
- }): HermiteSpline | LinearSpline;
- /**
- * Creates a clamped cubic spline. The tangents at the interior control points are generated
- * to create a curve in the class C<sup>2</sup>.
- * @example
- * // Create a clamped cubic spline above the earth from Philadelphia to Los Angeles.
- * var spline = Cesium.HermiteSpline.createClampedCubic({
- * times : [ 0.0, 1.5, 3.0, 4.5, 6.0 ],
- * points : [
- * new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0),
- * new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0),
- * new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0),
- * new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0),
- * new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0)
- * ],
- * firstTangent : new Cesium.Cartesian3(1125196, -161816, 270551),
- * lastTangent : new Cesium.Cartesian3(1165345, 112641, 47281)
- * });
- * @param options - Object with the following properties:
- * @param options.times - The array of control point times.
- * @param options.points - The array of control points.
- * @param options.firstTangent - The outgoing tangent of the first control point.
- * @param options.lastTangent - The incoming tangent of the last control point.
- * @returns A hermite spline or a linear spline if less than 3 control points were given.
- */
- static createClampedCubic(options: {
- times: number[];
- points: Cartesian3[];
- firstTangent: Cartesian3;
- lastTangent: Cartesian3;
- }): HermiteSpline | LinearSpline;
- /**
- * Finds an index <code>i</code> in <code>times</code> such that the parameter
- * <code>time</code> is in the interval <code>[times[i], times[i + 1]]</code>.
- * @param time - The time.
- * @returns The index for the element at the start of the interval.
- */
- findTimeInterval(time: number): number;
- /**
- * Wraps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, wrapped around to the updated animation.
- */
- wrapTime(time: number): number;
- /**
- * Clamps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, clamped to the animation period.
- */
- clampTime(time: number): number;
- /**
- * Evaluates the curve at a given time.
- * @param time - The time at which to evaluate the curve.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of the point on the curve at the given time.
- */
- evaluate(time: number, result?: Cartesian3): Cartesian3;
- }
- /**
- * Hilbert Order helper functions.
- */
- export namespace HilbertOrder { }
- /**
- * Constants for WebGL index datatypes. These corresponds to the
- * <code>type</code> parameter of {@link http://www.khronos.org/opengles/sdk/docs/man/xhtml/glDrawElements.xml|drawElements}.
- */
- export enum IndexDatatype {
- /**
- * 8-bit unsigned byte corresponding to <code>UNSIGNED_BYTE</code> and the type
- * of an element in <code>Uint8Array</code>.
- */
- UNSIGNED_BYTE = WebGLConstants.UNSIGNED_BYTE,
- /**
- * 16-bit unsigned short corresponding to <code>UNSIGNED_SHORT</code> and the type
- * of an element in <code>Uint16Array</code>.
- */
- UNSIGNED_SHORT = WebGLConstants.UNSIGNED_SHORT,
- /**
- * 32-bit unsigned int corresponding to <code>UNSIGNED_INT</code> and the type
- * of an element in <code>Uint32Array</code>.
- */
- UNSIGNED_INT = WebGLConstants.UNSIGNED_INT
- }
- export namespace InterpolationAlgorithm {
- /**
- * Gets the name of this interpolation algorithm.
- */
- var type: string;
- /**
- * Given the desired degree, returns the number of data points required for interpolation.
- * @param degree - The desired degree of interpolation.
- * @returns The number of required data points needed for the desired degree of interpolation.
- */
- function getRequiredDataPoints(degree: number): number;
- /**
- * Performs zero order interpolation.
- * @param x - The independent variable for which the dependent variables will be interpolated.
- * @param xTable - The array of independent variables to use to interpolate. The values
- * in this array must be in increasing order and the same value must not occur twice in the array.
- * @param yTable - The array of dependent variables to use to interpolate. For a set of three
- * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
- * @param yStride - The number of dependent variable values in yTable corresponding to
- * each independent variable value in xTable.
- * @param [result] - An existing array into which to store the result.
- * @returns The array of interpolated values, or the result parameter if one was provided.
- */
- function interpolateOrderZero(x: number, xTable: number[], yTable: number[], yStride: number, result?: number[]): number[];
- /**
- * Performs higher order interpolation. Not all interpolators need to support high-order interpolation,
- * if this function remains undefined on implementing objects, interpolateOrderZero will be used instead.
- * @param x - The independent variable for which the dependent variables will be interpolated.
- * @param xTable - The array of independent variables to use to interpolate. The values
- * in this array must be in increasing order and the same value must not occur twice in the array.
- * @param yTable - The array of dependent variables to use to interpolate. For a set of three
- * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
- * @param yStride - The number of dependent variable values in yTable corresponding to
- * each independent variable value in xTable.
- * @param inputOrder - The number of derivatives supplied for input.
- * @param outputOrder - The number of derivatives desired for output.
- * @param [result] - An existing array into which to store the result.
- * @returns The array of interpolated values, or the result parameter if one was provided.
- */
- function interpolate(x: number, xTable: number[], yTable: number[], yStride: number, inputOrder: number, outputOrder: number, result?: number[]): number[];
- }
- /**
- * The interface for interpolation algorithms.
- */
- export interface InterpolationAlgorithm {
- }
- /**
- * This enumerated type is used in determining where, relative to the frustum, an
- * object is located. The object can either be fully contained within the frustum (INSIDE),
- * partially inside the frustum and partially outside (INTERSECTING), or somewhere entirely
- * outside of the frustum's 6 planes (OUTSIDE).
- */
- export enum Intersect {
- /**
- * Represents that an object is not contained within the frustum.
- */
- OUTSIDE = -1,
- /**
- * Represents that an object intersects one of the frustum's planes.
- */
- INTERSECTING = 0,
- /**
- * Represents that an object is fully within the frustum.
- */
- INSIDE = 1
- }
- /**
- * Functions for computing the intersection between geometries such as rays, planes, triangles, and ellipsoids.
- */
- export namespace IntersectionTests {
- /**
- * Computes the intersection of a ray and a plane.
- * @param ray - The ray.
- * @param plane - The plane.
- * @param [result] - The object onto which to store the result.
- * @returns The intersection point or undefined if there is no intersections.
- */
- function rayPlane(ray: Ray, plane: Plane, result?: Cartesian3): Cartesian3;
- /**
- * Computes the intersection of a ray and a triangle as a parametric distance along the input ray. The result is negative when the triangle is behind the ray.
- *
- * Implements {@link https://cadxfem.org/inf/Fast%20MinimumStorage%20RayTriangle%20Intersection.pdf|
- * Fast Minimum Storage Ray/Triangle Intersection} by Tomas Moller and Ben Trumbore.
- * @param ray - The ray.
- * @param p0 - The first vertex of the triangle.
- * @param p1 - The second vertex of the triangle.
- * @param p2 - The third vertex of the triangle.
- * @param [cullBackFaces = false] - If <code>true</code>, will only compute an intersection with the front face of the triangle
- * and return undefined for intersections with the back face.
- * @returns The intersection as a parametric distance along the ray, or undefined if there is no intersection.
- */
- function rayTriangleParametric(ray: Ray, p0: Cartesian3, p1: Cartesian3, p2: Cartesian3, cullBackFaces?: boolean): number;
- /**
- * Computes the intersection of a ray and a triangle as a Cartesian3 coordinate.
- *
- * Implements {@link https://cadxfem.org/inf/Fast%20MinimumStorage%20RayTriangle%20Intersection.pdf|
- * Fast Minimum Storage Ray/Triangle Intersection} by Tomas Moller and Ben Trumbore.
- * @param ray - The ray.
- * @param p0 - The first vertex of the triangle.
- * @param p1 - The second vertex of the triangle.
- * @param p2 - The third vertex of the triangle.
- * @param [cullBackFaces = false] - If <code>true</code>, will only compute an intersection with the front face of the triangle
- * and return undefined for intersections with the back face.
- * @param [result] - The <code>Cartesian3</code> onto which to store the result.
- * @returns The intersection point or undefined if there is no intersections.
- */
- function rayTriangle(ray: Ray, p0: Cartesian3, p1: Cartesian3, p2: Cartesian3, cullBackFaces?: boolean, result?: Cartesian3): Cartesian3;
- /**
- * Computes the intersection of a line segment and a triangle.
- * @param v0 - The an end point of the line segment.
- * @param v1 - The other end point of the line segment.
- * @param p0 - The first vertex of the triangle.
- * @param p1 - The second vertex of the triangle.
- * @param p2 - The third vertex of the triangle.
- * @param [cullBackFaces = false] - If <code>true</code>, will only compute an intersection with the front face of the triangle
- * and return undefined for intersections with the back face.
- * @param [result] - The <code>Cartesian3</code> onto which to store the result.
- * @returns The intersection point or undefined if there is no intersections.
- */
- function lineSegmentTriangle(v0: Cartesian3, v1: Cartesian3, p0: Cartesian3, p1: Cartesian3, p2: Cartesian3, cullBackFaces?: boolean, result?: Cartesian3): Cartesian3;
- /**
- * Computes the intersection points of a ray with a sphere.
- * @param ray - The ray.
- * @param sphere - The sphere.
- * @param [result] - The result onto which to store the result.
- * @returns The interval containing scalar points along the ray or undefined if there are no intersections.
- */
- function raySphere(ray: Ray, sphere: BoundingSphere, result?: Interval): Interval;
- /**
- * Computes the intersection points of a line segment with a sphere.
- * @param p0 - An end point of the line segment.
- * @param p1 - The other end point of the line segment.
- * @param sphere - The sphere.
- * @param [result] - The result onto which to store the result.
- * @returns The interval containing scalar points along the ray or undefined if there are no intersections.
- */
- function lineSegmentSphere(p0: Cartesian3, p1: Cartesian3, sphere: BoundingSphere, result?: Interval): Interval;
- /**
- * Computes the intersection points of a ray with an ellipsoid.
- * @param ray - The ray.
- * @param ellipsoid - The ellipsoid.
- * @returns The interval containing scalar points along the ray or undefined if there are no intersections.
- */
- function rayEllipsoid(ray: Ray, ellipsoid: Ellipsoid): Interval;
- /**
- * Provides the point along the ray which is nearest to the ellipsoid.
- * @param ray - The ray.
- * @param ellipsoid - The ellipsoid.
- * @returns The nearest planetodetic point on the ray.
- */
- function grazingAltitudeLocation(ray: Ray, ellipsoid: Ellipsoid): Cartesian3;
- /**
- * Computes the intersection of a line segment and a plane.
- * @example
- * var origin = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);
- * var normal = ellipsoid.geodeticSurfaceNormal(origin);
- * var plane = Cesium.Plane.fromPointNormal(origin, normal);
- *
- * var p0 = new Cesium.Cartesian3(...);
- * var p1 = new Cesium.Cartesian3(...);
- *
- * // find the intersection of the line segment from p0 to p1 and the tangent plane at origin.
- * var intersection = Cesium.IntersectionTests.lineSegmentPlane(p0, p1, plane);
- * @param endPoint0 - An end point of the line segment.
- * @param endPoint1 - The other end point of the line segment.
- * @param plane - The plane.
- * @param [result] - The object onto which to store the result.
- * @returns The intersection point or undefined if there is no intersection.
- */
- function lineSegmentPlane(endPoint0: Cartesian3, endPoint1: Cartesian3, plane: Plane, result?: Cartesian3): Cartesian3;
- /**
- * Computes the intersection of a triangle and a plane
- * @example
- * var origin = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);
- * var normal = ellipsoid.geodeticSurfaceNormal(origin);
- * var plane = Cesium.Plane.fromPointNormal(origin, normal);
- *
- * var p0 = new Cesium.Cartesian3(...);
- * var p1 = new Cesium.Cartesian3(...);
- * var p2 = new Cesium.Cartesian3(...);
- *
- * // convert the triangle composed of points (p0, p1, p2) to three triangles that don't cross the plane
- * var triangles = Cesium.IntersectionTests.trianglePlaneIntersection(p0, p1, p2, plane);
- * @param p0 - First point of the triangle
- * @param p1 - Second point of the triangle
- * @param p2 - Third point of the triangle
- * @param plane - Intersection plane
- * @returns An object with properties <code>positions</code> and <code>indices</code>, which are arrays that represent three triangles that do not cross the plane. (Undefined if no intersection exists)
- */
- function trianglePlaneIntersection(p0: Cartesian3, p1: Cartesian3, p2: Cartesian3, plane: Plane): any;
- }
- /**
- * Contains functions for operating on 2D triangles.
- */
- export namespace Intersections2D {
-
- function clipTriangleAtAxisAlignedThreshold(threshold: number, keepAbove: boolean, u0: number, u1: number, u2: number, result?: number[]): number[];
-
- function computeBarycentricCoordinates(x: number, y: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, result?: Cartesian3): Cartesian3;
-
- function computeLineSegmentLineSegmentIntersection(x00: number, y00: number, x01: number, y01: number, x10: number, y10: number, x11: number, y11: number, result?: Cartesian2): Cartesian2;
- }
- export class Interval {
- constructor(start?: number, stop?: number);
- /**
- * The beginning of the interval.
- */
- start: number;
- /**
- * The end of the interval.
- */
- stop: number;
- }
- /**
- * Default settings for accessing the Cesium ion API.
- *
- * An ion access token is only required if you are using any ion related APIs.
- * A default access token is provided for evaluation purposes only.
- * Sign up for a free ion account and get your own access token at {@link https:
- */
- export namespace Ion {
- /**
- * Gets or sets the default Cesium ion access token.
- */
- var defaultAccessToken: string;
- /**
- * Gets or sets the default Cesium ion server.
- */
- var defaultServer: string | Resource;
- }
- /**
- * Provides geocoding through Cesium ion.
- * @param options - Object with the following properties:
- * @param options.scene - The scene
- * @param [options.accessToken = Ion.defaultAccessToken] - The access token to use.
- * @param [options.server = Ion.defaultServer] - The resource to the Cesium ion API server.
- */
- export class IonGeocoderService {
- constructor(options: {
- scene: Scene;
- accessToken?: string;
- server?: string | Resource;
- });
- /**
- * @param query - The query to be sent to the geocoder service
- * @param [type = GeocodeType.SEARCH] - The type of geocode to perform.
- */
- geocode(query: string, type?: GeocodeType): Promise<GeocoderService.Result[]>;
- }
- /**
- * A {@link Resource} instance that encapsulates Cesium ion asset access.
- * This object is normally not instantiated directly, use {@link IonResource.fromAssetId}.
- * @param endpoint - The result of the Cesium ion asset endpoint service.
- * @param endpointResource - The resource used to retreive the endpoint.
- */
- export class IonResource extends Resource {
- constructor(endpoint: any, endpointResource: Resource);
- /**
- * Asynchronously creates an instance.
- * @example
- *
- * viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ url: Cesium.IonResource.fromAssetId(124624234) }));
- * @example
- *
- * Cesium.IonResource.fromAssetId(10890)
- * .then(function (resource) {
- * viewer.dataSources.add(Cesium.CzmlDataSource.load(resource));
- * });
- * @param assetId - The Cesium ion asset id.
- * @param [options] - An object with the following properties:
- * @param [options.accessToken = Ion.defaultAccessToken] - The access token to use.
- * @param [options.server = Ion.defaultServer] - The resource to the Cesium ion API server.
- * @returns A Promise to am instance representing the Cesium ion Asset.
- */
- static fromAssetId(assetId: number, options?: {
- accessToken?: string;
- server?: string | Resource;
- }): Promise<IonResource>;
- /**
- * Gets the credits required for attribution of the asset.
- */
- readonly credits: Credit[];
- /**
- * Duplicates a Resource instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Resource instance if one was not provided.
- */
- clone(result?: Resource): Resource;
- /**
- * Asynchronously loads the given image resource. Returns a promise that will resolve to
- * an {@link https:
- * {@link https:
- * @example
- *
- * resource.fetchImage().then(function(image) {
- *
- * }).otherwise(function(error) {
- *
- * });
- *
- *
- * when.all([resource1.fetchImage(), resource2.fetchImage()]).then(function(images) {
- *
- * });
- * @param [options] - An object with the following properties.
- * @param [options.preferBlob = false] - If true, we will load the image via a blob.
- * @param [options.preferImageBitmap = false] - If true, image will be decoded during fetch and an <code>ImageBitmap</code> is returned.
- * @param [options.flipY = false] - If true, image will be vertically flipped during decode. Only applies if the browser supports <code>createImageBitmap</code>.
- * @param [options.skipColorSpaceConversion = false] - If true, any custom gamma or color profiles in the image will be ignored. Only applies if the browser supports <code>createImageBitmap</code>.
- * @returns a promise that will resolve to the requested data when loaded. Returns undefined if <code>request.throttle</code> is true and the request does not have high enough priority.
- */
- fetchImage(options?: {
- preferBlob?: boolean;
- preferImageBitmap?: boolean;
- flipY?: boolean;
- skipColorSpaceConversion?: boolean;
- }): Promise<ImageBitmap> | Promise<HTMLImageElement> | undefined;
- }
- /**
- * Constants related to ISO8601 support.
- */
- export namespace Iso8601 {
- /**
- * A {@link JulianDate} representing the earliest time representable by an ISO8601 date.
- * This is equivalent to the date string '0000-01-01T00:00:00Z'
- */
- const MINIMUM_VALUE: JulianDate;
- /**
- * A {@link JulianDate} representing the latest time representable by an ISO8601 date.
- * This is equivalent to the date string '9999-12-31T24:00:00Z'
- */
- const MAXIMUM_VALUE: JulianDate;
- /**
- * A {@link TimeInterval} representing the largest interval representable by an ISO8601 interval.
- * This is equivalent to the interval string '0000-01-01T00:00:00Z/9999-12-31T24:00:00Z'
- */
- const MAXIMUM_INTERVAL: JulianDate;
- }
- /**
- * Represents an astronomical Julian date, which is the number of days since noon on January 1, -4712 (4713 BC).
- * For increased precision, this class stores the whole number part of the date and the seconds
- * part of the date in separate components. In order to be safe for arithmetic and represent
- * leap seconds, the date is always stored in the International Atomic Time standard
- * {@link TimeStandard.TAI}.
- * @param [julianDayNumber = 0.0] - The Julian Day Number representing the number of whole days. Fractional days will also be handled correctly.
- * @param [secondsOfDay = 0.0] - The number of seconds into the current Julian Day Number. Fractional seconds, negative seconds and seconds greater than a day will be handled correctly.
- * @param [timeStandard = TimeStandard.UTC] - The time standard in which the first two parameters are defined.
- */
- export class JulianDate {
- constructor(julianDayNumber?: number, secondsOfDay?: number, timeStandard?: TimeStandard);
- /**
- * Gets or sets the number of whole days.
- */
- dayNumber: number;
- /**
- * Gets or sets the number of seconds into the current day.
- */
- secondsOfDay: number;
- /**
- * Creates a new instance from a GregorianDate.
- * @param date - A GregorianDate.
- * @param [result] - An existing instance to use for the result.
- * @returns The modified result parameter or a new instance if none was provided.
- */
- static fromGregorianDate(date: GregorianDate, result?: JulianDate): JulianDate;
- /**
- * Creates a new instance from a JavaScript Date.
- * @param date - A JavaScript Date.
- * @param [result] - An existing instance to use for the result.
- * @returns The modified result parameter or a new instance if none was provided.
- */
- static fromDate(date: Date, result?: JulianDate): JulianDate;
- /**
- * Creates a new instance from a from an {@link http:
- * This method is superior to <code>Date.parse</code> because it will handle all valid formats defined by the ISO 8601
- * specification, including leap seconds and sub-millisecond times, which discarded by most JavaScript implementations.
- * @param iso8601String - An ISO 8601 date.
- * @param [result] - An existing instance to use for the result.
- * @returns The modified result parameter or a new instance if none was provided.
- */
- static fromIso8601(iso8601String: string, result?: JulianDate): JulianDate;
-
- static now(result?: JulianDate): JulianDate;
-
- static toGregorianDate(julianDate: JulianDate, result?: GregorianDate): GregorianDate;
-
- static toDate(julianDate: JulianDate): Date;
-
- static toIso8601(julianDate: JulianDate, precision?: number): string;
-
- static clone(julianDate: JulianDate, result?: JulianDate): JulianDate;
-
- static compare(left: JulianDate, right: JulianDate): number;
-
- static equals(left?: JulianDate, right?: JulianDate): boolean;
-
- static equalsEpsilon(left?: JulianDate, right?: JulianDate, epsilon?: number): boolean;
-
- static totalDays(julianDate: JulianDate): number;
-
- static secondsDifference(left: JulianDate, right: JulianDate): number;
-
- static daysDifference(left: JulianDate, right: JulianDate): number;
-
- static computeTaiMinusUtc(julianDate: JulianDate): number;
-
- static addSeconds(julianDate: JulianDate, seconds: number, result: JulianDate): JulianDate;
-
- static addMinutes(julianDate: JulianDate, minutes: number, result: JulianDate): JulianDate;
-
- static addHours(julianDate: JulianDate, hours: number, result: JulianDate): JulianDate;
-
- static addDays(julianDate: JulianDate, days: number, result: JulianDate): JulianDate;
-
- static lessThan(left: JulianDate, right: JulianDate): boolean;
-
- static lessThanOrEquals(left: JulianDate, right: JulianDate): boolean;
-
- static greaterThan(left: JulianDate, right: JulianDate): boolean;
-
- static greaterThanOrEquals(left: JulianDate, right: JulianDate): boolean;
-
- clone(result?: JulianDate): JulianDate;
-
- equals(right?: JulianDate): boolean;
-
- equalsEpsilon(right?: JulianDate, epsilon?: number): boolean;
-
- toString(): string;
-
- static leapSeconds: LeapSecond[];
- }
- export enum KeyboardEventModifier {
-
- SHIFT = 0,
-
- CTRL = 1,
-
- ALT = 2
- }
- export namespace LagrangePolynomialApproximation {
-
- function getRequiredDataPoints(degree: number): number;
-
- function interpolateOrderZero(x: number, xTable: number[], yTable: number[], yStride: number, result?: number[]): number[];
- }
- export class LeapSecond {
- constructor(date?: JulianDate, offset?: number);
- /**
- * Gets or sets the date at which this leap second occurs.
- */
- julianDate: JulianDate;
- /**
- * Gets or sets the cumulative number of seconds between the UTC and TAI time standards at the time
- * of this leap second.
- */
- offset: number;
- }
- /**
- * An {@link InterpolationAlgorithm} for performing linear interpolation.
- */
- export namespace LinearApproximation {
- /**
- * Given the desired degree, returns the number of data points required for interpolation.
- * Since linear interpolation can only generate a first degree polynomial, this function
- * always returns 2.
- * @param degree - The desired degree of interpolation.
- * @returns This function always returns 2.
- */
- function getRequiredDataPoints(degree: number): number;
- /**
- * Interpolates values using linear approximation.
- * @param x - The independent variable for which the dependent variables will be interpolated.
- * @param xTable - The array of independent variables to use to interpolate. The values
- * in this array must be in increasing order and the same value must not occur twice in the array.
- * @param yTable - The array of dependent variables to use to interpolate. For a set of three
- * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
- * @param yStride - The number of dependent variable values in yTable corresponding to
- * each independent variable value in xTable.
- * @param [result] - An existing array into which to store the result.
- * @returns The array of interpolated values, or the result parameter if one was provided.
- */
- function interpolateOrderZero(x: number, xTable: number[], yTable: number[], yStride: number, result?: number[]): number[];
- }
- /**
- * A spline that uses piecewise linear interpolation to create a curve.
- * @example
- * var times = [ 0.0, 1.5, 3.0, 4.5, 6.0 ];
- * var spline = new Cesium.LinearSpline({
- * times : times,
- * points : [
- * new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0),
- * new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0),
- * new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0),
- * new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0),
- * new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0)
- * ]
- * });
- *
- * var p0 = spline.evaluate(times[0]);
- * @param options - Object with the following properties:
- * @param options.times - An array of strictly increasing, unit-less, floating-point times at each point.
- * The values are in no way connected to the clock time. They are the parameterization for the curve.
- * @param options.points - The array of {@link Cartesian3} control points.
- */
- export class LinearSpline {
- constructor(options: {
- times: number[];
- points: Cartesian3[];
- });
- /**
- * An array of times for the control points.
- */
- readonly times: number[];
- /**
- * An array of {@link Cartesian3} control points.
- */
- readonly points: Cartesian3[];
- /**
- * Finds an index <code>i</code> in <code>times</code> such that the parameter
- * <code>time</code> is in the interval <code>[times[i], times[i + 1]]</code>.
- * @param time - The time.
- * @returns The index for the element at the start of the interval.
- */
- findTimeInterval(time: number): number;
- /**
- * Wraps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, wrapped around to the updated animation.
- */
- wrapTime(time: number): number;
- /**
- * Clamps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, clamped to the animation period.
- */
- clampTime(time: number): number;
- /**
- * Evaluates the curve at a given time.
- * @param time - The time at which to evaluate the curve.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of the point on the curve at the given time.
- */
- evaluate(time: number, result?: Cartesian3): Cartesian3;
- }
- /**
- * Defines how geodetic ellipsoid coordinates ({@link Cartographic}) project to a
- * flat map like Cesium's 2D and Columbus View modes.
- */
- export class MapProjection {
- constructor();
- /**
- * Gets the {@link Ellipsoid}.
- */
- readonly ellipsoid: Ellipsoid;
- /**
- * Projects {@link Cartographic} coordinates, in radians, to projection-specific map coordinates, in meters.
- * @param cartographic - The coordinates to project.
- * @param [result] - An instance into which to copy the result. If this parameter is
- * undefined, a new instance is created and returned.
- * @returns The projected coordinates. If the result parameter is not undefined, the
- * coordinates are copied there and that instance is returned. Otherwise, a new instance is
- * created and returned.
- */
- project(cartographic: Cartographic, result?: Cartesian3): Cartesian3;
- /**
- * Unprojects projection-specific map {@link Cartesian3} coordinates, in meters, to {@link Cartographic}
- * coordinates, in radians.
- * @param cartesian - The Cartesian position to unproject with height (z) in meters.
- * @param [result] - An instance into which to copy the result. If this parameter is
- * undefined, a new instance is created and returned.
- * @returns The unprojected coordinates. If the result parameter is not undefined, the
- * coordinates are copied there and that instance is returned. Otherwise, a new instance is
- * created and returned.
- */
- unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic;
- }
- /**
- * Math functions.
- */
- export namespace Math {
- /**
- * 0.1
- */
- const EPSILON1 = 0.1;
- /**
- * 0.01
- */
- const EPSILON2 = 0.01;
- /**
- * 0.001
- */
- const EPSILON3 = 0.001;
- /**
- * 0.0001
- */
- const EPSILON4 = 0.0001;
- /**
- * 0.00001
- */
- const EPSILON5 = 0.00001;
- /**
- * 0.000001
- */
- const EPSILON6 = 0.000001;
- /**
- * 0.0000001
- */
- const EPSILON7 = 1e-7;
- /**
- * 0.00000001
- */
- const EPSILON8 = 1e-8;
- /**
- * 0.000000001
- */
- const EPSILON9 = 1e-9;
- /**
- * 0.0000000001
- */
- const EPSILON10 = 1e-10;
- /**
- * 0.00000000001
- */
- const EPSILON11 = 1e-11;
- /**
- * 0.000000000001
- */
- const EPSILON12 = 1e-12;
- /**
- * 0.0000000000001
- */
- const EPSILON13 = 1e-13;
- /**
- * 0.00000000000001
- */
- const EPSILON14 = 1e-14;
- /**
- * 0.000000000000001
- */
- const EPSILON15 = 1e-15;
- /**
- * 0.0000000000000001
- */
- const EPSILON16 = 1e-16;
- /**
- * 0.00000000000000001
- */
- const EPSILON17 = 1e-17;
- /**
- * 0.000000000000000001
- */
- const EPSILON18 = 1e-18;
- /**
- * 0.0000000000000000001
- */
- const EPSILON19 = 1e-19;
- /**
- * 0.00000000000000000001
- */
- const EPSILON20 = 1e-20;
- /**
- * 0.000000000000000000001
- */
- const EPSILON21 = 1e-21;
- /**
- * The gravitational parameter of the Earth in meters cubed
- * per second squared as defined by the WGS84 model: 3.986004418e14
- */
- const GRAVITATIONALPARAMETER = 398600441800000;
- /**
- * Radius of the sun in meters: 6.955e8
- */
- const SOLAR_RADIUS = 695500000;
- /**
- * The mean radius of the moon, according to the "Report of the IAU/IAG Working Group on
- * Cartographic Coordinates and Rotational Elements of the Planets and satellites: 2000",
- * Celestial Mechanics 82: 83-110, 2002.
- */
- const LUNAR_RADIUS = 1737400;
- /**
- * 64 * 1024
- */
- const SIXTY_FOUR_KILOBYTES: number;
- /**
- * 4 * 1024 * 1024 * 1024
- */
- const FOUR_GIGABYTES: number;
- /**
- * Returns the sign of the value; 1 if the value is positive, -1 if the value is
- * negative, or 0 if the value is 0.
- * @param value - The value to return the sign of.
- * @returns The sign of value.
- */
- function sign(value: number): number;
- /**
- * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative.
- * This is similar to {@link Math#sign} except that returns 1.0 instead of
- * 0.0 when the input value is 0.0.
- * @param value - The value to return the sign of.
- * @returns The sign of value.
- */
- function signNotZero(value: number): number;
- /**
- * Converts a scalar value in the range [-1.0, 1.0] to a SNORM in the range [0, rangeMaximum]
- * @param value - The scalar value in the range [-1.0, 1.0]
- * @param [rangeMaximum = 255] - The maximum value in the mapped range, 255 by default.
- * @returns A SNORM value, where 0 maps to -1.0 and rangeMaximum maps to 1.0.
- */
- function toSNorm(value: number, rangeMaximum?: number): number;
- /**
- * Converts a SNORM value in the range [0, rangeMaximum] to a scalar in the range [-1.0, 1.0].
- * @param value - SNORM value in the range [0, rangeMaximum]
- * @param [rangeMaximum = 255] - The maximum value in the SNORM range, 255 by default.
- * @returns Scalar in the range [-1.0, 1.0].
- */
- function fromSNorm(value: number, rangeMaximum?: number): number;
- /**
- * Converts a scalar value in the range [rangeMinimum, rangeMaximum] to a scalar in the range [0.0, 1.0]
- * @param value - The scalar value in the range [rangeMinimum, rangeMaximum]
- * @param rangeMinimum - The minimum value in the mapped range.
- * @param rangeMaximum - The maximum value in the mapped range.
- * @returns A scalar value, where rangeMinimum maps to 0.0 and rangeMaximum maps to 1.0.
- */
- function normalize(value: number, rangeMinimum: number, rangeMaximum: number): number;
- /**
- * Returns the hyperbolic sine of a number.
- * The hyperbolic sine of <em>value</em> is defined to be
- * (<em>e<sup>x</sup> - e<sup>-x</sup></em>)/2.0
- * where <i>e</i> is Euler's number, approximately 2.71828183.
- *
- * <p>Special cases:
- * <ul>
- * <li>If the argument is NaN, then the result is NaN.</li>
- *
- * <li>If the argument is infinite, then the result is an infinity
- * with the same sign as the argument.</li>
- *
- * <li>If the argument is zero, then the result is a zero with the
- * same sign as the argument.</li>
- * </ul>
- * </p>
- * @param value - The number whose hyperbolic sine is to be returned.
- * @returns The hyperbolic sine of <code>value</code>.
- */
- function sinh(value: number): number;
- /**
- * Returns the hyperbolic cosine of a number.
- * The hyperbolic cosine of <strong>value</strong> is defined to be
- * (<em>e<sup>x</sup> + e<sup>-x</sup></em>)/2.0
- * where <i>e</i> is Euler's number, approximately 2.71828183.
- *
- * <p>Special cases:
- * <ul>
- * <li>If the argument is NaN, then the result is NaN.</li>
- *
- * <li>If the argument is infinite, then the result is positive infinity.</li>
- *
- * <li>If the argument is zero, then the result is 1.0.</li>
- * </ul>
- * </p>
- * @param value - The number whose hyperbolic cosine is to be returned.
- * @returns The hyperbolic cosine of <code>value</code>.
- */
- function cosh(value: number): number;
-
- function lerp(p: number, q: number, time: number): number;
-
- const PI: number;
-
- const ONE_OVER_PI: number;
-
- const PI_OVER_TWO: number;
-
- const PI_OVER_THREE: number;
-
- const PI_OVER_FOUR: number;
-
- const PI_OVER_SIX: number;
-
- const THREE_PI_OVER_TWO: number;
-
- const TWO_PI: number;
-
- const ONE_OVER_TWO_PI: number;
-
- const RADIANS_PER_DEGREE: number;
-
- const DEGREES_PER_RADIAN: number;
-
- const RADIANS_PER_ARCSECOND: number;
-
- function toRadians(degrees: number): number;
-
- function toDegrees(radians: number): number;
-
- function convertLongitudeRange(angle: number): number;
-
- function clampToLatitudeRange(angle: number): number;
-
- function negativePiToPi(angle: number): number;
-
- function zeroToTwoPi(angle: number): number;
-
- function mod(m: number, n: number): number;
-
- function equalsEpsilon(left: number, right: number, relativeEpsilon?: number, absoluteEpsilon?: number): boolean;
-
- function lessThan(left: number, right: number, absoluteEpsilon: number): boolean;
-
- function lessThanOrEquals(left: number, right: number, absoluteEpsilon: number): boolean;
-
- function greaterThan(left: number, right: number, absoluteEpsilon: number): boolean;
-
- function greaterThanOrEquals(left: number, right: number, absoluteEpsilon: number): boolean;
-
- function factorial(n: number): number;
-
- function incrementWrap(n?: number, maximumValue?: number, minimumValue?: number): number;
-
- function isPowerOfTwo(n: number): boolean;
-
- function nextPowerOfTwo(n: number): number;
-
- function previousPowerOfTwo(n: number): number;
-
- function clamp(value: number, min: number, max: number): number;
-
- function setRandomNumberSeed(seed: number): void;
-
- function nextRandomNumber(): number;
-
- function randomBetween(min: number, max: number): number;
-
- function acosClamped(value: number): number;
-
- function asinClamped(value: number): number;
-
- function chordLength(angle: number, radius: number): number;
-
- function logBase(number: number, base: number): number;
-
- function cbrt(number?: number): number;
-
- function log2(number: number): number;
-
- function fastApproximateAtan(x: number): number;
-
- function fastApproximateAtan2(x: number, y: number): number;
- }
- export interface Matrix2 extends ArrayLike<number> {
- }
- export class Matrix2 implements ArrayLike<number> {
- constructor(column0Row0?: number, column1Row0?: number, column0Row1?: number, column1Row1?: number);
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Matrix2, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Matrix2 instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Matrix2): Matrix2;
- /**
- * Duplicates a Matrix2 instance.
- * @param matrix - The matrix to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix2 instance if one was not provided. (Returns undefined if matrix is undefined)
- */
- static clone(matrix: Matrix2, result?: Matrix2): Matrix2;
- /**
- * Creates a Matrix2 from 4 consecutive elements in an array.
- * @example
- * // Create the Matrix2:
- * // [1.0, 2.0]
- * // [1.0, 2.0]
- *
- * var v = [1.0, 1.0, 2.0, 2.0];
- * var m = Cesium.Matrix2.fromArray(v);
- *
- * // Create same Matrix2 with using an offset into an array
- * var v2 = [0.0, 0.0, 1.0, 1.0, 2.0, 2.0];
- * var m2 = Cesium.Matrix2.fromArray(v2, 2);
- * @param array - The array whose 4 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix2 instance if one was not provided.
- */
- static fromArray(array: number[], startingIndex?: number, result?: Matrix2): Matrix2;
- /**
- * Creates a Matrix2 instance from a column-major order array.
- * @param values - The column-major order array.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix2 instance if one was not provided.
- */
- static fromColumnMajorArray(values: number[], result?: Matrix2): Matrix2;
- /**
- * Creates a Matrix2 instance from a row-major order array.
- * The resulting matrix will be in column-major order.
- * @param values - The row-major order array.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix2 instance if one was not provided.
- */
- static fromRowMajorArray(values: number[], result?: Matrix2): Matrix2;
- /**
- * Computes a Matrix2 instance representing a non-uniform scale.
- * @example
- * // Creates
- * // [7.0, 0.0]
- * // [0.0, 8.0]
- * var m = Cesium.Matrix2.fromScale(new Cesium.Cartesian2(7.0, 8.0));
- * @param scale - The x and y scale factors.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix2 instance if one was not provided.
- */
- static fromScale(scale: Cartesian2, result?: Matrix2): Matrix2;
- /**
- * Computes a Matrix2 instance representing a uniform scale.
- * @example
- * // Creates
- * // [2.0, 0.0]
- * // [0.0, 2.0]
- * var m = Cesium.Matrix2.fromUniformScale(2.0);
- * @param scale - The uniform scale factor.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix2 instance if one was not provided.
- */
- static fromUniformScale(scale: number, result?: Matrix2): Matrix2;
- /**
- * Creates a rotation matrix.
- * @example
- * // Rotate a point 45 degrees counterclockwise.
- * var p = new Cesium.Cartesian2(5, 6);
- * var m = Cesium.Matrix2.fromRotation(Cesium.Math.toRadians(45.0));
- * var rotated = Cesium.Matrix2.multiplyByVector(m, p, new Cesium.Cartesian2());
- * @param angle - The angle, in radians, of the rotation. Positive angles are counterclockwise.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix2 instance if one was not provided.
- */
- static fromRotation(angle: number, result?: Matrix2): Matrix2;
- /**
- * Creates an Array from the provided Matrix2 instance.
- * The array will be in column-major order.
- * @param matrix - The matrix to use..
- * @param [result] - The Array onto which to store the result.
- * @returns The modified Array parameter or a new Array instance if one was not provided.
- */
- static toArray(matrix: Matrix2, result?: number[]): number[];
- /**
- * Computes the array index of the element at the provided row and column.
- * @example
- * var myMatrix = new Cesium.Matrix2();
- * var column1Row0Index = Cesium.Matrix2.getElementIndex(1, 0);
- * var column1Row0 = myMatrix[column1Row0Index]
- * myMatrix[column1Row0Index] = 10.0;
- * @param row - The zero-based index of the row.
- * @param column - The zero-based index of the column.
- * @returns The index of the element at the provided row and column.
- */
- static getElementIndex(row: number, column: number): number;
- /**
- * Retrieves a copy of the matrix column at the provided index as a Cartesian2 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the column to retrieve.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getColumn(matrix: Matrix2, index: number, result: Cartesian2): Cartesian2;
- /**
- * Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian2 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the column to set.
- * @param cartesian - The Cartesian whose values will be assigned to the specified column.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setColumn(matrix: Matrix2, index: number, cartesian: Cartesian2, result: Cartesian2): Matrix2;
- /**
- * Retrieves a copy of the matrix row at the provided index as a Cartesian2 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the row to retrieve.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getRow(matrix: Matrix2, index: number, result: Cartesian2): Cartesian2;
- /**
- * Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian2 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the row to set.
- * @param cartesian - The Cartesian whose values will be assigned to the specified row.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setRow(matrix: Matrix2, index: number, cartesian: Cartesian2, result: Matrix2): Matrix2;
- /**
- * Extracts the non-uniform scale assuming the matrix is an affine transformation.
- * @param matrix - The matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getScale(matrix: Matrix2, result: Cartesian2): Cartesian2;
- /**
- * Computes the maximum scale assuming the matrix is an affine transformation.
- * The maximum scale is the maximum length of the column vectors.
- * @param matrix - The matrix.
- * @returns The maximum scale.
- */
- static getMaximumScale(matrix: Matrix2): number;
- /**
- * Computes the product of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiply(left: Matrix2, right: Matrix2, result: Matrix2): Matrix2;
- /**
- * Computes the sum of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static add(left: Matrix2, right: Matrix2, result: Matrix2): Matrix2;
- /**
- * Computes the difference of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static subtract(left: Matrix2, right: Matrix2, result: Matrix2): Matrix2;
- /**
- * Computes the product of a matrix and a column vector.
- * @param matrix - The matrix.
- * @param cartesian - The column.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByVector(matrix: Matrix2, cartesian: Cartesian2, result: Cartesian2): Cartesian2;
- /**
- * Computes the product of a matrix and a scalar.
- * @param matrix - The matrix.
- * @param scalar - The number to multiply by.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScalar(matrix: Matrix2, scalar: number, result: Matrix2): Matrix2;
- /**
- * Computes the product of a matrix times a (non-uniform) scale, as if the scale were a scale matrix.
- * @example
- * // Instead of Cesium.Matrix2.multiply(m, Cesium.Matrix2.fromScale(scale), m);
- * Cesium.Matrix2.multiplyByScale(m, scale, m);
- * @param matrix - The matrix on the left-hand side.
- * @param scale - The non-uniform scale on the right-hand side.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScale(matrix: Matrix2, scale: Cartesian2, result: Matrix2): Matrix2;
- /**
- * Creates a negated copy of the provided matrix.
- * @param matrix - The matrix to negate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static negate(matrix: Matrix2, result: Matrix2): Matrix2;
- /**
- * Computes the transpose of the provided matrix.
- * @param matrix - The matrix to transpose.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static transpose(matrix: Matrix2, result: Matrix2): Matrix2;
- /**
- * Computes a matrix, which contains the absolute (unsigned) values of the provided matrix's elements.
- * @param matrix - The matrix with signed elements.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static abs(matrix: Matrix2, result: Matrix2): Matrix2;
- /**
- * Compares the provided matrices componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first matrix.
- * @param [right] - The second matrix.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: Matrix2, right?: Matrix2): boolean;
- /**
- * Compares the provided matrices componentwise and returns
- * <code>true</code> if they are within the provided epsilon,
- * <code>false</code> otherwise.
- * @param [left] - The first matrix.
- * @param [right] - The second matrix.
- * @param [epsilon = 0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: Matrix2, right?: Matrix2, epsilon?: number): boolean;
- /**
- * An immutable Matrix2 instance initialized to the identity matrix.
- */
- static readonly IDENTITY: Matrix2;
- /**
- * An immutable Matrix2 instance initialized to the zero matrix.
- */
- static readonly ZERO: Matrix2;
- /**
- * The index into Matrix2 for column 0, row 0.
- * @example
- * var matrix = new Cesium.Matrix2();
- * matrix[Cesium.Matrix2.COLUMN0ROW0] = 5.0; // set column 0, row 0 to 5.0
- */
- static readonly COLUMN0ROW0: number;
- /**
- * The index into Matrix2 for column 0, row 1.
- * @example
- * var matrix = new Cesium.Matrix2();
- * matrix[Cesium.Matrix2.COLUMN0ROW1] = 5.0; // set column 0, row 1 to 5.0
- */
- static readonly COLUMN0ROW1: number;
- /**
- * The index into Matrix2 for column 1, row 0.
- * @example
- * var matrix = new Cesium.Matrix2();
- * matrix[Cesium.Matrix2.COLUMN1ROW0] = 5.0; // set column 1, row 0 to 5.0
- */
- static readonly COLUMN1ROW0: number;
- /**
- * The index into Matrix2 for column 1, row 1.
- * @example
- * var matrix = new Cesium.Matrix2();
- * matrix[Cesium.Matrix2.COLUMN1ROW1] = 5.0; // set column 1, row 1 to 5.0
- */
- static readonly COLUMN1ROW1: number;
- /**
- * Gets the number of items in the collection.
- */
- length: number;
- /**
- * Duplicates the provided Matrix2 instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix2 instance if one was not provided.
- */
- clone(result?: Matrix2): Matrix2;
- /**
- * Compares this matrix to the provided matrix componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side matrix.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: Matrix2): boolean;
- /**
- * Compares this matrix to the provided matrix componentwise and returns
- * <code>true</code> if they are within the provided epsilon,
- * <code>false</code> otherwise.
- * @param [right] - The right hand side matrix.
- * @param [epsilon = 0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(right?: Matrix2, epsilon?: number): boolean;
- /**
- * Creates a string representing this Matrix with each row being
- * on a separate line and in the format '(column0, column1)'.
- * @returns A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1)'.
- */
- toString(): string;
- }
- export interface Matrix3 extends ArrayLike<number> {
- }
- export class Matrix3 implements ArrayLike<number> {
- constructor(column0Row0?: number, column1Row0?: number, column2Row0?: number, column0Row1?: number, column1Row1?: number, column2Row1?: number, column0Row2?: number, column1Row2?: number, column2Row2?: number);
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Matrix3, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Matrix3 instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Matrix3): Matrix3;
- /**
- * Duplicates a Matrix3 instance.
- * @param matrix - The matrix to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix3 instance if one was not provided. (Returns undefined if matrix is undefined)
- */
- static clone(matrix: Matrix3, result?: Matrix3): Matrix3;
- /**
- * Creates a Matrix3 from 9 consecutive elements in an array.
- * @example
- * // Create the Matrix3:
- * // [1.0, 2.0, 3.0]
- * // [1.0, 2.0, 3.0]
- * // [1.0, 2.0, 3.0]
- *
- * var v = [1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
- * var m = Cesium.Matrix3.fromArray(v);
- *
- * // Create same Matrix3 with using an offset into an array
- * var v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0];
- * var m2 = Cesium.Matrix3.fromArray(v2, 2);
- * @param array - The array whose 9 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix3 instance if one was not provided.
- */
- static fromArray(array: number[], startingIndex?: number, result?: Matrix3): Matrix3;
- /**
- * Creates a Matrix3 instance from a column-major order array.
- * @param values - The column-major order array.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromColumnMajorArray(values: number[], result?: Matrix3): Matrix3;
- /**
- * Creates a Matrix3 instance from a row-major order array.
- * The resulting matrix will be in column-major order.
- * @param values - The row-major order array.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromRowMajorArray(values: number[], result?: Matrix3): Matrix3;
- /**
- * Computes a 3x3 rotation matrix from the provided quaternion.
- * @param quaternion - the quaternion to use.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The 3x3 rotation matrix from this quaternion.
- */
- static fromQuaternion(quaternion: Quaternion, result?: Matrix3): Matrix3;
- /**
- * Computes a 3x3 rotation matrix from the provided headingPitchRoll. (see http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles )
- * @param headingPitchRoll - the headingPitchRoll to use.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The 3x3 rotation matrix from this headingPitchRoll.
- */
- static fromHeadingPitchRoll(headingPitchRoll: HeadingPitchRoll, result?: Matrix3): Matrix3;
- /**
- * Computes a Matrix3 instance representing a non-uniform scale.
- * @example
- * // Creates
- * // [7.0, 0.0, 0.0]
- * // [0.0, 8.0, 0.0]
- * // [0.0, 0.0, 9.0]
- * var m = Cesium.Matrix3.fromScale(new Cesium.Cartesian3(7.0, 8.0, 9.0));
- * @param scale - The x, y, and z scale factors.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromScale(scale: Cartesian3, result?: Matrix3): Matrix3;
- /**
- * Computes a Matrix3 instance representing a uniform scale.
- * @example
- * // Creates
- * // [2.0, 0.0, 0.0]
- * // [0.0, 2.0, 0.0]
- * // [0.0, 0.0, 2.0]
- * var m = Cesium.Matrix3.fromUniformScale(2.0);
- * @param scale - The uniform scale factor.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromUniformScale(scale: number, result?: Matrix3): Matrix3;
- /**
- * Computes a Matrix3 instance representing the cross product equivalent matrix of a Cartesian3 vector.
- * @example
- * // Creates
- * // [0.0, -9.0, 8.0]
- * // [9.0, 0.0, -7.0]
- * // [-8.0, 7.0, 0.0]
- * var m = Cesium.Matrix3.fromCrossProduct(new Cesium.Cartesian3(7.0, 8.0, 9.0));
- * @param vector - the vector on the left hand side of the cross product operation.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromCrossProduct(vector: Cartesian3, result?: Matrix3): Matrix3;
- /**
- * Creates a rotation matrix around the x-axis.
- * @example
- * // Rotate a point 45 degrees counterclockwise around the x-axis.
- * var p = new Cesium.Cartesian3(5, 6, 7);
- * var m = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(45.0));
- * var rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());
- * @param angle - The angle, in radians, of the rotation. Positive angles are counterclockwise.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromRotationX(angle: number, result?: Matrix3): Matrix3;
- /**
- * Creates a rotation matrix around the y-axis.
- * @example
- * // Rotate a point 45 degrees counterclockwise around the y-axis.
- * var p = new Cesium.Cartesian3(5, 6, 7);
- * var m = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(45.0));
- * var rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());
- * @param angle - The angle, in radians, of the rotation. Positive angles are counterclockwise.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromRotationY(angle: number, result?: Matrix3): Matrix3;
- /**
- * Creates a rotation matrix around the z-axis.
- * @example
- * // Rotate a point 45 degrees counterclockwise around the z-axis.
- * var p = new Cesium.Cartesian3(5, 6, 7);
- * var m = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(45.0));
- * var rotated = Cesium.Matrix3.multiplyByVector(m, p, new Cesium.Cartesian3());
- * @param angle - The angle, in radians, of the rotation. Positive angles are counterclockwise.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix3 instance if one was not provided.
- */
- static fromRotationZ(angle: number, result?: Matrix3): Matrix3;
- /**
- * Creates an Array from the provided Matrix3 instance.
- * The array will be in column-major order.
- * @param matrix - The matrix to use..
- * @param [result] - The Array onto which to store the result.
- * @returns The modified Array parameter or a new Array instance if one was not provided.
- */
- static toArray(matrix: Matrix3, result?: number[]): number[];
- /**
- * Computes the array index of the element at the provided row and column.
- * @example
- * var myMatrix = new Cesium.Matrix3();
- * var column1Row0Index = Cesium.Matrix3.getElementIndex(1, 0);
- * var column1Row0 = myMatrix[column1Row0Index]
- * myMatrix[column1Row0Index] = 10.0;
- * @param row - The zero-based index of the row.
- * @param column - The zero-based index of the column.
- * @returns The index of the element at the provided row and column.
- */
- static getElementIndex(row: number, column: number): number;
- /**
- * Retrieves a copy of the matrix column at the provided index as a Cartesian3 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the column to retrieve.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getColumn(matrix: Matrix3, index: number, result: Cartesian3): Cartesian3;
- /**
- * Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian3 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the column to set.
- * @param cartesian - The Cartesian whose values will be assigned to the specified column.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setColumn(matrix: Matrix3, index: number, cartesian: Cartesian3, result: Matrix3): Matrix3;
- /**
- * Retrieves a copy of the matrix row at the provided index as a Cartesian3 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the row to retrieve.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getRow(matrix: Matrix3, index: number, result: Cartesian3): Cartesian3;
- /**
- * Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian3 instance.
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the row to set.
- * @param cartesian - The Cartesian whose values will be assigned to the specified row.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setRow(matrix: Matrix3, index: number, cartesian: Cartesian3, result: Matrix3): Matrix3;
- /**
- * Extracts the non-uniform scale assuming the matrix is an affine transformation.
- * @param matrix - The matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getScale(matrix: Matrix3, result: Cartesian3): Cartesian3;
- /**
- * Computes the maximum scale assuming the matrix is an affine transformation.
- * The maximum scale is the maximum length of the column vectors.
- * @param matrix - The matrix.
- * @returns The maximum scale.
- */
- static getMaximumScale(matrix: Matrix3): number;
- /**
- * Computes the product of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiply(left: Matrix3, right: Matrix3, result: Matrix3): Matrix3;
- /**
- * Computes the sum of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static add(left: Matrix3, right: Matrix3, result: Matrix3): Matrix3;
- /**
- * Computes the difference of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static subtract(left: Matrix3, right: Matrix3, result: Matrix3): Matrix3;
- /**
- * Computes the product of a matrix and a column vector.
- * @param matrix - The matrix.
- * @param cartesian - The column.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByVector(matrix: Matrix3, cartesian: Cartesian3, result: Cartesian3): Cartesian3;
- /**
- * Computes the product of a matrix and a scalar.
- * @param matrix - The matrix.
- * @param scalar - The number to multiply by.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScalar(matrix: Matrix3, scalar: number, result: Matrix3): Matrix3;
- /**
- * Computes the product of a matrix times a (non-uniform) scale, as if the scale were a scale matrix.
- * @example
- * // Instead of Cesium.Matrix3.multiply(m, Cesium.Matrix3.fromScale(scale), m);
- * Cesium.Matrix3.multiplyByScale(m, scale, m);
- * @param matrix - The matrix on the left-hand side.
- * @param scale - The non-uniform scale on the right-hand side.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScale(matrix: Matrix3, scale: Cartesian3, result: Matrix3): Matrix3;
- /**
- * Creates a negated copy of the provided matrix.
- * @param matrix - The matrix to negate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static negate(matrix: Matrix3, result: Matrix3): Matrix3;
- /**
- * Computes the transpose of the provided matrix.
- * @param matrix - The matrix to transpose.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static transpose(matrix: Matrix3, result: Matrix3): Matrix3;
- /**
- * Extracts the rotation assuming the matrix is an affine transformation.
- * @param matrix - The matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter
- */
- static getRotation(matrix: Matrix3, result: Matrix3): Matrix3;
- /**
- * Computes the eigenvectors and eigenvalues of a symmetric matrix.
- * <p>
- * Returns a diagonal matrix and unitary matrix such that:
- * <code>matrix = unitary matrix * diagonal matrix * transpose(unitary matrix)</code>
- * </p>
- * <p>
- * The values along the diagonal of the diagonal matrix are the eigenvalues. The columns
- * of the unitary matrix are the corresponding eigenvectors.
- * </p>
- * @example
- * var a = //... symetric matrix
- * var result = {
- * unitary : new Cesium.Matrix3(),
- * diagonal : new Cesium.Matrix3()
- * };
- * Cesium.Matrix3.computeEigenDecomposition(a, result);
- *
- * var unitaryTranspose = Cesium.Matrix3.transpose(result.unitary, new Cesium.Matrix3());
- * var b = Cesium.Matrix3.multiply(result.unitary, result.diagonal, new Cesium.Matrix3());
- * Cesium.Matrix3.multiply(b, unitaryTranspose, b);
- *
- * var lambda = Cesium.Matrix3.getColumn(result.diagonal, 0, new Cesium.Cartesian3()).x;
- * var v = Cesium.Matrix3.getColumn(result.unitary, 0, new Cesium.Cartesian3());
- * var c = Cesium.Cartesian3.multiplyByScalar(v, lambda, new Cesium.Cartesian3());
- * @param matrix - The matrix to decompose into diagonal and unitary matrix. Expected to be symmetric.
- * @param [result] - An object with unitary and diagonal properties which are matrices onto which to store the result.
- * @returns An object with unitary and diagonal properties which are the unitary and diagonal matrices, respectively.
- */
- static computeEigenDecomposition(matrix: Matrix3, result?: any): any;
- /**
- * Computes a matrix, which contains the absolute (unsigned) values of the provided matrix's elements.
- * @param matrix - The matrix with signed elements.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static abs(matrix: Matrix3, result: Matrix3): Matrix3;
- /**
- * Computes the determinant of the provided matrix.
- * @param matrix - The matrix to use.
- * @returns The value of the determinant of the matrix.
- */
- static determinant(matrix: Matrix3): number;
- /**
- * Computes the inverse of the provided matrix.
- * @param matrix - The matrix to invert.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static inverse(matrix: Matrix3, result: Matrix3): Matrix3;
- /**
- * Computes the inverse transpose of a matrix.
- * @param matrix - The matrix to transpose and invert.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static inverseTranspose(matrix: Matrix3, result: Matrix3): Matrix3;
- /**
- * Compares the provided matrices componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first matrix.
- * @param [right] - The second matrix.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left?: Matrix3, right?: Matrix3): boolean;
- /**
- * Compares the provided matrices componentwise and returns
- * <code>true</code> if they are within the provided epsilon,
- * <code>false</code> otherwise.
- * @param [left] - The first matrix.
- * @param [right] - The second matrix.
- * @param [epsilon = 0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: Matrix3, right?: Matrix3, epsilon?: number): boolean;
- /**
- * An immutable Matrix3 instance initialized to the identity matrix.
- */
- static readonly IDENTITY: Matrix3;
- /**
- * An immutable Matrix3 instance initialized to the zero matrix.
- */
- static readonly ZERO: Matrix3;
- /**
- * The index into Matrix3 for column 0, row 0.
- */
- static readonly COLUMN0ROW0: number;
- /**
- * The index into Matrix3 for column 0, row 1.
- */
- static readonly COLUMN0ROW1: number;
- /**
- * The index into Matrix3 for column 0, row 2.
- */
- static readonly COLUMN0ROW2: number;
- /**
- * The index into Matrix3 for column 1, row 0.
- */
- static readonly COLUMN1ROW0: number;
- /**
- * The index into Matrix3 for column 1, row 1.
- */
- static readonly COLUMN1ROW1: number;
- /**
- * The index into Matrix3 for column 1, row 2.
- */
- static readonly COLUMN1ROW2: number;
- /**
- * The index into Matrix3 for column 2, row 0.
- */
- static readonly COLUMN2ROW0: number;
- /**
- * The index into Matrix3 for column 2, row 1.
- */
- static readonly COLUMN2ROW1: number;
- /**
- * The index into Matrix3 for column 2, row 2.
- */
- static readonly COLUMN2ROW2: number;
- /**
- * Gets the number of items in the collection.
- */
- length: number;
- /**
- * Duplicates the provided Matrix3 instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix3 instance if one was not provided.
- */
- clone(result?: Matrix3): Matrix3;
- /**
- * Compares this matrix to the provided matrix componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side matrix.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: Matrix3): boolean;
- /**
- * Compares this matrix to the provided matrix componentwise and returns
- * <code>true</code> if they are within the provided epsilon,
- * <code>false</code> otherwise.
- * @param [right] - The right hand side matrix.
- * @param [epsilon = 0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(right?: Matrix3, epsilon?: number): boolean;
- /**
- * Creates a string representing this Matrix with each row being
- * on a separate line and in the format '(column0, column1, column2)'.
- * @returns A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1, column2)'.
- */
- toString(): string;
- }
- export interface Matrix4 extends ArrayLike<number> {
- }
- /**
- * A 4x4 matrix, indexable as a column-major order array.
- * Constructor parameters are in row-major order for code readability.
- * @param [column0Row0 = 0.0] - The value for column 0, row 0.
- * @param [column1Row0 = 0.0] - The value for column 1, row 0.
- * @param [column2Row0 = 0.0] - The value for column 2, row 0.
- * @param [column3Row0 = 0.0] - The value for column 3, row 0.
- * @param [column0Row1 = 0.0] - The value for column 0, row 1.
- * @param [column1Row1 = 0.0] - The value for column 1, row 1.
- * @param [column2Row1 = 0.0] - The value for column 2, row 1.
- * @param [column3Row1 = 0.0] - The value for column 3, row 1.
- * @param [column0Row2 = 0.0] - The value for column 0, row 2.
- * @param [column1Row2 = 0.0] - The value for column 1, row 2.
- * @param [column2Row2 = 0.0] - The value for column 2, row 2.
- * @param [column3Row2 = 0.0] - The value for column 3, row 2.
- * @param [column0Row3 = 0.0] - The value for column 0, row 3.
- * @param [column1Row3 = 0.0] - The value for column 1, row 3.
- * @param [column2Row3 = 0.0] - The value for column 2, row 3.
- * @param [column3Row3 = 0.0] - The value for column 3, row 3.
- */
- export class Matrix4 implements ArrayLike<number> {
- constructor(column0Row0?: number, column1Row0?: number, column2Row0?: number, column3Row0?: number, column0Row1?: number, column1Row1?: number, column2Row1?: number, column3Row1?: number, column0Row2?: number, column1Row2?: number, column2Row2?: number, column3Row2?: number, column0Row3?: number, column1Row3?: number, column2Row3?: number, column3Row3?: number);
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Matrix4, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Matrix4 instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Matrix4): Matrix4;
- /**
- * Duplicates a Matrix4 instance.
- * @param matrix - The matrix to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix4 instance if one was not provided. (Returns undefined if matrix is undefined)
- */
- static clone(matrix: Matrix4, result?: Matrix4): Matrix4;
- /**
- * Creates a Matrix4 from 16 consecutive elements in an array.
- * @example
- * // Create the Matrix4:
- * // [1.0, 2.0, 3.0, 4.0]
- * // [1.0, 2.0, 3.0, 4.0]
- * // [1.0, 2.0, 3.0, 4.0]
- * // [1.0, 2.0, 3.0, 4.0]
- *
- * var v = [1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
- * var m = Cesium.Matrix4.fromArray(v);
- *
- * // Create same Matrix4 with using an offset into an array
- * var v2 = [0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0];
- * var m2 = Cesium.Matrix4.fromArray(v2, 2);
- * @param array - The array whose 16 consecutive elements correspond to the positions of the matrix. Assumes column-major order.
- * @param [startingIndex = 0] - The offset into the array of the first element, which corresponds to first column first row position in the matrix.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix4 instance if one was not provided.
- */
- static fromArray(array: number[], startingIndex?: number, result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance from a column-major order array.
- * @param values - The column-major order array.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromColumnMajorArray(values: number[], result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance from a row-major order array.
- * The resulting matrix will be in column-major order.
- * @param values - The row-major order array.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromRowMajorArray(values: number[], result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance from a Matrix3 representing the rotation
- * and a Cartesian3 representing the translation.
- * @param rotation - The upper left portion of the matrix representing the rotation.
- * @param [translation = Cartesian3.ZERO] - The upper right portion of the matrix representing the translation.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromRotationTranslation(rotation: Matrix3, translation?: Cartesian3, result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance from a translation, rotation, and scale (TRS)
- * representation with the rotation represented as a quaternion.
- * @example
- * var result = Cesium.Matrix4.fromTranslationQuaternionRotationScale(
- * new Cesium.Cartesian3(1.0, 2.0, 3.0), // translation
- * Cesium.Quaternion.IDENTITY, // rotation
- * new Cesium.Cartesian3(7.0, 8.0, 9.0), // scale
- * result);
- * @param translation - The translation transformation.
- * @param rotation - The rotation transformation.
- * @param scale - The non-uniform scale transformation.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromTranslationQuaternionRotationScale(translation: Cartesian3, rotation: Quaternion, scale: Cartesian3, result?: Matrix4): Matrix4;
- /**
- * Creates a Matrix4 instance from a {@link TranslationRotationScale} instance.
- * @param translationRotationScale - The instance.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromTranslationRotationScale(translationRotationScale: TranslationRotationScale, result?: Matrix4): Matrix4;
- /**
- * Creates a Matrix4 instance from a Cartesian3 representing the translation.
- * @param translation - The upper right portion of the matrix representing the translation.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromTranslation(translation: Cartesian3, result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance representing a non-uniform scale.
- * @example
- * // Creates
- * // [7.0, 0.0, 0.0, 0.0]
- * // [0.0, 8.0, 0.0, 0.0]
- * // [0.0, 0.0, 9.0, 0.0]
- * // [0.0, 0.0, 0.0, 1.0]
- * var m = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(7.0, 8.0, 9.0));
- * @param scale - The x, y, and z scale factors.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromScale(scale: Cartesian3, result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance representing a uniform scale.
- * @example
- * // Creates
- * // [2.0, 0.0, 0.0, 0.0]
- * // [0.0, 2.0, 0.0, 0.0]
- * // [0.0, 0.0, 2.0, 0.0]
- * // [0.0, 0.0, 0.0, 1.0]
- * var m = Cesium.Matrix4.fromUniformScale(2.0);
- * @param scale - The uniform scale factor.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromUniformScale(scale: number, result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance from a Camera.
- * @param camera - The camera to use.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new Matrix4 instance if one was not provided.
- */
- static fromCamera(camera: Camera, result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance representing a perspective transformation matrix.
- * @param fovY - The field of view along the Y axis in radians.
- * @param aspectRatio - The aspect ratio.
- * @param near - The distance to the near plane in meters.
- * @param far - The distance to the far plane in meters.
- * @param result - The object in which the result will be stored.
- * @returns The modified result parameter.
- */
- static computePerspectiveFieldOfView(fovY: number, aspectRatio: number, near: number, far: number, result: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance representing an orthographic transformation matrix.
- * @param left - The number of meters to the left of the camera that will be in view.
- * @param right - The number of meters to the right of the camera that will be in view.
- * @param bottom - The number of meters below of the camera that will be in view.
- * @param top - The number of meters above of the camera that will be in view.
- * @param near - The distance to the near plane in meters.
- * @param far - The distance to the far plane in meters.
- * @param result - The object in which the result will be stored.
- * @returns The modified result parameter.
- */
- static computeOrthographicOffCenter(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance representing an off center perspective transformation.
- * @param left - The number of meters to the left of the camera that will be in view.
- * @param right - The number of meters to the right of the camera that will be in view.
- * @param bottom - The number of meters below of the camera that will be in view.
- * @param top - The number of meters above of the camera that will be in view.
- * @param near - The distance to the near plane in meters.
- * @param far - The distance to the far plane in meters.
- * @param result - The object in which the result will be stored.
- * @returns The modified result parameter.
- */
- static computePerspectiveOffCenter(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance representing an infinite off center perspective transformation.
- * @param left - The number of meters to the left of the camera that will be in view.
- * @param right - The number of meters to the right of the camera that will be in view.
- * @param bottom - The number of meters below of the camera that will be in view.
- * @param top - The number of meters above of the camera that will be in view.
- * @param near - The distance to the near plane in meters.
- * @param result - The object in which the result will be stored.
- * @returns The modified result parameter.
- */
- static computeInfinitePerspectiveOffCenter(left: number, right: number, bottom: number, top: number, near: number, result: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance that transforms from normalized device coordinates to window coordinates.
- * @example
- * // Create viewport transformation using an explicit viewport and depth range.
- * var m = Cesium.Matrix4.computeViewportTransformation({
- * x : 0.0,
- * y : 0.0,
- * width : 1024.0,
- * height : 768.0
- * }, 0.0, 1.0, new Cesium.Matrix4());
- * @param [viewport = { x : 0.0, y : 0.0, width : 0.0, height : 0.0 }] - The viewport's corners as shown in Example 1.
- * @param [nearDepthRange = 0.0] - The near plane distance in window coordinates.
- * @param [farDepthRange = 1.0] - The far plane distance in window coordinates.
- * @param [result] - The object in which the result will be stored.
- * @returns The modified result parameter.
- */
- static computeViewportTransformation(viewport?: any, nearDepthRange?: number, farDepthRange?: number, result?: Matrix4): Matrix4;
- /**
- * Computes a Matrix4 instance that transforms from world space to view space.
- * @param position - The position of the camera.
- * @param direction - The forward direction.
- * @param up - The up direction.
- * @param right - The right direction.
- * @param result - The object in which the result will be stored.
- * @returns The modified result parameter.
- */
- static computeView(position: Cartesian3, direction: Cartesian3, up: Cartesian3, right: Cartesian3, result: Matrix4): Matrix4;
- /**
- * Computes an Array from the provided Matrix4 instance.
- * The array will be in column-major order.
- * @example
- *
- *
- *
- *
- *
- * var a = Cesium.Matrix4.toArray(m);
- *
- *
- *
- * @param matrix - The matrix to use..
- * @param [result] - The Array onto which to store the result.
- * @returns The modified Array parameter or a new Array instance if one was not provided.
- */
- static toArray(matrix: Matrix4, result?: number[]): number[];
- /**
- * Computes the array index of the element at the provided row and column.
- * @example
- * var myMatrix = new Cesium.Matrix4();
- * var column1Row0Index = Cesium.Matrix4.getElementIndex(1, 0);
- * var column1Row0 = myMatrix[column1Row0Index];
- * myMatrix[column1Row0Index] = 10.0;
- * @param row - The zero-based index of the row.
- * @param column - The zero-based index of the column.
- * @returns The index of the element at the provided row and column.
- */
- static getElementIndex(row: number, column: number): number;
- /**
- * Retrieves a copy of the matrix column at the provided index as a Cartesian4 instance.
- * @example
- *
- *
- *
- *
- *
- *
- *
- * var a = Cesium.Matrix4.getColumn(m, 2, new Cesium.Cartesian4());
- * @example
- *
- * var a = new Cesium.Cartesian4();
- * Cesium.Matrix4.getColumn(m, 2, a);
- *
- *
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the column to retrieve.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getColumn(matrix: Matrix4, index: number, result: Cartesian4): Cartesian4;
- /**
- * Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian4 instance.
- * @example
- *
- *
- *
- *
- *
- *
- * var a = Cesium.Matrix4.setColumn(m, 2, new Cesium.Cartesian4(99.0, 98.0, 97.0, 96.0), new Cesium.Matrix4());
- *
- *
- *
- *
- *
- *
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the column to set.
- * @param cartesian - The Cartesian whose values will be assigned to the specified column.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setColumn(matrix: Matrix4, index: number, cartesian: Cartesian4, result: Matrix4): Matrix4;
- /**
- * Computes a new matrix that replaces the translation in the rightmost column of the provided
- * matrix with the provided translation. This assumes the matrix is an affine transformation.
- * @param matrix - The matrix to use.
- * @param translation - The translation that replaces the translation of the provided matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setTranslation(matrix: Matrix4, translation: Cartesian3, result: Matrix4): Matrix4;
- /**
- * Computes a new matrix that replaces the scale with the provided scale.
- * This assumes the matrix is an affine transformation.
- * @param matrix - The matrix to use.
- * @param scale - The scale that replaces the scale of the provided matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setScale(matrix: Matrix4, scale: Cartesian3, result: Matrix4): Matrix4;
- /**
- * Retrieves a copy of the matrix row at the provided index as a Cartesian4 instance.
- * @example
- *
- *
- *
- *
- *
- *
- *
- * var a = Cesium.Matrix4.getRow(m, 2, new Cesium.Cartesian4());
- * @example
- *
- * var a = new Cesium.Cartesian4();
- * Cesium.Matrix4.getRow(m, 2, a);
- *
- *
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the row to retrieve.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static getRow(matrix: Matrix4, index: number, result: Cartesian4): Cartesian4;
- /**
- * Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian4 instance.
- * @example
- *
- *
- *
- *
- *
- *
- * var a = Cesium.Matrix4.setRow(m, 2, new Cesium.Cartesian4(99.0, 98.0, 97.0, 96.0), new Cesium.Matrix4());
- *
- *
- *
- *
- *
- *
- * @param matrix - The matrix to use.
- * @param index - The zero-based index of the row to set.
- * @param cartesian - The Cartesian whose values will be assigned to the specified row.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static setRow(matrix: Matrix4, index: number, cartesian: Cartesian4, result: Matrix4): Matrix4;
- /**
- * Extracts the non-uniform scale assuming the matrix is an affine transformation.
- * @param matrix - The matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter
- */
- static getScale(matrix: Matrix4, result: Cartesian3): Cartesian3;
- /**
- * Computes the maximum scale assuming the matrix is an affine transformation.
- * The maximum scale is the maximum length of the column vectors in the upper-left
- * 3x3 matrix.
- * @param matrix - The matrix.
- * @returns The maximum scale.
- */
- static getMaximumScale(matrix: Matrix4): number;
- /**
- * Computes the product of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiply(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4;
- /**
- * Computes the sum of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static add(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4;
- /**
- * Computes the difference of two matrices.
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static subtract(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4;
- /**
- * Computes the product of two matrices assuming the matrices are affine transformation matrices,
- * where the upper left 3x3 elements are any matrix, and
- * the upper three elements in the fourth column are the translation.
- * The bottom row is assumed to be [0, 0, 0, 1].
- * The matrix is not verified to be in the proper form.
- * This method is faster than computing the product for general 4x4
- * matrices using {@link Matrix4.multiply}.
- * @example
- * var m1 = new Cesium.Matrix4(1.0, 6.0, 7.0, 0.0, 2.0, 5.0, 8.0, 0.0, 3.0, 4.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0);
- * var m2 = Cesium.Transforms.eastNorthUpToFixedFrame(new Cesium.Cartesian3(1.0, 1.0, 1.0));
- * var m3 = Cesium.Matrix4.multiplyTransformation(m1, m2, new Cesium.Matrix4());
- * @param left - The first matrix.
- * @param right - The second matrix.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyTransformation(left: Matrix4, right: Matrix4, result: Matrix4): Matrix4;
- /**
- * Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
- * by a 3x3 rotation matrix. This is an optimization
- * for <code>Matrix4.multiply(m, Matrix4.fromRotationTranslation(rotation), m);</code> with less allocations and arithmetic operations.
- * @example
- *
- * Cesium.Matrix4.multiplyByMatrix3(m, rotation, m);
- * @param matrix - The matrix on the left-hand side.
- * @param rotation - The 3x3 rotation matrix on the right-hand side.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByMatrix3(matrix: Matrix4, rotation: Matrix3, result: Matrix4): Matrix4;
- /**
- * Multiplies a transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
- * by an implicit translation matrix defined by a {@link Cartesian3}. This is an optimization
- * for <code>Matrix4.multiply(m, Matrix4.fromTranslation(position), m);</code> with less allocations and arithmetic operations.
- * @example
- *
- * Cesium.Matrix4.multiplyByTranslation(m, position, m);
- * @param matrix - The matrix on the left-hand side.
- * @param translation - The translation on the right-hand side.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByTranslation(matrix: Matrix4, translation: Cartesian3, result: Matrix4): Matrix4;
- /**
- * Multiplies an affine transformation matrix (with a bottom row of <code>[0.0, 0.0, 0.0, 1.0]</code>)
- * by an implicit uniform scale matrix. This is an optimization
- * for <code>Matrix4.multiply(m, Matrix4.fromUniformScale(scale), m);</code>, where
- * <code>m</code> must be an affine matrix.
- * This function performs fewer allocations and arithmetic operations.
- * @example
- * // Instead of Cesium.Matrix4.multiply(m, Cesium.Matrix4.fromUniformScale(scale), m);
- * Cesium.Matrix4.multiplyByUniformScale(m, scale, m);
- * @param matrix - The affine matrix on the left-hand side.
- * @param scale - The uniform scale on the right-hand side.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByUniformScale(matrix: Matrix4, scale: number, result: Matrix4): Matrix4;
-
- static multiplyByScale(matrix: Matrix4, scale: Cartesian3, result: Matrix4): Matrix4;
-
- static multiplyByVector(matrix: Matrix4, cartesian: Cartesian4, result: Cartesian4): Cartesian4;
-
- static multiplyByPointAsVector(matrix: Matrix4, cartesian: Cartesian3, result: Cartesian3): Cartesian3;
-
- static multiplyByPoint(matrix: Matrix4, cartesian: Cartesian3, result: Cartesian3): Cartesian3;
-
- static multiplyByScalar(matrix: Matrix4, scalar: number, result: Matrix4): Matrix4;
-
- static negate(matrix: Matrix4, result: Matrix4): Matrix4;
-
- static transpose(matrix: Matrix4, result: Matrix4): Matrix4;
-
- static abs(matrix: Matrix4, result: Matrix4): Matrix4;
-
- static equals(left?: Matrix4, right?: Matrix4): boolean;
-
- static equalsEpsilon(left?: Matrix4, right?: Matrix4, epsilon?: number): boolean;
-
- static getTranslation(matrix: Matrix4, result: Cartesian3): Cartesian3;
-
- static getMatrix3(matrix: Matrix4, result: Matrix3): Matrix3;
-
- static inverse(matrix: Matrix4, result: Matrix4): Matrix4;
-
- static inverseTransformation(matrix: Matrix4, result: Matrix4): Matrix4;
-
- static inverseTranspose(matrix: Matrix4, result: Matrix4): Matrix4;
-
- static readonly IDENTITY: Matrix4;
-
- static readonly ZERO: Matrix4;
-
- static readonly COLUMN0ROW0: number;
-
- static readonly COLUMN0ROW1: number;
-
- static readonly COLUMN0ROW2: number;
-
- static readonly COLUMN0ROW3: number;
-
- static readonly COLUMN1ROW0: number;
-
- static readonly COLUMN1ROW1: number;
-
- static readonly COLUMN1ROW2: number;
-
- static readonly COLUMN1ROW3: number;
-
- static readonly COLUMN2ROW0: number;
-
- static readonly COLUMN2ROW1: number;
-
- static readonly COLUMN2ROW2: number;
-
- static readonly COLUMN2ROW3: number;
-
- static readonly COLUMN3ROW0: number;
-
- static readonly COLUMN3ROW1: number;
-
- static readonly COLUMN3ROW2: number;
-
- static readonly COLUMN3ROW3: number;
-
- length: number;
-
- clone(result?: Matrix4): Matrix4;
-
- equals(right?: Matrix4): boolean;
-
- equalsEpsilon(right?: Matrix4, epsilon?: number): boolean;
-
- toString(): string;
- }
- export class NearFarScalar {
- constructor(near?: number, nearValue?: number, far?: number, farValue?: number);
- /**
- * The lower bound of the camera range.
- */
- near: number;
- /**
- * The value at the lower bound of the camera range.
- */
- nearValue: number;
- /**
- * The upper bound of the camera range.
- */
- far: number;
- /**
- * The value at the upper bound of the camera range.
- */
- farValue: number;
- /**
- * Duplicates a NearFarScalar instance.
- * @param nearFarScalar - The NearFarScalar to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new NearFarScalar instance if one was not provided. (Returns undefined if nearFarScalar is undefined)
- */
- static clone(nearFarScalar: NearFarScalar, result?: NearFarScalar): NearFarScalar;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: NearFarScalar, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new NearFarScalar instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: NearFarScalar): NearFarScalar;
- /**
- * Compares the provided NearFarScalar and returns <code>true</code> if they are equal,
- * <code>false</code> otherwise.
- * @param [left] - The first NearFarScalar.
- * @param [right] - The second NearFarScalar.
- * @returns <code>true</code> if left and right are equal; otherwise <code>false</code>.
- */
- static equals(left?: NearFarScalar, right?: NearFarScalar): boolean;
- /**
- * Duplicates this instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new NearFarScalar instance if one was not provided.
- */
- clone(result?: NearFarScalar): NearFarScalar;
- /**
- * Compares this instance to the provided NearFarScalar and returns <code>true</code> if they are equal,
- * <code>false</code> otherwise.
- * @param [right] - The right hand side NearFarScalar.
- * @returns <code>true</code> if left and right are equal; otherwise <code>false</code>.
- */
- equals(right?: NearFarScalar): boolean;
- }
- /**
- * Creates an Occluder derived from an object's position and radius, as well as the camera position.
- * The occluder can be used to determine whether or not other objects are visible or hidden behind the
- * visible horizon defined by the occluder and camera position.
- * @example
- * // Construct an occluder one unit away from the origin with a radius of one.
- * var cameraPosition = Cesium.Cartesian3.ZERO;
- * var occluderBoundingSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1), 1);
- * var occluder = new Cesium.Occluder(occluderBoundingSphere, cameraPosition);
- * @param occluderBoundingSphere - The bounding sphere surrounding the occluder.
- * @param cameraPosition - The coordinate of the viewer/camera.
- */
- export class Occluder {
- constructor(occluderBoundingSphere: BoundingSphere, cameraPosition: Cartesian3);
- /**
- * The position of the occluder.
- */
- position: Cartesian3;
- /**
- * The radius of the occluder.
- */
- radius: number;
- /**
- * The position of the camera.
- */
- cameraPosition: Cartesian3;
- /**
- * Creates an occluder from a bounding sphere and the camera position.
- * @param occluderBoundingSphere - The bounding sphere surrounding the occluder.
- * @param cameraPosition - The coordinate of the viewer/camera.
- * @param [result] - The object onto which to store the result.
- * @returns The occluder derived from an object's position and radius, as well as the camera position.
- */
- static fromBoundingSphere(occluderBoundingSphere: BoundingSphere, cameraPosition: Cartesian3, result?: Occluder): Occluder;
- /**
- * Determines whether or not a point, the <code>occludee</code>, is hidden from view by the occluder.
- * @example
- * var cameraPosition = new Cesium.Cartesian3(0, 0, 0);
- * var littleSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1), 0.25);
- * var occluder = new Cesium.Occluder(littleSphere, cameraPosition);
- * var point = new Cesium.Cartesian3(0, 0, -3);
- * occluder.isPointVisible(point); //returns true
- * @param occludee - The point surrounding the occludee object.
- * @returns <code>true</code> if the occludee is visible; otherwise <code>false</code>.
- */
- isPointVisible(occludee: Cartesian3): boolean;
- /**
- * Determines whether or not a sphere, the <code>occludee</code>, is hidden from view by the occluder.
- * @example
- * var cameraPosition = new Cesium.Cartesian3(0, 0, 0);
- * var littleSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1), 0.25);
- * var occluder = new Cesium.Occluder(littleSphere, cameraPosition);
- * var bigSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -3), 1);
- * occluder.isBoundingSphereVisible(bigSphere); //returns true
- * @param occludee - The bounding sphere surrounding the occludee object.
- * @returns <code>true</code> if the occludee is visible; otherwise <code>false</code>.
- */
- isBoundingSphereVisible(occludee: BoundingSphere): boolean;
- /**
- * Determine to what extent an occludee is visible (not visible, partially visible, or fully visible).
- * @example
- * var sphere1 = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -1.5), 0.5);
- * var sphere2 = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -2.5), 0.5);
- * var cameraPosition = new Cesium.Cartesian3(0, 0, 0);
- * var occluder = new Cesium.Occluder(sphere1, cameraPosition);
- * occluder.computeVisibility(sphere2); //returns Visibility.NONE
- * @param occludeeBS - The bounding sphere of the occludee.
- * @returns Visibility.NONE if the occludee is not visible,
- * Visibility.PARTIAL if the occludee is partially visible, or
- * Visibility.FULL if the occludee is fully visible.
- */
- computeVisibility(occludeeBS: BoundingSphere): Visibility;
- /**
- * Computes a point that can be used as the occludee position to the visibility functions.
- * Use a radius of zero for the occludee radius. Typically, a user computes a bounding sphere around
- * an object that is used for visibility; however it is also possible to compute a point that if
- * seen/not seen would also indicate if an object is visible/not visible. This function is better
- * called for objects that do not move relative to the occluder and is large, such as a chunk of
- * terrain. You are better off not calling this and using the object's bounding sphere for objects
- * such as a satellite or ground vehicle.
- * @example
- * var cameraPosition = new Cesium.Cartesian3(0, 0, 0);
- * var occluderBoundingSphere = new Cesium.BoundingSphere(new Cesium.Cartesian3(0, 0, -8), 2);
- * var occluder = new Cesium.Occluder(occluderBoundingSphere, cameraPosition);
- * var positions = [new Cesium.Cartesian3(-0.25, 0, -5.3), new Cesium.Cartesian3(0.25, 0, -5.3)];
- * var tileOccluderSphere = Cesium.BoundingSphere.fromPoints(positions);
- * var occludeePosition = tileOccluderSphere.center;
- * var occludeePt = Cesium.Occluder.computeOccludeePoint(occluderBoundingSphere, occludeePosition, positions);
- * @param occluderBoundingSphere - The bounding sphere surrounding the occluder.
- * @param occludeePosition - The point where the occludee (bounding sphere of radius 0) is located.
- * @param positions - List of altitude points on the horizon near the surface of the occluder.
- * @returns An object containing two attributes: <code>occludeePoint</code> and <code>valid</code>
- * which is a boolean value.
- */
- static computeOccludeePoint(occluderBoundingSphere: BoundingSphere, occludeePosition: Cartesian3, positions: Cartesian3[]): any;
- /**
- * Computes a point that can be used as the occludee position to the visibility functions from a rectangle.
- * @param rectangle - The rectangle used to create a bounding sphere.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid used to determine positions of the rectangle.
- * @returns An object containing two attributes: <code>occludeePoint</code> and <code>valid</code>
- * which is a boolean value.
- */
- static computeOccludeePointFromRectangle(rectangle: Rectangle, ellipsoid?: Ellipsoid): any;
- }
- /**
- * Provides geocoding via a {@link https:
- * @example
- *
- * var viewer = new Cesium.Viewer('cesiumContainer', {
- * geocoder: new Cesium.OpenCageGeocoderService('https://api.opencagedata.com/geocode/v1/', '<API key>')
- * });
- * @param url - The endpoint to the OpenCage server.
- * @param apiKey - The OpenCage API Key.
- * @param [params] - An object with the following properties (See https:
- * @param [params.abbrv] - When set to 1 we attempt to abbreviate and shorten the formatted string we return.
- * @param [options.add_request] - When set to 1 the various request parameters are added to the response for ease of debugging.
- * @param [options.bounds] - Provides the geocoder with a hint to the region that the query resides in.
- * @param [options.countrycode] - Restricts the results to the specified country or countries (as defined by the ISO 3166-1 Alpha 2 standard).
- * @param [options.jsonp] - Wraps the returned JSON with a function name.
- * @param [options.language] - An IETF format language code.
- * @param [options.limit] - The maximum number of results we should return.
- * @param [options.min_confidence] - An integer from 1-10. Only results with at least this confidence will be returned.
- * @param [options.no_annotations] - When set to 1 results will not contain annotations.
- * @param [options.no_dedupe] - When set to 1 results will not be deduplicated.
- * @param [options.no_record] - When set to 1 the query contents are not logged.
- * @param [options.pretty] - When set to 1 results are 'pretty' printed for easier reading. Useful for debugging.
- * @param [options.proximity] - Provides the geocoder with a hint to bias results in favour of those closer to the specified location (For example: 41.40139,2.12870).
- */
- export class OpenCageGeocoderService {
- constructor(url: Resource | string, apiKey: string, params?: {
- abbrv?: number;
- });
-
- readonly url: Resource;
-
- readonly params: any;
-
- geocode(query: string): Promise<GeocoderService.Result[]>;
- }
- export class OrientedBoundingBox {
- constructor(center?: Cartesian3, halfAxes?: Matrix3);
- /**
- * The center of the box.
- */
- center: Cartesian3;
- /**
- * The transformation matrix, to rotate the box to the right position.
- */
- halfAxes: Matrix3;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: OrientedBoundingBox, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new OrientedBoundingBox instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: OrientedBoundingBox): OrientedBoundingBox;
- /**
- * Computes an instance of an OrientedBoundingBox of the given positions.
- * This is an implementation of Stefan Gottschalk's Collision Queries using Oriented Bounding Boxes solution (PHD thesis).
- * Reference: http://gamma.cs.unc.edu/users/gottschalk/main.pdf
- * @example
- * // Compute an object oriented bounding box enclosing two points.
- * var box = Cesium.OrientedBoundingBox.fromPoints([new Cesium.Cartesian3(2, 0, 0), new Cesium.Cartesian3(-2, 0, 0)]);
- * @param [positions] - List of {@link Cartesian3} points that the bounding box will enclose.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new OrientedBoundingBox instance if one was not provided.
- */
- static fromPoints(positions?: Cartesian3[], result?: OrientedBoundingBox): OrientedBoundingBox;
- /**
- * Computes an OrientedBoundingBox that bounds a {@link Rectangle} on the surface of an {@link Ellipsoid}.
- * There are no guarantees about the orientation of the bounding box.
- * @param rectangle - The cartographic rectangle on the surface of the ellipsoid.
- * @param [minimumHeight = 0.0] - The minimum height (elevation) within the tile.
- * @param [maximumHeight = 0.0] - The maximum height (elevation) within the tile.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid on which the rectangle is defined.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new OrientedBoundingBox instance if none was provided.
- */
- static fromRectangle(rectangle: Rectangle, minimumHeight?: number, maximumHeight?: number, ellipsoid?: Ellipsoid, result?: OrientedBoundingBox): OrientedBoundingBox;
- /**
- * Duplicates a OrientedBoundingBox instance.
- * @param box - The bounding box to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new OrientedBoundingBox instance if none was provided. (Returns undefined if box is undefined)
- */
- static clone(box: OrientedBoundingBox, result?: OrientedBoundingBox): OrientedBoundingBox;
- /**
- * Determines which side of a plane the oriented bounding box is located.
- * @param box - The oriented bounding box to test.
- * @param plane - The plane to test against.
- * @returns {@link Intersect.INSIDE} if the entire box is on the side of the plane
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire box is
- * on the opposite side, and {@link Intersect.INTERSECTING} if the box
- * intersects the plane.
- */
- static intersectPlane(box: OrientedBoundingBox, plane: Plane): Intersect;
- /**
- * Computes the estimated distance squared from the closest point on a bounding box to a point.
- * @example
- *
- * boxes.sort(function(a, b) {
- * return Cesium.OrientedBoundingBox.distanceSquaredTo(b, camera.positionWC) - Cesium.OrientedBoundingBox.distanceSquaredTo(a, camera.positionWC);
- * });
- * @param box - The box.
- * @param cartesian - The point
- * @returns The distance squared from the oriented bounding box to the point. Returns 0 if the point is inside the box.
- */
- static distanceSquaredTo(box: OrientedBoundingBox, cartesian: Cartesian3): number;
- /**
- * The distances calculated by the vector from the center of the bounding box to position projected onto direction.
- * <br>
- * If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the
- * closest and farthest planes from position that intersect the bounding box.
- * @param box - The bounding box to calculate the distance to.
- * @param position - The position to calculate the distance from.
- * @param direction - The direction from position.
- * @param [result] - A Interval to store the nearest and farthest distances.
- * @returns The nearest and farthest distances on the bounding box from position in direction.
- */
- static computePlaneDistances(box: OrientedBoundingBox, position: Cartesian3, direction: Cartesian3, result?: Interval): Interval;
- /**
- * Determines whether or not a bounding box is hidden from view by the occluder.
- * @param box - The bounding box surrounding the occludee object.
- * @param occluder - The occluder.
- * @returns <code>true</code> if the box is not visible; otherwise <code>false</code>.
- */
- static isOccluded(box: OrientedBoundingBox, occluder: Occluder): boolean;
- /**
- * Determines which side of a plane the oriented bounding box is located.
- * @param plane - The plane to test against.
- * @returns {@link Intersect.INSIDE} if the entire box is on the side of the plane
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire box is
- * on the opposite side, and {@link Intersect.INTERSECTING} if the box
- * intersects the plane.
- */
- intersectPlane(plane: Plane): Intersect;
- /**
- * Computes the estimated distance squared from the closest point on a bounding box to a point.
- * @example
- *
- * boxes.sort(function(a, b) {
- * return b.distanceSquaredTo(camera.positionWC) - a.distanceSquaredTo(camera.positionWC);
- * });
- * @param cartesian - The point
- * @returns The estimated distance squared from the bounding sphere to the point.
- */
- distanceSquaredTo(cartesian: Cartesian3): number;
- /**
- * The distances calculated by the vector from the center of the bounding box to position projected onto direction.
- * <br>
- * If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the
- * closest and farthest planes from position that intersect the bounding box.
- * @param position - The position to calculate the distance from.
- * @param direction - The direction from position.
- * @param [result] - A Interval to store the nearest and farthest distances.
- * @returns The nearest and farthest distances on the bounding box from position in direction.
- */
- computePlaneDistances(position: Cartesian3, direction: Cartesian3, result?: Interval): Interval;
- /**
- * Determines whether or not a bounding box is hidden from view by the occluder.
- * @param occluder - The occluder.
- * @returns <code>true</code> if the sphere is not visible; otherwise <code>false</code>.
- */
- isOccluded(occluder: Occluder): boolean;
- /**
- * Compares the provided OrientedBoundingBox componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param left - The first OrientedBoundingBox.
- * @param right - The second OrientedBoundingBox.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left: OrientedBoundingBox, right: OrientedBoundingBox): boolean;
- /**
- * Duplicates this OrientedBoundingBox instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new OrientedBoundingBox instance if one was not provided.
- */
- clone(result?: OrientedBoundingBox): OrientedBoundingBox;
- /**
- * Compares this OrientedBoundingBox against the provided OrientedBoundingBox componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side OrientedBoundingBox.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: OrientedBoundingBox): boolean;
- }
- /**
- * The viewing frustum is defined by 6 planes.
- * Each plane is represented by a {@link Cartesian4} object, where the x, y, and z components
- * define the unit vector normal to the plane, and the w component is the distance of the
- * plane from the origin/camera position.
- * @example
- * var maxRadii = ellipsoid.maximumRadius;
- *
- * var frustum = new Cesium.OrthographicFrustum();
- * frustum.near = 0.01 * maxRadii;
- * frustum.far = 50.0 * maxRadii;
- * @param [options] - An object with the following properties:
- * @param [options.width] - The width of the frustum in meters.
- * @param [options.aspectRatio] - The aspect ratio of the frustum's width to it's height.
- * @param [options.near = 1.0] - The distance of the near plane.
- * @param [options.far = 500000000.0] - The distance of the far plane.
- */
- export class OrthographicFrustum {
- constructor(options?: {
- width?: number;
- aspectRatio?: number;
- near?: number;
- far?: number;
- });
- /**
- * The horizontal width of the frustum in meters.
- */
- width: number;
- /**
- * The aspect ratio of the frustum's width to it's height.
- */
- aspectRatio: number;
- /**
- * The distance of the near plane.
- */
- near: number;
- /**
- * The distance of the far plane.
- */
- far: number;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: OrthographicFrustum, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new OrthographicFrustum instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: OrthographicFrustum): OrthographicFrustum;
- /**
- * Gets the orthographic projection matrix computed from the view frustum.
- */
- readonly projectionMatrix: Matrix4;
- /**
- * Creates a culling volume for this frustum.
- * @example
- *
- * var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
- * var intersect = cullingVolume.computeVisibility(boundingVolume);
- * @param position - The eye position.
- * @param direction - The view direction.
- * @param up - The up direction.
- * @returns A culling volume at the given position and orientation.
- */
- computeCullingVolume(position: Cartesian3, direction: Cartesian3, up: Cartesian3): CullingVolume;
- /**
- * Returns the pixel's width and height in meters.
- * @example
- * // Example 1
- * // Get the width and height of a pixel.
- * var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 0.0, scene.pixelRatio, new Cesium.Cartesian2());
- * @param drawingBufferWidth - The width of the drawing buffer.
- * @param drawingBufferHeight - The height of the drawing buffer.
- * @param distance - The distance to the near plane in meters.
- * @param pixelRatio - The scaling factor from pixel space to coordinate space.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of {@link Cartesian2} with the pixel's width and height in the x and y properties, respectively.
- */
- getPixelDimensions(drawingBufferWidth: number, drawingBufferHeight: number, distance: number, pixelRatio: number, result: Cartesian2): Cartesian2;
- /**
- * Returns a duplicate of a OrthographicFrustum instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new OrthographicFrustum instance if one was not provided.
- */
- clone(result?: OrthographicFrustum): OrthographicFrustum;
- /**
- * Compares the provided OrthographicFrustum componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The right hand side OrthographicFrustum.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(other?: OrthographicFrustum): boolean;
- /**
- * Compares the provided OrthographicFrustum componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param other - The right hand side OrthographicFrustum.
- * @param relativeEpsilon - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if this and other are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(other: OrthographicFrustum, relativeEpsilon: number, absoluteEpsilon?: number): boolean;
- }
- /**
- * The viewing frustum is defined by 6 planes.
- * Each plane is represented by a {@link Cartesian4} object, where the x, y, and z components
- * define the unit vector normal to the plane, and the w component is the distance of the
- * plane from the origin/camera position.
- * @example
- * var maxRadii = ellipsoid.maximumRadius;
- *
- * var frustum = new Cesium.OrthographicOffCenterFrustum();
- * frustum.right = maxRadii * Cesium.Math.PI;
- * frustum.left = -c.frustum.right;
- * frustum.top = c.frustum.right * (canvas.clientHeight / canvas.clientWidth);
- * frustum.bottom = -c.frustum.top;
- * frustum.near = 0.01 * maxRadii;
- * frustum.far = 50.0 * maxRadii;
- * @param [options] - An object with the following properties:
- * @param [options.left] - The left clipping plane distance.
- * @param [options.right] - The right clipping plane distance.
- * @param [options.top] - The top clipping plane distance.
- * @param [options.bottom] - The bottom clipping plane distance.
- * @param [options.near = 1.0] - The near clipping plane distance.
- * @param [options.far = 500000000.0] - The far clipping plane distance.
- */
- export class OrthographicOffCenterFrustum {
- constructor(options?: {
- left?: number;
- right?: number;
- top?: number;
- bottom?: number;
- near?: number;
- far?: number;
- });
- /**
- * The left clipping plane.
- */
- left: number;
- /**
- * The right clipping plane.
- */
- right: number;
- /**
- * The top clipping plane.
- */
- top: number;
- /**
- * The bottom clipping plane.
- */
- bottom: number;
- /**
- * The distance of the near plane.
- */
- near: number;
- /**
- * The distance of the far plane.
- */
- far: number;
- /**
- * Gets the orthographic projection matrix computed from the view frustum.
- */
- readonly projectionMatrix: Matrix4;
- /**
- * Creates a culling volume for this frustum.
- * @example
- *
- * var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
- * var intersect = cullingVolume.computeVisibility(boundingVolume);
- * @param position - The eye position.
- * @param direction - The view direction.
- * @param up - The up direction.
- * @returns A culling volume at the given position and orientation.
- */
- computeCullingVolume(position: Cartesian3, direction: Cartesian3, up: Cartesian3): CullingVolume;
- /**
- * Returns the pixel's width and height in meters.
- * @example
- * // Example 1
- * // Get the width and height of a pixel.
- * var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 0.0, scene.pixelRatio, new Cesium.Cartesian2());
- * @param drawingBufferWidth - The width of the drawing buffer.
- * @param drawingBufferHeight - The height of the drawing buffer.
- * @param distance - The distance to the near plane in meters.
- * @param pixelRatio - The scaling factor from pixel space to coordinate space.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of {@link Cartesian2} with the pixel's width and height in the x and y properties, respectively.
- */
- getPixelDimensions(drawingBufferWidth: number, drawingBufferHeight: number, distance: number, pixelRatio: number, result: Cartesian2): Cartesian2;
- /**
- * Returns a duplicate of a OrthographicOffCenterFrustum instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new OrthographicOffCenterFrustum instance if one was not provided.
- */
- clone(result?: OrthographicOffCenterFrustum): OrthographicOffCenterFrustum;
- /**
- * Compares the provided OrthographicOffCenterFrustum componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The right hand side OrthographicOffCenterFrustum.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(other?: OrthographicOffCenterFrustum): boolean;
- /**
- * Compares the provided OrthographicOffCenterFrustum componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param other - The right hand side OrthographicOffCenterFrustum.
- * @param relativeEpsilon - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if this and other are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(other: OrthographicOffCenterFrustum, relativeEpsilon: number, absoluteEpsilon?: number): boolean;
- }
- export namespace Packable {
- /**
- * The number of elements used to pack the object into an array.
- */
- var packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- */
- function pack(value: any, array: number[], startingIndex?: number): void;
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Object instance if one was not provided.
- */
- function unpack(array: number[], startingIndex?: number, result?: any): any;
- }
- /**
- * Static interface for types which can store their values as packed
- * elements in an array. These methods and properties are expected to be
- * defined on a constructor function.
- */
- export interface Packable {
- }
- export namespace PackableForInterpolation {
-
- var packedInterpolationLength: number;
-
- function convertPackedArrayForInterpolation(packedArray: number[], startingIndex?: number, lastIndex?: number, result?: number[]): void;
-
- function unpackInterpolationResult(array: number[], sourceArray: number[], startingIndex?: number, lastIndex?: number, result?: any): any;
- }
- export class PeliasGeocoderService {
- constructor(url: Resource | string);
- /**
- * The Resource used to access the Pelias endpoint.
- */
- readonly url: Resource;
- /**
- * @param query - The query to be sent to the geocoder service
- * @param [type = GeocodeType.SEARCH] - The type of geocode to perform.
- */
- geocode(query: string, type?: GeocodeType): Promise<GeocoderService.Result[]>;
- }
- /**
- * The viewing frustum is defined by 6 planes.
- * Each plane is represented by a {@link Cartesian4} object, where the x, y, and z components
- * define the unit vector normal to the plane, and the w component is the distance of the
- * plane from the origin/camera position.
- * @example
- * var frustum = new Cesium.PerspectiveFrustum({
- * fov : Cesium.Math.PI_OVER_THREE,
- * aspectRatio : canvas.clientWidth / canvas.clientHeight
- * near : 1.0,
- * far : 1000.0
- * });
- * @param [options] - An object with the following properties:
- * @param [options.fov] - The angle of the field of view (FOV), in radians.
- * @param [options.aspectRatio] - The aspect ratio of the frustum's width to it's height.
- * @param [options.near = 1.0] - The distance of the near plane.
- * @param [options.far = 500000000.0] - The distance of the far plane.
- * @param [options.xOffset = 0.0] - The offset in the x direction.
- * @param [options.yOffset = 0.0] - The offset in the y direction.
- */
- export class PerspectiveFrustum {
- constructor(options?: {
- fov?: number;
- aspectRatio?: number;
- near?: number;
- far?: number;
- xOffset?: number;
- yOffset?: number;
- });
- /**
- * The angle of the field of view (FOV), in radians. This angle will be used
- * as the horizontal FOV if the width is greater than the height, otherwise
- * it will be the vertical FOV.
- */
- fov: number;
- /**
- * The aspect ratio of the frustum's width to it's height.
- */
- aspectRatio: number;
- /**
- * The distance of the near plane.
- */
- near: number;
- /**
- * The distance of the far plane.
- */
- far: number;
- /**
- * Offsets the frustum in the x direction.
- */
- xOffset: number;
- /**
- * Offsets the frustum in the y direction.
- */
- yOffset: number;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PerspectiveFrustum, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new PerspectiveFrustum instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: PerspectiveFrustum): PerspectiveFrustum;
- /**
- * Gets the perspective projection matrix computed from the view frustum.
- */
- readonly projectionMatrix: Matrix4;
- /**
- * The perspective projection matrix computed from the view frustum with an infinite far plane.
- */
- readonly infiniteProjectionMatrix: Matrix4;
- /**
- * Gets the angle of the vertical field of view, in radians.
- */
- readonly fovy: number;
- /**
- * Creates a culling volume for this frustum.
- * @example
- *
- * var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
- * var intersect = cullingVolume.computeVisibility(boundingVolume);
- * @param position - The eye position.
- * @param direction - The view direction.
- * @param up - The up direction.
- * @returns A culling volume at the given position and orientation.
- */
- computeCullingVolume(position: Cartesian3, direction: Cartesian3, up: Cartesian3): CullingVolume;
- /**
- * Returns the pixel's width and height in meters.
- * @example
- * // Example 1
- * // Get the width and height of a pixel.
- * var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, scene.pixelRatio, new Cesium.Cartesian2());
- * @example
- * // Example 2
- * // Get the width and height of a pixel if the near plane was set to 'distance'.
- * // For example, get the size of a pixel of an image on a billboard.
- * var position = camera.position;
- * var direction = camera.direction;
- * var toCenter = Cesium.Cartesian3.subtract(primitive.boundingVolume.center, position, new Cesium.Cartesian3()); // vector from camera to a primitive
- * var toCenterProj = Cesium.Cartesian3.multiplyByScalar(direction, Cesium.Cartesian3.dot(direction, toCenter), new Cesium.Cartesian3()); // project vector onto camera direction vector
- * var distance = Cesium.Cartesian3.magnitude(toCenterProj);
- * var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, scene.pixelRatio, new Cesium.Cartesian2());
- * @param drawingBufferWidth - The width of the drawing buffer.
- * @param drawingBufferHeight - The height of the drawing buffer.
- * @param distance - The distance to the near plane in meters.
- * @param pixelRatio - The scaling factor from pixel space to coordinate space.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of {@link Cartesian2} with the pixel's width and height in the x and y properties, respectively.
- */
- getPixelDimensions(drawingBufferWidth: number, drawingBufferHeight: number, distance: number, pixelRatio: number, result: Cartesian2): Cartesian2;
- /**
- * Returns a duplicate of a PerspectiveFrustum instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new PerspectiveFrustum instance if one was not provided.
- */
- clone(result?: PerspectiveFrustum): PerspectiveFrustum;
- /**
- * Compares the provided PerspectiveFrustum componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The right hand side PerspectiveFrustum.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(other?: PerspectiveFrustum): boolean;
- /**
- * Compares the provided PerspectiveFrustum componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param other - The right hand side PerspectiveFrustum.
- * @param relativeEpsilon - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if this and other are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(other: PerspectiveFrustum, relativeEpsilon: number, absoluteEpsilon?: number): boolean;
- }
- /**
- * The viewing frustum is defined by 6 planes.
- * Each plane is represented by a {@link Cartesian4} object, where the x, y, and z components
- * define the unit vector normal to the plane, and the w component is the distance of the
- * plane from the origin/camera position.
- * @example
- * var frustum = new Cesium.PerspectiveOffCenterFrustum({
- * left : -1.0,
- * right : 1.0,
- * top : 1.0,
- * bottom : -1.0,
- * near : 1.0,
- * far : 100.0
- * });
- * @param [options] - An object with the following properties:
- * @param [options.left] - The left clipping plane distance.
- * @param [options.right] - The right clipping plane distance.
- * @param [options.top] - The top clipping plane distance.
- * @param [options.bottom] - The bottom clipping plane distance.
- * @param [options.near = 1.0] - The near clipping plane distance.
- * @param [options.far = 500000000.0] - The far clipping plane distance.
- */
- export class PerspectiveOffCenterFrustum {
- constructor(options?: {
- left?: number;
- right?: number;
- top?: number;
- bottom?: number;
- near?: number;
- far?: number;
- });
- /**
- * Defines the left clipping plane.
- */
- left: number;
- /**
- * Defines the right clipping plane.
- */
- right: number;
- /**
- * Defines the top clipping plane.
- */
- top: number;
- /**
- * Defines the bottom clipping plane.
- */
- bottom: number;
- /**
- * The distance of the near plane.
- */
- near: number;
- /**
- * The distance of the far plane.
- */
- far: number;
- /**
- * Gets the perspective projection matrix computed from the view frustum.
- */
- readonly projectionMatrix: Matrix4;
- /**
- * Gets the perspective projection matrix computed from the view frustum with an infinite far plane.
- */
- readonly infiniteProjectionMatrix: Matrix4;
- /**
- * Creates a culling volume for this frustum.
- * @example
- *
- * var cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
- * var intersect = cullingVolume.computeVisibility(boundingVolume);
- * @param position - The eye position.
- * @param direction - The view direction.
- * @param up - The up direction.
- * @returns A culling volume at the given position and orientation.
- */
- computeCullingVolume(position: Cartesian3, direction: Cartesian3, up: Cartesian3): CullingVolume;
- /**
- * Returns the pixel's width and height in meters.
- * @example
- * // Example 1
- * // Get the width and height of a pixel.
- * var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, scene.pixelRatio, new Cesium.Cartesian2());
- * @example
- * // Example 2
- * // Get the width and height of a pixel if the near plane was set to 'distance'.
- * // For example, get the size of a pixel of an image on a billboard.
- * var position = camera.position;
- * var direction = camera.direction;
- * var toCenter = Cesium.Cartesian3.subtract(primitive.boundingVolume.center, position, new Cesium.Cartesian3()); // vector from camera to a primitive
- * var toCenterProj = Cesium.Cartesian3.multiplyByScalar(direction, Cesium.Cartesian3.dot(direction, toCenter), new Cesium.Cartesian3()); // project vector onto camera direction vector
- * var distance = Cesium.Cartesian3.magnitude(toCenterProj);
- * var pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, scene.pixelRatio, new Cesium.Cartesian2());
- * @param drawingBufferWidth - The width of the drawing buffer.
- * @param drawingBufferHeight - The height of the drawing buffer.
- * @param distance - The distance to the near plane in meters.
- * @param pixelRatio - The scaling factor from pixel space to coordinate space.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of {@link Cartesian2} with the pixel's width and height in the x and y properties, respectively.
- */
- getPixelDimensions(drawingBufferWidth: number, drawingBufferHeight: number, distance: number, pixelRatio: number, result: Cartesian2): Cartesian2;
- /**
- * Returns a duplicate of a PerspectiveOffCenterFrustum instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new PerspectiveFrustum instance if one was not provided.
- */
- clone(result?: PerspectiveOffCenterFrustum): PerspectiveOffCenterFrustum;
- /**
- * Compares the provided PerspectiveOffCenterFrustum componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The right hand side PerspectiveOffCenterFrustum.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(other?: PerspectiveOffCenterFrustum): boolean;
- /**
- * Compares the provided PerspectiveOffCenterFrustum componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param other - The right hand side PerspectiveOffCenterFrustum.
- * @param relativeEpsilon - The relative epsilon tolerance to use for equality testing.
- * @param [absoluteEpsilon = relativeEpsilon] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if this and other are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(other: PerspectiveOffCenterFrustum, relativeEpsilon: number, absoluteEpsilon?: number): boolean;
- }
- /**
- * A utility class for generating custom map pins as canvas elements.
- * <br /><br />
- * <div align='center'>
- * <img src='Images/PinBuilder.png' width='500'/><br />
- * Example pins generated using both the maki icon set, which ships with Cesium, and single character text.
- * </div>
- */
- export class PinBuilder {
- constructor();
- /**
- * Creates an empty pin of the specified color and size.
- * @param color - The color of the pin.
- * @param size - The size of the pin, in pixels.
- * @returns The canvas element that represents the generated pin.
- */
- fromColor(color: Color, size: number): HTMLCanvasElement;
- /**
- * Creates a pin with the specified icon, color, and size.
- * @param url - The url of the image to be stamped onto the pin.
- * @param color - The color of the pin.
- * @param size - The size of the pin, in pixels.
- * @returns The canvas element or a Promise to the canvas element that represents the generated pin.
- */
- fromUrl(url: Resource | string, color: Color, size: number): HTMLCanvasElement | Promise<HTMLCanvasElement>;
- /**
- * Creates a pin with the specified {@link https:
- * @param id - The id of the maki icon to be stamped onto the pin.
- * @param color - The color of the pin.
- * @param size - The size of the pin, in pixels.
- * @returns The canvas element or a Promise to the canvas element that represents the generated pin.
- */
- fromMakiIconId(id: string, color: Color, size: number): HTMLCanvasElement | Promise<HTMLCanvasElement>;
- /**
- * Creates a pin with the specified text, color, and size. The text will be sized to be as large as possible
- * while still being contained completely within the pin.
- * @param text - The text to be stamped onto the pin.
- * @param color - The color of the pin.
- * @param size - The size of the pin, in pixels.
- * @returns The canvas element that represents the generated pin.
- */
- fromText(text: string, color: Color, size: number): HTMLCanvasElement;
- }
- /**
- * The format of a pixel, i.e., the number of components it has and what they represent.
- */
- export enum PixelFormat {
- /**
- * A pixel format containing a depth value.
- */
- DEPTH_COMPONENT = WebGLConstants.DEPTH_COMPONENT,
- /**
- * A pixel format containing a depth and stencil value, most often used with {@link PixelDatatype.UNSIGNED_INT_24_8}.
- */
- DEPTH_STENCIL = WebGLConstants.DEPTH_STENCIL,
- /**
- * A pixel format containing an alpha channel.
- */
- ALPHA = WebGLConstants.ALPHA,
- /**
- * A pixel format containing red, green, and blue channels.
- */
- RGB = WebGLConstants.RGB,
- /**
- * A pixel format containing red, green, blue, and alpha channels.
- */
- RGBA = WebGLConstants.RGBA,
- /**
- * A pixel format containing a luminance (intensity) channel.
- */
- LUMINANCE = WebGLConstants.LUMINANCE,
- /**
- * A pixel format containing luminance (intensity) and alpha channels.
- */
- LUMINANCE_ALPHA = WebGLConstants.LUMINANCE_ALPHA,
- /**
- * A pixel format containing red, green, and blue channels that is DXT1 compressed.
- */
- RGB_DXT1 = WebGLConstants.COMPRESSED_RGB_S3TC_DXT1_EXT,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is DXT1 compressed.
- */
- RGBA_DXT1 = WebGLConstants.COMPRESSED_RGBA_S3TC_DXT1_EXT,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is DXT3 compressed.
- */
- RGBA_DXT3 = WebGLConstants.COMPRESSED_RGBA_S3TC_DXT3_EXT,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is DXT5 compressed.
- */
- RGBA_DXT5 = WebGLConstants.COMPRESSED_RGBA_S3TC_DXT5_EXT,
- /**
- * A pixel format containing red, green, and blue channels that is PVR 4bpp compressed.
- */
- RGB_PVRTC_4BPPV1 = WebGLConstants.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
- /**
- * A pixel format containing red, green, and blue channels that is PVR 2bpp compressed.
- */
- RGB_PVRTC_2BPPV1 = WebGLConstants.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is PVR 4bpp compressed.
- */
- RGBA_PVRTC_4BPPV1 = WebGLConstants.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is PVR 2bpp compressed.
- */
- RGBA_PVRTC_2BPPV1 = WebGLConstants.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is ASTC compressed.
- */
- RGBA_ASTC = WebGLConstants.COMPRESSED_RGBA_ASTC_4x4_WEBGL,
- /**
- * A pixel format containing red, green, and blue channels that is ETC1 compressed.
- */
- RGB_ETC1 = WebGLConstants.COMPRESSED_RGB_ETC1_WEBGL,
- /**
- * A pixel format containing red, green, and blue channels that is ETC2 compressed.
- */
- RGB8_ETC2 = WebGLConstants.COMPRESSED_RGB8_ETC2,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is ETC2 compressed.
- */
- RGBA8_ETC2_EAC = WebGLConstants.COMPRESSED_RGBA8_ETC2_EAC,
- /**
- * A pixel format containing red, green, blue, and alpha channels that is BC7 compressed.
- */
- RGBA_BC7 = WebGLConstants.COMPRESSED_RGBA_BPTC_UNORM
- }
- /**
- * A plane in Hessian Normal Form defined by
- * <pre>
- * ax + by + cz + d = 0
- * </pre>
- * where (a, b, c) is the plane's <code>normal</code>, d is the signed
- * <code>distance</code> to the plane, and (x, y, z) is any point on
- * the plane.
- * @example
- * // The plane x=0
- * var plane = new Cesium.Plane(Cesium.Cartesian3.UNIT_X, 0.0);
- * @param normal - The plane's normal (normalized).
- * @param distance - The shortest distance from the origin to the plane. The sign of
- * <code>distance</code> determines which side of the plane the origin
- * is on. If <code>distance</code> is positive, the origin is in the half-space
- * in the direction of the normal; if negative, the origin is in the half-space
- * opposite to the normal; if zero, the plane passes through the origin.
- */
- export class Plane {
- constructor(normal: Cartesian3, distance: number);
- /**
- * The plane's normal.
- */
- normal: Cartesian3;
- /**
- * The shortest distance from the origin to the plane. The sign of
- * <code>distance</code> determines which side of the plane the origin
- * is on. If <code>distance</code> is positive, the origin is in the half-space
- * in the direction of the normal; if negative, the origin is in the half-space
- * opposite to the normal; if zero, the plane passes through the origin.
- */
- distance: number;
- /**
- * Creates a plane from a normal and a point on the plane.
- * @example
- * var point = Cesium.Cartesian3.fromDegrees(-72.0, 40.0);
- * var normal = ellipsoid.geodeticSurfaceNormal(point);
- * var tangentPlane = Cesium.Plane.fromPointNormal(point, normal);
- * @param point - The point on the plane.
- * @param normal - The plane's normal (normalized).
- * @param [result] - The object onto which to store the result.
- * @returns A new plane instance or the modified result parameter.
- */
- static fromPointNormal(point: Cartesian3, normal: Cartesian3, result?: Plane): Plane;
- /**
- * Creates a plane from the general equation
- * @param coefficients - The plane's normal (normalized).
- * @param [result] - The object onto which to store the result.
- * @returns A new plane instance or the modified result parameter.
- */
- static fromCartesian4(coefficients: Cartesian4, result?: Plane): Plane;
- /**
- * Computes the signed shortest distance of a point to a plane.
- * The sign of the distance determines which side of the plane the point
- * is on. If the distance is positive, the point is in the half-space
- * in the direction of the normal; if negative, the point is in the half-space
- * opposite to the normal; if zero, the plane passes through the point.
- * @param plane - The plane.
- * @param point - The point.
- * @returns The signed shortest distance of the point to the plane.
- */
- static getPointDistance(plane: Plane, point: Cartesian3): number;
- /**
- * Projects a point onto the plane.
- * @param plane - The plane to project the point onto
- * @param point - The point to project onto the plane
- * @param [result] - The result point. If undefined, a new Cartesian3 will be created.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- static projectPointOntoPlane(plane: Plane, point: Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Transforms the plane by the given transformation matrix.
- * @param plane - The plane.
- * @param transform - The transformation matrix.
- * @param [result] - The object into which to store the result.
- * @returns The plane transformed by the given transformation matrix.
- */
- static transform(plane: Plane, transform: Matrix4, result?: Plane): Plane;
- /**
- * Duplicates a Plane instance.
- * @param plane - The plane to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Plane instance if one was not provided.
- */
- static clone(plane: Plane, result?: Plane): Plane;
- /**
- * Compares the provided Planes by normal and distance and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param left - The first plane.
- * @param right - The second plane.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- static equals(left: Plane, right: Plane): boolean;
- /**
- * A constant initialized to the XY plane passing through the origin, with normal in positive Z.
- */
- static readonly ORIGIN_XY_PLANE: Plane;
- /**
- * A constant initialized to the YZ plane passing through the origin, with normal in positive X.
- */
- static readonly ORIGIN_YZ_PLANE: Plane;
- /**
- * A constant initialized to the ZX plane passing through the origin, with normal in positive Y.
- */
- static readonly ORIGIN_ZX_PLANE: Plane;
- }
- /**
- * Describes geometry representing a plane centered at the origin, with a unit width and length.
- * @example
- * var planeGeometry = new Cesium.PlaneGeometry({
- * vertexFormat : Cesium.VertexFormat.POSITION_ONLY
- * });
- * @param [options] - Object with the following properties:
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- */
- export class PlaneGeometry {
- constructor(options?: {
- vertexFormat?: VertexFormat;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PlaneGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new PlaneGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: PlaneGeometry): PlaneGeometry;
- /**
- * Computes the geometric representation of a plane, including its vertices, indices, and a bounding sphere.
- * @param planeGeometry - A description of the plane.
- * @returns The computed vertices and indices.
- */
- static createGeometry(planeGeometry: PlaneGeometry): Geometry | undefined;
- }
- /**
- * Describes geometry representing the outline of a plane centered at the origin, with a unit width and length.
- */
- export class PlaneOutlineGeometry {
- constructor();
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @returns The array that was packed into
- */
- static pack(value: PlaneOutlineGeometry, array: number[]): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new PlaneOutlineGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: PlaneOutlineGeometry): PlaneOutlineGeometry;
- /**
- * Computes the geometric representation of an outline of a plane, including its vertices, indices, and a bounding sphere.
- * @returns The computed vertices and indices.
- */
- static createGeometry(): Geometry | undefined;
- }
- /**
- * A description of a polygon on the ellipsoid. The polygon is defined by a polygon hierarchy. Polygon geometry can be rendered with both {@link Primitive} and {@link GroundPrimitive}.
- * @example
- *
- * var polygon = new Cesium.PolygonGeometry({
- * polygonHierarchy : new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0,
- * -75.0, 30.0,
- * -70.0, 30.0,
- * -68.0, 40.0
- * ])
- * )
- * });
- * var geometry = Cesium.PolygonGeometry.createGeometry(polygon);
- *
- *
- * var polygonWithHole = new Cesium.PolygonGeometry({
- * polygonHierarchy : new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -109.0, 30.0,
- * -95.0, 30.0,
- * -95.0, 40.0,
- * -109.0, 40.0
- * ]),
- * [new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -107.0, 31.0,
- * -107.0, 39.0,
- * -97.0, 39.0,
- * -97.0, 31.0
- * ]),
- * [new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -105.0, 33.0,
- * -99.0, 33.0,
- * -99.0, 37.0,
- * -105.0, 37.0
- * ]),
- * [new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -103.0, 34.0,
- * -101.0, 34.0,
- * -101.0, 36.0,
- * -103.0, 36.0
- * ])
- * )]
- * )]
- * )]
- * )
- * });
- * var geometry = Cesium.PolygonGeometry.createGeometry(polygonWithHole);
- *
- *
- * var extrudedPolygon = new Cesium.PolygonGeometry({
- * polygonHierarchy : new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0,
- * -75.0, 30.0,
- * -70.0, 30.0,
- * -68.0, 40.0
- * ])
- * ),
- * extrudedHeight: 300000
- * });
- * var geometry = Cesium.PolygonGeometry.createGeometry(extrudedPolygon);
- * @param options - Object with the following properties:
- * @param options.polygonHierarchy - A polygon hierarchy that can include holes.
- * @param [options.height = 0.0] - The distance in meters between the polygon and the ellipsoid surface.
- * @param [options.extrudedHeight] - The distance in meters between the polygon's extruded face and the ellipsoid surface.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.stRotation = 0.0] - The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.perPositionHeight = false] - Use the height of options.positions for each position instead of using options.height to determine the height.
- * @param [options.closeTop = true] - When false, leaves off the top of an extruded polygon open.
- * @param [options.closeBottom = true] - When false, leaves off the bottom of an extruded polygon open.
- * @param [options.arcType = ArcType.GEODESIC] - The type of line the polygon edges must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
- */
- export class PolygonGeometry {
- constructor(options: {
- polygonHierarchy: PolygonHierarchy;
- height?: number;
- extrudedHeight?: number;
- vertexFormat?: VertexFormat;
- stRotation?: number;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- perPositionHeight?: boolean;
- closeTop?: boolean;
- closeBottom?: boolean;
- arcType?: ArcType;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * A description of a polygon from an array of positions. Polygon geometry can be rendered with both {@link Primitive} and {@link GroundPrimitive}.
- * @example
- * // create a polygon from points
- * var polygon = Cesium.PolygonGeometry.fromPositions({
- * positions : Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0,
- * -75.0, 30.0,
- * -70.0, 30.0,
- * -68.0, 40.0
- * ])
- * });
- * var geometry = Cesium.PolygonGeometry.createGeometry(polygon);
- * @param options - Object with the following properties:
- * @param options.positions - An array of positions that defined the corner points of the polygon.
- * @param [options.height = 0.0] - The height of the polygon.
- * @param [options.extrudedHeight] - The height of the polygon extrusion.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.stRotation = 0.0] - The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.perPositionHeight = false] - Use the height of options.positions for each position instead of using options.height to determine the height.
- * @param [options.closeTop = true] - When false, leaves off the top of an extruded polygon open.
- * @param [options.closeBottom = true] - When false, leaves off the bottom of an extruded polygon open.
- * @param [options.arcType = ArcType.GEODESIC] - The type of line the polygon edges must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
- */
- static fromPositions(options: {
- positions: Cartesian3[];
- height?: number;
- extrudedHeight?: number;
- vertexFormat?: VertexFormat;
- stRotation?: number;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- perPositionHeight?: boolean;
- closeTop?: boolean;
- closeBottom?: boolean;
- arcType?: ArcType;
- }): PolygonGeometry;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PolygonGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- */
- static unpack(array: number[], startingIndex?: number, result?: PolygonGeometry): void;
- /**
- * Returns the bounding rectangle given the provided options
- * @param options - Object with the following properties:
- * @param options.polygonHierarchy - A polygon hierarchy that can include holes.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions sampled.
- * @param [options.arcType = ArcType.GEODESIC] - The type of line the polygon edges must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [result] - An object in which to store the result.
- * @returns The result rectangle
- */
- static computeRectangle(options: {
- polygonHierarchy: PolygonHierarchy;
- granularity?: number;
- arcType?: ArcType;
- ellipsoid?: Ellipsoid;
- }, result?: Rectangle): Rectangle;
- /**
- * Computes the geometric representation of a polygon, including its vertices, indices, and a bounding sphere.
- * @param polygonGeometry - A description of the polygon.
- * @returns The computed vertices and indices.
- */
- static createGeometry(polygonGeometry: PolygonGeometry): Geometry | undefined;
- }
- /**
- * An hierarchy of linear rings which define a polygon and its holes.
- * The holes themselves may also have holes which nest inner polygons.
- * @param [positions] - A linear ring defining the outer boundary of the polygon or hole.
- * @param [holes] - An array of polygon hierarchies defining holes in the polygon.
- */
- export class PolygonHierarchy {
- constructor(positions?: Cartesian3[], holes?: PolygonHierarchy[]);
- /**
- * A linear ring defining the outer boundary of the polygon or hole.
- */
- positions: Cartesian3[];
- /**
- * An array of polygon hierarchies defining holes in the polygon.
- */
- holes: PolygonHierarchy[];
- }
- /**
- * A description of the outline of a polygon on the ellipsoid. The polygon is defined by a polygon hierarchy.
- * @example
- * // 1. create a polygon outline from points
- * var polygon = new Cesium.PolygonOutlineGeometry({
- * polygonHierarchy : new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0,
- * -75.0, 30.0,
- * -70.0, 30.0,
- * -68.0, 40.0
- * ])
- * )
- * });
- * var geometry = Cesium.PolygonOutlineGeometry.createGeometry(polygon);
- *
- * // 2. create a nested polygon with holes outline
- * var polygonWithHole = new Cesium.PolygonOutlineGeometry({
- * polygonHierarchy : new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -109.0, 30.0,
- * -95.0, 30.0,
- * -95.0, 40.0,
- * -109.0, 40.0
- * ]),
- * [new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -107.0, 31.0,
- * -107.0, 39.0,
- * -97.0, 39.0,
- * -97.0, 31.0
- * ]),
- * [new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -105.0, 33.0,
- * -99.0, 33.0,
- * -99.0, 37.0,
- * -105.0, 37.0
- * ]),
- * [new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -103.0, 34.0,
- * -101.0, 34.0,
- * -101.0, 36.0,
- * -103.0, 36.0
- * ])
- * )]
- * )]
- * )]
- * )
- * });
- * var geometry = Cesium.PolygonOutlineGeometry.createGeometry(polygonWithHole);
- *
- * // 3. create extruded polygon outline
- * var extrudedPolygon = new Cesium.PolygonOutlineGeometry({
- * polygonHierarchy : new Cesium.PolygonHierarchy(
- * Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0,
- * -75.0, 30.0,
- * -70.0, 30.0,
- * -68.0, 40.0
- * ])
- * ),
- * extrudedHeight: 300000
- * });
- * var geometry = Cesium.PolygonOutlineGeometry.createGeometry(extrudedPolygon);
- * @param options - Object with the following properties:
- * @param options.polygonHierarchy - A polygon hierarchy that can include holes.
- * @param [options.height = 0.0] - The distance in meters between the polygon and the ellipsoid surface.
- * @param [options.extrudedHeight] - The distance in meters between the polygon's extruded face and the ellipsoid surface.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.perPositionHeight = false] - Use the height of options.positions for each position instead of using options.height to determine the height.
- * @param [options.arcType = ArcType.GEODESIC] - The type of path the outline must follow. Valid options are {@link ArcType.GEODESIC} and {@link ArcType.RHUMB}.
- */
- export class PolygonOutlineGeometry {
- constructor(options: {
- polygonHierarchy: PolygonHierarchy;
- height?: number;
- extrudedHeight?: number;
- vertexFormat?: VertexFormat;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- perPositionHeight?: boolean;
- arcType?: ArcType;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PolygonOutlineGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new PolygonOutlineGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: PolygonOutlineGeometry): PolygonOutlineGeometry;
- /**
- * A description of a polygon outline from an array of positions.
- * @example
- *
- * var polygon = Cesium.PolygonOutlineGeometry.fromPositions({
- * positions : Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0,
- * -75.0, 30.0,
- * -70.0, 30.0,
- * -68.0, 40.0
- * ])
- * });
- * var geometry = Cesium.PolygonOutlineGeometry.createGeometry(polygon);
- * @param options - Object with the following properties:
- * @param options.positions - An array of positions that defined the corner points of the polygon.
- * @param [options.height = 0.0] - The height of the polygon.
- * @param [options.extrudedHeight] - The height of the polygon extrusion.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.perPositionHeight = false] - Use the height of options.positions for each position instead of using options.height to determine the height.
- * @param [options.arcType = ArcType.GEODESIC] - The type of path the outline must follow. Valid options are {@link LinkType.GEODESIC} and {@link ArcType.RHUMB}.
- */
- static fromPositions(options: {
- positions: Cartesian3[];
- height?: number;
- extrudedHeight?: number;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- perPositionHeight?: boolean;
- arcType?: ArcType;
- }): PolygonOutlineGeometry;
- /**
- * Computes the geometric representation of a polygon outline, including its vertices, indices, and a bounding sphere.
- * @param polygonGeometry - A description of the polygon outline.
- * @returns The computed vertices and indices.
- */
- static createGeometry(polygonGeometry: PolygonOutlineGeometry): Geometry | undefined;
- }
- /**
- * A description of a polyline modeled as a line strip; the first two positions define a line segment,
- * and each additional position defines a line segment from the previous position. The polyline is capable of
- * displaying with a material.
- * @example
- *
- * var polyline = new Cesium.PolylineGeometry({
- * positions : Cesium.Cartesian3.fromDegreesArray([
- * 0.0, 0.0,
- * 5.0, 0.0,
- * 5.0, 5.0
- * ]),
- * width : 10.0
- * });
- * var geometry = Cesium.PolylineGeometry.createGeometry(polyline);
- * @param options - Object with the following properties:
- * @param options.positions - An array of {@link Cartesian3} defining the positions in the polyline as a line strip.
- * @param [options.width = 1.0] - The width in pixels.
- * @param [options.colors] - An Array of {@link Color} defining the per vertex or per segment colors.
- * @param [options.colorsPerVertex = false] - A boolean that determines whether the colors will be flat across each segment of the line or interpolated across the vertices.
- * @param [options.arcType = ArcType.GEODESIC] - The type of line the polyline segments must follow.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude if options.arcType is not ArcType.NONE. Determines the number of positions in the buffer.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- */
- export class PolylineGeometry {
- constructor(options: {
- positions: Cartesian3[];
- width?: number;
- colors?: Color[];
- colorsPerVertex?: boolean;
- arcType?: ArcType;
- granularity?: number;
- vertexFormat?: VertexFormat;
- ellipsoid?: Ellipsoid;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PolylineGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new PolylineGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: PolylineGeometry): PolylineGeometry;
- /**
- * Computes the geometric representation of a polyline, including its vertices, indices, and a bounding sphere.
- * @param polylineGeometry - A description of the polyline.
- * @returns The computed vertices and indices.
- */
- static createGeometry(polylineGeometry: PolylineGeometry): Geometry | undefined;
- }
- /**
- * A description of a polyline with a volume (a 2D shape extruded along a polyline).
- * @example
- * function computeCircle(radius) {
- * var positions = [];
- * for (var i = 0; i < 360; i++) {
- * var radians = Cesium.Math.toRadians(i);
- * positions.push(new Cesium.Cartesian2(radius * Math.cos(radians), radius * Math.sin(radians)));
- * }
- * return positions;
- * }
- *
- * var volume = new Cesium.PolylineVolumeGeometry({
- * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
- * polylinePositions : Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0
- * ]),
- * shapePositions : computeCircle(100000.0)
- * });
- * @param options - Object with the following properties:
- * @param options.polylinePositions - An array of {@link Cartesian3} positions that define the center of the polyline volume.
- * @param options.shapePositions - An array of {@link Cartesian2} positions that define the shape to be extruded along the polyline
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.vertexFormat = VertexFormat.DEFAULT] - The vertex attributes to be computed.
- * @param [options.cornerType = CornerType.ROUNDED] - Determines the style of the corners.
- */
- export class PolylineVolumeGeometry {
- constructor(options: {
- polylinePositions: Cartesian3[];
- shapePositions: Cartesian2[];
- ellipsoid?: Ellipsoid;
- granularity?: number;
- vertexFormat?: VertexFormat;
- cornerType?: CornerType;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PolylineVolumeGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new PolylineVolumeGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: PolylineVolumeGeometry): PolylineVolumeGeometry;
- /**
- * Computes the geometric representation of a polyline with a volume, including its vertices, indices, and a bounding sphere.
- * @param polylineVolumeGeometry - A description of the polyline volume.
- * @returns The computed vertices and indices.
- */
- static createGeometry(polylineVolumeGeometry: PolylineVolumeGeometry): Geometry | undefined;
- }
- /**
- * A description of a polyline with a volume (a 2D shape extruded along a polyline).
- * @example
- * function computeCircle(radius) {
- * var positions = [];
- * for (var i = 0; i < 360; i++) {
- * var radians = Cesium.Math.toRadians(i);
- * positions.push(new Cesium.Cartesian2(radius * Math.cos(radians), radius * Math.sin(radians)));
- * }
- * return positions;
- * }
- *
- * var volumeOutline = new Cesium.PolylineVolumeOutlineGeometry({
- * polylinePositions : Cesium.Cartesian3.fromDegreesArray([
- * -72.0, 40.0,
- * -70.0, 35.0
- * ]),
- * shapePositions : computeCircle(100000.0)
- * });
- * @param options - Object with the following properties:
- * @param options.polylinePositions - An array of positions that define the center of the polyline volume.
- * @param options.shapePositions - An array of positions that define the shape to be extruded along the polyline
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid to be used as a reference.
- * @param [options.granularity = Math.RADIANS_PER_DEGREE] - The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
- * @param [options.cornerType = CornerType.ROUNDED] - Determines the style of the corners.
- */
- export class PolylineVolumeOutlineGeometry {
- constructor(options: {
- polylinePositions: Cartesian3[];
- shapePositions: Cartesian2[];
- ellipsoid?: Ellipsoid;
- granularity?: number;
- cornerType?: CornerType;
- });
- /**
- * The number of elements used to pack the object into an array.
- */
- packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: PolylineVolumeOutlineGeometry, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new PolylineVolumeOutlineGeometry instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: PolylineVolumeOutlineGeometry): PolylineVolumeOutlineGeometry;
- /**
- * Computes the geometric representation of the outline of a polyline with a volume, including its vertices, indices, and a bounding sphere.
- * @param polylineVolumeOutlineGeometry - A description of the polyline volume outline.
- * @returns The computed vertices and indices.
- */
- static createGeometry(polylineVolumeOutlineGeometry: PolylineVolumeOutlineGeometry): Geometry | undefined;
- }
- /**
- * The type of a geometric primitive, i.e., points, lines, and triangles.
- */
- export enum PrimitiveType {
- /**
- * Points primitive where each vertex (or index) is a separate point.
- */
- POINTS = WebGLConstants.POINTS,
- /**
- * Lines primitive where each two vertices (or indices) is a line segment. Line segments are not necessarily connected.
- */
- LINES = WebGLConstants.LINES,
- /**
- * Line loop primitive where each vertex (or index) after the first connects a line to
- * the previous vertex, and the last vertex implicitly connects to the first.
- */
- LINE_LOOP = WebGLConstants.LINE_LOOP,
- /**
- * Line strip primitive where each vertex (or index) after the first connects a line to the previous vertex.
- */
- LINE_STRIP = WebGLConstants.LINE_STRIP,
- /**
- * Triangles primitive where each three vertices (or indices) is a triangle. Triangles do not necessarily share edges.
- */
- TRIANGLES = WebGLConstants.TRIANGLES,
- /**
- * Triangle strip primitive where each vertex (or index) after the first two connect to
- * the previous two vertices forming a triangle. For example, this can be used to model a wall.
- */
- TRIANGLE_STRIP = WebGLConstants.TRIANGLE_STRIP,
- /**
- * Triangle fan primitive where each vertex (or index) after the first two connect to
- * the previous vertex and the first vertex forming a triangle. For example, this can be used
- * to model a cone or circle.
- */
- TRIANGLE_FAN = WebGLConstants.TRIANGLE_FAN
- }
- /**
- * Base class for proxying requested made by {@link Resource}.
- */
- export class Proxy {
- constructor();
- /**
- * Get the final URL to use to request a given resource.
- * @param resource - The resource to request.
- * @returns proxied resource
- */
- getURL(resource: string): string;
- }
- /**
- * Defines functions for 2nd order polynomial functions of one variable with only real coefficients.
- */
- export namespace QuadraticRealPolynomial {
- /**
- * Provides the discriminant of the quadratic equation from the supplied coefficients.
- * @param a - The coefficient of the 2nd order monomial.
- * @param b - The coefficient of the 1st order monomial.
- * @param c - The coefficient of the 0th order monomial.
- * @returns The value of the discriminant.
- */
- function computeDiscriminant(a: number, b: number, c: number): number;
- /**
- * Provides the real valued roots of the quadratic polynomial with the provided coefficients.
- * @param a - The coefficient of the 2nd order monomial.
- * @param b - The coefficient of the 1st order monomial.
- * @param c - The coefficient of the 0th order monomial.
- * @returns The real valued roots.
- */
- function computeRealRoots(a: number, b: number, c: number): number[];
- }
- /**
- * Terrain data for a single tile where the terrain data is represented as a quantized mesh. A quantized
- * mesh consists of three vertex attributes, longitude, latitude, and height. All attributes are expressed
- * as 16-bit values in the range 0 to 32767. Longitude and latitude are zero at the southwest corner
- * of the tile and 32767 at the northeast corner. Height is zero at the minimum height in the tile
- * and 32767 at the maximum height in the tile.
- * @example
- * var data = new Cesium.QuantizedMeshTerrainData({
- * minimumHeight : -100,
- * maximumHeight : 2101,
- * quantizedVertices : new Uint16Array([
- *
- * 0, 0, 32767, 32767,
- *
- * 0, 32767, 0, 32767,
- *
- * 16384, 0, 32767, 16384]),
- * indices : new Uint16Array([0, 3, 1,
- * 0, 2, 3]),
- * boundingSphere : new Cesium.BoundingSphere(new Cesium.Cartesian3(1.0, 2.0, 3.0), 10000),
- * orientedBoundingBox : new Cesium.OrientedBoundingBox(new Cesium.Cartesian3(1.0, 2.0, 3.0), Cesium.Matrix3.fromRotationX(Cesium.Math.PI, new Cesium.Matrix3())),
- * horizonOcclusionPoint : new Cesium.Cartesian3(3.0, 2.0, 1.0),
- * westIndices : [0, 1],
- * southIndices : [0, 1],
- * eastIndices : [2, 3],
- * northIndices : [1, 3],
- * westSkirtHeight : 1.0,
- * southSkirtHeight : 1.0,
- * eastSkirtHeight : 1.0,
- * northSkirtHeight : 1.0
- * });
- * @param options - Object with the following properties:
- * @param options.quantizedVertices - The buffer containing the quantized mesh.
- * @param options.indices - The indices specifying how the quantized vertices are linked
- * together into triangles. Each three indices specifies one triangle.
- * @param options.minimumHeight - The minimum terrain height within the tile, in meters above the ellipsoid.
- * @param options.maximumHeight - The maximum terrain height within the tile, in meters above the ellipsoid.
- * @param options.boundingSphere - A sphere bounding all of the vertices in the mesh.
- * @param [options.orientedBoundingBox] - An OrientedBoundingBox bounding all of the vertices in the mesh.
- * @param options.horizonOcclusionPoint - The horizon occlusion point of the mesh. If this point
- * is below the horizon, the entire tile is assumed to be below the horizon as well.
- * The point is expressed in ellipsoid-scaled coordinates.
- * @param options.westIndices - The indices of the vertices on the western edge of the tile.
- * @param options.southIndices - The indices of the vertices on the southern edge of the tile.
- * @param options.eastIndices - The indices of the vertices on the eastern edge of the tile.
- * @param options.northIndices - The indices of the vertices on the northern edge of the tile.
- * @param options.westSkirtHeight - The height of the skirt to add on the western edge of the tile.
- * @param options.southSkirtHeight - The height of the skirt to add on the southern edge of the tile.
- * @param options.eastSkirtHeight - The height of the skirt to add on the eastern edge of the tile.
- * @param options.northSkirtHeight - The height of the skirt to add on the northern edge of the tile.
- * @param [options.childTileMask = 15] - A bit mask indicating which of this tile's four children exist.
- * If a child's bit is set, geometry will be requested for that tile as well when it
- * is needed. If the bit is cleared, the child tile is not requested and geometry is
- * instead upsampled from the parent. The bit values are as follows:
- * <table>
- * <tr><th>Bit Position</th><th>Bit Value</th><th>Child Tile</th></tr>
- * <tr><td>0</td><td>1</td><td>Southwest</td></tr>
- * <tr><td>1</td><td>2</td><td>Southeast</td></tr>
- * <tr><td>2</td><td>4</td><td>Northwest</td></tr>
- * <tr><td>3</td><td>8</td><td>Northeast</td></tr>
- * </table>
- * @param [options.createdByUpsampling = false] - True if this instance was created by upsampling another instance;
- * otherwise, false.
- * @param [options.encodedNormals] - The buffer containing per vertex normals, encoded using 'oct' encoding
- * @param [options.waterMask] - The buffer containing the watermask.
- * @param [options.credits] - Array of credits for this tile.
- */
- export class QuantizedMeshTerrainData {
- constructor(options: {
- quantizedVertices: Uint16Array;
- indices: Uint16Array | Uint32Array;
- minimumHeight: number;
- maximumHeight: number;
- boundingSphere: BoundingSphere;
- orientedBoundingBox?: OrientedBoundingBox;
- horizonOcclusionPoint: Cartesian3;
- westIndices: number[];
- southIndices: number[];
- eastIndices: number[];
- northIndices: number[];
- westSkirtHeight: number;
- southSkirtHeight: number;
- eastSkirtHeight: number;
- northSkirtHeight: number;
- childTileMask?: number;
- createdByUpsampling?: boolean;
- encodedNormals?: Uint8Array;
- waterMask?: Uint8Array;
- credits?: Credit[];
- });
-
- credits: Credit[];
-
- waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement;
-
- upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise<QuantizedMeshTerrainData> | undefined;
-
- interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number;
-
- isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean;
-
- wasCreatedByUpsampling(): boolean;
- }
- export namespace QuarticRealPolynomial {
-
- function computeDiscriminant(a: number, b: number, c: number, d: number, e: number): number;
-
- function computeRealRoots(a: number, b: number, c: number, d: number, e: number): number[];
- }
- export class Quaternion {
- constructor(x?: number, y?: number, z?: number, w?: number);
- /**
- * The X component.
- */
- x: number;
- /**
- * The Y component.
- */
- y: number;
- /**
- * The Z component.
- */
- z: number;
- /**
- * The W component.
- */
- w: number;
- /**
- * Computes a quaternion representing a rotation around an axis.
- * @param axis - The axis of rotation.
- * @param angle - The angle in radians to rotate around the axis.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Quaternion instance if one was not provided.
- */
- static fromAxisAngle(axis: Cartesian3, angle: number, result?: Quaternion): Quaternion;
- /**
- * Computes a Quaternion from the provided Matrix3 instance.
- * @param matrix - The rotation matrix.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Quaternion instance if one was not provided.
- */
- static fromRotationMatrix(matrix: Matrix3, result?: Quaternion): Quaternion;
- /**
- * Computes a rotation from the given heading, pitch and roll angles. Heading is the rotation about the
- * negative z axis. Pitch is the rotation about the negative y axis. Roll is the rotation about
- * the positive x axis.
- * @param headingPitchRoll - The rotation expressed as a heading, pitch and roll.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Quaternion instance if none was provided.
- */
- static fromHeadingPitchRoll(headingPitchRoll: HeadingPitchRoll, result?: Quaternion): Quaternion;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Quaternion, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Quaternion instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Quaternion): Quaternion;
- /**
- * The number of elements used to store the object into an array in its interpolatable form.
- */
- static packedInterpolationLength: number;
- /**
- * Converts a packed array into a form suitable for interpolation.
- * @param packedArray - The packed array.
- * @param [startingIndex = 0] - The index of the first element to be converted.
- * @param [lastIndex = packedArray.length] - The index of the last element to be converted.
- * @param [result] - The object into which to store the result.
- */
- static convertPackedArrayForInterpolation(packedArray: number[], startingIndex?: number, lastIndex?: number, result?: number[]): void;
- /**
- * Retrieves an instance from a packed array converted with {@link convertPackedArrayForInterpolation}.
- * @param array - The array previously packed for interpolation.
- * @param sourceArray - The original packed array.
- * @param [firstIndex = 0] - The firstIndex used to convert the array.
- * @param [lastIndex = packedArray.length] - The lastIndex used to convert the array.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Quaternion instance if one was not provided.
- */
- static unpackInterpolationResult(array: number[], sourceArray: number[], firstIndex?: number, lastIndex?: number, result?: Quaternion): Quaternion;
- /**
- * Duplicates a Quaternion instance.
- * @param quaternion - The quaternion to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Quaternion instance if one was not provided. (Returns undefined if quaternion is undefined)
- */
- static clone(quaternion: Quaternion, result?: Quaternion): Quaternion;
- /**
- * Computes the conjugate of the provided quaternion.
- * @param quaternion - The quaternion to conjugate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static conjugate(quaternion: Quaternion, result: Quaternion): Quaternion;
- /**
- * Computes magnitude squared for the provided quaternion.
- * @param quaternion - The quaternion to conjugate.
- * @returns The magnitude squared.
- */
- static magnitudeSquared(quaternion: Quaternion): number;
- /**
- * Computes magnitude for the provided quaternion.
- * @param quaternion - The quaternion to conjugate.
- * @returns The magnitude.
- */
- static magnitude(quaternion: Quaternion): number;
- /**
- * Computes the normalized form of the provided quaternion.
- * @param quaternion - The quaternion to normalize.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static normalize(quaternion: Quaternion, result: Quaternion): Quaternion;
- /**
- * Computes the inverse of the provided quaternion.
- * @param quaternion - The quaternion to normalize.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static inverse(quaternion: Quaternion, result: Quaternion): Quaternion;
- /**
- * Computes the componentwise sum of two quaternions.
- * @param left - The first quaternion.
- * @param right - The second quaternion.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static add(left: Quaternion, right: Quaternion, result: Quaternion): Quaternion;
- /**
- * Computes the componentwise difference of two quaternions.
- * @param left - The first quaternion.
- * @param right - The second quaternion.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static subtract(left: Quaternion, right: Quaternion, result: Quaternion): Quaternion;
- /**
- * Negates the provided quaternion.
- * @param quaternion - The quaternion to be negated.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static negate(quaternion: Quaternion, result: Quaternion): Quaternion;
- /**
- * Computes the dot (scalar) product of two quaternions.
- * @param left - The first quaternion.
- * @param right - The second quaternion.
- * @returns The dot product.
- */
- static dot(left: Quaternion, right: Quaternion): number;
- /**
- * Computes the product of two quaternions.
- * @param left - The first quaternion.
- * @param right - The second quaternion.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiply(left: Quaternion, right: Quaternion, result: Quaternion): Quaternion;
- /**
- * Multiplies the provided quaternion componentwise by the provided scalar.
- * @param quaternion - The quaternion to be scaled.
- * @param scalar - The scalar to multiply with.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static multiplyByScalar(quaternion: Quaternion, scalar: number, result: Quaternion): Quaternion;
- /**
- * Divides the provided quaternion componentwise by the provided scalar.
- * @param quaternion - The quaternion to be divided.
- * @param scalar - The scalar to divide by.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static divideByScalar(quaternion: Quaternion, scalar: number, result: Quaternion): Quaternion;
- /**
- * Computes the axis of rotation of the provided quaternion.
- * @param quaternion - The quaternion to use.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static computeAxis(quaternion: Quaternion, result: Cartesian3): Cartesian3;
- /**
- * Computes the angle of rotation of the provided quaternion.
- * @param quaternion - The quaternion to use.
- * @returns The angle of rotation.
- */
- static computeAngle(quaternion: Quaternion): number;
- /**
- * Computes the linear interpolation or extrapolation at t using the provided quaternions.
- * @param start - The value corresponding to t at 0.0.
- * @param end - The value corresponding to t at 1.0.
- * @param t - The point along t at which to interpolate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static lerp(start: Quaternion, end: Quaternion, t: number, result: Quaternion): Quaternion;
- /**
- * Computes the spherical linear interpolation or extrapolation at t using the provided quaternions.
- * @param start - The value corresponding to t at 0.0.
- * @param end - The value corresponding to t at 1.0.
- * @param t - The point along t at which to interpolate.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static slerp(start: Quaternion, end: Quaternion, t: number, result: Quaternion): Quaternion;
- /**
- * The logarithmic quaternion function.
- * @param quaternion - The unit quaternion.
- * @param result - The object onto which to store the result.
- * @returns The modified result parameter.
- */
- static log(quaternion: Quaternion, result: Cartesian3): Cartesian3;
-
- static exp(cartesian: Cartesian3, result: Quaternion): Quaternion;
-
- static computeInnerQuadrangle(q0: Quaternion, q1: Quaternion, q2: Quaternion, result: Quaternion): Quaternion;
-
- static squad(q0: Quaternion, q1: Quaternion, s0: Quaternion, s1: Quaternion, t: number, result: Quaternion): Quaternion;
-
- static fastSlerp(start: Quaternion, end: Quaternion, t: number, result: Quaternion): Quaternion;
-
- static fastSquad(q0: Quaternion, q1: Quaternion, s0: Quaternion, s1: Quaternion, t: number, result: Quaternion): Quaternion;
-
- static equals(left?: Quaternion, right?: Quaternion): boolean;
-
- static equalsEpsilon(left?: Quaternion, right?: Quaternion, epsilon?: number): boolean;
-
- static readonly ZERO: Quaternion;
-
- static readonly IDENTITY: Quaternion;
-
- clone(result?: Quaternion): Quaternion;
-
- equals(right?: Quaternion): boolean;
-
- equalsEpsilon(right?: Quaternion, epsilon?: number): boolean;
-
- toString(): string;
- }
- export class QuaternionSpline {
- constructor(options: {
- times: number[];
- points: Quaternion[];
- });
-
- readonly times: number[];
-
- readonly points: Quaternion[];
-
- findTimeInterval(time: number): number;
-
- wrapTime(time: number): number;
-
- clampTime(time: number): number;
-
- evaluate(time: number, result?: Quaternion): Quaternion;
- }
- export class Queue {
- constructor();
- /**
- * The length of the queue.
- */
- readonly length: number;
- /**
- * Enqueues the specified item.
- * @param item - The item to enqueue.
- */
- enqueue(item: any): void;
- /**
- * Dequeues an item. Returns undefined if the queue is empty.
- * @returns The the dequeued item.
- */
- dequeue(): any;
- /**
- * Returns the item at the front of the queue. Returns undefined if the queue is empty.
- * @returns The item at the front of the queue.
- */
- peek(): any;
- /**
- * Check whether this queue contains the specified item.
- * @param item - The item to search for.
- */
- contains(item: any): void;
- /**
- * Remove all items from the queue.
- */
- clear(): void;
- /**
- * Sort the items in the queue in-place.
- * @param compareFunction - A function that defines the sort order.
- */
- sort(compareFunction: Queue.Comparator): void;
- }
- export namespace Queue {
-
- type Comparator = (a: any, b: any) => number;
- }
- export class Ray {
- constructor(origin?: Cartesian3, direction?: Cartesian3);
- /**
- * The origin of the ray.
- */
- origin: Cartesian3;
- /**
- * The direction of the ray.
- */
- direction: Cartesian3;
- /**
- * Duplicates a Ray instance.
- * @param ray - The ray to duplicate.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Ray instance if one was not provided. (Returns undefined if ray is undefined)
- */
- static clone(ray: Ray, result?: Ray): Ray;
- /**
- * Computes the point along the ray given by r(t) = o + t*d,
- * where o is the origin of the ray and d is the direction.
- * @example
- * //Get the first intersection point of a ray and an ellipsoid.
- * var intersection = Cesium.IntersectionTests.rayEllipsoid(ray, ellipsoid);
- * var point = Cesium.Ray.getPoint(ray, intersection.start);
- * @param ray - The ray.
- * @param t - A scalar value.
- * @param [result] - The object in which the result will be stored.
- * @returns The modified result parameter, or a new instance if none was provided.
- */
- static getPoint(ray: Ray, t: number, result?: Cartesian3): Cartesian3;
- }
- /**
- * A two dimensional region specified as longitude and latitude coordinates.
- * @param [west = 0.0] - The westernmost longitude, in radians, in the range [-Pi, Pi].
- * @param [south = 0.0] - The southernmost latitude, in radians, in the range [-Pi/2, Pi/2].
- * @param [east = 0.0] - The easternmost longitude, in radians, in the range [-Pi, Pi].
- * @param [north = 0.0] - The northernmost latitude, in radians, in the range [-Pi/2, Pi/2].
- */
- export class Rectangle {
- constructor(west?: number, south?: number, east?: number, north?: number);
- /**
- * The westernmost longitude in radians in the range [-Pi, Pi].
- */
- west: number;
- /**
- * The southernmost latitude in radians in the range [-Pi/2, Pi/2].
- */
- south: number;
- /**
- * The easternmost longitude in radians in the range [-Pi, Pi].
- */
- east: number;
- /**
- * The northernmost latitude in radians in the range [-Pi/2, Pi/2].
- */
- north: number;
- /**
- * Gets the width of the rectangle in radians.
- */
- readonly width: number;
- /**
- * Gets the height of the rectangle in radians.
- */
- readonly height: number;
- /**
- * The number of elements used to pack the object into an array.
- */
- static packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- static pack(value: Rectangle, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Rectangle instance if one was not provided.
- */
- static unpack(array: number[], startingIndex?: number, result?: Rectangle): Rectangle;
- /**
- * Computes the width of a rectangle in radians.
- * @param rectangle - The rectangle to compute the width of.
- * @returns The width.
- */
- static computeWidth(rectangle: Rectangle): number;
- /**
- * Computes the height of a rectangle in radians.
- * @param rectangle - The rectangle to compute the height of.
- * @returns The height.
- */
- static computeHeight(rectangle: Rectangle): number;
- /**
- * Creates a rectangle given the boundary longitude and latitude in degrees.
- * @example
- * var rectangle = Cesium.Rectangle.fromDegrees(0.0, 20.0, 10.0, 30.0);
- * @param [west = 0.0] - The westernmost longitude in degrees in the range [-180.0, 180.0].
- * @param [south = 0.0] - The southernmost latitude in degrees in the range [-90.0, 90.0].
- * @param [east = 0.0] - The easternmost longitude in degrees in the range [-180.0, 180.0].
- * @param [north = 0.0] - The northernmost latitude in degrees in the range [-90.0, 90.0].
- * @param [result] - The object onto which to store the result, or undefined if a new instance should be created.
- * @returns The modified result parameter or a new Rectangle instance if none was provided.
- */
- static fromDegrees(west?: number, south?: number, east?: number, north?: number, result?: Rectangle): Rectangle;
- /**
- * Creates a rectangle given the boundary longitude and latitude in radians.
- * @example
- * var rectangle = Cesium.Rectangle.fromRadians(0.0, Math.PI/4, Math.PI/8, 3*Math.PI/4);
- * @param [west = 0.0] - The westernmost longitude in radians in the range [-Math.PI, Math.PI].
- * @param [south = 0.0] - The southernmost latitude in radians in the range [-Math.PI/2, Math.PI/2].
- * @param [east = 0.0] - The easternmost longitude in radians in the range [-Math.PI, Math.PI].
- * @param [north = 0.0] - The northernmost latitude in radians in the range [-Math.PI/2, Math.PI/2].
- * @param [result] - The object onto which to store the result, or undefined if a new instance should be created.
- * @returns The modified result parameter or a new Rectangle instance if none was provided.
- */
- static fromRadians(west?: number, south?: number, east?: number, north?: number, result?: Rectangle): Rectangle;
- /**
- * Creates the smallest possible Rectangle that encloses all positions in the provided array.
- * @param cartographics - The list of Cartographic instances.
- * @param [result] - The object onto which to store the result, or undefined if a new instance should be created.
- * @returns The modified result parameter or a new Rectangle instance if none was provided.
- */
- static fromCartographicArray(cartographics: Cartographic[], result?: Rectangle): Rectangle;
- /**
- * Creates the smallest possible Rectangle that encloses all positions in the provided array.
- * @param cartesians - The list of Cartesian instances.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid the cartesians are on.
- * @param [result] - The object onto which to store the result, or undefined if a new instance should be created.
- * @returns The modified result parameter or a new Rectangle instance if none was provided.
- */
- static fromCartesianArray(cartesians: Cartesian3[], ellipsoid?: Ellipsoid, result?: Rectangle): Rectangle;
- /**
- * Duplicates a Rectangle.
- * @param rectangle - The rectangle to clone.
- * @param [result] - The object onto which to store the result, or undefined if a new instance should be created.
- * @returns The modified result parameter or a new Rectangle instance if none was provided. (Returns undefined if rectangle is undefined)
- */
- static clone(rectangle: Rectangle, result?: Rectangle): Rectangle;
- /**
- * Compares the provided Rectangles componentwise and returns
- * <code>true</code> if they pass an absolute or relative tolerance test,
- * <code>false</code> otherwise.
- * @param [left] - The first Rectangle.
- * @param [right] - The second Rectangle.
- * @param [absoluteEpsilon = 0] - The absolute epsilon tolerance to use for equality testing.
- * @returns <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
- */
- static equalsEpsilon(left?: Rectangle, right?: Rectangle, absoluteEpsilon?: number): boolean;
- /**
- * Duplicates this Rectangle.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Rectangle instance if none was provided.
- */
- clone(result?: Rectangle): Rectangle;
- /**
- * Compares the provided Rectangle with this Rectangle componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The Rectangle to compare.
- * @returns <code>true</code> if the Rectangles are equal, <code>false</code> otherwise.
- */
- equals(other?: Rectangle): boolean;
- /**
- * Compares the provided rectangles and returns <code>true</code> if they are equal,
- * <code>false</code> otherwise.
- * @param [left] - The first Rectangle.
- * @param [right] - The second Rectangle.
- * @returns <code>true</code> if left and right are equal; otherwise <code>false</code>.
- */
- static equals(left?: Rectangle, right?: Rectangle): boolean;
- /**
- * Compares the provided Rectangle with this Rectangle componentwise and returns
- * <code>true</code> if they are within the provided epsilon,
- * <code>false</code> otherwise.
- * @param [other] - The Rectangle to compare.
- * @param [epsilon = 0] - The epsilon to use for equality testing.
- * @returns <code>true</code> if the Rectangles are within the provided epsilon, <code>false</code> otherwise.
- */
- equalsEpsilon(other?: Rectangle, epsilon?: number): boolean;
- /**
- * Checks a Rectangle's properties and throws if they are not in valid ranges.
- * @param rectangle - The rectangle to validate
- */
- static validate(rectangle: Rectangle): void;
- /**
- * Computes the southwest corner of a rectangle.
- * @param rectangle - The rectangle for which to find the corner
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if none was provided.
- */
- static southwest(rectangle: Rectangle, result?: Cartographic): Cartographic;
- /**
- * Computes the northwest corner of a rectangle.
- * @param rectangle - The rectangle for which to find the corner
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if none was provided.
- */
- static northwest(rectangle: Rectangle, result?: Cartographic): Cartographic;
- /**
- * Computes the northeast corner of a rectangle.
- * @param rectangle - The rectangle for which to find the corner
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if none was provided.
- */
- static northeast(rectangle: Rectangle, result?: Cartographic): Cartographic;
- /**
- * Computes the southeast corner of a rectangle.
- * @param rectangle - The rectangle for which to find the corner
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if none was provided.
- */
- static southeast(rectangle: Rectangle, result?: Cartographic): Cartographic;
- /**
- * Computes the center of a rectangle.
- * @param rectangle - The rectangle for which to find the center
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartographic instance if none was provided.
- */
- static center(rectangle: Rectangle, result?: Cartographic): Cartographic;
- /**
- * Computes the intersection of two rectangles. This function assumes that the rectangle's coordinates are
- * latitude and longitude in radians and produces a correct intersection, taking into account the fact that
- * the same angle can be represented with multiple values as well as the wrapping of longitude at the
- * anti-meridian. For a simple intersection that ignores these factors and can be used with projected
- * coordinates, see {@link Rectangle.simpleIntersection}.
- * @param rectangle - On rectangle to find an intersection
- * @param otherRectangle - Another rectangle to find an intersection
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter, a new Rectangle instance if none was provided or undefined if there is no intersection.
- */
- static intersection(rectangle: Rectangle, otherRectangle: Rectangle, result?: Rectangle): Rectangle | undefined;
- /**
- * Computes a simple intersection of two rectangles. Unlike {@link Rectangle.intersection}, this function
- * does not attempt to put the angular coordinates into a consistent range or to account for crossing the
- * anti-meridian. As such, it can be used for rectangles where the coordinates are not simply latitude
- * and longitude (i.e. projected coordinates).
- * @param rectangle - On rectangle to find an intersection
- * @param otherRectangle - Another rectangle to find an intersection
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter, a new Rectangle instance if none was provided or undefined if there is no intersection.
- */
- static simpleIntersection(rectangle: Rectangle, otherRectangle: Rectangle, result?: Rectangle): Rectangle | undefined;
-
- static union(rectangle: Rectangle, otherRectangle: Rectangle, result?: Rectangle): Rectangle;
-
- static expand(rectangle: Rectangle, cartographic: Cartographic, result?: Rectangle): Rectangle;
-
- static contains(rectangle: Rectangle, cartographic: Cartographic): boolean;
-
- static subsample(rectangle: Rectangle, ellipsoid?: Ellipsoid, surfaceHeight?: number, result?: Cartesian3[]): Cartesian3[];
-
- static readonly MAX_VALUE: Rectangle;
- }
- export class RectangleGeometry {
- constructor(options: {
- rectangle: Rectangle;
- vertexFormat?: VertexFormat;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- height?: number;
- rotation?: number;
- stRotation?: number;
- extrudedHeight?: number;
- });
-
- static packedLength: number;
-
- static pack(value: RectangleGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: RectangleGeometry): RectangleGeometry;
-
- static computeRectangle(options: {
- rectangle: Rectangle;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- rotation?: number;
- }, result?: Rectangle): Rectangle;
-
- static createGeometry(rectangleGeometry: RectangleGeometry): Geometry | undefined;
- }
- export class RectangleOutlineGeometry {
- constructor(options: {
- rectangle: Rectangle;
- ellipsoid?: Ellipsoid;
- granularity?: number;
- height?: number;
- rotation?: number;
- extrudedHeight?: number;
- });
-
- static packedLength: number;
-
- static pack(value: RectangleOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: RectangleOutlineGeometry): RectangleOutlineGeometry;
-
- static createGeometry(rectangleGeometry: RectangleOutlineGeometry): Geometry | undefined;
- }
- export enum ReferenceFrame {
-
- FIXED = 0,
-
- INERTIAL = 1
- }
- export class Request {
- constructor(options?: {
- url?: string;
- requestFunction?: Request.RequestCallback;
- cancelFunction?: Request.CancelCallback;
- priorityFunction?: Request.PriorityCallback;
- priority?: number;
- throttle?: boolean;
- throttleByServer?: boolean;
- type?: RequestType;
- });
-
- url: string;
-
- requestFunction: Request.RequestCallback;
-
- cancelFunction: Request.CancelCallback;
-
- priorityFunction: Request.PriorityCallback;
-
- priority: number;
-
- readonly throttle: boolean;
-
- readonly throttleByServer: boolean;
-
- readonly type: RequestType;
-
- readonly state: RequestState;
-
- clone(result?: Request): Request;
- }
- export namespace Request {
-
- type RequestCallback = () => Promise<void>;
-
- type CancelCallback = () => void;
-
- type PriorityCallback = () => number;
- }
- export class RequestErrorEvent {
- constructor(statusCode?: number, response?: any, responseHeaders?: string | any);
- /**
- * The HTTP error status code, such as 404. If the error does not have a particular
- * HTTP code, this property will be undefined.
- */
- statusCode: number;
- /**
- * The response included along with the error. If the error does not include a response,
- * this property will be undefined.
- */
- response: any;
- /**
- * The headers included in the response, represented as an object literal of key/value pairs.
- * If the error does not include any headers, this property will be undefined.
- */
- responseHeaders: any;
- /**
- * Creates a string representing this RequestErrorEvent.
- * @returns A string representing the provided RequestErrorEvent.
- */
- toString(): string;
- }
- /**
- * The request scheduler is used to track and constrain the number of active requests in order to prioritize incoming requests. The ability
- * to retain control over the number of requests in CesiumJS is important because due to events such as changes in the camera position,
- * a lot of new requests may be generated and a lot of in-flight requests may become redundant. The request scheduler manually constrains the
- * number of requests so that newer requests wait in a shorter queue and don't have to compete for bandwidth with requests that have expired.
- */
- export namespace RequestScheduler {
-
- var maximumRequests: number;
-
- var maximumRequestsPerServer: number;
-
- var requestsByServer: any;
-
- var throttleRequests: boolean;
- }
- export enum RequestState {
-
- UNISSUED = 0,
-
- ISSUED = 1,
-
- ACTIVE = 2,
-
- RECEIVED = 3,
-
- CANCELLED = 4,
-
- FAILED = 5
- }
- export enum RequestType {
-
- TERRAIN = 0,
-
- IMAGERY = 1,
-
- TILES3D = 2,
-
- OTHER = 3
- }
- export class Resource {
- constructor(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- });
-
- headers: any;
-
- request: Request;
-
- proxy: Proxy;
-
- retryCallback: (...params: any[]) => any;
-
- retryAttempts: number;
-
- static readonly isBlobSupported: boolean;
-
- readonly queryParameters: any;
-
- readonly templateValues: any;
-
- url: string;
-
- readonly extension: string;
-
- isDataUri: boolean;
-
- isBlobUri: boolean;
-
- isCrossOriginUrl: boolean;
-
- hasHeaders: boolean;
-
- toString(): string;
-
- getUrlComponent(query?: boolean, proxy?: boolean): string;
-
- setQueryParameters(params: any, useAsDefault?: boolean): void;
-
- appendQueryParameters(params: any): void;
-
- setTemplateValues(template: any, useAsDefault?: boolean): void;
-
- getDerivedResource(options: {
- url?: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- preserveQueryParameters?: boolean;
- }): Resource;
-
- clone(result?: Resource): Resource;
-
- getBaseUri(includeQuery?: boolean): string;
-
- appendForwardSlash(): void;
-
- fetchArrayBuffer(): Promise<ArrayBuffer> | undefined;
-
- static fetchArrayBuffer(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- }): Promise<ArrayBuffer> | undefined;
-
- fetchBlob(): Promise<Blob> | undefined;
-
- static fetchBlob(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- }): Promise<Blob> | undefined;
-
- fetchImage(options?: {
- preferBlob?: boolean;
- preferImageBitmap?: boolean;
- flipY?: boolean;
- skipColorSpaceConversion?: boolean;
- }): Promise<ImageBitmap> | Promise<HTMLImageElement> | undefined;
-
- static fetchImage(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- flipY?: boolean;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- preferBlob?: boolean;
- preferImageBitmap?: boolean;
- skipColorSpaceConversion?: boolean;
- }): Promise<ImageBitmap> | Promise<HTMLImageElement> | undefined;
-
- fetchText(): Promise<string> | undefined;
-
- static fetchText(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- }): Promise<string> | undefined;
-
- fetchJson(): Promise<any> | undefined;
-
- static fetchJson(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- }): Promise<any> | undefined;
-
- fetchXML(): Promise<XMLDocument> | undefined;
-
- static fetchXML(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- }): Promise<XMLDocument> | undefined;
-
- fetchJsonp(callbackParameterName?: string): Promise<any> | undefined;
-
- static fetchJsonp(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- callbackParameterName?: string;
- }): Promise<any> | undefined;
-
- fetch(options?: {
- responseType?: string;
- headers?: any;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static fetch(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- responseType?: string;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- delete(options?: {
- responseType?: string;
- headers?: any;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static delete(options: {
- url: string;
- data?: any;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- responseType?: string;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- head(options?: {
- responseType?: string;
- headers?: any;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static head(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- responseType?: string;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- options(options?: {
- responseType?: string;
- headers?: any;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static options(options: {
- url: string;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- responseType?: string;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- post(data: any, options?: {
- data?: any;
- responseType?: string;
- headers?: any;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static post(options: {
- url: string;
- data: any;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- responseType?: string;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- put(data: any, options?: {
- responseType?: string;
- headers?: any;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static put(options: {
- url: string;
- data: any;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- responseType?: string;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- patch(data: any, options?: {
- responseType?: string;
- headers?: any;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static patch(options: {
- url: string;
- data: any;
- queryParameters?: any;
- templateValues?: any;
- headers?: any;
- proxy?: Proxy;
- retryCallback?: Resource.RetryCallback;
- retryAttempts?: number;
- request?: Request;
- responseType?: string;
- overrideMimeType?: string;
- }): Promise<any> | undefined;
-
- static readonly DEFAULT: Resource;
- }
- export namespace Resource {
-
- type RetryCallback = (resource?: Resource, error?: Error) => boolean | Promise<boolean>;
- }
- export class RuntimeError extends Error {
- constructor(message?: string);
- /**
- * 'RuntimeError' indicating that this exception was thrown due to a runtime error.
- */
- readonly name: string;
- /**
- * The explanation for why this exception was thrown.
- */
- readonly message: string;
- /**
- * The stack trace of this exception, if available.
- */
- readonly stack: string;
- }
- /**
- * Handles user input events. Custom functions can be added to be executed on
- * when the user enters input.
- * @param [element = document] - The element to add events to.
- */
- export class ScreenSpaceEventHandler {
- constructor(element?: HTMLCanvasElement);
- /**
- * Set a function to be executed on an input event.
- * @param action - Function to be executed when the input event occurs.
- * @param type - The ScreenSpaceEventType of input event.
- * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
- * event occurs.
- */
- setInputAction(action: (...params: any[]) => any, type: number, modifier?: number): void;
- /**
- * Returns the function to be executed on an input event.
- * @param type - The ScreenSpaceEventType of input event.
- * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
- * event occurs.
- * @returns The function to be executed on an input event.
- */
- getInputAction(type: number, modifier?: number): (...params: any[]) => any;
- /**
- * Removes the function to be executed on an input event.
- * @param type - The ScreenSpaceEventType of input event.
- * @param [modifier] - A KeyboardEventModifier key that is held when a <code>type</code>
- * event occurs.
- */
- removeInputAction(type: number, modifier?: number): void;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * <br /><br />
- * If this object was destroyed, it should not be used; calling any function other than
- * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
- * @returns <code>true</code> if this object was destroyed; otherwise, <code>false</code>.
- */
- isDestroyed(): boolean;
- /**
- * Removes listeners held by this object.
- * <br /><br />
- * Once an object is destroyed, it should not be used; calling any function other than
- * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
- * assign the return value (<code>undefined</code>) to the object as done in the example.
- * @example
- * handler = handler && handler.destroy();
- */
- destroy(): void;
-
- static mouseEmulationIgnoreMilliseconds: number;
-
- static touchHoldDelayMilliseconds: number;
- }
- export enum ScreenSpaceEventType {
-
- LEFT_DOWN = 0,
-
- LEFT_UP = 1,
-
- LEFT_CLICK = 2,
-
- LEFT_DOUBLE_CLICK = 3,
-
- RIGHT_DOWN = 5,
-
- RIGHT_UP = 6,
-
- RIGHT_CLICK = 7,
-
- MIDDLE_DOWN = 10,
-
- MIDDLE_UP = 11,
-
- MIDDLE_CLICK = 12,
-
- MOUSE_MOVE = 15,
-
- WHEEL = 16,
-
- PINCH_START = 17,
-
- PINCH_END = 18,
-
- PINCH_MOVE = 19
- }
- export class ShowGeometryInstanceAttribute {
- constructor(show?: boolean);
- /**
- * The values for the attributes stored in a typed array.
- */
- value: Uint8Array;
- /**
- * The datatype of each component in the attribute, e.g., individual elements in
- * {@link ColorGeometryInstanceAttribute#value}.
- */
- readonly componentDatatype: ComponentDatatype;
- /**
- * The number of components in the attributes, i.e., {@link ColorGeometryInstanceAttribute#value}.
- */
- readonly componentsPerAttribute: number;
- /**
- * When <code>true</code> and <code>componentDatatype</code> is an integer format,
- * indicate that the components should be mapped to the range [0, 1] (unsigned)
- * or [-1, 1] (signed) when they are accessed as floating-point for rendering.
- */
- readonly normalize: boolean;
- /**
- * Converts a boolean show to a typed array that can be used to assign a show attribute.
- * @example
- * var attributes = primitive.getGeometryInstanceAttributes('an id');
- * attributes.show = Cesium.ShowGeometryInstanceAttribute.toValue(true, attributes.show);
- * @param show - The show value.
- * @param [result] - The array to store the result in, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined.
- */
- static toValue(show: boolean, result?: Uint8Array): Uint8Array;
- }
- /**
- * Contains functions for finding the Cartesian coordinates of the sun and the moon in the
- * Earth-centered inertial frame.
- */
- export namespace Simon1994PlanetaryPositions {
-
- function computeSunPositionInEarthInertialFrame(julianDate?: JulianDate, result?: Cartesian3): Cartesian3;
-
- function computeMoonPositionInEarthInertialFrame(julianDate?: JulianDate, result?: Cartesian3): Cartesian3;
- }
- export class SimplePolylineGeometry {
- constructor(options: {
- positions: Cartesian3[];
- colors?: Color[];
- colorsPerVertex?: boolean;
- arcType?: ArcType;
- granularity?: number;
- ellipsoid?: Ellipsoid;
- });
-
- packedLength: number;
-
- static pack(value: SimplePolylineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: SimplePolylineGeometry): SimplePolylineGeometry;
-
- static createGeometry(simplePolylineGeometry: SimplePolylineGeometry): Geometry | undefined;
- }
- export class SphereGeometry {
- constructor(options?: {
- radius?: number;
- stackPartitions?: number;
- slicePartitions?: number;
- vertexFormat?: VertexFormat;
- });
-
- static packedLength: number;
-
- static pack(value: SphereGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: SphereGeometry): SphereGeometry;
-
- static createGeometry(sphereGeometry: SphereGeometry): Geometry | undefined;
- }
- export class SphereOutlineGeometry {
- constructor(options?: {
- radius?: number;
- stackPartitions?: number;
- slicePartitions?: number;
- subdivisions?: number;
- });
-
- static packedLength: number;
-
- static pack(value: SphereOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: SphereOutlineGeometry): SphereOutlineGeometry;
-
- static createGeometry(sphereGeometry: SphereOutlineGeometry): Geometry | undefined;
- }
- export class Spherical {
- constructor(clock?: number, cone?: number, magnitude?: number);
- /**
- * The clock component.
- */
- clock: number;
- /**
- * The cone component.
- */
- cone: number;
- /**
- * The magnitude component.
- */
- magnitude: number;
- /**
- * Converts the provided Cartesian3 into Spherical coordinates.
- * @param cartesian3 - The Cartesian3 to be converted to Spherical.
- * @param [result] - The object in which the result will be stored, if undefined a new instance will be created.
- * @returns The modified result parameter, or a new instance if one was not provided.
- */
- static fromCartesian3(cartesian3: Cartesian3, result?: Spherical): Spherical;
- /**
- * Creates a duplicate of a Spherical.
- * @param spherical - The spherical to clone.
- * @param [result] - The object to store the result into, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined. (Returns undefined if spherical is undefined)
- */
- static clone(spherical: Spherical, result?: Spherical): Spherical;
- /**
- * Computes the normalized version of the provided spherical.
- * @param spherical - The spherical to be normalized.
- * @param [result] - The object to store the result into, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined.
- */
- static normalize(spherical: Spherical, result?: Spherical): Spherical;
- /**
- * Returns true if the first spherical is equal to the second spherical, false otherwise.
- * @param left - The first Spherical to be compared.
- * @param right - The second Spherical to be compared.
- * @returns true if the first spherical is equal to the second spherical, false otherwise.
- */
- static equals(left: Spherical, right: Spherical): boolean;
- /**
- * Returns true if the first spherical is within the provided epsilon of the second spherical, false otherwise.
- * @param left - The first Spherical to be compared.
- * @param right - The second Spherical to be compared.
- * @param [epsilon = 0.0] - The epsilon to compare against.
- * @returns true if the first spherical is within the provided epsilon of the second spherical, false otherwise.
- */
- static equalsEpsilon(left: Spherical, right: Spherical, epsilon?: number): boolean;
- /**
- * Returns true if this spherical is equal to the provided spherical, false otherwise.
- * @param other - The Spherical to be compared.
- * @returns true if this spherical is equal to the provided spherical, false otherwise.
- */
- equals(other: Spherical): boolean;
- /**
- * Creates a duplicate of this Spherical.
- * @param [result] - The object to store the result into, if undefined a new instance will be created.
- * @returns The modified result parameter or a new instance if result was undefined.
- */
- clone(result?: Spherical): Spherical;
- /**
- * Returns true if this spherical is within the provided epsilon of the provided spherical, false otherwise.
- * @param other - The Spherical to be compared.
- * @param epsilon - The epsilon to compare against.
- * @returns true if this spherical is within the provided epsilon of the provided spherical, false otherwise.
- */
- equalsEpsilon(other: Spherical, epsilon: number): boolean;
- /**
- * Returns a string representing this instance in the format (clock, cone, magnitude).
- * @returns A string representing this instance.
- */
- toString(): string;
- }
- /**
- * Creates a curve parameterized and evaluated by time. This type describes an interface
- * and is not intended to be instantiated directly.
- */
- export class Spline {
- constructor();
- /**
- * An array of times for the control points.
- */
- times: number[];
- /**
- * An array of control points.
- */
- points: Cartesian3[] | Quaternion[];
- /**
- * Evaluates the curve at a given time.
- * @param time - The time at which to evaluate the curve.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of the point on the curve at the given time.
- */
- evaluate(time: number, result?: Cartesian3 | Quaternion | number[]): Cartesian3 | Quaternion | number[];
- /**
- * Finds an index <code>i</code> in <code>times</code> such that the parameter
- * <code>time</code> is in the interval <code>[times[i], times[i + 1]]</code>.
- * @param time - The time.
- * @param startIndex - The index from which to start the search.
- * @returns The index for the element at the start of the interval.
- */
- findTimeInterval(time: number, startIndex: number): number;
- /**
- * Wraps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, wrapped around the animation period.
- */
- wrapTime(time: number): number;
- /**
- * Clamps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, clamped to the animation period.
- */
- clampTime(time: number): number;
- }
- /**
- * A wrapper around a web worker that allows scheduling tasks for a given worker,
- * returning results asynchronously via a promise.
- *
- * The Worker is not constructed until a task is scheduled.
- * @param workerPath - The Url to the worker. This can either be an absolute path or relative to the Cesium Workers folder.
- * @param [maximumActiveTasks = Number.POSITIVE_INFINITY] - The maximum number of active tasks. Once exceeded,
- * scheduleTask will not queue any more tasks, allowing
- * work to be rescheduled in future frames.
- */
- export class TaskProcessor {
- constructor(workerPath: string, maximumActiveTasks?: number);
- /**
- * Schedule a task to be processed by the web worker asynchronously. If there are currently more
- * tasks active than the maximum set by the constructor, will immediately return undefined.
- * Otherwise, returns a promise that will resolve to the result posted back by the worker when
- * finished.
- * @example
- * var taskProcessor = new Cesium.TaskProcessor('myWorkerPath');
- * var promise = taskProcessor.scheduleTask({
- * someParameter : true,
- * another : 'hello'
- * });
- * if (!Cesium.defined(promise)) {
- *
- * } else {
- * Cesium.when(promise, function(result) {
- *
- * });
- * }
- * @param parameters - Any input data that will be posted to the worker.
- * @param [transferableObjects] - An array of objects contained in parameters that should be
- * transferred to the worker instead of copied.
- * @returns Either a promise that will resolve to the result when available, or undefined
- * if there are too many active tasks,
- */
- scheduleTask(parameters: any, transferableObjects?: object[]): Promise<object> | undefined;
- /**
- * Posts a message to a web worker with configuration to initialize loading
- * and compiling a web assembly module asychronously, as well as an optional
- * fallback JavaScript module to use if Web Assembly is not supported.
- * @param [webAssemblyOptions] - An object with the following properties:
- * @param [webAssemblyOptions.modulePath] - The path of the web assembly JavaScript wrapper module.
- * @param [webAssemblyOptions.wasmBinaryFile] - The path of the web assembly binary file.
- * @param [webAssemblyOptions.fallbackModulePath] - The path of the fallback JavaScript module to use if web assembly is not supported.
- * @returns A promise that resolves to the result when the web worker has loaded and compiled the web assembly module and is ready to process tasks.
- */
- initWebAssemblyModule(webAssemblyOptions?: {
- modulePath?: string;
- wasmBinaryFile?: string;
- fallbackModulePath?: string;
- }): Promise<object>;
-
- isDestroyed(): boolean;
-
- destroy(): void;
- }
- export class TerrainData {
- constructor();
- /**
- * An array of credits for this tile.
- */
- credits: Credit[];
- /**
- * The water mask included in this terrain data, if any. A water mask is a rectangular
- * Uint8Array or image where a value of 255 indicates water and a value of 0 indicates land.
- * Values in between 0 and 255 are allowed as well to smoothly blend between land and water.
- */
- waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement;
- /**
- * Computes the terrain height at a specified longitude and latitude.
- * @param rectangle - The rectangle covered by this terrain data.
- * @param longitude - The longitude in radians.
- * @param latitude - The latitude in radians.
- * @returns The terrain height at the specified position. If the position
- * is outside the rectangle, this method will extrapolate the height, which is likely to be wildly
- * incorrect for positions far outside the rectangle.
- */
- interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number;
- /**
- * Determines if a given child tile is available, based on the
- * {@link TerrainData#childTileMask}. The given child tile coordinates are assumed
- * to be one of the four children of this tile. If non-child tile coordinates are
- * given, the availability of the southeast child tile is returned.
- * @param thisX - The tile X coordinate of this (the parent) tile.
- * @param thisY - The tile Y coordinate of this (the parent) tile.
- * @param childX - The tile X coordinate of the child tile to check for availability.
- * @param childY - The tile Y coordinate of the child tile to check for availability.
- * @returns True if the child tile is available; otherwise, false.
- */
- isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean;
- /**
- * Upsamples this terrain data for use by a descendant tile.
- * @param tilingScheme - The tiling scheme of this terrain data.
- * @param thisX - The X coordinate of this tile in the tiling scheme.
- * @param thisY - The Y coordinate of this tile in the tiling scheme.
- * @param thisLevel - The level of this tile in the tiling scheme.
- * @param descendantX - The X coordinate within the tiling scheme of the descendant tile for which we are upsampling.
- * @param descendantY - The Y coordinate within the tiling scheme of the descendant tile for which we are upsampling.
- * @param descendantLevel - The level within the tiling scheme of the descendant tile for which we are upsampling.
- * @returns A promise for upsampled terrain data for the descendant tile,
- * or undefined if too many asynchronous upsample operations are in progress and the request has been
- * deferred.
- */
- upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise<TerrainData> | undefined;
- /**
- * Gets a value indicating whether or not this terrain data was created by upsampling lower resolution
- * terrain data. If this value is false, the data was obtained from some other source, such
- * as by downloading it from a remote server. This method should return true for instances
- * returned from a call to {@link TerrainData#upsample}.
- * @returns True if this instance was created by upsampling; otherwise, false.
- */
- wasCreatedByUpsampling(): boolean;
- }
- /**
- * Provides terrain or other geometry for the surface of an ellipsoid. The surface geometry is
- * organized into a pyramid of tiles according to a {@link TilingScheme}. This type describes an
- * interface and is not intended to be instantiated directly.
- */
- export class TerrainProvider {
- constructor();
- /**
- * Gets an event that is raised when the terrain provider encounters an asynchronous error.. By subscribing
- * to the event, you will be notified of the error and can potentially recover from it. Event listeners
- * are passed an instance of {@link TileProviderError}.
- */
- readonly errorEvent: Event;
- /**
- * Gets the credit to display when this terrain provider is active. Typically this is used to credit
- * the source of the terrain. This function should
- * not be called before {@link TerrainProvider#ready} returns true.
- */
- readonly credit: Credit;
- /**
- * Gets the tiling scheme used by the provider. This function should
- * not be called before {@link TerrainProvider#ready} returns true.
- */
- readonly tilingScheme: TilingScheme;
- /**
- * Gets a value indicating whether or not the provider is ready for use.
- */
- readonly ready: boolean;
- /**
- * Gets a promise that resolves to true when the provider is ready for use.
- */
- readonly readyPromise: Promise<boolean>;
- /**
- * Gets a value indicating whether or not the provider includes a water mask. The water mask
- * indicates which areas of the globe are water rather than land, so they can be rendered
- * as a reflective surface with animated waves. This function should not be
- * called before {@link TerrainProvider#ready} returns true.
- */
- readonly hasWaterMask: boolean;
- /**
- * Gets a value indicating whether or not the requested tiles include vertex normals.
- * This function should not be called before {@link TerrainProvider#ready} returns true.
- */
- readonly hasVertexNormals: boolean;
- /**
- * Gets an object that can be used to determine availability of terrain from this provider, such as
- * at points and in rectangles. This function should not be called before
- * {@link TerrainProvider#ready} returns true. This property may be undefined if availability
- * information is not available.
- */
- readonly availability: TileAvailability;
- /**
- * Gets a list of indices for a triangle mesh representing a regular grid. Calling
- * this function multiple times with the same grid width and height returns the
- * same list of indices. The total number of vertices must be less than or equal
- * to 65536.
- * @param width - The number of vertices in the regular grid in the horizontal direction.
- * @param height - The number of vertices in the regular grid in the vertical direction.
- * @returns The list of indices. Uint16Array gets returned for 64KB or less and Uint32Array for 4GB or less.
- */
- static getRegularGridIndices(width: number, height: number): Uint16Array | Uint32Array;
-
- static heightmapTerrainQuality: number;
-
- static getEstimatedLevelZeroGeometricErrorForAHeightmap(ellipsoid: Ellipsoid, tileImageWidth: number, numberOfTilesAtLevelZero: number): number;
-
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
-
- getLevelMaximumGeometricError(level: number): number;
-
- getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
-
- loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
- }
- export class TileAvailability {
- constructor(tilingScheme: TilingScheme, maximumLevel: number);
- /**
- * Marks a rectangular range of tiles in a particular level as being available. For best performance,
- * add your ranges in order of increasing level.
- * @param level - The level.
- * @param startX - The X coordinate of the first available tiles at the level.
- * @param startY - The Y coordinate of the first available tiles at the level.
- * @param endX - The X coordinate of the last available tiles at the level.
- * @param endY - The Y coordinate of the last available tiles at the level.
- */
- addAvailableTileRange(level: number, startX: number, startY: number, endX: number, endY: number): void;
- /**
- * Determines the level of the most detailed tile covering the position. This function
- * usually completes in time logarithmic to the number of rectangles added with
- * {@link TileAvailability#addAvailableTileRange}.
- * @param position - The position for which to determine the maximum available level. The height component is ignored.
- * @returns The level of the most detailed tile covering the position.
- */
- computeMaximumLevelAtPosition(position: Cartographic): number;
- /**
- * Finds the most detailed level that is available _everywhere_ within a given rectangle. More detailed
- * tiles may be available in parts of the rectangle, but not the whole thing. The return value of this
- * function may be safely passed to {@link sampleTerrain} for any position within the rectangle. This function
- * usually completes in time logarithmic to the number of rectangles added with
- * {@link TileAvailability#addAvailableTileRange}.
- * @param rectangle - The rectangle.
- * @returns The best available level for the entire rectangle.
- */
- computeBestAvailableLevelOverRectangle(rectangle: Rectangle): number;
- /**
- * Determines if a particular tile is available.
- * @param level - The tile level to check.
- * @param x - The X coordinate of the tile to check.
- * @param y - The Y coordinate of the tile to check.
- * @returns True if the tile is available; otherwise, false.
- */
- isTileAvailable(level: number, x: number, y: number): boolean;
- /**
- * Computes a bit mask indicating which of a tile's four children exist.
- * If a child's bit is set, a tile is available for that child. If it is cleared,
- * the tile is not available. The bit values are as follows:
- * <table>
- * <tr><th>Bit Position</th><th>Bit Value</th><th>Child Tile</th></tr>
- * <tr><td>0</td><td>1</td><td>Southwest</td></tr>
- * <tr><td>1</td><td>2</td><td>Southeast</td></tr>
- * <tr><td>2</td><td>4</td><td>Northwest</td></tr>
- * <tr><td>3</td><td>8</td><td>Northeast</td></tr>
- * </table>
- * @param level - The level of the parent tile.
- * @param x - The X coordinate of the parent tile.
- * @param y - The Y coordinate of the parent tile.
- * @returns The bit mask indicating child availability.
- */
- computeChildMaskForTile(level: number, x: number, y: number): number;
- }
- export class TileProviderError {
- constructor(provider: ImageryProvider | TerrainProvider, message: string, x?: number, y?: number, level?: number, timesRetried?: number, error?: Error);
- /**
- * The {@link ImageryProvider} or {@link TerrainProvider} that experienced the error.
- */
- provider: ImageryProvider | TerrainProvider;
- /**
- * The message describing the error.
- */
- message: string;
- /**
- * The X coordinate of the tile that experienced the error. If the error is not specific
- * to a particular tile, this property will be undefined.
- */
- x: number;
- /**
- * The Y coordinate of the tile that experienced the error. If the error is not specific
- * to a particular tile, this property will be undefined.
- */
- y: number;
- /**
- * The level-of-detail of the tile that experienced the error. If the error is not specific
- * to a particular tile, this property will be undefined.
- */
- level: number;
- /**
- * The number of times this operation has been retried.
- */
- timesRetried: number;
- /**
- * True if the failed operation should be retried; otherwise, false. The imagery or terrain provider
- * will set the initial value of this property before raising the event, but any listeners
- * can change it. The value after the last listener is invoked will be acted upon.
- */
- retry: boolean;
- /**
- * The error or exception that occurred, if any.
- */
- error: Error;
- /**
- * Handles an error in an {@link ImageryProvider} or {@link TerrainProvider} by raising an event if it has any listeners, or by
- * logging the error to the console if the event has no listeners. This method also tracks the number
- * of times the operation has been retried and will automatically retry if requested to do so by the
- * event listeners.
- * @param previousError - The error instance returned by this function the last
- * time it was called for this error, or undefined if this is the first time this error has
- * occurred.
- * @param provider - The imagery or terrain provider that encountered the error.
- * @param event - The event to raise to inform listeners of the error.
- * @param message - The message describing the error.
- * @param x - The X coordinate of the tile that experienced the error, or undefined if the
- * error is not specific to a particular tile.
- * @param y - The Y coordinate of the tile that experienced the error, or undefined if the
- * error is not specific to a particular tile.
- * @param level - The level-of-detail of the tile that experienced the error, or undefined if the
- * error is not specific to a particular tile.
- * @param retryFunction - The function to call to retry the operation. If undefined, the
- * operation will not be retried.
- * @param [errorDetails] - The error or exception that occurred, if any.
- * @returns The error instance that was passed to the event listeners and that
- * should be passed to this function the next time it is called for the same error in order
- * to track retry counts.
- */
- static handleError(previousError: TileProviderError, provider: ImageryProvider | TerrainProvider, event: Event, message: string, x: number, y: number, level: number, retryFunction: TileProviderError.RetryFunction, errorDetails?: Error): TileProviderError;
- /**
- * Handles success of an operation by resetting the retry count of a previous error, if any. This way,
- * if the error occurs again in the future, the listeners will be informed that it has not yet been retried.
- * @param previousError - The previous error, or undefined if this operation has
- * not previously resulted in an error.
- */
- static handleSuccess(previousError: TileProviderError): void;
- }
- export namespace TileProviderError {
-
- type RetryFunction = () => void;
- }
- export class TilingScheme {
- constructor();
- /**
- * Gets the ellipsoid that is tiled by the tiling scheme.
- */
- ellipsoid: Ellipsoid;
- /**
- * Gets the rectangle, in radians, covered by this tiling scheme.
- */
- rectangle: Rectangle;
- /**
- * Gets the map projection used by the tiling scheme.
- */
- projection: MapProjection;
- /**
- * Gets the total number of tiles in the X direction at a specified level-of-detail.
- * @param level - The level-of-detail.
- * @returns The number of tiles in the X direction at the given level.
- */
- getNumberOfXTilesAtLevel(level: number): number;
- /**
- * Gets the total number of tiles in the Y direction at a specified level-of-detail.
- * @param level - The level-of-detail.
- * @returns The number of tiles in the Y direction at the given level.
- */
- getNumberOfYTilesAtLevel(level: number): number;
- /**
- * Transforms a rectangle specified in geodetic radians to the native coordinate system
- * of this tiling scheme.
- * @param rectangle - The rectangle to transform.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the native rectangle if 'result'
- * is undefined.
- */
- rectangleToNativeRectangle(rectangle: Rectangle, result?: Rectangle): Rectangle;
- /**
- * Converts tile x, y coordinates and level to a rectangle expressed in the native coordinates
- * of the tiling scheme.
- * @param x - The integer x coordinate of the tile.
- * @param y - The integer y coordinate of the tile.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the rectangle
- * if 'result' is undefined.
- */
- tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle;
- /**
- * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
- * @param x - The integer x coordinate of the tile.
- * @param y - The integer y coordinate of the tile.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the rectangle
- * if 'result' is undefined.
- */
- tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle;
- /**
- * Calculates the tile x, y coordinates of the tile containing
- * a given cartographic position.
- * @param position - The position.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the tile x, y coordinates
- * if 'result' is undefined.
- */
- positionToTileXY(position: Cartographic, level: number, result?: Cartesian2): Cartesian2;
- }
- /**
- * An interval defined by a start and a stop time; optionally including those times as part of the interval.
- * Arbitrary data can optionally be associated with each instance for used with {@link TimeIntervalCollection}.
- * @example
- *
- *
- * var timeInterval = new Cesium.TimeInterval({
- * start : Cesium.JulianDate.fromIso8601('1980-08-01T00:00:00Z'),
- * stop : Cesium.JulianDate.fromIso8601('1980-08-02T00:00:00Z'),
- * isStartIncluded : true,
- * isStopIncluded : false,
- * data : Cesium.Cartesian3.fromDegrees(39.921037, -75.170082)
- * });
- * @example
- *
- *
- * var left = Cesium.TimeInterval.fromIso8601({
- * iso8601 : '2000/2010',
- * data : 2
- * });
- *
- * var right = Cesium.TimeInterval.fromIso8601({
- * iso8601 : '1995/2005',
- * data : 3
- * });
- *
- *
- *
- *
- *
- *
- * var intersection = new Cesium.TimeInterval();
- * Cesium.TimeInterval.intersect(left, right, intersection, function(leftData, rightData) {
- * return leftData + rightData;
- * });
- * @example
- *
- * var dateToCheck = Cesium.JulianDate.fromIso8601('1982-09-08T11:30:00Z');
- * var containsDate = Cesium.TimeInterval.contains(timeInterval, dateToCheck);
- * @param [options] - Object with the following properties:
- * @param [options.start = new JulianDate()] - The start time of the interval.
- * @param [options.stop = new JulianDate()] - The stop time of the interval.
- * @param [options.isStartIncluded = true] - <code>true</code> if <code>options.start</code> is included in the interval, <code>false</code> otherwise.
- * @param [options.isStopIncluded = true] - <code>true</code> if <code>options.stop</code> is included in the interval, <code>false</code> otherwise.
- * @param [options.data] - Arbitrary data associated with this interval.
- */
- export class TimeInterval {
- constructor(options?: {
- start?: JulianDate;
- stop?: JulianDate;
- isStartIncluded?: boolean;
- isStopIncluded?: boolean;
- data?: any;
- });
- /**
- * Gets or sets the start time of this interval.
- */
- start: JulianDate;
- /**
- * Gets or sets the stop time of this interval.
- */
- stop: JulianDate;
- /**
- * Gets or sets the data associated with this interval.
- */
- data: any;
- /**
- * Gets or sets whether or not the start time is included in this interval.
- */
- isStartIncluded: boolean;
- /**
- * Gets or sets whether or not the stop time is included in this interval.
- */
- isStopIncluded: boolean;
- /**
- * Gets whether or not this interval is empty.
- */
- readonly isEmpty: boolean;
- /**
- * Creates a new instance from a {@link http:
- * @param options - Object with the following properties:
- * @param options.iso8601 - An ISO 8601 interval.
- * @param [options.isStartIncluded = true] - <code>true</code> if <code>options.start</code> is included in the interval, <code>false</code> otherwise.
- * @param [options.isStopIncluded = true] - <code>true</code> if <code>options.stop</code> is included in the interval, <code>false</code> otherwise.
- * @param [options.data] - Arbitrary data associated with this interval.
- * @param [result] - An existing instance to use for the result.
- * @returns The modified result parameter or a new instance if none was provided.
- */
- static fromIso8601(options: {
- iso8601: string;
- isStartIncluded?: boolean;
- isStopIncluded?: boolean;
- data?: any;
- }, result?: TimeInterval): TimeInterval;
- /**
- * Creates an ISO8601 representation of the provided interval.
- * @param timeInterval - The interval to be converted.
- * @param [precision] - The number of fractional digits used to represent the seconds component. By default, the most precise representation is used.
- * @returns The ISO8601 representation of the provided interval.
- */
- static toIso8601(timeInterval: TimeInterval, precision?: number): string;
- /**
- * Duplicates the provided instance.
- * @param [timeInterval] - The instance to clone.
- * @param [result] - An existing instance to use for the result.
- * @returns The modified result parameter or a new instance if none was provided.
- */
- static clone(timeInterval?: TimeInterval, result?: TimeInterval): TimeInterval;
- /**
- * Compares two instances and returns <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [left] - The first instance.
- * @param [right] - The second instance.
- * @param [dataComparer] - A function which compares the data of the two intervals. If omitted, reference equality is used.
- * @returns <code>true</code> if the dates are equal; otherwise, <code>false</code>.
- */
- static equals(left?: TimeInterval, right?: TimeInterval, dataComparer?: TimeInterval.DataComparer): boolean;
-
- static equalsEpsilon(left?: TimeInterval, right?: TimeInterval, epsilon?: number, dataComparer?: TimeInterval.DataComparer): boolean;
-
- static intersect(left: TimeInterval, right?: TimeInterval, result?: TimeInterval, mergeCallback?: TimeInterval.MergeCallback): TimeInterval;
-
- static contains(timeInterval: TimeInterval, julianDate: JulianDate): boolean;
-
- clone(result?: TimeInterval): TimeInterval;
-
- equals(right?: TimeInterval, dataComparer?: TimeInterval.DataComparer): boolean;
-
- equalsEpsilon(right?: TimeInterval, epsilon?: number, dataComparer?: TimeInterval.DataComparer): boolean;
-
- toString(): string;
-
- static readonly EMPTY: TimeInterval;
- }
- export namespace TimeInterval {
-
- type MergeCallback = (leftData: any, rightData: any) => any;
-
- type DataComparer = (leftData: any, rightData: any) => boolean;
- }
- export class TimeIntervalCollection {
- constructor(intervals?: TimeInterval[]);
- /**
- * Gets an event that is raised whenever the collection of intervals change.
- */
- readonly changedEvent: Event;
- /**
- * Gets the start time of the collection.
- */
- readonly start: JulianDate;
- /**
- * Gets whether or not the start time is included in the collection.
- */
- readonly isStartIncluded: boolean;
- /**
- * Gets the stop time of the collection.
- */
- readonly stop: JulianDate;
- /**
- * Gets whether or not the stop time is included in the collection.
- */
- readonly isStopIncluded: boolean;
- /**
- * Gets the number of intervals in the collection.
- */
- readonly length: number;
- /**
- * Gets whether or not the collection is empty.
- */
- readonly isEmpty: boolean;
- /**
- * Compares this instance against the provided instance componentwise and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side collection.
- * @param [dataComparer] - A function which compares the data of the two intervals. If omitted, reference equality is used.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: TimeIntervalCollection, dataComparer?: TimeInterval.DataComparer): boolean;
- /**
- * Gets the interval at the specified index.
- * @param index - The index of the interval to retrieve.
- * @returns The interval at the specified index, or <code>undefined</code> if no interval exists as that index.
- */
- get(index: number): TimeInterval | undefined;
- /**
- * Removes all intervals from the collection.
- */
- removeAll(): void;
- /**
- * Finds and returns the interval that contains the specified date.
- * @param date - The date to search for.
- * @returns The interval containing the specified date, <code>undefined</code> if no such interval exists.
- */
- findIntervalContainingDate(date: JulianDate): TimeInterval | undefined;
- /**
- * Finds and returns the data for the interval that contains the specified date.
- * @param date - The date to search for.
- * @returns The data for the interval containing the specified date, or <code>undefined</code> if no such interval exists.
- */
- findDataForIntervalContainingDate(date: JulianDate): any;
- /**
- * Checks if the specified date is inside this collection.
- * @param julianDate - The date to check.
- * @returns <code>true</code> if the collection contains the specified date, <code>false</code> otherwise.
- */
- contains(julianDate: JulianDate): boolean;
- /**
- * Finds and returns the index of the interval in the collection that contains the specified date.
- * @param date - The date to search for.
- * @returns The index of the interval that contains the specified date, if no such interval exists,
- * it returns a negative number which is the bitwise complement of the index of the next interval that
- * starts after the date, or if no interval starts after the specified date, the bitwise complement of
- * the length of the collection.
- */
- indexOf(date: JulianDate): number;
- /**
- * Returns the first interval in the collection that matches the specified parameters.
- * All parameters are optional and <code>undefined</code> parameters are treated as a don't care condition.
- * @param [options] - Object with the following properties:
- * @param [options.start] - The start time of the interval.
- * @param [options.stop] - The stop time of the interval.
- * @param [options.isStartIncluded] - <code>true</code> if <code>options.start</code> is included in the interval, <code>false</code> otherwise.
- * @param [options.isStopIncluded] - <code>true</code> if <code>options.stop</code> is included in the interval, <code>false</code> otherwise.
- * @returns The first interval in the collection that matches the specified parameters.
- */
- findInterval(options?: {
- start?: JulianDate;
- stop?: JulianDate;
- isStartIncluded?: boolean;
- isStopIncluded?: boolean;
- }): TimeInterval | undefined;
-
- addInterval(interval: TimeInterval, dataComparer?: TimeInterval.DataComparer): void;
-
- removeInterval(interval: TimeInterval): boolean;
-
- intersect(other: TimeIntervalCollection, dataComparer?: TimeInterval.DataComparer, mergeCallback?: TimeInterval.MergeCallback): TimeIntervalCollection;
-
- static fromJulianDateArray(options: {
- julianDates: JulianDate[];
- isStartIncluded?: boolean;
- isStopIncluded?: boolean;
- leadingInterval?: boolean;
- trailingInterval?: boolean;
- dataCallback?: (...params: any[]) => any;
- }, result?: TimeIntervalCollection): TimeIntervalCollection;
-
- static fromIso8601(options: {
- iso8601: string;
- isStartIncluded?: boolean;
- isStopIncluded?: boolean;
- leadingInterval?: boolean;
- trailingInterval?: boolean;
- dataCallback?: (...params: any[]) => any;
- }, result?: TimeIntervalCollection): TimeIntervalCollection;
-
- static fromIso8601DateArray(options: {
- iso8601Dates: string[];
- isStartIncluded?: boolean;
- isStopIncluded?: boolean;
- leadingInterval?: boolean;
- trailingInterval?: boolean;
- dataCallback?: (...params: any[]) => any;
- }, result?: TimeIntervalCollection): TimeIntervalCollection;
-
- static fromIso8601DurationArray(options: {
- epoch: JulianDate;
- iso8601Durations: string;
- relativeToPrevious?: boolean;
- isStartIncluded?: boolean;
- isStopIncluded?: boolean;
- leadingInterval?: boolean;
- trailingInterval?: boolean;
- dataCallback?: (...params: any[]) => any;
- }, result?: TimeIntervalCollection): TimeIntervalCollection;
- }
- export enum TimeStandard {
-
- UTC = 0,
-
- TAI = 1
- }
- export namespace Transforms {
-
- function localFrameToFixedFrameGenerator(firstAxis: string, secondAxis: string): Transforms.LocalFrameToFixedFrame;
-
- type LocalFrameToFixedFrame = (origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4) => Matrix4;
-
- function eastNorthUpToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4;
-
- function northEastDownToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4;
-
- function northUpEastToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4;
-
- function northWestUpToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4;
-
- function headingPitchRollToFixedFrame(origin: Cartesian3, headingPitchRoll: HeadingPitchRoll, ellipsoid?: Ellipsoid, fixedFrameTransform?: Transforms.LocalFrameToFixedFrame, result?: Matrix4): Matrix4;
-
- function headingPitchRollQuaternion(origin: Cartesian3, headingPitchRoll: HeadingPitchRoll, ellipsoid?: Ellipsoid, fixedFrameTransform?: Transforms.LocalFrameToFixedFrame, result?: Quaternion): Quaternion;
-
- function fixedFrameToHeadingPitchRoll(transform: Matrix4, ellipsoid?: Ellipsoid, fixedFrameTransform?: Transforms.LocalFrameToFixedFrame, result?: HeadingPitchRoll): HeadingPitchRoll;
-
- function computeTemeToPseudoFixedMatrix(date: JulianDate, result?: Matrix3): Matrix3;
-
- function preloadIcrfFixed(timeInterval: TimeInterval): Promise<void>;
-
- function computeIcrfToFixedMatrix(date: JulianDate, result?: Matrix3): Matrix3;
-
- function computeFixedToIcrfMatrix(date: JulianDate, result?: Matrix3): Matrix3;
-
- function pointToWindowCoordinates(modelViewProjectionMatrix: Matrix4, viewportTransformation: Matrix4, point: Cartesian3, result?: Cartesian2): Cartesian2;
-
- function rotationMatrixFromPositionVelocity(position: Cartesian3, velocity: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix3): Matrix3;
- }
- export class TranslationRotationScale {
- constructor(translation?: Cartesian3, rotation?: Quaternion, scale?: Cartesian3);
- /**
- * Gets or sets the (x, y, z) translation to apply to the node.
- */
- translation: Cartesian3;
- /**
- * Gets or sets the (x, y, z, w) rotation to apply to the node.
- */
- rotation: Quaternion;
- /**
- * Gets or sets the (x, y, z) scaling to apply to the node.
- */
- scale: Cartesian3;
- /**
- * Compares this instance against the provided instance and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [right] - The right hand side TranslationRotationScale.
- * @returns <code>true</code> if they are equal, <code>false</code> otherwise.
- */
- equals(right?: TranslationRotationScale): boolean;
- }
- /**
- * Uses the Tridiagonal Matrix Algorithm, also known as the Thomas Algorithm, to solve
- * a system of linear equations where the coefficient matrix is a tridiagonal matrix.
- */
- export namespace TridiagonalSystemSolver {
-
- function solve(diagonal: number[], lower: number[], upper: number[], right: Cartesian3[]): Cartesian3[];
- }
- export namespace TrustedServers {
-
- function add(host: string, port: number): void;
-
- function remove(host: string, port: number): void;
-
- function contains(url: string): boolean;
-
- function clear(): void;
- }
- export class VRTheWorldTerrainProvider {
- constructor(options: {
- url: Resource | string;
- ellipsoid?: Ellipsoid;
- credit?: Credit | string;
- });
-
- readonly errorEvent: Event;
-
- readonly credit: Credit;
-
- readonly tilingScheme: GeographicTilingScheme;
-
- readonly ready: boolean;
-
- readonly readyPromise: Promise<boolean>;
-
- readonly hasWaterMask: boolean;
-
- readonly hasVertexNormals: boolean;
-
- readonly availability: TileAvailability;
-
- requestTileGeometry(x: number, y: number, level: number, request?: Request): Promise<TerrainData> | undefined;
-
- getLevelMaximumGeometricError(level: number): number;
-
- getTileDataAvailable(x: number, y: number, level: number): boolean | undefined;
-
- loadTileDataAvailability(x: number, y: number, level: number): undefined | Promise<void>;
- }
- export class VertexFormat {
- constructor(options?: any);
- /**
- * When <code>true</code>, the vertex has a 3D position attribute.
- * <p>
- * 64-bit floating-point (for precision). 3 components per attribute.
- * </p>
- */
- position: boolean;
- /**
- * When <code>true</code>, the vertex has a normal attribute (normalized), which is commonly used for lighting.
- * <p>
- * 32-bit floating-point. 3 components per attribute.
- * </p>
- */
- normal: boolean;
- /**
- * When <code>true</code>, the vertex has a 2D texture coordinate attribute.
- * <p>
- * 32-bit floating-point. 2 components per attribute
- * </p>
- */
- st: boolean;
- /**
- * When <code>true</code>, the vertex has a bitangent attribute (normalized), which is used for tangent-space effects like bump mapping.
- * <p>
- * 32-bit floating-point. 3 components per attribute.
- * </p>
- */
- bitangent: boolean;
- /**
- * When <code>true</code>, the vertex has a tangent attribute (normalized), which is used for tangent-space effects like bump mapping.
- * <p>
- * 32-bit floating-point. 3 components per attribute.
- * </p>
- */
- tangent: boolean;
- /**
- * When <code>true</code>, the vertex has an RGB color attribute.
- * <p>
- * 8-bit unsigned byte. 3 components per attribute.
- * </p>
- */
- color: boolean;
- /**
- * An immutable vertex format with only a position attribute.
- */
- static readonly POSITION_ONLY: VertexFormat;
- /**
- * An immutable vertex format with position and normal attributes.
- * This is compatible with per-instance color appearances like {@link PerInstanceColorAppearance}.
- */
- static readonly POSITION_AND_NORMAL: VertexFormat;
- /**
- * An immutable vertex format with position, normal, and st attributes.
- * This is compatible with {@link MaterialAppearance} when {@link MaterialAppearance#materialSupport}
- * is <code>TEXTURED/code>.
- */
- static readonly POSITION_NORMAL_AND_ST: VertexFormat;
- /**
- * An immutable vertex format with position and st attributes.
- * This is compatible with {@link EllipsoidSurfaceAppearance}.
- */
- static readonly POSITION_AND_ST: VertexFormat;
- /**
- * An immutable vertex format with position and color attributes.
- */
- static readonly POSITION_AND_COLOR: VertexFormat;
- /**
- * An immutable vertex format with well-known attributes: position, normal, st, tangent, and bitangent.
- */
- static readonly ALL: VertexFormat;
- /**
- * An immutable vertex format with position, normal, and st attributes.
- * This is compatible with most appearances and materials; however
- * normal and st attributes are not always required. When this is
- * known in advance, another <code>VertexFormat</code> should be used.
- */
- static readonly DEFAULT: VertexFormat;
-
- static packedLength: number;
-
- static pack(value: VertexFormat, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: VertexFormat): VertexFormat;
-
- static clone(vertexFormat: VertexFormat, result?: VertexFormat): VertexFormat;
- }
- export class VideoSynchronizer {
- constructor(options?: {
- clock?: Clock;
- element?: HTMLVideoElement;
- epoch?: JulianDate;
- tolerance?: number;
- });
-
- epoch: JulianDate;
-
- tolerance: number;
-
- clock: Clock;
-
- element: HTMLVideoElement;
-
- destroy(): void;
-
- isDestroyed(): boolean;
- }
- export enum Visibility {
-
- NONE = -1,
-
- PARTIAL = 0,
-
- FULL = 1
- }
- export class WallGeometry {
- constructor(options: {
- positions: Cartesian3[];
- granularity?: number;
- maximumHeights?: number[];
- minimumHeights?: number[];
- ellipsoid?: Ellipsoid;
- vertexFormat?: VertexFormat;
- });
-
- packedLength: number;
-
- static pack(value: WallGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: WallGeometry): WallGeometry;
-
- static fromConstantHeights(options: {
- positions: Cartesian3[];
- maximumHeight?: number;
- minimumHeight?: number;
- ellipsoid?: Ellipsoid;
- vertexFormat?: VertexFormat;
- }): WallGeometry;
-
- static createGeometry(wallGeometry: WallGeometry): Geometry | undefined;
- }
- export class WallOutlineGeometry {
- constructor(options: {
- positions: Cartesian3[];
- granularity?: number;
- maximumHeights?: number[];
- minimumHeights?: number[];
- ellipsoid?: Ellipsoid;
- });
-
- packedLength: number;
-
- static pack(value: WallOutlineGeometry, array: number[], startingIndex?: number): number[];
-
- static unpack(array: number[], startingIndex?: number, result?: WallOutlineGeometry): WallOutlineGeometry;
-
- static fromConstantHeights(options: {
- positions: Cartesian3[];
- maximumHeight?: number;
- minimumHeight?: number;
- ellipsoid?: Ellipsoid;
- }): WallOutlineGeometry;
-
- static createGeometry(wallGeometry: WallOutlineGeometry): Geometry | undefined;
- }
- export class WebMercatorProjection {
- constructor(ellipsoid?: Ellipsoid);
- /**
- * Gets the {@link Ellipsoid}.
- */
- readonly ellipsoid: Ellipsoid;
- /**
- * Converts a Mercator angle, in the range -PI to PI, to a geodetic latitude
- * in the range -PI/2 to PI/2.
- * @param mercatorAngle - The angle to convert.
- * @returns The geodetic latitude in radians.
- */
- static mercatorAngleToGeodeticLatitude(mercatorAngle: number): number;
- /**
- * Converts a geodetic latitude in radians, in the range -PI/2 to PI/2, to a Mercator
- * angle in the range -PI to PI.
- * @param latitude - The geodetic latitude in radians.
- * @returns The Mercator angle.
- */
- static geodeticLatitudeToMercatorAngle(latitude: number): number;
- /**
- * The maximum latitude (both North and South) supported by a Web Mercator
- * (EPSG:3857) projection. Technically, the Mercator projection is defined
- * for any latitude up to (but not including) 90 degrees, but it makes sense
- * to cut it off sooner because it grows exponentially with increasing latitude.
- * The logic behind this particular cutoff value, which is the one used by
- * Google Maps, Bing Maps, and Esri, is that it makes the projection
- * square. That is, the rectangle is equal in the X and Y directions.
- *
- * The constant value is computed by calling:
- * WebMercatorProjection.mercatorAngleToGeodeticLatitude(Math.PI)
- */
- static MaximumLatitude: number;
- /**
- * Converts geodetic ellipsoid coordinates, in radians, to the equivalent Web Mercator
- * X, Y, Z coordinates expressed in meters and returned in a {@link Cartesian3}. The height
- * is copied unmodified to the Z coordinate.
- * @param cartographic - The cartographic coordinates in radians.
- * @param [result] - The instance to which to copy the result, or undefined if a
- * new instance should be created.
- * @returns The equivalent web mercator X, Y, Z coordinates, in meters.
- */
- project(cartographic: Cartographic, result?: Cartesian3): Cartesian3;
- /**
- * Converts Web Mercator X, Y coordinates, expressed in meters, to a {@link Cartographic}
- * containing geodetic ellipsoid coordinates. The Z coordinate is copied unmodified to the
- * height.
- * @param cartesian - The web mercator Cartesian position to unrproject with height (z) in meters.
- * @param [result] - The instance to which to copy the result, or undefined if a
- * new instance should be created.
- * @returns The equivalent cartographic coordinates.
- */
- unproject(cartesian: Cartesian3, result?: Cartographic): Cartographic;
- }
- /**
- * A tiling scheme for geometry referenced to a {@link WebMercatorProjection}, EPSG:3857. This is
- * the tiling scheme used by Google Maps, Microsoft Bing Maps, and most of ESRI ArcGIS Online.
- * @param [options] - Object with the following properties:
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The ellipsoid whose surface is being tiled. Defaults to
- * the WGS84 ellipsoid.
- * @param [options.numberOfLevelZeroTilesX = 1] - The number of tiles in the X direction at level zero of
- * the tile tree.
- * @param [options.numberOfLevelZeroTilesY = 1] - The number of tiles in the Y direction at level zero of
- * the tile tree.
- * @param [options.rectangleSouthwestInMeters] - The southwest corner of the rectangle covered by the
- * tiling scheme, in meters. If this parameter or rectangleNortheastInMeters is not specified, the entire
- * globe is covered in the longitude direction and an equal distance is covered in the latitude
- * direction, resulting in a square projection.
- * @param [options.rectangleNortheastInMeters] - The northeast corner of the rectangle covered by the
- * tiling scheme, in meters. If this parameter or rectangleSouthwestInMeters is not specified, the entire
- * globe is covered in the longitude direction and an equal distance is covered in the latitude
- * direction, resulting in a square projection.
- */
- export class WebMercatorTilingScheme {
- constructor(options?: {
- ellipsoid?: Ellipsoid;
- numberOfLevelZeroTilesX?: number;
- numberOfLevelZeroTilesY?: number;
- rectangleSouthwestInMeters?: Cartesian2;
- rectangleNortheastInMeters?: Cartesian2;
- });
- /**
- * Gets the ellipsoid that is tiled by this tiling scheme.
- */
- ellipsoid: Ellipsoid;
- /**
- * Gets the rectangle, in radians, covered by this tiling scheme.
- */
- rectangle: Rectangle;
- /**
- * Gets the map projection used by this tiling scheme.
- */
- projection: MapProjection;
- /**
- * Gets the total number of tiles in the X direction at a specified level-of-detail.
- * @param level - The level-of-detail.
- * @returns The number of tiles in the X direction at the given level.
- */
- getNumberOfXTilesAtLevel(level: number): number;
- /**
- * Gets the total number of tiles in the Y direction at a specified level-of-detail.
- * @param level - The level-of-detail.
- * @returns The number of tiles in the Y direction at the given level.
- */
- getNumberOfYTilesAtLevel(level: number): number;
- /**
- * Transforms a rectangle specified in geodetic radians to the native coordinate system
- * of this tiling scheme.
- * @param rectangle - The rectangle to transform.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the native rectangle if 'result'
- * is undefined.
- */
- rectangleToNativeRectangle(rectangle: Rectangle, result?: Rectangle): Rectangle;
- /**
- * Converts tile x, y coordinates and level to a rectangle expressed in the native coordinates
- * of the tiling scheme.
- * @param x - The integer x coordinate of the tile.
- * @param y - The integer y coordinate of the tile.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the rectangle
- * if 'result' is undefined.
- */
- tileXYToNativeRectangle(x: number, y: number, level: number, result?: any): Rectangle;
- /**
- * Converts tile x, y coordinates and level to a cartographic rectangle in radians.
- * @param x - The integer x coordinate of the tile.
- * @param y - The integer y coordinate of the tile.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the rectangle
- * if 'result' is undefined.
- */
- tileXYToRectangle(x: number, y: number, level: number, result?: any): Rectangle;
- /**
- * Calculates the tile x, y coordinates of the tile containing
- * a given cartographic position.
- * @param position - The position.
- * @param level - The tile level-of-detail. Zero is the least detailed.
- * @param [result] - The instance to which to copy the result, or undefined if a new instance
- * should be created.
- * @returns The specified 'result', or a new object containing the tile x, y coordinates
- * if 'result' is undefined.
- */
- positionToTileXY(position: Cartographic, level: number, result?: Cartesian2): Cartesian2;
- }
- /**
- * A spline that linearly interpolates over an array of weight values used by morph targets.
- * @example
- * var times = [ 0.0, 1.5, 3.0, 4.5, 6.0 ];
- * var weights = [0.0, 1.0, 0.25, 0.75, 0.5, 0.5, 0.75, 0.25, 1.0, 0.0];
- * var spline = new Cesium.WeightSpline({
- * times : times,
- * weights : weights
- * });
- *
- * var p0 = spline.evaluate(times[0]);
- * @param options - Object with the following properties:
- * @param options.times - An array of strictly increasing, unit-less, floating-point times at each point.
- * The values are in no way connected to the clock time. They are the parameterization for the curve.
- * @param options.weights - The array of floating-point control weights given. The weights are ordered such
- * that all weights for the targets are given in chronological order and order in which they appear in
- * the glTF from which the morph targets come. This means for 2 targets, weights = [w(0,0), w(0,1), w(1,0), w(1,1) ...]
- * where i and j in w(i,j) are the time indices and target indices, respectively.
- */
- export class WeightSpline {
- constructor(options: {
- times: number[];
- weights: number[];
- });
- /**
- * An array of times for the control weights.
- */
- readonly times: number[];
- /**
- * An array of floating-point array control weights.
- */
- readonly weights: number[];
- /**
- * Finds an index <code>i</code> in <code>times</code> such that the parameter
- * <code>time</code> is in the interval <code>[times[i], times[i + 1]]</code>.
- * @param time - The time.
- * @returns The index for the element at the start of the interval.
- */
- findTimeInterval(time: number): number;
- /**
- * Wraps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, wrapped around to the updated animation.
- */
- wrapTime(time: number): number;
- /**
- * Clamps the given time to the period covered by the spline.
- * @param time - The time.
- * @returns The time, clamped to the animation period.
- */
- clampTime(time: number): number;
- /**
- * Evaluates the curve at a given time.
- * @param time - The time at which to evaluate the curve.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance of the point on the curve at the given time.
- */
- evaluate(time: number, result?: number[]): number[];
- }
- /**
- * Winding order defines the order of vertices for a triangle to be considered front-facing.
- */
- export enum WindingOrder {
- /**
- * Vertices are in clockwise order.
- */
- CLOCKWISE = WebGLConstants.CW,
- /**
- * Vertices are in counter-clockwise order.
- */
- COUNTER_CLOCKWISE = WebGLConstants.CCW
- }
- /**
- * Computes the barycentric coordinates for a point with respect to a triangle.
- * @example
- *
- * var p = new Cesium.Cartesian3(-1.0, 0.0, 0.0);
- * var b = Cesium.barycentricCoordinates(p,
- * new Cesium.Cartesian3(-1.0, 0.0, 0.0),
- * new Cesium.Cartesian3( 1.0, 0.0, 0.0),
- * new Cesium.Cartesian3( 0.0, 1.0, 1.0));
- * @param point - The point to test.
- * @param p0 - The first point of the triangle, corresponding to the barycentric x-axis.
- * @param p1 - The second point of the triangle, corresponding to the barycentric y-axis.
- * @param p2 - The third point of the triangle, corresponding to the barycentric z-axis.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Cartesian3 instance if one was not provided.
- */
- export function barycentricCoordinates(point: Cartesian2 | Cartesian3, p0: Cartesian2 | Cartesian3, p1: Cartesian2 | Cartesian3, p2: Cartesian2 | Cartesian3, result?: Cartesian3): Cartesian3;
- /**
- * Finds an item in a sorted array.
- * @example
- *
- * function comparator(a, b) {
- * return a - b;
- * };
- * var numbers = [0, 2, 4, 6, 8];
- * var index = Cesium.binarySearch(numbers, 6, comparator);
- * @param array - The sorted array to search.
- * @param itemToFind - The item to find in the array.
- * @param comparator - The function to use to compare the item to
- * elements in the array.
- * @returns The index of <code>itemToFind</code> in the array, if it exists. If <code>itemToFind</code>
- * does not exist, the return value is a negative number which is the bitwise complement (~)
- * of the index before which the itemToFind should be inserted in order to maintain the
- * sorted order of the array.
- */
- export function binarySearch(array: any[], itemToFind: any, comparator: binarySearchComparator): number;
- /**
- * A function used to compare two items while performing a binary search.
- * @example
- * function compareNumbers(a, b) {
- * return a - b;
- * }
- * @param a - An item in the array.
- * @param b - The item being searched for.
- */
- export type binarySearchComparator = (a: any, b: any) => number;
- export function buildModuleUrl(relativeUrl: string): string;
- export function cancelAnimationFrame(requestID: number): void;
- export function clone(object: any, deep?: boolean): any;
- export function combine(object1?: any, object2?: any, deep?: boolean): any;
- export function createGuid(): string;
- export function createWorldTerrain(options?: {
- requestVertexNormals?: boolean;
- requestWaterMask?: boolean;
- }): CesiumTerrainProvider;
- export function defaultValue(a: any, b: any): any;
- export function defined(value: any): boolean;
- export function destroyObject(object: any, message?: string): void;
- export function formatError(object: any): string;
- export function getAbsoluteUri(relative: string, base?: string): string;
- export function getBaseUri(uri: string, includeQuery?: boolean): string;
- export function getExtensionFromUri(uri: string): string;
- export function getFilenameFromUri(uri: string): string;
- export function getImagePixels(image: HTMLImageElement, width: number, height: number): ImageData;
- export function getTimestamp(): number;
- export function isLeapYear(year: number): boolean;
- export function mergeSort(array: any[], comparator: mergeSortComparator, userDefinedObject?: any): void;
- export type mergeSortComparator = (a: any, b: any, userDefinedObject?: any) => number;
- export function objectToQuery(obj: any): string;
- export function pointInsideTriangle(point: Cartesian2 | Cartesian3, p0: Cartesian2 | Cartesian3, p1: Cartesian2 | Cartesian3, p2: Cartesian2 | Cartesian3): boolean;
- export function queryToObject(queryString: string): any;
- export function requestAnimationFrame(callback: requestAnimationFrameCallback): number;
- export type requestAnimationFrameCallback = (timestamp: number) => void;
- export function sampleTerrain(terrainProvider: TerrainProvider, level: number, positions: Cartographic[]): Promise<Cartographic[]>;
- export function sampleTerrainMostDetailed(terrainProvider: TerrainProvider, positions: Cartographic[]): Promise<Cartographic[]>;
- export function subdivideArray(array: any[], numberOfArrays: number): void;
- export function writeTextToCanvas(text: string, options?: {
- font?: string;
- textBaseline?: string;
- fill?: boolean;
- stroke?: boolean;
- fillColor?: Color;
- strokeColor?: Color;
- strokeWidth?: number;
- backgroundColor?: Color;
- padding?: number;
- }): HTMLCanvasElement | undefined;
- export namespace BillboardGraphics {
-
- type ConstructorOptions = {
- show?: Property | boolean;
- image?: Property | string | HTMLCanvasElement;
- scale?: Property | number;
- pixelOffset?: Property | Cartesian2;
- eyeOffset?: Property | Cartesian3;
- horizontalOrigin?: Property | HorizontalOrigin;
- verticalOrigin?: Property | VerticalOrigin;
- heightReference?: Property | HeightReference;
- color?: Property | Color;
- rotation?: Property | number;
- alignedAxis?: Property | Cartesian3;
- sizeInMeters?: Property | boolean;
- width?: Property | number;
- height?: Property | number;
- scaleByDistance?: Property | NearFarScalar;
- translucencyByDistance?: Property | NearFarScalar;
- pixelOffsetScaleByDistance?: Property | NearFarScalar;
- imageSubRegion?: Property | BoundingRectangle;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- disableDepthTestDistance?: Property | number;
- };
- }
- export class BillboardGraphics {
- constructor(options?: BillboardGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the billboard.
- */
- show: Property | undefined;
- /**
- * Gets or sets the Property specifying the Image, URI, or Canvas to use for the billboard.
- */
- image: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the uniform scale to apply to the image.
- * A scale greater than <code>1.0</code> enlarges the billboard while a scale less than <code>1.0</code> shrinks it.
- * <p>
- * <div align='center'>
- * <img src='Images/Billboard.setScale.png' width='400' height='300' /><br/>
- * From left to right in the above image, the scales are <code>0.5</code>, <code>1.0</code>, and <code>2.0</code>.
- * </div>
- * </p>
- */
- scale: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the billboard's pixel offset in screen space
- * from the origin of this billboard. This is commonly used to align multiple billboards and labels at
- * the same position, e.g., an image and text. The screen space origin is the top, left corner of the
- * canvas; <code>x</code> increases from left to right, and <code>y</code> increases from top to bottom.
- * <p>
- * <div align='center'>
- * <table border='0' cellpadding='5'><tr>
- * <td align='center'><code>default</code><br/><img src='Images/Billboard.setPixelOffset.default.png' width='250' height='188' /></td>
- * <td align='center'><code>b.pixeloffset = new Cartesian2(50, 25);</code><br/><img src='Images/Billboard.setPixelOffset.x50y-25.png' width='250' height='188' /></td>
- * </tr></table>
- * The billboard's origin is indicated by the yellow point.
- * </div>
- * </p>
- */
- pixelOffset: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian3} Property specifying the billboard's offset in eye coordinates.
- * Eye coordinates is a left-handed coordinate system, where <code>x</code> points towards the viewer's
- * right, <code>y</code> points up, and <code>z</code> points into the screen.
- * <p>
- * An eye offset is commonly used to arrange multiple billboards or objects at the same position, e.g., to
- * arrange a billboard above its corresponding 3D model.
- * </p>
- * Below, the billboard is positioned at the center of the Earth but an eye offset makes it always
- * appear on top of the Earth regardless of the viewer's or Earth's orientation.
- * <p>
- * <div align='center'>
- * <table border='0' cellpadding='5'><tr>
- * <td align='center'><img src='Images/Billboard.setEyeOffset.one.png' width='250' height='188' /></td>
- * <td align='center'><img src='Images/Billboard.setEyeOffset.two.png' width='250' height='188' /></td>
- * </tr></table>
- * <code>b.eyeOffset = new Cartesian3(0.0, 8000000.0, 0.0);</code>
- * </div>
- * </p>
- */
- eyeOffset: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HorizontalOrigin}.
- */
- horizontalOrigin: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link VerticalOrigin}.
- */
- verticalOrigin: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} that is multiplied with the <code>image</code>.
- * This has two common use cases. First, the same white texture may be used by many different billboards,
- * each with a different color, to create colored billboards. Second, the color's alpha component can be
- * used to make the billboard translucent as shown below. An alpha of <code>0.0</code> makes the billboard
- * transparent, and <code>1.0</code> makes the billboard opaque.
- * <p>
- * <div align='center'>
- * <table border='0' cellpadding='5'><tr>
- * <td align='center'><code>default</code><br/><img src='Images/Billboard.setColor.Alpha255.png' width='250' height='188' /></td>
- * <td align='center'><code>alpha : 0.5</code><br/><img src='Images/Billboard.setColor.Alpha127.png' width='250' height='188' /></td>
- * </tr></table>
- * </div>
- * </p>
- */
- color: Property | undefined;
-
- rotation: Property | undefined;
-
- alignedAxis: Property | undefined;
-
- sizeInMeters: Property | undefined;
-
- width: Property | undefined;
-
- height: Property | undefined;
-
- scaleByDistance: Property | undefined;
-
- translucencyByDistance: Property | undefined;
-
- pixelOffsetScaleByDistance: Property | undefined;
-
- imageSubRegion: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- disableDepthTestDistance: Property | undefined;
-
- clone(result?: BillboardGraphics): BillboardGraphics;
-
- merge(source: BillboardGraphics): void;
- }
- export class BillboardVisualizer {
- constructor(entityCluster: EntityCluster, entityCollection: EntityCollection);
- /**
- * Updates the primitives created by this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns This function always returns true.
- */
- update(time: JulianDate): boolean;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * @returns True if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Removes and destroys all primitives created by this instance.
- */
- destroy(): void;
- }
- /**
- * A {@link GeometryUpdater} for boxes.
- * Clients do not normally create this class directly, but instead rely on {@link DataSourceDisplay}.
- * @param entity - The entity containing the geometry to be visualized.
- * @param scene - The scene where visualization is taking place.
- */
- export class BoxGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace BoxGraphics {
- /**
- * Initialization options for the BoxGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the box.
- * @property [dimensions] - A {@link Cartesian3} Property specifying the length, width, and height of the box.
- * @property [heightReference = HeightReference.NONE] - A Property specifying what the height from the entity position is relative to.
- * @property [fill = true] - A boolean Property specifying whether the box is filled with the provided material.
- * @property [material = Color.WHITE] - A Property specifying the material used to fill the box.
- * @property [outline = false] - A boolean Property specifying whether the box is outlined.
- * @property [outlineColor = Color.BLACK] - A Property specifying the {@link Color} of the outline.
- * @property [outlineWidth = 1.0] - A numeric Property specifying the width of the outline.
- * @property [shadows = ShadowMode.DISABLED] - An enum Property specifying whether the box casts or receives shadows from light sources.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this box will be displayed.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- dimensions?: Property | Cartesian3;
- heightReference?: Property | HeightReference;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- };
- }
- /**
- * Describes a box. The center position and orientation are determined by the containing {@link Entity}.
- * @param [options] - Object describing initialization options
- */
- export class BoxGraphics {
- constructor(options?: BoxGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the box.
- */
- show: Property | undefined;
- /**
- * Gets or sets {@link Cartesian3} Property property specifying the length, width, and height of the box.
- */
- dimensions: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the box is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the material used to fill the box.
- */
- material: MaterialProperty | undefined;
- /**
- * Gets or sets the Property specifying whether the box is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- clone(result?: BoxGraphics): BoxGraphics;
-
- merge(source: BoxGraphics): void;
- }
- export class CallbackProperty {
- constructor(callback: CallbackProperty.Callback, isConstant: boolean);
- /**
- * Gets a value indicating if this property is constant.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setCallback is called.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the value of the property.
- * @param [time] - The time for which to retrieve the value. This parameter is unused since the value does not change with respect to time.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied or is unsupported.
- */
- getValue(time?: JulianDate, result?: any): any;
- /**
- * Sets the callback to be used.
- * @param callback - The function to be called when the property is evaluated.
- * @param isConstant - <code>true</code> when the callback function returns the same value every time, <code>false</code> if the value will change.
- */
- setCallback(callback: CallbackProperty.Callback, isConstant: boolean): void;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- export namespace CallbackProperty {
-
- type Callback = (time?: JulianDate, result?: any) => any;
- }
- export namespace Cesium3DTilesetGraphics {
-
- type ConstructorOptions = {
- show?: Property | boolean;
- uri?: Property | string | Resource;
- maximumScreenSpaceError?: Property | number;
- };
- }
- export class Cesium3DTilesetGraphics {
- constructor(options?: Cesium3DTilesetGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the model.
- */
- show: Property | undefined;
- /**
- * Gets or sets the string Property specifying the URI of the glTF asset.
- */
- uri: Property | undefined;
- /**
- * Gets or sets the maximum screen space error used to drive level of detail refinement.
- */
- maximumScreenSpaceError: Property | undefined;
- /**
- * Duplicates this instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance if one was not provided.
- */
- clone(result?: Cesium3DTilesetGraphics): Cesium3DTilesetGraphics;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- */
- merge(source: Cesium3DTilesetGraphics): void;
- }
- /**
- * A {@link Visualizer} which maps {@link Entity#tileset} to a {@link Cesium3DTileset}.
- * @param scene - The scene the primitives will be rendered in.
- * @param entityCollection - The entityCollection to visualize.
- */
- export class Cesium3DTilesetVisualizer {
- constructor(scene: Scene, entityCollection: EntityCollection);
- /**
- * Updates models created this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns This function always returns true.
- */
- update(time: JulianDate): boolean;
-
- isDestroyed(): boolean;
-
- destroy(): void;
- }
- export class CheckerboardMaterialProperty {
- constructor(options?: {
- evenColor?: Property | Color;
- oddColor?: Property | Color;
- repeat?: Property | Cartesian2;
- });
-
- readonly isConstant: boolean;
-
- readonly definitionChanged: Event;
-
- evenColor: Property | undefined;
-
- oddColor: Property | undefined;
-
- repeat: Property | undefined;
-
- getType(time: JulianDate): string;
-
- getValue(time: JulianDate, result?: any): any;
-
- equals(other?: Property): boolean;
- }
- export class ColorMaterialProperty {
- constructor(color?: Property | Color);
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the {@link Color} {@link Property}.
- */
- color: Property | undefined;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * Non-destructively composites multiple {@link EntityCollection} instances into a single collection.
- * If a Entity with the same ID exists in multiple collections, it is non-destructively
- * merged into a single new entity instance. If an entity has the same property in multiple
- * collections, the property of the Entity in the last collection of the list it
- * belongs to is used. CompositeEntityCollection can be used almost anywhere that a
- * EntityCollection is used.
- * @param [collections] - The initial list of EntityCollection instances to merge.
- * @param [owner] - The data source (or composite entity collection) which created this collection.
- */
- export class CompositeEntityCollection {
- constructor(collections?: EntityCollection[], owner?: DataSource | CompositeEntityCollection);
- /**
- * Gets the event that is fired when entities are added or removed from the collection.
- * The generated event is a {@link EntityCollection.collectionChangedEventCallback}.
- */
- readonly collectionChanged: Event;
- /**
- * Gets a globally unique identifier for this collection.
- */
- readonly id: string;
- /**
- * Gets the array of Entity instances in the collection.
- * This array should not be modified directly.
- */
- readonly values: Entity[];
- /**
- * Gets the owner of this composite entity collection, ie. the data source or composite entity collection which created it.
- */
- readonly owner: DataSource | CompositeEntityCollection;
- /**
- * Adds a collection to the composite.
- * @param collection - the collection to add.
- * @param [index] - the index to add the collection at. If omitted, the collection will
- * added on top of all existing collections.
- */
- addCollection(collection: EntityCollection, index?: number): void;
- /**
- * Removes a collection from this composite, if present.
- * @param collection - The collection to remove.
- * @returns true if the collection was in the composite and was removed,
- * false if the collection was not in the composite.
- */
- removeCollection(collection: EntityCollection): boolean;
- /**
- * Removes all collections from this composite.
- */
- removeAllCollections(): void;
- /**
- * Checks to see if the composite contains a given collection.
- * @param collection - the collection to check for.
- * @returns true if the composite contains the collection, false otherwise.
- */
- containsCollection(collection: EntityCollection): boolean;
- /**
- * Returns true if the provided entity is in this collection, false otherwise.
- * @param entity - The entity.
- * @returns true if the provided entity is in this collection, false otherwise.
- */
- contains(entity: Entity): boolean;
- /**
- * Determines the index of a given collection in the composite.
- * @param collection - The collection to find the index of.
- * @returns The index of the collection in the composite, or -1 if the collection does not exist in the composite.
- */
- indexOfCollection(collection: EntityCollection): number;
- /**
- * Gets a collection by index from the composite.
- * @param index - the index to retrieve.
- */
- getCollection(index: number): void;
- /**
- * Gets the number of collections in this composite.
- */
- getCollectionsLength(): void;
- /**
- * Raises a collection up one position in the composite.
- * @param collection - the collection to move.
- */
- raiseCollection(collection: EntityCollection): void;
- /**
- * Lowers a collection down one position in the composite.
- * @param collection - the collection to move.
- */
- lowerCollection(collection: EntityCollection): void;
- /**
- * Raises a collection to the top of the composite.
- * @param collection - the collection to move.
- */
- raiseCollectionToTop(collection: EntityCollection): void;
- /**
- * Lowers a collection to the bottom of the composite.
- * @param collection - the collection to move.
- */
- lowerCollectionToBottom(collection: EntityCollection): void;
- /**
- * Prevents {@link EntityCollection#collectionChanged} events from being raised
- * until a corresponding call is made to {@link EntityCollection#resumeEvents}, at which
- * point a single event will be raised that covers all suspended operations.
- * This allows for many items to be added and removed efficiently.
- * While events are suspended, recompositing of the collections will
- * also be suspended, as this can be a costly operation.
- * This function can be safely called multiple times as long as there
- * are corresponding calls to {@link EntityCollection#resumeEvents}.
- */
- suspendEvents(): void;
- /**
- * Resumes raising {@link EntityCollection#collectionChanged} events immediately
- * when an item is added or removed. Any modifications made while while events were suspended
- * will be triggered as a single event when this function is called. This function also ensures
- * the collection is recomposited if events are also resumed.
- * This function is reference counted and can safely be called multiple times as long as there
- * are corresponding calls to {@link EntityCollection#resumeEvents}.
- */
- resumeEvents(): void;
- /**
- * Computes the maximum availability of the entities in the collection.
- * If the collection contains a mix of infinitely available data and non-infinite data,
- * It will return the interval pertaining to the non-infinite data only. If all
- * data is infinite, an infinite interval will be returned.
- * @returns The availability of entities in the collection.
- */
- computeAvailability(): TimeInterval;
-
- getById(id: string): Entity | undefined;
- }
- export class CompositeMaterialProperty {
- constructor();
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setValue is called with data different
- * than the current value.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the interval collection.
- */
- intervals: TimeIntervalCollection;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link CompositeProperty} which is also a {@link PositionProperty}.
- * @param [referenceFrame = ReferenceFrame.FIXED] - The reference frame in which the position is defined.
- */
- export class CompositePositionProperty {
- constructor(referenceFrame?: ReferenceFrame);
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setValue is called with data different
- * than the current value.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the interval collection.
- */
- intervals: TimeIntervalCollection;
- /**
- * Gets or sets the reference frame which this position presents itself as.
- * Each PositionProperty making up this object has it's own reference frame,
- * so this property merely exposes a "preferred" reference frame for clients
- * to use.
- */
- referenceFrame: ReferenceFrame;
- /**
- * Gets the value of the property at the provided time in the fixed frame.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Gets the value of the property at the provided time and in the provided reference frame.
- * @param time - The time for which to retrieve the value.
- * @param referenceFrame - The desired referenceFrame of the result.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link Property} which is defined by a {@link TimeIntervalCollection}, where the
- * data property of each {@link TimeInterval} is another Property instance which is
- * evaluated at the provided time.
- * @example
- * var constantProperty = ...;
- * var sampledProperty = ...;
- *
- * //Create a composite property from two previously defined properties
- * //where the property is valid on August 1st, 2012 and uses a constant
- * //property for the first half of the day and a sampled property for the
- * //remaining half.
- * var composite = new Cesium.CompositeProperty();
- * composite.intervals.addInterval(Cesium.TimeInterval.fromIso8601({
- * iso8601 : '2012-08-01T00:00:00.00Z/2012-08-01T12:00:00.00Z',
- * data : constantProperty
- * }));
- * composite.intervals.addInterval(Cesium.TimeInterval.fromIso8601({
- * iso8601 : '2012-08-01T12:00:00.00Z/2012-08-02T00:00:00.00Z',
- * isStartIncluded : false,
- * isStopIncluded : false,
- * data : sampledProperty
- * }));
- */
- export class CompositeProperty {
- constructor();
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setValue is called with data different
- * than the current value.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the interval collection.
- */
- intervals: TimeIntervalCollection;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link PositionProperty} whose value does not change in respect to the
- * {@link ReferenceFrame} in which is it defined.
- * @param [value] - The property value.
- * @param [referenceFrame = ReferenceFrame.FIXED] - The reference frame in which the position is defined.
- */
- export class ConstantPositionProperty {
- constructor(value?: Cartesian3, referenceFrame?: ReferenceFrame);
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the reference frame in which the position is defined.
- */
- referenceFrame: ReferenceFrame;
- /**
- * Gets the value of the property at the provided time in the fixed frame.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Sets the value of the property.
- * @param value - The property value.
- * @param [referenceFrame = this.referenceFrame] - The reference frame in which the position is defined.
- */
- setValue(value: Cartesian3, referenceFrame?: ReferenceFrame): void;
- /**
- * Gets the value of the property at the provided time and in the provided reference frame.
- * @param time - The time for which to retrieve the value.
- * @param referenceFrame - The desired referenceFrame of the result.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link Property} whose value does not change with respect to simulation time.
- * @param [value] - The property value.
- */
- export class ConstantProperty {
- constructor(value?: any);
- /**
- * Gets a value indicating if this property is constant.
- * This property always returns <code>true</code>.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setValue is called with data different
- * than the current value.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the value of the property.
- * @param [time] - The time for which to retrieve the value. This parameter is unused since the value does not change with respect to time.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time?: JulianDate, result?: any): any;
- /**
- * Sets the value of the property.
- * @param value - The property value.
- */
- setValue(value: any): void;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- /**
- * Gets this property's value.
- * @returns This property's value.
- */
- valueOf(): any;
- /**
- * Creates a string representing this property's value.
- * @returns A string representing the property's value.
- */
- toString(): string;
- }
- /**
- * A {@link GeometryUpdater} for corridors.
- * Clients do not normally create this class directly, but instead rely on {@link DataSourceDisplay}.
- * @param entity - The entity containing the geometry to be visualized.
- * @param scene - The scene where visualization is taking place.
- */
- export class CorridorGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace CorridorGraphics {
- /**
- * Initialization options for the CorridorGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the corridor.
- * @property [positions] - A Property specifying the array of {@link Cartesian3} positions that define the centerline of the corridor.
- * @property [width] - A numeric Property specifying the distance between the edges of the corridor.
- * @property [height = 0] - A numeric Property specifying the altitude of the corridor relative to the ellipsoid surface.
- * @property [heightReference = HeightReference.NONE] - A Property specifying what the height is relative to.
- * @property [extrudedHeight] - A numeric Property specifying the altitude of the corridor's extruded face relative to the ellipsoid surface.
- * @property [extrudedHeightReference = HeightReference.NONE] - A Property specifying what the extrudedHeight is relative to.
- * @property [cornerType = CornerType.ROUNDED] - A {@link CornerType} Property specifying the style of the corners.
- * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - A numeric Property specifying the distance between each latitude and longitude.
- * @property [fill = true] - A boolean Property specifying whether the corridor is filled with the provided material.
- * @property [material = Color.WHITE] - A Property specifying the material used to fill the corridor.
- * @property [outline = false] - A boolean Property specifying whether the corridor is outlined.
- * @property [outlineColor = Color.BLACK] - A Property specifying the {@link Color} of the outline.
- * @property [outlineWidth = 1.0] - A numeric Property specifying the width of the outline.
- * @property [shadows = ShadowMode.DISABLED] - An enum Property specifying whether the corridor casts or receives shadows from light sources.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this corridor will be displayed.
- * @property [classificationType = ClassificationType.BOTH] - An enum Property specifying whether this corridor will classify terrain, 3D Tiles, or both when on the ground.
- * @property [zIndex] - A Property specifying the zIndex of the corridor, used for ordering. Only has an effect if height and extrudedHeight are undefined, and if the corridor is static.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- positions?: Property | Cartesian3;
- width?: Property | number;
- height?: Property | number;
- heightReference?: Property | HeightReference;
- extrudedHeight?: Property | number;
- extrudedHeightReference?: Property | HeightReference;
- cornerType?: Property | CornerType;
- granularity?: Property | number;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- classificationType?: Property | ClassificationType;
- zIndex?: ConstantProperty | number;
- };
- }
- /**
- * Describes a corridor, which is a shape defined by a centerline and width that
- * conforms to the curvature of the globe. It can be placed on the surface or at altitude
- * and can optionally be extruded into a volume.
- * @param [options] - Object describing initialization options
- */
- export class CorridorGraphics {
- constructor(options?: CorridorGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the corridor.
- */
- show: Property | undefined;
- /**
- * Gets or sets a Property specifying the array of {@link Cartesian3} positions that define the centerline of the corridor.
- */
- positions: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- */
- width: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the altitude of the corridor.
- */
- height: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the altitude of the corridor extrusion.
- * Setting this property creates a corridor shaped volume starting at height and ending
- * at this altitude.
- */
- extrudedHeight: Property | undefined;
- /**
- * Gets or sets the Property specifying the extruded {@link HeightReference}.
- */
- extrudedHeightReference: Property | undefined;
- /**
- * Gets or sets the {@link CornerType} Property specifying how corners are styled.
- */
- cornerType: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the sampling distance between each latitude and longitude point.
- */
- granularity: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the corridor is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the corridor.
- */
- material: MaterialProperty | undefined;
- /**
- * Gets or sets the Property specifying whether the corridor is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- classificationType: Property | undefined;
-
- zIndex: ConstantProperty | undefined;
-
- clone(result?: CorridorGraphics): CorridorGraphics;
-
- merge(source: CorridorGraphics): void;
- }
- export class CustomDataSource {
- constructor(name?: string);
- /**
- * Gets or sets a human-readable name for this instance.
- */
- name: string;
- /**
- * Gets or sets the clock for this instance.
- */
- clock: DataSourceClock;
- /**
- * Gets the collection of {@link Entity} instances.
- */
- entities: EntityCollection;
- /**
- * Gets or sets whether the data source is currently loading data.
- */
- isLoading: boolean;
- /**
- * Gets an event that will be raised when the underlying data changes.
- */
- changedEvent: Event;
- /**
- * Gets an event that will be raised if an error is encountered during processing.
- */
- errorEvent: Event;
- /**
- * Gets an event that will be raised when the data source either starts or stops loading.
- */
- loadingEvent: Event;
- /**
- * Gets whether or not this data source should be displayed.
- */
- show: boolean;
- /**
- * Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.
- */
- clustering: EntityCluster;
- /**
- * Updates the data source to the provided time. This function is optional and
- * is not required to be implemented. It is provided for data sources which
- * retrieve data based on the current animation time or scene state.
- * If implemented, update will be called by {@link DataSourceDisplay} once a frame.
- * @param time - The simulation time.
- * @returns True if this data source is ready to be displayed at the provided time, false otherwise.
- */
- update(time: JulianDate): boolean;
- }
- /**
- * A {@link GeometryUpdater} for cylinders.
- * Clients do not normally create this class directly, but instead rely on {@link DataSourceDisplay}.
- * @param entity - The entity containing the geometry to be visualized.
- * @param scene - The scene where visualization is taking place.
- */
- export class CylinderGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace CylinderGraphics {
- /**
- * Initialization options for the CylinderGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the cylinder.
- * @property [length] - A numeric Property specifying the length of the cylinder.
- * @property [topRadius] - A numeric Property specifying the radius of the top of the cylinder.
- * @property [bottomRadius] - A numeric Property specifying the radius of the bottom of the cylinder.
- * @property [heightReference = HeightReference.NONE] - A Property specifying what the height from the entity position is relative to.
- * @property [fill = true] - A boolean Property specifying whether the cylinder is filled with the provided material.
- * @property [material = Color.WHITE] - A Property specifying the material used to fill the cylinder.
- * @property [outline = false] - A boolean Property specifying whether the cylinder is outlined.
- * @property [outlineColor = Color.BLACK] - A Property specifying the {@link Color} of the outline.
- * @property [outlineWidth = 1.0] - A numeric Property specifying the width of the outline.
- * @property [numberOfVerticalLines = 16] - A numeric Property specifying the number of vertical lines to draw along the perimeter for the outline.
- * @property [slices = 128] - The number of edges around the perimeter of the cylinder.
- * @property [shadows = ShadowMode.DISABLED] - An enum Property specifying whether the cylinder casts or receives shadows from light sources.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this cylinder will be displayed.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- length?: Property | number;
- topRadius?: Property | number;
- bottomRadius?: Property | number;
- heightReference?: Property | HeightReference;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- numberOfVerticalLines?: Property | number;
- slices?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- };
- }
- /**
- * Describes a cylinder, truncated cone, or cone defined by a length, top radius, and bottom radius.
- * The center position and orientation are determined by the containing {@link Entity}.
- * @param [options] - Object describing initialization options
- */
- export class CylinderGraphics {
- constructor(options?: CylinderGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the cylinder.
- */
- show: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the length of the cylinder.
- */
- length: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the radius of the top of the cylinder.
- */
- topRadius: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the radius of the bottom of the cylinder.
- */
- bottomRadius: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the cylinder is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the cylinder.
- */
- material: MaterialProperty | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the cylinder is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- numberOfVerticalLines: Property | undefined;
-
- slices: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- clone(result?: CylinderGraphics): CylinderGraphics;
-
- merge(source: CylinderGraphics): void;
- }
- export namespace CzmlDataSource {
-
- type LoadOptions = {
- sourceUri?: Resource | string;
- credit?: Credit | string;
- };
- }
- export class CzmlDataSource {
- constructor(name?: string);
- /**
- * Creates a Promise to a new instance loaded with the provided CZML data.
- * @param czml - A url or CZML object to be processed.
- * @param [options] - An object specifying configuration options
- * @returns A promise that resolves to the new instance once the data is processed.
- */
- static load(czml: Resource | string | any, options?: CzmlDataSource.LoadOptions): Promise<CzmlDataSource>;
- /**
- * Gets a human-readable name for this instance.
- */
- name: string;
- /**
- * Gets the clock settings defined by the loaded CZML. If no clock is explicitly
- * defined in the CZML, the combined availability of all objects is returned. If
- * only static data exists, this value is undefined.
- */
- clock: DataSourceClock;
- /**
- * Gets the collection of {@link Entity} instances.
- */
- entities: EntityCollection;
- /**
- * Gets a value indicating if the data source is currently loading data.
- */
- isLoading: boolean;
- /**
- * Gets an event that will be raised when the underlying data changes.
- */
- changedEvent: Event;
- /**
- * Gets an event that will be raised if an error is encountered during processing.
- */
- errorEvent: Event;
- /**
- * Gets an event that will be raised when the data source either starts or stops loading.
- */
- loadingEvent: Event;
- /**
- * Gets whether or not this data source should be displayed.
- */
- show: boolean;
- /**
- * Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.
- */
- clustering: EntityCluster;
- /**
- * Gets the credit that will be displayed for the data source
- */
- credit: Credit;
- /**
- * Gets the array of CZML processing functions.
- */
- static updaters: any[];
-
- process(czml: Resource | string | any, options?: {
- sourceUri?: string;
- }): Promise<CzmlDataSource>;
-
- load(czml: Resource | string | any, options?: CzmlDataSource.LoadOptions): Promise<CzmlDataSource>;
-
- update(time: JulianDate): boolean;
-
- static processPacketData(type: (...params: any[]) => any, object: any, propertyName: string, packetData: any, interval: TimeInterval, sourceUri: string, entityCollection: EntityCollection): void;
-
- static processPositionPacketData(object: any, propertyName: string, packetData: any, interval: TimeInterval, sourceUri: string, entityCollection: EntityCollection): void;
-
- static processMaterialPacketData(object: any, propertyName: string, packetData: any, interval: TimeInterval, sourceUri: string, entityCollection: EntityCollection): void;
- }
- export class DataSource {
- constructor();
- /**
- * Gets a human-readable name for this instance.
- */
- name: string;
- /**
- * Gets the preferred clock settings for this data source.
- */
- clock: DataSourceClock;
- /**
- * Gets the collection of {@link Entity} instances.
- */
- entities: EntityCollection;
- /**
- * Gets a value indicating if the data source is currently loading data.
- */
- isLoading: boolean;
- /**
- * Gets an event that will be raised when the underlying data changes.
- */
- changedEvent: Event;
- /**
- * Gets an event that will be raised if an error is encountered during processing.
- */
- errorEvent: Event;
- /**
- * Gets an event that will be raised when the value of isLoading changes.
- */
- loadingEvent: Event;
- /**
- * Gets whether or not this data source should be displayed.
- */
- show: boolean;
- /**
- * Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.
- */
- clustering: EntityCluster;
- /**
- * Updates the data source to the provided time. This function is optional and
- * is not required to be implemented. It is provided for data sources which
- * retrieve data based on the current animation time or scene state.
- * If implemented, update will be called by {@link DataSourceDisplay} once a frame.
- * @param time - The simulation time.
- * @returns True if this data source is ready to be displayed at the provided time, false otherwise.
- */
- update(time: JulianDate): boolean;
- }
- /**
- * Represents desired clock settings for a particular {@link DataSource}. These settings may be applied
- * to the {@link Clock} when the DataSource is loaded.
- */
- export class DataSourceClock {
- constructor();
- /**
- * Gets the event that is raised whenever a new property is assigned.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the desired start time of the clock.
- * See {@link Clock#startTime}.
- */
- startTime: JulianDate;
- /**
- * Gets or sets the desired stop time of the clock.
- * See {@link Clock#stopTime}.
- */
- stopTime: JulianDate;
- /**
- * Gets or sets the desired current time when this data source is loaded.
- * See {@link Clock#currentTime}.
- */
- currentTime: JulianDate;
- /**
- * Gets or sets the desired clock range setting.
- * See {@link Clock#clockRange}.
- */
- clockRange: ClockRange;
- /**
- * Gets or sets the desired clock step setting.
- * See {@link Clock#clockStep}.
- */
- clockStep: ClockStep;
- /**
- * Gets or sets the desired clock multiplier.
- * See {@link Clock#multiplier}.
- */
- multiplier: number;
- /**
- * Duplicates a DataSourceClock instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance if one was not provided.
- */
- clone(result?: DataSourceClock): DataSourceClock;
- /**
- * Returns true if this DataSourceClock is equivalent to the other
- * @param other - The other DataSourceClock to compare to.
- * @returns <code>true</code> if the DataSourceClocks are equal; otherwise, <code>false</code>.
- */
- equals(other: DataSourceClock): boolean;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- */
- merge(source: DataSourceClock): void;
- /**
- * Gets the value of this clock instance as a {@link Clock} object.
- * @returns The modified result parameter or a new instance if one was not provided.
- */
- getValue(): Clock;
- }
- /**
- * A collection of {@link DataSource} instances.
- */
- export class DataSourceCollection {
- constructor();
- /**
- * Gets the number of data sources in this collection.
- */
- readonly length: number;
- /**
- * An event that is raised when a data source is added to the collection.
- * Event handlers are passed the data source that was added.
- */
- readonly dataSourceAdded: Event;
- /**
- * An event that is raised when a data source is removed from the collection.
- * Event handlers are passed the data source that was removed.
- */
- readonly dataSourceRemoved: Event;
- /**
- * An event that is raised when a data source changes position in the collection. Event handlers are passed the data source
- * that was moved, its new index after the move, and its old index prior to the move.
- */
- readonly dataSourceMoved: Event;
- /**
- * Adds a data source to the collection.
- * @param dataSource - A data source or a promise to a data source to add to the collection.
- * When passing a promise, the data source will not actually be added
- * to the collection until the promise resolves successfully.
- * @returns A Promise that resolves once the data source has been added to the collection.
- */
- add(dataSource: DataSource | Promise<DataSource>): Promise<DataSource>;
- /**
- * Removes a data source from this collection, if present.
- * @param dataSource - The data source to remove.
- * @param [destroy = false] - Whether to destroy the data source in addition to removing it.
- * @returns true if the data source was in the collection and was removed,
- * false if the data source was not in the collection.
- */
- remove(dataSource: DataSource, destroy?: boolean): boolean;
- /**
- * Removes all data sources from this collection.
- * @param [destroy = false] - whether to destroy the data sources in addition to removing them.
- */
- removeAll(destroy?: boolean): void;
- /**
- * Checks to see if the collection contains a given data source.
- * @param dataSource - The data source to check for.
- * @returns true if the collection contains the data source, false otherwise.
- */
- contains(dataSource: DataSource): boolean;
- /**
- * Determines the index of a given data source in the collection.
- * @param dataSource - The data source to find the index of.
- * @returns The index of the data source in the collection, or -1 if the data source does not exist in the collection.
- */
- indexOf(dataSource: DataSource): number;
- /**
- * Gets a data source by index from the collection.
- * @param index - the index to retrieve.
- * @returns The data source at the specified index.
- */
- get(index: number): DataSource;
- /**
- * Gets a data source by name from the collection.
- * @param name - The name to retrieve.
- * @returns A list of all data sources matching the provided name.
- */
- getByName(name: string): DataSource[];
- /**
- * Raises a data source up one position in the collection.
- * @param dataSource - The data source to move.
- */
- raise(dataSource: DataSource): void;
- /**
- * Lowers a data source down one position in the collection.
- * @param dataSource - The data source to move.
- */
- lower(dataSource: DataSource): void;
- /**
- * Raises a data source to the top of the collection.
- * @param dataSource - The data source to move.
- */
- raiseToTop(dataSource: DataSource): void;
- /**
- * Lowers a data source to the bottom of the collection.
- * @param dataSource - The data source to move.
- */
- lowerToBottom(dataSource: DataSource): void;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * If this object was destroyed, it should not be used; calling any function other than
- * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
- * @returns true if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Destroys the resources held by all data sources in this collection. Explicitly destroying this
- * object allows for deterministic release of WebGL resources, instead of relying on the garbage
- * collector. Once this object is destroyed, it should not be used; calling any function other than
- * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
- * assign the return value (<code>undefined</code>) to the object as done in the example.
- * @example
- * dataSourceCollection = dataSourceCollection && dataSourceCollection.destroy();
- */
- destroy(): void;
- }
- export class DataSourceDisplay {
- constructor(options: {
- scene: Scene;
- dataSourceCollection: DataSourceCollection;
- visualizersCallback?: DataSourceDisplay.VisualizersCallback;
- });
-
- static defaultVisualizersCallback(): void;
-
- scene: Scene;
-
- dataSources: DataSourceCollection;
-
- defaultDataSource: CustomDataSource;
-
- readonly ready: boolean;
-
- isDestroyed(): boolean;
-
- destroy(): void;
-
- update(time: JulianDate): boolean;
- }
- export namespace DataSourceDisplay {
-
- type VisualizersCallback = (scene: Scene, dataSource: DataSource) => Visualizer[];
- }
- export class EllipseGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Gets a value indicating if the geometry should be drawn on terrain.
- */
- readonly onTerrain: boolean;
- }
- export namespace EllipseGraphics {
-
- type ConstructorOptions = {
- show?: Property | boolean;
- semiMajorAxis?: Property | number;
- semiMinorAxis?: Property | number;
- height?: Property | number;
- heightReference?: Property | HeightReference;
- extrudedHeight?: Property | number;
- extrudedHeightReference?: Property | HeightReference;
- rotation?: Property | number;
- stRotation?: Property | number;
- granularity?: Property | number;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- numberOfVerticalLines?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- classificationType?: Property | ClassificationType;
- zIndex?: ConstantProperty | number;
- };
- }
- export class EllipseGraphics {
- constructor(options?: EllipseGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the ellipse.
- */
- show: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the semi-major axis.
- */
- semiMajorAxis: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the semi-minor axis.
- */
- semiMinorAxis: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the altitude of the ellipse.
- */
- height: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the altitude of the ellipse extrusion.
- * Setting this property creates volume starting at height and ending at this altitude.
- */
- extrudedHeight: Property | undefined;
- /**
- * Gets or sets the Property specifying the extruded {@link HeightReference}.
- */
- extrudedHeightReference: Property | undefined;
- /**
- * Gets or sets the numeric property specifying the rotation of the ellipse counter-clockwise from north.
- */
- rotation: Property | undefined;
- /**
- * Gets or sets the numeric property specifying the rotation of the ellipse texture counter-clockwise from north.
- */
- stRotation: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the angular distance between points on the ellipse.
- */
- granularity: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the ellipse is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the ellipse.
- */
- material: MaterialProperty | undefined;
- /**
- * Gets or sets the Property specifying whether the ellipse is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- numberOfVerticalLines: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- classificationType: Property | undefined;
-
- zIndex: ConstantProperty | undefined;
-
- clone(result?: EllipseGraphics): EllipseGraphics;
-
- merge(source: EllipseGraphics): void;
- }
- export class EllipsoidGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @param [skipModelMatrix = false] - Whether to compute a model matrix for the geometry instance
- * @param [modelMatrixResult] - Used to store the result of the model matrix calculation
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate, skipModelMatrix?: boolean, modelMatrixResult?: Matrix4): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @param [skipModelMatrix = false] - Whether to compute a model matrix for the geometry instance
- * @param [modelMatrixResult] - Used to store the result of the model matrix calculation
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate, skipModelMatrix?: boolean, modelMatrixResult?: Matrix4): GeometryInstance;
- }
- export namespace EllipsoidGraphics {
-
- type ConstructorOptions = {
- show?: Property | boolean;
- radii?: Property | Cartesian3;
- innerRadii?: Property | Cartesian3;
- minimumClock?: Property | number;
- maximumClock?: Property | number;
- minimumCone?: Property | number;
- maximumCone?: Property | number;
- heightReference?: Property | HeightReference;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- stackPartitions?: Property | number;
- slicePartitions?: Property | number;
- subdivisions?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- };
- }
- export class EllipsoidGraphics {
- constructor(options?: EllipsoidGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the ellipsoid.
- */
- show: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian3} {@link Property} specifying the radii of the ellipsoid.
- */
- radii: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian3} {@link Property} specifying the inner radii of the ellipsoid.
- */
- innerRadii: Property | undefined;
- /**
- * Gets or sets the Property specifying the minimum clock angle of the ellipsoid.
- */
- minimumClock: Property | undefined;
- /**
- * Gets or sets the Property specifying the maximum clock angle of the ellipsoid.
- */
- maximumClock: Property | undefined;
- /**
- * Gets or sets the Property specifying the minimum cone angle of the ellipsoid.
- */
- minimumCone: Property | undefined;
- /**
- * Gets or sets the Property specifying the maximum cone angle of the ellipsoid.
- */
- maximumCone: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the ellipsoid is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the ellipsoid.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the Property specifying whether the ellipsoid is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- stackPartitions: Property | undefined;
-
- slicePartitions: Property | undefined;
-
- subdivisions: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- clone(result?: EllipsoidGraphics): EllipsoidGraphics;
-
- merge(source: EllipsoidGraphics): void;
- }
- export namespace Entity {
-
- type ConstructorOptions = {
- id?: string;
- name?: string;
- availability?: TimeIntervalCollection;
- show?: boolean;
- description?: Property | string;
- position?: PositionProperty | Cartesian3;
- orientation?: Property;
- viewFrom?: Property;
- parent?: Entity;
- billboard?: BillboardGraphics | BillboardGraphics.ConstructorOptions;
- box?: BoxGraphics | BoxGraphics.ConstructorOptions;
- corridor?: CorridorGraphics | CorridorGraphics.ConstructorOptions;
- cylinder?: CylinderGraphics | CylinderGraphics.ConstructorOptions;
- ellipse?: EllipseGraphics | EllipseGraphics.ConstructorOptions;
- ellipsoid?: EllipsoidGraphics | EllipsoidGraphics.ConstructorOptions;
- label?: LabelGraphics | LabelGraphics.ConstructorOptions;
- model?: ModelGraphics | ModelGraphics.ConstructorOptions;
- tileset?: Cesium3DTilesetGraphics | Cesium3DTilesetGraphics.ConstructorOptions;
- path?: PathGraphics | PathGraphics.ConstructorOptions;
- plane?: PlaneGraphics | PlaneGraphics.ConstructorOptions;
- point?: PointGraphics | PointGraphics.ConstructorOptions;
- polygon?: PolygonGraphics | PolygonGraphics.ConstructorOptions;
- polyline?: PolylineGraphics | PolylineGraphics.ConstructorOptions;
- properties?: PropertyBag | {
- [key: string]: any;
- };
- polylineVolume?: PolylineVolumeGraphics | PolylineVolumeGraphics.ConstructorOptions;
- rectangle?: RectangleGraphics | RectangleGraphics.ConstructorOptions;
- wall?: WallGraphics | WallGraphics.ConstructorOptions;
- };
- }
- export class Entity {
- constructor(options?: Entity.ConstructorOptions);
- /**
- * Gets or sets the entity collection that this entity belongs to.
- */
- entityCollection: EntityCollection;
- /**
- * The availability, if any, associated with this object.
- * If availability is undefined, it is assumed that this object's
- * other properties will return valid data for any provided time.
- * If availability exists, the objects other properties will only
- * provide valid data if queried within the given interval.
- */
- availability: TimeIntervalCollection | undefined;
- /**
- * Gets the unique ID associated with this object.
- */
- id: string;
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the name of the object. The name is intended for end-user
- * consumption and does not need to be unique.
- */
- name: string | undefined;
- /**
- * Gets or sets whether this entity should be displayed. When set to true,
- * the entity is only displayed if the parent entity's show property is also true.
- */
- show: boolean;
- /**
- * Gets whether this entity is being displayed, taking into account
- * the visibility of any ancestor entities.
- */
- isShowing: boolean;
- /**
- * Gets or sets the parent object.
- */
- parent: Entity | undefined;
- /**
- * Gets the names of all properties registered on this instance.
- */
- propertyNames: string[];
- /**
- * Gets or sets the billboard.
- */
- billboard: BillboardGraphics | undefined;
- /**
- * Gets or sets the box.
- */
- box: BoxGraphics | undefined;
- /**
- * Gets or sets the corridor.
- */
- corridor: CorridorGraphics | undefined;
- /**
- * Gets or sets the cylinder.
- */
- cylinder: CylinderGraphics | undefined;
- /**
- * Gets or sets the description.
- */
- description: Property | undefined;
- /**
- * Gets or sets the ellipse.
- */
- ellipse: EllipseGraphics | undefined;
- /**
- * Gets or sets the ellipsoid.
- */
- ellipsoid: EllipsoidGraphics | undefined;
- /**
- * Gets or sets the label.
- */
- label: LabelGraphics | undefined;
- /**
- * Gets or sets the model.
- */
- model: ModelGraphics | undefined;
- /**
- * Gets or sets the tileset.
- */
- tileset: Cesium3DTilesetGraphics | undefined;
- /**
- * Gets or sets the orientation.
- */
- orientation: Property | undefined;
- /**
- * Gets or sets the path.
- */
- path: PathGraphics | undefined;
- /**
- * Gets or sets the plane.
- */
- plane: PlaneGraphics | undefined;
- /**
- * Gets or sets the point graphic.
- */
- point: PointGraphics | undefined;
- /**
- * Gets or sets the polygon.
- */
- polygon: PolygonGraphics | undefined;
- /**
- * Gets or sets the polyline.
- */
- polyline: PolylineGraphics | undefined;
- /**
- * Gets or sets the polyline volume.
- */
- polylineVolume: PolylineVolumeGraphics | undefined;
- /**
- * Gets or sets the bag of arbitrary properties associated with this entity.
- */
- properties: PropertyBag | undefined;
- /**
- * Gets or sets the position.
- */
- position: PositionProperty | undefined;
- /**
- * Gets or sets the rectangle.
- */
- rectangle: RectangleGraphics | undefined;
- /**
- * Gets or sets the suggested initial offset when tracking this object.
- * The offset is typically defined in the east-north-up reference frame,
- * but may be another frame depending on the object's velocity.
- */
- viewFrom: Property | undefined;
- /**
- * Gets or sets the wall.
- */
- wall: WallGraphics | undefined;
- /**
- * Given a time, returns true if this object should have data during that time.
- * @param time - The time to check availability for.
- * @returns true if the object should have data during the provided time, false otherwise.
- */
- isAvailable(time: JulianDate): boolean;
- /**
- * Adds a property to this object. Once a property is added, it can be
- * observed with {@link Entity#definitionChanged} and composited
- * with {@link CompositeEntityCollection}
- * @param propertyName - The name of the property to add.
- */
- addProperty(propertyName: string): void;
- /**
- * Removed a property previously added with addProperty.
- * @param propertyName - The name of the property to remove.
- */
- removeProperty(propertyName: string): void;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- */
- merge(source: Entity): void;
- /**
- * Computes the model matrix for the entity's transform at specified time. Returns undefined if orientation or position
- * are undefined.
- * @param time - The time to retrieve model matrix for.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new Matrix4 instance if one was not provided. Result is undefined if position or orientation are undefined.
- */
- computeModelMatrix(time: JulianDate, result?: Matrix4): Matrix4;
- /**
- * Checks if the given Scene supports materials besides Color on Entities draped on terrain or 3D Tiles.
- * If this feature is not supported, Entities with non-color materials but no `height` will
- * instead be rendered as if height is 0.
- * @param scene - The current scene.
- * @returns Whether or not the current scene supports materials for entities on terrain.
- */
- static supportsMaterialsforEntitiesOnTerrain(scene: Scene): boolean;
- /**
- * Checks if the given Scene supports polylines clamped to terrain or 3D Tiles.
- * If this feature is not supported, Entities with PolylineGraphics will be rendered with vertices at
- * the provided heights and using the `arcType` parameter instead of clamped to the ground.
- * @param scene - The current scene.
- * @returns Whether or not the current scene supports polylines on terrain or 3D TIles.
- */
- static supportsPolylinesOnTerrain(scene: Scene): boolean;
- }
- /**
- * Defines how screen space objects (billboards, points, labels) are clustered.
- * @param [options] - An object with the following properties:
- * @param [options.enabled = false] - Whether or not to enable clustering.
- * @param [options.pixelRange = 80] - The pixel range to extend the screen space bounding box.
- * @param [options.minimumClusterSize = 2] - The minimum number of screen space objects that can be clustered.
- * @param [options.clusterBillboards = true] - Whether or not to cluster the billboards of an entity.
- * @param [options.clusterLabels = true] - Whether or not to cluster the labels of an entity.
- * @param [options.clusterPoints = true] - Whether or not to cluster the points of an entity.
- * @param [options.show = true] - Determines if the entities in the cluster will be shown.
- */
- export class EntityCluster {
- constructor(options?: {
- enabled?: boolean;
- pixelRange?: number;
- minimumClusterSize?: number;
- clusterBillboards?: boolean;
- clusterLabels?: boolean;
- clusterPoints?: boolean;
- show?: boolean;
- });
- /**
- * Determines if entities in this collection will be shown.
- */
- show: boolean;
- /**
- * Gets or sets whether clustering is enabled.
- */
- enabled: boolean;
- /**
- * Gets or sets the pixel range to extend the screen space bounding box.
- */
- pixelRange: number;
- /**
- * Gets or sets the minimum number of screen space objects that can be clustered.
- */
- minimumClusterSize: number;
- /**
- * Gets the event that will be raised when a new cluster will be displayed. The signature of the event listener is {@link EntityCluster.newClusterCallback}.
- */
- clusterEvent: Event;
- /**
- * Gets or sets whether clustering billboard entities is enabled.
- */
- clusterBillboards: boolean;
- /**
- * Gets or sets whether clustering labels entities is enabled.
- */
- clusterLabels: boolean;
- /**
- * Gets or sets whether clustering point entities is enabled.
- */
- clusterPoints: boolean;
- /**
- * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
- * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
- * <p>
- * Unlike other objects that use WebGL resources, this object can be reused. For example, if a data source is removed
- * from a data source collection and added to another.
- * </p>
- */
- destroy(): void;
- }
- export namespace EntityCluster {
- /**
- * A event listener function used to style clusters.
- * @example
- * // The default cluster values.
- * dataSource.clustering.clusterEvent.addEventListener(function(entities, cluster) {
- * cluster.label.show = true;
- * cluster.label.text = entities.length.toLocaleString();
- * });
- * @param clusteredEntities - An array of the entities contained in the cluster.
- * @param cluster - An object containing billboard, label, and point properties. The values are the same as
- * billboard, label and point entities, but must be the values of the ConstantProperty.
- */
- type newClusterCallback = (clusteredEntities: Entity[], cluster: any) => void;
- }
- /**
- * An observable collection of {@link Entity} instances where each entity has a unique id.
- * @param [owner] - The data source (or composite entity collection) which created this collection.
- */
- export class EntityCollection {
- constructor(owner?: DataSource | CompositeEntityCollection);
- /**
- * Prevents {@link EntityCollection#collectionChanged} events from being raised
- * until a corresponding call is made to {@link EntityCollection#resumeEvents}, at which
- * point a single event will be raised that covers all suspended operations.
- * This allows for many items to be added and removed efficiently.
- * This function can be safely called multiple times as long as there
- * are corresponding calls to {@link EntityCollection#resumeEvents}.
- */
- suspendEvents(): void;
- /**
- * Resumes raising {@link EntityCollection#collectionChanged} events immediately
- * when an item is added or removed. Any modifications made while while events were suspended
- * will be triggered as a single event when this function is called.
- * This function is reference counted and can safely be called multiple times as long as there
- * are corresponding calls to {@link EntityCollection#resumeEvents}.
- */
- resumeEvents(): void;
- /**
- * The signature of the event generated by {@link EntityCollection#collectionChanged}.
- * @param collection - The collection that triggered the event.
- * @param added - The array of {@link Entity} instances that have been added to the collection.
- * @param removed - The array of {@link Entity} instances that have been removed from the collection.
- * @param changed - The array of {@link Entity} instances that have been modified.
- */
- static collectionChangedEventCallback(collection: EntityCollection, added: Entity[], removed: Entity[], changed: Entity[]): void;
- /**
- * Gets the event that is fired when entities are added or removed from the collection.
- * The generated event is a {@link EntityCollection.collectionChangedEventCallback}.
- */
- readonly collectionChanged: Event;
- /**
- * Gets a globally unique identifier for this collection.
- */
- readonly id: string;
- /**
- * Gets the array of Entity instances in the collection.
- * This array should not be modified directly.
- */
- readonly values: Entity[];
- /**
- * Gets whether or not this entity collection should be
- * displayed. When true, each entity is only displayed if
- * its own show property is also true.
- */
- show: boolean;
- /**
- * Gets the owner of this entity collection, ie. the data source or composite entity collection which created it.
- */
- readonly owner: DataSource | CompositeEntityCollection;
- /**
- * Computes the maximum availability of the entities in the collection.
- * If the collection contains a mix of infinitely available data and non-infinite data,
- * it will return the interval pertaining to the non-infinite data only. If all
- * data is infinite, an infinite interval will be returned.
- * @returns The availability of entities in the collection.
- */
- computeAvailability(): TimeInterval;
- /**
- * Add an entity to the collection.
- * @param entity - The entity to be added.
- * @returns The entity that was added.
- */
- add(entity: Entity | Entity.ConstructorOptions): Entity;
- /**
- * Removes an entity from the collection.
- * @param entity - The entity to be removed.
- * @returns true if the item was removed, false if it did not exist in the collection.
- */
- remove(entity: Entity): boolean;
- /**
- * Returns true if the provided entity is in this collection, false otherwise.
- * @param entity - The entity.
- * @returns true if the provided entity is in this collection, false otherwise.
- */
- contains(entity: Entity): boolean;
- /**
- * Removes an entity with the provided id from the collection.
- * @param id - The id of the entity to remove.
- * @returns true if the item was removed, false if no item with the provided id existed in the collection.
- */
- removeById(id: string): boolean;
- /**
- * Removes all Entities from the collection.
- */
- removeAll(): void;
- /**
- * Gets an entity with the specified id.
- * @param id - The id of the entity to retrieve.
- * @returns The entity with the provided id or undefined if the id did not exist in the collection.
- */
- getById(id: string): Entity | undefined;
- /**
- * Gets an entity with the specified id or creates it and adds it to the collection if it does not exist.
- * @param id - The id of the entity to retrieve or create.
- * @returns The new or existing object.
- */
- getOrCreateEntity(id: string): Entity;
- }
- /**
- * A utility object for tracking an entity with the camera.
- * @param entity - The entity to track with the camera.
- * @param scene - The scene to use.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid to use for orienting the camera.
- */
- export class EntityView {
- constructor(entity: Entity, scene: Scene, ellipsoid?: Ellipsoid);
- /**
- * The entity to track with the camera.
- */
- entity: Entity;
- /**
- * The scene in which to track the object.
- */
- scene: Scene;
- /**
- * The ellipsoid to use for orienting the camera.
- */
- ellipsoid: Ellipsoid;
- /**
- * The bounding sphere of the object.
- */
- boundingSphere: BoundingSphere;
- /**
- * Gets or sets a camera offset that will be used to
- * initialize subsequent EntityViews.
- */
- static defaultOffset3D: Cartesian3;
- /**
- * Should be called each animation frame to update the camera
- * to the latest settings.
- * @param time - The current animation time.
- * @param [boundingSphere] - bounding sphere of the object.
- */
- update(time: JulianDate, boundingSphere?: BoundingSphere): void;
- }
- export namespace GeoJsonDataSource {
- /**
- * Initialization options for the `load` method.
- * @property [sourceUri] - Overrides the url to use for resolving relative links.
- * @property [markerSize = GeoJsonDataSource.markerSize] - The default size of the map pin created for each point, in pixels.
- * @property [markerSymbol = GeoJsonDataSource.markerSymbol] - The default symbol of the map pin created for each point.
- * @property [markerColor = GeoJsonDataSource.markerColor] - The default color of the map pin created for each point.
- * @property [stroke = GeoJsonDataSource.stroke] - The default color of polylines and polygon outlines.
- * @property [strokeWidth = GeoJsonDataSource.strokeWidth] - The default width of polylines and polygon outlines.
- * @property [fill = GeoJsonDataSource.fill] - The default color for polygon interiors.
- * @property [clampToGround = GeoJsonDataSource.clampToGround] - true if we want the geometry features (polygons or linestrings) clamped to the ground.
- * @property [credit] - A credit for the data source, which is displayed on the canvas.
- */
- type LoadOptions = {
- sourceUri?: string;
- markerSize?: number;
- markerSymbol?: string;
- markerColor?: Color;
- stroke?: Color;
- strokeWidth?: number;
- fill?: Color;
- clampToGround?: boolean;
- credit?: Credit | string;
- };
- /**
- * This callback is displayed as part of the GeoJsonDataSource class.
- * @param properties - The properties of the feature.
- * @param nameProperty - The property key that Cesium estimates to have the name of the feature.
- */
- type describe = (properties: any, nameProperty: string) => void;
- }
- /**
- * A {@link DataSource} which processes both
- * {@link http://www.geojson.org/|GeoJSON} and {@link https://github.com/mbostock/topojson|TopoJSON} data.
- * {@link https://github.com/mapbox/simplestyle-spec|simplestyle-spec} properties will also be used if they
- * are present.
- * @example
- * var viewer = new Cesium.Viewer('cesiumContainer');
- * viewer.dataSources.add(Cesium.GeoJsonDataSource.load('../../SampleData/ne_10m_us_states.topojson', {
- * stroke: Cesium.Color.HOTPINK,
- * fill: Cesium.Color.PINK,
- * strokeWidth: 3,
- * markerSymbol: '?'
- * }));
- * @param [name] - The name of this data source. If undefined, a name will be taken from
- * the name of the GeoJSON file.
- */
- export class GeoJsonDataSource {
- constructor(name?: string);
- /**
- * Creates a Promise to a new instance loaded with the provided GeoJSON or TopoJSON data.
- * @param data - A url, GeoJSON object, or TopoJSON object to be loaded.
- * @param [options] - An object specifying configuration options
- * @returns A promise that will resolve when the data is loaded.
- */
- static load(data: Resource | string | any, options?: GeoJsonDataSource.LoadOptions): Promise<GeoJsonDataSource>;
- /**
- * Gets or sets the default size of the map pin created for each point, in pixels.
- */
- static markerSize: number;
- /**
- * Gets or sets the default symbol of the map pin created for each point.
- * This can be any valid {@link http://mapbox.com/maki/|Maki} identifier, any single character,
- * or blank if no symbol is to be used.
- */
- static markerSymbol: string;
- /**
- * Gets or sets the default color of the map pin created for each point.
- */
- static markerColor: Color;
- /**
- * Gets or sets the default color of polylines and polygon outlines.
- */
- static stroke: Color;
- /**
- * Gets or sets the default width of polylines and polygon outlines.
- */
- static strokeWidth: number;
- /**
- * Gets or sets default color for polygon interiors.
- */
- static fill: Color;
- /**
- * Gets or sets default of whether to clamp to the ground.
- */
- static clampToGround: boolean;
- /**
- * Gets an object that maps the name of a crs to a callback function which takes a GeoJSON coordinate
- * and transforms it into a WGS84 Earth-fixed Cartesian. Older versions of GeoJSON which
- * supported the EPSG type can be added to this list as well, by specifying the complete EPSG name,
- * for example 'EPSG:4326'.
- */
- static crsNames: any;
- /**
- * Gets an object that maps the href property of a crs link to a callback function
- * which takes the crs properties object and returns a Promise that resolves
- * to a function that takes a GeoJSON coordinate and transforms it into a WGS84 Earth-fixed Cartesian.
- * Items in this object take precedence over those defined in <code>crsLinkHrefs</code>, assuming
- * the link has a type specified.
- */
- static crsLinkHrefs: any;
- /**
- * Gets an object that maps the type property of a crs link to a callback function
- * which takes the crs properties object and returns a Promise that resolves
- * to a function that takes a GeoJSON coordinate and transforms it into a WGS84 Earth-fixed Cartesian.
- * Items in <code>crsLinkHrefs</code> take precedence over this object.
- */
- static crsLinkTypes: any;
- /**
- * Gets or sets a human-readable name for this instance.
- */
- name: string;
- /**
- * This DataSource only defines static data, therefore this property is always undefined.
- */
- clock: DataSourceClock;
- /**
- * Gets the collection of {@link Entity} instances.
- */
- entities: EntityCollection;
- /**
- * Gets a value indicating if the data source is currently loading data.
- */
- isLoading: boolean;
- /**
- * Gets an event that will be raised when the underlying data changes.
- */
- changedEvent: Event;
- /**
- * Gets an event that will be raised if an error is encountered during processing.
- */
- errorEvent: Event;
- /**
- * Gets an event that will be raised when the data source either starts or stops loading.
- */
- loadingEvent: Event;
- /**
- * Gets whether or not this data source should be displayed.
- */
- show: boolean;
- /**
- * Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.
- */
- clustering: EntityCluster;
- /**
- * Gets the credit that will be displayed for the data source
- */
- credit: Credit;
- /**
- * Asynchronously loads the provided GeoJSON or TopoJSON data, replacing any existing data.
- * @param data - A url, GeoJSON object, or TopoJSON object to be loaded.
- * @param [options] - An object with the following properties:
- * @param [options.sourceUri] - Overrides the url to use for resolving relative links.
- * @param [options.describe = GeoJsonDataSource.defaultDescribeProperty] - A function which returns a Property object (or just a string),
- * which converts the properties into an html description.
- * @param [options.markerSize = GeoJsonDataSource.markerSize] - The default size of the map pin created for each point, in pixels.
- * @param [options.markerSymbol = GeoJsonDataSource.markerSymbol] - The default symbol of the map pin created for each point.
- * @param [options.markerColor = GeoJsonDataSource.markerColor] - The default color of the map pin created for each point.
- * @param [options.stroke = GeoJsonDataSource.stroke] - The default color of polylines and polygon outlines.
- * @param [options.strokeWidth = GeoJsonDataSource.strokeWidth] - The default width of polylines and polygon outlines.
- * @param [options.fill = GeoJsonDataSource.fill] - The default color for polygon interiors.
- * @param [options.clampToGround = GeoJsonDataSource.clampToGround] - true if we want the features clamped to the ground.
- * @param [options.credit] - A credit for the data source, which is displayed on the canvas.
- * @returns a promise that will resolve when the GeoJSON is loaded.
- */
- load(data: Resource | string | any, options?: {
- sourceUri?: string;
- describe?: GeoJsonDataSource.describe;
- markerSize?: number;
- markerSymbol?: string;
- markerColor?: Color;
- stroke?: Color;
- strokeWidth?: number;
- fill?: Color;
- clampToGround?: boolean;
- credit?: Credit | string;
- }): Promise<GeoJsonDataSource>;
- /**
- * Updates the data source to the provided time. This function is optional and
- * is not required to be implemented. It is provided for data sources which
- * retrieve data based on the current animation time or scene state.
- * If implemented, update will be called by {@link DataSourceDisplay} once a frame.
- * @param time - The simulation time.
- * @returns True if this data source is ready to be displayed at the provided time, false otherwise.
- */
- update(time: JulianDate): boolean;
- }
- /**
- * An abstract class for updating geometry entities.
- * @param options - An object with the following properties:
- * @param options.entity - The entity containing the geometry to be visualized.
- * @param options.scene - The scene where visualization is taking place.
- * @param options.geometryOptions - Options for the geometry
- * @param options.geometryPropertyName - The geometry property name
- * @param options.observedPropertyNames - The entity properties this geometry cares about
- */
- export class GeometryUpdater {
- constructor(options: {
- entity: Entity;
- scene: Scene;
- geometryOptions: any;
- geometryPropertyName: string;
- observedPropertyNames: string[];
- });
- /**
- * Gets the unique ID associated with this updater
- */
- readonly id: string;
- /**
- * Gets the entity associated with this geometry.
- */
- readonly entity: Entity;
- /**
- * Gets a value indicating if the geometry has a fill component.
- */
- readonly fillEnabled: boolean;
- /**
- * Gets a value indicating if fill visibility varies with simulation time.
- */
- readonly hasConstantFill: boolean;
- /**
- * Gets the material property used to fill the geometry.
- */
- readonly fillMaterialProperty: MaterialProperty;
- /**
- * Gets a value indicating if the geometry has an outline component.
- */
- readonly outlineEnabled: boolean;
- /**
- * Gets a value indicating if the geometry has an outline component.
- */
- readonly hasConstantOutline: boolean;
- /**
- * Gets the {@link Color} property for the geometry outline.
- */
- readonly outlineColorProperty: Property;
- /**
- * Gets the constant with of the geometry outline, in pixels.
- * This value is only valid if isDynamic is false.
- */
- readonly outlineWidth: number;
- /**
- * Gets the property specifying whether the geometry
- * casts or receives shadows from light sources.
- */
- readonly shadowsProperty: Property;
- /**
- * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this geometry will be displayed.
- */
- readonly distanceDisplayConditionProperty: Property;
- /**
- * Gets or sets the {@link ClassificationType} Property specifying if this geometry will classify terrain, 3D Tiles, or both when on the ground.
- */
- readonly classificationTypeProperty: Property;
- /**
- * Gets a value indicating if the geometry is time-varying.
- * If true, all visualization is delegated to a DynamicGeometryUpdater
- * returned by GeometryUpdater#createDynamicUpdater.
- */
- readonly isDynamic: boolean;
- /**
- * Gets a value indicating if the geometry is closed.
- * This property is only valid for static geometry.
- */
- readonly isClosed: boolean;
- /**
- * Gets an event that is raised whenever the public properties
- * of this updater change.
- */
- readonly geometryChanged: boolean;
- /**
- * Checks if the geometry is outlined at the provided time.
- * @param time - The time for which to retrieve visibility.
- * @returns true if geometry is outlined at the provided time, false otherwise.
- */
- isOutlineVisible(time: JulianDate): boolean;
- /**
- * Checks if the geometry is filled at the provided time.
- * @param time - The time for which to retrieve visibility.
- * @returns true if geometry is filled at the provided time, false otherwise.
- */
- isFilled(time: JulianDate): boolean;
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * @returns True if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Destroys and resources used by the object. Once an object is destroyed, it should not be used.
- */
- destroy(): void;
- }
- /**
- * A general purpose visualizer for geometry represented by {@link Primitive} instances.
- * @param scene - The scene the primitives will be rendered in.
- * @param entityCollection - The entityCollection to visualize.
- * @param [primitives = scene.primitives] - A collection to add primitives related to the entities
- * @param [groundPrimitives = scene.groundPrimitives] - A collection to add ground primitives related to the entities
- */
- export class GeometryVisualizer {
- constructor(scene: Scene, entityCollection: EntityCollection, primitives?: PrimitiveCollection, groundPrimitives?: PrimitiveCollection);
- /**
- * Updates all of the primitives created by this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns True if the visualizer successfully updated to the provided time,
- * false if the visualizer is waiting for asynchronous primitives to be created.
- */
- update(time: JulianDate): boolean;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * @returns True if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Removes and destroys all primitives created by this instance.
- */
- destroy(): void;
- }
- /**
- * A {@link MaterialProperty} that maps to grid {@link Material} uniforms.
- * @param [options] - Object with the following properties:
- * @param [options.color = Color.WHITE] - A Property specifying the grid {@link Color}.
- * @param [options.cellAlpha = 0.1] - A numeric Property specifying cell alpha values.
- * @param [options.lineCount = new Cartesian2(8, 8)] - A {@link Cartesian2} Property specifying the number of grid lines along each axis.
- * @param [options.lineThickness = new Cartesian2(1.0, 1.0)] - A {@link Cartesian2} Property specifying the thickness of grid lines along each axis.
- * @param [options.lineOffset = new Cartesian2(0.0, 0.0)] - A {@link Cartesian2} Property specifying starting offset of grid lines along each axis.
- */
- export class GridMaterialProperty {
- constructor(options?: {
- color?: Property | Color;
- cellAlpha?: Property | number;
- lineCount?: Property | Cartesian2;
- lineThickness?: Property | Cartesian2;
- lineOffset?: Property | Cartesian2;
- });
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the Property specifying the grid {@link Color}.
- */
- color: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying cell alpha values.
- */
- cellAlpha: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the number of grid lines along each axis.
- */
- lineCount: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the thickness of grid lines along each axis.
- */
- lineThickness: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the starting offset of grid lines along each axis.
- */
- lineOffset: Property | undefined;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * An abstract class for updating ground geometry entities.
- * @param options - An object with the following properties:
- * @param options.entity - The entity containing the geometry to be visualized.
- * @param options.scene - The scene where visualization is taking place.
- * @param options.geometryOptions - Options for the geometry
- * @param options.geometryPropertyName - The geometry property name
- * @param options.observedPropertyNames - The entity properties this geometry cares about
- */
- export class GroundGeometryUpdater {
- constructor(options: {
- entity: Entity;
- scene: Scene;
- geometryOptions: any;
- geometryPropertyName: string;
- observedPropertyNames: string[];
- });
- /**
- * Gets the zindex
- */
- readonly zIndex: number;
- /**
- * Destroys and resources used by the object. Once an object is destroyed, it should not be used.
- */
- destroy(): void;
- }
- /**
- * A {@link MaterialProperty} that maps to image {@link Material} uniforms.
- * @param [options] - Object with the following properties:
- * @param [options.image] - A Property specifying the Image, URL, Canvas, or Video.
- * @param [options.repeat = new Cartesian2(1.0, 1.0)] - A {@link Cartesian2} Property specifying the number of times the image repeats in each direction.
- * @param [options.color = Color.WHITE] - The color applied to the image
- * @param [options.transparent = false] - Set to true when the image has transparency (for example, when a png has transparent sections)
- */
- export class ImageMaterialProperty {
- constructor(options?: {
- image?: Property | string | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
- repeat?: Property | Cartesian2;
- color?: Property | Color;
- transparent?: Property | boolean;
- });
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the Property specifying Image, URL, Canvas, or Video to use.
- */
- image: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the number of times the image repeats in each direction.
- */
- repeat: Property | undefined;
- /**
- * Gets or sets the Color Property specifying the desired color applied to the image.
- */
- color: Property | undefined;
- /**
- * Gets or sets the Boolean Property specifying whether the image has transparency
- */
- transparent: Property | undefined;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * Representation of <Camera> from KML
- * @param position - camera position
- * @param headingPitchRoll - camera orientation
- */
- export class KmlCamera {
- constructor(position: Cartesian3, headingPitchRoll: HeadingPitchRoll);
- }
- export namespace KmlDataSource {
- /**
- * Initialization options for the `load` method.
- * @property camera - The camera that is used for viewRefreshModes and sending camera properties to network links.
- * @property canvas - The canvas that is used for sending viewer properties to network links.
- * @property [sourceUri] - Overrides the url to use for resolving relative links and other KML network features.
- * @property [clampToGround = false] - true if we want the geometry features (Polygons, LineStrings and LinearRings) clamped to the ground.
- * @property [ellipsoid = Ellipsoid.WGS84] - The global ellipsoid used for geographical calculations.
- * @property [credit] - A credit for the data source, which is displayed on the canvas.
- */
- type LoadOptions = {
- camera: Camera;
- canvas: HTMLCanvasElement;
- sourceUri?: string;
- clampToGround?: boolean;
- ellipsoid?: Ellipsoid;
- credit?: Credit | string;
- };
- }
- /**
- * A {@link DataSource} which processes Keyhole Markup Language 2.2 (KML).
- * <p>
- * KML support in Cesium is incomplete, but a large amount of the standard,
- * as well as Google's <code>gx</code> extension namespace, is supported. See Github issue
- * {@link https://github.com/CesiumGS/cesium/issues/873|#873} for a
- * detailed list of what is and isn't support. Cesium will also write information to the
- * console when it encounters most unsupported features.
- * </p>
- * <p>
- * Non visual feature data, such as <code>atom:author</code> and <code>ExtendedData</code>
- * is exposed via an instance of {@link KmlFeatureData}, which is added to each {@link Entity}
- * under the <code>kml</code> property.
- * </p>
- * @example
- * var viewer = new Cesium.Viewer('cesiumContainer');
- * viewer.dataSources.add(Cesium.KmlDataSource.load('../../SampleData/facilities.kmz',
- * {
- * camera: viewer.scene.camera,
- * canvas: viewer.scene.canvas
- * })
- * );
- * @param options - An object with the following properties:
- * @param options.camera - The camera that is used for viewRefreshModes and sending camera properties to network links.
- * @param options.canvas - The canvas that is used for sending viewer properties to network links.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The global ellipsoid used for geographical calculations.
- * @param [options.credit] - A credit for the data source, which is displayed on the canvas.
- */
- export class KmlDataSource {
- constructor(options: {
- camera: Camera;
- canvas: HTMLCanvasElement;
- ellipsoid?: Ellipsoid;
- credit?: Credit | string;
- });
- /**
- * Creates a Promise to a new instance loaded with the provided KML data.
- * @param data - A url, parsed KML document, or Blob containing binary KMZ data or a parsed KML document.
- * @param [options] - An object specifying configuration options
- * @returns A promise that will resolve to a new KmlDataSource instance once the KML is loaded.
- */
- static load(data: Resource | string | Document | Blob, options?: KmlDataSource.LoadOptions): Promise<KmlDataSource>;
- /**
- * Gets or sets a human-readable name for this instance.
- * This will be automatically be set to the KML document name on load.
- */
- name: string;
- /**
- * Gets the clock settings defined by the loaded KML. This represents the total
- * availability interval for all time-dynamic data. If the KML does not contain
- * time-dynamic data, this value is undefined.
- */
- clock: DataSourceClock;
- /**
- * Gets the collection of {@link Entity} instances.
- */
- entities: EntityCollection;
- /**
- * Gets a value indicating if the data source is currently loading data.
- */
- isLoading: boolean;
- /**
- * Gets an event that will be raised when the underlying data changes.
- */
- changedEvent: Event;
- /**
- * Gets an event that will be raised if an error is encountered during processing.
- */
- errorEvent: Event;
- /**
- * Gets an event that will be raised when the data source either starts or stops loading.
- */
- loadingEvent: Event;
- /**
- * Gets an event that will be raised when the data source refreshes a network link.
- */
- refreshEvent: Event;
- /**
- * Gets an event that will be raised when the data source finds an unsupported node type.
- */
- unsupportedNodeEvent: Event;
- /**
- * Gets whether or not this data source should be displayed.
- */
- show: boolean;
- /**
- * Gets or sets the clustering options for this data source. This object can be shared between multiple data sources.
- */
- clustering: EntityCluster;
- /**
- * Gets the credit that will be displayed for the data source
- */
- credit: Credit;
- /**
- * Gets the KML Tours that are used to guide the camera to specified destinations on given time intervals.
- */
- kmlTours: KmlTour[];
- /**
- * Asynchronously loads the provided KML data, replacing any existing data.
- * @param data - A url, parsed KML document, or Blob containing binary KMZ data or a parsed KML document.
- * @param [options] - An object with the following properties:
- * @param [options.sourceUri] - Overrides the url to use for resolving relative links and other KML network features.
- * @param [options.clampToGround = false] - true if we want the geometry features (Polygons, LineStrings and LinearRings) clamped to the ground. If true, lines will use corridors so use Entity.corridor instead of Entity.polyline.
- * @param [options.ellipsoid = Ellipsoid.WGS84] - The global ellipsoid used for geographical calculations.
- * @returns A promise that will resolve to this instances once the KML is loaded.
- */
- load(data: Resource | string | Document | Blob, options?: {
- sourceUri?: Resource | string;
- clampToGround?: boolean;
- ellipsoid?: Ellipsoid;
- }): Promise<KmlDataSource>;
- /**
- * Updates any NetworkLink that require updating.
- * @param time - The simulation time.
- * @returns True if this data source is ready to be displayed at the provided time, false otherwise.
- */
- update(time: JulianDate): boolean;
- }
- /**
- * Contains KML Feature data loaded into the <code>Entity.kml</code> property by {@link KmlDataSource}.
- */
- export class KmlFeatureData {
- constructor();
- /**
- * Gets the atom syndication format author field.
- */
- author: KmlFeatureData.Author;
- /**
- * Gets the link.
- */
- link: KmlFeatureData.Link;
- /**
- * Gets the unstructured address field.
- */
- address: string;
- /**
- * Gets the phone number.
- */
- phoneNumber: string;
- /**
- * Gets the snippet.
- */
- snippet: string;
- /**
- * Gets the extended data, parsed into a JSON object.
- * Currently only the <code>Data</code> property is supported.
- * <code>SchemaData</code> and custom data are ignored.
- */
- extendedData: string;
- }
- export namespace KmlFeatureData {
- /**
- * @property name - Gets the name.
- * @property uri - Gets the URI.
- * @property age - Gets the email.
- */
- type Author = {
- name: string;
- uri: string;
- age: number;
- };
- /**
- * @property href - Gets the href.
- * @property hreflang - Gets the language of the linked resource.
- * @property rel - Gets the link relation.
- * @property type - Gets the link type.
- * @property title - Gets the link title.
- * @property length - Gets the link length.
- */
- type Link = {
- href: string;
- hreflang: string;
- rel: string;
- type: string;
- title: string;
- length: string;
- };
- }
- /**
- * @param position - camera position
- * @param headingPitchRange - camera orientation
- */
- export class KmlLookAt {
- constructor(position: Cartesian3, headingPitchRange: HeadingPitchRange);
- }
- /**
- * Describes a KmlTour, which uses KmlTourFlyTo, and KmlTourWait to
- * guide the camera to a specified destinations on given time intervals.
- * @param name - name parsed from KML
- * @param id - id parsed from KML
- * @param playlist - array with KmlTourFlyTos and KmlTourWaits
- */
- export class KmlTour {
- constructor(name: string, id: string, playlist: any[]);
- /**
- * Id of kml gx:Tour entry
- */
- id: string;
- /**
- * Tour name
- */
- name: string;
- /**
- * Index of current entry from playlist
- */
- playlistIndex: number;
- /**
- * Array of playlist entries
- */
- playlist: any[];
- /**
- * Event will be called when tour starts to play,
- * before any playlist entry starts to play.
- */
- tourStart: Event;
- /**
- * Event will be called when all playlist entries are
- * played, or tour playback being canceled.
- *
- * If tour playback was terminated, event callback will
- * be called with terminated=true parameter.
- */
- tourEnd: Event;
- /**
- * Event will be called when entry from playlist starts to play.
- *
- * Event callback will be called with curent entry as first parameter.
- */
- entryStart: Event;
- /**
- * Event will be called when entry from playlist ends to play.
- *
- * Event callback will be called with following parameters:
- * 1. entry - entry
- * 2. terminated - true if playback was terminated by calling {@link KmlTour#stop}
- */
- entryEnd: Event;
- /**
- * Add entry to this tour playlist.
- * @param entry - an entry to add to the playlist.
- */
- addPlaylistEntry(entry: KmlTourFlyTo | KmlTourWait): void;
- /**
- * Play this tour.
- * @param viewer - viewer widget.
- * @param [cameraOptions] - these options will be merged with {@link Camera#flyTo}
- * options for FlyTo playlist entries.
- */
- play(viewer: Viewer, cameraOptions?: any): void;
- /**
- * Stop curently playing tour.
- */
- stop(): void;
- }
- /**
- * Transitions the KmlTour to the next destination. This transition is facilitated
- * using a specified flyToMode over a given number of seconds.
- * @param duration - entry duration
- * @param flyToMode - KML fly to mode: bounce, smooth, etc
- * @param view - KmlCamera or KmlLookAt
- */
- export class KmlTourFlyTo {
- constructor(duration: number, flyToMode: string, view: KmlCamera | KmlLookAt);
- /**
- * Play this playlist entry
- * @param done - function which will be called when playback ends
- * @param camera - Cesium camera
- * @param [cameraOptions] - which will be merged with camera flyTo options. See {@link Camera#flyTo}
- */
- play(done: KmlTourFlyTo.DoneCallback, camera: Camera, cameraOptions?: any): void;
- /**
- * Stop execution of curent entry. Cancel camera flyTo
- */
- stop(): void;
- /**
- * Returns options for {@link Camera#flyTo} or {@link Camera#flyToBoundingSphere}
- * depends on this.view type.
- * @param cameraOptions - options to merge with generated. See {@link Camera#flyTo}
- * @returns {@link Camera#flyTo} or {@link Camera#flyToBoundingSphere} options
- */
- getCameraOptions(cameraOptions: any): any;
- }
- export namespace KmlTourFlyTo {
- /**
- * A function that will be executed when the flight completes.
- * @param terminated - true if {@link KmlTourFlyTo#stop} was
- * called before entry done playback.
- */
- type DoneCallback = (terminated: boolean) => void;
- }
- /**
- * Pauses the KmlTour for a given number of seconds.
- * @param duration - entry duration
- */
- export class KmlTourWait {
- constructor(duration: number);
- /**
- * Play this playlist entry
- * @param done - function which will be called when playback ends
- */
- play(done: KmlTourWait.DoneCallback): void;
- /**
- * Stop execution of curent entry, cancel curent timeout
- */
- stop(): void;
- }
- export namespace KmlTourWait {
- /**
- * A function which will be called when playback ends.
- * @param terminated - true if {@link KmlTourWait#stop} was
- * called before entry done playback.
- */
- type DoneCallback = (terminated: boolean) => void;
- }
- export namespace LabelGraphics {
- /**
- * Initialization options for the LabelGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the label.
- * @property [text] - A Property specifying the text. Explicit newlines '\n' are supported.
- * @property [font = '30px sans-serif'] - A Property specifying the CSS font.
- * @property [style = LabelStyle.FILL] - A Property specifying the {@link LabelStyle}.
- * @property [scale = 1.0] - A numeric Property specifying the scale to apply to the text.
- * @property [showBackground = false] - A boolean Property specifying the visibility of the background behind the label.
- * @property [backgroundColor = new Color(0.165, 0.165, 0.165, 0.8)] - A Property specifying the background {@link Color}.
- * @property [backgroundPadding = new Cartesian2(7, 5)] - A {@link Cartesian2} Property specifying the horizontal and vertical background padding in pixels.
- * @property [pixelOffset = Cartesian2.ZERO] - A {@link Cartesian2} Property specifying the pixel offset.
- * @property [eyeOffset = Cartesian3.ZERO] - A {@link Cartesian3} Property specifying the eye offset.
- * @property [horizontalOrigin = HorizontalOrigin.CENTER] - A Property specifying the {@link HorizontalOrigin}.
- * @property [verticalOrigin = VerticalOrigin.CENTER] - A Property specifying the {@link VerticalOrigin}.
- * @property [heightReference = HeightReference.NONE] - A Property specifying what the height is relative to.
- * @property [fillColor = Color.WHITE] - A Property specifying the fill {@link Color}.
- * @property [outlineColor = Color.BLACK] - A Property specifying the outline {@link Color}.
- * @property [outlineWidth = 1.0] - A numeric Property specifying the outline width.
- * @property [translucencyByDistance] - A {@link NearFarScalar} Property used to set translucency based on distance from the camera.
- * @property [pixelOffsetScaleByDistance] - A {@link NearFarScalar} Property used to set pixelOffset based on distance from the camera.
- * @property [scaleByDistance] - A {@link NearFarScalar} Property used to set scale based on distance from the camera.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this label will be displayed.
- * @property [disableDepthTestDistance] - A Property specifying the distance from the camera at which to disable the depth test to.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- text?: Property | string;
- font?: Property | string;
- style?: Property | LabelStyle;
- scale?: Property | number;
- showBackground?: Property | boolean;
- backgroundColor?: Property | Color;
- backgroundPadding?: Property | Cartesian2;
- pixelOffset?: Property | Cartesian2;
- eyeOffset?: Property | Cartesian3;
- horizontalOrigin?: Property | HorizontalOrigin;
- verticalOrigin?: Property | VerticalOrigin;
- heightReference?: Property | HeightReference;
- fillColor?: Property | Color;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- translucencyByDistance?: Property | NearFarScalar;
- pixelOffsetScaleByDistance?: Property | NearFarScalar;
- scaleByDistance?: Property | NearFarScalar;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- disableDepthTestDistance?: Property | number;
- };
- }
- /**
- * Describes a two dimensional label located at the position of the containing {@link Entity}.
- * <p>
- * <div align='center'>
- * <img src='Images/Label.png' width='400' height='300' /><br />
- * Example labels
- * </div>
- * </p>
- * @param [options] - Object describing initialization options
- */
- export class LabelGraphics {
- constructor(options?: LabelGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the label.
- */
- show: Property | undefined;
- /**
- * Gets or sets the string Property specifying the text of the label.
- * Explicit newlines '\n' are supported.
- */
- text: Property | undefined;
- /**
- * Gets or sets the string Property specifying the font in CSS syntax.
- */
- font: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link LabelStyle}.
- */
- style: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the uniform scale to apply to the image.
- * A scale greater than <code>1.0</code> enlarges the label while a scale less than <code>1.0</code> shrinks it.
- * <p>
- * <div align='center'>
- * <img src='Images/Label.setScale.png' width='400' height='300' /><br/>
- * From left to right in the above image, the scales are <code>0.5</code>, <code>1.0</code>,
- * and <code>2.0</code>.
- * </div>
- * </p>
- */
- scale: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying the visibility of the background behind the label.
- */
- showBackground: Property | undefined;
- /**
- * Gets or sets the Property specifying the background {@link Color}.
- */
- backgroundColor: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the label's horizontal and vertical
- * background padding in pixels.
- */
- backgroundPadding: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the label's pixel offset in screen space
- * from the origin of this label. This is commonly used to align multiple labels and labels at
- * the same position, e.g., an image and text. The screen space origin is the top, left corner of the
- * canvas; <code>x</code> increases from left to right, and <code>y</code> increases from top to bottom.
- * <p>
- * <div align='center'>
- * <table border='0' cellpadding='5'><tr>
- * <td align='center'><code>default</code><br/><img src='Images/Label.setPixelOffset.default.png' width='250' height='188' /></td>
- * <td align='center'><code>l.pixeloffset = new Cartesian2(25, 75);</code><br/><img src='Images/Label.setPixelOffset.x50y-25.png' width='250' height='188' /></td>
- * </tr></table>
- * The label's origin is indicated by the yellow point.
- * </div>
- * </p>
- */
- pixelOffset: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian3} Property specifying the label's offset in eye coordinates.
- * Eye coordinates is a left-handed coordinate system, where <code>x</code> points towards the viewer's
- * right, <code>y</code> points up, and <code>z</code> points into the screen.
- * <p>
- * An eye offset is commonly used to arrange multiple labels or objects at the same position, e.g., to
- * arrange a label above its corresponding 3D model.
- * </p>
- * Below, the label is positioned at the center of the Earth but an eye offset makes it always
- * appear on top of the Earth regardless of the viewer's or Earth's orientation.
- * <p>
- * <div align='center'>
- * <table border='0' cellpadding='5'><tr>
- * <td align='center'><img src='Images/Billboard.setEyeOffset.one.png' width='250' height='188' /></td>
- * <td align='center'><img src='Images/Billboard.setEyeOffset.two.png' width='250' height='188' /></td>
- * </tr></table>
- * <code>l.eyeOffset = new Cartesian3(0.0, 8000000.0, 0.0);</code><br /><br />
- * </div>
- * </p>
- */
- eyeOffset: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HorizontalOrigin}.
- */
- horizontalOrigin: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link VerticalOrigin}.
- */
- verticalOrigin: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the Property specifying the fill {@link Color}.
- */
- fillColor: Property | undefined;
- /**
- * Gets or sets the Property specifying the outline {@link Color}.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the outline width.
- */
- outlineWidth: Property | undefined;
- /**
- * Gets or sets {@link NearFarScalar} Property specifying the translucency of the label based on the distance from the camera.
- * A label's translucency will interpolate between the {@link NearFarScalar#nearValue} and
- * {@link NearFarScalar#farValue} while the camera distance falls within the lower and upper bounds
- * of the specified {@link NearFarScalar#near} and {@link NearFarScalar#far}.
- * Outside of these ranges the label's translucency remains clamped to the nearest bound.
- */
- translucencyByDistance: Property | undefined;
- /**
- * Gets or sets {@link NearFarScalar} Property specifying the pixel offset of the label based on the distance from the camera.
- * A label's pixel offset will interpolate between the {@link NearFarScalar#nearValue} and
- * {@link NearFarScalar#farValue} while the camera distance falls within the lower and upper bounds
- * of the specified {@link NearFarScalar#near} and {@link NearFarScalar#far}.
- * Outside of these ranges the label's pixel offset remains clamped to the nearest bound.
- */
- pixelOffsetScaleByDistance: Property | undefined;
- /**
- * Gets or sets near and far scaling properties of a Label based on the label's distance from the camera.
- * A label's scale will interpolate between the {@link NearFarScalar#nearValue} and
- * {@link NearFarScalar#farValue} while the camera distance falls within the lower and upper bounds
- * of the specified {@link NearFarScalar#near} and {@link NearFarScalar#far}.
- * Outside of these ranges the label's scale remains clamped to the nearest bound. If undefined,
- * scaleByDistance will be disabled.
- */
- scaleByDistance: Property | undefined;
- /**
- * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this label will be displayed.
- */
- distanceDisplayCondition: Property | undefined;
- /**
- * Gets or sets the distance from the camera at which to disable the depth test to, for example, prevent clipping against terrain.
- * When set to zero, the depth test is always applied. When set to Number.POSITIVE_INFINITY, the depth test is never applied.
- */
- disableDepthTestDistance: Property | undefined;
- /**
- * Duplicates this instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance if one was not provided.
- */
- clone(result?: LabelGraphics): LabelGraphics;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- */
- merge(source: LabelGraphics): void;
- }
- /**
- * A {@link Visualizer} which maps the {@link LabelGraphics} instance
- * in {@link Entity#label} to a {@link Label}.
- * @param entityCluster - The entity cluster to manage the collection of billboards and optionally cluster with other entities.
- * @param entityCollection - The entityCollection to visualize.
- */
- export class LabelVisualizer {
- constructor(entityCluster: EntityCluster, entityCollection: EntityCollection);
- /**
- * Updates the primitives created by this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns This function always returns true.
- */
- update(time: JulianDate): boolean;
-
- isDestroyed(): boolean;
-
- destroy(): void;
- }
- export class MaterialProperty {
- constructor();
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- export namespace ModelGraphics {
- /**
- * Initialization options for the ModelGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the model.
- * @property [uri] - A string or Resource Property specifying the URI of the glTF asset.
- * @property [scale = 1.0] - A numeric Property specifying a uniform linear scale.
- * @property [minimumPixelSize = 0.0] - A numeric Property specifying the approximate minimum pixel size of the model regardless of zoom.
- * @property [maximumScale] - The maximum scale size of a model. An upper limit for minimumPixelSize.
- * @property [incrementallyLoadTextures = true] - Determine if textures may continue to stream in after the model is loaded.
- * @property [runAnimations = true] - A boolean Property specifying if glTF animations specified in the model should be started.
- * @property [clampAnimations = true] - A boolean Property specifying if glTF animations should hold the last pose for time durations with no keyframes.
- * @property [shadows = ShadowMode.ENABLED] - An enum Property specifying whether the model casts or receives shadows from light sources.
- * @property [heightReference = HeightReference.NONE] - A Property specifying what the height is relative to.
- * @property [silhouetteColor = Color.RED] - A Property specifying the {@link Color} of the silhouette.
- * @property [silhouetteSize = 0.0] - A numeric Property specifying the size of the silhouette in pixels.
- * @property [color = Color.WHITE] - A Property specifying the {@link Color} that blends with the model's rendered color.
- * @property [colorBlendMode = ColorBlendMode.HIGHLIGHT] - An enum Property specifying how the color blends with the model.
- * @property [colorBlendAmount = 0.5] - A numeric Property specifying the color strength when the <code>colorBlendMode</code> is <code>MIX</code>. A value of 0.0 results in the model's rendered color while a value of 1.0 results in a solid color, with any value in-between resulting in a mix of the two.
- * @property [imageBasedLightingFactor = new Cartesian2(1.0, 1.0)] - A property specifying the contribution from diffuse and specular image-based lighting.
- * @property [lightColor] - A property specifying the light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this model will be displayed.
- * @property [nodeTransformations] - An object, where keys are names of nodes, and values are {@link TranslationRotationScale} Properties describing the transformation to apply to that node. The transformation is applied after the node's existing transformation as specified in the glTF, and does not replace the node's existing transformation.
- * @property [articulations] - An object, where keys are composed of an articulation name, a single space, and a stage name, and the values are numeric properties.
- * @property [clippingPlanes] - A property specifying the {@link ClippingPlaneCollection} used to selectively disable rendering the model.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- uri?: Property | string | Resource;
- scale?: Property | number;
- minimumPixelSize?: Property | number;
- maximumScale?: Property | number;
- incrementallyLoadTextures?: Property | boolean;
- runAnimations?: Property | boolean;
- clampAnimations?: Property | boolean;
- shadows?: Property | ShadowMode;
- heightReference?: Property | HeightReference;
- silhouetteColor?: Property | Color;
- silhouetteSize?: Property | number;
- color?: Property | Color;
- colorBlendMode?: Property | ColorBlendMode;
- colorBlendAmount?: Property | number;
- imageBasedLightingFactor?: Property | Cartesian2;
- lightColor?: Property | Color;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- nodeTransformations?: PropertyBag | {
- [key: string]: TranslationRotationScale;
- };
- articulations?: PropertyBag | {
- [key: string]: number;
- };
- clippingPlanes?: Property | ClippingPlaneCollection;
- };
- }
- export class ModelGraphics {
- constructor(options?: ModelGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the model.
- */
- show: Property | undefined;
- /**
- * Gets or sets the string Property specifying the URI of the glTF asset.
- */
- uri: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying a uniform linear scale
- * for this model. Values greater than 1.0 increase the size of the model while
- * values less than 1.0 decrease it.
- */
- scale: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the approximate minimum
- * pixel size of the model regardless of zoom. This can be used to ensure that
- * a model is visible even when the viewer zooms out. When <code>0.0</code>,
- * no minimum size is enforced.
- */
- minimumPixelSize: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the maximum scale
- * size of a model. This property is used as an upper limit for
- * {@link ModelGraphics#minimumPixelSize}.
- */
- maximumScale: Property | undefined;
- /**
- * Get or sets the boolean Property specifying whether textures
- * may continue to stream in after the model is loaded.
- */
- incrementallyLoadTextures: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying if glTF animations should be run.
- */
- runAnimations: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying if glTF animations should hold the last pose for time durations with no keyframes.
- */
- clampAnimations: Property | undefined;
- /**
- * Get or sets the enum Property specifying whether the model
- * casts or receives shadows from light sources.
- */
- shadows: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the silhouette.
- */
- silhouetteColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the size of the silhouette in pixels.
- */
- silhouetteSize: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} that blends with the model's rendered color.
- */
- color: Property | undefined;
- /**
- * Gets or sets the enum Property specifying how the color blends with the model.
- */
- colorBlendMode: Property | undefined;
- /**
- * A numeric Property specifying the color strength when the <code>colorBlendMode</code> is MIX.
- * A value of 0.0 results in the model's rendered color while a value of 1.0 results in a solid color, with
- * any value in-between resulting in a mix of the two.
- */
- colorBlendAmount: Property | undefined;
- /**
- * A property specifying the {@link Cartesian2} used to scale the diffuse and specular image-based lighting contribution to the final color.
- */
- imageBasedLightingFactor: Property | undefined;
- /**
- * A property specifying the {@link Cartesian3} light color when shading the model. When <code>undefined</code> the scene's light color is used instead.
- */
- lightColor: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- nodeTransformations: PropertyBag;
-
- articulations: PropertyBag;
-
- clippingPlanes: Property | undefined;
-
- clone(result?: ModelGraphics): ModelGraphics;
-
- merge(source: ModelGraphics): void;
- }
- export class ModelVisualizer {
- constructor(scene: Scene, entityCollection: EntityCollection);
- /**
- * Updates models created this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns This function always returns true.
- */
- update(time: JulianDate): boolean;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * @returns True if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Removes and destroys all primitives created by this instance.
- */
- destroy(): void;
- }
- /**
- * A {@link Property} that produces {@link TranslationRotationScale} data.
- * @param [options] - Object with the following properties:
- * @param [options.translation = Cartesian3.ZERO] - A {@link Cartesian3} Property specifying the (x, y, z) translation to apply to the node.
- * @param [options.rotation = Quaternion.IDENTITY] - A {@link Quaternion} Property specifying the (x, y, z, w) rotation to apply to the node.
- * @param [options.scale = new Cartesian3(1.0, 1.0, 1.0)] - A {@link Cartesian3} Property specifying the (x, y, z) scaling to apply to the node.
- */
- export class NodeTransformationProperty {
- constructor(options?: {
- translation?: Property | Cartesian3;
- rotation?: Property | Quaternion;
- scale?: Property | Cartesian3;
- });
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the {@link Cartesian3} Property specifying the (x, y, z) translation to apply to the node.
- */
- translation: Property | undefined;
- /**
- * Gets or sets the {@link Quaternion} Property specifying the (x, y, z, w) rotation to apply to the node.
- */
- rotation: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian3} Property specifying the (x, y, z) scaling to apply to the node.
- */
- scale: Property | undefined;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: TranslationRotationScale): TranslationRotationScale;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- export namespace PathGraphics {
- /**
- * Initialization options for the PathGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the path.
- * @property [leadTime] - A Property specifying the number of seconds in front the object to show.
- * @property [trailTime] - A Property specifying the number of seconds behind of the object to show.
- * @property [width = 1.0] - A numeric Property specifying the width in pixels.
- * @property [resolution = 60] - A numeric Property specifying the maximum number of seconds to step when sampling the position.
- * @property [material = Color.WHITE] - A Property specifying the material used to draw the path.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this path will be displayed.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- leadTime?: Property | number;
- trailTime?: Property | number;
- width?: Property | number;
- resolution?: Property | number;
- material?: MaterialProperty | Color;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- };
- }
- export class PathGraphics {
- constructor(options?: PathGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the path.
- */
- show: Property | undefined;
- /**
- * Gets or sets the Property specifying the number of seconds in front of the object to show.
- */
- leadTime: Property | undefined;
- /**
- * Gets or sets the Property specifying the number of seconds behind the object to show.
- */
- trailTime: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width in pixels.
- */
- width: Property | undefined;
- /**
- * Gets or sets the Property specifying the maximum number of seconds to step when sampling the position.
- */
- resolution: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to draw the path.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this path will be displayed.
- */
- distanceDisplayCondition: Property | undefined;
- /**
- * Duplicates this instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance if one was not provided.
- */
- clone(result?: PathGraphics): PathGraphics;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- */
- merge(source: PathGraphics): void;
- }
- /**
- * A {@link Visualizer} which maps {@link Entity#path} to a {@link Polyline}.
- * @param scene - The scene the primitives will be rendered in.
- * @param entityCollection - The entityCollection to visualize.
- */
- export class PathVisualizer {
- constructor(scene: Scene, entityCollection: EntityCollection);
- /**
- * Updates all of the primitives created by this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns This function always returns true.
- */
- update(time: JulianDate): boolean;
-
- isDestroyed(): boolean;
-
- destroy(): void;
- }
- export class PlaneGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace PlaneGraphics {
-
- type ConstructorOptions = {
- show?: Property | boolean;
- plane?: Property | Plane;
- dimensions?: Property | Cartesian2;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- };
- }
- export class PlaneGraphics {
- constructor(options?: PlaneGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the plane.
- */
- show: Property | undefined;
- /**
- * Gets or sets the {@link Plane} Property specifying the normal and distance of the plane.
- */
- plane: Property | undefined;
- /**
- * Gets or sets the {@link Cartesian2} Property specifying the width and height of the plane.
- */
- dimensions: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the plane is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the material used to fill the plane.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the Property specifying whether the plane is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- clone(result?: PlaneGraphics): PlaneGraphics;
-
- merge(source: PlaneGraphics): void;
- }
- export namespace PointGraphics {
-
- type ConstructorOptions = {
- show?: Property | boolean;
- pixelSize?: Property | number;
- heightReference?: Property | HeightReference;
- color?: Property | Color;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- scaleByDistance?: Property | NearFarScalar;
- translucencyByDistance?: Property | NearFarScalar;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- disableDepthTestDistance?: Property | number;
- };
- }
- export class PointGraphics {
- constructor(options?: PointGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the point.
- */
- show: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the size in pixels.
- */
- pixelSize: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the point.
- */
- color: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the the outline width in pixels.
- */
- outlineWidth: Property | undefined;
- /**
- * Gets or sets the {@link NearFarScalar} Property used to scale the point based on distance.
- * If undefined, a constant size is used.
- */
- scaleByDistance: Property | undefined;
- /**
- * Gets or sets {@link NearFarScalar} Property specifying the translucency of the point based on the distance from the camera.
- * A point's translucency will interpolate between the {@link NearFarScalar#nearValue} and
- * {@link NearFarScalar#farValue} while the camera distance falls within the lower and upper bounds
- * of the specified {@link NearFarScalar#near} and {@link NearFarScalar#far}.
- * Outside of these ranges the points's translucency remains clamped to the nearest bound.
- */
- translucencyByDistance: Property | undefined;
- /**
- * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this point will be displayed.
- */
- distanceDisplayCondition: Property | undefined;
- /**
- * Gets or sets the distance from the camera at which to disable the depth test to, for example, prevent clipping against terrain.
- * When set to zero, the depth test is always applied. When set to Number.POSITIVE_INFINITY, the depth test is never applied.
- */
- disableDepthTestDistance: Property | undefined;
- /**
- * Duplicates this instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance if one was not provided.
- */
- clone(result?: PointGraphics): PointGraphics;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- */
- merge(source: PointGraphics): void;
- }
- /**
- * A {@link Visualizer} which maps {@link Entity#point} to a {@link PointPrimitive}.
- * @param entityCluster - The entity cluster to manage the collection of billboards and optionally cluster with other entities.
- * @param entityCollection - The entityCollection to visualize.
- */
- export class PointVisualizer {
- constructor(entityCluster: EntityCluster, entityCollection: EntityCollection);
- /**
- * Updates the primitives created by this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns This function always returns true.
- */
- update(time: JulianDate): boolean;
-
- isDestroyed(): boolean;
-
- destroy(): void;
- }
- export class PolygonGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace PolygonGraphics {
-
- type ConstructorOptions = {
- show?: Property | boolean;
- hierarchy?: Property | PolygonHierarchy;
- height?: Property | number;
- heightReference?: Property | HeightReference;
- extrudedHeight?: Property | number;
- extrudedHeightReference?: Property | HeightReference;
- stRotation?: Property | number;
- granularity?: Property | number;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- perPositionHeight?: Property | boolean;
- closeTop?: boolean | boolean;
- closeBottom?: boolean | boolean;
- arcType?: Property | ArcType;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- classificationType?: Property | ClassificationType;
- zIndex?: ConstantProperty | number;
- };
- }
- export class PolygonGraphics {
- constructor(options?: PolygonGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the polygon.
- */
- show: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link PolygonHierarchy}.
- */
- hierarchy: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the constant altitude of the polygon.
- */
- height: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the altitude of the polygon extrusion.
- * If {@link PolygonGraphics#perPositionHeight} is false, the volume starts at {@link PolygonGraphics#height} and ends at this altitude.
- * If {@link PolygonGraphics#perPositionHeight} is true, the volume starts at the height of each {@link PolygonGraphics#hierarchy} position and ends at this altitude.
- */
- extrudedHeight: Property | undefined;
- /**
- * Gets or sets the Property specifying the extruded {@link HeightReference}.
- */
- extrudedHeightReference: Property | undefined;
- /**
- * Gets or sets the numeric property specifying the rotation of the polygon texture counter-clockwise from north.
- */
- stRotation: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the angular distance between points on the polygon.
- */
- granularity: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the polygon is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the polygon.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the Property specifying whether the polygon is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- perPositionHeight: Property | undefined;
-
- closeTop: Property | undefined;
-
- closeBottom: Property | undefined;
-
- arcType: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- classificationType: Property | undefined;
-
- zIndex: ConstantProperty | undefined;
-
- clone(result?: PolygonGraphics): PolygonGraphics;
-
- merge(source: PolygonGraphics): void;
- }
- export class PolylineArrowMaterialProperty {
- constructor(color?: Property | Color);
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the {@link Color} {@link Property}.
- */
- color: Property | undefined;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link MaterialProperty} that maps to polyline dash {@link Material} uniforms.
- * @param [options] - Object with the following properties:
- * @param [options.color = Color.WHITE] - A Property specifying the {@link Color} of the line.
- * @param [options.gapColor = Color.TRANSPARENT] - A Property specifying the {@link Color} of the gaps in the line.
- * @param [options.dashLength = 16.0] - A numeric Property specifying the length of the dash pattern in pixels.
- * @param [options.dashPattern = 255.0] - A numeric Property specifying a 16 bit pattern for the dash
- */
- export class PolylineDashMaterialProperty {
- constructor(options?: {
- color?: Property | Color;
- gapColor?: Property | Color;
- dashLength?: Property | number;
- dashPattern?: Property | number;
- });
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the Property specifying the {@link Color} of the line.
- */
- color: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the gaps in the line.
- */
- gapColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the length of a dash cycle
- */
- dashLength: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying a dash pattern
- */
- dashPattern: Property | undefined;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link GeometryUpdater} for polylines.
- * Clients do not normally create this class directly, but instead rely on {@link DataSourceDisplay}.
- * @param entity - The entity containing the geometry to be visualized.
- * @param scene - The scene where visualization is taking place.
- */
- export class PolylineGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Gets the unique ID associated with this updater
- */
- readonly id: string;
- /**
- * Gets the entity associated with this geometry.
- */
- readonly entity: Entity;
- /**
- * Gets a value indicating if the geometry has a fill component.
- */
- readonly fillEnabled: boolean;
- /**
- * Gets a value indicating if fill visibility varies with simulation time.
- */
- readonly hasConstantFill: boolean;
- /**
- * Gets the material property used to fill the geometry.
- */
- readonly fillMaterialProperty: MaterialProperty;
- /**
- * Gets the material property used to fill the geometry when it fails the depth test.
- */
- readonly depthFailMaterialProperty: MaterialProperty;
- /**
- * Gets a value indicating if the geometry has an outline component.
- */
- readonly outlineEnabled: boolean;
- /**
- * Gets a value indicating if outline visibility varies with simulation time.
- */
- readonly hasConstantOutline: boolean;
- /**
- * Gets the {@link Color} property for the geometry outline.
- */
- readonly outlineColorProperty: Property;
- /**
- * Gets the property specifying whether the geometry
- * casts or receives shadows from light sources.
- */
- readonly shadowsProperty: Property;
- /**
- * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this geometry will be displayed.
- */
- readonly distanceDisplayConditionProperty: Property;
- /**
- * Gets or sets the {@link ClassificationType} Property specifying if this geometry will classify terrain, 3D Tiles, or both when on the ground.
- */
- readonly classificationTypeProperty: Property;
- /**
- * Gets a value indicating if the geometry is time-varying.
- * If true, all visualization is delegated to the {@link DynamicGeometryUpdater}
- * returned by GeometryUpdater#createDynamicUpdater.
- */
- readonly isDynamic: boolean;
- /**
- * Gets a value indicating if the geometry is closed.
- * This property is only valid for static geometry.
- */
- readonly isClosed: boolean;
- /**
- * Gets an event that is raised whenever the public properties
- * of this updater change.
- */
- readonly geometryChanged: boolean;
- /**
- * Gets a value indicating if the path of the line.
- */
- readonly arcType: ArcType;
- /**
- * Gets a value indicating if the geometry is clamped to the ground.
- * Returns false if polylines on terrain is not supported.
- */
- readonly clampToGround: boolean;
- /**
- * Gets the zindex
- */
- readonly zIndex: number;
- /**
- * Checks if the geometry is outlined at the provided time.
- * @param time - The time for which to retrieve visibility.
- * @returns true if geometry is outlined at the provided time, false otherwise.
- */
- isOutlineVisible(time: JulianDate): boolean;
- /**
- * Checks if the geometry is filled at the provided time.
- * @param time - The time for which to retrieve visibility.
- * @returns true if geometry is filled at the provided time, false otherwise.
- */
- isFilled(time: JulianDate): boolean;
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * @returns True if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Destroys and resources used by the object. Once an object is destroyed, it should not be used.
- */
- destroy(): void;
- }
- /**
- * A {@link MaterialProperty} that maps to polyline glow {@link Material} uniforms.
- * @param [options] - Object with the following properties:
- * @param [options.color = Color.WHITE] - A Property specifying the {@link Color} of the line.
- * @param [options.glowPower = 0.25] - A numeric Property specifying the strength of the glow, as a percentage of the total line width.
- * @param [options.taperPower = 1.0] - A numeric Property specifying the strength of the tapering effect, as a percentage of the total line length. If 1.0 or higher, no taper effect is used.
- */
- export class PolylineGlowMaterialProperty {
- constructor(options?: {
- color?: Property | Color;
- glowPower?: Property | number;
- taperPower?: Property | number;
- });
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the Property specifying the {@link Color} of the line.
- */
- color: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the strength of the glow, as a percentage of the total line width (less than 1.0).
- */
- glowPower: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the strength of the tapering effect, as a percentage of the total line length. If 1.0 or higher, no taper effect is used.
- */
- taperPower: Property | undefined;
- /**
- * Gets the {@link Material} type at the provided time.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- export namespace PolylineGraphics {
- /**
- * Initialization options for the PolylineGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the polyline.
- * @property [positions] - A Property specifying the array of {@link Cartesian3} positions that define the line strip.
- * @property [width = 1.0] - A numeric Property specifying the width in pixels.
- * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - A numeric Property specifying the angular distance between each latitude and longitude if arcType is not ArcType.NONE.
- * @property [material = Color.WHITE] - A Property specifying the material used to draw the polyline.
- * @property [depthFailMaterial] - A property specifying the material used to draw the polyline when it is below the terrain.
- * @property [arcType = ArcType.GEODESIC] - The type of line the polyline segments must follow.
- * @property [clampToGround = false] - A boolean Property specifying whether the Polyline should be clamped to the ground.
- * @property [shadows = ShadowMode.DISABLED] - An enum Property specifying whether the polyline casts or receives shadows from light sources.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this polyline will be displayed.
- * @property [classificationType = ClassificationType.BOTH] - An enum Property specifying whether this polyline will classify terrain, 3D Tiles, or both when on the ground.
- * @property [zIndex = 0] - A Property specifying the zIndex used for ordering ground geometry. Only has an effect if `clampToGround` is true and polylines on terrain is supported.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- positions?: Property | Cartesian3[];
- width?: Property | number;
- granularity?: Property | number;
- material?: MaterialProperty | Color;
- depthFailMaterial?: MaterialProperty | Color;
- arcType?: Property | ArcType;
- clampToGround?: Property | boolean;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- classificationType?: Property | ClassificationType;
- zIndex?: Property | number;
- };
- }
- /**
- * Describes a polyline. The first two positions define a line segment,
- * and each additional position defines a line segment from the previous position. The segments
- * can be linear connected points, great arcs, or clamped to terrain.
- * @param [options] - Object describing initialization options
- */
- export class PolylineGraphics {
- constructor(options?: PolylineGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the polyline.
- */
- show: Property | undefined;
- /**
- * Gets or sets the Property specifying the array of {@link Cartesian3}
- * positions that define the line strip.
- */
- positions: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width in pixels.
- */
- width: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the angular distance between each latitude and longitude if arcType is not ArcType.NONE and clampToGround is false.
- */
- granularity: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to draw the polyline.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the Property specifying the material used to draw the polyline when it fails the depth test.
- * <p>
- * Requires the EXT_frag_depth WebGL extension to render properly. If the extension is not supported,
- * there may be artifacts.
- * </p>
- */
- depthFailMaterial: MaterialProperty;
-
- arcType: Property | undefined;
-
- clampToGround: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- classificationType: Property | undefined;
-
- zIndex: ConstantProperty | undefined;
-
- clone(result?: PolylineGraphics): PolylineGraphics;
-
- merge(source: PolylineGraphics): void;
- }
- export class PolylineOutlineMaterialProperty {
- constructor(options?: {
- color?: Property | Color;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- });
-
- readonly isConstant: boolean;
-
- readonly definitionChanged: Event;
-
- color: Property | undefined;
-
- outlineColor: Property | undefined;
-
- outlineWidth: Property | undefined;
-
- getType(time: JulianDate): string;
-
- getValue(time: JulianDate, result?: any): any;
-
- equals(other?: Property): boolean;
- }
- export class PolylineVisualizer {
- constructor(scene: Scene, entityCollection: EntityCollection, primitives?: PrimitiveCollection, groundPrimitives?: PrimitiveCollection);
- /**
- * Updates all of the primitives created by this visualizer to match their
- * Entity counterpart at the given time.
- * @param time - The time to update to.
- * @returns True if the visualizer successfully updated to the provided time,
- * false if the visualizer is waiting for asynchronous primitives to be created.
- */
- update(time: JulianDate): boolean;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * @returns True if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Removes and destroys all primitives created by this instance.
- */
- destroy(): void;
- }
- /**
- * A {@link GeometryUpdater} for polyline volumes.
- * Clients do not normally create this class directly, but instead rely on {@link DataSourceDisplay}.
- * @param entity - The entity containing the geometry to be visualized.
- * @param scene - The scene where visualization is taking place.
- */
- export class PolylineVolumeGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace PolylineVolumeGraphics {
- /**
- * Initialization options for the PolylineVolumeGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the volume.
- * @property [positions] - A Property specifying the array of {@link Cartesian3} positions which define the line strip.
- * @property [shape] - A Property specifying the array of {@link Cartesian2} positions which define the shape to be extruded.
- * @property [cornerType = CornerType.ROUNDED] - A {@link CornerType} Property specifying the style of the corners.
- * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - A numeric Property specifying the angular distance between each latitude and longitude point.
- * @property [fill = true] - A boolean Property specifying whether the volume is filled with the provided material.
- * @property [material = Color.WHITE] - A Property specifying the material used to fill the volume.
- * @property [outline = false] - A boolean Property specifying whether the volume is outlined.
- * @property [outlineColor = Color.BLACK] - A Property specifying the {@link Color} of the outline.
- * @property [outlineWidth = 1.0] - A numeric Property specifying the width of the outline.
- * @property [shadows = ShadowMode.DISABLED] - An enum Property specifying whether the volume casts or receives shadows from light sources.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this volume will be displayed.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- positions?: Property | Cartesian3[];
- shape?: Property | Cartesian2[];
- cornerType?: Property | CornerType;
- granularity?: Property | number;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- };
- }
- /**
- * Describes a polyline volume defined as a line strip and corresponding two dimensional shape which is extruded along it.
- * The resulting volume conforms to the curvature of the globe.
- * @param [options] - Object describing initialization options
- */
- export class PolylineVolumeGraphics {
- constructor(options?: PolylineVolumeGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the volume.
- */
- show: Property | undefined;
- /**
- * Gets or sets the Property specifying the array of {@link Cartesian3} positions which define the line strip.
- */
- positions: Property | undefined;
- /**
- * Gets or sets the Property specifying the array of {@link Cartesian2} positions which define the shape to be extruded.
- */
- shape: Property | undefined;
- /**
- * Gets or sets the {@link CornerType} Property specifying the style of the corners.
- */
- cornerType: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the angular distance between points on the volume.
- */
- granularity: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the volume is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the volume.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the Property specifying whether the volume is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- clone(result?: PolylineVolumeGraphics): PolylineVolumeGraphics;
-
- merge(source: PolylineVolumeGraphics): void;
- }
- export class PositionProperty {
- constructor();
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the reference frame that the position is defined in.
- */
- referenceFrame: ReferenceFrame;
- /**
- * Gets the value of the property at the provided time in the fixed frame.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: Cartesian3): Cartesian3;
- /**
- * Gets the value of the property at the provided time and in the provided reference frame.
- * @param time - The time for which to retrieve the value.
- * @param referenceFrame - The desired referenceFrame of the result.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link Property} whose value is an array whose items are the computed value
- * of other PositionProperty instances.
- * @param [value] - An array of Property instances.
- * @param [referenceFrame = ReferenceFrame.FIXED] - The reference frame in which the position is defined.
- */
- export class PositionPropertyArray {
- constructor(value?: Property[], referenceFrame?: ReferenceFrame);
- /**
- * Gets a value indicating if this property is constant. This property
- * is considered constant if all property items in the array are constant.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setValue is called with data different
- * than the current value or one of the properties in the array also changes.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the reference frame in which the position is defined.
- */
- referenceFrame: ReferenceFrame;
- /**
- * Gets the value of the property.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: Cartesian3[]): Cartesian3[];
- /**
- * Gets the value of the property at the provided time and in the provided reference frame.
- * @param time - The time for which to retrieve the value.
- * @param referenceFrame - The desired referenceFrame of the result.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3[]): Cartesian3[];
- /**
- * Sets the value of the property.
- * @param value - An array of Property instances.
- */
- setValue(value: Property[]): void;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * The interface for all properties, which represent a value that can optionally vary over time.
- * This type defines an interface and cannot be instantiated directly.
- */
- export class Property {
- constructor();
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link Property} whose value is an array whose items are the computed value
- * of other property instances.
- * @param [value] - An array of Property instances.
- */
- export class PropertyArray {
- constructor(value?: Property[]);
- /**
- * Gets a value indicating if this property is constant. This property
- * is considered constant if all property items in the array are constant.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setValue is called with data different
- * than the current value or one of the properties in the array also changes.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the value of the property.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter, which is an array of values produced by evaluating each of the contained properties at the given time or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: object[]): object[];
- /**
- * Sets the value of the property.
- * @param value - An array of Property instances.
- */
- setValue(value: Property[]): void;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- export interface PropertyBag extends DictionaryLike {
- }
- /**
- * A {@link Property} whose value is a key-value mapping of property names to the computed value of other properties.
- * @param [value] - An object, containing key-value mapping of property names to properties.
- * @param [createPropertyCallback] - A function that will be called when the value of any of the properties in value are not a Property.
- */
- export class PropertyBag implements DictionaryLike {
- constructor(value?: any, createPropertyCallback?: (...params: any[]) => any);
- /**
- * Gets the names of all properties registered on this instance.
- */
- propertyNames: any[];
- /**
- * Gets a value indicating if this property is constant. This property
- * is considered constant if all property items in this object are constant.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the set of properties contained in this
- * object changes, or one of the properties itself changes.
- */
- readonly definitionChanged: Event;
- /**
- * Determines if this object has defined a property with the given name.
- * @param propertyName - The name of the property to check for.
- * @returns True if this object has defined a property with the given name, false otherwise.
- */
- hasProperty(propertyName: string): boolean;
- /**
- * Adds a property to this object.
- * @param propertyName - The name of the property to add.
- * @param [value] - The value of the new property, if provided.
- * @param [createPropertyCallback] - A function that will be called when the value of this new property is set to a value that is not a Property.
- */
- addProperty(propertyName: string, value?: any, createPropertyCallback?: (...params: any[]) => any): void;
- /**
- * Removed a property previously added with addProperty.
- * @param propertyName - The name of the property to remove.
- */
- removeProperty(propertyName: string): void;
- /**
- * Gets the value of this property. Each contained property will be evaluated at the given time, and the overall
- * result will be an object, mapping property names to those values.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * Note that any properties in result which are not part of this PropertyBag will be left as-is.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- * @param [createPropertyCallback] - A function that will be called when the value of any of the properties in value are not a Property.
- */
- merge(source: any, createPropertyCallback?: (...params: any[]) => any): void;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link GeometryUpdater} for rectangles.
- * Clients do not normally create this class directly, but instead rely on {@link DataSourceDisplay}.
- * @param entity - The entity containing the geometry to be visualized.
- * @param scene - The scene where visualization is taking place.
- */
- export class RectangleGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace RectangleGraphics {
- /**
- * Initialization options for the RectangleGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the rectangle.
- * @property [coordinates] - The Property specifying the {@link Rectangle}.
- * @property [height = 0] - A numeric Property specifying the altitude of the rectangle relative to the ellipsoid surface.
- * @property [heightReference = HeightReference.NONE] - A Property specifying what the height is relative to.
- * @property [extrudedHeight] - A numeric Property specifying the altitude of the rectangle's extruded face relative to the ellipsoid surface.
- * @property [extrudedHeightReference = HeightReference.NONE] - A Property specifying what the extrudedHeight is relative to.
- * @property [rotation = 0.0] - A numeric property specifying the rotation of the rectangle clockwise from north.
- * @property [stRotation = 0.0] - A numeric property specifying the rotation of the rectangle texture counter-clockwise from north.
- * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - A numeric Property specifying the angular distance between points on the rectangle.
- * @property [fill = true] - A boolean Property specifying whether the rectangle is filled with the provided material.
- * @property [material = Color.WHITE] - A Property specifying the material used to fill the rectangle.
- * @property [outline = false] - A boolean Property specifying whether the rectangle is outlined.
- * @property [outlineColor = Color.BLACK] - A Property specifying the {@link Color} of the outline.
- * @property [outlineWidth = 1.0] - A numeric Property specifying the width of the outline.
- * @property [shadows = ShadowMode.DISABLED] - An enum Property specifying whether the rectangle casts or receives shadows from light sources.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this rectangle will be displayed.
- * @property [classificationType = ClassificationType.BOTH] - An enum Property specifying whether this rectangle will classify terrain, 3D Tiles, or both when on the ground.
- * @property [zIndex = 0] - A Property specifying the zIndex used for ordering ground geometry. Only has an effect if the rectangle is constant and neither height or extrudedHeight are specified.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- coordinates?: Property | Rectangle;
- height?: Property | number;
- heightReference?: Property | HeightReference;
- extrudedHeight?: Property | number;
- extrudedHeightReference?: Property | HeightReference;
- rotation?: Property | number;
- stRotation?: Property | number;
- granularity?: Property | number;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- classificationType?: Property | ClassificationType;
- zIndex?: Property | number;
- };
- }
- /**
- * Describes graphics for a {@link Rectangle}.
- * The rectangle conforms to the curvature of the globe and can be placed on the surface or
- * at altitude and can optionally be extruded into a volume.
- * @param [options] - Object describing initialization options
- */
- export class RectangleGraphics {
- constructor(options?: RectangleGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the rectangle.
- */
- show: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Rectangle}.
- */
- coordinates: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the altitude of the rectangle.
- */
- height: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link HeightReference}.
- */
- heightReference: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the altitude of the rectangle extrusion.
- * Setting this property creates volume starting at height and ending at this altitude.
- */
- extrudedHeight: Property | undefined;
- /**
- * Gets or sets the Property specifying the extruded {@link HeightReference}.
- */
- extrudedHeightReference: Property | undefined;
- /**
- * Gets or sets the numeric property specifying the rotation of the rectangle clockwise from north.
- */
- rotation: Property | undefined;
- /**
- * Gets or sets the numeric property specifying the rotation of the rectangle texture counter-clockwise from north.
- */
- stRotation: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the angular distance between points on the rectangle.
- */
- granularity: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the rectangle is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the rectangle.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the Property specifying whether the rectangle is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https://github.com/CesiumGS/cesium/issues/40}.
- * </p>
- */
- outlineWidth: Property | undefined;
- /**
- * Get or sets the enum Property specifying whether the rectangle
- * casts or receives shadows from light sources.
- */
- shadows: Property | undefined;
- /**
- * Gets or sets the {@link DistanceDisplayCondition} Property specifying at what distance from the camera that this rectangle will be displayed.
- */
- distanceDisplayCondition: Property | undefined;
- /**
- * Gets or sets the {@link ClassificationType} Property specifying whether this rectangle will classify terrain, 3D Tiles, or both when on the ground.
- */
- classificationType: Property | undefined;
- /**
- * Gets or sets the zIndex Property specifying the ordering of the rectangle. Only has an effect if the rectangle is constant and neither height or extrudedHeight are specified.
- */
- zIndex: ConstantProperty | undefined;
- /**
- * Duplicates this instance.
- * @param [result] - The object onto which to store the result.
- * @returns The modified result parameter or a new instance if one was not provided.
- */
- clone(result?: RectangleGraphics): RectangleGraphics;
- /**
- * Assigns each unassigned property on this object to the value
- * of the same property on the provided source object.
- * @param source - The object to be merged into this object.
- */
- merge(source: RectangleGraphics): void;
- }
- /**
- * A {@link Property} which transparently links to another property on a provided object.
- * @example
- * var collection = new Cesium.EntityCollection();
- *
- * //Create a new entity and assign a billboard scale.
- * var object1 = new Cesium.Entity({id:'object1'});
- * object1.billboard = new Cesium.BillboardGraphics();
- * object1.billboard.scale = new Cesium.ConstantProperty(2.0);
- * collection.add(object1);
- *
- * //Create a second entity and reference the scale from the first one.
- * var object2 = new Cesium.Entity({id:'object2'});
- * object2.model = new Cesium.ModelGraphics();
- * object2.model.scale = new Cesium.ReferenceProperty(collection, 'object1', ['billboard', 'scale']);
- * collection.add(object2);
- *
- * //Create a third object, but use the fromString helper function.
- * var object3 = new Cesium.Entity({id:'object3'});
- * object3.billboard = new Cesium.BillboardGraphics();
- * object3.billboard.scale = Cesium.ReferenceProperty.fromString(collection, 'object1#billboard.scale');
- * collection.add(object3);
- *
- * //You can refer to an entity with a # or . in id and property names by escaping them.
- * var object4 = new Cesium.Entity({id:'#object.4'});
- * object4.billboard = new Cesium.BillboardGraphics();
- * object4.billboard.scale = new Cesium.ConstantProperty(2.0);
- * collection.add(object4);
- *
- * var object5 = new Cesium.Entity({id:'object5'});
- * object5.billboard = new Cesium.BillboardGraphics();
- * object5.billboard.scale = Cesium.ReferenceProperty.fromString(collection, '\\#object\\.4#billboard.scale');
- * collection.add(object5);
- * @param targetCollection - The entity collection which will be used to resolve the reference.
- * @param targetId - The id of the entity which is being referenced.
- * @param targetPropertyNames - The names of the property on the target entity which we will use.
- */
- export class ReferenceProperty {
- constructor(targetCollection: EntityCollection, targetId: string, targetPropertyNames: string[]);
- /**
- * Gets a value indicating if this property is constant.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever the referenced property's definition is changed.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the reference frame that the position is defined in.
- * This property is only valid if the referenced property is a {@link PositionProperty}.
- */
- readonly referenceFrame: ReferenceFrame;
- /**
- * Gets the id of the entity being referenced.
- */
- readonly targetId: string;
- /**
- * Gets the collection containing the entity being referenced.
- */
- readonly targetCollection: EntityCollection;
- /**
- * Gets the array of property names used to retrieve the referenced property.
- */
- readonly targetPropertyNames: string[];
- /**
- * Gets the resolved instance of the underlying referenced property.
- */
- readonly resolvedProperty: Property | undefined;
- /**
- * Creates a new instance given the entity collection that will
- * be used to resolve it and a string indicating the target entity id and property.
- * The format of the string is "objectId#foo.bar", where # separates the id from
- * property path and . separates sub-properties. If the reference identifier or
- * or any sub-properties contains a # . or \ they must be escaped.
- * @returns A new instance of ReferenceProperty.
- */
- static fromString(targetCollection: EntityCollection, referenceString: string): ReferenceProperty;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Gets the value of the property at the provided time and in the provided reference frame.
- * This method is only valid if the property being referenced is a {@link PositionProperty}.
- * @param time - The time for which to retrieve the value.
- * @param referenceFrame - The desired referenceFrame of the result.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3;
- /**
- * Gets the {@link Material} type at the provided time.
- * This method is only valid if the property being referenced is a {@link MaterialProperty}.
- * @param time - The time for which to retrieve the type.
- * @returns The type of material.
- */
- getType(time: JulianDate): string;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- export namespace Rotation {
- /**
- * The number of elements used to pack the object into an array.
- */
- var packedLength: number;
- /**
- * Stores the provided instance into the provided array.
- * @param value - The value to pack.
- * @param array - The array to pack into.
- * @param [startingIndex = 0] - The index into the array at which to start packing the elements.
- * @returns The array that was packed into
- */
- function pack(value: Rotation, array: number[], startingIndex?: number): number[];
- /**
- * Retrieves an instance from a packed array.
- * @param array - The packed array.
- * @param [startingIndex = 0] - The starting index of the element to be unpacked.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Rotation instance if one was not provided.
- */
- function unpack(array: number[], startingIndex?: number, result?: Rotation): Rotation;
- /**
- * Converts a packed array into a form suitable for interpolation.
- * @param packedArray - The packed array.
- * @param [startingIndex = 0] - The index of the first element to be converted.
- * @param [lastIndex = packedArray.length] - The index of the last element to be converted.
- * @param [result] - The object into which to store the result.
- */
- function convertPackedArrayForInterpolation(packedArray: number[], startingIndex?: number, lastIndex?: number, result?: number[]): void;
- /**
- * Retrieves an instance from a packed array converted with {@link Rotation.convertPackedArrayForInterpolation}.
- * @param array - The array previously packed for interpolation.
- * @param sourceArray - The original packed array.
- * @param [firstIndex = 0] - The firstIndex used to convert the array.
- * @param [lastIndex = packedArray.length] - The lastIndex used to convert the array.
- * @param [result] - The object into which to store the result.
- * @returns The modified result parameter or a new Rotation instance if one was not provided.
- */
- function unpackInterpolationResult(array: number[], sourceArray: number[], firstIndex?: number, lastIndex?: number, result?: Rotation): Rotation;
- }
- /**
- * Represents a {@link Packable} number that always interpolates values
- * towards the shortest angle of rotation. This object is never used directly
- * but is instead passed to the constructor of {@link SampledProperty}
- * in order to represent a two-dimensional angle of rotation.
- * @example
- * var time1 = Cesium.JulianDate.fromIso8601('2010-05-07T00:00:00');
- * var time2 = Cesium.JulianDate.fromIso8601('2010-05-07T00:01:00');
- * var time3 = Cesium.JulianDate.fromIso8601('2010-05-07T00:02:00');
- *
- * var property = new Cesium.SampledProperty(Cesium.Rotation);
- * property.addSample(time1, 0);
- * property.addSample(time3, Cesium.Math.toRadians(350));
- *
- *
- *
- *
- *
- * property.getValue(time2);
- */
- export interface Rotation {
- }
- /**
- * A {@link SampledProperty} which is also a {@link PositionProperty}.
- * @param [referenceFrame = ReferenceFrame.FIXED] - The reference frame in which the position is defined.
- * @param [numberOfDerivatives = 0] - The number of derivatives that accompany each position; i.e. velocity, acceleration, etc...
- */
- export class SampledPositionProperty {
- constructor(referenceFrame?: ReferenceFrame, numberOfDerivatives?: number);
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the reference frame in which the position is defined.
- */
- referenceFrame: ReferenceFrame;
- /**
- * Gets the degree of interpolation to perform when retrieving a value. Call <code>setInterpolationOptions</code> to set this.
- */
- readonly interpolationDegree: number;
-
- readonly interpolationAlgorithm: InterpolationAlgorithm;
-
- numberOfDerivatives: number;
-
- forwardExtrapolationType: ExtrapolationType;
-
- forwardExtrapolationDuration: number;
-
- backwardExtrapolationType: ExtrapolationType;
-
- backwardExtrapolationDuration: number;
-
- getValue(time: JulianDate, result?: Cartesian3): Cartesian3;
-
- getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3;
-
- setInterpolationOptions(options?: {
- interpolationAlgorithm?: InterpolationAlgorithm;
- interpolationDegree?: number;
- }): void;
-
- addSample(time: JulianDate, position: Cartesian3, derivatives?: Cartesian3[]): void;
-
- addSamples(times: JulianDate[], positions: Cartesian3[], derivatives?: any[][]): void;
-
- addSamplesPackedArray(packedSamples: number[], epoch?: JulianDate): void;
-
- removeSample(time: JulianDate): boolean;
-
- removeSamples(time: TimeInterval): void;
-
- equals(other?: Property): boolean;
- }
- export class SampledProperty {
- constructor(type: number | Packable, derivativeTypes?: Packable[]);
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the type of property.
- */
- type: any;
- /**
- * Gets the derivative types used by this property.
- */
- derivativeTypes: Packable[];
- /**
- * Gets the degree of interpolation to perform when retrieving a value.
- */
- interpolationDegree: number;
- /**
- * Gets the interpolation algorithm to use when retrieving a value.
- */
- interpolationAlgorithm: InterpolationAlgorithm;
- /**
- * Gets or sets the type of extrapolation to perform when a value
- * is requested at a time after any available samples.
- */
- forwardExtrapolationType: ExtrapolationType;
- /**
- * Gets or sets the amount of time to extrapolate forward before
- * the property becomes undefined. A value of 0 will extrapolate forever.
- */
- forwardExtrapolationDuration: number;
- /**
- * Gets or sets the type of extrapolation to perform when a value
- * is requested at a time before any available samples.
- */
- backwardExtrapolationType: ExtrapolationType;
- /**
- * Gets or sets the amount of time to extrapolate backward
- * before the property becomes undefined. A value of 0 will extrapolate forever.
- */
- backwardExtrapolationDuration: number;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Sets the algorithm and degree to use when interpolating a value.
- * @param [options] - Object with the following properties:
- * @param [options.interpolationAlgorithm] - The new interpolation algorithm. If undefined, the existing property will be unchanged.
- * @param [options.interpolationDegree] - The new interpolation degree. If undefined, the existing property will be unchanged.
- */
- setInterpolationOptions(options?: {
- interpolationAlgorithm?: InterpolationAlgorithm;
- interpolationDegree?: number;
- }): void;
-
- addSample(time: JulianDate, value: Packable, derivatives?: Packable[]): void;
-
- addSamples(times: JulianDate[], values: Packable[], derivativeValues?: any[][]): void;
-
- addSamplesPackedArray(packedSamples: number[], epoch?: JulianDate): void;
-
- removeSample(time: JulianDate): boolean;
-
- removeSamples(time: TimeInterval): void;
-
- equals(other?: Property): boolean;
- }
- export class StripeMaterialProperty {
- constructor(options?: {
- orientation?: Property | StripeOrientation;
- evenColor?: Property | Color;
- oddColor?: Property | Color;
- offset?: Property | number;
- repeat?: Property | number;
- });
-
- readonly isConstant: boolean;
-
- readonly definitionChanged: Event;
-
- orientation: Property | undefined;
-
- evenColor: Property | undefined;
-
- oddColor: Property | undefined;
-
- offset: Property | undefined;
-
- repeat: Property | undefined;
-
- getType(time: JulianDate): string;
-
- getValue(time: JulianDate, result?: any): any;
-
- equals(other?: Property): boolean;
- }
- export enum StripeOrientation {
-
- HORIZONTAL = 0,
-
- VERTICAL = 1
- }
- export class TimeIntervalCollectionPositionProperty {
- constructor(referenceFrame?: ReferenceFrame);
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is considered to have changed if a call to getValue would return
- * a different result for the same time.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the interval collection.
- */
- intervals: TimeIntervalCollection;
- /**
- * Gets the reference frame in which the position is defined.
- */
- referenceFrame: ReferenceFrame;
- /**
- * Gets the value of the property at the provided time in the fixed frame.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Gets the value of the property at the provided time and in the provided reference frame.
- * @param time - The time for which to retrieve the value.
- * @param referenceFrame - The desired referenceFrame of the result.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValueInReferenceFrame(time: JulianDate, referenceFrame: ReferenceFrame, result?: Cartesian3): Cartesian3;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link Property} which is defined by a {@link TimeIntervalCollection}, where the
- * data property of each {@link TimeInterval} represents the value at time.
- * @example
- *
- *
- * var composite = new Cesium.TimeIntervalCollectionProperty();
- * composite.intervals.addInterval(Cesium.TimeInterval.fromIso8601({
- * iso8601 : '2012-08-01T00:00:00.00Z/2012-08-01T06:00:00.00Z',
- * isStartIncluded : true,
- * isStopIncluded : false,
- * data : new Cesium.Cartesian2(2.0, 3.4)
- * }));
- * composite.intervals.addInterval(Cesium.TimeInterval.fromIso8601({
- * iso8601 : '2012-08-01T06:00:00.00Z/2012-08-01T12:00:00.00Z',
- * isStartIncluded : true,
- * isStopIncluded : false,
- * data : new Cesium.Cartesian2(12.0, 2.7)
- * }));
- * composite.intervals.addInterval(Cesium.TimeInterval.fromIso8601({
- * iso8601 : '2012-08-01T12:00:00.00Z/2012-08-01T18:00:00.00Z',
- * isStartIncluded : true,
- * isStopIncluded : false,
- * data : new Cesium.Cartesian2(5.0, 12.4)
- * }));
- * composite.intervals.addInterval(Cesium.TimeInterval.fromIso8601({
- * iso8601 : '2012-08-01T18:00:00.00Z/2012-08-02T00:00:00.00Z',
- * isStartIncluded : true,
- * isStopIncluded : true,
- * data : new Cesium.Cartesian2(85.0, 4.1)
- * }));
- */
- export class TimeIntervalCollectionProperty {
- constructor();
- /**
- * Gets a value indicating if this property is constant. A property is considered
- * constant if getValue always returns the same result for the current definition.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- * The definition is changed whenever setValue is called with data different
- * than the current value.
- */
- readonly definitionChanged: Event;
- /**
- * Gets the interval collection.
- */
- intervals: TimeIntervalCollection;
- /**
- * Gets the value of the property at the provided time.
- * @param time - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time: JulianDate, result?: any): any;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link Property} which evaluates to a {@link Quaternion} rotation
- * based on the velocity of the provided {@link PositionProperty}.
- * @example
- *
- * var position = new Cesium.SampledProperty();
- * position.addSamples(...);
- * var entity = viewer.entities.add({
- * position : position,
- * orientation : new Cesium.VelocityOrientationProperty(position)
- * }));
- * @param [position] - The position property used to compute the orientation.
- * @param [ellipsoid = Ellipsoid.WGS84] - The ellipsoid used to determine which way is up.
- */
- export class VelocityOrientationProperty {
- constructor(position?: PositionProperty, ellipsoid?: Ellipsoid);
- /**
- * Gets a value indicating if this property is constant.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the position property used to compute orientation.
- */
- position: Property | undefined;
- /**
- * Gets or sets the ellipsoid used to determine which way is up.
- */
- ellipsoid: Property | undefined;
- /**
- * Gets the value of the property at the provided time.
- * @param [time] - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time?: JulianDate, result?: Quaternion): Quaternion;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * A {@link Property} which evaluates to a {@link Cartesian3} vector
- * based on the velocity of the provided {@link PositionProperty}.
- * @example
- *
- * var position = new Cesium.SampledProperty();
- * position.addSamples(...);
- * var entity = viewer.entities.add({
- * position : position,
- * billboard : {
- * image : 'image.png',
- * alignedAxis : new Cesium.VelocityVectorProperty(position, true)
- * }
- * }));
- * @param [position] - The position property used to compute the velocity.
- * @param [normalize = true] - Whether to normalize the computed velocity vector.
- */
- export class VelocityVectorProperty {
- constructor(position?: PositionProperty, normalize?: boolean);
- /**
- * Gets a value indicating if this property is constant.
- */
- readonly isConstant: boolean;
- /**
- * Gets the event that is raised whenever the definition of this property changes.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the position property used to compute the velocity vector.
- */
- position: Property | undefined;
- /**
- * Gets or sets whether the vector produced by this property
- * will be normalized or not.
- */
- normalize: boolean;
- /**
- * Gets the value of the property at the provided time.
- * @param [time] - The time for which to retrieve the value.
- * @param [result] - The object to store the value into, if omitted, a new instance is created and returned.
- * @returns The modified result parameter or a new instance if the result parameter was not supplied.
- */
- getValue(time?: JulianDate, result?: Cartesian3): Cartesian3;
- /**
- * Compares this property to the provided property and returns
- * <code>true</code> if they are equal, <code>false</code> otherwise.
- * @param [other] - The other property.
- * @returns <code>true</code> if left and right are equal, <code>false</code> otherwise.
- */
- equals(other?: Property): boolean;
- }
- /**
- * Defines the interface for visualizers. Visualizers are plug-ins to
- * {@link DataSourceDisplay} that render data associated with
- * {@link DataSource} instances.
- * This object is an interface for documentation purposes and is not intended
- * to be instantiated directly.
- */
- export class Visualizer {
- constructor();
- /**
- * Updates the visualization to the provided time.
- * @param time - The time.
- * @returns True if the display was updated to the provided time,
- * false if the visualizer is waiting for an asynchronous operation to
- * complete before data can be updated.
- */
- update(time: JulianDate): boolean;
- /**
- * Returns true if this object was destroyed; otherwise, false.
- * @returns True if this object was destroyed; otherwise, false.
- */
- isDestroyed(): boolean;
- /**
- * Removes all visualization and cleans up any resources associated with this instance.
- */
- destroy(): void;
- }
- /**
- * A {@link GeometryUpdater} for walls.
- * Clients do not normally create this class directly, but instead rely on {@link DataSourceDisplay}.
- * @param entity - The entity containing the geometry to be visualized.
- * @param scene - The scene where visualization is taking place.
- */
- export class WallGeometryUpdater {
- constructor(entity: Entity, scene: Scene);
- /**
- * Creates the geometry instance which represents the fill of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the filled portion of the geometry.
- */
- createFillGeometryInstance(time: JulianDate): GeometryInstance;
- /**
- * Creates the geometry instance which represents the outline of the geometry.
- * @param time - The time to use when retrieving initial attribute values.
- * @returns The geometry instance representing the outline portion of the geometry.
- */
- createOutlineGeometryInstance(time: JulianDate): GeometryInstance;
- }
- export namespace WallGraphics {
- /**
- * Initialization options for the WallGraphics constructor
- * @property [show = true] - A boolean Property specifying the visibility of the wall.
- * @property [positions] - A Property specifying the array of {@link Cartesian3} positions which define the top of the wall.
- * @property [minimumHeights] - A Property specifying an array of heights to be used for the bottom of the wall instead of the globe surface.
- * @property [maximumHeights] - A Property specifying an array of heights to be used for the top of the wall instead of the height of each position.
- * @property [granularity = Cesium.Math.RADIANS_PER_DEGREE] - A numeric Property specifying the angular distance between each latitude and longitude point.
- * @property [fill = true] - A boolean Property specifying whether the wall is filled with the provided material.
- * @property [material = Color.WHITE] - A Property specifying the material used to fill the wall.
- * @property [outline = false] - A boolean Property specifying whether the wall is outlined.
- * @property [outlineColor = Color.BLACK] - A Property specifying the {@link Color} of the outline.
- * @property [outlineWidth = 1.0] - A numeric Property specifying the width of the outline.
- * @property [shadows = ShadowMode.DISABLED] - An enum Property specifying whether the wall casts or receives shadows from light sources.
- * @property [distanceDisplayCondition] - A Property specifying at what distance from the camera that this wall will be displayed.
- */
- type ConstructorOptions = {
- show?: Property | boolean;
- positions?: Property | Cartesian3[];
- minimumHeights?: Property | number[];
- maximumHeights?: Property | number[];
- granularity?: Property | number;
- fill?: Property | boolean;
- material?: MaterialProperty | Color;
- outline?: Property | boolean;
- outlineColor?: Property | Color;
- outlineWidth?: Property | number;
- shadows?: Property | ShadowMode;
- distanceDisplayCondition?: Property | DistanceDisplayCondition;
- };
- }
- /**
- * Describes a two dimensional wall defined as a line strip and optional maximum and minimum heights.
- * The wall conforms to the curvature of the globe and can be placed along the surface or at altitude.
- * @param [options] - Object describing initialization options
- */
- export class WallGraphics {
- constructor(options?: WallGraphics.ConstructorOptions);
- /**
- * Gets the event that is raised whenever a property or sub-property is changed or modified.
- */
- readonly definitionChanged: Event;
- /**
- * Gets or sets the boolean Property specifying the visibility of the wall.
- */
- show: Property | undefined;
- /**
- * Gets or sets the Property specifying the array of {@link Cartesian3} positions which define the top of the wall.
- */
- positions: Property | undefined;
- /**
- * Gets or sets the Property specifying an array of heights to be used for the bottom of the wall instead of the surface of the globe.
- * If defined, the array must be the same length as {@link Wall#positions}.
- */
- minimumHeights: Property | undefined;
- /**
- * Gets or sets the Property specifying an array of heights to be used for the top of the wall instead of the height of each position.
- * If defined, the array must be the same length as {@link Wall#positions}.
- */
- maximumHeights: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the angular distance between points on the wall.
- */
- granularity: Property | undefined;
- /**
- * Gets or sets the boolean Property specifying whether the wall is filled with the provided material.
- */
- fill: Property | undefined;
- /**
- * Gets or sets the Property specifying the material used to fill the wall.
- */
- material: MaterialProperty;
- /**
- * Gets or sets the Property specifying whether the wall is outlined.
- */
- outline: Property | undefined;
- /**
- * Gets or sets the Property specifying the {@link Color} of the outline.
- */
- outlineColor: Property | undefined;
- /**
- * Gets or sets the numeric Property specifying the width of the outline.
- * <p>
- * Note: This property will be ignored on all major browsers on Windows platforms. For details, see (@link https:
- * </p>
- */
- outlineWidth: Property | undefined;
-
- shadows: Property | undefined;
-
- distanceDisplayCondition: Property | undefined;
-
- clone(result?: WallGraphics): WallGraphics;
-
- merge(source: WallGraphics): void;
- }
- export type exportKmlResultKml = {
- kml: string;
- externalFiles: {
- [key: string]: Blob;
- };
- };
- export type exportKmlResultKmz = {
- kmz: Blob;
- };
- export function exportKml(options: {
- entities: EntityCollection;
- ellipsoid?: Ellipsoid;
- modelCallback?: exportKmlModelCallback;
- time?: JulianDate;
- defaultAvailability?: TimeInterval;
- sampleDuration?: number;
- kmz?: boolean;
- }): Promise<exportKmlResultKml | exportKmlResultKmz>;
- export type exportKmlModelCallback = (model: ModelGraphics, time: JulianDate, externalFiles: any) => string;
- export enum PixelDatatype {
- UNSIGNED_BYTE = WebGLConstants.UNSIGNED_BYTE,
- UNSIGNED_SHORT = WebGLConstants.UNSIGNED_SHORT,
- UNSIGNED_INT = WebGLConstants.UNSIGNED_INT,
- FLOAT = WebGLConstants.FLOAT,
- HALF_FLOAT = WebGLConstants.HALF_FLOAT_OES,
- UNSIGNED_INT_24_8 = WebGLConstants.UNSIGNED_INT_24_8,
- UNSIGNED_SHORT_4_4_4_4 = WebGLConstants.UNSIGNED_SHORT_4_4_4_4,
- UNSIGNED_SHORT_5_5_5_1 = WebGLConstants.UNSIGNED_SHORT_5_5_5_1,
- UNSIGNED_SHORT_5_6_5 = WebGLConstants.UNSIGNED_SHORT_5_6_5
- }
- export enum TextureMagnificationFilter {
-
- NEAREST = WebGLConstants.NEAREST,
-
- LINEAR = WebGLConstants.LINEAR
- }
- export enum TextureMinificationFilter {
-
- NEAREST = WebGLConstants.NEAREST,
-
- LINEAR = WebGLConstants.LINEAR,
-
- NEAREST_MIPMAP_NEAREST = WebGLConstants.NEAREST_MIPMAP_NEAREST,
-
- LINEAR_MIPMAP_NEAREST = WebGLConstants.LINEAR_MIPMAP_NEAREST,
-
- NEAREST_MIPMAP_LINEAR = WebGLConstants.NEAREST_MIPMAP_LINEAR,
-
- LINEAR_MIPMAP_LINEAR = WebGLConstants.LINEAR_MIPMAP_LINEAR
- }
- export class Appearance {
- constructor(options?: {
- translucent?: boolean;
- closed?: boolean;
- material?: Material;
- vertexShaderSource?: string;
- fragmentShaderSource?: string;
- renderState?: any;
- });
-
- material: Material;
-
- translucent: boolean;
-
- readonly vertexShaderSource: string;
-
- readonly fragmentShaderSource: string;
-
- readonly renderState: any;
-
- readonly closed: boolean;
-
- getFragmentShaderSource(): string;
-
- isTranslucent(): boolean;
-
- getRenderState(): any;
- }
- export namespace ArcGisMapServerImageryProvider {
-
- type ConstructorOptions = {
- url: Resource | string;
- token?: string;
- tileDiscardPolicy?: TileDiscardPolicy;
- usePreCachedTilesIfAvailable?: boolean;
- layers?: string;
- enablePickFeatures?: boolean;
- rectangle?: Rectangle;
- tilingScheme?: TilingScheme;
- ellipsoid?: Ellipsoid;
- credit?: Credit | string;
- tileWidth?: number;
- tileHeight?: number;
- maximumLevel?: number;
- };
- }
- export class ArcGisMapServerImageryProvider {
- constructor(options: ArcGisMapServerImageryProvider.ConstructorOptions);
- /**
- * The default alpha blending value of this provider, with 0.0 representing fully transparent and
- * 1.0 representing fully opaque.
- */
- defaultAlpha: number | undefined;
- /**
- * The default alpha blending value on the night side of the globe of this provider, with 0.0 representing fully transparent and
- * 1.0 representing fully opaque.
- */
- defaultNightAlpha: number | undefined;
- /**
- * The default alpha blending value on the day side of the globe of this provider, with 0.0 representing fully transparent and
- * 1.0 representing fully opaque.
- */
- defaultDayAlpha: number | undefined;
- /**
- * The default brightness of this provider. 1.0 uses the unmodified imagery color. Less than 1.0
- * makes the imagery darker while greater than 1.0 makes it brighter.
- */
- defaultBrightness: number | undefined;
- /**
- * The default contrast of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces
- * the contrast while greater than 1.0 increases it.
- */
- defaultContrast: number | undefined;
- /**
- * The default hue of this provider in radians. 0.0 uses the unmodified imagery color.
- */
- defaultHue: number | undefined;
- /**
- * The default saturation of this provider. 1.0 uses the unmodified imagery color. Less than 1.0 reduces the
- * saturation while greater than 1.0 increases it.
- */
- defaultSaturation: number | undefined;
- /**
- * The default gamma correction to apply to this provider. 1.0 uses the unmodified imagery color.
- */
- defaultGamma: number | undefined;
- /**
- * The default texture minification filter to apply to this provider.
- */
- defaultMinificationFilter: TextureMinificationFilter;
- /**
- * The default texture magnification filter to apply to this provider.
- */
- defaultMagnificationFilter: TextureMagnificationFilter;
- /**
- * Gets or sets a value indicating whether feature picking is enabled. If true, {@link ArcGisMapServerImageryProvider#pickFeatures} will
- * invoke the "identify" operation on the ArcGIS server and return the features included in the response. If false,
- * {@link ArcGisMapServerImageryProvider#pickFeatures} will immediately return undefined (indicating no pickable features)
- * without communicating with the server.
- */
- enablePickFeatures: boolean;
- /**
- * Gets the URL of the ArcGIS MapServer.
- */
- readonly url: string;
- /**
- * Gets the ArcGIS token used to authenticate with the ArcGis MapServer service.
- */
- readonly token: string;
- /**
- * Gets the proxy used by this provider.
- */
- readonly proxy: Proxy;
- /**
- * Gets the width of each tile, in pixels. This function should
- * not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly tileWidth: number;
- /**
- * Gets the height of each tile, in pixels. This function should
- * not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly tileHeight: number;
- /**
- * Gets the maximum level-of-detail that can be requested. This function should
- * not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly maximumLevel: number | undefined;
- /**
- * Gets the minimum level-of-detail that can be requested. This function should
- * not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly minimumLevel: number;
- /**
- * Gets the tiling scheme used by this provider. This function should
- * not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly tilingScheme: TilingScheme;
- /**
- * Gets the rectangle, in radians, of the imagery provided by this instance. This function should
- * not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly rectangle: Rectangle;
- /**
- * Gets the tile discard policy. If not undefined, the discard policy is responsible
- * for filtering out "missing" tiles via its shouldDiscardImage function. If this function
- * returns undefined, no tiles are filtered. This function should
- * not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly tileDiscardPolicy: TileDiscardPolicy;
- /**
- * Gets an event that is raised when the imagery provider encounters an asynchronous error. By subscribing
- * to the event, you will be notified of the error and can potentially recover from it. Event listeners
- * are passed an instance of {@link TileProviderError}.
- */
- readonly errorEvent: Event;
- /**
- * Gets a value indicating whether or not the provider is ready for use.
- */
- readonly ready: boolean;
- /**
- * Gets a promise that resolves to true when the provider is ready for use.
- */
- readonly readyPromise: Promise<boolean>;
- /**
- * Gets the credit to display when this imagery provider is active. Typically this is used to credit
- * the source of the imagery. This function should not be called before {@link ArcGisMapServerImageryProvider#ready} returns true.
- */
- readonly credit: Credit;
- /**
- * Gets a value indicating whether this imagery provider is using pre-cached tiles from the
- * ArcGIS MapServer. If the imagery provider is not yet ready ({@link ArcGisMapServerImageryProvider#ready}), this function
- * will return the value of `options.usePreCachedTilesIfAvailable`, even if the MapServer does
- * not have pre-cached tiles.
- */
- readonly usingPrecachedTiles: boolean;
-
- readonly hasAlphaChannel: boolean;
-
- layers: string;
-
- getTileCredits(x: number, y: number, level: number): Credit[];
-
- requestImage(x: number, y: number, level: number, request?: Request): Promise<HTMLImageElement | HTMLCanvasElement> | undefined;
-
|