@openglobus/og 0.11.7 → 0.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/og.css +5 -2
- package/dist/@openglobus/og.css +1 -0
- package/dist/@openglobus/og.esm.js +21 -0
- package/dist/@openglobus/og.esm.js.map +1 -0
- package/dist/@openglobus/og.umd.js +21 -0
- package/dist/@openglobus/og.umd.js.map +1 -0
- package/package.json +11 -11
- package/src/og/Globe.js +18 -6
- package/src/og/camera/Camera.js +70 -79
- package/src/og/camera/PlanetCamera.js +25 -30
- package/src/og/control/DebugInfo.js +2 -2
- package/src/og/control/EarthNavigation.js +26 -17
- package/src/og/control/Lighting.js +52 -73
- package/src/og/control/MouseNavigation.js +30 -29
- package/src/og/control/MouseWheelZoomControl.js +257 -0
- package/src/og/control/Sun.js +3 -3
- package/src/og/control/index.js +2 -0
- package/src/og/control/visibleExtent/Segment.js +1862 -0
- package/src/og/control/visibleExtent/VisibleExtent.js +80 -0
- package/src/og/control/visibleExtent/drawnode.js +751 -0
- package/src/og/entity/BaseBillboard.js +9 -9
- package/src/og/entity/Entity.js +742 -742
- package/src/og/entity/GeoObjectHandler.js +138 -134
- package/src/og/entity/Label.js +7 -7
- package/src/og/entity/LabelHandler.js +2 -1
- package/src/og/layer/CanvasTiles.js +8 -12
- package/src/og/layer/GeoImage.js +2 -10
- package/src/og/layer/GeoTexture2d.js +2 -10
- package/src/og/layer/GeoVideo.js +2 -10
- package/src/og/layer/KML.js +19 -12
- package/src/og/layer/Layer.js +4 -23
- package/src/og/layer/WMS.js +0 -2
- package/src/og/layer/XYZ.js +31 -33
- package/src/og/math/Vec3.js +18 -2
- package/src/og/quadTree/Node.js +48 -93
- package/src/og/quadTree/quadTree.js +1 -1
- package/src/og/renderer/Renderer.js +69 -96
- package/src/og/renderer/RendererEvents.js +3 -1
- package/src/og/scene/Planet.js +171 -173
- package/src/og/segment/Segment.js +99 -268
- package/src/og/segment/Slice.js +45 -0
- package/src/og/shaders/drawnode.js +171 -350
- package/src/og/shaders/geoObject.js +15 -6
- package/src/og/terrain/EmptyTerrain.js +3 -2
- package/src/og/terrain/GlobusTerrain.js +2 -0
- package/src/og/utils/GeoImageCreator.js +5 -1
- package/src/og/utils/Loader.js +1 -1
- package/src/og/utils/PlainSegmentWorker.js +0 -13
- package/src/og/webgl/Handler.js +14 -10
- package/types/Clock.d.ts +94 -0
- package/types/Deferred.d.ts +6 -0
- package/types/Events.d.ts +77 -0
- package/types/Extent.d.ts +166 -0
- package/types/Globe.d.ts +85 -0
- package/types/ImageCanvas.d.ts +123 -0
- package/types/Lock.d.ts +12 -0
- package/types/LonLat.d.ts +108 -0
- package/types/Popup.d.ts +42 -0
- package/types/QueueArray.d.ts +19 -0
- package/types/Rectangle.d.ts +80 -0
- package/types/Stack.d.ts +19 -0
- package/types/ajax.d.ts +24 -0
- package/types/arial.d.ts +48 -0
- package/types/astro/astro.d.ts +38 -0
- package/types/astro/earth.d.ts +7 -0
- package/types/astro/jd.d.ts +254 -0
- package/types/bv/Box.d.ts +30 -0
- package/types/bv/Sphere.d.ts +38 -0
- package/types/bv/index.d.ts +3 -0
- package/types/camera/Camera.d.ts +312 -0
- package/types/camera/Frustum.d.ts +133 -0
- package/types/camera/PlanetCamera.d.ts +219 -0
- package/types/camera/index.d.ts +3 -0
- package/types/cons.d.ts +40 -0
- package/types/control/CompassButton.d.ts +17 -0
- package/types/control/Control.d.ts +104 -0
- package/types/control/DebugInfo.d.ts +15 -0
- package/types/control/EarthCoordinates.d.ts +47 -0
- package/types/control/EarthNavigation.d.ts +43 -0
- package/types/control/GeoImageDragControl.d.ts +6 -0
- package/types/control/KeyboardNavigation.d.ts +21 -0
- package/types/control/LayerSwitcher.d.ts +21 -0
- package/types/control/Lighting.d.ts +16 -0
- package/types/control/MouseNavigation.d.ts +48 -0
- package/types/control/MouseWheelZoomControl.d.ts +45 -0
- package/types/control/ScaleControl.d.ts +22 -0
- package/types/control/ShowFps.d.ts +11 -0
- package/types/control/SimpleNavigation.d.ts +25 -0
- package/types/control/Sun.d.ts +50 -0
- package/types/control/ToggleWireframe.d.ts +12 -0
- package/types/control/TouchNavigation.d.ts +48 -0
- package/types/control/ZoomControl.d.ts +27 -0
- package/types/control/index.d.ts +18 -0
- package/types/ellipsoid/Ellipsoid.d.ts +146 -0
- package/types/ellipsoid/index.d.ts +3 -0
- package/types/ellipsoid/wgs84.d.ts +6 -0
- package/types/entity/BaseBillboard.d.ts +215 -0
- package/types/entity/Billboard.d.ts +94 -0
- package/types/entity/BillboardHandler.d.ts +79 -0
- package/types/entity/Entity.d.ts +348 -0
- package/types/entity/EntityCollection.d.ts +317 -0
- package/types/entity/GeoObject.d.ts +111 -0
- package/types/entity/GeoObjectHandler.d.ts +81 -0
- package/types/entity/Geometry.d.ts +74 -0
- package/types/entity/GeometryHandler.d.ts +76 -0
- package/types/entity/Label.d.ts +189 -0
- package/types/entity/LabelHandler.d.ts +31 -0
- package/types/entity/LabelWorker.d.ts +11 -0
- package/types/entity/PointCloud.d.ts +174 -0
- package/types/entity/PointCloudHandler.d.ts +38 -0
- package/types/entity/Polyline.d.ts +306 -0
- package/types/entity/PolylineHandler.d.ts +18 -0
- package/types/entity/Ray.d.ts +124 -0
- package/types/entity/RayHandler.d.ts +67 -0
- package/types/entity/ShapeHandler.d.ts +22 -0
- package/types/entity/Strip.d.ts +119 -0
- package/types/entity/StripHandler.d.ts +38 -0
- package/types/entity/index.d.ts +8 -0
- package/types/index.core.d.ts +65 -0
- package/types/index.d.ts +45 -0
- package/types/index.webgl.d.ts +7 -0
- package/types/input/KeyboardHandler.d.ts +10 -0
- package/types/input/MouseHandler.d.ts +5 -0
- package/types/input/TouchHandler.d.ts +5 -0
- package/types/input/input.d.ts +34 -0
- package/types/layer/BaseGeoImage.d.ts +94 -0
- package/types/layer/CanvasTiles.d.ts +67 -0
- package/types/layer/GeoImage.d.ts +52 -0
- package/types/layer/GeoTexture2d.d.ts +8 -0
- package/types/layer/GeoVideo.d.ts +55 -0
- package/types/layer/KML.d.ts +68 -0
- package/types/layer/Layer.d.ts +310 -0
- package/types/layer/Material.d.ts +45 -0
- package/types/layer/Vector.d.ts +208 -0
- package/types/layer/WMS.d.ts +61 -0
- package/types/layer/XYZ.d.ts +119 -0
- package/types/layer/index.d.ts +10 -0
- package/types/light/LightSource.d.ts +178 -0
- package/types/math/Line2.d.ts +11 -0
- package/types/math/Line3.d.ts +10 -0
- package/types/math/Mat3.d.ts +65 -0
- package/types/math/Mat4.d.ts +176 -0
- package/types/math/Plane.d.ts +18 -0
- package/types/math/Quat.d.ts +379 -0
- package/types/math/Ray.d.ts +82 -0
- package/types/math/Vec2.d.ts +309 -0
- package/types/math/Vec3.d.ts +467 -0
- package/types/math/Vec4.d.ts +162 -0
- package/types/math/coder.d.ts +43 -0
- package/types/math/index.d.ts +11 -0
- package/types/math.d.ts +261 -0
- package/types/mercator.d.ts +92 -0
- package/types/proj/EPSG3857.d.ts +6 -0
- package/types/proj/EPSG4326.d.ts +6 -0
- package/types/proj/Proj.d.ts +42 -0
- package/types/quadTree/EntityCollectionNode.d.ts +34 -0
- package/types/quadTree/Node.d.ts +60 -0
- package/types/quadTree/quadTree.d.ts +40 -0
- package/types/renderer/Renderer.d.ts +290 -0
- package/types/renderer/RendererEvents.d.ts +237 -0
- package/types/res/images.d.ts +3 -0
- package/types/scene/Axes.d.ts +11 -0
- package/types/scene/BaseNode.d.ts +60 -0
- package/types/scene/Planet.d.ts +576 -0
- package/types/scene/RenderNode.d.ts +142 -0
- package/types/scene/SkyBox.d.ts +10 -0
- package/types/scene/index.d.ts +4 -0
- package/types/segment/Segment.d.ts +275 -0
- package/types/segment/SegmentLonLat.d.ts +17 -0
- package/types/segment/Slice.d.ts +10 -0
- package/types/segment/segmentHelper.d.ts +13 -0
- package/types/shaders/billboard.d.ts +3 -0
- package/types/shaders/depth.d.ts +2 -0
- package/types/shaders/drawnode.d.ts +7 -0
- package/types/shaders/geoObject.d.ts +3 -0
- package/types/shaders/label.d.ts +4 -0
- package/types/shaders/pointCloud.d.ts +2 -0
- package/types/shaders/polyline.d.ts +3 -0
- package/types/shaders/ray.d.ts +2 -0
- package/types/shaders/screenFrame.d.ts +2 -0
- package/types/shaders/shape.d.ts +4 -0
- package/types/shaders/skybox.d.ts +2 -0
- package/types/shaders/toneMapping.d.ts +2 -0
- package/types/shapes/BaseShape.d.ts +250 -0
- package/types/shapes/Sphere.d.ts +41 -0
- package/types/terrain/BilTerrain.d.ts +7 -0
- package/types/terrain/EmptyTerrain.d.ts +73 -0
- package/types/terrain/Geoid.d.ts +26 -0
- package/types/terrain/GlobusTerrain.d.ts +116 -0
- package/types/terrain/MapboxTerrain.d.ts +7 -0
- package/types/terrain/index.d.ts +5 -0
- package/types/utils/FontAtlas.d.ts +15 -0
- package/types/utils/GeoImageCreator.d.ts +30 -0
- package/types/utils/ImagesCacheManager.d.ts +10 -0
- package/types/utils/Loader.d.ts +25 -0
- package/types/utils/NormalMapCreator.d.ts +39 -0
- package/types/utils/PlainSegmentWorker.d.ts +10 -0
- package/types/utils/TerrainWorker.d.ts +9 -0
- package/types/utils/TextureAtlas.d.ts +111 -0
- package/types/utils/VectorTileCreator.d.ts +16 -0
- package/types/utils/colorTable.d.ts +143 -0
- package/types/utils/earcut.d.ts +6 -0
- package/types/utils/shared.d.ts +231 -0
- package/types/webgl/Framebuffer.d.ts +135 -0
- package/types/webgl/Handler.d.ts +417 -0
- package/types/webgl/Multisample.d.ts +89 -0
- package/types/webgl/Program.d.ts +161 -0
- package/types/webgl/ProgramController.d.ts +89 -0
- package/types/webgl/callbacks.d.ts +1 -0
- package/types/webgl/index.d.ts +6 -0
- package/types/webgl/types.d.ts +2 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
!function(e,A){"object"==typeof exports&&"undefined"!=typeof module?A(exports):"function"==typeof define&&define.amd?define(["exports"],A):A((e="undefined"!=typeof globalThis?globalThis:e||self).og={})}(this,(function(e){"use strict";const A={ReadyState:{Uninitialized:0,Loading:1,Loaded:2,Interactive:3,Complete:4},Status:{OK:200,Created:201,Accepted:202,NoContent:204,BadRequest:400,Forbidden:403,NotFound:404,Gone:410,ServerError:500},Method:{Get:"GET",Post:"POST"},Asynchronous:!0,Synchronous:!1},t=function(e){var A=e;this.abort=function(){A.aborted=!0,A.abort()}},i={type:A.Method.Get,async:A.Asynchronous,data:null,sender:null,responseType:"text"};A.request=function(e,r){r=r||{};var n,s={};for(n in i)s[n]=i[n];for(n in r)s[n]=r[n];s.data=r.data;var a,o=new XMLHttpRequest,h=new t(o),l=null;if(s.type===A.Method.Post){if(s.data){l="";for(let e in s.data)a=s.data[e],l+=e+"="+encodeURIComponent(a instanceof Object?JSON.stringify(a):a)+"&";l=l.slice(0,-1)}o.open(s.type,e,s.async),o.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}else if(s.data){var d="?";for(let e in s.data)a=s.data[e],d+=e+"="+encodeURIComponent(a instanceof Object?JSON.stringify(a):a)+"&";d=d.slice(0,-1),o.open(s.type,e+d,s.async)}else o.open(s.type,e,s.async);return s.async&&(o.responseType=s.responseType),o.overrideMimeType("text/plain"),o.onreadystatechange=function(){o.readyState===A.ReadyState.Complete&&(o.status===A.Status.OK?r.success&&r.success.call(r.sender||h,o.response):o.aborted?r.abort&&r.abort.call(r.sender||h,o.response,o.status):r.error&&r.error.call(r.sender||h,o.response,o.status),delete o.onreadystatechange,o.onreadystatechange=null,o=null)},o.send(l),h};const r={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},n=2*Math.PI,s=Math.PI/2,a=Number.MAX_VALUE||17976931348623157e292,o=Math.log(2),h=2147483647,l=549755748352,d=-l,c=Math.PI/180,u=180/Math.PI,g=2*u,f=.5*c,p=Math.sqrt(.5),m=1e-5,x=1e-10,v=1e-14;function y(e){return 0==(e&e-1)}function w(e){--e;for(var A=1;A<32;A<<=1)e|=e>>A;return e+1}function C(e=0,A=1){return Math.floor(Math.random()*(A-e))+e}function B(e,A){return(e%A+A)%A}function E(e){var A=A(e,n);return Math.abs(A)<v&&Math.abs(e)>v?n:A}function T(e,A){return A<e?0:1}function b(e){return e-Math.floor(e)}function I(e){return Math.pow(2,e)}function M(e,A,t){return t+e*(A-t)}function P(e){return e*e*e}function D(e){return e*e}function L(e){return e-360*Math.floor(e/360)}var _=Object.freeze({__proto__:null,TWO_PI:n,PI_TWO:s,X:0,Y:1,Z:2,W:3,MAX_FLOAT:a,LOG2:o,MAX32:h,MAX:l,MIN:d,RADIANS:c,DEGREES:u,DEGREES_DOUBLE:g,RADIANS_HALF:f,ARCSECONDS_TO_RADIANS:484813681109536e-20,RADIANS_TO_HOURS:3.819718634205488,HOURS_TO_RADIANS:.26179938779914946,HOURS_TO_DEGREES:15,DEGREES_TO_HOURS:1/15,SQRT_HALF:p,EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:m,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:x,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:v,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,log:function(e,A){return Math.log(e)/Math.log(A)},clamp:function(e,A,t){return Math.max(A,Math.min(e,t))},DEG2RAD:function(e){return e*c},RAD2DEG:function(e){return e*u},isPowerOfTwo:y,nextHighestPowerOfTwo:w,randomi:C,random:function(e=0,A=1){return Math.random()*(A-e)+e},degToDec:function(e,A,t,i){return i?e+A/60+t/3600:-e-A/60-t/3600},mod:B,zeroTwoPI:E,step:T,frac:b,log2:function(e){return Math.log(e)/o},exp2:I,pow2i:function(e){return 2<<e-1},slice:function(e,A,t){return e*(A-t)},lerp:M,cube:P,square:D,bezier1v:function(e,A,t,i,r){return P(1-e)*A+3*D(1-e)*e*t+3*(1-e)*D(e)*i+P(e)*r},bezier3v:function(e,A,t,i,r){var n=1-e,s=e*e,a=n*n,o=a*n,h=s*e;return A.scaleTo(o).addA(t.scaleTo(3*a*e)).addA(i.scaleTo(3*n*s)).addA(r.scaleTo(h))},rev:L,norm_lon:function(e){return e>180?(e+180)%360-180:e<-180?(e-180)%360+180:e},negativePItoPI:function(e){return E(e+Math.PI)-Math.PI},solve_iteration_fixed:function(e,A,t){for(var i=A,r=0;r<t;r++)i=e(i);return i},solve_iteration:function(e,A,t,i){i=i||50;for(var r=0,n=A,s=0;s<i;s++)if(n=e(r=n),Math.abs(n-r)<t)return n;return n}});const S=.5*Math.PI,R=180/Math.PI,k=2*R,z=Math.PI/360,H=R*S;class F{constructor(e,A,t){this.lon=e||0,this.lat=A||0,this.height=t||0}isZero(){return 0===this.lon&&0===this.lat&&0===this.height}static join(e){for(var A=[],t=0;t<e.length;t++){var i=e[t];A[t]=new F(i[0],i[1],i[2])}return A}static createFromArray(e){return new F(e[0],e[1],e[2])}static forwardMercator(e,A,t){return new F(e*Y,Math.log(Math.tan((90+A)*z))*U,t)}static inverseMercator(e,A,t){return new F(e*V,k*Math.atan(Math.exp(A*N))-H,t)}set(e,A,t){return this.lon=e||0,this.lat=A||0,this.height=t||0,this}copy(e){return this.lon=e.lon,this.lat=e.lat,this.height=e.height,this}clone(){return new F(this.lon,this.lat,this.height)}forwardMercator(){return F.forwardMercator(this.lon,this.lat,this.height)}forwardMercatorEPS01(){var e=this.lat;return e>89.9?e=89.9:e<-89.9&&(e=-89.9),new F(this.lon*Y,Math.log(Math.tan((90+e)*z))*U)}inverseMercator(){return F.inverseMercator(this.lon,this.lat,this.height)}equal(e){return e.height?this.lon===e.lon&&this.lat===e.lat&&this.height===e.height:this.lon===e.lon&&this.lat===e.lat}}const O=20037508.34,Q=2*O,N=Math.PI/O,U=O/Math.PI,G=.5*Math.PI,Y=O/180,V=180/O,K=Math.PI/360,J=Math.PI/180,j=180/Math.PI,W=2*O,X=1/W;function Z(e){return new F(e.lon*O/180,Math.log(Math.tan((90+e.lat)*K))*U,e.height)}function q(e){return e*O/180}function $(e){return Math.log(Math.tan((90+e)*K))*U}function ee(e){return j*(2*Math.atan(Math.exp(e*N))-G)}function Ae(e,A,t){let i=Q/Math.pow(2,t),r=new F(e*i-O,O-A*i-i);return new ne(r,new F(r.lon+i,r.lat+i))}const te=ee(O),ie=-te;var re=Object.freeze({__proto__:null,POLE:O,POLE2:Q,PI_BY_POLE:N,POLE_BY_PI:U,POLE_BY_180:Y,INV_POLE_BY_180:V,POLE_DOUBLE:W,ONE_BY_POLE_DOUBLE:X,forward:Z,forward_lon:q,forward_lat:$,inverse_lon:function(e){return 180*e/O},inverse_lat:ee,getTileX:function(e,A){return Math.floor((e+180)/360*Math.pow(2,A))},getTileY:function(e,A){return Math.floor(.5*(1-Math.log(Math.tan(e*J)+1/Math.cos(e*J))/Math.PI)*Math.pow(2,A))},forwardArray:function(e){for(var A=[],t=0;t<e.length;t++)A.push(e[t].forwardMercator());return A},getTileExtent:Ae,MAX_LAT:te,MIN_LAT:ie});class ne{constructor(e,A){this.southWest=e||new F,this.northEast=A||new F}static get FULL_MERC(){return new ne(F.SW_MERC,F.NE_MERC)}static get NORTH_POLE_DEG(){return new ne(F.NW_MERC_DEG,new F(180,90))}static get SOUTH_POLE_DEG(){return new ne(new F(-180,-90),F.SE_MERC_DEG)}static createFromArray(e){return new ne(new F(e[0],e[1]),new F(e[2],e[3]))}static createByCoordinates(e){let A=l,t=d,i=l,r=d;for(let n=0;n<e.length;n++){const s=e[n];s.lon<A&&(A=s.lon),s.lon>t&&(t=s.lon),s.lat<i&&(i=s.lat),s.lat>r&&(r=s.lat)}return new ne(new F(A,i),new F(t,r))}static createByCoordinatesArr(e){let A=l,t=d,i=l,r=d;for(let n=0;n<e.length;n++){const s=e[n];s[0]<A&&(A=s[0]),s[0]>t&&(t=s[0]),s[1]<i&&(i=s[1]),s[1]>r&&(r=s[1])}return new ne(new F(A,i),new F(t,r))}static fromTile(e,A,t,i,r){i=i||W,r=r||W;const n=Math.pow(2,t),s=i/Math.pow(2,t),a=r/n,o=.5*-i+e*s,h=.5*r-A*a,l=o+s;return new ne(new F(o,h-a),new F(l,h))}setByCoordinates(e){let A=l,t=d,i=l,r=d;for(let n=0;n<e.length;n++){const s=e[n];s.lon<A&&(A=s.lon),s.lon>t&&(t=s.lon),s.lat<i&&(i=s.lat),s.lat>r&&(r=s.lat)}return this.southWest.lon=A,this.southWest.lat=i,this.northEast.lon=t,this.northEast.lat=r,this}isInside(e){const A=this.southWest,t=this.northEast;return e.lon>=A.lon&&e.lon<=t.lon&&e.lat>=A.lat&&e.lat<=t.lat}overlaps(e){const A=this.southWest,t=this.northEast;return A.lon<=e.northEast.lon&&t.lon>=e.southWest.lon&&A.lat<=e.northEast.lat&&t.lat>=e.southWest.lat}getWidth(){return this.northEast.lon-this.southWest.lon}getHeight(){return this.northEast.lat-this.southWest.lat}clone(){return new ne(this.southWest.clone(),this.northEast.clone())}getCenter(){const e=this.southWest,A=this.northEast;return new F(e.lon+.5*(A.lon-e.lon),e.lat+.5*(A.lat-e.lat))}getNorthWest(){return new F(this.southWest.lon,this.northEast.lat)}getNorthEast(){return new F(this.northEast.lon,this.northEast.lat)}getSouthWest(){return new F(this.southWest.lon,this.southWest.lat)}getSouthEast(){return new F(this.northEast.lon,this.southWest.lat)}getNorth(){return this.northEast.lat}getEast(){return this.northEast.lon}getWest(){return this.southWest.lon}getSouth(){return this.southWest.lat}equals(e){return this.southWest.lon===e.southWest.lon&&this.southWest.lat===e.southWest.lat&&this.northEast.lon===e.northEast.lon&&this.northEast.lat===e.northEast.lat}forwardMercator(){return new ne(this.southWest.forwardMercator(),this.northEast.forwardMercator())}inverseMercator(){return new ne(this.southWest.inverseMercator(),this.northEast.inverseMercator())}getCartesianBounds(e){let A=l,t=d,i=l,r=d,n=l,s=d;const a=[new F(this.southWest.lon,this.southWest.lat),new F(this.southWest.lon,this.northEast.lat),new F(this.northEast.lon,this.northEast.lat),new F(this.northEast.lon,this.southWest.lat)];for(let o=0;o<a.length;o++){const h=e.lonLatToCartesian(a[o]),l=h.x,d=h.y,c=h.z;l<A&&(A=l),l>t&&(t=l),d<i&&(i=d),d>r&&(r=d),c<n&&(n=c),c>s&&(s=c)}return[A,i,n,t,r,s]}toString(){return"["+this.southWest.lon+", "+this.southWest.lat+", "+this.northEast.lon+", "+this.northEast.lat+"]"}}class se{constructor(e,A,t,i){this.x=e||0,this.y=A||0,this.z=t||0,this.w=i||0}static get identity(){return new se(0,0,0,1)}static fromVec(e){return new se(e[0],e[1],e[2],e[3])}toVec3(){return new le(this.x,this.y,this.z)}clone(e){return new se(this.x,this.y,this.z,this.w)}equal(e){return this.x===e.x&&this.y===e.y&&this.z===e.z&&this.w===e.w}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}toVec(){return[this.x,this.y,this.z,this.w]}toArray(){return[this.x,this.y,this.z,this.w]}set(e,A,t,i){return this.x=e,this.y=A,this.z=t,this.w=i,this}addA(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}subA(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}scale(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}affinity(){var e=1/this.w;return this.x*=e,this.y*=e,this.z*=e,this.w=1,this}scaleTo(e){return new se(this.x*e,this.y*e,this.z*e,this.w*e)}getStep(e){return new se(this.x<e?0:1,this.y<e?0:1,this.z<e?0:1,this.w<e?0:1)}getFrac(e){return new se(b(e.x),b(e.y),b(e.z),b(e.w))}dot(e){return e.x*this.x+e.y*this.y+e.z*this.z+e.w*this.w}isZero(){return!(this.x||this.y||this.z||this.w)}}class ae{constructor(){this._m=new Array(16)}static identity(){var e=new ae;return e._m[0]=1,e._m[1]=0,e._m[2]=0,e._m[3]=0,e._m[4]=0,e._m[5]=1,e._m[6]=0,e._m[7]=0,e._m[8]=0,e._m[9]=0,e._m[10]=1,e._m[11]=0,e._m[12]=0,e._m[13]=0,e._m[14]=0,e._m[15]=1,e}set(e){return this._m[0]=e[0],this._m[1]=e[1],this._m[2]=e[2],this._m[3]=e[3],this._m[4]=e[4],this._m[5]=e[5],this._m[6]=e[6],this._m[7]=e[7],this._m[8]=e[8],this._m[9]=e[9],this._m[10]=e[10],this._m[11]=e[11],this._m[12]=e[12],this._m[13]=e[13],this._m[14]=e[14],this._m[15]=e[15],this}clone(){var e=new ae;return e.set(this),e}copy(e){this.set(e._m)}toMatrix3(){var e=new oe,A=this._m,t=e._m;return t[0]=A[0],t[1]=A[1],t[2]=A[2],t[3]=A[4],t[4]=A[5],t[5]=A[6],t[6]=A[8],t[7]=A[9],t[8]=A[10],e}mulVec3(e){var A=e.x,t=e.y,i=e.z;return new le(this._m[0]*A+this._m[4]*t+this._m[8]*i+this._m[12],this._m[1]*A+this._m[5]*t+this._m[9]*i+this._m[13],this._m[2]*A+this._m[6]*t+this._m[10]*i+this._m[14])}mulVec4(e){var A=e.x,t=e.y,i=e.z,r=e.w;return new se(this._m[0]*A+this._m[4]*t+this._m[8]*i+this._m[12]*r,this._m[1]*A+this._m[5]*t+this._m[9]*i+this._m[13]*r,this._m[2]*A+this._m[6]*t+this._m[10]*i+this._m[14]*r,this._m[3]*A+this._m[7]*t+this._m[11]*i+this._m[15]*r)}toInverseMatrix3(){var e=this._m,A=e[0],t=e[1],i=e[2],r=e[4],n=e[5],s=e[6],a=e[8],o=e[9],h=e[10],l=h*n-s*o,d=-h*r+s*a,c=o*r-n*a,u=A*l+t*d+i*c;if(!u)return null;u=1/u;var g=new oe;return g._m[0]=l*u,g._m[1]=(-h*t+i*o)*u,g._m[2]=(s*t-i*n)*u,g._m[3]=d*u,g._m[4]=(h*A-i*a)*u,g._m[5]=(-s*A+i*r)*u,g._m[6]=c*u,g._m[7]=(-o*A+t*a)*u,g._m[8]=(n*A-t*r)*u,g}inverseTo(e){var A=this._m[0],t=this._m[1],i=this._m[2],r=this._m[3],n=this._m[4],s=this._m[5],a=this._m[6],o=this._m[7],h=this._m[8],l=this._m[9],d=this._m[10],c=this._m[11],u=this._m[12],g=this._m[13],f=this._m[14],p=this._m[15],m=A*s-t*n,x=A*a-i*n,v=A*o-r*n,y=t*a-i*s,w=t*o-r*s,C=i*o-r*a,B=h*g-l*u,E=h*f-d*u,T=h*p-c*u,b=l*f-d*g,I=l*p-c*g,M=d*p-c*f,P=1/(m*M-x*I+v*b+y*T-w*E+C*B);return(e=e||new ae)._m[0]=(s*M-a*I+o*b)*P,e._m[1]=(-t*M+i*I-r*b)*P,e._m[2]=(g*C-f*w+p*y)*P,e._m[3]=(-l*C+d*w-c*y)*P,e._m[4]=(-n*M+a*T-o*E)*P,e._m[5]=(A*M-i*T+r*E)*P,e._m[6]=(-u*C+f*v-p*x)*P,e._m[7]=(h*C-d*v+c*x)*P,e._m[8]=(n*I-s*T+o*B)*P,e._m[9]=(-A*I+t*T-r*B)*P,e._m[10]=(u*w-g*v+p*m)*P,e._m[11]=(-h*w+l*v-c*m)*P,e._m[12]=(-n*b+s*E-a*B)*P,e._m[13]=(A*b-t*E+i*B)*P,e._m[14]=(-u*y+g*x-f*m)*P,e._m[15]=(h*y-l*x+d*m)*P,e}transposeTo(){var e=new ae;return e._m[0]=this._m[0],e._m[1]=this._m[4],e._m[2]=this._m[8],e._m[3]=this._m[12],e._m[4]=this._m[1],e._m[5]=this._m[5],e._m[6]=this._m[9],e._m[7]=this._m[13],e._m[8]=this._m[2],e._m[9]=this._m[6],e._m[10]=this._m[10],e._m[11]=this._m[14],e._m[12]=this._m[3],e._m[13]=this._m[7],e._m[14]=this._m[11],e._m[15]=this._m[15],e}setIdentity(){return this._m[0]=1,this._m[1]=0,this._m[2]=0,this._m[3]=0,this._m[4]=0,this._m[5]=1,this._m[6]=0,this._m[7]=0,this._m[8]=0,this._m[9]=0,this._m[10]=1,this._m[11]=0,this._m[12]=0,this._m[13]=0,this._m[14]=0,this._m[15]=1,this}mul(e){let A=this._m[0],t=this._m[1],i=this._m[2],r=this._m[3],n=this._m[4],s=this._m[5],a=this._m[6],o=this._m[7],h=this._m[8],l=this._m[9],d=this._m[10],c=this._m[11],u=this._m[12],g=this._m[13],f=this._m[14],p=this._m[15],m=e._m[0],x=e._m[1],v=e._m[2],y=e._m[3],w=e._m[4],C=e._m[5],B=e._m[6],E=e._m[7],T=e._m[8],b=e._m[9],I=e._m[10],M=e._m[11],P=e._m[12],D=e._m[13],L=e._m[14],_=e._m[15];var S=new ae;return S._m[0]=m*A+x*n+v*h+y*u,S._m[1]=m*t+x*s+v*l+y*g,S._m[2]=m*i+x*a+v*d+y*f,S._m[3]=m*r+x*o+v*c+y*p,S._m[4]=w*A+C*n+B*h+E*u,S._m[5]=w*t+C*s+B*l+E*g,S._m[6]=w*i+C*a+B*d+E*f,S._m[7]=w*r+C*o+B*c+E*p,S._m[8]=T*A+b*n+I*h+M*u,S._m[9]=T*t+b*s+I*l+M*g,S._m[10]=T*i+b*a+I*d+M*f,S._m[11]=T*r+b*o+I*c+M*p,S._m[12]=P*A+D*n+L*h+_*u,S._m[13]=P*t+D*s+L*l+_*g,S._m[14]=P*i+D*a+L*d+_*f,S._m[15]=P*r+D*o+L*c+_*p,S}translate(e){var A=e.x,t=e.y,i=e.z,r=this._m;return r[12]=r[0]*A+r[4]*t+r[8]*i+r[12],r[13]=r[1]*A+r[5]*t+r[9]*i+r[13],r[14]=r[2]*A+r[6]*t+r[10]*i+r[14],r[15]=r[3]*A+r[7]*t+r[11]*i+r[15],this}translateToPosition(e){var A=this._m;return A[12]=e.x,A[13]=e.y,A[14]=e.z,this}rotate(e,A){var t=Math.cos(A),i=Math.sin(A),r=new ae,n=r._m;return n[0]=t+(1-t)*e.x*e.x,n[1]=(1-t)*e.y*e.x-i*e.z,n[2]=(1-t)*e.z*e.x+i*e.y,n[3]=0,n[4]=(1-t)*e.x*e.y+i*e.z,n[5]=t+(1-t)*e.y*e.y,n[6]=(1-t)*e.z*e.y-i*e.x,n[7]=0,n[8]=(1-t)*e.x*e.z-i*e.y,n[9]=(1-t)*e.y*e.z+i*e.x,n[10]=t+(1-t)*e.z*e.z,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this.mul(r)}setRotation(e,A){var t=Math.cos(A),i=Math.sin(A),r=this._m;return r[0]=t+(1-t)*e.x*e.x,r[1]=(1-t)*e.y*e.x-i*e.z,r[2]=(1-t)*e.z*e.x+i*e.y,r[3]=0,r[4]=(1-t)*e.x*e.y+i*e.z,r[5]=t+(1-t)*e.y*e.y,r[6]=(1-t)*e.z*e.y-i*e.x,r[7]=0,r[8]=(1-t)*e.x*e.z-i*e.y,r[9]=(1-t)*e.y*e.z+i*e.x,r[10]=t+(1-t)*e.z*e.z,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,this}rotateBetweenVectors(e,A){return he.getRotationBetweenVectors(e,A).getMat4()}scale(e){var A=this._m;return A[0]=A[0]*e.x,A[1]=A[1]*e.x,A[2]=A[2]*e.x,A[3]=A[3]*e.x,A[4]=A[4]*e.y,A[5]=A[5]*e.y,A[6]=A[6]*e.y,A[7]=A[7]*e.y,A[8]=A[8]*e.z,A[9]=A[9]*e.z,A[10]=A[10]*e.z,A[11]=A[11]*e.z,this}setPerspective(e,A,t,i,r,n){var s=A-e,a=i-t,o=n-r;return this._m[0]=2*r/s,this._m[1]=0,this._m[2]=0,this._m[3]=0,this._m[4]=0,this._m[5]=2*r/a,this._m[6]=0,this._m[7]=0,this._m[8]=(A+e)/s,this._m[9]=(i+t)/a,this._m[10]=-(n+r)/o,this._m[11]=-1,this._m[12]=0,this._m[13]=0,this._m[14]=-n*r*2/o,this._m[15]=0,this}setOrtho(e,A,t,i,r,n){var s=1/(e-A),a=1/(t-i),o=1/(r-n),h=this._m;return h[0]=-2*s,h[1]=0,h[2]=0,h[3]=0,h[4]=0,h[5]=-2*a,h[6]=0,h[7]=0,h[8]=0,h[9]=0,h[10]=2*o,h[11]=0,h[12]=(e+A)*s,h[13]=(i+t)*a,h[14]=(n+r)*o,h[15]=1,this}eulerToMatrix(e,A,t){var i=Math.cos(e),r=Math.sin(e),n=Math.cos(A),s=Math.sin(A),a=Math.cos(t),o=Math.sin(t),h=i*s,l=r*s,d=this._m;return d[0]=n*a,d[1]=-n*o,d[2]=-s,d[4]=-l*a+i*o,d[5]=l*o+i*a,d[6]=-r*n,d[8]=h*a+r*o,d[9]=-h*o+r*a,d[10]=i*n,d[3]=d[7]=d[11]=d[12]=d[13]=d[14]=0,d[15]=1,this}}class oe{constructor(){this._m=new Array(9)}set(e){return this._m[0]=e[0],this._m[1]=e[1],this._m[2]=e[2],this._m[3]=e[3],this._m[4]=e[4],this._m[5]=e[5],this._m[6]=e[6],this._m[7]=e[7],this._m[8]=e[8],this}clone(){var e=new oe;return e.set(this),e}copy(e){return this.set(e._m)}transposeTo(){var e=new oe,A=this._m;return e._m[0]=A[0],e._m[1]=A[3],e._m[2]=A[6],e._m[3]=A[1],e._m[4]=A[4],e._m[5]=A[7],e._m[6]=A[2],e._m[7]=A[5],e._m[8]=A[8],e}setIdentity(){return this._m[0]=1,this._m[1]=0,this._m[2]=0,this._m[3]=0,this._m[4]=1,this._m[5]=0,this._m[6]=0,this._m[7]=0,this._m[8]=1,this}mulVec(e){var A=e.x,t=e.y,i=e.z,r=this._m;return new le(r[0]*A+r[3]*t+r[6]*i,r[1]*A+r[4]*t+r[7]*i,r[2]*A+r[5]*t+r[8]*i)}toMatrix4(){var e=new ae,A=e._m,t=this._m;return A[0]=t[0],A[1]=t[1],A[2]=t[2],A[3]=0,A[4]=t[3],A[5]=t[4],A[6]=t[5],A[7]=0,A[8]=t[6],A[9]=t[7],A[10]=t[8],A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,e}}class he{constructor(e,A,t,i){this.x=e||0,this.y=A||0,this.z=t||0,this.w=i||0}static get IDENTITY(){return new he(0,0,0,1)}static xRotation(e){return e*=.5,new he(Math.sin(e),0,0,Math.cos(e))}static yRotation(e){return e*=.5,new he(0,Math.sin(e),0,Math.cos(e))}static zRotation(e){return e*=.5,new he(0,0,Math.sin(e),Math.cos(e))}static axisAngleToQuat(e,A){A=A||0;var t=e.normal(),i=.5*A,r=Math.sin(i);return new he(t.x*r,t.y*r,t.z*r,Math.cos(i))}static getLookRotation(e,A){var t=e.normal().negate(),i=A.cross(t).normalize(),r=t.cross(i),n=1+i.x+r.y+t.z;if(n>1e-6){let e=1/(2*Math.sqrt(n));return new he((t.y-r.z)*e,(i.z-t.x)*e,(r.x-i.y)*e,.25/e)}if(i.x>r.y&&i.x>t.z){let e=1/(2*Math.sqrt(1+i.x-r.y-t.z));return new he(.25/e,(r.x+i.y)*e,(i.z+t.x)*e,(t.y-r.z)*e)}if(r.y>t.z){let e=1/(2*Math.sqrt(1+r.y-i.x-t.z));return new he((r.x+i.y)*e,.25/e,(t.y+r.z)*e,(i.z-t.x)*e)}let s=1/(2*Math.sqrt(1+t.z-i.x-r.y));return new he((i.z+t.x)*s,(t.y+r.z)*s,.25/s,(r.x-i.y)*s)}static getLookAtSourceDest(e,A){var t=A.subA(e).normalize(),i=le.FORWARD.dot(t);if(Math.abs(i- -1)<1e-6)return he.axisAngleToQuat(le.UP,Math.PI);if(Math.abs(i-1)<1e-6)return new he(0,0,0,1);var r=Math.acos(i),n=le.FORWARD.cross(t).normalize();return he.axisAngleToQuat(n,r)}static getRotationBetweenVectors(e,A){var t=e.cross(A);return new he(t.x,t.y,t.z,1+e.dot(A)).normalize()}static getRotationBetweenVectorsRes(e,A,t){var i=e.cross(A);return t.set(i.x,i.y,i.z,1+e.dot(A)),t.normalize()}static getRotationBetweenVectorsUp(e,A,t){var i=e.dot(A);if(Math.abs(i+1)<1e-6)return he.axisAngleToQuat(t,Math.PI);if(Math.abs(i-1)<1e-6)return new he(0,0,0,1);var r=Math.acos(i),n=e.cross(A).normalize();return he.axisAngleToQuat(n,r)}isZero(){return 0===this.x&&0===this.y&&0===this.z&&0===this.w}clear(){return this.x=this.y=this.z=this.w=0,this}set(e,A,t,i){return this.x=e,this.y=A,this.z=t,this.w=i,this}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this}setIdentity(){return this.x=0,this.y=0,this.z=0,this.w=1,this}clone(){return new he(this.x,this.y,this.z,this.w)}add(e){return new he(this.x+e.x,this.y+e.y,this.z+e.z,this.w+e.w)}sub(e){return new he(this.x-e.x,this.y-e.y,this.z-e.z,this.w-e.w)}scaleTo(e){return new he(this.x*e,this.y*e,this.z*e,this.w*e)}scale(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}toVec(){return[this.x,this.y,this.z,this.w]}setFromSphericalCoords(e,A,t){var i=Math.sin(t/2),r=Math.cos(t/2),n=Math.sin(e),s=Math.cos(e),a=Math.sin(A),o=Math.cos(A);return this.x=i*s*a,this.y=i*n,this.z=i*n*o,this.w=r,this}setLookRotation(e,A){var t=e.normal().negate(),i=A.cross(t).normalize(),r=t.cross(i),n=1+i.x+r.y+t.z;if(n>1e-6){let e=1/(2*Math.sqrt(n));this.x=(t.y-r.z)*e,this.y=(i.z-t.x)*e,this.z=(r.x-i.y)*e,this.w=.25/e}else if(i.x>r.y&&i.x>t.z){let e=1/(2*Math.sqrt(1+i.x-r.y-t.z));this.x=.25/e,this.y=(r.x+i.y)*e,this.z=(i.z+t.x)*e,this.w=(t.y-r.z)*e}else if(r.y>t.z){let e=1/(2*Math.sqrt(1+r.y-i.x-t.z));this.x=(r.x+i.y)*e,this.y=.25/e,this.z=(t.y+r.z)*e,this.w=(i.z-t.x)*e}else{let e=1/(2*Math.sqrt(1+t.z-i.x-r.y));this.x=(i.z+t.x)*e,this.y=(t.y+r.z)*e,this.z=.25/e,this.w=(r.x-i.y)*e}return this}toSphericalCoords(){var e=this.w,A=Math.sqrt(1-e*e);Math.abs(A)<5e-4&&(A=1);var t,i=this.x/A,r=this.y/A,n=this.z/A,s=-Math.asin(r);return(t=i*i+n*n<5e-4?0:Math.atan2(i,n))<0&&(t+=360),{lat:s,lon:t,alpha:Math.acos(e)}}setFromAxisAngle(e,A){var t=e.normal(),i=.5*A,r=Math.sin(i);return this.set(t.x*r,t.y*r,t.z*r,Math.cos(i)),this}getAxisAngle(){let e=this.x,A=this.y,t=this.z,i=this.w;var r,n,s=Math.sqrt(e*e+A*A+t*t);if(s>1e-7){var a=1/s;r=new le(e*a,A*a,t*a),n=i<0?2*Math.atan2(-s,-i):2*Math.atan2(s,i)}else r=new le(0,0,0),n=0;return{axis:r,angle:n}}setFromEulerAngles(e,A,t){var i=e*f,r=A*f,n=t*f,s=Math.cos(i),a=Math.cos(r),o=Math.cos(n),h=Math.sin(i),l=Math.sin(r),d=Math.sin(n),c=a*o,u=l*d;return this.w=s*c+h*u,this.x=h*c-s*u,this.y=s*l*o+h*a*d,this.z=s*a*d-h*l*o,this.normalize()}getEulerAngles(){let e=this.x,A=this.y,t=this.z,i=this.w,r=A*A,n=i*A-t*e;return n<-1?n=-1:n>1&&(n=1),{roll:Math.atan2(2*(i*e+A*t),1-2*(e*e+r)),pitch:Math.asin(2*n),yaw:Math.atan2(2*(i*t+e*A),1-2*(r+t*t))}}setFromMatrix4(e){var A,t,i,r,n,s=[],a=[1,2,0];return(A=(e=e._m)[0]+e[5]+e[10])>0?(t=Math.sqrt(A+1),this.w=t/2,t=.5/t,this.x=(e[6]-e[9])*t,this.y=(e[8]-e[2])*t,this.z=(e[1]-e[4])*t):(i=0,e[5]>e[0]&&(i=1),e[10]>e[5*i]&&(i=2),n=a[r=a[i]],t=Math.sqrt(e[5*i]-(e[5*r]+e[5*n])+1),s[i]=.5*t,0!==t&&(t=.5/t),s[3]=(e[4*r+n]-e[4*n+r])*t,s[r]=(e[4*i+r]+e[4*r+i])*t,s[n]=(e[4*i+n]+e[4*n+i])*t,this.x=s[0],this.y=s[1],this.z=s[2],this.w=s[3]),this}getMat4(e){var A=this.x+this.x,t=this.y+this.y,i=this.z+this.z,r=this.w*A,n=this.w*t,s=this.w*i,a=this.x*A,o=this.x*t,h=this.x*i,l=this.y*t,d=this.y*i,c=this.z*i;return(e||new ae).set([1-(l+c),o-s,h+n,0,o+s,1-(a+c),d-r,0,h-n,d+r,1-(a+l),0,0,0,0,1])}getMat3(){var e=new oe,A=e._m,t=this.x,i=this.y,r=this.z,n=this.w,s=t+t,a=i+i,o=r+r,h=t*s,l=t*a;t*=o;var d=i*a;return i*=o,r*=o,s*=n,a*=n,n*=o,A[0]=1-(d+r),A[1]=l-n,A[2]=t+a,A[3]=l+n,A[4]=1-(h+r),A[5]=i-s,A[6]=t-a,A[7]=i+s,A[8]=1-(h+d),e}mulVec3(e){var A=e.x,t=e.y,i=e.z,r=this.x,n=this.y,s=this.z,a=this.w,o=a*A+n*i-s*t,h=a*t+s*A-r*i,l=a*i+r*t-n*A;return new le(o*a+(A=-r*A-n*t-s*i)*-r+h*-s-l*-n,h*a+A*-n+l*-r-o*-s,l*a+A*-s+o*-n-h*-r)}mul(e){var A=this.x,t=this.y,i=this.z,r=this.w,n=e.x,s=e.y,a=e.z,o=e.w;return new he(A*o+r*n+t*a-i*s,t*o+r*s+i*n-A*a,i*o+r*a+A*s-t*n,r*o-A*n-t*s-i*a)}mulA(e){var A=this.x,t=this.y,i=this.z,r=this.w,n=e.x,s=e.y,a=e.z,o=e.w;return this.x=A*o+r*n+t*a-i*s,this.y=t*o+r*s+i*n-A*a,this.z=i*o+r*a+A*s-t*n,this.w=r*o-A*n-t*s-i*a,this}conjugate(){return new he(-this.x,-this.y,-this.z,this.w)}inverse(){var e=1/this.magnitude2();return new he(-this.x*e,-this.y*e,-this.z*e,this.w*e)}magnitude(){var e=this.x,A=this.y,t=this.z,i=this.w;return Math.sqrt(e*e+A*A+t*t+i*i)}magnitude2(){var e=this.x,A=this.y,t=this.z,i=this.w;return e*e+A*A+t*t+i*i}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}normalize(){var e=this.x,A=this.y,t=this.z,i=this.w,r=Math.sqrt(e*e+A*A+t*t+i*i);return 0===r?(this.x=0,this.y=0,this.z=0,this.w=0,this):(r=1/r,this.x=e*r,this.y=A*r,this.z=t*r,this.w=i*r,this)}isEqual(e){var A=this.dot(e);return Math.abs(A-1)<.001}slerp(e,A){var t,i,r,n,s,a=this.x,o=this.y,h=this.z,l=this.w,d=e.x,c=e.y,u=e.z,g=e.w;return(i=a*d+o*c+h*u+l*g)<0&&(i=-i,d=-d,c=-c,u=-u,g=-g),1-i>1e-6?(t=Math.acos(i),r=Math.sin(t),n=Math.sin((1-A)*t)/r,s=Math.sin(A*t)/r):(n=1-A,s=A),new he(n*a+s*d,n*o+s*c,n*h+s*u,n*l+s*g)}getRoll(e){var A=this.x,t=this.y,i=this.z,r=this.w;if(e){var n=2*t,s=2*i,a=s*r,o=n*A,h=n*t,l=s*i;return Math.atan2(o+a,1-(h+l))}return Math.atan2(2*(A*t+r*i),r*r+A*A-t*t-i*i)}getPitch(e){var A=this.x,t=this.y,i=this.z,r=this.w;if(e){var n=2*A,s=2*i,a=n*r,o=n*A,h=s*t,l=s*i;return Math.atan2(h+a,1-(o+l))}return Math.atan2(2*(t*i+r*A),r*r-A*A-t*t+i*i)}getYaw(e){var A=this.x,t=this.y,i=this.z,r=this.w;if(e){var n=2*t,s=n*r,a=2*A*A,o=2*i*A,h=n*t;return Math.atan2(o+s,1-(a+h))}return Math.asin(-2*(A*i-r*t))}}class le{constructor(e,A,t){this.x=e||0,this.y=A||0,this.z=t||0}static get UP(){return new le(0,1,0)}static get DOWN(){return new le(0,-1,0)}static get RIGHT(){return new le(1,0,0)}static get LEFT(){return new le(-1,0,0)}static get FORWARD(){return new le(0,0,-1)}static get BACKWARD(){return new le(0,0,1)}static get ZERO(){return new le}static get UNIT_X(){return new le(1,0,0)}static get UNIT_Y(){return new le(0,1,0)}static get UNIT_Z(){return new le(0,0,1)}static doubleToTwoFloats(e,A,t){let i=e.x,r=e.y,n=e.z;if(i>=0){let e=65536*Math.floor(i/65536);A.x=Math.fround(e),t.x=Math.fround(i-e)}else{let e=65536*Math.floor(-i/65536);A.x=Math.fround(-e),t.x=Math.fround(i+e)}if(r>=0){let e=65536*Math.floor(r/65536);A.y=Math.fround(e),t.y=Math.fround(r-e)}else{let e=65536*Math.floor(-r/65536);A.y=Math.fround(-e),t.y=Math.fround(r+e)}if(n>=0){let e=65536*Math.floor(n/65536);A.z=Math.fround(e),t.z=Math.fround(n-e)}else{let e=65536*Math.floor(-n/65536);A.z=Math.fround(-e),t.z=Math.fround(n+e)}}static doubleToTwoFloat32Array(e,A,t){let i=e.x,r=e.y,n=e.z;if(i>=0){let e=65536*Math.floor(i/65536);A[0]=Math.fround(e),t[0]=Math.fround(i-e)}else{let e=65536*Math.floor(-i/65536);A[0]=Math.fround(-e),t[0]=Math.fround(i+e)}if(r>=0){let e=65536*Math.floor(r/65536);A[1]=Math.fround(e),t[1]=Math.fround(r-e)}else{let e=65536*Math.floor(-r/65536);A[1]=Math.fround(-e),t[1]=Math.fround(r+e)}if(n>=0){let e=65536*Math.floor(n/65536);A[2]=Math.fround(e),t[2]=Math.fround(n-e)}else{let e=65536*Math.floor(-n/65536);A[2]=Math.fround(-e),t[2]=Math.fround(n+e)}}static fromVec(e){return new le(e[0],e[1],e[2])}static angle(e,A){return Math.acos(e.dot(A)/Math.sqrt(e.length2()*A.length2()))}static lerp(e,A,t){return le(e.x+(A.x-e.x)*t,e.y+(A.y-e.y)*t,e.z+(A.z-e.z)*t)}static add(e,A){var t=new le(e.x,e.y,e.z);return t.addA(A),t}static sub(e,A){var t=new le(e.x,e.y,e.z);return t.subA(A),t}static scale(e,A){var t=new le(e.x,e.y,e.z);return t.scale(A),t}static mul(e,A){var t=new le(e.x,e.y,e.z);return t.mulA(A),t}static noncollinear(e,A){return e.y*A.z-e.z*A.y||e.z*A.x-e.x*A.z||e.x*A.y-e.y*A.z}static proj_b_to_plane(e,A,t){var i=e.sub(A.scaleTo(A.dot(e)/A.dot(A)));return t&&i.isZero()?new le(t.x,t.y,t.z):i}static proj_b_to_a(e,A){return A.scaleTo(A.dot(e)/A.dot(A))}static orthoNormalize(e,A){return(e=e.normal()).scale(A.dot(e)),A.subA(e).normalize()}static div(e,A){var t=new le(e.x,e.y,e.z);return t.divA(A),t}toVec4(){return new se(this.x,this.y,this.z,1)}clone(){return new le(this.x,this.y,this.z)}toString(){return"("+this.x+","+this.y+","+this.z+")"}isZero(){return!(this.x||this.y||this.z)}projToVec(e){return e.scaleTo(e.dot(this)/e.dot(e))}equal(e){return this.x===e.x&&this.y===e.y&&this.z===e.z}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}length2(){return this.x*this.x+this.y*this.y+this.z*this.z}getQuat(){return new he(this.x,this.y,this.z)}addA(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}add(e){return new le(this.x+e.x,this.y+e.y,this.z+e.z)}subA(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}sub(e){return new le(this.x-e.x,this.y-e.y,this.z-e.z)}scale(e){return this.x*=e,this.y*=e,this.z*=e,this}scaleTo(e){return new le(this.x*e,this.y*e,this.z*e)}mulA(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}mul(e){return new le(this.x*e.x,this.y*e.y,this.z*e.z)}divA(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}div(e){return new le(this.x/e.x,this.y/e.y,this.z/e.z)}dot(e){return e.x*this.x+e.y*this.y+e.z*this.z}dotArr(e){return e[0]*this.x+e[1]*this.y+e[2]*this.z}cross(e){return new le(this.y*e.z-this.z*e.y,this.z*e.x-this.x*e.z,this.x*e.y-this.y*e.x)}clear(){return this.x=this.y=this.z=0,this}getNormal(){var e=new le;e.copy(this);var A=1/e.length();return e.x*=A,e.y*=A,e.z*=A,e}normal(){var e=new le;e.copy(this);var A=1/e.length();return e.x*=A,e.y*=A,e.z*=A,e}normalNegate(){var e=new le;e.copy(this);var A=-1/e.length();return e.x*=A,e.y*=A,e.z*=A,e}normalNegateScale(e){var A=new le;A.copy(this);var t=-e/A.length();return A.x*=t,A.y*=t,A.z*=t,A}normalScale(e){var A=new le;A.copy(this);var t=e/A.length();return A.x*=t,A.y*=t,A.z*=t,A}normalize(){var e=1/this.length();return this.x*=e,this.y*=e,this.z*=e,this}toVec(){return[this.x,this.y,this.z]}toArray(){return[this.x,this.y,this.z]}distance(e){let A=this.x-e.x,t=this.y-e.y,i=this.z-e.z;return Math.sqrt(A*A+t*t+i*i)}distance2(e){let A=this.x-e.x,t=this.y-e.y,i=this.z-e.z;return A*A+t*t+i*i}set(e,A,t){return this.x=e,this.y=A,this.z=t,this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}negateTo(){return new le(-this.x,-this.y,-this.z)}projToRay(e,A){var t=le.proj_b_to_a(le.sub(this,e),A);return t.addA(e),t}angle(e){return le.angle(this,e)}lerp(e,A){return new le(this.x+(e.x-this.x)*A,this.y+(e.y-this.y)*A,this.z+(e.z-this.z)*A)}smerp(e,A){var t=1-A;return new le(this.x*A+e.x*t,this.y*A+e.y*t,this.z*A+e.z*t)}static get LERP_DELTA(){return 1e-6}slerp(e,A){var t=new le;if(A<=0)t.copy(this);else{if(!(A>=1)){var i,r,n,s,a=this.dot(e);return 1-a>le.LERP_DELTA?(i=Math.acos(a),r=Math.sin(i),n=Math.sin((1-A)*i)/r,s=Math.sin(A*i)/r):(n=1-A,s=A),le.add(this.scaleTo(n),e.scale(s))}t.copy(e)}}getRotationTo(e,A){let t=this.clone(),i=e.clone();t.normalize(),i.normalize();let r=t.dot(i);if(r>=1)return he.IDENTITY.clone();if(r<-.999999){if(A.isEqual(le.ZERO)){let e=le.UNIT_X.cross(t);return e.isZero()&&(e=le.UNIT_Y.cross(t)),e.normalize(),he.axisAngleToQuat(Math.PI,e)}return he.axisAngleToQuat(Math.PI,A)}{let e=Math.sqrt(2*(1+r)),A=1/e,n=t.cross(i),s=new he(n.x*A,n.y*A,n.z*A,.5*e);return s.normalise(),s}}}class de{constructor(e,A){this.x=e||0,this.y=A||0}static get UP(){return new de(0,1)}static get DOWN(){return new de(0,-1)}static get RIGHT(){return new de(1,0)}static get LEFT(){return new de(-1,0)}static get ZERO(){return new de}static add(e,A){var t=new de(e.x,e.y);return t.addA(A),t}static sub(e,A){var t=new de(e.x,e.y);return t.subA(A),t}static scale(e,A){var t=new de(e.x,e.y);return t.scale(A),t}static mul(e,A){var t=new de(e.x,e.y);return t.mulA(A),t}static div(e,A){var t=new de(e.x,e.y);return t.divA(A),t}static proj_b_to_a(e,A){return A.scaleTo(A.dot(e)/A.dot(A))}static angle(e,A){return Math.acos(e.dot(A)/Math.sqrt(e.length2()*A.length2()))}static orthoNormalize(e,A){return(e=e.norm()).scale(A.dot(e)),A.sub(e).normalize()}toVector3(){return new le(this.x,this.y,0)}clone(){return new de(this.x,this.y)}equal(e){return this.x===e.x&&this.y===e.y}copy(e){return this.x=e.x,this.y=e.y,this}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}length2(){return this.x*this.x+this.y*this.y}addA(e){return this.x+=e.x,this.y+=e.y,this}add(e){return new de(this.x+e.x,this.y+e.y)}subA(e){return this.x-=e.x,this.y-=e.y,this}sub(e){return new de(this.x-e.x,this.y-e.y)}scale(e){return this.x*=e,this.y*=e,this}scaleTo(e){return new de(this.x*e,this.y*e)}mulA(e){return this.x*=e.x,this.y*=e.y,this}mul(e){return new de(this.x*e.x,this.y*e.y)}divA(e){return this.x/=e.x,this.y/=e.y,this}dot(e){return e.x*this.x+e.y*this.y}dotArr(e){return e[0]*this.x+e[1]*this.y}cross(e){return this.x*e.y-this.y*e.x}clear(){return this.x=this.y=0,this}normal(){var e=new de;e.copy(this);var A=1/e.length();return e.x*=A,e.y*=A,e}normalize(){var e=1/this.length();return this.x*=e,this.y*=e,this}toVec(){return[this.x,this.y]}distance(e){return de.sub(this,e).length()}set(e,A){return this.x=e,this.y=A,this}negate(){return this.x=-this.x,this.y=-this.y,this}negateTo(){return new de(-this.x,-this.y)}projToRay(e,A){var t=de.proj_b_to_a(de.sub(this,e),A);return t.add(e),t}angle(e){return de.angle(this,e)}lerp(e,A,t){var i=de.clone(this);return t<=0?i.copy(e):t>=1?i.copy(A):i=de.add(e,de.sub(A,e).scale(t)),i}static get LERP_DELTA(){return 1e-6}slerp(e,A){var t=new de;if(A<=0)t.copy(this);else{if(!(A>=1)){var i,r,n,s,a=this.dot(e);return 1-a>de.LERP_DELTA?(i=Math.acos(a),r=Math.sin(i),n=Math.sin((1-A)*i)/r,s=Math.sin(A*i)/r):(n=1-A,s=A),de.add(this.scale(n),e.scale(s))}t.copy(e)}}}function ce(e){return null==e}let ue=0;function ge(e){var A=e._openglobus_id;return A||(A=e._openglobus_id=++ue),A}function fe(e){return"string"==typeof e||e instanceof String}function pe(e,A){var t=r[e];if(t&&(e=t),"#"===e[0]){var i=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,A,t,i){return A+A+t+t+i+i})),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(i);return new se(parseInt(n[1],16)/255,parseInt(n[2],16)/255,parseInt(n[3],16)/255,ce(A)?1:A)}ce(A)&&(A=1);var s=e.split(",");return new se(parseInt(s[0].split("(")[1])/255,parseInt(s[1])/255,parseInt(s[2])/255,ce(s[3])?A:parseFloat(s[3]))}function me(e,A){let t=pe(e,A);return new Float32Array([t.x,t.y,t.z,t.w])}function xe(e){var A=r[e];if(A&&(e=A),"#"===e[0]){var t=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,A,t,i){return A+A+t+t+i+i})),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return new se(parseInt(i[1],16)/255,parseInt(i[2],16)/255,parseInt(i[3],16)/255)}var n=e.split(",");return new le(parseInt(n[0].split("(")[1])/255,parseInt(n[1])/255,parseInt(n[2])/255)}function ve(e,A){return e.replace(/{[^{}]+}/g,(function(e){return A[e.replace(/[{}]+/g,"")]||""}))}function ye(e,A){return ve(e,A)}function we(e){var A=document.createElement("div");A.innerHTML=e;for(var t=[],i=0;i<A.childNodes.length;i++)t.push(A.childNodes[i]),A.removeChild(A.childNodes[i]);return t}function Ce(e,A,t,i){var r=document.getElementById(e);r||((r=document.createElement("div")).id=e,r.classList.add("defaultText"),document.body.appendChild(r)),r.innerHTML=A,r.style.left=t,r.style.top=i}function Be(e,A){return e?e.trim().toLowerCase():A}function Ee(e,A){if(e){if(e instanceof le)return e.clone();if(e instanceof Array)return le.fromVec(e)}else if(A)return A;return new le}function Te(e,A){if(e){if(fe(e))return pe(e);if(e instanceof Array)return se.fromVec(e);if(e instanceof se)return e.clone()}else if(A)return A;return new se(1,1,1,1)}function be(e,A){if(e){if(fe(e))return xe(e);if(e instanceof Array)return le.fromVec(e);if(e instanceof le)return e.clone()}else if(A)return A;return new le(1,1,1)}function Ie(e,A){if(e){if(e instanceof Array)return new ne(Me(e[0]),Me(e[1]));if(e instanceof ne)return e.clone()}else if(A)return A;return new ne}function Me(e,A){if(e){if(e instanceof Array)return new F(e[0],e[1],e[2]);if(e instanceof F)return e.clone()}else if(A)return A;return new F}function Pe(e,A){let t=0,i=e.length-1;for(;t<=i;){let r=Math.floor(.5*(t+i));if(e[r]===A)return r;e[r]<A?t=r+1:i=r-1}return-1}function De(e,A,t){for(var i=0,r=e.length-1;i<=r;){var n=r+i>>1,s=t(A,e[n],n);if(s>0)i=n+1;else{if(!(s<0))return n;r=n-1}}return-i-1}function Le(e,A,t){var i=De(e,A,t);return i<0&&(i=~i),e.splice(i,0,A),i}function _e(e,A,t,i,r){var n=new F(A.lon-e.lon,A.lat-e.lat),s=new F(i.lon-t.lon,i.lat-t.lat),a=-n.lat,o=+n.lon,h=-(a*e.lon+o*e.lat),l=-s.lat,d=+s.lon,c=-(l*t.lon+d*t.lat),u=l*e.lon+d*e.lat+c,g=l*A.lon+d*A.lat+c,f=a*t.lon+o*t.lat+h,p=a*i.lon+o*i.lat+h;if(r&&(u*g>0||f*p>0))return null;var m=u/(u-g);return new F(e.lon+m*n.lon,e.lat+m*n.lat)}const Se={string:function(e){return ce(e)?e:e.toString()},date:function(e){return ce(e)?e:new Date(1e3*e)},datetime:function(e){return ce(e)?e:new Date(1e3*e)},time:function(e){return ce(e)?e:parseInt(e)},integer:function(e){return ce(e)?e:parseInt(e)},float:function(e){return ce(e)?e:parseFloat(e)},boolean:function(e){if(null===e)return e;if("boolean"==typeof e)return!0===e;if("string"==typeof e){if(""===e)return!1;if("true"===(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase()||"yes"===e.toLowerCase())return!0;e=(e=e.replace(/,/g,".")).replace(/^\s*\-\s*/g,"-")}return!isNaN(e)&&0!==parseFloat(e)}};function Re(e,A){A=A||"";for(var t=1024,i=atob(e),r=i.length,n=Math.ceil(r/t),s=new Array(n),a=0;a<n;++a){for(var o=a*t,h=Math.min(o+t,r),l=new Array(h-o),d=o,c=0;d<h;++c,++d)l[c]=i[d].charCodeAt(0);s[a]=new Uint8Array(l)}return new Blob(s,{type:A})}function ke(e){let A=e.split(";"),t=A[0].split(":")[1];return Re(A[1].split(",")[1],t)}function ze(e,A){var t=new e.constructor(e.length+A.length);return t.set(e,0),t.set(A,e.length),t}function He(e=[],A){if(ArrayBuffer.isView(e))return ze(e,A);for(var t=0;t<A.length;t++)e.push(A[t]);return e}function Fe(e,A=Float32Array){if(ArrayBuffer.isView(e))return e;{const t=new A(e.length);return t.set(e,0),t}}function Oe(e){return ArrayBuffer.isView(e)?Array.from(e):e}function Qe(e,A,t,i){return ArrayBuffer.isView(e)?Ne(e,A,t,i):(e.splice(A,t),e)}function Ne(e,A,t,i=[]){if(0===e.length)return e;const r=e.length-t+i.length,n=new e.constructor(r);return n.set(e.subarray(0,A)),n.set(i,A),n.set(e.subarray(A+t),A+i.length),n}function Ue(e,A,t,i,r){const n=r+1,s=t+n,a=i+n;for(var o=new Float64Array(n*n*3),h=0,l=t;l<s;l++)for(var d=i;d<a;d++){var c=3*(l*(A+1)+d);o[h++]=e[c],o[h++]=e[c+1],o[h++]=e[c+2]}return o}function Ge(e,A,t,i,r,n,s,a,o,h,l,d,c){const u=n+a+1,g=s+a+1;r+=1;for(var f=0,p=0,m=n;m<u;m++)for(var x=s;x<g;x++){let n=m*r+x,s=3*n,a=e[s],u=e[s+1],g=e[s+2];i&&0!==i[n]?c[p]=1:(a<d.xmin&&(d.xmin=a),a>d.xmax&&(d.xmax=a),u<d.ymin&&(d.ymin=u),u>d.ymax&&(d.ymax=u),g<d.zmin&&(d.zmin=g),g>d.zmax&&(d.zmax=g)),p++,o[f]=a,l[f]=t[s],h[f++]=A[s],o[f]=u,l[f]=t[s+1],h[f++]=A[s+1],o[f]=g,l[f]=t[s+2],h[f++]=A[s+2]}}function Ye(e){return e.map((e=>Array.isArray(e)?Ye(e):e))}function Ve(e){return void 0===e}var Ke=Object.freeze({__proto__:null,getDefault:function(e,A){return null!=e?e:A},isEmpty:ce,stamp:ge,isString:fe,readTextFile:function(e){var t="";return A.request(e,{async:!1,success:function(e){t=e}}),t},htmlColorToRgba:pe,htmlColorToFloat32Array:me,htmlColorToRgb:xe,stringTemplate:ve,getHTML:ye,parseHTML:we,print2d:Ce,defaultString:Be,createVector3:Ee,createVector4:function(e,A){if(e){if(e instanceof se)return e.clone();if(e instanceof Array)return se.fromVec(e)}else if(A)return A;return new se},createColorRGBA:Te,createColorRGB:be,createExtent:Ie,createLonLat:Me,binarySearchFast:Pe,binarySearch:De,binaryInsert:Le,getLinesIntersection2v:function(e,A,t,i,r){var n=A.sub(e),s=i.sub(t),a=-n.y,o=+n.x,h=-(a*e.x+o*e.y),l=-s.y,d=+s.x,c=-(l*t.x+d*t.y),u=l*e.x+d*e.y+c,g=l*A.x+d*A.y+c,f=a*t.x+o*t.y+h,p=a*i.x+o*i.y+h;if(r&&(u*g>0||f*p>0))return null;var m=u/(u-g);return new de(e.x+m*n.x,e.y+m*n.y)},getLinesIntersectionLonLat:_e,xmlToJson:function e(A){var t={};if(1===A.nodeType){if(A.attributes.length>0){t["@attributes"]={};for(var i=0;i<A.attributes.length;i++){var r=A.attributes.item(i);t["@attributes"][r.nodeName]=r.nodeValue}}}else 3===A.nodeType&&(t=A.nodeValue);if(A.hasChildNodes())for(var n=0;n<A.childNodes.length;n++){var s=A.childNodes.item(n),a=s.nodeName;if(void 0===t[a])t[a]=e(s);else{if(void 0===t[a].push){var o=t[a];t[a]=[],t[a].push(o)}t[a].push(e(s))}}return t},castType:Se,base64toBlob:Re,base64StringToBlog:ke,throttle:function(e,A,t){let i,r;return function(){const n=this,s=arguments;r?(t&&clearTimeout(i),i=setTimeout((function(){Date.now()-r>=A&&(e.apply(n,s),r=Date.now())}),A-(Date.now()-r))):(e.apply(n,s),r=Date.now())}},blerp:function(e,A,t,i,r,n,s=0,a=1,o=0,h=1){return(t*(a-e)*(h-A)+i*(e-s)*(h-A)+r*(a-e)*(A-o)+n*(e-s)*(A-o))/((a-s)*(h-o))},blerp2:function(e,A,t,i,r,n){return t*(1-e)*(1-A)+i*e*(1-A)+r*(1-e)*A+n*e*A},extractElevationTiles:function(e,A,t){let i=Math.sqrt(A.length)-1,r=i+1,n=Math.sqrt(e.length/4),s=n/i,a=0,o=0;for(let h=0,l=0,d=e.length/4;h<d;h++){let d=e[4*h],c=Math.floor(h/n),u=h%n,g=Math.floor(u/i),f=Math.floor(c/i),p=t[f][g],m=c%i,x=u%i,v=(m+f)*r+x+g;if(p[v]=d,(c+f)%s==0&&(u+g)%s==0&&(A[l++]=d),(u+1)%i==0&&u!==n-1){a=e[4*(h+1)];let n=.5*(d+a);v=(m+f)*r+x+1,p[v]=n,(c+f)%s==0&&(A[l++]=n);let o=(m+f)*r+(x+1)%i;t[f][g+1][o]=n}if((c+1)%i==0&&c!==n-1){o=e[4*(h+n)];let a=.5*(d+o);v=(m+1)*r+x+g,p[v]=a,(u+g)%s==0&&(A[l++]=a);let c=(m+1)%i*r+x+g;t[f+1][g][c]=a}if((u+1)%i==0&&u!==n-1&&(c+1)%i==0&&c!==n-1){let s=.25*(d+a+o+e[4*(h+n+1)]);v=(m+1)*r+(x+1),p[v]=s,A[l++]=s;let c=(m+1)*r;t[f][g+1][c]=s;let u=i;t[f+1][g][u]=s;let y=0;t[f+1][g+1][y]=s}}},concatTypedArrays:ze,concatArrays:He,makeArrayTyped:Fe,makeArray:Oe,spliceArray:Qe,spliceTypedArray:Ne,getMatrixSubArray:Ue,getMatrixSubArrayBoundsExt:Ge,cloneArray:Ye,isUndef:Ve});const Je=1e3,je=1/60,We=1/24,Xe=3600,Ze=1/Xe,qe=43200,$e=1440,eA=86400,AA=864e5,tA=1.1574074074074074e-8,iA=1/eA,rA=2451545;function nA(e,A,t){var i=(A-14)/12|0,r=e+4800+i;return(1461*r/4|0)+(367*(A-2-12*i)/12|0)-(3*((r+100)/100|0)/4|0)+t-32075}function sA(e){var A=nA(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()),t=e.getUTCHours()-12;t<0&&(t+=24);var i=e.getUTCSeconds()+t*Xe+60*e.getUTCMinutes()+.001*e.getUTCMilliseconds();i>=qe&&A--;var r=i*iA|0;return A+=r,(i-=eA*r)<0&&(A--,i+=eA),A+i*iA}function aA(e){var A=uA,t=De(A,e,(function(e,A){return e-A.jd}));t<0&&(t=~t),t>=A.length&&(t=A.length-1);var i=A[t].leapSeconds;return 0!==t&&(A[t].jd-e)*eA>i&&(i=A[t-1].leapSeconds),e+i*iA}function oA(e){var A=uA,t=De(A,e,(function(e,A){return e-A.jd}));if(t<0&&(t=~t),t>=A.length)return e-A[t-1].leapSeconds*iA;if(0===t)return e-A[0].leapSeconds*iA;var i=(A[t].jd-e)*eA;return 0===i?e-A[t].leapSeconds*iA:i<=1?null:e-A[t-1].leapSeconds*iA}function hA(e){var A=0|e,t=(e-A)*eA;t>=qe&&A++;var i=A+68569|0,r=4*i/146097|0,n=4e3*((i=i-((146097*r+3)/4|0)|0)+1)/1461001|0,s=80*(i=i-(1461*n/4|0)+31|0)/2447|0,a=i-(2447*s/80|0)|0,o=s+2-12*(i=s/11|0)|0,h=100*(r-49)+n+i|0,l=t*Ze|0,d=t-l*Xe,c=d*je|0,u=0|(d-=60*c),g=(d-u)*Je|0;return(l+=12)>23&&(l-=24),new Date(Date.UTC(h,o-1,a,l,c,u,g))}function lA(e,A){return e+A*tA}function dA(e,A){return e+A*iA}function cA(e,A){return{jd:e,leapSeconds:A}}const uA=[cA(2441317.5,10),cA(2441499.5,11),cA(2441683.5,12),cA(2442048.5,13),cA(2442413.5,14),cA(2442778.5,15),cA(2443144.5,16),cA(2443509.5,17),cA(2443874.5,18),cA(2444239.5,19),cA(2444786.5,20),cA(2445151.5,21),cA(2445516.5,22),cA(2446247.5,23),cA(2447161.5,24),cA(2447892.5,25),cA(2448257.5,26),cA(2448804.5,27),cA(2449169.5,28),cA(2449534.5,29),cA(2450083.5,30),cA(2450630.5,31),cA(2451179.5,32),cA(2453736.5,33),cA(2454832.5,34),cA(2456109.5,35),cA(2457204.5,36)],gA=aA(rA);var fA=Object.freeze({__proto__:null,SECONDS_PER_MILLISECOND:.001,MILLISECONDS_PER_SECOND:Je,SECONDS_PER_MINUTE:60,ONE_BY_SECONDS_PER_MINUTE:je,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,ONE_BY_HOURS_PER_DAY:We,SECONDS_PER_HOUR:Xe,ONE_BY_SECONDS_PER_HOUR:Ze,SECONDS_PER_12_HOURS:qe,MINUTES_PER_DAY:$e,ONE_BY_MINUTES_PER_DAY:.0006944444444444445,SECONDS_PER_DAY:eA,MILLISECONDS_PER_DAY:AA,ONE_BY_MILLISECONDS_PER_DAY:tA,ONE_BY_SECONDS_PER_DAY:iA,DAYS_PER_JULIAN_CENTURY:36525,DAYS_PER_JULIAN_YEAR:365.25,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5,J2000:rA,T:function(e){return(e-rA)/36525},getDayNumber:nA,DateToUTC:sA,DateToTAI:function(e){return aA(sA(e))},UTCtoTAI:aA,TAItoUTC:oA,UTCtoDate:hA,TAItoDate:function(e){var A=oA(e);return A||(A=oA(dA(e,-1)),console.warn("TAItoDate:336 - can't conv utc.")),hA(A)},addMilliseconds:lA,addSeconds:dA,addHours:function(e,A){return e+A*We},addMinutes:function(e,A){return e+A*$e},addDays:function(e,A){return e+A},getMilliseconds:function(e){var A=e-(0|e);return((A*=eA)-(0|A))*Je|0},getSeconds:function(e){return(e-(0|e))*eA},getHours:function(e){var A=(e-(0|e))*eA,t=A*Ze|0,i=A-t*Xe,r=i*je|0,n=0|(i-=60*r);return(t+=12+r/60+n/3600+((i-n)*Je|0)/1e3)>23&&(t-=24),t},getMinutes:function(e){return(e-(0|e))*$e|0},getDays:function(e){return 0|e},secondsToDays:function(e){return e*iA},daysToSeconds:function(e){return e*eA},J2000TAI:gA});class pA{constructor(e){e=e||{},this._id=pA.__staticCounter++,this._name=e.name||"_control_"+this._id,this._initialized=!1,this.renderer=null,this.autoActivate=null==e.autoActivate||e.autoActivate,this._active=!1}static get __staticCounter(){return this.__counter||0===this.__counter||(this.__counter=0),this.__counter}static set __staticCounter(e){this.__counter=e}get name(){return this._name}oninit(){}onadd(){}onremove(){}onactivate(){}ondeactivate(){}addTo(e){e&&(this.renderer=e,e.controls[this.name]=this,this.onadd&&this.onadd(),this.autoActivate&&(this._initialized=!0,this.oninit&&this.oninit(),this._active=!0))}remove(){this.onremove&&this.onremove();let e=this.renderer,A=this.name;if(!e)return;let t=e.controls[A];t&&this.isEqual(t)&&(e.controls[A]=null,delete e.controls[A]),this.renderer=null,this._active=!1,this._initialized=!1}activate(){this._initialized||(this._initialized=!0,this.oninit&&this.oninit()),this._active=!0,this.onactivate&&this.onactivate()}deactivate(){this._active=!1,this.ondeactivate&&this.ondeactivate()}isActive(){return this._active}isEqual(e){return e._id===this._id}}class mA extends pA{constructor(e){super(e),e=e||{},this.planet=null,this.compassSvg=e.compassSvg||'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n xmlns:dc="http://purl.org/dc/elements/1.1/"\n xmlns:cc="http://creativecommons.org/ns#"\n xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\n xmlns:svg="http://www.w3.org/2000/svg"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n viewBox="0 0 110.6 110.3"\n version="1.1"\n id="svg21"\n sodipodi:docname="aaa.svg"\n inkscape:version="0.92.3 (2405546, 2018-03-11)">\n <metadata\n id="metadata11">\n <rdf:RDF>\n <cc:Work\n rdf:about="">\n <dc:format>image/svg+xml</dc:format>\n <dc:type\n rdf:resource="http://purl.org/dc/dcmitype/StillImage" />\n </cc:Work>\n </rdf:RDF>\n </metadata>\n <defs\n id="defs25" />\n <sodipodi:namedview\n pagecolor="#ffffff"\n bordercolor="#666666"\n borderopacity="1"\n objecttolerance="10"\n gridtolerance="10"\n guidetolerance="10"\n inkscape:pageopacity="0"\n inkscape:pageshadow="2"\n inkscape:window-width="1920"\n inkscape:window-height="1001"\n id="namedview23"\n showgrid="false"\n inkscape:zoom="9.4900968"\n inkscape:cx="28.376998"\n inkscape:cy="60.17054"\n inkscape:window-x="-9"\n inkscape:window-y="-9"\n inkscape:window-maximized="1"\n inkscape:current-layer="svg21" />\n <g\n id="Layer_2"\n data-name="Layer 2"\n transform="matrix(1,0,0,-1,0,110.3)">\n <g\n id="Слой_1"\n data-name="Слой 1">\n <g\n id="_Group_"\n data-name="<Group>">\n <g\n id="_Group_7"\n data-name="<Group>">\n <polygon\n id="_Path_7"\n data-name="<Path>"\n points="55.2,97.6 55.3,97.4 55.3,97.6 55.3,97.2 65.3,55.1 55.3,55.1 55.2,55.1 45.3,55.1 55.2,97.2 "\n style="fill:#ff2b45" />\n <polygon\n id="_Path_8"\n data-name="<Path>"\n points="55.3,12.7 55.3,12.9 55.2,12.7 55.2,13.1 45.3,55.1 55.2,55.1 55.3,55.1 65.3,55.1 55.3,13.1 "\n style="fill:#cecece;" />\n </g>\n </g>\n </g>\n </g>\n</svg>',this._heading=null,this._svg=null}oninit(){var e=we(`<div class="og-compass-button">${this.compassSvg}</div>`)[0];this._svg=e.querySelector("svg"),this.renderer.div.appendChild(e),e.addEventListener("click",(e=>this._onClick())),this.renderer.events.on("draw",this._draw,this)}_onClick(){let e=this.planet.getCartesianFromPixelTerrain(this.renderer.handler.getCenter());e?this.planet.flyCartesian(e.normal().scaleTo(e.length()+e.distance(this.planet.camera.eye)),null,null,0,null,null,(()=>{this.planet.camera.look(e)})):this.planet.flyCartesian(this.planet.camera.eye)}_draw(e){this.setHeading(e.activeCamera.getHeading())}setHeading(e){this._heading!==e&&(this._heading=e,this._svg.style.transform=`rotateZ(${-e}deg)`)}}class xA{constructor(e,A){this.radius=e||0,this.center=A?A.clone():new le}setFromBounds(e){let A=new le(e[0],e[1],e[2]);this.center.set(A.x+.5*(e[3]-A.x),A.y+.5*(e[3]-A.y),A.z+.5*(e[5]-A.z)),this.radius=this.center.distance(A)}setFromExtent(e,A){this.setFromBounds(A.getCartesianBounds(e))}}class vA{constructor(e,A){this.origin=e||new le,this.direction=A||new le}static get OUTSIDE(){return 0}static get INSIDE(){return 1}static get INPLANE(){return 2}static get AWAY(){return 3}set(e,A){return this.origin=e,this.direction=A,this}getPoint(e){return le.add(this.origin,this.direction.scaleTo(e))}hitTriangle(e,A,t,i,r){var n=A.sub(e),s=t.sub(e),a=n.cross(s),o=this.origin.sub(e),h=-a.dot(o),l=a.dot(this.direction);if(Math.abs(l)<x)return 0===h?(i.copy(this.origin),vA.INPLANE):vA.OUTSIDE;var d=h/l;if(i.copy(this.origin.add(this.direction.scaleTo(d))),d<0)return vA.AWAY;var c=n.dot(n),u=n.dot(s),g=s.dot(s),f=i.sub(e),p=f.dot(n),m=f.dot(s),v=u*u-c*g,y=(u*m-g*p)/v;if(y<0||y>1)return vA.OUTSIDE;var w=(u*p-c*m)/v;return w<0||y+w>1?vA.OUTSIDE:vA.INSIDE}hitPlane(e,A,t,i){var r=le.sub(A,e),n=le.sub(t,e),s=r.cross(n),a=le.sub(this.origin,e),o=-s.dot(a),h=s.dot(this.direction);if(Math.abs(h)<x&&0===o)return vA.OUTSIDE;var l=o/h;if(l<0)return vA.OUTSIDE;var d=this.direction.scaleTo(l);return i.x=this.origin.x+d.x,i.y=this.origin.y+d.y,i.z=this.origin.z+d.z,vA.INSIDE}hitSphere(e){var A=e.radius,t=e.center,i=this.origin,r=this.direction,n=le.sub(t,i);if(n.dot(r)<0){var s=n.length();if(s>A)return null;if(s===A)return i.clone();let e=t.projToRay(i,n);var a=le.sub(e,t).length();let o=Math.sqrt(A*A-a*a)-le.sub(e,i).length();return le.add(i,r.scaleTo(o))}{let s=t.projToRay(i,r);var o=le.sub(t,s).length();if(o>e.radius)return null;{let e,t=Math.sqrt(A*A-o*o);return s.subA(i),e=n.length()>A?s.length()-t:s.length()+t,le.add(i,r.scaleTo(e))}}}hitBox(e){}}class yA{constructor(){this.x=0,this.y=0,this.prev_x=0,this.prev_y=0,this.grabbedPoint=new le,this.grabbedSpheroid=new xA,this.dX=function(){return this.x-this.prev_x},this.dY=function(){return this.y-this.prev_y}}}class wA extends pA{constructor(e){super(e),this.grabbedPoint=new le,this.grabbedDir=new le,this.inertia=.007,this.grabbedSpheroid=new xA,this.planet=null,this._vRot=new he,this._hRot=new he,this._a=0,this.scaleRot=0,this.currState=0,this.positionState=[{h:17119745.303455353,max:.98,min:-.98},{h:6866011,max:.98,min:-.98},{h:3e6,max:.98,min:-.98},{h:1e6,max:.98,min:-.98},{h:5e5,max:.98,min:-.98}],this.touches=[new yA,new yA]}switchZoomState(e){this.stopRotation(),e>0?this.currState++:this.currState--,this.currState<=0&&(this.currState=0),this.currState>=this.positionState.length&&(this.currState=this.positionState.length-1),this.planet.stopFlying();var A=this.renderer.activeCamera._lonLat;this.planet.flyLonLat(new F(A.lon,A.lat,this.positionState[this.currState].h))}onMouseWheel(e){this.switchZoomState(e.wheelDelta)}oninit(){this.activate()}onactivate(){this.planet=this.renderer.renderNodes.Earth,this.renderer.events.on("mousewheel",this.onMouseWheel,this),this.renderer.events.on("lhold",this.onMouseLeftButtonDown,this),this.renderer.events.on("ldown",this.onMouseLeftButtonClick,this),this.renderer.events.on("lup",this.onMouseLeftButtonUp,this),this.renderer.events.on("touchstart",this.onTouchStart,this),this.renderer.events.on("touchend",this.onTouchEnd,this),this.renderer.events.on("touchmove",this.onTouchMove,this),this.renderer.events.on("draw",this.onDraw,this)}onTouchStart(e){if(1==e.sys.touches.length){var A=this.touches[0];A.x=e.sys.touches.item(0).pageX-e.sys.offsetLeft,A.y=e.sys.touches.item(0).pageY-e.sys.offsetTop,A.prev_x=e.sys.touches.item(0).pageX-e.sys.offsetLeft,A.prev_y=e.sys.touches.item(0).pageY-e.sys.offsetTop,A.grabbedPoint=this.planet.getCartesianFromPixelTerrain(A,!0),A.grabbedPoint&&(A.grabbedSpheroid.radius=A.grabbedPoint.length(),this.stopRotation())}}onTouchEnd(e){0==e.sys.touches.length&&(this.scaleRot=1,Math.abs(this.touches[0].x-this.touches[0].prev_x)<3&&Math.abs(this.touches[0].y-this.touches[0].prev_y)<3&&this.stopRotation())}onTouchMove(e){if(1==e.sys.touches.length){var A=this.renderer.activeCamera,t=this.touches[0];if(t.prev_x=t.x,t.prev_y=t.y,t.x=e.sys.touches.item(0).pageX-e.sys.offsetLeft,t.y=e.sys.touches.item(0).pageY-e.sys.offsetTop,!t.grabbedPoint)return;var i=A.unproject(t.x,t.y),r=new vA(A.eye,i).hitSphere(t.grabbedSpheroid);if(r){this._a=Math.acos(t.grabbedPoint.y/t.grabbedSpheroid.radius)-Math.acos(r.y/t.grabbedSpheroid.radius),this._vRot=he.axisAngleToQuat(A._u,this._a),this._hRot=he.getRotationBetweenVectors(new le(r.x,0,r.z).normal(),new le(t.grabbedPoint.x,0,t.grabbedPoint.z).normal());var n=this._hRot.mul(this._vRot),s=this.positionState[this.currState],a=n.mulVec3(A.eye).normal().dot(le.UP);(a>s.max||a<s.min)&&(n=he.yRotation(n.getYaw())),A.set(n.mulVec3(A.eye),le.ZERO,le.UP),A.update()}}}onMouseLeftButtonClick(e){this.renderer.handler.gl.canvas.classList.add("ogGrabbingPoiner"),this.grabbedPoint=this.planet.getCartesianFromMouseTerrain(!0),this.grabbedDir.copy(e.direction),this.grabbedPoint&&(this.grabbedSpheroid.radius=this.grabbedPoint.length(),this.stopRotation())}stopRotation(){this.scaleRot=0,this._a=0,this._vRot.clear(),this._hRot.clear()}onMouseLeftButtonUp(e){this.scaleRot=1,this.renderer.handler.gl.canvas.classList.remove("ogGrabbingPoiner"),Math.abs(e.x-e.prev_x)<3&&Math.abs(e.y-e.prev_y)<3&&this.stopRotation()}onMouseLeftButtonDown(e){var A=this.renderer.activeCamera;if(this.grabbedPoint&&!A.isFlying())if(this.renderer.events.mouseState.moving){var t=new vA(A.eye,e.direction).hitSphere(this.grabbedSpheroid);if(t){this._a=Math.acos(this.grabbedPoint.y/this.grabbedSpheroid.radius)-Math.acos(t.y/this.grabbedSpheroid.radius);let e=this._vRot=he.axisAngleToQuat(A._u,this._a);A.set(e.mulVec3(A.eye),le.ZERO,e.mulVec3(A.getUp())),this._hRot=he.getRotationBetweenVectors(new le(t.x,0,t.z).normal(),new le(this.grabbedPoint.x,0,this.grabbedPoint.z).normal()),e=this._hRot,A.set(e.mulVec3(A.eye),le.ZERO,e.mulVec3(A.getUp())),A.update()}}else this.scaleRot=0}onDraw(e){var A=this.renderer,t=A.activeCamera;if(!A.events.mouseState.leftButtonDown&&this.scaleRot&&!t.isFlying())if(this.scaleRot-=this.inertia,this.scaleRot<=0)this.scaleRot=0;else{this._vRot=he.axisAngleToQuat(t._u,this._a);var i=this._vRot.mul(this._hRot),r=i.mulVec3(t.eye).normal().dot(le.UP),n=this.positionState[this.currState];(r>n.max||r<n.min)&&(i=he.yRotation(i.getYaw())),A.controlsBag.scaleRot=this.scaleRot,(i=i.slerp(he.IDENTITY,1-this.scaleRot*this.scaleRot*this.scaleRot).normalize()).x||i.y||i.z||(this.scaleRot=0),t.set(i.mulVec3(t.eye),le.ZERO,le.UP),t.update()}}}function CA(e){var A,t=e<0?Math.ceil(e):Math.floor(e),i=Math.floor(A=60*Math.abs(e-t)),r=Math.floor(6e3*(A-i));return r/=100,BA(t,3)+"°"+BA(i,2)+"'"+BA(r.toFixed(2),2)+'"'}function BA(e,A){for(var t=" ",i=e.toString().split(".")[0].length;i<A;i++)t+=" ";return t+e.toString()}const EA=[function(e){return e.lat.toFixed(5)+", "+e.lon.toFixed(5)},function(e){return CA(e.lat)+", "+CA(e.lon)},function(e){var A=e.forwardMercator();return A.lat.toFixed(5)+", "+A.lon.toFixed(5)}];class TA extends pA{constructor(e){super(e),e=e||{},this._displayType=e.type||0,this._converter=EA[0],this._display=null;var A=!1;/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)&&(A=!0),this._center=e.center||A,this._centerDiv=null,this.position=null}oninit(){this._display=document.createElement("div"),this._display.className="ogEarthCoordinatesControl";var e=this;function A(A){e._displayType>=EA.length&&(e._displayType=0),0==e._displayType?A.style.width="275px":1==e._displayType?A.style.width="355px":2==e._displayType&&(A.style.width="350px"),e._converter=EA[e._displayType],e._showPosition()}this._display.onclick=function(t){e._displayType+=1,A(this)},this.renderer.div.appendChild(this._display),A(this._display),this._centerDiv=document.createElement("div"),this._centerDiv.className="ogCenterIcon",this._centerDiv.innerHTML='<svg width="12" height="12"><g><path stroke-width="1" stroke-opacity="1" d="M6 0L6 12M0 6L12 6" stroke="#009DFF"></path></g></svg>',this.renderer.div.appendChild(this._centerDiv),this._center?(this.renderer.activeCamera.events.on("moveend",this._grabCoordinates,this),this._centerDiv.style.display="block"):(this.renderer.events.on("mousemove",this._onMouseMove,this),this._centerDiv.style.display="none")}setCenter(e){e!=this._center&&(this._center=e,e?(this.renderer.events.off("mousemove",this._onMouseMove),this.renderer.activeCamera.events.on("moveend",this._grabCoordinates,this),this._centerDiv.style.display="block"):(this.renderer.events.off("draw",this._draw),this.renderer.events.on("mousemove",this._onMouseMove,this),this._centerDiv.style.display="none"))}_showPosition(){this.position?(this.position.height=this.position.height>1e4||this.position.height<-1e4?0:this.position.height,this._display.innerHTML="Lat/Lon: "+this._converter(this.position)+" h(m): "+(this.position.height>0?"~"+1e3*(Math.round(this.position.height)/1e3).toFixed(3):"-")):this._display.innerHTML="Lat/Lon: _____________________"}_grabCoordinates(){var e=this.renderer;this.position=this.planet.getLonLatFromPixelTerrain(e.handler.getCenter()),this._showPosition()}_onMouseMove(){var e=this.renderer,A=e.events.mouseState;!A.leftButtonDown&&!A.rightButtonDown&&e.controlsBag.scaleRot<=0&&!e.activeCamera._flying&&(this.position=this.planet.getLonLatFromPixelTerrain(A,!0),this._showPosition())}}class bA{constructor(e,A){this._eventNames=[],e&&this.registerNames(e),this._sender=A||this,this._stopPropagation=!1,this._stampCache={},this.__id=bA._staticCounter++}static get _staticCounter(){return this.__counter__||0===this.__counter__||(this.__counter__=0),this.__counter__}static set _staticCounter(e){this.__counter__=e}bindSender(e){this._sender=e||this}registerNames(e){for(var A=0;A<e.length;A++)this[e[A]]={active:!0,handlers:[]},this._eventNames.push(e[A])}_getStamp(e,A,t){return`${e}_${A}_${t}`}_stamp(e,A){var t=ge(A),i=this._getStamp(e,this.__id,t);return!this._stampCache[i]&&(this._stampCache[i]=t,!0)}on(e,A,t,i=0){if(this._stamp(e,A)&&this[e]){let r=A.bind(t||this._sender);r._openglobus_id=A._openglobus_id,r._openglobus_priority=i,Le(this[e].handlers,r,((e,A)=>A._openglobus_priority-e._openglobus_priority))}}off(e,A){if(A){var t=this._getStamp(e,this.__id,A._openglobus_id);if(A._openglobus_id&&this._stampCache[t]){for(var i=this[e].handlers,r=i.length,n=-1;r--;){if(i[r]._openglobus_id===A._openglobus_id){n=r;break}}-1!==n&&(i.splice(n,1),this._stampCache[t]=void 0,delete this._stampCache[t])}}}dispatch(e,...A){let t=!0;if(e&&e.active&&!this._stopPropagation){let i=e.handlers,r=i.length;for(;r--;)!1===i[r](...A)&&(t=!1)}return this._stopPropagation=!1,t}stopPropagation(){this._stopPropagation=!0}clear(){for(var e=0;e<this._eventNames.length;e++){var A=this[this._eventNames[e]];A.handlers.length=0,A.handlers=[]}this._eventNames.length=0,this._eventNames=[]}}class IA{constructor(e,A){this.segment=e,this.layer=A,this.isReady=!1,this.isLoading=!1,this.texture=null,this.pickingMask=null,this.textureExists=!1,this.appliedNodeId=0,this.texOffset=[0,0,1,1],this.loadingAttempts=0,this._updateTexture=null,this._updatePickingMask=null,this.pickingReady=!1}abortLoading(){this.layer.abortMaterialLoading(this)}_createTexture(e){return this.layer.createTexture(e,this.layer._internalFormat)}applyImage(e){this.segment.initialized&&(this._updateTexture=null,this.texture=this._createTexture(e),this.appliedNodeId=this.segment.node.nodeId,this.isReady=!0,this.pickingReady=!0,this.textureExists=!0,this.isLoading=!1,this.texOffset=[0,0,1,1])}applyTexture(e,A){this.segment.initialized&&(this.texture=e,this._updateTexture=null,this.pickingMask=A||null,this._updatePickingMask=null,this.isReady=!0,this.pickingReady=!0,this.textureExists=!0,this.isLoading=!1,this.appliedNodeId=this.segment.node.nodeId,this.texOffset=[0,0,1,1])}textureNotExists(){this.segment.initialized&&(this.pickingReady=!0,this.isLoading=!1,this.isReady=!0,this.textureExists=!1)}clear(){this.loadingAttempts=0,this.layer.clearMaterial(this)}}class MA{constructor(e,A={}){this.name=e||"noname",this._labelMaxLetters=A.labelMaxLetters,this.displayInLayerSwitcher=void 0===A.displayInLayerSwitcher||A.displayInLayerSwitcher,this._hasImageryTiles=!0,this._opacity=A.opacity||1,this.minZoom=A.minZoom||0,this.maxZoom=A.maxZoom||50,this._planet=null,this._id=MA.__layersCounter++,this._attribution=A.attribution||"",this._zIndex=A.zIndex||0,this._isBaseLayer=A.isBaseLayer||!1,this._defaultTextures=A.defaultTextures||[null,null],this._visibility=void 0===A.visibility||A.visibility,this._fading=A.fading||!1,this._fadingFactor=.29,this._fading?this._fadingOpacity=this._visibility?this._opacity:0:this._fadingOpacity=this._opacity,this._height=A.height||0,this._extent=null,this.createTexture=null,this._textureFilter=A.textureFilter?A.textureFilter.trim().toUpperCase():"MIPMAP",this._isSRGB=null!=A.isSRGB&&A.isSRGB,this._internalFormat=null,this._extentMerc=null,this.setExtent(Ie(A.extent,new ne(new F(-180,-90),new F(180,90)))),this._pickingColor=new le,this._pickingEnabled=void 0===A.pickingEnabled||A.pickingEnabled,this.events=new bA(PA,this)}static getTMS(e,A,t){return{x:e,y:(1<<t)-A-1,z:t}}static getTileIndex(...e){return e.join("_")}static get __layersCounter(){return this.__lcounter||0===this.__lcounter||(this.__lcounter=0),this.__lcounter}static set __layersCounter(e){this.__lcounter=e}static get __requestsCounter(){return this.__reqcounter}static set __requestsCounter(e){this.__reqcounter=e}static get MAX_REQUESTS(){return 7}get instanceName(){return"Layer"}get rendererEvents(){return this.events}set opacity(e){this._fading?(e>this._opacity||e<this._opacity)&&(this._fadingFactor=(e-this._opacity)/2.8):this._fadingOpacity=e,this._opacity=e}get opacity(){return this._opacity}set pickingEnabled(e){this._pickingEnabled=e?1:0}get pickingEnabled(){return!!this._pickingEnabled}hasImageryTiles(){return this._hasImageryTiles}getID(){return this._id}isEqual(e){return e._id===this._id}_assignPlanet(e){this._isSRGB?this._internalFormat=e.renderer.handler.gl.SRGB8_ALPHA8:this._internalFormat=e.renderer.handler.gl.RGBA8,this.createTexture=e.renderer.handler.createTexture[this._textureFilter],e.layers.push(this),this._planet=e,this.events.on("visibilitychange",e._onLayerVisibilityChanged,e),this._isBaseLayer&&this._visibility&&e.setBaseLayer(this),e.events.dispatch(e.events.layeradd,this),this.events.dispatch(this.events.add,e),e.updateVisibleLayers(),this._bindPicking()}_bindPicking(){this._planet&&this._planet.renderer.assignPickingColor(this)}addTo(e){return this._planet||this._assignPlanet(e),this}remove(){var e=this._planet;if(e)for(var A=0;A<e.layers.length;A++)if(this.isEqual(e.layers[A]))return e.renderer.clearPickingColor(this),e.layers.splice(A,1),e.updateVisibleLayers(),this.clear(),e.events.dispatch(e.events.layerremove,this),this.events.dispatch(this.events.remove,e),this._planet=null,this;return this}clear(){this._planet&&(this._planet._clearLayerMaterial(this),this._internalFormat=null,this.createTexture=null)}get planet(){return this._planet}setAttribution(e){this._attribution=e,this._planet&&this._planet.updateAttributionsList()}setHeight(e){this._height=e,this._planet&&this._planet.updateVisibleLayers()}getHeight(){return this._height}setZIndex(e){this._zIndex=e,this._planet&&this._planet.updateVisibleLayers()}getZIndex(){return this._zIndex}bringToFront(){if(this._planet){var e=this._planet.visibleTileLayers,A=e[e.length-1];A.isEqual(this)||this.setZIndex(A.getZIndex()+1)}}isBaseLayer(){return this._isBaseLayer}setBaseLayer(e){this._isBaseLayer=e,this._planet&&(!e&&this.isEqual(this._planet.baseLayer)&&(this._planet.baseLayer=null),this._planet.updateVisibleLayers())}setVisibility(e){e!==this._visibility&&(this._visibility=e,this._planet&&(this._isBaseLayer&&e&&this._planet.setBaseLayer(this),this._planet.updateVisibleLayers(),e&&this._planet._preLoad()),this.events.dispatch(this.events.visibilitychange,this))}getVisibility(){return this._visibility}setExtent(e){var A=e.southWest.clone(),t=e.northEast.clone();A.lat<ie&&(A.lat=ie),t.lat>te&&(t.lat=te),this._extent=e.clone(),this._extentMerc=new ne(A.forwardMercator(),t.forwardMercator()),this._correctFullExtent()}getExtent(){return this._extent}_correctFullExtent(){}_refreshFadingOpacity(){var e=this._planet;return this._visibility&&e._viewExtent&&e._viewExtent.overlaps(this._extent)&&e.maxCurrZoom>=this.minZoom&&e.minCurrZoom<=this.maxZoom?(this._fadingOpacity+=this._fadingFactor,(this._fadingFactor>0&&this._fadingOpacity>this._opacity||this._fadingFactor<0&&this._fadingOpacity<this._opacity)&&(this._fadingOpacity=this._opacity),!1):(this._fadingOpacity-=.29,this._fadingOpacity<0?(this._fadingOpacity=0,!this._visibility):void 0)}createMaterial(e){return new IA(e,this)}}const PA=["visibilitychange","add","remove","mousemove","mouseenter","mouseleave","lclick","rclick","mclick","ldblclick","rdblclick","mdblclick","lup","rup","mup","ldown","rdown","mdown","lhold","rhold","mhold","mousewheel","touchmove","touchstart","touchend","doubletouch","touchleave","touchenter"];class DA extends MA{constructor(e,A){super(e,A),this._projType=0,this._frameWidth=256,this._frameHeight=256,this._sourceReady=!1,this._sourceTexture=null,this._materialTexture=null,this._gridBuffer=null,this._extentWgs84Params=null,this._refreshFrame=!0,this._frameCreated=!1,this._sourceCreated=!1,this._animate=!1,this._ready=!1,this._creationProceeding=!1,this._isRendering=!1,this._extentWgs84=new ne,this._cornersWgs84=null,this.rendering=null,A.corners&&this.setCorners(A.corners)}get instanceName(){return"BaseGeoImage"}getCornersLonLat(){var e=this._cornersWgs84;return[new F(e[0].lon,e[0].lat),new F(e[1].lon,e[1].lat),new F(e[2].lon,e[2].lat),new F(e[3].lon,e[3].lat)]}getCorners(){var e=this._cornersWgs84;return[[e[0].lon,e[0].lat],[e[1].lon,e[1].lat],[e[2].lon,e[2].lat],[e[3].lon,e[3].lat]]}setCorners(e){this.setCornersLonLat(F.join(e))}setCornersLonLat(e){this._refreshFrame=!0,this._cornersWgs84=[e[0].clone(),e[1].clone(),e[2].clone(),e[3].clone()]||[0,0,0,0];for(var A=0;A<this._cornersWgs84.length;A++)this._cornersWgs84[A].lat>=89.9&&(this._cornersWgs84[A].lat=89.9),this._cornersWgs84[A].lat<=-89.9&&(this._cornersWgs84[A].lat=-89.9);this._extent.setByCoordinates(this._cornersWgs84);var t=this._extent;t.southWest.lat>te||t.northEast.lat<ie?(this._projType=0,this.rendering=this._renderingProjType0):(this._projType=1,this.rendering=this._renderingProjType1),this._ready&&!this._creationProceeding&&this._planet._geoImageCreator.add(this)}_createFrame(){if(this._extentWgs84=this._extent.clone(),this._cornersMerc=[this._cornersWgs84[0].forwardMercatorEPS01(),this._cornersWgs84[1].forwardMercatorEPS01(),this._cornersWgs84[2].forwardMercatorEPS01(),this._cornersWgs84[3].forwardMercatorEPS01()],this._extentMerc=new ne(this._extentWgs84.southWest.forwardMercatorEPS01(),this._extentWgs84.northEast.forwardMercatorEPS01()),0===this._projType?this._extentWgs84Params=[this._extentWgs84.southWest.lon,this._extentWgs84.southWest.lat,2/this._extentWgs84.getWidth(),2/this._extentWgs84.getHeight()]:this._extentMercParams=[this._extentMerc.southWest.lon,this._extentMerc.southWest.lat,2/this._extentMerc.getWidth(),2/this._extentMerc.getHeight()],this._planet){var e=this._planet.renderer.handler;e.gl.deleteTexture(this._materialTexture),this._materialTexture=e.createEmptyTexture_l(this._frameWidth,this._frameHeight),this._gridBuffer=this._planet._geoImageCreator.createGridBuffer(this._cornersWgs84,this._projType),this._refreshFrame=!1}}abortMaterialLoading(e){this._creationProceeding=!1,e.isLoading=!1,e.isReady=!1}clear(){var e=this._planet;if(e){var A=e.renderer.handler.gl;this._creationProceeding&&e._geoImageCreator.remove(this),e._clearLayerMaterial(this),A.deleteBuffer(this._gridBuffer),A.deleteTexture(this._sourceTexture),!this._materialTexture.default&&A.deleteTexture(this._materialTexture)}this._sourceTexture=null,this._materialTexture=null,this._gridBuffer=null,this._refreshFrame=!0,this._sourceCreated=!1,this._ready=!1,this._creationProceeding=!1}setVisibility(e){e!==this._visibility&&(super.setVisibility(e),e?this._sourceReady&&this._planet._geoImageCreator.add(this):this._sourceReady&&this._planet._geoImageCreator.remove(this))}clearMaterial(e){e.image=null,e.texture=null,e.isLoading=!1,e.isReady=!1}applyMaterial(e){var A,t,i=e.segment;this._ready?e.applyTexture(this._materialTexture):(e.texture=this._planet.transparentTexture,!this._creationProceeding&&this.loadMaterial(e)),0===this._projType?(A=this._extentWgs84,t=i._extent):(A=this._extentMerc,t=i.getExtentMerc());var r=A.northEast.lon-A.southWest.lon,n=A.northEast.lat-A.southWest.lat;return[(t.southWest.lon-A.southWest.lon)/r,(A.northEast.lat-t.northEast.lat)/n,(t.northEast.lon-t.southWest.lon)/r,(t.northEast.lat-t.southWest.lat)/n]}get getFrameWidth(){return this._frameWidth}get getFrameHeight(){return this._frameHeight}}const LA={KEY_CTRL:17,KEY_ALT:18,KEY_SHIFT:16,KEY_SPACE:32,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_PRINTSCREEN:44,KEY_A:65,KEY_C:67,KEY_D:68,KEY_E:69,KEY_F:70,KEY_H:72,KEY_I:73,KEY_K:75,KEY_L:76,KEY_O:79,KEY_P:80,KEY_Q:81,KEY_R:82,KEY_S:83,KEY_V:86,KEY_W:87,KEY_X:88,KEY_Z:90,KEY_F1:112,KEY_APOSTROPHE:192,MB_LEFT:0,MB_RIGHT:2,MB_MIDDLE:1};class _A extends pA{constructor(e){super(e),this.dialog=null,this.baseLayersDiv=null,this.overlaysDiv=null,this._id=_A.numSwitches++}static get numSwitches(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set numSwitches(e){this._counter=e}oninit(){this.planet.events.on("layeradd",this.onLayerAdded,this),this.planet.events.on("layerremove",this.onLayerRemoved,this),this.createSwitcher(),this.createDialog()}onLayerAdded(e){e.displayInLayerSwitcher&&(e.isBaseLayer()?this.addSwitcher("radio",e,this.baseLayersDiv):this.addSwitcher("checkbox",e,this.overlaysDiv,this._id))}onLayerRemoved(e){e._removeCallback(),e._removeCallback=null}addSwitcher(e,A,t,i){var r=document.createElement("div"),n=this,s=document.createElement("div");s.classList.add("ogViewExtentBtn"),s.onclick=function(){n.planet.flyExtent(A.getExtent())};var a=document.createElement("input");a.type=e,a.name="ogBaseLayerRadiosId"+(i||""),a.checked=A.getVisibility(),a.className="ogLayerSwitcherInput",a.onclick=function(){A.setVisibility(this.checked)},A.events&&A.events.on("visibilitychange",(function(e){a.checked=e.getVisibility()}));var o=document.createElement("label");o.className="ogLayerSwitcherLabel",o.innerHTML=(A.name||A.src||"noname")+"</br>",A._removeCallback=function(){t.removeChild(r)},r.appendChild(s),r.appendChild(a),r.appendChild(o),t.appendChild(r)}createBaseLayersContainer(){var e=document.createElement("div");e.className="layersDiv",this.dialog.appendChild(e);var A=document.createElement("div");A.className="layersDiv",A.innerHTML="Base Layer",e.appendChild(A),this.baseLayersDiv=document.createElement("div"),e.appendChild(this.baseLayersDiv)}createOverlaysContainer(){var e=document.createElement("div");e.className="layersDiv",this.dialog.appendChild(e);var A=document.createElement("div");A.className="layersDiv",A.innerHTML="Overlays",e.appendChild(A),this.overlaysDiv=document.createElement("div"),e.appendChild(this.overlaysDiv)}createDialog(){if(this.dialog=document.createElement("div"),this.dialog.id="ogLayerSwitcherDialog",this.dialog.className="displayNone",this.renderer.div.appendChild(this.dialog),this.createBaseLayersContainer(),this.createOverlaysContainer(),this.planet)for(var e=0;e<this.planet.layers.length;e++)this.onLayerAdded(this.planet.layers[e])}createSwitcher(){var e=document.createElement("div");e.className="ogLayerSwitcherButton",e.id="ogLayerSwitcherButtonMaximize";var A=this;e.onclick=function(e){"ogLayerSwitcherButtonMaximize"===this.id?(this.id="ogLayerSwitcherButtonMinimize",A.dialog.className="displayBlock"):(this.id="ogLayerSwitcherButtonMaximize",A.dialog.className="displayNone")},this.renderer.div.appendChild(e)}}class SA{constructor(){this._lock=0}lock(e){this._lock|=1<<e._id}free(e){this._lock&=~(1<<e._id)}isFree(){return 0===this._lock}isLocked(){return 0!==this._lock}}class RA{static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}constructor(){this._id=RA._staticCounter++}}class kA extends pA{constructor(e){super(e),this._name="mouseNavigation",e=e||{},this.grabbedPoint=new le,this._eye0=new le,this.pointOnEarth=new le,this.earthUp=new le,this.inertia=.007,this.grabbedSpheroid=new xA,this.planet=null,this.qRot=new he,this.scaleRot=0,this.distDiff=.3,this.stepsCount=8,this.stepsForward=null,this.stepIndex=0,this._lmbDoubleClickActive=!0,this.minSlope=e.minSlope||.1,this._wheelDirection=1,this._keyLock=new RA}static getMovePointsFromPixelTerrain(e,A,t,i,r,n,s){var a=[],o=e.eye.clone(),h=e._b.clone(),l=e._r.clone(),d=e._u.clone(),c=A.getCartesianFromPixelTerrain(r,!0);if(c||(c=A.getCartesianFromPixelTerrain(A.renderer.handler.getCenter(),!0)),c){s||(s=le.sub(c,e.eye).normalize());var u=c?i*e.eye.distance(c)/t:1e3;u*=n?-1.25:2;var g=h.scaleTo(u);let A=s.dot(e.eye.normal().negate());if(c&&A>=.1){var f=new xA;f.radius=c.length();for(var p=[],m=[],x=!1,v=0;v<t;v++){o.addA(g);var y=new vA(o,s).hitSphere(f);if(m[v]=o.clone(),!y){x=!0;break}p[v]=(new ae).rotateBetweenVectors(c.normal(),y.normal())}if(x){o=e.eye.clone();for(let e=0;e<t;e++)a[e]={},a[e].eye=o.addA(g).clone(),a[e].v=d,a[e].u=l,a[e].n=h}else for(let e=0;e<t;e++){var w=p[e];a[e]={},a[e].eye=w.mulVec3(m[e]),a[e].v=w.mulVec3(d),a[e].u=w.mulVec3(l),a[e].n=w.mulVec3(h)}}else for(let e=0;e<t;e++)a[e]={},a[e].eye=o.addA(s.scaleTo(-u)).clone(),a[e].v=d,a[e].u=l,a[e].n=h;return a}}onactivate(){this.renderer.events.on("mousewheel",this.onMouseWheel,this),this.renderer.events.on("lhold",this.onMouseLeftButtonDown,this),this.renderer.events.on("rhold",this.onMouseRightButtonDown,this),this.renderer.events.on("ldown",this.onMouseLeftButtonClick,this),this.renderer.events.on("lup",this.onMouseLeftButtonUp,this),this.renderer.events.on("rdown",this.onMouseRightButtonClick,this),this.renderer.events.on("draw",this.onDraw,this,-1e3),this.renderer.events.on("mousemove",this.onMouseMove,this),this.renderer.events.on("mouseleave",this.onMouseLeave,this),this.renderer.events.on("mouseenter",this.onMouseEnter,this),this._lmbDoubleClickActive&&this.renderer.events.on("ldblclick",this.onMouseLeftButtonDoubleClick,this)}ondeactivate(){this.renderer.events.off("mousewheel",this.onMouseWheel),this.renderer.events.off("lhold",this.onMouseLeftButtonDown),this.renderer.events.off("rhold",this.onMouseRightButtonDown),this.renderer.events.off("ldown",this.onMouseLeftButtonClick),this.renderer.events.off("lup",this.onMouseLeftButtonUp),this.renderer.events.off("rdown",this.onMouseRightButtonClick),this.renderer.events.off("draw",this.onDraw),this.renderer.events.off("ldblclick",this.onMouseLeftButtonDoubleClick),this.renderer.events.off("mouseleave",this.onMouseLeave),this.renderer.events.off("mouseenter",this.onMouseEnter)}activateDoubleClickZoom(){this._lmbDoubleClickActive||(this._lmbDoubleClickActive=!0,this.renderer.events.on("ldblclick",this.onMouseLeftButtonDoubleClick,this))}deactivateDoubleClickZoom(){this._lmbDoubleClickActive&&(this._lmbDoubleClickActive=!1,this.renderer.events.off("ldblclick",this.onMouseLeftButtonDoubleClick))}onMouseEnter(e){const A=this.renderer.events;A.isKeyPressed(LA.KEY_ALT)&&A.releaseKeys(),A.updateButtonsStates(e.buttons),A.mouseState.leftButtonDown?this.renderer.handler.canvas.classList.add("ogGrabbingPoiner"):this.renderer.handler.canvas.classList.remove("ogGrabbingPoiner")}onMouseLeave(e){this.renderer.events.mouseState.leftButtonDown&&(this.scaleRot=0),this.renderer.handler.canvas.classList.remove("ogGrabbingPoiner")}onMouseWheel(e){if(!this.stepIndex){this.planet.stopFlying(),this.stopRotation(),this._deactivate=!0,this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock);var A=this.renderer.events.mouseState;this.stepsForward=kA.getMovePointsFromPixelTerrain(this.renderer.activeCamera,this.planet,this.stepsCount,this.distDiff,A,e.wheelDelta>0,A.direction),this._wheelDirection=e.wheelDelta,this.stepsForward&&(this.stepIndex=this.stepsCount)}}oninit(){this.activate(),this.renderer.events.on("keyfree",LA.KEY_ALT,this.onShiftFree,this),this.renderer.events.on("keyfree",LA.KEY_PRINTSCREEN,this.onShiftFree,this)}onMouseLeftButtonDoubleClick(){this.planet.stopFlying(),this.stopRotation();var e=this.planet.getCartesianFromPixelTerrain(this.renderer.events.mouseState);if(e){var A=this.planet.ellipsoid.cartesianToLonLat(e);this.renderer.events.isKeyPressed(LA.KEY_ALT)?this.planet.flyLonLat(new F(A.lon,A.lat,2*this.renderer.activeCamera.eye.distance(e))):this.planet.flyLonLat(new F(A.lon,A.lat,.57*this.renderer.activeCamera.eye.distance(e)))}}onMouseLeftButtonClick(){this._active&&(this.renderer.handler.canvas.classList.add("ogGrabbingPoiner"),this.grabbedPoint=this.planet.getCartesianFromMouseTerrain(),this.grabbedPoint&&(this._eye0.copy(this.renderer.activeCamera.eye),this.grabbedSpheroid.radius=this.grabbedPoint.length(),this.stopRotation()))}stopRotation(){this.qRot.clear(),this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock)}onMouseLeftButtonUp(e){this.renderer.handler.canvas.classList.remove("ogGrabbingPoiner"),e.x===e.prev_x&&e.y===e.prev_y&&(this.scaleRot=0)}onMouseLeftButtonDown(e){if(this._active){if(!this.grabbedPoint)return;if(this.planet.stopFlying(),this.renderer.events.mouseState.moving){var A=this.renderer.activeCamera;if(A.slope>.2){var t=new vA(A.eye,e.direction).hitSphere(this.grabbedSpheroid);if(t){this.scaleRot=1,this.qRot=he.getRotationBetweenVectors(t.normal(),this.grabbedPoint.normal());var i=this.qRot;A.eye=i.mulVec3(A.eye),A._u=i.mulVec3(A._u),A._r=i.mulVec3(A._r),A._b=i.mulVec3(A._b),A.checkTerrainCollision(),A.update()}}else{var r=this.grabbedPoint,n=le.add(r,A._r),s=le.add(r,r.normal()),a=new le;new vA(A.eye,e.direction).hitPlane(r,n,s,a)===vA.INSIDE&&(A.eye=this._eye0.addA(a.subA(r).negate()),A.checkTerrainCollision(),A.update())}}}}onMouseRightButtonClick(e){this.stopRotation(),this.planet.stopFlying(),this.pointOnEarth=this.planet.getCartesianFromPixelTerrain(e),this.pointOnEarth&&(this.earthUp=this.pointOnEarth.normal())}onMouseRightButtonDown(e){var A=this.renderer.activeCamera;if(this.pointOnEarth&&this.renderer.events.mouseState.moving){this.renderer.controlsBag.scaleRot=1;var t=.5/A.eye.distance(this.pointOnEarth)*A._lonLat.height*c;t>.007&&(t=.007),A.rotateHorizontal(t*(e.x-e.prev_x),!1,this.pointOnEarth,this.earthUp),A.rotateVertical(t*(e.y-e.prev_y),this.pointOnEarth,this.minSlope),A.checkTerrainCollision(),A.update()}}onShiftFree(){this._shiftBusy=!1}onMouseMove(e){this._active&&this.renderer.events.isKeyPressed(LA.KEY_ALT)&&(this._shiftBusy||(this._shiftBusy=!0,this.onMouseRightButtonClick(e)),this.onMouseRightButtonDown(e))}onDraw(e){if(this._active){var A=this.renderer,t=A.activeCamera,i=t.eye.clone();if(this.stepIndex){A.controlsBag.scaleRot=1;var r=this.stepsForward[this.stepsCount-this.stepIndex--];let e=t.maxAltitude+this.planet.ellipsoid._b,i=t.minAltitude+this.planet.ellipsoid._b;const n=r.eye.length();if(n>e||n<i&&this._wheelDirection>0)return void(this._wheelDirection=1);t.eye=r.eye,t._u=r.v,t._r=r.u,t._b=r.n,t.checkTerrainCollision(),t.update()}else this._deactivate&&(this._deactivate=!1,this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock));if(A.events.mouseState.leftButtonDown||!this.scaleRot)return;if(this.scaleRot-=this.inertia,this.scaleRot<=0)this.scaleRot=0;else{A.controlsBag.scaleRot=this.scaleRot;var n=this.qRot.slerp(he.IDENTITY,1-this.scaleRot*this.scaleRot*this.scaleRot).normalize();n.x||n.y||n.z||(this.scaleRot=0),t.eye=n.mulVec3(t.eye),t._u=n.mulVec3(t._u),t._r=n.mulVec3(t._r),t._b=n.mulVec3(t._b),t.checkTerrainCollision(),t.update()}t.eye.distance(i)/t._terrainAltitude>.01?(this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock)):(this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock))}}}class zA{constructor(){this.x=0,this.y=0,this.prev_x=0,this.prev_y=0,this.grabbedPoint=new le,this.grabbedSpheroid=new xA,this.dX=function(){return this.x-this.prev_x},this.dY=function(){return this.y-this.prev_y}}}class HA extends pA{constructor(e){super(e),this._name="touchNavigation",this.grabbedPoint=new le,this.inertia=.007,this.grabbedSpheroid=new xA,this.planet=null,this.qRot=new he,this.scaleRot=0,this.rot=1,this._eye0=new le,this.stepsCount=5,this.stepsForward=null,this.stepIndex=0,this.pointOnEarth=null,this.earthUp=null,this.touches=[new zA,new zA],this._keyLock=new RA}oninit(){this.renderer.events.on("touchstart",this.onTouchStart,this),this.renderer.events.on("touchend",this.onTouchEnd,this),this.renderer.events.on("doubletouch",this.onDoubleTouch,this),this.renderer.events.on("touchcancel",this.onTouchCancel,this),this.renderer.events.on("touchmove",this.onTouchMove,this),this.renderer.events.on("draw",this.onDraw,this)}onTouchStart(e){if(this._touching=!0,2===e.sys.touches.length){var A=this.touches[0],t=this.touches[1];A.x=e.sys.touches.item(0).clientX-e.sys.offsetLeft,A.y=e.sys.touches.item(0).clientY-e.sys.offsetTop,A.prev_x=e.sys.touches.item(0).clientX-e.sys.offsetLeft,A.prev_y=e.sys.touches.item(0).clientY-e.sys.offsetTop,A.grabbedPoint=this.planet.getCartesianFromPixelTerrain(A,!0),t.x=e.sys.touches.item(1).clientX-e.sys.offsetLeft,t.y=e.sys.touches.item(1).clientY-e.sys.offsetTop,t.prev_x=e.sys.touches.item(1).clientX-e.sys.offsetLeft,t.prev_y=e.sys.touches.item(1).clientY-e.sys.offsetTop,t.grabbedPoint=this.planet.getCartesianFromPixelTerrain(t,!0),this.pointOnEarth=this.planet.getCartesianFromPixelTerrain(this.renderer.handler.getCenter(),!0),this.pointOnEarth&&(this.earthUp=this.pointOnEarth.normal()),A.grabbedPoint&&t.grabbedPoint&&(A.grabbedSpheroid.radius=A.grabbedPoint.length(),t.grabbedSpheroid.radius=t.grabbedPoint.length(),this.stopRotation())}else 1===e.sys.touches.length&&this._startTouchOne(e)}_startTouchOne(e){var A=this.touches[0];A.x=e.sys.touches.item(0).clientX-e.sys.offsetLeft,A.y=e.sys.touches.item(0).clientY-e.sys.offsetTop,A.prev_x=e.sys.touches.item(0).clientX-e.sys.offsetLeft,A.prev_y=e.sys.touches.item(0).clientY-e.sys.offsetTop,A.grabbedPoint=this.planet.getCartesianFromPixelTerrain(A,!0),this._eye0.copy(this.renderer.activeCamera.eye),A.grabbedPoint&&(A.grabbedSpheroid.radius=A.grabbedPoint.length(),this.stopRotation())}stopRotation(){this.qRot.clear(),this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock)}onDoubleTouch(e){if(!this.stepIndex){this.planet.stopFlying(),this.stopRotation();var A=this.planet.getCartesianFromPixelTerrain(this.touches[0],!0);if(A){var t=this.planet.ellipsoid.cartesianToLonLat(A);this.planet.flyLonLat(new F(t.lon,t.lat,.57*this.renderer.activeCamera.eye.distance(A)))}}}onTouchEnd(e){0===e.sys.touches.length&&(this._touching=!1),1===e.sys.touches.length&&this._startTouchOne(e),Math.abs(this.touches[0].x-this.touches[0].prev_x)<3&&Math.abs(this.touches[0].y-this.touches[0].prev_y)<3&&(this.scaleRot=0)}onTouchCancel(e){}onTouchMove(e){var A=this.renderer.activeCamera;if(2===e.sys.touches.length){this.renderer.controlsBag.scaleRot=1;var t=this.touches[0],i=this.touches[1];if(!t.grabbedPoint||!i.grabbedPoint)return;if(this.planet.stopFlying(),t.prev_x=t.x,t.prev_y=t.y,t.x=e.sys.touches.item(0).clientX-e.sys.offsetLeft,t.y=e.sys.touches.item(0).clientY-e.sys.offsetTop,i.prev_x=i.x,i.prev_y=i.y,i.x=e.sys.touches.item(1).clientX-e.sys.offsetLeft,i.y=e.sys.touches.item(1).clientY-e.sys.offsetTop,t.dY()>0&&i.dY()>0||t.dY()<0&&i.dY()<0||t.dX()>0&&i.dX()>0||t.dX()<0&&i.dX()<0){var r=.5/A.eye.distance(this.pointOnEarth)*A._lonLat.height*c;r>.007&&(r=.007),A.rotateHorizontal(r*t.dX(),!1,this.pointOnEarth,this.earthUp),A.rotateVertical(r*t.dY(),this.pointOnEarth,!0),A.checkTerrainCollision(),A.update()}this.scaleRot=0}else if(1===e.sys.touches.length){var n=this.touches[0];if(n.prev_x=n.x,n.prev_y=n.y,n.x=e.sys.touches.item(0).clientX-e.sys.offsetLeft,n.y=e.sys.touches.item(0).clientY-e.sys.offsetTop,!n.grabbedPoint)return;this.planet.stopFlying();var s=A.unproject(n.x,n.y),a=new vA(A.eye,s).hitSphere(n.grabbedSpheroid);if(a)if(A.slope>.2){this.qRot=he.getRotationBetweenVectors(a.normal(),n.grabbedPoint.normal());var o=this.qRot;A.eye=o.mulVec3(A.eye),A._v=o.mulVec3(A._v),A._u=o.mulVec3(A._u),A._n=o.mulVec3(A._n),A.checkTerrainCollision(),A.update(),this.scaleRot=1}else{var h=n.grabbedPoint,l=le.add(h,A._u),d=le.add(h,h.normal()),u=A.unproject(n.x,n.y),g=new le;new vA(A.eye,u).hitPlane(h,l,d,g)===vA.INSIDE&&(A.eye=this._eye0.addA(g.subA(h).negate()),A.checkTerrainCollision(),A.update(),this.scaleRot=0)}}}onDraw(e){if(this.renderer.controlsBag.scaleRot=this.scaleRot,!this._touching){var A=this.renderer,t=A.activeCamera,i=t.eye.clone();if(this.stepIndex){A.controlsBag.scaleRot=1;var r=this.stepsForward[this.stepsCount-this.stepIndex--];t.eye=r.eye,t._v=r.v,t._u=r.u,t._n=r.n,t.checkTerrainCollision(),t.update()}if(!A.events.mouseState.leftButtonDown&&this.scaleRot){if(this.scaleRot-=this.inertia,this.scaleRot<=0)this.scaleRot=0;else{A.controlsBag.scaleRot=this.scaleRot;var n=this.qRot.slerp(he.IDENTITY,1-this.scaleRot*this.scaleRot*this.scaleRot).normalize();n.x||n.y||n.z||(this.scaleRot=0),t.eye=n.mulVec3(t.eye),t._v=n.mulVec3(t._v),t._u=n.mulVec3(t._u),t._n=n.mulVec3(t._n),t.checkTerrainCollision(),t.update()}t.eye.distance(i)/t._terrainAltitude>.01?(this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock)):(this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock))}}}}const FA=14959787e4;function OA(e){var A=e-rA,t=282.9404+470935e-10*A,i=.016709-1.151e-9*A,r=L(356.047+.9856002585*A),s=23.4392911-3.563e-7*A,a=r+u*i*Math.sin(r*c)*(1+i*Math.cos(r*c)),o=Math.cos(a*c)-i,h=Math.sin(a*c)*Math.sqrt(1-i*i),l=Math.sqrt(o*o+h*h),d=L(Math.atan2(h,o)*u+t),g=o=l*Math.cos(d*c),f=(h=l*Math.sin(d*c))*Math.cos(s*c),p=h*Math.sin(s*c),m=n*(24*A/23.9344694-259.853/360);return he.yRotation(-m).mulVec3(new le(-f*FA,p*FA,-g*FA))}class QA{static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}constructor(e,A){A=A||{},this._name=e||"light_"+QA._staticCounter++,this._renderNode=null,this._position=A.position||new le,this.directional=null==A.derectional||A.derectional,this._ambient=A.ambient||new le,this._diffuse=A.diffuse||new le(.8,.8,.8),this._specular=A.specular||new le(.18,.18,.18),this._shininess=null!=A.shininess?A.shininess:3.3,this._active=!0,this._tempAmbient=this._ambient.clone(),this._tempDiffuse=this._diffuse.clone(),this._tempSpecular=this._specular.clone(),this._tempShininess=this._shininess}clone(){}setActive(e){if(e&&!this._active){var A=this._renderNode;if(A){var t=A._lightsNames.indexOf(this._name);this._shininess=A._lightsParamsf[t]=this._tempShininess,-1!=t&&(t*=9,this._ambient.x=A._lightsParamsv[t]=this._tempAmbient.x,this._ambient.y=A._lightsParamsv[t+1]=this._tempAmbient.y,this._ambient.z=A._lightsParamsv[t+2]=this._tempAmbient.z,this._diffuse.x=A._lightsParamsv[t+3]=this._tempDiffuse.x,this._diffuse.y=A._lightsParamsv[t+4]=this._tempDiffuse.y,this._diffuse.z=A._lightsParamsv[t+5]=this._tempDiffuse.z,this._specular.x=A._lightsParamsv[t+6]=this._tempSpecular.x,this._specular.y=A._lightsParamsv[t+7]=this._tempSpecular.y,this._specular.z=A._lightsParamsv[t+8]=this._tempSpecular.z)}this._active=!0}else!e&&this._active&&(this._tempAmbient=this._ambient.clone(),this._tempDiffuse=this._diffuse.clone(),this._tempSpecular=this._specular.clone(),this._tempShininess=this._shininess,this.setBlack(),this._active=!1)}isActive(){return this._active}setPosition3v(e){return this._position.x=e.x,this._position.y=e.y,this._position.z=e.z,this}setPosition(e,A,t){return this._position.x=e,this._position.y=A,this._position.z=t,this}getPosition(){return this._position.clone()}setAmbient3v(e){return this.setAmbient(e.x,e.y,e.z)}setDiffuse3v(e){return this.setDiffuse(e.x,e.y,e.z)}setSpecular3v(e){return this.setSpecular(e.x,e.y,e.z)}setAmbient(e,A,t){this._ambient.set(e,A,t);var i=this._renderNode;if(i){var r=9*i._lightsNames.indexOf(this._name);-1!=r&&(i._lightsParamsv[r]=e,i._lightsParamsv[r+1]=A,i._lightsParamsv[r+2]=t)}return this}setDiffuse(e,A,t){this._diffuse.set(e,A,t);var i=this._renderNode;if(i){var r=9*i._lightsNames.indexOf(this._name);-1!=r&&(i._lightsParamsv[r+3]=e,i._lightsParamsv[r+4]=A,i._lightsParamsv[r+5]=t)}return this}setSpecular(e,A,t){this._specular.set(e,A,t);var i=this._renderNode;if(i){var r=9*i._lightsNames.indexOf(this._name);-1!=r&&(i._lightsParamsv[r+6]=e,i._lightsParamsv[r+7]=A,i._lightsParamsv[r+8]=t)}return this}setShininess(e){this._shininess=e;var A=this._renderNode;if(A){var t=A._lightsNames.indexOf(this._name);-1!=t&&(A._lightsParamsf[t]=e)}return this}setBlack(){this._ambient.clear(),this._diffuse.clear(),this._specular.clear(),this._shininess=0;var e=this._renderNode;if(e){var A=9*e._lightsNames.indexOf(this._name);-1!=A&&(e._lightsParamsv[A]=e._lightsParamsv[A+1]=e._lightsParamsv[A+2]=e._lightsParamsv[A+3]=e._lightsParamsv[A+4]=e._lightsParamsv[A+5]=e._lightsParamsv[A+6]=e._lightsParamsv[A+7]=e._lightsParamsv[A+8]=0)}return this}addTo(e){return this._renderNode=e,e._lights.push(this),e._lightsNames.push(this._name),e._lightsParamsf.push(this._shininess),e._lightsParamsv.push.apply(e._lightsParamsv,this._ambient.toVec()),e._lightsParamsv.push.apply(e._lightsParamsv,this._diffuse.toVec()),e._lightsParamsv.push.apply(e._lightsParamsv,this._specular.toVec()),this}remove(){var e=this.renderNode;if(e){var A=e.getLightById(this._name);-1!=A&&(e._lights.splice(A,1),e._lightsNames.splice(A,1),e._lightsParamsf.splice(A,1),e._lightsParamsv.splice(A,9))}this._renderNode=null}}class NA extends pA{constructor(e){super(e),this._name="sun",e=e||{},this.planet=null,this.offsetVertical=e.offsetVertical||-5e6,this.offsetHorizontal=e.offsetHorizontal||5e6,this.sunlight=null,this._currDate=0,this._prevDate=0,this._clockPtr=null,this._lightOn=!1,this._stopped=e.stopped||!1}oninit(){this.planet.lightEnabled=!0,this.sunlight=new QA("Sun",{ambient:new le(.15,.15,.25),diffuse:new le(.9,.9,.8),specular:new le(.1,.1,.06),shininess:110}),this.sunlight.addTo(this.planet),this.renderer.events.on("draw",this._draw,this),this._clockPtr||(this._clockPtr=this.renderer.handler.defaultClock)}stop(){this._stopped=!0}onactivate(){this._stopped=!1}bindClock(e){this._clockPtr=e}_draw(){if(this._currDate=this._clockPtr.currentDate,this._stopped)this.sunlight.setPosition3v(OA(this._currDate));else{var e=this.renderer.activeCamera;if(e.getHeight()<12079e3||!this._active){this._lightOn=!0,this._f=1;var A=e.eye.normal(),t=e.getForward();t.scale(Math.sign(e._u.dot(A))),e.slope>.99&&(t=e._u);var i=le.proj_b_to_plane(t,A,t).normalize().scale(this.offsetVertical),r=le.proj_b_to_plane(e._r,A,e._r).normalize().scale(this.offsetHorizontal),n=i.add(r),s=e.eye.add(n);if(this._k>0){this._k-=.01;let e=he.getRotationBetweenVectors(this.sunlight._position.normal(),s.normal()).slerp(he.IDENTITY,this._k).normalize();this.sunlight.setPosition3v(e.mulVec3(this.sunlight._position))}else this.sunlight.setPosition3v(s)}else if(this._k=1,this._f>0){this._f-=.01;let e=he.getRotationBetweenVectors(this.sunlight._position.normal(),OA(this._currDate).normal()).slerp(he.IDENTITY,this._f).normalize();this.sunlight.setPosition3v(e.mulVec3(this.sunlight._position))}else(Math.abs(this._currDate-this._prevDate)>34e-5&&this._active||this._lightOn)&&(this._lightOn=!1,this._prevDate=this._currDate,this.sunlight.setPosition3v(OA(this._currDate)),this._f=0)}}}class UA extends pA{constructor(e){super(e),e=e||{},this._keyLock=new RA,this.planet=null,this._move=0}oninit(){var e=document.createElement("div"),A=document.createElement("button"),t=document.createElement("button");e.className="ogZoomControl",A.className="ogZoomButton ogZoomIn",t.className="ogZoomButton ogZoomOut",e.appendChild(A),e.appendChild(t),this.renderer.div.appendChild(e),A.addEventListener("mousedown",(e=>this.zoomIn())),A.addEventListener("mouseup",(e=>this.stopZoom())),t.addEventListener("mousedown",(e=>this.zoomOut())),t.addEventListener("mouseup",(e=>this.stopZoom())),A.addEventListener("touchstart",(e=>{e.preventDefault(),this.zoomIn()})),A.addEventListener("touchend",(e=>{e.preventDefault(),this.stopZoom()})),A.addEventListener("touchcancel",(e=>{e.preventDefault(),this.stopZoom()})),t.addEventListener("touchstart",(e=>{e.preventDefault(),this.zoomOut()})),t.addEventListener("touchend",(e=>{e.preventDefault(),this.stopZoom()})),t.addEventListener("touchcancel",(e=>{e.preventDefault(),this.stopZoom()})),this.renderer.events.on("draw",this._draw,this)}zoomIn(){this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock),this._targetPoint=this.renderer.getCenter(),this._move=1}zoomOut(){this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock),this._targetPoint=this.renderer.getCenter(),this._move=-1}stopZoom(){this._move=0,this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock)}_draw(e){var A=this.renderer.activeCamera;if(0!==this._move){var t=.075*A.eye.distance(this.planet.getCartesianFromPixelTerrain(this._targetPoint,!0));A.eye.addA(A.getForward().scale(this._move*t)),A.checkTerrainCollision(),A.update()}}}var GA=Object.freeze({__proto__:null,Control:pA,CompassButton:mA,DebugInfo:class extends pA{constructor(e){(e=e||{}).name&&""!==e.name||(e.name="DebugInfo"),super(e),this.el=null,this._watch=e.watch||[]}addWatches(e){for(var A=0;A<e.length;A++)this.addWatch(e[A])}addWatch(e){this._watch.push(e);let A=document.createElement("div");A.classList.add("og-watch-line"),A.innerHTML='<div class="og-watch-label">'+e.label+'</div><div class="og-watch-value"></div>',e.valEl=A.querySelector(".og-watch-value"),this.el.appendChild(A)}oninit(){this.el=document.createElement("div"),this.el.className="og-debug-info";var e=this._watch;this._watch=[];for(var A=0;A<e.length;A++)this.addWatch(e[A]);this.renderer.div.appendChild(this.el),this.renderer.events.on("draw",this._frame,this);let t=this.planet;t&&this.addWatches([{label:"Nodes count",frame:()=>t._renderedNodes.length},{label:"createdNodes",frame:()=>t._createdNodesCount},{label:"indexesCache",frame:()=>t._indexesCacheToRemoveCounter},{label:"distBeforeMemClear",frame:()=>Math.round(t._distBeforeMemClear)},{label:"maxZoom/minZoom",frame:()=>t.maxCurrZoom+" / "+t.minCurrZoom},{label:"height/alt (km)",frame:()=>`<div style="width:190px">${(t.camera._lonLat.height/1e3).toFixed(2)+" / "+(t.camera.getAltitude()/1e3).toFixed(2)}</div>`},{label:"cam.slope",frame:()=>t.camera.slope.toFixed(3)},{label:"lodSize",frame:()=>Math.round(t.lodSize)},{label:"deltaTime/FPS",frame:()=>`<div style="width:70px"><div style="width:20px; float: left;">${Math.round(t.renderer.handler.deltaTime)}</div> <div style="float: left">${Math.round(1e3/t.renderer.handler.deltaTime)}</div></div>`},{label:"-------------------------"},{label:"PlainWorker",frame:()=>t._plainSegmentWorker._pendingQueue.length},{label:"TileLoader",frame:()=>t._tileLoader._loading+" "+t._tileLoader._queue.length},{label:"TerrainLoader",frame:()=>t.terrain&&t.terrain._loader?t.terrain._loader._loading+" "+t.terrain._loader._queue.length:""},{label:"TerrainWorker",frame:()=>t._terrainWorker._pendingQueue.length},{label:"NormalMapCreator",frame:()=>t._normalMapCreator._queue.length}])}_frame(){for(var e=0;e<this._watch.length;e++){var A=this._watch[e];A.valEl.innerHTML=A.frame?A.frame():""}}},EarthNavigation:wA,EarthCoordinates:TA,GeoImageDragControl:class extends pA{constructor(e){super(e),e=e||{},this._cornerIndex=-1,this._catchCorner=!1}oninit(){let e=this.planet;e.events.on("layeradd",(function(e){this._bindLayer(e)}),this);for(let A=0;A<e.layers.length;A++)e.layers[A]instanceof DA&&this._bindLayer(e.layers[A])}_bindLayer(e){if(e instanceof DA){var A=this.planet;e.events.on("mousemove",(function(t){if(this._active)if(this._catchCorner){var i=e.getCornersLonLat();i[this._cornerIndex]=A.getLonLatFromPixelTerrain(t,!0),e.setCornersLonLat(i)}else{this._cornerIndex=-1;for(var r=0;r<e._cornersWgs84.length;r++){var n=A.getLonLatFromPixelTerrain(t,!0);if(n&&A.ellipsoid.getGreatCircleDistance(e._cornersWgs84[r],n)/A.getDistanceFromPixel(t,!0)<=.05){this._cornerIndex=r;break}}}}),this),e.events.on("ldown",(function(e){this._active&&-1!=this._cornerIndex&&(this._catchCorner=!0,e.renderer.controls.mouseNavigation.deactivate())}),this),e.events.on("lup",(function(e){this._active&&(this._catchCorner=!1,e.renderer.controls.mouseNavigation.activate())}),this)}}},KeyboardNavigation:class extends pA{constructor(e){super(e=e||{}),this.step=e.step||250}oninit(){this.renderer.events.on("keypress",LA.KEY_W,this.onCameraMoveForward,this),this.renderer.events.on("keypress",LA.KEY_S,this.onCameraMoveBackward,this),this.renderer.events.on("keypress",LA.KEY_A,this.onCameraStrifeLeft,this),this.renderer.events.on("keypress",LA.KEY_D,this.onCameraStrifeRight,this),this.renderer.events.on("keypress",LA.KEY_UP,this.onCameraLookUp,this),this.renderer.events.on("keypress",LA.KEY_DOWN,this.onCameraLookDown,this),this.renderer.events.on("keypress",LA.KEY_LEFT,this.onCameraTurnLeft,this),this.renderer.events.on("keypress",LA.KEY_RIGHT,this.onCameraTurnRight,this),this.renderer.events.on("keypress",LA.KEY_Q,this.onCameraRollLeft,this),this.renderer.events.on("keypress",LA.KEY_E,this.onCameraRollRight,this)}onCameraMoveForward(e){var A=this.renderer.activeCamera;A.slide(0,0,-A._lonLat.height/this.step),A.checkTerrainCollision(),A.update()}onCameraMoveBackward(e){var A=this.renderer.activeCamera;A.slide(0,0,A._lonLat.height/this.step),A.checkTerrainCollision(),A.update()}onCameraStrifeLeft(e){var A=this.renderer.activeCamera;A.slide(-A._lonLat.height/this.step,0,0),A.checkTerrainCollision(),A.update()}onCameraStrifeRight(e){var A=this.renderer.activeCamera;A.slide(A._lonLat.height/this.step,0,0),A.checkTerrainCollision(),A.update()}onCameraLookUp(e){var A=this.renderer.activeCamera;this.renderer.events.isKeyPressed(LA.KEY_SHIFT)?A.pitch(15/this.renderer.handler.deltaTime):A.rotateVertical(A._lonLat.height/3e6*c,le.ZERO),A.update()}onCameraLookDown(e){var A=this.renderer.activeCamera;this.renderer.events.isKeyPressed(LA.KEY_SHIFT)?A.pitch(-15/this.renderer.handler.deltaTime):A.rotateVertical(-A._lonLat.height/3e6*c,le.ZERO),A.update()}onCameraTurnLeft(e){var A=this.renderer.activeCamera;this.renderer.events.isKeyPressed(LA.KEY_SHIFT)?A.yaw(15/this.renderer.handler.deltaTime):A.rotateHorizontal(A._lonLat.height/3e6*c,!1,le.ZERO),A.update()}onCameraTurnRight(e){var A=this.renderer.activeCamera;this.renderer.events.isKeyPressed(LA.KEY_SHIFT)?A.yaw(-15/this.renderer.handler.deltaTime):A.rotateHorizontal(-A._lonLat.height/3e6*c,!1,le.ZERO),A.update()}onCameraRollLeft(e){this.renderer.activeCamera.roll(-15/this.renderer.handler.deltaTime),this.renderer.activeCamera.update()}onCameraRollRight(e){this.renderer.activeCamera.roll(15/this.renderer.handler.deltaTime),this.renderer.activeCamera.update()}},LayerSwitcher:_A,MouseNavigation:kA,ToggleWireframe:class extends pA{constructor(e={}){super(e),this._isActive=e.isActive||!1}oninit(){this.renderer.events.on("charkeypress",LA.KEY_X,this.toogleWireframe,this),this._isActive&&this.planet.setDrawMode(this.renderer.handler.gl.LINE_STRIP)}toogleWireframe(e){this.planet.drawMode===this.renderer.handler.gl.LINE_STRIP?this.planet.setDrawMode(this.renderer.handler.gl.TRIANGLE_STRIP):this.planet.setDrawMode(this.renderer.handler.gl.LINE_STRIP)}},TouchNavigation:HA,SimpleNavigation:class extends pA{constructor(e){super(e=e||{}),this.camera=null,this.speed=e.speed||1}onactivate(){}ondeactivate(){}oninit(){this.camera=this.renderer.activeCamera,this.renderer.events.on("keypress",LA.KEY_W,this.onCameraMoveForward,this),this.renderer.events.on("keypress",LA.KEY_S,this.onCameraMoveBackward,this),this.renderer.events.on("keypress",LA.KEY_A,this.onCameraStrifeLeft,this),this.renderer.events.on("keypress",LA.KEY_D,this.onCameraStrifeRight,this),this.renderer.events.on("keypress",LA.KEY_UP,this.onCameraLookUp,this),this.renderer.events.on("keypress",LA.KEY_DOWN,this.onCameraLookDown,this),this.renderer.events.on("keypress",LA.KEY_LEFT,this.onCameraTurnLeft,this),this.renderer.events.on("keypress",LA.KEY_RIGHT,this.onCameraTurnRight,this),this.renderer.events.on("keypress",LA.KEY_Q,this.onCameraRollLeft,this),this.renderer.events.on("keypress",LA.KEY_E,this.onCameraRollRight,this)}onCameraMoveForward(){if(this._active){var e=this.camera;e.slide(0,0,-this.speed),e.update()}}onCameraMoveBackward(){if(this._active){var e=this.camera;e.slide(0,0,this.speed),e.update()}}onCameraStrifeLeft(){if(this._active){var e=this.camera;e.slide(-this.speed,0,0),e.update()}}onCameraStrifeRight(){if(this._active){var e=this.camera;e.slide(this.speed,0,0),e.update()}}onCameraLookUp(){if(this._active){var e=this.camera;e.pitch(.5),e.update()}}onCameraLookDown(){if(this._active){var e=this.camera;e.pitch(-.5),e.update()}}onCameraTurnLeft(){if(this._active){var e=this.camera;e.yaw(.5),e.update()}}onCameraTurnRight(){if(this._active){var e=this.camera;e.yaw(-.5),e.update()}}onCameraRollLeft(){if(this._active){var e=this.camera;e.roll(-.5),e.update()}}onCameraRollRight(){if(this._active){var e=this.camera;e.roll(.5),e.update()}}},ShowFps:class extends pA{constructor(e){super(e)}oninit(){var e=document.createElement("div");e.className="defaultText ",e.id="ogShowFpsControl",document.body.appendChild(e),this.renderer.events.on("draw",this._draw,this)}_draw(){Ce("ogShowFpsControl",(1e3/this.renderer.handler.deltaTime).toFixed(1),this.renderer.handler.canvas.clientWidth-60,0)}},Sun:NA,ZoomControl:UA,MouseWheelZoomControl:class extends pA{constructor(e){super(e),this._name="MouseWheelZoomControl",e=e||{},this.grabbedPoint=new le,this._eye0=new le,this.pointOnEarth=new le,this.earthUp=new le,this.inertia=.007,this.grabbedSpheroid=new xA,this.planet=null,this.qRot=new he,this.scaleRot=0,this.distDiff=.3,this.stepsCount=8,this.stepsForward=null,this.stepIndex=0,this._lmbDoubleClickActive=!0,this.minSlope=e.minSlope||.1,this._keyLock=new RA}oninit(){var e=document.createElement("div"),A=document.createElement("button"),t=document.createElement("button");e.className="ogZoomControl",A.className="ogZoomButton ogZoomIn",t.className="ogZoomButton ogZoomOut",e.appendChild(A),e.appendChild(t),this.renderer.div.appendChild(e),A.addEventListener("mousedown",(e=>this.zoomIn())),A.addEventListener("mouseup",(e=>this.stopZoom())),t.addEventListener("mousedown",(e=>this.zoomOut())),t.addEventListener("mouseup",(e=>this.stopZoom())),A.addEventListener("touchstart",(e=>{e.preventDefault(),this.zoomIn()})),A.addEventListener("touchend",(e=>{e.preventDefault(),this.stopZoom()})),A.addEventListener("touchcancel",(e=>{e.preventDefault(),this.stopZoom()})),t.addEventListener("touchstart",(e=>{e.preventDefault(),this.zoomOut()})),t.addEventListener("touchend",(e=>{e.preventDefault(),this.stopZoom()})),t.addEventListener("touchcancel",(e=>{e.preventDefault(),this.stopZoom()})),this.renderer.events.on("draw",this._draw,this)}zoomIn(){this.stepIndex||(this.planet.stopFlying(),this.stopRotation(),this._deactivate=!0,this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock),this.stepsForward=kA.getMovePointsFromPixelTerrain(this.renderer.activeCamera,this.planet,this.stepsCount,this.distDiff,this.renderer.getCenter(),!0,null),this.stepsForward&&(this.stepIndex=this.stepsCount))}zoomOut(){this.stepIndex||(this.planet.stopFlying(),this.stopRotation(),this._deactivate=!0,this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock),this.stepsForward=kA.getMovePointsFromPixelTerrain(this.renderer.activeCamera,this.planet,this.stepsCount,this.distDiff,this.renderer.getCenter(),!1,null),this.stepsForward&&(this.stepIndex=this.stepsCount))}stopRotation(){this.qRot.clear(),this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock)}stopZoom(){this._move=0,this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock)}_draw(e){if(this._active){var A=this.renderer,t=A.activeCamera,i=t.eye.clone();if(this.stepIndex){A.controlsBag.scaleRot=1;var r=this.stepsForward[this.stepsCount-this.stepIndex--];let e=t.maxAltitude+this.planet.ellipsoid._a,i=t.minAltitude+this.planet.ellipsoid._a;const n=r.eye.length();if(n>e||n<i)return;t.eye=r.eye,t._u=r.v,t._r=r.u,t._b=r.n,t.checkTerrainCollision(),t.update()}else this._deactivate&&(this._deactivate=!1,this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock));if(A.events.mouseState.leftButtonDown||!this.scaleRot)return;if(this.scaleRot-=this.inertia,this.scaleRot<=0)this.scaleRot=0;else{A.controlsBag.scaleRot=this.scaleRot;var n=this.qRot.slerp(he.IDENTITY,1-this.scaleRot*this.scaleRot*this.scaleRot).normalize();n.x||n.y||n.z||(this.scaleRot=0),t.eye=n.mulVec3(t.eye),t._u=n.mulVec3(t._u),t._r=n.mulVec3(t._r),t._b=n.mulVec3(t._b),t.checkTerrainCollision(),t.update()}t.eye.distance(i)/t._terrainAltitude>.01?(this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock)):(this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock))}}},Lighting:class extends pA{constructor(e={}){super(e),this._selectedLayer=null}bindLayer(e){this._selectedLayer=e,document.getElementById("opacity").value=e.opacity,document.querySelector(".og-value.opacity").innerHTML=e.opacity.toString()}oninit(){var e=we('<div class="og-lighing">\n\n <div class="og-screen-options">\n\n <div class="og-option">\n <div class="og-caption">Lighting enabled<input type="checkbox" id="lighting" name="light"/></div>\n </div>\n\n <div class="og-option">\n <div class="og-caption">Gamma</div>\n <div class="og-slider">\n <input type="range" id="gamma" name="gamma" value="0.0" min="0.0" max="5.0" step="0.01" />\n </div>\n <div class="og-value gamma"></div>\n </div>\n <div class="og-option">\n <div class="og-caption">Exposure</div>\n <div class="og-slider">\n <input type="range" id="exposure" name="exposure" value="0.0" min="0.0" max="12.0" step="0.01" />\n </div>\n <div class="og-value exposure"></div>\n </div>\n </div> \n \n <div class="og-color-options">\n <div class="og-caption">Ambient</div>\n <div class="og-option">\n <div class="og-label">R</div>\n <div class="og-slider">\n <input type="range" id="ambient-r" name="ambient-r" value="0.0" min="0.0" max="2.0" step="0.01" />\n </div>\n <div class="og-value ambient-r"></div>\n </div>\n <div class="og-option">\n <div class="og-label">G</div>\n <div class="og-slider">\n <input type="range" id="ambient-g" name="ambient-g" value="0.0" min="0.0" max="2.0" step="0.01" />\n </div>\n <div class="og-value ambient-g"></div>\n </div>\n <div class="og-option">\n <div class="og-label">B</div>\n <div class="og-slider">\n <input type="range" id="ambient-b" name="ambient-b" value="0.0" min="0.0" max="2.0" step="0.01" />\n </div>\n <div class="og-value ambient-b"></div>\n </div>\n\n <div class="og-caption">Diffuse</div>\n <div class="og-option">\n <div class="og-label">R</div>\n <div class="og-slider">\n <input type="range" id="diffuse-r" name="diffuse-r" value="0.0" min="0.0" max="2.0" step="0.01" />\n </div>\n <div class="og-value diffuse-r"></div>\n </div>\n <div class="og-option">\n <div class="og-label">G</div>\n <div class="og-slider">\n <input type="range" id="diffuse-g" name="diffuse-g" value="0.0" min="0.0" max="2.0" step="0.01" />\n </div>\n <div class="og-value diffuse-g"></div>\n </div>\n <div class="og-option">\n <div class="og-label">B</div>\n <div class="og-slider">\n <input type="range" id="diffuse-b" name="diffuse-b" value="0.0" min="0.0" max="2.0" step="0.01" />\n </div>\n <div class="og-value diffuse-b"></div>\n </div>\n\n\n <div class="og-caption">Specular</div>\n <div class="og-option">\n <div class="og-label">R</div>\n <div class="og-slider">\n <input type="range" id="specular-r" name="specular-r" value="0.0" min="0.0" max="1.0" step="0.0001" />\n </div>\n <div class="og-value specular-r"></div>\n </div>\n <div class="og-option">\n <div class="og-label">G</div>\n <div class="og-slider">\n <input type="range" id="specular-g" name="specular-g" value="0.0" min="0.0" max="1.0" step="0.0001" />\n </div>\n <div class="og-value specular-g"></div>\n </div>\n <div class="og-option">\n <div class="og-label">B</div>\n <div class="og-slider">\n <input type="range" id="specular-b" name="specular-b" value="0.0" min="0.0" max="1.0" step="0.0001" />\n </div>\n <div class="og-value specular-b"></div>\n </div>\n\n <div class="og-caption">Shininess</div>\n <div class="og-option" style="margin-left: 8px;">\n <div class="og-slider">\n <input type="range" id="shininess" name="shininess" value="0.0" min="0.0" max="1000.0" step="0.1" />\n </div>\n <div class="og-value shininess"></div>\n </div>\n </div>\n\n <div class="og-layers">\n <div class="og-caption">Select layer:</div>\n <select id="layers"></select>\n </div>\n\n <div class="og-caption">Opacity</div>\n <div class="og-option">\n <div class="og-label">A</div>\n <div class="og-slider">\n <input type="range" id="opacity" name="opacity" value="0.0" min="0.0" max="2.0" step="0.01" />\n </div>\n <div class="og-value opacity"></div>\n </div>\n\n </div>');document.body.appendChild(e[0]);var A=this;document.getElementById("lighting").checked=this.planet.lightEnabled,document.getElementById("lighting").addEventListener("change",(e=>{A.planet.lightEnabled=e.target.checked})),document.getElementById("layers").addEventListener("change",(e=>{this.bindLayer(A.planet.getLayerByName(e.target.value))})),document.getElementById("gamma").addEventListener("input",(function(e){A.planet.renderer.gamma=Number(this.value),document.querySelector(".og-value.gamma").innerHTML=this.value})),document.getElementById("exposure").addEventListener("input",(function(e){A.planet.renderer.exposure=Number(this.value),document.querySelector(".og-value.exposure").innerHTML=this.value})),document.querySelector(".og-value.gamma").innerHTML=this.planet.renderer.gamma.toString(),document.querySelector(".og-value.exposure").innerHTML=this.planet.renderer.exposure.toString(),document.getElementById("gamma").value=this.planet.renderer.gamma,document.getElementById("exposure").value=this.planet.renderer.exposure,document.getElementById("opacity").addEventListener("input",(function(e){A._selectedLayer&&(A._selectedLayer.opacity=Number(this.value)),document.querySelector(".og-value.opacity").innerHTML=this.value})),document.getElementById("ambient-r").addEventListener("input",(function(e){A.planet._ambient[0]=Number(this.value),document.querySelector(".og-value.ambient-r").innerHTML=this.value})),document.getElementById("ambient-g").addEventListener("input",(function(e){A.planet._ambient[1]=Number(this.value),document.querySelector(".og-value.ambient-g").innerHTML=this.value})),document.getElementById("ambient-b").addEventListener("input",(function(e){A.planet._ambient[2]=Number(this.value),document.querySelector(".og-value.ambient-b").innerHTML=this.value})),document.getElementById("diffuse-r").addEventListener("input",(function(e){A.planet._diffuse[0]=Number(this.value),document.querySelector(".og-value.diffuse-r").innerHTML=this.value})),document.getElementById("diffuse-g").addEventListener("input",(function(e){A.planet._diffuse[1]=Number(this.value),document.querySelector(".og-value.diffuse-g").innerHTML=this.value})),document.getElementById("diffuse-b").addEventListener("input",(function(e){A.planet._diffuse[2]=Number(this.value),document.querySelector(".og-value.diffuse-b").innerHTML=this.value})),document.getElementById("specular-r").addEventListener("input",(function(e){A.planet._specular[0]=Number(this.value),document.querySelector(".og-value.specular-r").innerHTML=this.value})),document.getElementById("specular-g").addEventListener("input",(function(e){A.planet._specular[1]=Number(this.value),document.querySelector(".og-value.specular-g").innerHTML=this.value})),document.getElementById("specular-b").addEventListener("input",(function(e){A.planet._specular[2]=Number(this.value),document.querySelector(".og-value.specular-b").innerHTML=this.value})),document.getElementById("shininess").addEventListener("input",(function(e){A.planet._specular[3]=Number(this.value),document.querySelector(".og-value.shininess").innerHTML=this.value})),this.planet&&(this.planet.events.on("layeradd",this._onLayerAdd,this),this.planet.events.on("layerremove",this._onLayerRemove,this),document.getElementById("ambient-r").value=this.planet._ambient[0],document.getElementById("ambient-g").value=this.planet._ambient[1],document.getElementById("ambient-b").value=this.planet._ambient[2],document.getElementById("diffuse-r").value=this.planet._diffuse[0],document.getElementById("diffuse-g").value=this.planet._diffuse[1],document.getElementById("diffuse-b").value=this.planet._diffuse[2],document.getElementById("specular-r").value=this.planet._specular[0],document.getElementById("specular-g").value=this.planet._specular[1],document.getElementById("specular-b").value=this.planet._specular[2],document.getElementById("shininess").value=this.planet._specular[3],document.querySelector(".og-value.ambient-r").innerHTML=this.planet._ambient[0].toString(),document.querySelector(".og-value.ambient-g").innerHTML=this.planet._ambient[1].toString(),document.querySelector(".og-value.ambient-b").innerHTML=this.planet._ambient[2].toString(),document.querySelector(".og-value.diffuse-r").innerHTML=this.planet._diffuse[0].toString(),document.querySelector(".og-value.diffuse-g").innerHTML=this.planet._diffuse[1].toString(),document.querySelector(".og-value.diffuse-b").innerHTML=this.planet._diffuse[2].toString(),document.querySelector(".og-value.specular-r").innerHTML=this.planet._specular[0].toString(),document.querySelector(".og-value.specular-g").innerHTML=this.planet._specular[1].toString(),document.querySelector(".og-value.specular-b").innerHTML=this.planet._specular[2].toString(),document.querySelector(".og-value.shininess").innerHTML=this.planet._specular[3].toString()),this._fetchLayers()}_fetchLayers(){if(this.planet)for(var e=0;e<this.planet.layers.length;e++)this._onLayerAdd(this.planet.layers[e])}_onLayerAdd(e){this.bindLayer(e);let A=document.createElement("option");A.value=e.name,A.innerHTML=e.name,document.getElementById("layers").appendChild(A),document.getElementById("layers").value=e.name}_onLayerRemove(e){}}});const YA=[2,3,0,1],VA=[[-1,-1,0,1],[1,-1,3,-1],[2,3,-1,-1],[-1,0,-1,2]],KA=[[2,3,0,1],[1,0,3,2],[2,3,0,1],[1,0,3,2]],JA=[[!0,!1,!1,!0],[!0,!0,!1,!1],[!1,!1,!0,!0],[!1,!0,!0,!1]],jA=[[0,1,0,0],[1,0,0,0],[0,1,0,1],[1,1,1,1]],WA=["load","loadend"];class XA extends MA{constructor(e,A){super(e,A=A||{}),this.events.registerNames(WA),this._counter=0,this._pendingsQueue=[],this.drawTile=A.drawTile||null}get instanceName(){return"CanvasTiles"}abortLoading(){for(var e=this._pendingsQueue,A=e._shiftIndex+1;A<e._popIndex+1;A++)e._array[A]&&this.abortMaterialLoading(e._array[A]);this._pendingsQueue=[]}setVisibility(e){e!==this._visibility&&(super.setVisibility(e),e||this.abortLoading())}loadMaterial(e){var A=e.segment;this._isBaseLayer?e.texture=A._isNorth?A.planet.solidTextureOne:A.planet.solidTextureTwo:e.texture=A.planet.transparentTexture,(this._planet.layerLock.isFree()||e.segment.tileZoom<2)&&(e.isReady=!1,e.isLoading=!0,XA.__requestsCounter>=XA.MAX_REQUESTS&&this._counter?this._pendingsQueue.push(e):this._exec(e))}_exec(e){XA.__requestsCounter++,this._counter++;var A=this;if(this.drawTile){var t=A.events.load;t.handlers.length&&A.events.dispatch(t,e),requestAnimationFrame((()=>{A.drawTile(e,(function(t){A._counter--,XA.__requestsCounter--,e.isLoading&&e.applyImage(t),A._dequeueRequest()}))}))}else e.textureNotExists()}abortMaterialLoading(e){e.isLoading&&e.image&&(e.image.src="",this._counter--,XA.__requestsCounter--,this._dequeueRequest()),e.isLoading=!1,e.isReady=!1}_dequeueRequest(){if(this._pendingsQueue.length){if(XA.__requestsCounter<XA.MAX_REQUESTS){var e=this._whilePendings();e&&this._exec(e)}}else 0===this._counter&&this.events.dispatch(this.events.loadend)}_whilePendings(){for(;this._pendingsQueue.length;){var e=this._pendingsQueue.pop();if(e.segment.node){if(e.segment.initialized&&1===e.segment.node.getState())return e;e.isLoading=!1}}return null}applyMaterial(e){if(e.isReady)return[0,0,1,1];!e.isLoading&&this.loadMaterial(e);for(var A=e.segment,t=A.node,i=!1,r=this._id,n=e;t.parentNode;)if((n=(t=t.parentNode).segment.materials[r])&&n.isReady){i=!0;break}if(i){e.appliedNodeId=t.nodeId,e.texture=n.texture;var s=1/(2<<A.tileZoom-t.segment.tileZoom-1);return[A.tileX*s-t.segment.tileX,A.tileY*s-t.segment.tileY,s,s]}return e.texture=A.planet.transparentTexture,[0,0,1,1]}clearMaterial(e){e.isReady&&(e.isReady=!1,!e.texture.default&&e.segment.handler.gl.deleteTexture(e.texture),e.texture=null),this.abortMaterialLoading(e),e.isLoading=!1,e.textureExists=!1,e.image&&(e.image.src="",e.image=null)}}const ZA=-2,qA=-1;class $A{constructor(e=4){this._id=0,this._source={},this._freeWorkerQueue=[];var A=new Blob([et],{type:"application/javascript"}),t=this;for(let r=0;r<e;r++){var i=new Worker(URL.createObjectURL(A));i.onmessage=function(e){let A=t._source[e.data.id];A.label._lockId===ZA?t.make(A.handler,A.label):A.handler.workerCallback(e.data,A.label),t._source[e.data.id]=null,delete t._source[e.data.id],t._freeWorkerQueue.unshift(this),t.check()},this._freeWorkerQueue.push(i)}this._pendingQueue=[]}check(){if(this._pendingQueue.length){var e=this._pendingQueue.pop();this.make(e.handler,e.label)}}make(e,A){if(e._entityCollection){let i={handler:e,label:A};if(this._freeWorkerQueue.length){var t=this._freeWorkerQueue.pop();this._source[this._id]=i;let r=new Float32Array([this._id++,e._maxLetters,A.getVisibility()?1:0,A._positionHigh.x,A._positionHigh.y,A._positionHigh.z,A._positionLow.x,A._positionLow.y,A._positionLow.z,A._size,A._offset.x,A._offset.y,A._offset.z,A._color.x,A._color.y,A._color.z,A._color.w,A._rotation,A._alignedAxis.x,A._alignedAxis.y,A._alignedAxis.z,A._fontIndex,A._outline,A._outlineColor.x,A._outlineColor.y,A._outlineColor.z,A._outlineColor.w,A._entity._pickingColor.x,A._entity._pickingColor.y,A._entity._pickingColor.z]);A._lockId=this._id,t.postMessage({labelData:r},[r.buffer])}else this._pendingQueue.push(i)}}}const et="'use strict';\n\n function concatTypedArrays(dest, index, source) {\n let len = source.length,\n offset = index * len;\n for(let i = 0; i < len; i++) {\n dest[offset + i] = source[i];\n }\n }\n\n self.onmessage = function (e) {\n var labelData = e.data.labelData,\n id = labelData[0],\n maxLetters = labelData[1],\n isVisible = labelData[2],\n /*3, 4, 5*/_positionHigh_x = labelData[3], _positionHigh_y = labelData[4], _positionHigh_z = labelData[5],\n /*6, 7, 8*/_positionLow_x = labelData[6], _positionLow_y = labelData[7], _positionLow_z = labelData[8],\n /*9*/_size = labelData[9],\n /*10, 11, 12*/_offset_x = labelData[10], _offset_y = labelData[11], _offset_z = labelData[12],\n /*13, 14, 15, 16*/_color_x = labelData[13], _color_y = labelData[14], _color_z = labelData[15], _color_w = labelData[16],\n /*17*/_rotation = labelData[17],\n /*18, 19, 20*/_alignedAxis_x = labelData[18], _alignedAxis_y = labelData[19], _alignedAxis_z = labelData[20],\n /*21*/_fontIndex = labelData[21],\n /*22*/_outline = labelData[22],\n /*23, 24, 25, 26*/_outlineColor_x = labelData[23], _outlineColor_y = labelData[24], _outlineColor_z = labelData[25], _outlineColor_w = labelData[26],\n /*27, 28, 29*/_pickingColor_x = labelData[27], _pickingColor_y = labelData[28], _pickingColor_z = labelData[29]\n \n\n let _vertexArr = new Float32Array(maxLetters * 12),\n _texCoordArr = new Float32Array(maxLetters * 24),\n _gliphParamArr = new Float32Array(maxLetters * 24),\n _positionHighArr = new Float32Array(maxLetters * 18),\n _positionLowArr = new Float32Array(maxLetters * 18),\n _sizeArr = new Float32Array(maxLetters * 6),\n _offsetArr = new Float32Array(maxLetters * 18),\n _rgbaArr = new Float32Array(maxLetters * 24),\n _rotationArr = new Float32Array(maxLetters * 6),\n _alignedAxisArr = new Float32Array(maxLetters * 18),\n _fontIndexArr = new Float32Array(maxLetters * 6),\n _outlineArr = new Float32Array(maxLetters * 6),\n _noOutlineArr = new Float32Array(maxLetters * 6),\n _outlineColorArr = new Float32Array(maxLetters * 24),\n _pickingColorArr = new Float32Array(maxLetters * 18);\n \n for (var i = 0; i < maxLetters; i++) {\n if (isVisible !== 0) {\n concatTypedArrays(_vertexArr, i, [0, 0, 0, -1, 1, -1, 1, -1, 1, 0, 0, 0]);\n } else {\n concatTypedArrays(_vertexArr, i, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n }\n\n concatTypedArrays(_texCoordArr, i, [0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0]);\n concatTypedArrays(_gliphParamArr, i, [1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0]);\n\n var x = _positionHigh_x, y = _positionHigh_y, z = _positionHigh_z, w;\n concatTypedArrays(_positionHighArr, i, [x, y, z, x, y, z, x, y, z, x, y, z, x, y, z, x, y, z]);\n\n x = _positionLow_x; y = _positionLow_y; z = _positionLow_z;\n concatTypedArrays(_positionLowArr, i, [x, y, z, x, y, z, x, y, z, x, y, z, x, y, z, x, y, z]);\n\n x = _size;\n concatTypedArrays(_sizeArr, i, [x, x, x, x, x, x]);\n\n x = _offset_x; y = _offset_y; z = _offset_z;\n concatTypedArrays(_offsetArr, i, [x, y, z, x, y, z, x, y, z, x, y, z, x, y, z, x, y, z]);\n\n x = _color_x; y = _color_y; z = _color_z; w = _color_w;\n concatTypedArrays(_rgbaArr, i, [x, y, z, w, x, y, z, w, x, y, z, w, x, y, z, w, x, y, z, w, x, y, z, w]);\n\n x = _rotation;\n concatTypedArrays(_rotationArr, i, [x, x, x, x, x, x]);\n\n x = _alignedAxis_x; y = _alignedAxis_y; z = _alignedAxis_z;\n concatTypedArrays(_alignedAxisArr, i, [x, y, z, x, y, z, x, y, z, x, y, z, x, y, z, x, y, z]);\n\n x = _fontIndex;\n concatTypedArrays(_fontIndexArr, i, [x, x, x, x, x, x]);\n\n x = _outline;\n concatTypedArrays(_outlineArr, i, [x, x, x, x, x, x]);\n\n w = 0.001;\n concatTypedArrays(_noOutlineArr, i, [w, w, w, w, w, w]);\n\n x = _outlineColor_x; y = _outlineColor_y; z = _outlineColor_z; w = _outlineColor_w;\n concatTypedArrays(_outlineColorArr, i, [x, y, z, w, x, y, z, w, x, y, z, w, x, y, z, w, x, y, z, w, x, y, z, w]);\n\n x = _pickingColor_x / 255; y = _pickingColor_y / 255; z = _pickingColor_z / 255;\n concatTypedArrays(_pickingColorArr, i, [x, y, z, x, y, z, x, y, z, x, y, z, x, y, z, x, y, z]);\n }\n\n self.postMessage({\n id: id,\n vertexArr: _vertexArr,\n texCoordArr: _texCoordArr,\n gliphParamArr: _gliphParamArr,\n positionHighArr: _positionHighArr,\n positionLowArr: _positionLowArr,\n sizeArr: _sizeArr,\n offsetArr: _offsetArr,\n rgbaArr: _rgbaArr,\n rotationArr: _rotationArr,\n alignedAxisArr: _alignedAxisArr,\n fontIndexArr: _fontIndexArr,\n outlineArr: _outlineArr,\n noOutlineArr: _noOutlineArr,\n outlineColorArr: _outlineColorArr,\n pickingColorArr: _pickingColorArr\n }, [\n _vertexArr.buffer,\n _texCoordArr.buffer,\n _gliphParamArr.buffer,\n _positionHighArr.buffer,\n _positionLowArr.buffer,\n _sizeArr.buffer,\n _offsetArr.buffer,\n _rgbaArr.buffer,\n _rotationArr.buffer,\n _alignedAxisArr.buffer,\n _fontIndexArr.buffer,\n _outlineArr.buffer,\n _noOutlineArr.buffer,\n _outlineColorArr.buffer,\n _pickingColorArr.buffer\n ]);\n }";class At{constructor(e){e=e||{},this.id=At._staticCounter++,this._position=Ee(e.position),this._positionHigh=new le,this._positionLow=new le,le.doubleToTwoFloats(this._position,this._positionHigh,this._positionLow),this._rotation=e.rotation||0,this._color=Te(e.color),this._alignedAxis=Ee(e.alignedAxis),this._offset=Ee(e.offset),this._visibility=null==e.visibility||e.visibility,this._entity=null,this._handler=null,this._handlerIndex=-1,this._isReady=!1,this._lockId=qA}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}setPosition(e,A,t){this._position.x=e,this._position.y=A,this._position.z=t,le.doubleToTwoFloats(this._position,this._positionHigh,this._positionLow),this._isReady&&this._handler?this._handler.setPositionArr(this._handlerIndex,this._positionHigh,this._positionLow):this._lockId!==qA&&(this._lockId=ZA)}setPosition3v(e){this._position.x=e.x,this._position.y=e.y,this._position.z=e.z,le.doubleToTwoFloats(e,this._positionHigh,this._positionLow),this._isReady&&this._handler?this._handler.setPositionArr(this._handlerIndex,this._positionHigh,this._positionLow):this._lockId!==qA&&(this._lockId=ZA)}getPosition(){return this._position}setOffset(e,A,t){this._offset.x=e,this._offset.y=A,null!=t&&(this._offset.z=t),this._isReady&&this._handler?this._handler.setOffsetArr(this._handlerIndex,this._offset):this._lockId!==qA&&(this._lockId=ZA)}setOffset3v(e){this.setOffset(e.x,e.y,e.z)}getOffset(){return this._offset}setRotation(e){e!==this._rotation&&(this._rotation=e,this._isReady&&this._handler?this._handler.setRotationArr(this._handlerIndex,e):this._lockId!==qA&&(this._lockId=ZA))}getRotation(){return this._rotation}setOpacity(e){e!==this._color.w&&(null!=e&&(this._color.w=e),this._isReady&&this._handler?this._handler.setRgbaArr(this._handlerIndex,this._color):this._lockId!==qA&&(this._lockId=ZA))}setColor(e,A,t,i){i===this._color.w&&e===this._color.x&&A===this._color.y&&this._color.z===t||(this._color.x=e,this._color.y=A,this._color.z=t,null!=i&&(this._color.w=i),this._isReady&&this._handler?this._handler.setRgbaArr(this._handlerIndex,this._color):this._lockId!==qA&&(this._lockId=ZA))}setColor4v(e){this.setColor(e.x,e.y,e.z,e.w)}setColorHTML(e){this.setColor4v(pe(e))}getColor(){return this._color}setVisibility(e){e!==this._visibility&&(this._visibility=e,this._isReady&&this._handler?this._handler.setVisibility(this._handlerIndex,e):this._lockId!==qA&&(this._lockId=ZA))}getVisibility(){return this._visibility}setAlignedAxis(e,A,t){this._alignedAxis.x=e,this._alignedAxis.y=A,this._alignedAxis.z=t,this._isReady&&this._handler?this._handler.setAlignedAxisArr(this._handlerIndex,this._alignedAxis):this._lockId!==qA&&(this._lockId=ZA)}setAlignedAxis3v(e){this.setAlignedAxis(e.x,e.y,e.z)}getAlignedAxis(){return this._alignedAxis}remove(){this._entity=null,this._handler&&this._handler.remove(this)}setPickingColor3v(e){this._isReady&&this._handler?this._handler.setPickingColorArr(this._handlerIndex,e):this._lockId!==qA&&(this._lockId=ZA)}}class tt extends At{constructor(e){super(e),e=e||{},this._src=e.src||null,this._image=e.image||null,this._scale=1,this._width=e.width||(e.size?e.size[0]:30),this._height=e.height||(e.size?e.size[1]:30)}setSrc(e){this._src=e;var A=this._handler;if(A&&e){var t=A._entityCollection.renderNode;if(t){var i=t.renderer.billboardsTextureAtlas,r=this;i.loadImage(e,(function(e){i.nodes[e.__nodeIndex]?(r._image=e,A.setTexCoordArr(r._handlerIndex,i.nodes[r._image.__nodeIndex].texCoords)):(i.addImage(e),i.createTexture(),r._image=e,t.updateBillboardsTexCoords())}))}}}setImage(e){this.setSrc(e.src)}setSize(e,A){this._width=e,this._height=A,this._handler&&this._handler.setSizeArr(this._handlerIndex,e*this._scale,A*this._scale)}getSize(){return{width:this._width,height:this._height}}setWidth(e){this.setSize(e,this._height)}getWidth(){return this._width}setHeight(e){this.setSize(this._width,e)}getHeight(){return this._height}}class it{constructor(e,A){this.p0=e||new le,this.p1=A||new le}getMagnitude(){return this.p0.distance(this.p1)}getSphereIntersection(e){var A=this.p0,t=this.p1,i=e.x,r=e.y,n=e.z,s=A.x,a=A.y,o=A.z,h=t.x-s,l=t.y-a,d=t.z-o,c=h*h+l*l+d*d,u=2*(s*h+a*l+o*d-h*i-l*r-d*n),g=u*u-4*c*(s*s-2*s*i+i*i+a*a-2*a*r+r*r+o*o-2*o*n+n*n-e.radius*e.radius);if(g<0)return null;var f=(-u-Math.Sqrt(g))/(2*c),p=new le(A.x*(1-f)+f*t.x,A.y*(1-f)+f*t.y,A.z*(1-f)+f*t.z);if(0==g)return p;var m=(-u+Math.Sqrt(g))/(2*c),x=new le(A.x*(1-m)+m*t.x,A.y*(1-m)+m*t.y,A.z*(1-m)+m*t.z);return Math.Abs(f-.5)<Math.abs(m-.5)?[p,x]:[x,p]}intersects(e,A,t){let i=this.p0.sub(e.p0),r=e.p1.sub(e.p0);if(Math.abs(r.x)<x&&Math.abs(r.y)<x&&Math.abs(r.z)<x)return!1;let n=this.p1.sub(this.p0);if(Math.abs(n.x)<x&&Math.abs(n.y)<x&&Math.abs(n.z)<x)return!1;let s=i.x*r.x+i.y*r.y+i.z*r.z,a=r.x*n.x+r.y*n.y+r.z*n.z,o=i.x*n.x+i.y*n.y+i.z*n.z,h=r.x*r.x+r.y*r.y+r.z*r.z,l=(n.x*n.x+n.y*n.y+n.z*n.z)*h-a*a;if(Math.abs(l)<x)return!1;let d=(s*a-o*h)/l;if(A.x=this.p0.x+d*n.x,A.y=this.p0.y+d*n.y,A.z=this.p0.z+d*n.z,t){let A=(s+a*d)/h;t.x=e.p0.x+A*r.x,t.y=e.p0.y+A*r.y,t.z=e.p0.z+A*r.z}return!0}getNearestDistancePoint(e,A){let t=this.p0,i=this.p1,r=this.getMagnitude(),n=((e.x-t.x)*(i.x-t.x)+(e.y-t.y)*(i.y-t.y)+(e.z-t.z)*(i.z-t.z))/(r*r);return A.x=t.x+n*(i.x-t.x),A.y=t.y+n*(i.y-t.y),A.z=t.z+n*(i.z-t.z),!(n<0||n>1)}}let rt=new le,nt=new le;class st{constructor(e){if(e=e||{},this.id=st._staticCounter++,this.visibility=null==e.visibility||e.visibility,this.color=new Float32Array([1,1,1,.5]),e.color){let A=Te(e.color);this.setColor(A.x,A.y,A.z,A.w)}e.opacity&&this.setOpacity(e.opacity),this._renderNode=null,this._entity=null,this._verticesHighBuffer=null,this._verticesLowBuffer=null,this._indexesBuffer=null,this._verticesHigh=[],this._verticesLow=[],this._indexes=[],this._path=[],this._pickingColor=new Float32Array(4),this._gridSize=1,this._handler=null,this._handlerIndex=-1,e.path&&this.setPath(e.path)}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}setPickingColor3v(e){this._pickingColor[0]=e.x/255,this._pickingColor[1]=e.y/255,this._pickingColor[2]=e.z/255,this._pickingColor[3]=1}clear(){this._path.length=0,this._path=[],this._verticesHigh.length=0,this._verticesHigh=[],this._verticesLow.length=0,this._verticesLow=[],this._indexes.length=0,this._indexes=[],this._deleteBuffers()}setColor(e,A,t,i){i=i||this.color[3],this.color[0]=e,this.color[1]=A,this.color[2]=t,this.color[3]=i}setOpacity(e){this.color[3]=e||0}setVisibility(e){this.visibility=e}getVisibility(){return this.visibility}setRenderNode(e){this._renderNode=e,this._createBuffers()}remove(){this._entity=null,this._handler&&this._handler.remove(this)}draw(){if(this.visibility&&this._verticesHigh.length){var e=this._renderNode.renderer,A=e.handler.gl,t=e.handler.programs.strip,i=t._program,r=i.attributes,n=i.uniforms;A.disable(A.CULL_FACE),A.blendEquation(A.FUNC_ADD),A.blendFunc(A.SRC_ALPHA,A.ONE_MINUS_SRC_ALPHA),A.enable(A.BLEND),t.activate(),A.uniformMatrix4fv(n.viewMatrix,!1,e.activeCamera.getViewMatrix()),A.uniformMatrix4fv(n.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),A.uniform3fv(n.eyePositionHigh,e.activeCamera.eyeHigh),A.uniform3fv(n.eyePositionLow,e.activeCamera.eyeLow),A.uniform4fv(n.uColor,this.color),A.uniform1f(n.uOpacity,this._entity._entityCollection._fadingOpacity),A.bindBuffer(A.ARRAY_BUFFER,this._verticesHighBuffer),A.vertexAttribPointer(r.aVertexPositionHigh,this._verticesHighBuffer.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ARRAY_BUFFER,this._verticesLowBuffer),A.vertexAttribPointer(r.aVertexPositionLow,this._verticesLowBuffer.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ELEMENT_ARRAY_BUFFER,this._indexBuffer),A.drawElements(e.handler.gl.TRIANGLE_STRIP,this._indexBuffer.numItems,A.UNSIGNED_INT,0),A.enable(A.CULL_FACE)}}drawPicking(){if(this.visibility&&this._verticesHigh.length){var e=this._renderNode.renderer,A=e.handler.gl,t=e.handler.programs.strip,i=t._program,r=i.attributes,n=i.uniforms;A.disable(A.CULL_FACE),A.blendEquation(A.FUNC_ADD),A.blendFunc(A.SRC_ALPHA,A.ONE_MINUS_SRC_ALPHA),A.enable(A.BLEND),t.activate(),A.uniformMatrix4fv(n.viewMatrix,!1,e.activeCamera.getViewMatrix()),A.uniformMatrix4fv(n.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),A.uniform3fv(n.eyePositionHigh,e.activeCamera.eyeHigh),A.uniform3fv(n.eyePositionLow,e.activeCamera.eyeLow),A.uniform1f(n.uOpacity,0!=this._entity._entityCollection._fadingOpacity?1:0),A.uniform4fv(n.uColor,this._pickingColor),A.bindBuffer(A.ARRAY_BUFFER,this._verticesHighBuffer),A.vertexAttribPointer(r.aVertexPositionHigh,this._verticesHighBuffer.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ARRAY_BUFFER,this._verticesLowBuffer),A.vertexAttribPointer(r.aVertexPositionLow,this._verticesLowBuffer.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ELEMENT_ARRAY_BUFFER,this._indexBuffer),A.drawElements(e.handler.gl.TRIANGLE_STRIP,this._indexBuffer.numItems,A.UNSIGNED_INT,0),A.enable(A.CULL_FACE)}}_deleteBuffers(){if(this._renderNode&&this._renderNode.renderer){var e=this._renderNode.renderer.handler.gl;e.deleteBuffer(this._indexBuffer),e.deleteBuffer(this._verticesHighBuffer),e.deleteBuffer(this._verticesLowBuffer)}this._verticesHighBuffer=null,this._verticesLowBuffer=null,this._indexBuffer=null}_createBuffers(){if(this._renderNode&&this._renderNode.renderer){var e=this._renderNode.renderer.handler.gl;e.deleteBuffer(this._indexBuffer),e.deleteBuffer(this._verticesHighBuffer),e.deleteBuffer(this._verticesLowBuffer),this._verticesHighBuffer=this._renderNode.renderer.handler.createArrayBuffer(new Float32Array(this._verticesHigh),3,this._verticesHigh.length/3),this._verticesLowBuffer=this._renderNode.renderer.handler.createArrayBuffer(new Float32Array(this._verticesLow),3,this._verticesLow.length/3),this._indexBuffer=this._renderNode.renderer.handler.createElementArrayBuffer(new Uint32Array(this._indexes),1,this._indexes.length)}}addEdge3v(e,A){let t=this._path.length;if(0===t)this._path.push([e.clone(),A.clone()]);else{let i=this._path[t-1][0],r=this._path[t-1][1];this._path.push([e.clone(),A.clone()]);let n=this._verticesHigh,s=this._verticesLow,a=this._gridSize,o=a+1,h=new le,l=this._verticesHigh.length/3,d=l,c=Math.abs(i.sub(r).normal().dot(e.sub(i).normal()));for(let t=0;t<o;t++){let u=t/a,g=i.lerp(e,u),f=r.lerp(A,u);for(let u=0;u<o;u++){let p=u/a,m=i.lerp(r,p),x=e.lerp(A,p);1!==c?new it(g,f).intersects(new it(m,x),h):h=x,d=l+t*o+u,le.doubleToTwoFloats(h,rt,nt);let v=3*d;n[v]=rt.x,n[v+1]=rt.y,n[v+2]=rt.z,s[v]=nt.x,s[v+1]=nt.y,s[v+2]=nt.z,t<a&&this._indexes.push(d,d+o)}t<a&&this._indexes.push(d+o,d+1)}this._createBuffers()}}setEdge3v(e,A,t){if(t!==this._path.length)if(this._path[t]){if(this._path[t][0]=e,this._path[t][1]=A,this._path.length>1){let i=this._gridSize,r=i+1,n=r*r,s=new le,a=this._verticesHigh,o=this._verticesLow;if(t===this._path.length-1){let h=this._path[t-1][0],l=this._path[t-1][1],d=this._verticesHigh.length/3-n,c=d,u=Math.abs(h.sub(l).normal().dot(e.sub(h).normal()));for(let t=0;t<r;t++){let n=t/i,g=h.lerp(e,n),f=l.lerp(A,n);for(let n=0;n<r;n++){let p=n/i,m=h.lerp(l,p),x=e.lerp(A,p);1!==u?new it(g,f).intersects(new it(m,x),s):s=x,c=d+t*r+n,le.doubleToTwoFloats(s,rt,nt);let v=3*c;a[v]=rt.x,a[v+1]=rt.y,a[v+2]=rt.z,o[v]=nt.x,o[v+1]=nt.y,o[v+2]=nt.z}}}else if(0===t){let t=0,n=e,h=A;e=this._path[1][0],A=this._path[1][1];for(let l=0;l<r;l++){let d=l/i,c=n.lerp(e,d),u=h.lerp(A,d);for(let d=0;d<r;d++){let g=d/i,f=n.lerp(h,g),p=e.lerp(A,g);new it(c,u).intersects(new it(f,p),s),t=l*r+d,le.doubleToTwoFloats(s,rt,nt);let m=3*t;a[m]=rt.x,a[m+1]=rt.y,a[m+2]=rt.z,o[m]=nt.x,o[m+1]=nt.y,o[m+2]=nt.z}}}else if(t>0&&t<this._path.length){let h=this._path[t-1][0],l=this._path[t-1][1],d=this._path[t+1][0],c=this._path[t+1][1],u=t*n,g=(t-1)*n,f=g;for(let t=0;t<r;t++){let n=t/i,p=h.lerp(e,n),m=A.lerp(c,n),x=e.lerp(d,n),v=l.lerp(A,n);for(let n=0;n<r;n++){let y=n/i,w=h.lerp(l,y),C=e.lerp(A,y);new it(p,v).intersects(new it(w,C),s);let B=t*r+n;f=g+B,le.doubleToTwoFloats(s,rt,nt);let E=3*f;a[E]=rt.x,a[E+1]=rt.y,a[E+2]=rt.z,o[E]=nt.x,o[E+1]=nt.y,o[E+2]=nt.z;let T=d.lerp(c,y);C=e.lerp(A,y),new it(x,m).intersects(new it(C,T),s),f=u+B,le.doubleToTwoFloats(s,rt,nt),E=3*f,a[E]=rt.x,a[E+1]=rt.y,a[E+2]=rt.z,o[E]=nt.x,o[E+1]=nt.y,o[E+2]=nt.z}}}this._createBuffers()}}else console.warn(`strip index ${t} is out of range`);else this.addEdge3v(e,A)}removeEdge(e){this._path.splice(e,1),this.setPath([].concat(this._path))}setGridSize(e){this._gridSize=e,this.setPath([].concat(this._path))}getPath(){return this._path}setPath(e){this._verticesHigh=[],this._verticesLow=[],this._indexes=[],this._path=[];for(let A=0;A<e.length;A++){let t=e[A][0],i=e[A][1];t instanceof Array&&(t=new le(t[0],t[1],t[2])),i instanceof Array&&(i=new le(i[0],i[1],i[2])),this.addEdge3v(t,i)}}insertEdge3v(e,A,t){if(t<this._path.length){let i=[].concat(this._path);i.splice(t,0,[e,A]),this.setPath(i)}else t===this._path.length&&this.addEdge3v(e,A)}}const at={POINT:1,LINESTRING:2,POLYGON:3,MULTIPOLYGON:4,MULTILINESTRING:5};class ot{constructor(e){this._id=ot._staticCounter++,(e=e||{}).style=e.style||{},this._entity=null,this._handler=null,this._handlerIndex=-1,this._polyVerticesHighMerc=[],this._polyVerticesLowMerc=[],this._polyVerticesLength=-1,this._polyIndexesLength=-1,this._polyVerticesHandlerIndex=-1,this._polyIndexesHandlerIndex=-1,this._lineVerticesHighMerc=[],this._lineVerticesLowMerc=[],this._lineVerticesLength=-1,this._lineOrdersLength=-1,this._lineIndexesLength=-1,this._lineColorsLength=-1,this._lineThicknessLength=-1,this._lineVerticesHandlerIndex=-1,this._lineOrdersHandlerIndex=-1,this._lineIndexesHandlerIndex=-1,this._lineThicknessHandlerIndex=-1,this._lineColorsHandlerIndex=-1,this._type=e.type&&ot.getType(e.type)||at.POINT,this._coordinates=[],this._extent=ot.getExtent({type:e.type||"Point",coordinates:e.coordinates||[]},this._coordinates),this._style=e.style||{},this._style.fillColor=Te(e.style.fillColor,new se(.19,.62,.85,.4)),this._style.lineColor=Te(e.style.lineColor,new se(.19,.62,.85,1)),this._style.strokeColor=Te(e.style.strokeColor,new se(1,1,1,.95)),this._style.lineWidth=e.style.lineWidth||3,this._style.strokeWidth=e.style.strokeWidth||0,this._visibility=e.visibility||!0,this._pickingReady=!1}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}static getType(e){return at[e.toUpperCase()]}static getExtent(e,A){var t=new ne(new F(180,90),new F(-180,-90)),i=ot.getType(e.type);if(i===at.POINT){let e=t.coordinates[0],i=t.coordinates[1];t.southWest.lon=e,t.southWest.lat=i,t.northEast.lon=e,t.northEast.lat=i,A&&(A[0]=e)&&(A[1]=i)}else if(i===at.LINESTRING){let i=e.coordinates;for(let e=0;e<i.length;e++){let r=i[e][0],n=i[e][1];r<t.southWest.lon&&(t.southWest.lon=r),n<t.southWest.lat&&(t.southWest.lat=n),r>t.northEast.lon&&(t.northEast.lon=r),n>t.northEast.lat&&(t.northEast.lat=n),A&&(A[e]=[r,n])}}else if(i===at.POLYGON){let i=e.coordinates;for(let e=0;e<i.length;e++){let r=i[e];A&&(A[e]=[]);for(let i=0;i<r.length;i++){let n=r[i],s=n[0],a=n[1];s<t.southWest.lon&&(t.southWest.lon=s),a<t.southWest.lat&&(t.southWest.lat=a),s>t.northEast.lon&&(t.northEast.lon=s),a>t.northEast.lat&&(t.northEast.lat=a),A&&(A[e][i]=[s,a])}}}else if(i===at.MULTIPOLYGON){let i=e.coordinates;for(let e=0;e<i.length;e++){let r=i[e];A&&(A[e]=[]);for(let i=0;i<r.length;i++){let n=r[i];A&&(A[e][i]=[]);for(let r=0;r<n.length;r++){let s=n[r],a=s[0],o=s[1];a<t.southWest.lon&&(t.southWest.lon=a),o<t.southWest.lat&&(t.southWest.lat=o),a>t.northEast.lon&&(t.northEast.lon=a),o>t.northEast.lat&&(t.northEast.lat=o),A&&(A[e][i][r]=[a,o])}}}}else if(i===at.MULTILINESTRING){let i=e.coordinates;for(let e=0;e<i.length;e++){let r=i[e];A&&(A[e]=[]);for(let i=0;i<r.length;i++){let n=r[i],s=n[0],a=n[1];s<t.southWest.lon&&(t.southWest.lon=s),a<t.southWest.lat&&(t.southWest.lat=a),s>t.northEast.lon&&(t.northEast.lon=s),a>t.northEast.lat&&(t.northEast.lat=a),A&&(A[e][i]=[s,a])}}}else t.southWest.lon=t.southWest.lat=t.northEast.lon=t.northEast.lat=0,A&&(A[0]=0)&&(A[1]=0);return t}setGeometry(e){var A=this._handler;return this.remove(),this._type=ot.getType(e.type||"Point"),this._extent=ot.getExtent(e,this._coordinates),A.add(this),this}setFillColor(e,A,t,i){var r=this._style.fillColor;return(0===r.w&&0!==i||0!==r.w&&0===i)&&(this._pickingReady=!1),r.x=e,r.y=A,r.z=t,r.w=i,this._handler&&this._handler.setPolyColorArr(this,r),this}setFillColor4v(e){return this.setFillColor(e.x,e.y,e.z,e.w)}setStrokeColor(e,A,t,i){var r=this._style.strokeColor;return(0===r.w&&0!==i||0!==r.w&&0===i)&&(this._pickingReady=!1),r.x=e,r.y=A,r.z=t,r.w=i,this._handler&&this._handler.setStrokeColorArr(this,r),this}setLineColor(e,A,t,i){var r=this._style.lineColor;return(0===r.w&&0!==i||0!==r.w&&0===i)&&(this._pickingReady=!1),r.x=e,r.y=A,r.z=t,r.w=i,this._handler&&this._handler.setLineColorArr(this,r),this}setStrokeColor4v(e){return this.setStrokeColor(e.x,e.y,e.z,e.w)}setLineColor4v(e){return this.setLineColor(e.x,e.y,e.z,e.w)}setStrokeOpacity(e){var A=this._style.strokeColor;return A.w=e,this.setStrokeColor(A.x,A.y,A.z,e)}setLineOpacity(e){var A=this._style.lineColor;return A.w=e,this.setLineColor(A.x,A.y,A.z,e)}setStrokeWidth(e){return this._style.strokeWidth=e,this._pickingReady=!1,this._handler&&this._handler.setLineStrokeArr(this,e),this}bringToFront(){return this._handler&&this._handler.bringToFront(this),this}setLineWidth(e){return this._style.lineWidth=e,this._pickingReady=!1,this._handler&&this._handler.setLineThicknessArr(this,e),this}setFillOpacity(e){var A=this._style.fillColor;return(0===A.w&&0!==e||0!==A.w&&0===e)&&(this._pickingReady=!1),A.w=e,this._handler&&this._handler.setPolyColorArr(this,A),this}setVisibility(e){return this._visibility=e,this._handler&&this._handler.setGeometryVisibility(this),this}getVisibility(){return this._visibility}remove(){this._handler&&this._handler.remove(this)}getExtent(){return this._extent.clone()}getType(){return this._type}}const ht=0,lt=1,dt=2,ct={left:lt,right:ht,center:dt};class ut extends At{constructor(e){super(e),e=e||{},this._text=e.text,this._face=Be(e.face,"arial"),this._size=e.size||24,this._outline=null!=e.outline?e.outline:0,this._outlineColor=Te(e.outlineColor,new se(0,0,0,1)),this._align=e.align&&ct[e.align.trim().toLowerCase()]||ht,this._fontIndex=0,this._fontAtlas=null}setText(e){this._text=e.toString(),this._isReady&&this._handler&&this._handler.setText(this._handlerIndex,e,this._fontIndex,this._align)}getText(){return this._text}setAlign(e){this._align=ct[e.trim().toLowerCase()],this._isReady&&this._handler?this._handler.setText(this._handlerIndex,this._text,this._fontIndex,this._align):this._lockId!==qA&&(this._lockId=ZA)}getAlign(){return this._align}setFace(e){this._face=e.trim().toLowerCase(),this.update()}getFace(){return this._face}setSize(e){e!==this._size&&(this._size=e,this._isReady&&this._handler?this._handler.setSizeArr(this._handlerIndex,e):this._lockId!==qA&&(this._lockId=ZA))}getSize(){return this._size}setOutline(e){this._outline=e,this._isReady&&this._handler?this._handler.setOutlineArr(this._handlerIndex,e):this._lockId!==qA&&(this._lockId=ZA)}getOutline(){return this._outline}setOpacity(e){super.setOpacity(e),this.setOutlineOpacity(e)}setOutlineColor(e,A,t,i){i===this._outlineColor.w&&e===this._outlineColor.x&&A===this._outlineColor.y&&t===this._outlineColor.z||(this._outlineColor.x=e,this._outlineColor.y=A,this._outlineColor.z=t,this._outlineColor.w=i,this._isReady&&this._handler?this._handler.setOutlineColorArr(this._handlerIndex,this._outlineColor):this._lockId!==qA&&(this._lockId=ZA))}setOutlineColor4v(e){this.setOutlineColor(e.x,e.y,e.z,e.w)}setOutlineColorHTML(e){this.setOutlineColor4v(pe(e))}getOutlineColor(){return this._outlineColor}setOutlineOpacity(e){e!==this._outlineColor.w&&(this._outlineColor.w=e,this._isReady&&this._handler?this._handler.setOutlineColorArr(this._handlerIndex,this._outlineColor):this._lockId!==qA&&(this._lockId=ZA))}getOutlineOpacity(){return this._outlineColor.w}async update(){if(this._fontAtlas){const e=await this._fontAtlas.getFontIndex(this._face);this._applyFontIndex(e)}}_applyFontIndex(e){this._fontIndex=e,this._isReady&&this._handler?(this._handler.setFontIndexArr(this._handlerIndex,this._fontIndex),this._handler.setText(this._handlerIndex,this._text,this._fontIndex,this._align)):this._lockId!==qA&&(this._lockId=ZA)}assignFontAtlas(e){this._fontAtlas||(this._fontAtlas=e),this.update()}}class gt{constructor(e){e=e||{},this.id=gt._staticCounter++,this.altitude=e.altitude||0,this.thickness=e.thickness||1.5,this._defaultColor=me(e.color||"#0000FF",e.opacity),this.visibility=null==e.visibility||e.visibility,this._closedLine=e.isClosed||!1,this._path3v=[],this._pathLengths=[],this._pathLonLat=[],this._pathLonLatMerc=[],this._pathColors=e.pathColors?Ye(e.pathColors):[],this._extent=new ne,this._verticesHigh=[],this._verticesLow=[],this._orders=[],this._indexes=[],this._colors=[],this._verticesHighBuffer=null,this._verticesLowBuffer=null,this._ordersBuffer=null,this._indexesBuffer=null,this._colorsBuffer=null,this._pickingColor=[0,0,0],this._renderNode=null,this._entity=null,this._handler=null,this._handlerIndex=-1,this._buffersUpdateCallbacks=[],this._buffersUpdateCallbacks[0]=this._createVerticesBuffer,this._buffersUpdateCallbacks[1]=this._createIndexBuffer,this._buffersUpdateCallbacks[2]=this._createColorsBuffer,this._changedBuffers=new Array(this._buffersUpdateCallbacks.length),e.pathLonLat?this.setPathLonLat(e.pathLonLat):e.path3v&&this.setPath3v(e.path3v),this._refresh()}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}static appendLineData3v(e,A,t,i,r,n,s,a,o,h,l,d,c,u){var g=0,f=new le,p=new le;c&&(c.southWest.set(180,90),c.northEast.set(-180,-90)),a.length>0?(g=a[a.length-5]+9,a.push(g,g)):a.push(0,0);for(var m=0,x=e.length;m<x;m++){var v=e[m],y=A[m];if(h[m]=[],d[m]=[],l[m]=[],0===v.length)continue;var w,C=g;if(i)(w=v[v.length-1])instanceof Array&&(w=new le(w[0],w[1],w[2]));else{var B=v[0],E=v[1]||B;B instanceof Array&&(B=new le(B[0],B[1],B[2])),E instanceof Array&&(E=new le(E[0],E[1],E[2])),w=new le(B.x+B.x-E.x,B.y+B.y-E.y,B.z+B.z-E.z)}let x=t;y&&y[0]&&(x=y[0]),le.doubleToTwoFloats(w,f,p),r.push(f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z),n.push(p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z);let M=x[0],P=x[1],D=x[2],L=null!=x[3]?x[3]:1;m>0&&u.push(M,P,D,L,M,P,D,L,M,P,D,L,M,P,D,L),s.push(1,-1,2,-2);for(let e=0,A=v.length;e<A;e++){var T=v[e];if(T instanceof Array&&(T=new le(T[0],T[1],T[2])),l[m].push(T),o){var b=o.cartesianToLonLat(T);h[m].push(b),d[m].push(b.forwardMercator()),b.lon<c.southWest.lon&&(c.southWest.lon=b.lon),b.lat<c.southWest.lat&&(c.southWest.lat=b.lat),b.lon>c.northEast.lon&&(c.northEast.lon=b.lon),b.lat>c.northEast.lat&&(c.northEast.lat=b.lat)}y&&y[e]&&(x=y[e]),M=x[0],P=x[1],D=x[2],L=null!=x[3]?x[3]:1,le.doubleToTwoFloats(T,f,p),r.push(f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z),n.push(p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z),u.push(M,P,D,L,M,P,D,L,M,P,D,L,M,P,D,L),s.push(1,-1,2,-2),a.push(g++,g++,g++,g++)}var I;if(i)(I=v[0])instanceof Array&&(I=new le(I[0],I[1],I[2])),a.push(C,C+1,C+1,C+1);else{let e=v[v.length-1],A=v[v.length-2]||e;e instanceof Array&&(e=new le(e[0],e[1],e[2])),A instanceof Array&&(A=new le(A[0],A[1],A[2])),I=new le(e.x+e.x-A.x,e.y+e.y-A.y,e.z+e.z-A.z),a.push(g-1,g-1,g-1,g-1)}y&&y[v.length-1]&&(x=y[v.length-1]),M=x[0],P=x[1],D=x[2],L=null!=x[3]?x[3]:1,le.doubleToTwoFloats(I,f,p),r.push(f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z),n.push(p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z),u.push(M,P,D,L,M,P,D,L,M,P,D,L,M,P,D,L),s.push(1,-1,2,-2),m<e.length-1&&0!==e[m+1].length&&(g+=8,a.push(g,g))}}static appendPoint3v(e,A,t,i,r,n,s,a,o,h,l,d,c,u){var g=new le,f=new le,p=h.length-4,m=h[p-1]+1;0===e.length?(e.push([]),t[0]||(t[0]=[])):t[e.length-1]||(t[e.length-1]=[]);var x=e[e.length-1],v=x.length;x.push(A);let y=i[0],w=i[1],C=i[2],B=null!=i[3]?i[3]:1,E=t[e.length-1];if(E[v]?(E[v][0]=y,E[v][1]=w,E[v][2]=C,E[v][3]=B):E.push(i),1===v){var T;if(r)(T=x[v-1])instanceof Array&&(T=new le(T[0],T[1],T[2]));else{var b=x[0],I=x[1]||b;b instanceof Array&&(b=new le(b[0],b[1],b[2])),I instanceof Array&&(I=new le(I[0],I[1],I[2])),T=new le(b.x+b.x-I.x,b.y+b.y-I.y,b.z+b.z-I.z)}le.doubleToTwoFloats(T,g,f);let e=n.length-36;n[e]=g.x,n[e+1]=g.y,n[e+2]=g.z,n[e+3]=g.x,n[e+4]=g.y,n[e+5]=g.z,n[e+6]=g.x,n[e+7]=g.y,n[e+8]=g.z,n[e+9]=g.x,n[e+10]=g.y,n[e+11]=g.z,s[e]=f.x,s[e+1]=f.y,s[e+2]=f.z,s[e+3]=f.x,s[e+4]=f.y,s[e+5]=f.z,s[e+6]=f.x,s[e+7]=f.y,s[e+8]=f.z,s[e+9]=f.x,s[e+10]=f.y,s[e+11]=f.z}var M=m;if(l){0===d.length&&d.push([]),0===c.length&&c.push([]);var P=d[d.length-1],D=c[c.length-1];let e=l.cartesianToLonLat(A);P.push(e),D.push(e.forwardMercator()),e.lon<u.southWest.lon&&(u.southWest.lon=e.lon),e.lat<u.southWest.lat&&(u.southWest.lat=e.lat),e.lon>u.northEast.lon&&(u.northEast.lon=e.lon),e.lat>u.northEast.lat&&(u.northEast.lat=e.lat)}le.doubleToTwoFloats(A,g,f);let L=n.length-12;n[L]=g.x,n[L+1]=g.y,n[L+2]=g.z,n[L+3]=g.x,n[L+4]=g.y,n[L+5]=g.z,n[L+6]=g.x,n[L+7]=g.y,n[L+8]=g.z,n[L+9]=g.x,n[L+10]=g.y,n[L+11]=g.z,s[L]=f.x,s[L+1]=f.y,s[L+2]=f.z,s[L+3]=f.x,s[L+4]=f.y,s[L+5]=f.z,s[L+6]=f.x,s[L+7]=f.y,s[L+8]=f.z,s[L+9]=f.x,s[L+10]=f.y,s[L+11]=f.z;let _=a.length-16;var S;if(a[_]=y,a[_+1]=w,a[_+2]=C,a[_+3]=B,a[_+4]=y,a[_+5]=w,a[_+6]=C,a[_+7]=B,a[_+8]=y,a[_+9]=w,a[_+10]=C,a[_+11]=B,a[_+12]=y,a[_+13]=w,a[_+14]=C,a[_+15]=B,h[p]=m++,h[p+1]=m++,h[p+2]=m++,h[p+3]=m++,r)S=x[0],h.push(M,M+1,M+1,M+1);else{let e=x[x.length-1],A=x[x.length-2]||e;S=new le(e.x+e.x-A.x,e.y+e.y-A.y,e.z+e.z-A.z),h.push(m-1,m-1,m-1,m-1)}le.doubleToTwoFloats(S,g,f),n.push(g.x,g.y,g.z,g.x,g.y,g.z,g.x,g.y,g.z,g.x,g.y,g.z),s.push(f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z),a.push(y,w,C,B,y,w,C,B,y,w,C,B,y,w,C,B),o.push(1,-1,2,-2)}static appendLineDataLonLat(e,A,t,i,r,n,s,a,o,h,l,d,c,u){var g=0,f=new le,p=new le;c&&(c.southWest.set(180,90),c.northEast.set(-180,-90)),a.length>0?(g=a[a.length-5]+9,a.push(g,g)):a.push(0,0);for(var m=0,x=e.length;m<x;m++){var v=e[m],y=A[m];if(h[m]=[],d[m]=[],l[m]=[],0===v.length)continue;var w,C=g;if(i){let e=v[v.length-1];w=e instanceof Array?o.lonLatToCartesian(new F(e[0],e[1],e[2])):o.lonLatToCartesian(e)}else{let e,A,t=v[0];e=t instanceof Array?o.lonLatToCartesian(new F(t[0],t[1],t[2])):o.lonLatToCartesian(t),t=v[1],t||(t=v[0]),A=t instanceof Array?o.lonLatToCartesian(new F(t[0],t[1],t[2])):o.lonLatToCartesian(t),w=new le(e.x+e.x-A.x,e.y+e.y-A.y,e.z+e.z-A.z)}let x=t;y&&y[0]&&(x=y[0]),le.doubleToTwoFloats(w,f,p),r.push(f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z),n.push(p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z);let b=x[0],I=x[1],M=x[2],P=null!=x[3]?x[3]:1;m>0&&u.push(b,I,M,P,b,I,M,P,b,I,M,P,b,I,M,P),s.push(1,-1,2,-2);for(let e=0,A=v.length;e<A;e++){var B=v[e];B instanceof Array&&(B=new F(B[0],B[1],B[2])),y&&y[e]&&(x=y[e]),b=x[0],I=x[1],M=x[2],P=null!=x[3]?x[3]:1;var E=o.lonLatToCartesian(B);h[m].push(E),l[m].push(B),d[m].push(B.forwardMercator()),le.doubleToTwoFloats(E,f,p),r.push(f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z),n.push(p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z),u.push(b,I,M,P,b,I,M,P,b,I,M,P,b,I,M,P),s.push(1,-1,2,-2),a.push(g++,g++,g++,g++),B.lon<c.southWest.lon&&(c.southWest.lon=B.lon),B.lat<c.southWest.lat&&(c.southWest.lat=B.lat),B.lon>c.northEast.lon&&(c.northEast.lon=B.lon),B.lat>c.northEast.lat&&(c.northEast.lat=B.lat)}var T;if(i){let e=v[0];T=e instanceof Array?o.lonLatToCartesian(new F(e[0],e[1],e[2])):o.lonLatToCartesian(e),a.push(C,C+1,C+1,C+1)}else{let e,A,t=v[v.length-1];e=t instanceof Array?o.lonLatToCartesian(new F(t[0],t[1],t[2])):o.lonLatToCartesian(t),t=v[v.length-2],t||(t=v[0]),A=t instanceof Array?o.lonLatToCartesian(new F(t[0],t[1],t[2])):o.lonLatToCartesian(t),T=new le(e.x+e.x-A.x,e.y+e.y-A.y,e.z+e.z-A.z),a.push(g-1,g-1,g-1,g-1)}y&&y[v.length-1]&&(x=y[v.length-1]),b=x[0],I=x[1],M=x[2],P=null!=x[3]?x[3]:1,le.doubleToTwoFloats(T,f,p),r.push(f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z,f.x,f.y,f.z),n.push(p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z,p.x,p.y,p.z),u.push(b,I,M,P,b,I,M,P,b,I,M,P,b,I,M,P),s.push(1,-1,2,-2),m<e.length-1&&0!==e[m+1].length&&(g+=8,a.push(g,g))}}_setEqualPath3v(e){var A=this._extent;A.southWest.set(180,90),A.northEast.set(-180,-90);for(var t=new le,i=new le,r=this._verticesHigh,n=this._verticesLow,s=this._pathLonLat,a=this._pathLonLatMerc,o=0,h=this._renderNode.ellipsoid,l=0;l<e.length;l++){var d,c,u=e[l];d=this._closedLine?u[u.length-1]:new le(u[0].x+u[0].x-u[1].x,u[0].y+u[0].y-u[1].y,u[0].z+u[0].z-u[1].z),le.doubleToTwoFloats(d,t,i),r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z;for(var g=0;g<u.length;g++){var f=u[g],p=this._path3v[l][g];if(p.x=f.x,p.y=f.y,p.z=f.z,h){var m=h.cartesianToLonLat(f);this._pathLonLat[l][g]=m,s[l][g]=m,a[l][g]=m.forwardMercator(),m.lon<A.southWest.lon&&(A.southWest.lon=m.lon),m.lat<A.southWest.lat&&(A.southWest.lat=m.lat),m.lon>A.northEast.lon&&(A.northEast.lon=m.lon),m.lat>A.northEast.lat&&(A.northEast.lat=m.lat)}le.doubleToTwoFloats(f,t,i),r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z}if(this._closedLine)c=u[0];else{var x=u.length-1;c=new le(u[x].x+u[x].x-u[x-1].x,u[x].y+u[x].y-u[x-1].y,u[x].z+u[x].z-u[x-1].z)}le.doubleToTwoFloats(c,t,i),r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z,r[o]=t.x,n[o++]=i.x,r[o]=t.y,n[o++]=i.y,r[o]=t.z,n[o++]=i.z}}_setEqualPathLonLat(e){var A=this._extent;A.southWest.set(180,90),A.northEast.set(-180,-90);for(var t=new le,i=new le,r=this._verticesHigh,n=this._verticesLow,s=this._pathLonLat,a=this._pathLonLatMerc,o=this._path3v,h=0,l=this._renderNode.ellipsoid,d=0;d<e.length;d++){var c,u,g=e[d];if(this._closedLine)c=l.lonLatToCartesian(g[g.length-1]);else{let e=l.lonLatToCartesian(g[0]),A=l.lonLatToCartesian(g[1]);c=new le(e.x+e.x-A.x,e.y+e.y-A.y,e.z+e.z-A.z)}le.doubleToTwoFloats(c,t,i),r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z;for(var f=0;f<g.length;f++){var p=g[f],m=l.lonLatToCartesian(p);o[d][f]=m,a[d][f]=p.forwardMercator(),s[d][f]=p,le.doubleToTwoFloats(m,t,i),r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,p.lon<A.southWest.lon&&(A.southWest.lon=p.lon),p.lat<A.southWest.lat&&(A.southWest.lat=p.lat),p.lon>A.northEast.lon&&(A.northEast.lon=p.lon),p.lat>A.northEast.lat&&(A.northEast.lat=p.lat)}if(this._closedLine)u=l.lonLatToCartesian(g[0]);else{let e=l.lonLatToCartesian(g[g.length-1]),A=l.lonLatToCartesian(g[g.length-2]);u=new le(e.x+e.x-A.x,e.y+e.y-A.y,e.z+e.z-A.z)}le.doubleToTwoFloats(u,t,i),r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z,r[h]=t.x,n[h++]=i.x,r[h]=t.y,n[h++]=i.y,r[h]=t.z,n[h++]=i.z}}setPointLonLat(e,A,t){if(this._renderNode&&this._renderNode.ellipsoid){let h=this._pathLonLat,l=this._pathLonLatMerc;h[t][A]=e,l[t][A]=e.forwardMercator();var i=this._extent;i.southWest.set(180,90),i.northEast.set(-180,-90);for(var r=0;r<h.length;r++)for(var n=h[r],s=0;s<n.length;s++){var a=n[s].lon,o=n[s].lat;a>i.northEast.lon&&(i.northEast.lon=a),o>i.northEast.lat&&(i.northEast.lat=o),a<i.southWest.lon&&(i.southWest.lon=a),o<i.southWest.lat&&(i.southWest.lat=o)}this.setPoint3v(this._renderNode.ellipsoid.lonLatToCartesian(e),A,t,!0)}else{let i=this._pathLonLat[t];i[A].lon=e.lon,i[A].lat=e.lat,i[A].height=e.height}}setPoint3v(e,A,t,i){if(t=t||0,this._renderNode){var r,n=new le,s=new le,a=this._verticesHigh,o=this._verticesLow,h=this._pathLonLat,l=this._pathLonLatMerc,d=0;r=12*this._pathLengths[t]+24*t;let w=this._path3v[t];w[A].x=e.x,w[A].y=e.y,w[A].z=e.z;let C=this._closedLine||1===w.length;var c;if(0===A||1===A)c=C?w[w.length-1]:new le(w[0].x+w[0].x-w[1].x,w[0].y+w[0].y-w[1].y,w[0].z+w[0].z-w[1].z),d=r,le.doubleToTwoFloats(c,n,s),a[d]=n.x,a[d+1]=n.y,a[d+2]=n.z,a[d+3]=n.x,a[d+4]=n.y,a[d+5]=n.z,a[d+6]=n.x,a[d+7]=n.y,a[d+8]=n.z,a[d+9]=n.x,a[d+10]=n.y,a[d+11]=n.z,o[d]=s.x,o[d+1]=s.y,o[d+2]=s.z,o[d+3]=s.x,o[d+4]=s.y,o[d+5]=s.z,o[d+6]=s.x,o[d+7]=s.y,o[d+8]=s.z,o[d+9]=s.x,o[d+10]=s.y,o[d+11]=s.z;if(!i&&this._renderNode.ellipsoid){var u=this._renderNode.ellipsoid.cartesianToLonLat(e);h[t][A]=u,l[t][A]=u.forwardMercator();var g=this._extent;g.southWest.set(180,90),g.northEast.set(-180,-90);for(let e=0;e<h.length;e++)for(var f=h[e],p=0;p<f.length;p++){var m=f[p].lon,x=f[p].lat;m>g.northEast.lon&&(g.northEast.lon=m),x>g.northEast.lat&&(g.northEast.lat=x),m<g.southWest.lon&&(g.southWest.lon=m),x<g.southWest.lat&&(g.southWest.lat=x)}}if(d=r+12*A+12,le.doubleToTwoFloats(e,n,s),a[d]=n.x,a[d+1]=n.y,a[d+2]=n.z,a[d+3]=n.x,a[d+4]=n.y,a[d+5]=n.z,a[d+6]=n.x,a[d+7]=n.y,a[d+8]=n.z,a[d+9]=n.x,a[d+10]=n.y,a[d+11]=n.z,o[d]=s.x,o[d+1]=s.y,o[d+2]=s.z,o[d+3]=s.x,o[d+4]=s.y,o[d+5]=s.z,o[d+6]=s.x,o[d+7]=s.y,o[d+8]=s.z,o[d+9]=s.x,o[d+10]=s.y,o[d+11]=s.z,A===w.length-1||A===w.length-2){var v;if(C)v=w[0];else{var y=w.length-1;v=new le(w[y].x+w[y].x-w[y-1].x,w[y].y+w[y].y-w[y-1].y,w[y].z+w[y].z-w[y-1].z)}d=r+12*w.length+12,le.doubleToTwoFloats(v,n,s),a[d]=n.x,a[d+1]=n.y,a[d+2]=n.z,a[d+3]=n.x,a[d+4]=n.y,a[d+5]=n.z,a[d+6]=n.x,a[d+7]=n.y,a[d+8]=n.z,a[d+9]=n.x,a[d+10]=n.y,a[d+11]=n.z,o[d]=s.x,o[d+1]=s.y,o[d+2]=s.z,o[d+3]=s.x,o[d+4]=s.y,o[d+5]=s.z,o[d+6]=s.x,o[d+7]=s.y,o[d+8]=s.z,o[d+9]=s.x,o[d+10]=s.y,o[d+11]=s.z}this._changedBuffers[0]=!0}else{let i=this._path3v[t];i[A].x=e.x,i[A].y=e.y,i[A].z=e.z}}_resizePathLengths(e=0){this._pathLengths[0]=0;for(let A=e+1,t=this._path3v.length;A<=t;A++)this._pathLengths[A]=this._pathLengths[A-1]+this._path3v[A-1].length}removeSegment(e){this._path3v.splice(e,1),this.setPath3v([].concat(this._path3v))}removePoint(e,A=0){this._path3v[A].splice(e,1),0===this._path3v[A].length&&this._path3v.splice(A,1),this.setPath3v([].concat(this._path3v))}insertPoint3v(e,A=0,t,i=0){let r=[].concat(this._path3v),n=r[i];if(n){let s=[].concat(this._pathColors);if(n.splice(A,0,e),t){let e=s[i];e||(e=new Array(n.length)),e.splice(A,0,t)}this.setPath3v(r,s)}else this.addPoint3v(e,i)}appendPoint3v(e,A,t){0===this._path3v.length?(this._pathColors.push([A||this._defaultColor]),this.addPoint3v(e)):(this._verticesHigh=Oe(this._verticesHigh),this._verticesLow=Oe(this._verticesLow),this._colors=Oe(this._colors),this._orders=Oe(this._orders),this._indexes=Oe(this._indexes),gt.appendPoint3v(this._path3v,e,this._pathColors,A||this._defaultColor,this._closedLine,this._verticesHigh,this._verticesLow,this._colors,this._orders,this._indexes,!t&&this._renderNode.ellipsoid,this._pathLonLat,this._pathLonLatMerc,this._extent),this._pathLengths[this._path3v.length]+=1,this._changedBuffers[0]=!0,this._changedBuffers[2]=!0,this._changedBuffers[1]=!0)}addPoint3v(e,A=0){A>=this._path3v.length&&this._path3v.push([]),this._path3v[A].push(e),this.setPath3v([].concat(this._path3v))}addPointLonLat(e,A=0){A>=this._pathLonLat.length&&this._pathLonLat.push([]),this._pathLonLat[A].push(e),this.setPathLonLat([].concat(this._pathLonLat))}clear(){this._clearData()}setPointColor(e,A=0,t=0){if(this._renderNode&&A<this._path3v[t].length){let i=this._pathColors[t];if(!i){if(!(this._path3v[t]&&A<this._path3v[t].length))return;this._pathColors[t]=new Array(this._path3v[t].length)}i[A]?(i[A][0]=e[0],i[A][1]=e[1],i[A][2]=e[2],i[A][3]=e[3]||1):i[A]=[e[0],e[1],e[2],e[3]||1];let r=this._colors,n=16*A+16*this._pathLengths[t]+32*t;r[n]=r[n+4]=r[n+8]=r[n+12]=e[0],r[n+1]=r[n+5]=r[n+9]=r[n+13]=e[1],r[n+2]=r[n+6]=r[n+10]=r[n+14]=e[2],r[n+3]=r[n+7]=r[n+11]=r[n+15]=e[3]||1,this._changedBuffers[2]=!0}else{this._pathColors[t][A]=e}}setOpacity(e){this.color.w=e}setThickness(e){this.thickness=e}getThickness(){return this.thickness}setVisibility(e){this.visibility=e}getVisibility(){return this.visibility}setRenderNode(e){e&&(this._renderNode=e,this._pathLonLat.length?this._createDataLonLat([].concat(this._pathLonLat)):this._createData3v([].concat(this._path3v)),this._refresh(),this._update())}_clearData(){this._verticesHigh=null,this._verticesLow=null,this._orders=null,this._indexes=null,this._colors=null,this._verticesHigh=[],this._verticesLow=[],this._orders=[],this._indexes=[],this._colors=[],this._path3v.length=0,this._pathLonLat.length=0,this._pathLonLatMerc.length=0,this._path3v=[],this._pathLonLat=[],this._pathLonLatMerc=[]}_createData3v(e){this._clearData(),gt.appendLineData3v(e,this._pathColors,this._defaultColor,this._closedLine,this._verticesHigh,this._verticesLow,this._orders,this._indexes,this._renderNode.ellipsoid,this._pathLonLat,this._path3v,this._pathLonLatMerc,this._extent,this._colors),this._resizePathLengths(0)}_createDataLonLat(e){this._clearData(),gt.appendLineDataLonLat(e,this._pathColors,this._defaultColor,this._closedLine,this._verticesHigh,this._verticesLow,this._orders,this._indexes,this._renderNode.ellipsoid,this._path3v,this._pathLonLat,this._pathLonLatMerc,this._extent,this._colors),this._resizePathLengths(0)}remove(){this._entity=null,this._pathColors.length=0,this._pathColors=[],this._verticesHigh=null,this._verticesLow=null,this._orders=null,this._indexes=null,this._colors=null,this._verticesHigh=[],this._verticesLow=[],this._orders=[],this._indexes=[],this._colors=[],this._deleteBuffers(),this._handler&&this._handler.remove(this)}setPickingColor3v(e){this._pickingColor[0]=e.x/255,this._pickingColor[1]=e.y/255,this._pickingColor[2]=e.z/255}getExtent(){return this._extent.clone()}getPath3v(){return this._path3v}getPathLonLat(){return this._pathLonLat}getPathColors(){return this._pathColors}setPathColors(e){this._renderNode}setColorHTML(e){this._defaultColor=me(e);let A=pe(e),t=this._pathColors;for(let e=0,i=t.length;e<i;e++){let i=t[e];for(let e=0,t=i.length;e<t;e++)i[e][0]=A.x,i[e][1]=A.y,i[e][2]=A.z,i[e][3]=A.w}let i=this._colors;for(let e=0,t=i.length;e<t;e+=4)i[e]=A.x,i[e+1]=A.y,i[e+2]=A.z,i[e+3]=A.w;this._changedBuffers[2]=!0}setPathLonLat(e,A){this._renderNode&&this._renderNode.ellipsoid?A?(this._setEqualPathLonLat(e),this._changedBuffers[0]=!0,this._changedBuffers[2]=!0):(this._createDataLonLat(e),this._changedBuffers[0]=!0,this._changedBuffers[1]=!0,this._changedBuffers[2]=!0):this._pathLonLat=[].concat(e)}setPath3v(e,A,t){A&&(this._pathColors=[].concat(A)),this._renderNode?t?(this._setEqualPath3v(e),this._changedBuffers[0]=!0,this._changedBuffers[2]=!0):(this._createData3v(e),this._changedBuffers[0]=!0,this._changedBuffers[1]=!0,this._changedBuffers[2]=!0):this._path3v=[].concat(e)}draw(){if(this.visibility&&this._path3v.length){this._update();var e=this._renderNode,A=e.renderer,t=A.handler.programs.polyline_screen,i=t._program,r=A.handler.gl,n=i.attributes,s=i.uniforms;t.activate(),r.polygonOffset(this._handler._entityCollection.polygonOffsetFactor,this._handler._entityCollection.polygonOffsetUnits),r.enable(r.BLEND),r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD),r.blendFuncSeparate(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),r.disable(r.CULL_FACE),r.uniformMatrix4fv(s.proj,!1,A.activeCamera.getProjectionMatrix()),r.uniformMatrix4fv(s.view,!1,A.activeCamera.getViewMatrix()),r.uniform3fv(s.eyePositionHigh,A.activeCamera.eyeHigh),r.uniform3fv(s.eyePositionLow,A.activeCamera.eyeLow),r.uniform2fv(s.uFloatParams,[e._planetRadius2||0,A.activeCamera._tanViewAngle_hradOneByHeight]),r.uniform2fv(s.viewport,[A.handler.canvas.width,A.handler.canvas.height]),r.uniform1f(s.thickness,.5*this.thickness),r.uniform1f(s.opacity,this._handler._entityCollection._fadingOpacity),r.bindBuffer(r.ARRAY_BUFFER,this._colorsBuffer),r.vertexAttribPointer(n.color,this._colorsBuffer.itemSize,r.FLOAT,!1,0,0);var a=this._verticesHighBuffer;r.bindBuffer(r.ARRAY_BUFFER,a),r.vertexAttribPointer(n.prevHigh,a.itemSize,r.FLOAT,!1,12,0),r.vertexAttribPointer(n.currentHigh,a.itemSize,r.FLOAT,!1,12,48),r.vertexAttribPointer(n.nextHigh,a.itemSize,r.FLOAT,!1,12,96),a=this._verticesLowBuffer,r.bindBuffer(r.ARRAY_BUFFER,a),r.vertexAttribPointer(n.prevLow,a.itemSize,r.FLOAT,!1,12,0),r.vertexAttribPointer(n.currentLow,a.itemSize,r.FLOAT,!1,12,48),r.vertexAttribPointer(n.nextLow,a.itemSize,r.FLOAT,!1,12,96),r.bindBuffer(r.ARRAY_BUFFER,this._ordersBuffer),r.vertexAttribPointer(n.order,this._ordersBuffer.itemSize,r.FLOAT,!1,4,0),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this._indexesBuffer),r.drawElements(r.TRIANGLE_STRIP,this._indexesBuffer.numItems,r.UNSIGNED_INT,0)}}drawPicking(){if(this.visibility&&this._path3v.length){var e=this._renderNode,A=e.renderer,t=A.handler.programs.polyline_picking,i=t._program,r=A.handler.gl,n=i.attributes,s=i.uniforms;t.activate(),r.polygonOffset(this._handler._entityCollection.polygonOffsetFactor,this._handler._entityCollection.polygonOffsetUnits),r.enable(r.BLEND),r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD),r.blendFuncSeparate(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),r.disable(r.CULL_FACE),r.uniformMatrix4fv(s.proj,!1,A.activeCamera.getProjectionMatrix()),r.uniformMatrix4fv(s.view,!1,A.activeCamera.getViewMatrix()),r.uniform4fv(s.color,[this._pickingColor[0],this._pickingColor[1],this._pickingColor[2],1]),r.uniform3fv(s.eyePositionHigh,A.activeCamera.eyeHigh),r.uniform3fv(s.eyePositionLow,A.activeCamera.eyeLow),r.uniform2fv(s.uFloatParams,[e._planetRadius2||0,A.activeCamera._tanViewAngle_hradOneByHeight]),r.uniform2fv(s.viewport,[A.handler.canvas.width,A.handler.canvas.height]),r.uniform1f(s.thickness,.5*this.thickness);var a=this._verticesHighBuffer;r.bindBuffer(r.ARRAY_BUFFER,a),r.vertexAttribPointer(n.prevHigh,a.itemSize,r.FLOAT,!1,12,0),r.vertexAttribPointer(n.currentHigh,a.itemSize,r.FLOAT,!1,12,48),r.vertexAttribPointer(n.nextHigh,a.itemSize,r.FLOAT,!1,12,96),a=this._verticesLowBuffer,r.bindBuffer(r.ARRAY_BUFFER,a),r.vertexAttribPointer(n.prevLow,a.itemSize,r.FLOAT,!1,12,0),r.vertexAttribPointer(n.currentLow,a.itemSize,r.FLOAT,!1,12,48),r.vertexAttribPointer(n.nextLow,a.itemSize,r.FLOAT,!1,12,96),r.bindBuffer(r.ARRAY_BUFFER,this._ordersBuffer),r.vertexAttribPointer(n.order,this._ordersBuffer.itemSize,r.FLOAT,!1,4,0),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this._indexesBuffer),r.drawElements(r.TRIANGLE_STRIP,this._indexesBuffer.numItems,r.UNSIGNED_INT,0)}}_refresh(){for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]=!0}_update(){if(this._renderNode)for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]&&(this._buffersUpdateCallbacks[e].call(this),this._changedBuffers[e]=!1)}_deleteBuffers(){if(this._renderNode){var e=this._renderNode.renderer.handler.gl;e.deleteBuffer(this._verticesHighBuffer),e.deleteBuffer(this._verticesLowBuffer),e.deleteBuffer(this._ordersBuffer),e.deleteBuffer(this._indexesBuffer),e.deleteBuffer(this._colorsBuffer),this._verticesHighBuffer=null,this._verticesLowBuffer=null,this._ordersBuffer=null,this._indexesBuffer=null,this._colorsBuffer=null}}_createVerticesBuffer(){var e=this._renderNode.renderer.handler;let A=this._verticesHigh.length/3;this._verticesHighBuffer&&this._verticesHighBuffer.numItems===A||(e.gl.deleteBuffer(this._verticesHighBuffer),e.gl.deleteBuffer(this._verticesLowBuffer),this._verticesHighBuffer=e.createStreamArrayBuffer(3,A),this._verticesLowBuffer=e.createStreamArrayBuffer(3,A)),this._verticesHigh=Fe(this._verticesHigh),this._verticesLow=Fe(this._verticesLow),e.setStreamArrayBuffer(this._verticesHighBuffer,this._verticesHigh),e.setStreamArrayBuffer(this._verticesLowBuffer,this._verticesLow)}_createIndexBuffer(){var e=this._renderNode.renderer.handler;e.gl.deleteBuffer(this._ordersBuffer),e.gl.deleteBuffer(this._indexesBuffer),this._orders=Fe(this._orders),this._ordersBuffer=e.createArrayBuffer(this._orders,1,this._orders.length/2),this._indexes=Fe(this._indexes,Uint32Array),this._indexesBuffer=e.createElementArrayBuffer(this._indexes,1,this._indexes.length)}_createColorsBuffer(){var e=this._renderNode.renderer.handler;e.gl.deleteBuffer(this._colorsBuffer),this._colors=Fe(this._colors),this._colorsBuffer=e.createArrayBuffer(new Float32Array(this._colors),4,this._colors.length/4)}}function ft(e,A){if(e>=0){let t=65536*Math.floor(e/65536);A[0]=Math.fround(t),A[1]=Math.fround(e-t)}else{let t=65536*Math.floor(-e/65536);A[0]=Math.fround(-t),A[1]=Math.fround(e+t)}return A}function pt(e,A){if(e>=0){let t=65536*Math.floor(e/65536);A.x=Math.fround(t),A.y=Math.fround(e-t)}else{let t=65536*Math.floor(-e/65536);A.x=Math.fround(-t),A.y=Math.fround(e+t)}return A}class mt{constructor(e){e=e||{},this.id=_r._staticCounter++,this._thickness=e.thickness||2,this._length=e.length||0,this._lengthHighLow=new Float32Array(2),ft(this._length,this._lengthHighLow),this._startPosition=Ee(e.startPosition),this._startPositionHigh=new le,this._startPositionLow=new le,le.doubleToTwoFloats(this._startPosition,this._startPositionHigh,this._startPositionLow),this._endPosition=Ee(e.endPosition),this._endPositionHigh=new le,this._endPositionLow=new le,le.doubleToTwoFloats(this._endPosition,this._endPositionHigh,this._endPositionLow),this._startColor=Te(e.startColor),this._endColor=Te(e.endColor),this._visibility=null==e.visibility||e.visibility,this._entity=null,this._handler=null,this._handlerIndex=-1}setStartPosition(e,A,t){this._startPosition.x=e,this._startPosition.y=A,this._startPosition.z=t,le.doubleToTwoFloats(this._startPosition,this._startPositionHigh,this._startPositionLow),this._handler&&this._handler.setStartPositionArr(this._handlerIndex,this._startPositionHigh,this._startPositionLow)}setStartPosition3v(e){this._startPosition.x=e.x,this._startPosition.y=e.y,this._startPosition.z=e.z,le.doubleToTwoFloats(this._startPosition,this._startPositionHigh,this._startPositionLow),this._handler&&this._handler.setStartPositionArr(this._handlerIndex,this._startPositionHigh,this._startPositionLow)}setEndPosition(e,A,t){this._endPosition.x=e,this._endPosition.y=A,this._endPosition.z=t,le.doubleToTwoFloats(this._endPosition,this._endPositionHigh,this._endPositionLow),this._handler&&this._handler.setEndPositionArr(this._handlerIndex,this._endPositionHigh,this._endPositionLow)}setEndPosition3v(e){this._endPosition.x=e.x,this._endPosition.y=e.y,this._endPosition.z=e.z,le.doubleToTwoFloats(this._endPosition,this._endPositionHigh,this._endPositionLow),this._handler&&this._handler.setEndPositionArr(this._handlerIndex,this._endPositionHigh,this._endPositionLow)}setLength(e){this._length=e,this._handler&&this._handler.setLengthArr(this._handlerIndex,e)}setThickness(e){this._thickness=e,this._handler&&this._handler.setThicknessArr(this._handlerIndex,e)}setColors4v(e,A){e&&(this._startColor.x=e.x,this._startColor.y=e.y,this._startColor.z=e.z,this._startColor.w=e.w),this._endColor&&(this._endColor.x=A.x,this._endColor.y=A.y,this._endColor.z=A.z,this._endColor.w=A.w),this._handler&&this._handler.setRgbaArr(this._handlerIndex,this._startColor,this._endColor)}setColorsHTML(e,A){e&&(this._startColor=pe(e)),A&&(this._endColor=pe(A)),this._handler&&this._handler.setRgbaArr(this._handlerIndex,this._startColor,this._endColor)}getStartPosition(){return this._startPosition}getEndPosition(){return this._endPosition}setVisibility(e){this._visibility=e,this._handler&&this._handler.setVisibility(this._handlerIndex,e)}getVisibility(){return this._visibility}remove(){this._entity=null,this._handler&&this._handler.remove(this)}setPickingColor3v(e){this._handler&&this._handler.setPickingColorArr(this._handlerIndex,e)}}class xt{constructor(e){e=e||{},this.id=xt._staticCounter++,this.visibility=null==e.visibility||e.visibility,this.pointSize=e.pointSize||3,this.pickingDistance=e.pickingDistance||0,this._renderNode=null,this._entity=null,this._points=[],this._coordinatesData=[],this._colorData=[],this._pickingColorData=[],this._coordinatesBuffer=null,this._colorBuffer=null,this._pickingColorBuffer=null,this._handler=null,this._handlerIndex=-1,this._buffersUpdateCallbacks=[],this._buffersUpdateCallbacks[0]=this._createCoordinatesBuffer,this._buffersUpdateCallbacks[1]=this._createColorBuffer,this._buffersUpdateCallbacks[2]=this._createPickingColorBuffer,this._changedBuffers=new Array(this._buffersUpdateCallbacks.length),this.setPoints(e.points)}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}clear(){this._points.length=0,this._points=[],this._coordinatesData.length=0,this._coordinatesData=[],this._colorData.length=0,this._colorData=[],this._pickingColorData.length=0,this._pickingColorData=[],this._deleteBuffers()}setOpacity(e){this.opacity=e}setVisibility(e){this.visibility=e}getVisibility(){return this.visibility}setRenderNode(e){this._renderNode=e,this._setPickingColors()}remove(){this._entity=null,this._handler&&this._handler.remove(this)}setPoints(e){this.clear();for(var A=0;A<e.length;A++){var t=e[A],i=new le(t[0],t[1],t[2]),r=new se(t[3],t[4],t[5],null==t[6]?255:t[6]);this._coordinatesData.push(i.x,i.y,i.z),this._colorData.push(r.x/255,r.y/255,r.z/255,r.w/255);var n={_pickingColor:new le,_entityCollection:this._entity&&this._entity._entityCollection,index:A,position:i,color:r,pointCloud:this,properties:t[7]||{}};this._points.push(n),this._renderNode&&(this._renderNode.renderer.assignPickingColor(n),this._pickingColorData.push(n._pickingColor.x/255,n._pickingColor.y/255,n._pickingColor.z/255,1))}this._changedBuffers[0]=!0,this._changedBuffers[1]=!0,this._changedBuffers[2]=!0}setPointPosition(e,A,t,i){this._changedBuffers[0]=!0}setPointColor(e,A,t,i,r){this._changedBuffers[1]=!0}addPoints(e){this._changedBuffers[0]=!0,this._changedBuffers[1]=!0,this._changedBuffers[2]=!0}addPoint(e,A){this._changedBuffers[0]=!0,this._changedBuffers[1]=!0,this._changedBuffers[2]=!0}getPoint(e){return this._points[e]}removePoint(e){this._changedBuffers[0]=!0,this._changedBuffers[1]=!0,this._changedBuffers[2]=!0}insertPoint(e,A){this._changedBuffers[0]=!0,this._changedBuffers[1]=!0,this._changedBuffers[2]=!0}each(e){for(var A=this._points.length;A--;)e&&e(this._points[A])}draw(){if(this.visibility&&this._coordinatesData.length){this._update();var e=this._renderNode.renderer,A=e.handler.programs.pointCloud,t=A._program,i=e.handler.gl,r=t.attributes,n=t.uniforms;i.polygonOffset(this._handler._entityCollection.polygonOffsetFactor,this._handler._entityCollection.polygonOffsetUnits),A.activate(),i.uniformMatrix4fv(n.projectionViewMatrix,!1,e.activeCamera._projectionViewMatrix._m),i.uniform1f(n.opacity,this._handler._entityCollection._fadingOpacity),i.uniform1f(n.pointSize,this.pointSize),i.bindBuffer(i.ARRAY_BUFFER,this._coordinatesBuffer),i.vertexAttribPointer(r.coordinates,this._coordinatesBuffer.itemSize,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,this._colorBuffer),i.vertexAttribPointer(r.colors,this._colorBuffer.itemSize,i.FLOAT,!1,0,0),i.drawArrays(i.POINTS,0,this._coordinatesBuffer.numItems)}}drawPicking(){if(this.visibility&&this._coordinatesData.length){var e=this._renderNode.renderer,A=e.handler.programs.pointCloud,t=A._program,i=e.handler.gl,r=t.attributes,n=t.uniforms;A.activate(),i.polygonOffset(this._handler._entityCollection.polygonOffsetFactor,this._handler._entityCollection.polygonOffsetUnits),i.uniformMatrix4fv(n.projectionViewMatrix,!1,e.activeCamera._projectionViewMatrix._m),i.uniform1f(n.opacity,this._handler._entityCollection._fadingOpacity),i.uniform1f(n.pointSize,this.pointSize+this.pickingDistance),i.bindBuffer(i.ARRAY_BUFFER,this._coordinatesBuffer),i.vertexAttribPointer(r.coordinates,this._coordinatesBuffer.itemSize,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,this._pickingColorBuffer),i.vertexAttribPointer(r.colors,this._pickingColorBuffer.itemSize,i.FLOAT,!1,0,0),i.drawArrays(i.POINTS,0,this._coordinatesBuffer.numItems)}}_update(){if(this._renderNode)for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]&&(this._buffersUpdateCallbacks[e].call(this),this._changedBuffers[e]=!1)}_deleteBuffers(){if(this._renderNode){var e=this._renderNode.renderer.handler.gl;e.deleteBuffer(this._coordinatesBuffer),e.deleteBuffer(this._colorBuffer),e.deleteBuffer(this._pickingColorBuffer)}this._coordinatesBuffer=null,this._colorBuffer=null,this._pickingColorBuffer=null}_createCoordinatesBuffer(){var e=this._renderNode.renderer.handler;e.gl.deleteBuffer(this._coordinatesBuffer),this._coordinatesBuffer=e.createArrayBuffer(new Float32Array(this._coordinatesData),3,this._coordinatesData.length/3)}_createColorBuffer(){var e=this._renderNode.renderer.handler;e.gl.deleteBuffer(this._colorBuffer),this._colorBuffer=e.createArrayBuffer(new Float32Array(this._colorData),4,this._colorData.length/4)}_createPickingColorBuffer(){var e=this._renderNode.renderer.handler;e.gl.deleteBuffer(this._pickingColorBuffer),this._pickingColorBuffer=e.createArrayBuffer(new Float32Array(this._pickingColorData),4,this._pickingColorData.length/4)}_setPickingColors(){if(this._renderNode){for(var e=0;e<this._points.length;e++){var A=this._points[e];A._entity=this._entity,A._entityCollection=this._entity._entityCollection,this._renderNode.renderer.assignPickingColor(A),this._pickingColorData.push(A._pickingColor.x/255,A._pickingColor.y/255,A._pickingColor.z/255,1)}this._changedBuffers[2]=!0}}}class vt{constructor(e){e=e||{},this.id=vt._staticCounter++,this.position=e.position||new le,this.orientation=e.orientation||new he(0,0,0,1),this.scale=e.scale||new le(1,1,1),this.color=e.color?new Float32Array(e.color):new Float32Array([1,1,1,1]),this.visibility=null==e.visibility||e.visibility,this._src=e.src||null,this._positionBuffer=null,this._normalBuffer=null,this._indexBuffer=null,this._textureCoordBuffer=null,this._positionData=[],this._normalData=[],this._indexData=[],this._textureCoordData=[],this._mxScale=(new ae).setIdentity().scale(this.scale),this._mxTranslation=(new ae).setIdentity(),this._mxModel=(new ae).setIdentity(),this.texture=null,this._renderNode=null,this._pickingColor=[0,0,0,0],this._entity=null,this._handler=null,this._handlerIndex=-1}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}clear(){this.position.set(0,0,0),this.orientation.set(0,0,0,1),this.scale.set(1,1,1),this._positionData.length=0,this._normalData.length=0,this._indexData.length=0,this._mxScale.setIdentity(),this._mxTranslation.setIdentity(),this._mxModel.setIdentity(),this._renderNode.handler.gl.deleteTexture(this.texture),this.texture=null,this._deleteBuffers()}setColor(e){this.color[0]=e[0],this.color[1]=e[1],this.color[2]=e[2],this.color[3]=e[3]}setColor4v(e){this.color[0]=e.x,this.color[1]=e.y,this.color[2]=e.z,this.color[3]=e.w}setOpacity(e){this.color[3]=e}_deleteBuffers(){var e=this._renderNode.renderer.handler.gl;e.deleteBuffer(this._positionBuffer),e.deleteBuffer(this._normalBuffer),e.deleteBuffer(this._indexBuffer),this._positionBuffer=null,this._normalBuffer=null,this._indexBuffer=null}setVisibility(e){this.visibility=e}getVisibility(){return this.visibility}setRenderNode(e){if(this._renderNode=e,this._createBuffers(),this._src){var A=new Image,t=this;A.onload=function(){t.texture=e.renderer.handler.createTextureDefault(this)},A.src=this._src}}setPosition3v(e){this.position.copy(e),this._mxTranslation.translateToPosition(e),this.refresh()}translate3v(e){this.position.addA(e),this._mxTranslation.translate(e)}setScale3v(e){this.scale.copy(e),this._mxScale.setIdentity().scale(e)}setScale(e){this.scale.x=this.scale.y=this.scale.z=e,this._mxScale.setIdentity().scale(this.scale)}remove(){this._entity=null,this._handler&&this._handler.remove(this)}setPickingColor3v(e){this._pickingColor[0]=e.x/255,this._pickingColor[1]=e.y/255,this._pickingColor[2]=e.z/255,this._pickingColor[3]=1}_createBuffers(){this._deleteBuffers();var e=this._renderNode.renderer;this._positionBuffer=e.handler.createArrayBuffer(new Float32Array(this._positionData),3,this._positionData.length/3),this._normalBuffer=e.handler.createArrayBuffer(new Float32Array(this._normalData),3,this._normalData.length/3),this._indexBuffer=e.handler.createElementArrayBuffer(new Uint16Array(this._indexData),1,this._indexData.length),this._textureCoordBuffer=e.handler.createArrayBuffer(new Float32Array(this._textureCoordData),2,this._textureCoordData.length/2)}refresh(){this._mxModel=this._mxTranslation.mul(this.orientation.getMat4().mul(this._mxScale))}draw(){if(this.visibility){let e,A,t,i,r=this._renderNode,n=r.renderer,s=n.handler.gl;r.lightEnabled?(e=n.handler.programs.shape_wl,A=e._program,t=A.attributes,i=A.uniforms,e.activate(),s.uniform4fv(i.lightsPositions,r._lightsTransformedPositions),s.uniform3fv(i.lightsParamsv,r._lightsParamsv),s.uniform1fv(i.lightsParamsf,r._lightsParamsf),s.uniformMatrix4fv(i.projectionMatrix,!1,n.activeCamera.getProjectionMatrix()),s.uniformMatrix4fv(i.viewMatrix,!1,n.activeCamera.getViewMatrix()),s.uniformMatrix3fv(i.normalMatrix,!1,n.activeCamera.getNormalMatrix()),s.bindBuffer(s.ARRAY_BUFFER,this._normalBuffer),s.vertexAttribPointer(t.aVertexNormal,this._normalBuffer.itemSize,s.FLOAT,!1,0,0)):(e=n.handler.programs.shape_nl,A=e._program,i=A.uniforms,t=A.attributes,e.activate(),s.uniformMatrix4fv(i.projectionViewMatrix,!1,n.activeCamera.getProjectionViewMatrix())),s.uniform4fv(i.uColor,this.color),s.bindBuffer(s.ARRAY_BUFFER,this._positionBuffer),s.vertexAttribPointer(t.aVertexPosition,this._positionBuffer.itemSize,s.FLOAT,!1,0,0),s.uniformMatrix4fv(i.modelMatrix,!1,this._mxModel._m),s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,this.texture),s.uniform1i(i.uSampler,0),s.bindBuffer(s.ARRAY_BUFFER,this._textureCoordBuffer),s.vertexAttribPointer(t.aTextureCoord,this._textureCoordBuffer.itemSize,s.FLOAT,!1,0,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,this._indexBuffer),s.drawElements(n.handler.gl.TRIANGLES,this._indexBuffer.numItems,s.UNSIGNED_SHORT,0)}}drawPicking(){if(this.visibility){let e,A,t,i,r=this._renderNode.renderer,n=r.handler.gl;e=r.handler.programs.shape_picking,A=e._program,i=A.uniforms,t=A.attributes,e.activate(),n.uniformMatrix4fv(i.projectionViewMatrix,!1,r.activeCamera.getProjectionViewMatrix()),n.uniform4fv(i.uColor,[this._pickingColor[0],this._pickingColor[1],this._pickingColor[2],1]),n.bindBuffer(n.ARRAY_BUFFER,this._positionBuffer),n.vertexAttribPointer(t.aVertexPosition,this._positionBuffer.itemSize,n.FLOAT,!1,0,0),n.uniformMatrix4fv(i.modelMatrix,!1,this._mxModel._m),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this._indexBuffer),n.drawElements(r.handler.gl.TRIANGLES,this._indexBuffer.numItems,n.UNSIGNED_SHORT,0)}}}class yt extends vt{constructor(e){super(e),this._radius=e.radius||1,this._latBands=e.latBands||16,this._lonBands=e.lonBands||16,this._createData()}_createData(){for(let l=0;l<=this._latBands;l++){var e=l*Math.PI/this._latBands,A=Math.sin(e),t=Math.cos(e);for(let e=0;e<=this._lonBands;e++){var i=2*e*Math.PI/this._lonBands,r=Math.sin(i),n=Math.cos(i)*A,s=t,a=r*A,o=1-e/this._lonBands,h=l/this._latBands;this._normalData.push(n),this._normalData.push(s),this._normalData.push(a),this._textureCoordData.push(o),this._textureCoordData.push(h),this._positionData.push(this._radius*n),this._positionData.push(this._radius*s),this._positionData.push(this._radius*a)}}for(let e=0;e<this._latBands;e++)for(let A=0;A<this._lonBands;A++){var l=e*(this._lonBands+1)+A,d=l+this._lonBands+1;this._indexData.push(l),this._indexData.push(l+1),this._indexData.push(d),this._indexData.push(d),this._indexData.push(l+1),this._indexData.push(d+1)}}}class wt{constructor(e,A,t){this.a=e||0,this.b=A||0,this.c=t||0}static get(e,A){return new wt(A.y-e.y,e.x-A.x,A.x*e.y-e.x*A.y)}static getParallel(e,A){return new wt(e.a,e.b,-e.a*A.x-e.b*A.y)}static getIntersection(e,A){var t=(A.b*e.c-e.b*A.c)/(e.b*A.a-A.b*e.a);return new de(t,-(e.c+e.a*t)/e.b)}intersects(e){return wt.getIntersection(this,e)}}let Ct=["FLOAT","DOUBLE","BOOL","INT","UINT","VEC2","VEC3","VEC4","DVEC2","DVEC3","DVEC4","BVEC2","BVEC3","BVEC4","IVEC2","IVEC3","IVEC4","UVEC2","UVEC3","UVEC4","MAT2","DMAT2","MAT3","DMAT3","MAT4","DMAT4","MAT2X3","MAT2X4","MAT3X2","MAT3X4","MAT4X2","MAT4X3","DMAT2X3","DMAT2X4","DMAT3X2","DMAT3X4","DMAT4X2","DMAT4X3","SAMPLER1D","SAMPLER2D","SAMPLER3D","SAMPLERCUBE","SAMPLER2DSHADOW","SAMPLER2DARRAY","INTXX","FLOATXX"];const Bt={};for(let e=0;e<Ct.length;e++)Bt[Ct[e]]=e;const Et={};for(let e=0;e<Ct.length;e++)Et[Ct[e].toLowerCase()]=Bt[Ct[e]];const Tt={u:[],a:[]};Tt.u[Bt.MAT4]=function(e,A){e.gl.uniformMatrix4fv(A._pName,!1,A.value)},Tt.u[Bt.MAT3]=function(e,A){e.gl.uniformMatrix3fv(A._pName,!1,A.value)},Tt.u[Bt.FLOAT]=function(e,A){e.gl.uniform1f(A._pName,A.value)},Tt.u[Bt.INT]=function(e,A){e.gl.uniform1i(A._pName,A.value)},Tt.u[Bt.VEC2]=function(e,A){e.gl.uniform2fv(A._pName,A.value)},Tt.u[Bt.VEC3]=function(e,A){e.gl.uniform3fv(A._pName,A.value)},Tt.u[Bt.VEC4]=function(e,A){e.gl.uniform4fv(A._pName,A.value)},Tt.u[Bt.SAMPLER2D]=function(e,A){let t=e.gl;t.activeTexture(t.TEXTURE0+e._textureID),t.bindTexture(t.TEXTURE_2D,A.value),t.uniform1i(A._pName,e._textureID),e._textureID++},Tt.u[Bt.SAMPLERCUBE]=function(e,A){let t=e.gl;t.activeTexture(t.TEXTURE0+e._textureID),t.bindTexture(t.TEXTURE_CUBE_MAP,A.value),t.uniform1i(A._pName,e._textureID),e._textureID++},Tt.u[Bt.SAMPLER2DARRAY]=function(e,A){let t=e.gl,i=A.value.length,r=new Int32Array(i);for(let n=0;n<i;n++)t.activeTexture(t.TEXTURE0+e._textureID+n),t.bindTexture(t.TEXTURE_2D,A.value[n]),r[n]=n;t.uniform1iv(A._pName,r)},Tt.u[Bt.INTXX]=function(e,A){e.gl.uniform1iv(A._pName,A.value)},Tt.u[Bt.FLOATXX]=function(e,A){e.gl.uniform1fv(A._pName,A.value)},Tt.a[Bt.FLOAT]=function(e,A){e.gl.vertexAttrib1f(A._pName,A.value)},Tt.a[Bt.VEC2]=function(e,A){e.gl.vertexAttrib2fv(A._pName,A.value)},Tt.a[Bt.VEC3]=function(e,A){e.gl.vertexAttrib3fv(A._pName,A.value)};const bt=new class{constructor(){this._container=document.createElement("div"),this._container.classList.add("ogConsole"),this._container.style.display="none",document.body&&document.body.appendChild(this._container),this._visibility=!1}getVisibility(){return this._visibility}setVisibility(e){this._visibility!=e&&(this._visibility=e,this._visibility?this.show():this.hide())}show(){this._container.parentNode||document.body&&document.body.appendChild(this._container),this._container.style.display="block",this._visibility=!0}hide(){this._container.style.display="none",this._visibility=!1}logErr(e){var A=document.createElement("div");A.classList.add("ogConsole-text"),A.classList.add("ogConsole-error"),A.innerHTML="error: "+e,console.log(A.innerHTML),this._container.appendChild(A),this.show()}logWrn(e){var A=document.createElement("div");A.classList.add("ogConsole-text"),A.classList.add("ogConsole-warning"),A.innerHTML="warning: "+e,console.log(A.innerHTML),this._container.appendChild(A),this.show()}log(e,A){var t=document.createElement("div");if(t.classList.add("ogConsole-text"),A)for(var i in A)t.style[i]=A[i];t.innerHTML=e,console.log(e),this._container.appendChild(t),this.show()}},It=["BYTE","SHORT","UNSIGNED_BYTE","UNSIGNED_SHORT","FLOAT","HALF_FLOAT"];class Mt{constructor(e,A){this.name=e,this.attributes={},this.uniforms={},this._attributes={};for(let e in A.attributes)"string"==typeof A.attributes[e]||"number"==typeof A.attributes[e]?this._attributes[e]={type:A.attributes[e]}:this._attributes[e]=A.attributes[e];this._uniforms={};for(let e in A.uniforms)"string"==typeof A.uniforms[e]||"number"==typeof A.uniforms[e]?this._uniforms[e]={type:A.uniforms[e]}:this._uniforms[e]=A.uniforms[e];this.vertexShader=A.vertexShader,this.fragmentShader=A.fragmentShader,this.gl=null,this._variables={},this._p=null,this._textureID=0,this._attribArrays=[],this._attribDivisor=[]}static bindBuffer(e,A){var t=e.gl;t.bindBuffer(t.ARRAY_BUFFER,A.value),t.vertexAttribPointer(A._pName,A.value.itemSize,A.itemType,A.normalized,0,0)}use(){this.gl.useProgram(this._p)}set(e){for(var A in this._textureID=0,e)this._variables[A].value=e[A],this._variables[A]._callback(this,this._variables[A])}apply(){this._textureID=0;var e=this._variables;for(var A in e)e[A]._callback(this,e[A])}drawIndexBuffer(e,A){this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,A),this.gl.drawElements(e,A.numItems,this.gl.UNSIGNED_SHORT,0)}drawArrays(e,A){this.gl.drawArrays(e,0,A)}_getShaderCompileStatus(e,A){return this.gl.shaderSource(e,A),this.gl.compileShader(e),!!this.gl.getShaderParameter(e,this.gl.COMPILE_STATUS)||(bt.logErr("og/Program/Program:"+this.name+" - "+this.gl.getShaderInfoLog(e)+"."),!1)}_createVertexShader(e){var A=this.gl.createShader(this.gl.VERTEX_SHADER);return this._getShaderCompileStatus(A,e)?A:null}_createFragmentShader(e){var A=this.gl.createShader(this.gl.FRAGMENT_SHADER);return this._getShaderCompileStatus(A,e)?A:null}disableAttribArrays(){var e=this.gl,A=this._attribArrays;for(let t=0,i=A.length;t<i;t++)e.disableVertexAttribArray(A[t]),e.vertexAttribDivisor(A[t],0)}enableAttribArrays(){var e=this.gl,A=this._attribArrays,t=this._attribDivisor;for(let i=0,r=A.length;i<r;i++)e.enableVertexAttribArray(A[i]),e.vertexAttribDivisor(A[i],t[i])}delete(){this.gl.deleteProgram(this._p)}createProgram(e){this.gl=e,this._p=this.gl.createProgram();var A=this._createFragmentShader(this.fragmentShader),t=this._createVertexShader(this.vertexShader);if(e.attachShader(this._p,A),e.attachShader(this._p,t),e.linkProgram(this._p),!e.getProgramParameter(this._p,e.LINK_STATUS))return bt.logErr("og/Program/Program:"+this.name+" - couldn't initialise shaders. "+e.getProgramInfoLog(this._p)+"."),void e.deleteProgram(this._p);for(var i in this.use(),this._attributes){this._variables[i]=this._attributes[i],this._attributes[i]._callback=Mt.bindBuffer;let A=this._attributes[i].itemType?this._attributes[i].itemType.trim().toUpperCase():"FLOAT";if(-1==It.indexOf(A)?(bt.logErr(`og/Program/Program: ${this.name}- attribute '${i}', item type ${this._attributes[i].itemType} not exists.`),this._attributes[i].itemType=e.FLOAT):this._attributes[i].itemType=e[A],this._attributes[i].normalized=this._attributes[i].normalized||!1,this._attributes[i].divisor=this._attributes[i].divisor||0,this._p[i]=e.getAttribLocation(this._p,i),null==this._p[i])return bt.logErr("og/Program/Program:"+this.name+" - attribute '"+i+"' is not exists."),void e.deleteProgram(this._p);let t=this._attributes[i].type;"string"==typeof t&&(t=Et[t.trim().toLowerCase()]);let r=this._attributes[i].divisor;if(t===Bt.MAT4){let e=this._p[i];this._attribArrays.push(e,e+1,e+2,e+3),this._attribDivisor.push(r,r,r,r)}else this._attribArrays.push(this._p[i]),this._attribDivisor.push(r);e.enableVertexAttribArray(this._p[i]),this._attributes[i]._pName=this._p[i],this.attributes[i]=this._p[i]}for(var r in this._uniforms){if("string"==typeof this._uniforms[r].type?this._uniforms[r]._callback=Tt.u[Et[this._uniforms[r].type.trim().toLowerCase()]]:this._uniforms[r]._callback=Tt.u[this._uniforms[r].type],this._variables[r]=this._uniforms[r],this._p[r]=e.getUniformLocation(this._p,r),null==this._p[r])return bt.logErr("og/Program/Program:"+this.name+" - uniform '"+r+"' is not exists."),void e.deleteProgram(this._p);this._uniforms[r]._pName=this._p[r],this.uniforms[r]=this._p[r]}e.detachShader(this._p,A),e.detachShader(this._p,t),e.deleteShader(A),e.deleteShader(t)}}function Pt(e){return new Uint32Array(e)}function Dt(e){let A=[];for(var t,i,r,n=1;n<e-1-1;n++){for(var s=1;s<e-1;s++)t=n*e+s,i=(r=(n+1)*e)+s,A.push(t,i);A.push(i,r+1)}return A.push(A[A.length-1],e*e-e),Pt(A)}function Lt(e,A){let t=[];for(var i=(e-1)/A,r=e*e-e,n=0,s=0;s<e-2;s++){s%i==0&&(n=s);var a=r-e*s-e+1,o=r-e*n;t.push(o,a)}return A===e-1&&(t.push(e),t.push(0)),Pt(t)}function _t(e,A){let t=[];for(var i=(e-1)/A,r=0,n=0;n<e-2;n++){n%i==0&&(r=n);var s=e+n+1,a=r;t.push(a,s)}return A===e-1&&(t.push(e-2),t.push(e-1)),Pt(t)}function St(e,A){let t=[];for(var i=(e-1)/A,r=0,n=0;n<e-2;n++){n%i==0&&(r=n);var s=e*(n+1)+e-2,a=e+e*r-1;t.push(a,s)}return A===e-1&&(t.push(e*(e-1)-1),t.push(e*e-1)),Pt(t)}function Rt(e,A){let t=[];for(var i=(e-1)/A,r=0,n=e*(e-1)-2,s=e*e-1,a=0;a<e-2;a++){a%i==0&&(r=a);var o=n-a,h=s-r;t.push(h,o)}return A===e-1&&t.push(e*e-e+1),t.push(e*e-e),Pt(t)}function kt(e){var A=new Uint16Array((e+1)*(e+1)*2);let t=0;for(var i=0;i<=e;i++)for(var r=0;r<=e;r++)A[t++]=r/e*65535,A[t++]=i/e*65535;return A}let zt=new class{constructor(e=0){this._maxGridSize=e}get maxGridSize(){return this._maxGridSize}init(){this.centerIndexesTable=function(e){for(var A=[],t=0;t<=e;t++){var i=Math.pow(2,t);A[t]=Dt(i+1)}return A}(this._maxGridSize),this.skirtsIndexesTable=function(e){var A=[];A[0]=[],A[3]=[],A[2]=[],A[1]=[];for(var t=0;t<=e;t++){var i=Math.pow(2,t)+1;A[0][t]=[],A[3][t]=[],A[2][t]=[],A[1][t]=[];for(var r=0;r<=e;r++){var n=Math.pow(2,r);A[3][t][r]=Lt(i,n),A[0][t][r]=_t(i,n),A[1][t][r]=St(i,n),A[2][t][r]=Rt(i,n)}}return A}(this._maxGridSize)}setMaxGridSize(e){this._maxGridSize=e,this.init()}createSegmentIndexes(e,A){if(e){let t=this.centerIndexesTable[e],i=this.skirtsIndexesTable[3][e][A[3]],r=this.skirtsIndexesTable[0][e][A[0]],n=this.skirtsIndexesTable[1][e][A[1]],s=this.skirtsIndexesTable[2][e][A[2]],a=Pt(t.length+i.length+r.length+n.length+s.length);return a.set(t,0),a.set(i,t.length),a.set(r,t.length+i.length),a.set(n,t.length+i.length+r.length),a.set(s,t.length+i.length+r.length+n.length),a}return Pt([0,2,1,3])}initTextureCoordsTable(e){for(var A=[],t=0;t<=e;t++){var i=Math.pow(2,t);A[t]=kt(i)}return A}};function Ht(){return zt}class Ft{constructor(e,A){this._canvas=document.createElement("canvas"),this._canvas.width=e||256,this._canvas.height=A||256,this._context=this._canvas.getContext("2d")}getCanvas(){return this._canvas}getContext(){return this._context}fillEmpty(){for(var e=this._context.getImageData(0,0,this._canvas.width,this._canvas.height),A=e.data,t=0,i=A.length;t<i;t+=4)A[t]=A[t+1]=A[t+2]=A[t+3]=0;this._context.putImageData(e,0,0)}getData(){return this._context.getImageData(0,0,this._canvas.width,this._canvas.height).data}fillColor(e){this._context.fillStyle=e,this._context.fillRect(0,0,this._canvas.width,this._canvas.height)}setData(e){var A=this._context.createImageData(this._canvas.width,this._canvas.height);A.data.set(e),this._context.putImageData(A,0,0)}resize(e,A){this._canvas.width=e,this._canvas.height=A,this._context=this._canvas.getContext("2d")}drawImage(e,A,t,i,r){this._context=this._canvas.getContext("2d"),this._context.drawImage(e,A||0,t||0,i||e.width,r||e.height)}getImage(){var e=new Image;return e.width=this.getWidth(),e.height=this.getHeight(),e.src=this._canvas.toDataURL("image/png"),e}getTextWidth(e){var A=this._context.measureText(e);return Math.round(A.width)}drawText(e,A,t,i,r){this._context.fillStyle=r||"black",this._context.font=i||"normal 14px Verdana",this._context.fillText(e,A||0,t||14)}getWidth(){return this._canvas.width}getHeight(){return this._canvas.height}load(e,A){var t=new Image,i=this;t.onload=function(){i.resize(t.width,t.height),i._context.drawImage(t,0,0,t.width,t.height),A&&A(t)},t.src=e}openImage(){var e=this.getImage(),A="<!DOCTYPE html>";A+="<html>",A+="<head><title>Print</title></head>",A+="<body>",A+='<img src="'+e.src+'">',A+="</body>",A+="</html>";var t=window.open("","","width="+e.width+"px ,height="+e.height+"px");t.document.open(),t.document.write(A),t.document.close(),t.focus()}destroy(){this._canvas.width=1,this._canvas.height=1,this._canvas=null,this._context=null}}class Ot{constructor(e,A={}){this.handler=e,this._fbo=null,this._isBare=A.isBare||!1,this._depthRenderbuffer=null,this._filter=A.filter||"NEAREST",this._internalFormatArr=A.internalFormat instanceof Array?A.internalFormat:[A.internalFormat||"RGBA"],this._formatArr=A.format instanceof Array?A.format:[A.format||"RGBA"],this._typeArr=A.type instanceof Array?A.type:[A.type||"UNSIGNED_BYTE"],this._attachmentArr=A.attachment instanceof Array?A.attachment.map(((e,A)=>{let t=e.toUpperCase();return"COLOR_ATTACHMENT"===t?`${t}${A.toString()}`:t})):[A.attachment||"COLOR_ATTACHMENT0"],this._width=A.width||e.canvas.width,this._height=A.height||e.canvas.height,this._depthComponent=null!=A.depthComponent?A.depthComponent:"DEPTH_COMPONENT16",this._useDepth=null==A.useDepth||A.useDepth,this._active=!1,this._size=A.size||1,this.textures=A.textures||new Array(this._size)}static blit(e,A,t,i,r){let n=e.handler.gl;n.bindFramebuffer(n.READ_FRAMEBUFFER,e._fbo),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,A._fbo),n.readBuffer(t),n.clearBufferfv(n.COLOR,0,[0,0,0,1]),n.blitFramebuffer(0,0,e._width,e._height,0,0,A._width,A._height,i,r),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)}destroy(){for(var e=this.handler.gl,A=0;A<this.textures.length;A++)e.deleteTexture(this.textures[A]);this.textures=new Array(this._size),e.deleteFramebuffer(this._fbo),e.deleteRenderbuffer(this._depthRenderbuffer),this._depthRenderbuffer=null,this._fbo=null,this._active=!1}init(){var e=this.handler.gl;if(this._fbo=e.createFramebuffer(),e.bindFramebuffer(e.FRAMEBUFFER,this._fbo),!this._isBare){let t=[];for(var A=0;A<this.textures.length;A++){let i=this.textures[A]||this.handler.createEmptyTexture2DExt(this._width,this._height,this._filter,this._internalFormatArr[A],this._formatArr[A],this._typeArr[A]),r=e[this._attachmentArr[A]];this.bindOutputTexture(i,r),this.textures[A]=i,"DEPTH_ATTACHMENT"!=this._attachmentArr[A]&&t.push(r)}e.drawBuffers&&e.drawBuffers(t)}return this._useDepth&&(this._depthRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,this._depthRenderbuffer),e.renderbufferStorage(e.RENDERBUFFER,e[this._depthComponent],this._width,this._height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this._depthRenderbuffer),e.bindRenderbuffer(e.RENDERBUFFER,null)),e.bindFramebuffer(e.FRAMEBUFFER,null),this}bindOutputTexture(e,A){var t=this.handler.gl;t.bindTexture(t.TEXTURE_2D,e),t.framebufferTexture2D(t.FRAMEBUFFER,A||t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),t.bindTexture(t.TEXTURE_2D,null)}setSize(e,A,t){this._width=e,this._height=A,this._active&&this.handler.gl.viewport(0,0,this._width,this._height),(this._useDepth||t)&&(this.destroy(),this.init())}isComplete(){var e=this.handler.gl;return e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE}readPixels(e,A,t,i=0,r=1,n=1){var s=this.handler.gl;s.bindFramebuffer(s.FRAMEBUFFER,this._fbo),s.readBuffer&&s.readBuffer(s.COLOR_ATTACHMENT0+i||0),s.readPixels(A*this._width,t*this._height,r,n,s.RGBA,s[this._typeArr[i]],e),s.bindFramebuffer(s.FRAMEBUFFER,null)}readAllPixels(e,A=0){var t=this.handler.gl;t.bindFramebuffer(t.FRAMEBUFFER,this._fbo),t.readBuffer&&t.readBuffer(t.COLOR_ATTACHMENT0+A),t.readPixels(0,0,this._width,this._height,t.RGBA,t[this._typeArr[A]],e),t.bindFramebuffer(t.FRAMEBUFFER,null)}activate(){var e=this.handler.gl;e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindFramebuffer(e.FRAMEBUFFER,this._fbo),e.viewport(0,0,this._width,this._height),this._active=!0;var A=this.handler.framebufferStack.current().data;return A&&(A._active=!1),this.handler.framebufferStack.push(this),this}deactivate(){var e=this.handler,A=e.gl;A.bindFramebuffer(A.FRAMEBUFFER,null),this._active=!1;var t=this.handler.framebufferStack.popPrev();t?(A.bindFramebuffer(A.FRAMEBUFFER,t._fbo),A.viewport(0,0,t._width,t._height)):A.viewport(0,0,e.canvas.width,e.canvas.height)}getImage(){var e=new Uint8Array(4*this._width*this._height);this.readAllPixels(e);var A=new Ft(this._width,this._height);return A.setData(e),A.getImage()}openImage(){var e=this.getImage(),A="<!DOCTYPE html>";A+="<html>",A+="<head><title>Print</title></head>",A+="<body>",A+='<img src="'+e.src+'">',A+="</body>",A+="</html>";var t=window.open("","","width="+e.width+"px ,height="+e.height+"px");t.document.open(),t.document.write(A),t.document.close(),t.focus()}}class Qt{constructor(e,A){this._gridSize=64,this._planet=e,this._framebuffer=null,this._texCoordsBuffer=null,this._indexBuffer=null,this.MAX_FRAMES=A||5,this._currentFrame=0,this._queue=[],this._animate=[],this._initialize()}_initialize(){this._initShaders(),this._initBuffers()}createGridBuffer(e,A){var t=this._gridSize,i=new F((e[3].lon-e[0].lon)/t,(e[3].lat-e[0].lat)/t),r=new F((e[2].lon-e[1].lon)/t,(e[2].lat-e[1].lat)/t),n=new F((e[1].lon-e[0].lon)/t,(e[1].lat-e[0].lat)/t),s=new F((e[2].lon-e[3].lon)/t,(e[2].lat-e[3].lat)/t),a=new Float32Array((t+1)*(t+1)*2),o=0;for(let A=0;A<=t;A++){var h=new F(e[0].lon+A*i.lon,e[0].lat+A*i.lat),l=new F(e[1].lon+A*r.lon,e[1].lat+A*r.lat);for(let A=0;A<=t;A++){var d=_e(h,l,new F(e[0].lon+A*n.lon,e[0].lat+A*n.lat),new F(e[3].lon+A*s.lon,e[3].lat+A*s.lat));a[o++]=d.lon,a[o++]=d.lat}}if(A)for(let e=0;e<a.length;e+=2){let A=new F(a[e],a[e+1]).forwardMercator();a[e]=A.lon,a[e+1]=A.lat}return this._planet.renderer.handler.createArrayBuffer(a,2,a.length/2)}frame(){for(var e=this.MAX_FRAMES;e--&&this._queue.length;){var A=this._queue.shift();A._isRendering=!1,A.rendering()}for(e=this._animate.length;e--;)this._animate[e].rendering()}add(e){e._isRendering||(e._isRendering=!0,e._animate?this._animate.push(e):this._queue.push(e))}remove(e){if(e._isRendering){var A;e._creationProceeding=!1,e._isRendering=!1,A=e._animate?this._animate:this._queue;for(var t=0;t<A.length;t++)if(A[t].isEqual(e))return void A.splice(t,1)}}_initBuffers(){let e=this._planet.renderer.handler;this._framebuffer=new Ot(e,{width:2,height:2,useDepth:!1}),this._framebuffer.init(),this._framebufferMercProj=new Ot(e,{width:2,height:2,useDepth:!1}),this._framebufferMercProj.init();let A=Math.log2(this._gridSize);this._texCoordsBuffer=this._planet._textureCoordsBufferCache[A],this._indexBuffer=this._planet._indexesCache[A][A][A][A][A].buffer,this._quadTexCoordsBuffer=e.createArrayBuffer(new Float32Array([0,1,1,1,0,0,1,0]),2,4),this._quadVertexBuffer=e.createArrayBuffer(new Float32Array([-1,1,1,1,-1,-1,1,-1]),2,4)}_initShaders(){this._planet.renderer.handler.addProgram(new Mt("geoImageTransform",{uniforms:{sourceTexture:{type:Bt.SAMPLER2D},extentParams:{type:Bt.VEC4}},attributes:{corners:{type:Bt.VEC2,enableArray:!0},texCoords:{type:Bt.VEC2,enableArray:!0}},vertexShader:"attribute vec2 corners; \n attribute vec2 texCoords; \n varying vec2 v_texCoords; \n uniform vec4 extentParams; \n void main() { \n v_texCoords = texCoords; \n gl_Position = vec4((-1.0 + (corners - extentParams.xy) * extentParams.zw) * vec2(1.0, -1.0), 0.0, 1.0); \n }",fragmentShader:"precision highp float;\n uniform sampler2D sourceTexture;\n varying vec2 v_texCoords;\n void main () {\n if(v_texCoords.x <= 0.001 || v_texCoords.x >= 0.999 ||\n v_texCoords.y <= 0.001 || v_texCoords.y >= 0.999) {\n discard;\n }\n gl_FragColor = texture2D(sourceTexture, v_texCoords);\n }"}))}}class Nt{constructor(e){this.pickingEnabled=!0,this._entityCollection=e,this._renderer=null,this._billboards=[],this._positionHighBuffer=null,this._positionLowBuffer=null,this._sizeBuffer=null,this._offsetBuffer=null,this._rgbaBuffer=null,this._rotationBuffer=null,this._texCoordBuffer=null,this._vertexBuffer=null,this._alignedAxisBuffer=null,this._texCoordArr=new Float32Array,this._vertexArr=new Float32Array,this._positionHighArr=new Float32Array,this._positionLowArr=new Float32Array,this._sizeArr=new Float32Array,this._offsetArr=new Float32Array,this._rgbaArr=new Float32Array,this._rotationArr=new Float32Array,this._alignedAxisArr=new Float32Array,this._pickingColorBuffer=null,this._pickingColorArr=new Float32Array,this._buffersUpdateCallbacks=[],this._buffersUpdateCallbacks[0]=this.createPickingColorBuffer,this._buffersUpdateCallbacks[1]=this.createPositionBuffer,this._buffersUpdateCallbacks[2]=this.createSizeBuffer,this._buffersUpdateCallbacks[3]=this.createOffsetBuffer,this._buffersUpdateCallbacks[4]=this.createRgbaBuffer,this._buffersUpdateCallbacks[5]=this.createRotationBuffer,this._buffersUpdateCallbacks[6]=this.createTexCoordBuffer,this._buffersUpdateCallbacks[7]=this.createVertexBuffer,this._buffersUpdateCallbacks[8]=this.createAlignedAxisBuffer,this._changedBuffers=new Array(this._buffersUpdateCallbacks.length),this.__staticId=Nt._staticCounter++}isEqual(e){return e&&e.__staticId===this.__staticId}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}static concArr(e,A){for(var t=0;t<A.length;t++)e.push(A[t])}initProgram(){this._renderer.handler&&(this._renderer.handler.programs.billboard||this._renderer.handler.addProgram(new Mt("billboard",{uniforms:{u_texture:"sampler2d",projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",uFloatParams:"vec2",uScaleByDistance:"vec3",uOpacity:"float"},attributes:{a_vertices:"vec2",a_texCoord:"vec2",a_positionsHigh:"vec3",a_positionsLow:"vec3",a_offset:"vec3",a_size:"vec2",a_rotation:"float",a_rgba:"vec4",a_alignedAxis:"vec3"},vertexShader:"precision highp float;\n attribute vec2 a_vertices;\n attribute vec2 a_texCoord;\n attribute vec3 a_positionsHigh;\n attribute vec3 a_positionsLow;\n attribute vec3 a_offset;\n attribute vec2 a_size;\n attribute float a_rotation;\n attribute vec4 a_rgba;\n attribute vec3 a_alignedAxis;\n\n varying vec2 v_texCoords;\n varying vec4 v_rgba;\n\n uniform mat4 viewMatrix;\n uniform mat4 projectionMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform vec2 uFloatParams;\n uniform vec3 uScaleByDistance;\n uniform float uOpacity;\n\n const vec3 ZERO3 = vec3(0.0);\n\n void main() {\n \n vec3 a_positions = a_positionsHigh + a_positionsLow;\n vec3 uCamPos = eyePositionHigh + eyePositionLow;\n\n v_texCoords = a_texCoord;\n vec3 look = a_positions - uCamPos;\n float lookLength = length(look);\n v_rgba = a_rgba;\n /*v_rgba.a *= uOpacity * step(lookLength, sqrt(dot(uCamPos,uCamPos) - uFloatParams[0]) + sqrt(dot(a_positions,a_positions) - uFloatParams[0]));*/\n if(uOpacity * step(lookLength, sqrt(dot(uCamPos,uCamPos) - uFloatParams[0]) + sqrt(dot(a_positions,a_positions) - uFloatParams[0])) == 0.0){\n return;\n }\n vec3 right, up;\n if(a_alignedAxis == ZERO3){\n up = vec3( viewMatrix[0][1], viewMatrix[1][1], viewMatrix[2][1] );\n right = vec3( viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0] );\n }else{\n up = normalize(a_alignedAxis);\n right = normalize(cross(look,up));\n look = cross(up,right);\n }\n float dist = dot(uCamPos - a_positions, vec3(viewMatrix[0][2], viewMatrix[1][2], viewMatrix[2][2]));\n float focalSize = 2.0 * dist * uFloatParams[1];\n vec2 offset = a_offset.xy * focalSize;\n float scd = (1.0 - smoothstep(uScaleByDistance[0], uScaleByDistance[1], lookLength)) * (1.0 - step(uScaleByDistance[2], lookLength));\n vec2 scale = a_size * focalSize * scd;\n float cosRot = cos(a_rotation);\n float sinRot = sin(a_rotation);\n vec3 rr = (right * cosRot - up * sinRot) * (scale.x * a_vertices.x + scd * offset.x) + (right * sinRot + up * cosRot) * (scale.y * a_vertices.y + scd * offset.y);\n\n vec3 highDiff = a_positionsHigh - eyePositionHigh;\n vec3 lowDiff = a_positionsLow + rr - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n gl_Position.z += a_offset.z;\n }",fragmentShader:"precision highp float;\n uniform sampler2D u_texture;\n varying vec2 v_texCoords;\n varying vec4 v_rgba;\n void main () {\n vec4 color = texture2D(u_texture, v_texCoords);\n if(color.a < 0.1)\n discard;\n gl_FragColor = color * v_rgba;\n }"})),this._renderer.handler.programs.billboardPicking||this._renderer.handler.addProgram(new Mt("billboardPicking",{uniforms:{projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",uFloatParams:"vec2",uScaleByDistance:"vec3",uOpacity:"float",pickingScale:"float"},attributes:{a_vertices:"vec2",a_positionsHigh:"vec3",a_positionsLow:"vec3",a_size:"vec2",a_offset:"vec3",a_pickingColor:"vec3",a_rotation:"float",a_alignedAxis:"vec3"},vertexShader:"precision highp float;\n attribute vec2 a_vertices;\n attribute vec2 a_texCoord;\n attribute vec3 a_positionsHigh;\n attribute vec3 a_positionsLow;\n attribute vec3 a_offset;\n attribute vec2 a_size;\n attribute float a_rotation;\n attribute vec3 a_alignedAxis;\n attribute vec3 a_pickingColor;\n\n uniform mat4 viewMatrix;\n uniform mat4 projectionMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform vec2 uFloatParams;\n uniform vec3 uScaleByDistance;\n uniform float uOpacity;\n uniform float pickingScale;\n\n varying vec4 v_color;\n\n const vec3 ZERO3 = vec3(0.0);\n\n void main() {\n \n v_color = vec4(a_pickingColor, 1.0);\n\n vec3 a_positions = a_positionsHigh + a_positionsLow;\n vec3 uCamPos = eyePositionHigh + eyePositionLow;\n\n vec3 look = a_positions - uCamPos;\n float lookLength = length(look);\n if(uOpacity * step(lookLength, sqrt(dot(uCamPos,uCamPos) - uFloatParams[0]) + sqrt(dot(a_positions,a_positions) - uFloatParams[0])) == 0.0){\n return;\n }\n vec3 right, up;\n if(a_alignedAxis == ZERO3){\n up = vec3( viewMatrix[0][1], viewMatrix[1][1], viewMatrix[2][1] );\n right = vec3( viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0] );\n }else{\n up = normalize(a_alignedAxis);\n right = normalize(cross(look,up));\n look = cross(up,right);\n }\n float dist = dot(uCamPos - a_positions, vec3(viewMatrix[0][2], viewMatrix[1][2], viewMatrix[2][2]));\n float focalSize = 2.0 * dist * uFloatParams[1];\n vec2 offset = a_offset.xy * focalSize;\n float scd = (1.0 - smoothstep(uScaleByDistance[0], uScaleByDistance[1], lookLength)) * (1.0 - step(uScaleByDistance[2], lookLength));\n vec2 scale = a_size * focalSize * scd * pickingScale;\n float cosRot = cos(a_rotation);\n float sinRot = sin(a_rotation);\n vec3 rr = (right * cosRot - up * sinRot) * (scale.x * a_vertices.x + scd * offset.x) + (right * sinRot + up * cosRot) * (scale.y * a_vertices.y + scd * offset.y);\n\n vec3 highDiff = a_positionsHigh - eyePositionHigh;\n vec3 lowDiff = a_positionsLow + rr - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n gl_Position.z += a_offset.z;\n }",fragmentShader:"precision highp float;\n varying vec4 v_color;\n void main () {\n gl_FragColor = v_color;\n }"})))}setRenderer(e){this._renderer=e,this.initProgram()}refresh(){for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]=!0}_removeBillboards(){for(var e=this._billboards.length;e--;){var A=this._billboards[e];A._handlerIndex=-1,A._handler=null,A._isReady=!1,A._lockId=qA}this._billboards.length=0,this._billboards=[]}clear(){this._texCoordArr=null,this._vertexArr=null,this._positionHighArr=null,this._positionLowArr=null,this._sizeArr=null,this._offsetArr=null,this._rgbaArr=null,this._rotationArr=null,this._alignedAxisArr=null,this._pickingColorArr=null,this._texCoordArr=new Float32Array,this._vertexArr=new Float32Array,this._positionHighArr=new Float32Array,this._positionLowArr=new Float32Array,this._sizeArr=new Float32Array,this._offsetArr=new Float32Array,this._rgbaArr=new Float32Array,this._rotationArr=new Float32Array,this._alignedAxisArr=new Float32Array,this._pickingColorArr=new Float32Array,this._removeBillboards(),this._deleteBuffers(),this.refresh()}_deleteBuffers(){if(this._renderer){var e=this._renderer.handler.gl;e.deleteBuffer(this._positionHighBuffer),e.deleteBuffer(this._positionLowBuffer),e.deleteBuffer(this._sizeBuffer),e.deleteBuffer(this._offsetBuffer),e.deleteBuffer(this._rgbaBuffer),e.deleteBuffer(this._rotationBuffer),e.deleteBuffer(this._vertexBuffer),e.deleteBuffer(this._texCoordBuffer),e.deleteBuffer(this._alignedAxisBuffer),e.deleteBuffer(this._pickingColorBuffer)}this._positionHighBuffer=null,this._positionLowBuffer=null,this._sizeBuffer=null,this._offsetBuffer=null,this._rgbaBuffer=null,this._rotationBuffer=null,this._vertexBuffer=null,this._texCoordBuffer=null,this._alignedAxisBuffer=null,this._pickingColorBuffer=null}update(){if(this._renderer)for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]&&(this._buffersUpdateCallbacks[e].call(this),this._changedBuffers[e]=!1)}add(e){-1==e._handlerIndex&&(e._isReady=!0,e._handler=this,e._handlerIndex=this._billboards.length,this._billboards.push(e),this._addBillboardToArrays(e),this.refresh(),e.setSrc(e._src||e._image&&e._image.src))}_addBillboardToArrays(e){e._visibility?this._vertexArr=ze(this._vertexArr,[-.5,.5,-.5,-.5,.5,-.5,.5,-.5,.5,.5,-.5,.5]):this._vertexArr=ze(this._vertexArr,[0,0,0,0,0,0,0,0,0,0,0,0]),this._texCoordArr=ze(this._texCoordArr,[0,0,0,0,0,0,0,0,0,0,0,0]);var A,t=e._positionHigh.x,i=e._positionHigh.y,r=e._positionHigh.z;this._positionHighArr=ze(this._positionHighArr,[t,i,r,t,i,r,t,i,r,t,i,r,t,i,r,t,i,r]),t=e._positionLow.x,i=e._positionLow.y,r=e._positionLow.z,this._positionLowArr=ze(this._positionLowArr,[t,i,r,t,i,r,t,i,r,t,i,r,t,i,r,t,i,r]),t=e._width,i=e._height,this._sizeArr=ze(this._sizeArr,[t,i,t,i,t,i,t,i,t,i,t,i]),t=e._offset.x,i=e._offset.y,r=e._offset.z,this._offsetArr=ze(this._offsetArr,[t,i,r,t,i,r,t,i,r,t,i,r,t,i,r,t,i,r]),t=e._color.x,i=e._color.y,r=e._color.z,A=e._color.w,this._rgbaArr=ze(this._rgbaArr,[t,i,r,A,t,i,r,A,t,i,r,A,t,i,r,A,t,i,r,A,t,i,r,A]),t=e._rotation,this._rotationArr=ze(this._rotationArr,[t,t,t,t,t,t]),t=e._alignedAxis.x,i=e._alignedAxis.y,r=e._alignedAxis.z,this._alignedAxisArr=ze(this._alignedAxisArr,[t,i,r,t,i,r,t,i,r,t,i,r,t,i,r,t,i,r]),t=e._entity._pickingColor.x/255,i=e._entity._pickingColor.y/255,r=e._entity._pickingColor.z/255,this._pickingColorArr=ze(this._pickingColorArr,[t,i,r,t,i,r,t,i,r,t,i,r,t,i,r,t,i,r])}_displayPASS(){var e=this._renderer,A=e.handler;A.programs.billboard.activate();var t=A.programs.billboard._program,i=t.attributes,r=t.uniforms,n=A.gl,s=this._entityCollection;n.polygonOffset(s.polygonOffsetFactor,s.polygonOffsetUnits),n.uniform1i(r.u_texture,0),n.uniformMatrix4fv(r.viewMatrix,!1,e.activeCamera._viewMatrix._m),n.uniformMatrix4fv(r.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),n.uniform3fv(r.eyePositionHigh,e.activeCamera.eyeHigh),n.uniform3fv(r.eyePositionLow,e.activeCamera.eyeLow),n.uniform3fv(r.uScaleByDistance,s.scaleByDistance),n.uniform1f(r.uOpacity,s._fadingOpacity),n.uniform2fv(r.uFloatParams,[s.renderNode._planetRadius2||0,e.activeCamera._tanViewAngle_hradOneByHeight]),n.bindBuffer(n.ARRAY_BUFFER,this._texCoordBuffer),n.vertexAttribPointer(i.a_texCoord,this._texCoordBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer),n.vertexAttribPointer(i.a_vertices,this._vertexBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionHighBuffer),n.vertexAttribPointer(i.a_positionsHigh,this._positionHighBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionLowBuffer),n.vertexAttribPointer(i.a_positionsLow,this._positionLowBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._rgbaBuffer),n.vertexAttribPointer(i.a_rgba,this._rgbaBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._sizeBuffer),n.vertexAttribPointer(i.a_size,this._sizeBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._offsetBuffer),n.vertexAttribPointer(i.a_offset,this._offsetBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._rotationBuffer),n.vertexAttribPointer(i.a_rotation,this._rotationBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._alignedAxisBuffer),n.vertexAttribPointer(i.a_alignedAxis,this._alignedAxisBuffer.itemSize,n.FLOAT,!1,0,0),n.drawArrays(n.TRIANGLES,0,this._vertexBuffer.numItems)}_pickingPASS(){var e=this._renderer,A=e.handler;A.programs.billboardPicking.activate();var t=A.programs.billboardPicking._program,i=t.attributes,r=t.uniforms,n=A.gl,s=this._entityCollection;n.polygonOffset(s.polygonOffsetFactor,s.polygonOffsetUnits),n.uniformMatrix4fv(r.viewMatrix,!1,e.activeCamera._viewMatrix._m),n.uniformMatrix4fv(r.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),n.uniform3fv(r.eyePositionHigh,e.activeCamera.eyeHigh),n.uniform3fv(r.eyePositionLow,e.activeCamera.eyeLow),n.uniform3fv(r.uScaleByDistance,s.scaleByDistance),n.uniform1f(r.uOpacity,s._fadingOpacity),n.uniform1f(r.pickingScale,s.pickingScale),n.uniform2fv(r.uFloatParams,[s.renderNode._planetRadius2||0,e.activeCamera._tanViewAngle_hradOneByHeight]),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer),n.vertexAttribPointer(i.a_vertices,this._vertexBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionHighBuffer),n.vertexAttribPointer(i.a_positionsHigh,this._positionHighBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionLowBuffer),n.vertexAttribPointer(i.a_positionsLow,this._positionLowBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._pickingColorBuffer),n.vertexAttribPointer(i.a_pickingColor,this._pickingColorBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._sizeBuffer),n.vertexAttribPointer(i.a_size,this._sizeBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._offsetBuffer),n.vertexAttribPointer(i.a_offset,this._offsetBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._rotationBuffer),n.vertexAttribPointer(i.a_rotation,this._rotationBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._alignedAxisBuffer),n.vertexAttribPointer(i.a_alignedAxis,this._alignedAxisBuffer.itemSize,n.FLOAT,!1,0,0),n.drawArrays(n.TRIANGLES,0,this._vertexBuffer.numItems)}draw(){this._billboards.length&&(this.update(),this._displayPASS())}drawPicking(){this._billboards.length&&this.pickingEnabled&&this._pickingPASS()}reindexBillbordsArray(e){for(var A=this._billboards,t=e;t<A.length;t++)A[t]._handlerIndex=t}_removeBillboard(e){var A=e._handlerIndex;this._billboards.splice(A,1);var t=24*A;this._rgbaArr=Ne(this._rgbaArr,t,24),t=18*A,this._positionHighArr=Ne(this._positionHighArr,t,18),this._positionLowArr=Ne(this._positionLowArr,t,18),this._offsetArr=Ne(this._offsetArr,t,18),this._alignedAxisArr=Ne(this._alignedAxisArr,t,18),this._pickingColorArr=Ne(this._pickingColorArr,t,18),t=12*A,this._vertexArr=Ne(this._vertexArr,t,12),this._sizeArr=Ne(this._sizeArr,t,12),this._texCoordArr=Ne(this._texCoordArr,t,12),t=6*A,this._rotationArr=Ne(this._rotationArr,t,6),this.reindexBillbordsArray(A),this.refresh(),e._handlerIndex=-1,e._handler=null,e._isReady=!1,e._lockId=qA}remove(e){e._isReady&&this.__staticId==e._handler.__staticId?this._removeBillboard(e):e._handler=null}setPositionArr(e,A,t){var i=18*e,r=this._positionHighArr,n=A.x,s=A.y,a=A.z;r[i]=n,r[i+1]=s,r[i+2]=a,r[i+3]=n,r[i+4]=s,r[i+5]=a,r[i+6]=n,r[i+7]=s,r[i+8]=a,r[i+9]=n,r[i+10]=s,r[i+11]=a,r[i+12]=n,r[i+13]=s,r[i+14]=a,r[i+15]=n,r[i+16]=s,r[i+17]=a,r=this._positionLowArr,n=t.x,s=t.y,a=t.z,r[i]=n,r[i+1]=s,r[i+2]=a,r[i+3]=n,r[i+4]=s,r[i+5]=a,r[i+6]=n,r[i+7]=s,r[i+8]=a,r[i+9]=n,r[i+10]=s,r[i+11]=a,r[i+12]=n,r[i+13]=s,r[i+14]=a,r[i+15]=n,r[i+16]=s,r[i+17]=a,this._changedBuffers[1]=!0}setPickingColorArr(e,A){var t=18*e,i=this._pickingColorArr,r=A.x/255,n=A.y/255,s=A.z/255;i[t]=r,i[t+1]=n,i[t+2]=s,i[t+3]=r,i[t+4]=n,i[t+5]=s,i[t+6]=r,i[t+7]=n,i[t+8]=s,i[t+9]=r,i[t+10]=n,i[t+11]=s,i[t+12]=r,i[t+13]=n,i[t+14]=s,i[t+15]=r,i[t+16]=n,i[t+17]=s,this._changedBuffers[0]=!0}setSizeArr(e,A,t){var i=12*e,r=this._sizeArr,n=A,s=t;r[i]=n,r[i+1]=s,r[i+2]=n,r[i+3]=s,r[i+4]=n,r[i+5]=s,r[i+6]=n,r[i+7]=s,r[i+8]=n,r[i+9]=s,r[i+10]=n,r[i+11]=s,this._changedBuffers[2]=!0}setOffsetArr(e,A){var t=18*e,i=this._offsetArr,r=A.x,n=A.y,s=A.z;i[t]=r,i[t+1]=n,i[t+2]=s,i[t+3]=r,i[t+4]=n,i[t+5]=s,i[t+6]=r,i[t+7]=n,i[t+8]=s,i[t+9]=r,i[t+10]=n,i[t+11]=s,i[t+12]=r,i[t+13]=n,i[t+14]=s,i[t+15]=r,i[t+16]=n,i[t+17]=s,this._changedBuffers[3]=!0}setRgbaArr(e,A){var t=24*e,i=this._rgbaArr,r=A.x,n=A.y,s=A.z,a=A.w;i[t]=r,i[t+1]=n,i[t+2]=s,i[t+3]=a,i[t+4]=r,i[t+5]=n,i[t+6]=s,i[t+7]=a,i[t+8]=r,i[t+9]=n,i[t+10]=s,i[t+11]=a,i[t+12]=r,i[t+13]=n,i[t+14]=s,i[t+15]=a,i[t+16]=r,i[t+17]=n,i[t+18]=s,i[t+19]=a,i[t+20]=r,i[t+21]=n,i[t+22]=s,i[t+23]=a,this._changedBuffers[4]=!0}setRotationArr(e,A){var t=6*e,i=this._rotationArr;i[t]=A,i[t+1]=A,i[t+2]=A,i[t+3]=A,i[t+4]=A,i[t+5]=A,this._changedBuffers[5]=!0}setTexCoordArr(e,A){var t=12*e,i=this._texCoordArr;i[t]=A[0],i[t+1]=A[1],i[t+2]=A[2],i[t+3]=A[3],i[t+4]=A[4],i[t+5]=A[5],i[t+6]=A[6],i[t+7]=A[7],i[t+8]=A[8],i[t+9]=A[9],i[t+10]=A[10],i[t+11]=A[11],this._changedBuffers[6]=!0}setVisibility(e,A){var t;t=A?[-.5,.5,-.5,-.5,.5,-.5,.5,-.5,.5,.5,-.5,.5]:[0,0,0,0,0,0,0,0,0,0,0,0],this.setVertexArr(e,t)}setVertexArr(e,A){var t=12*e,i=this._vertexArr;i[t]=A[0],i[t+1]=A[1],i[t+2]=A[2],i[t+3]=A[3],i[t+4]=A[4],i[t+5]=A[5],i[t+6]=A[6],i[t+7]=A[7],i[t+8]=A[8],i[t+9]=A[9],i[t+10]=A[10],i[t+11]=A[11],this._changedBuffers[7]=!0}setAlignedAxisArr(e,A){var t=18*e,i=this._alignedAxisArr,r=A.x,n=A.y,s=A.z;i[t]=r,i[t+1]=n,i[t+2]=s,i[t+3]=r,i[t+4]=n,i[t+5]=s,i[t+6]=r,i[t+7]=n,i[t+8]=s,i[t+9]=r,i[t+10]=n,i[t+11]=s,i[t+12]=r,i[t+13]=n,i[t+14]=s,i[t+15]=r,i[t+16]=n,i[t+17]=s,this._changedBuffers[8]=!0}createPositionBuffer(){let e=this._renderer.handler,A=this._positionHighArr.length/3;this._positionHighBuffer&&this._positionHighBuffer.numItems===A||(e.gl.deleteBuffer(this._positionHighBuffer),e.gl.deleteBuffer(this._positionLowBuffer),this._positionHighBuffer=e.createStreamArrayBuffer(3,A),this._positionLowBuffer=e.createStreamArrayBuffer(3,A)),e.setStreamArrayBuffer(this._positionHighBuffer,this._positionHighArr),e.setStreamArrayBuffer(this._positionLowBuffer,this._positionLowArr)}createSizeBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._sizeBuffer),this._sizeBuffer=e.createArrayBuffer(this._sizeArr,2,this._sizeArr.length/2)}createOffsetBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._offsetBuffer),this._offsetBuffer=e.createArrayBuffer(this._offsetArr,3,this._offsetArr.length/3)}createRgbaBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._rgbaBuffer),this._rgbaBuffer=e.createArrayBuffer(this._rgbaArr,4,this._rgbaArr.length/4)}createRotationBuffer(){let e=this._renderer.handler;this._rotationBuffer&&this._rotationBuffer.numItems===this._rotationArr.length||(e.gl.deleteBuffer(this._rotationBuffer),this._rotationBuffer=e.createStreamArrayBuffer(1,this._rotationArr.length)),e.setStreamArrayBuffer(this._rotationBuffer,this._rotationArr)}createVertexBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._vertexBuffer),this._vertexBuffer=e.createArrayBuffer(this._vertexArr,2,this._vertexArr.length/2)}createTexCoordBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._texCoordBuffer),this._texCoordBuffer=e.createArrayBuffer(this._texCoordArr,2,this._texCoordArr.length/2)}createAlignedAxisBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._alignedAxisBuffer),this._alignedAxisBuffer=e.createArrayBuffer(this._alignedAxisArr,3,this._alignedAxisArr.length/3)}createPickingColorBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._pickingColorBuffer),this._pickingColorBuffer=e.createArrayBuffer(this._pickingColorArr,3,this._pickingColorArr.length/3)}refreshTexCoordsArr(){if(this._entityCollection&&this._renderer)for(var e=this._renderer.billboardsTextureAtlas,A=0;A<this._billboards.length;A++){var t=this._billboards[A];if(t._image){var i=e.nodes[t._image.__nodeIndex];i&&this.setTexCoordArr(t._handlerIndex,i.texCoords)}}}}window.uZ=-2,window.dZ=1.1;class Ut extends Nt{constructor(e,A=21){super(e),this._gliphParamBuffer=null,this._fontIndexBuffer=null,this._noOutlineBuffer=null,this._outlineBuffer=null,this._outlineColorBuffer=null,this._gliphParamArr=new Float32Array,this._fontIndexArr=new Float32Array,this._noOutlineArr=new Float32Array,this._outlineArr=new Float32Array,this._outlineColorArr=new Float32Array,this._buffersUpdateCallbacks[9]=this.createFontIndexBuffer,this._buffersUpdateCallbacks[10]=this.createOutlineBuffer,this._buffersUpdateCallbacks[11]=this.createOutlineColorBuffer,this._changedBuffers=new Array(this._buffersUpdateCallbacks.length),this._maxLetters=A}initProgram(){this._renderer.handler&&(this._renderer.handler.programs.label||("webgl2"===this._renderer.handler.gl.type?this._renderer.handler.addProgram(new Mt("label",{uniforms:{viewport:"vec2",fontTextureArr:"sampler2darray",projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",planetRadius:"float",uZ:"float",scaleByDistance:"vec3",opacity:"float"},attributes:{a_outline:"float",a_gliphParam:"vec4",a_vertices:"vec2",a_texCoord:"vec4",a_positionsHigh:"vec3",a_positionsLow:"vec3",a_size:"float",a_rgba:"vec4",a_offset:"vec3",a_fontIndex:"float"},vertexShader:"#version 300 es\n\n in float a_outline;\n in vec4 a_gliphParam;\n in vec2 a_vertices;\n in vec4 a_texCoord;\n in vec3 a_positionsHigh;\n in vec3 a_positionsLow;\n in vec3 a_offset;\n in float a_size;\n //in float a_rotation;\n in vec4 a_rgba;\n //in vec3 a_alignedAxis;\n in float a_fontIndex;\n\n out vec2 v_uv;\n out vec4 v_rgba;\n flat out float v_weight;\n flat out int v_fontIndex;\n\n uniform vec2 viewport;\n uniform mat4 viewMatrix;\n uniform mat4 projectionMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform float planetRadius;\n uniform float uZ;\n uniform vec3 scaleByDistance;\n uniform float opacity;\n\n const vec3 ZERO3 = vec3(0.0);\n\n vec2 project(vec4 p) {\n return (0.5 * p.xyz / p.w + 0.5).xy * viewport;\n }\n\n void main() {\n\n if(a_texCoord.z == -1.0 || a_outline == 0.0) {\n gl_Position = vec4(0.0);\n return;\n }\n\n vec3 a_positions = a_positionsHigh + a_positionsLow;\n vec3 cameraPos = eyePositionHigh + eyePositionLow;\n\n v_weight = a_outline;\n\n v_fontIndex = int(a_fontIndex);\n v_uv = vec2(a_texCoord.xy);\n float lookDist = length(a_positions - cameraPos);\n v_rgba = a_rgba;\n if(opacity * step(lookDist, sqrt(dot(cameraPos,cameraPos) - planetRadius) + sqrt(dot(a_positions,a_positions) - planetRadius)) == 0.0){\n return;\n }\n\n float scd = (1.0 - smoothstep(scaleByDistance[0], scaleByDistance[1], lookDist)) * (1.0 - step(scaleByDistance[2], lookDist));\n\n v_rgba.a *= opacity;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n vec3 highDiff = a_positionsHigh - eyePositionHigh;\n vec3 lowDiff = a_positionsLow - eyePositionLow;\n vec4 posRTE = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n vec4 projPos = projectionMatrix * posRTE;\n vec2 screenPos = project(projPos);\n\n vec2 v = screenPos + (a_vertices * a_gliphParam.xy + a_gliphParam.zw + vec2(a_texCoord.z, 0.0) + vec2(a_texCoord.w, 0.0)) * a_size * scd + a_offset.xy;\n\n gl_Position = vec4((2.0 * v / viewport - 1.0) * projPos.w, projPos.z + a_offset.z + uZ, projPos.w);\n }",fragmentShader:"#version 300 es\n\n precision highp float;\n\n const int MAX_SIZE = 11;\n\n uniform sampler2D fontTextureArr[MAX_SIZE];\n\n flat in float v_weight;\n flat in int v_fontIndex;\n in vec2 v_uv;\n in vec4 v_rgba;\n\n in vec3 v_pickingColor;\n\n layout(location = 0) out vec4 outScreen;\n\n vec4 sdfParams = vec4(512.0, 512.0, 32.0, 8.0);\n\n float median(float r, float g, float b) {\n return max(min(r, g), min(max(r, g), b));\n }\n\n float getDistance() {\n vec3 msdf;\n if(v_fontIndex == 0) {\n msdf = texture(fontTextureArr[0], v_uv).rgb;\n } else if(v_fontIndex == 1){\n msdf = texture(fontTextureArr[1], v_uv).rgb;\n } else if(v_fontIndex == 2){\n msdf = texture(fontTextureArr[2], v_uv).rgb;\n } else if(v_fontIndex == 3){\n msdf = texture(fontTextureArr[3], v_uv).rgb;\n } else if(v_fontIndex == 4){\n msdf = texture(fontTextureArr[4], v_uv).rgb;\n } else if(v_fontIndex == 5){\n msdf = texture(fontTextureArr[5], v_uv).rgb;\n } else if(v_fontIndex == 6){\n msdf = texture(fontTextureArr[6], v_uv).rgb;\n } else if(v_fontIndex == 7){\n msdf = texture(fontTextureArr[7], v_uv).rgb;\n } else if(v_fontIndex == 8){\n msdf = texture(fontTextureArr[8], v_uv).rgb;\n } else if(v_fontIndex == 9){\n msdf = texture(fontTextureArr[9], v_uv).rgb;\n } else if(v_fontIndex == 10){\n msdf = texture(fontTextureArr[10], v_uv).rgb;\n }\n return median(msdf.r, msdf.g, msdf.b);\n }\n\n void main () {\n\n vec2 dxdy = fwidth(v_uv) * sdfParams.xy;\n float dist = getDistance() + min(v_weight, 0.5 - 1.0 / sdfParams.w) - 0.5;\n float opacity = clamp(dist * sdfParams.w / length(dxdy) + 0.5, 0.0, 1.0);\n\n vec4 color = v_rgba;\n color.a *= opacity;\n if (color.a < 0.01) {\n discard;\n }\n\n outScreen = vec4(v_rgba.rgb, opacity * v_rgba.a);\n }"})):this._renderer.handler.addProgram(new Mt("label",{uniforms:{viewport:"vec2",fontTextureArr:"sampler2darray",projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",planetRadius:"float",uZ:"float",scaleByDistance:"vec3",opacity:"float"},attributes:{a_outline:"float",a_gliphParam:"vec4",a_vertices:"vec2",a_texCoord:"vec4",a_positionsHigh:"vec3",a_positionsLow:"vec3",a_offset:"vec3",a_size:"float",a_rgba:"vec4",a_fontIndex:"float"},vertexShader:"\n attribute float a_outline;\n attribute vec4 a_gliphParam;\n attribute vec2 a_vertices;\n attribute vec4 a_texCoord;\n attribute vec3 a_positionsHigh;\n attribute vec3 a_positionsLow;\n attribute vec3 a_offset;\n attribute float a_size;\n //attribute float a_rotation;\n attribute vec4 a_rgba;\n //attribute vec3 a_alignedAxis;\n attribute float a_fontIndex;\n\n varying vec2 v_uv;\n varying vec4 v_rgba;\n varying float v_weight;\n varying float v_fontIndex;\n\n uniform vec2 viewport;\n uniform mat4 viewMatrix;\n uniform mat4 projectionMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform float planetRadius;\n uniform float uZ;\n uniform vec3 scaleByDistance;\n uniform float opacity;\n\n const vec3 ZERO3 = vec3(0.0);\n\n vec2 project(vec4 p) {\n return (0.5 * p.xyz / p.w + 0.5).xy * viewport;\n }\n\n void main() {\n\n if(a_texCoord.z == -1.0 || a_outline == 0.0) {\n gl_Position = vec4(0.0);\n return;\n }\n\n v_weight = a_outline;\n v_fontIndex = a_fontIndex;\n v_uv = vec2(a_texCoord.xy);\n\n vec3 a_positions = a_positionsHigh + a_positionsLow;\n vec3 cameraPos = eyePositionHigh + eyePositionLow;\n\n float lookDist = length(a_positions - cameraPos);\n v_rgba = a_rgba;\n if(opacity * step(lookDist, sqrt(dot(cameraPos,cameraPos) - planetRadius) + sqrt(dot(a_positions,a_positions) - planetRadius)) == 0.0){\n return;\n }\n\n float scd = (1.0 - smoothstep(scaleByDistance[0], scaleByDistance[1], lookDist)) * (1.0 - step(scaleByDistance[2], lookDist));\n\n v_rgba.a *= opacity;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n vec3 highDiff = a_positionsHigh - eyePositionHigh;\n vec3 lowDiff = a_positionsLow - eyePositionLow;\n vec4 posRTE = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n vec4 projPos = projectionMatrix * posRTE;\n vec2 screenPos = project(projPos);\n\n vec2 v = screenPos + (a_vertices * a_gliphParam.xy + a_gliphParam.zw + vec2(a_texCoord.z, 0.0) + vec2(a_texCoord.w, 0.0)) * a_size * scd + a_offset.xy;\n\n gl_Position = vec4((2.0 * v / viewport - 1.0) * projPos.w, projPos.z + a_offset.z + uZ, projPos.w);\n }",fragmentShader:"#extension GL_OES_standard_derivatives : enable\n\n precision highp float;\n\n const int MAX_SIZE = 11;\n\n uniform sampler2D fontTextureArr[MAX_SIZE];\n\n varying float v_fontIndex;\n varying float v_weight;\n varying vec2 v_uv;\n varying vec4 v_rgba;\n\n varying vec3 v_pickingColor;\n\n float fontIndex;\n\n vec4 sdfParams = vec4(512.0, 512.0, 32.0, 8.0);\n\n float median(float r, float g, float b) {\n return max(min(r, g), min(max(r, g), b));\n }\n\n float getDistance() {\n vec3 msdf;\n if(fontIndex >= 0.0 && fontIndex < 1.0) {\n msdf = texture2D(fontTextureArr[0], v_uv).rgb;\n } else if(fontIndex >= 1.0 && fontIndex < 2.0){\n msdf = texture2D(fontTextureArr[1], v_uv).rgb;\n } else if(fontIndex >= 2.0 && fontIndex < 3.0){\n msdf = texture2D(fontTextureArr[2], v_uv).rgb;\n } else if(fontIndex >= 3.0 && fontIndex < 4.0){\n msdf = texture2D(fontTextureArr[3], v_uv).rgb;\n } else if(fontIndex >= 4.0 && fontIndex < 5.0){\n msdf = texture2D(fontTextureArr[4], v_uv).rgb;\n } else if(fontIndex >= 5.0 && fontIndex < 6.0){\n msdf = texture2D(fontTextureArr[5], v_uv).rgb;\n } else if(fontIndex >= 6.0 && fontIndex < 7.0){\n msdf = texture2D(fontTextureArr[6], v_uv).rgb;\n } else if(fontIndex >= 7.0 && fontIndex < 8.0){\n msdf = texture2D(fontTextureArr[7], v_uv).rgb;\n } else if(fontIndex >= 8.0 && fontIndex < 9.0){\n msdf = texture2D(fontTextureArr[8], v_uv).rgb;\n } else if(fontIndex >= 9.0 && fontIndex < 10.0){\n msdf = texture2D(fontTextureArr[9], v_uv).rgb;\n } else if(fontIndex >= 10.0 && fontIndex < 11.0){\n msdf = texture2D(fontTextureArr[10], v_uv).rgb;\n }\n return median(msdf.r, msdf.g, msdf.b);\n }\n\n void main () {\n\n fontIndex = v_fontIndex + 0.1;\n\n vec2 dxdy = fwidth(v_uv) * sdfParams.xy;\n float dist = getDistance() + min(v_weight, 0.5 - 1.0 / sdfParams.w) - 0.5;\n float opacity = clamp(dist * sdfParams.w / length(dxdy) + 0.5, 0.0, 1.0);\n\n vec4 color = v_rgba;\n color.a *= opacity;\n if (color.a < 0.01) {\n discard;\n }\n\n gl_FragColor = vec4(v_rgba.rgb, opacity * v_rgba.a);\n }"}))),this._renderer.handler.programs.labelPicking||this._renderer.handler.addProgram(new Mt("labelPicking",{uniforms:{viewport:"vec2",projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",planetRadius:"float",scaleByDistance:"vec3",opacity:"float"},attributes:{a_gliphParam:"vec4",a_vertices:"vec2",a_texCoord:"vec4",a_positionsHigh:"vec3",a_positionsLow:"vec3",a_offset:"vec3",a_size:"float",a_rgba:"vec4"},vertexShader:"\n attribute vec4 a_gliphParam;\n attribute vec2 a_vertices;\n attribute vec4 a_texCoord;\n attribute vec3 a_positionsHigh;\n attribute vec3 a_positionsLow;\n attribute vec3 a_offset;\n attribute float a_size;\n //attribute float a_rotation;\n attribute vec4 a_rgba;\n //attribute vec3 a_alignedAxis;\n\n varying vec4 v_rgba;\n\n uniform vec2 viewport;\n uniform mat4 viewMatrix;\n uniform mat4 projectionMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform float planetRadius;\n uniform vec3 scaleByDistance;\n uniform float opacity;\n\n const vec3 ZERO3 = vec3(0.0);\n\n vec2 project(vec4 p) {\n return (0.5 * p.xyz / p.w + 0.5).xy * viewport;\n }\n\n void main() {\n vec3 a_positions = a_positionsHigh + a_positionsLow;\n vec3 cameraPos = eyePositionHigh + eyePositionLow;\n\n if(a_texCoord.z == -1.0){\n gl_Position = vec4(0.0);\n return;\n }\n\n float lookDist = length(a_positions - cameraPos);\n v_rgba = a_rgba;\n if(opacity * step(lookDist, sqrt(dot(cameraPos,cameraPos) - planetRadius) + sqrt(dot(a_positions,a_positions) - planetRadius)) == 0.0){\n return;\n }\n\n float scd = (1.0 - smoothstep(scaleByDistance[0], scaleByDistance[1], lookDist)) * (1.0 - step(scaleByDistance[2], lookDist));\n\n v_rgba.a *= opacity;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n vec3 highDiff = a_positionsHigh - eyePositionHigh;\n vec3 lowDiff = a_positionsLow - eyePositionLow;\n vec4 posRTE = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n vec4 projPos = projectionMatrix * posRTE;\n vec2 screenPos = project(projPos);\n\n vec2 v = screenPos + (a_vertices * a_gliphParam.xy + a_gliphParam.zw + vec2(a_texCoord.z, 0.0) + vec2(a_texCoord.w, 0.0)) * a_size * scd + a_offset.xy;\n\n gl_Position = vec4((2.0 * v / viewport - 1.0) * projPos.w, projPos.z + a_offset.z, projPos.w);\n }",fragmentShader:"\n precision highp float;\n\n varying vec4 v_rgba;\n\n varying vec3 v_pickingColor;\n\n void main () {\n\n vec4 color = v_rgba;\n if (color.a < 0.05) {\n discard;\n }\n\n gl_FragColor = vec4(v_rgba.rgb, v_rgba.a);\n }"})))}add(e){e._handler||(e._handler=this,this.assignFontAtlas(e),this.refresh())}_addLabelToArrays(e){this._renderer.labelWorker.make(this,e)}assignFontAtlas(e){this._entityCollection&&this._renderer?(e.assignFontAtlas(this._renderer.fontAtlas),this._addLabelToArrays(e)):this._billboards.push(e)}workerCallback(e,A){A._lockId!==qA&&this.isEqual(A._handler)&&(A._isReady=!0,A._lockId=qA,A._handlerIndex=this._billboards.length,this._billboards.push(A),this._vertexArr=ze(this._vertexArr,e.vertexArr),this._texCoordArr=ze(this._texCoordArr,e.texCoordArr),this._gliphParamArr=ze(this._gliphParamArr,e.gliphParamArr),this._positionHighArr=ze(this._positionHighArr,e.positionHighArr),this._positionLowArr=ze(this._positionLowArr,e.positionLowArr),this._sizeArr=ze(this._sizeArr,e.sizeArr),this._offsetArr=ze(this._offsetArr,e.offsetArr),this._rgbaArr=ze(this._rgbaArr,e.rgbaArr),this._rotationArr=ze(this._rotationArr,e.rotationArr),this._alignedAxisArr=ze(this._alignedAxisArr,e.alignedAxisArr),this._fontIndexArr=ze(this._fontIndexArr,e.fontIndexArr),this._outlineArr=ze(this._outlineArr,e.outlineArr),this._noOutlineArr=ze(this._noOutlineArr,e.noOutlineArr),this._outlineColorArr=ze(this._outlineColorArr,e.outlineColorArr),this._pickingColorArr=ze(this._pickingColorArr,e.pickingColorArr),A.update(),this.refresh())}clear(){this._texCoordArr=null,this._gliphParamArr=null,this._vertexArr=null,this._positionHighArr=null,this._positionLowArr=null,this._sizeArr=null,this._offsetArr=null,this._rgbaArr=null,this._rotationArr=null,this._alignedAxisArr=null,this._fontIndexArr=null,this._noOutlineArr=null,this._outlineArr=null,this._outlineColorArr=null,this._texCoordArr=new Float32Array,this._gliphParamArr=new Float32Array,this._vertexArr=new Float32Array,this._positionHighArr=new Float32Array,this._positionLowArr=new Float32Array,this._sizeArr=new Float32Array,this._offsetArr=new Float32Array,this._rgbaArr=new Float32Array,this._rotationArr=new Float32Array,this._alignedAxisArr=new Float32Array,this._fontIndexArr=new Float32Array,this._noOutlineArr=new Float32Array,this._outlineArr=new Float32Array,this._outlineColorArr=new Float32Array,this._removeBillboards(),this._deleteBuffers(),this.refresh()}_deleteBuffers(){if(this._renderer){var e=this._renderer.handler.gl;e.deleteBuffer(this._gliphParamBuffer),e.deleteBuffer(this._sizeBuffer),e.deleteBuffer(this._fontIndexBuffer),e.deleteBuffer(this._texCoordBuffer),e.deleteBuffer(this._outlineBuffer),e.deleteBuffer(this._noOutlineBuffer),e.deleteBuffer(this._outlineColorBuffer),e.deleteBuffer(this._positionHighBuffer),e.deleteBuffer(this._positionLowBuffer),e.deleteBuffer(this._sizeBuffer),e.deleteBuffer(this._offsetBuffer),e.deleteBuffer(this._rgbaBuffer),e.deleteBuffer(this._rotationBuffer),e.deleteBuffer(this._vertexBuffer),e.deleteBuffer(this._texCoordBuffer),e.deleteBuffer(this._alignedAxisBuffer),e.deleteBuffer(this._pickingColorBuffer),this._gliphParamBuffer=null,this._sizeBuffer=null,this._fontIndexBuffer=null,this._texCoordBuffer=null,this._outlineBuffer=null,this._outlineColorBuffer=null,this._positionHighBuffer=null,this._positionLowBuffer=null,this._sizeBuffer=null,this._offsetBuffer=null,this._rgbaBuffer=null,this._rotationBuffer=null,this._vertexBuffer=null,this._texCoordBuffer=null,this._alignedAxisBuffer=null,this._pickingColorBuffer=null}}_displayPASS(){var e=this._renderer,A=e.handler;A.programs.label.activate();var t=A.programs.label._program,i=t.attributes,r=t.uniforms,n=A.gl,s=this._entityCollection;n.polygonOffset(s.polygonOffsetFactor,s.polygonOffsetUnits);var a=s.renderNode;n.uniform1iv(r.fontTextureArr,e.fontAtlas.samplerArr),n.uniformMatrix4fv(r.viewMatrix,!1,e.activeCamera._viewMatrix._m),n.uniformMatrix4fv(r.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),n.uniform3fv(r.eyePositionHigh,e.activeCamera.eyeHigh),n.uniform3fv(r.eyePositionLow,e.activeCamera.eyeLow),n.uniform3fv(r.scaleByDistance,s.scaleByDistance),n.uniform1f(r.opacity,s._fadingOpacity),n.uniform1f(r.planetRadius,a._planetRadius2||0),n.uniform2fv(r.viewport,[A.canvas.width,A.canvas.height]),n.bindBuffer(n.ARRAY_BUFFER,this._texCoordBuffer),n.vertexAttribPointer(i.a_texCoord,this._texCoordBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._gliphParamBuffer),n.vertexAttribPointer(i.a_gliphParam,this._gliphParamBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer),n.vertexAttribPointer(i.a_vertices,this._vertexBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionHighBuffer),n.vertexAttribPointer(i.a_positionsHigh,this._positionHighBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionLowBuffer),n.vertexAttribPointer(i.a_positionsLow,this._positionLowBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._sizeBuffer),n.vertexAttribPointer(i.a_size,this._sizeBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._offsetBuffer),n.vertexAttribPointer(i.a_offset,this._offsetBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._fontIndexBuffer),n.vertexAttribPointer(i.a_fontIndex,this._fontIndexBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._outlineColorBuffer),n.vertexAttribPointer(i.a_rgba,this._outlineColorBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._outlineBuffer),n.vertexAttribPointer(i.a_outline,this._outlineBuffer.itemSize,n.FLOAT,!1,0,0),n.uniform1f(r.uZ,window.uZ+window.dZ),n.drawArrays(n.TRIANGLES,0,this._vertexBuffer.numItems),n.bindBuffer(n.ARRAY_BUFFER,this._rgbaBuffer),n.vertexAttribPointer(i.a_rgba,this._rgbaBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._noOutlineBuffer),n.vertexAttribPointer(i.a_outline,this._noOutlineBuffer.itemSize,n.FLOAT,!1,0,0),n.uniform1f(r.uZ,window.uZ),n.drawArrays(n.TRIANGLES,0,this._vertexBuffer.numItems)}_pickingPASS(){var e=this._renderer,A=e.handler;A.programs.labelPicking.activate();var t=A.programs.labelPicking._program,i=t.attributes,r=t.uniforms,n=A.gl,s=this._entityCollection;n.polygonOffset(s.polygonOffsetFactor,s.polygonOffsetUnits);var a=s.renderNode;n.uniformMatrix4fv(r.viewMatrix,!1,e.activeCamera._viewMatrix._m),n.uniformMatrix4fv(r.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),n.uniform3fv(r.eyePositionHigh,e.activeCamera.eyeHigh),n.uniform3fv(r.eyePositionLow,e.activeCamera.eyeLow),n.uniform3fv(r.scaleByDistance,s.scaleByDistance),n.uniform1f(r.opacity,s._fadingOpacity),n.uniform1f(r.planetRadius,a._planetRadius2||0),n.uniform2fv(r.viewport,[A.canvas.width,A.canvas.height]),n.bindBuffer(n.ARRAY_BUFFER,this._texCoordBuffer),n.vertexAttribPointer(i.a_texCoord,this._texCoordBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._gliphParamBuffer),n.vertexAttribPointer(i.a_gliphParam,this._gliphParamBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer),n.vertexAttribPointer(i.a_vertices,this._vertexBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionHighBuffer),n.vertexAttribPointer(i.a_positionsHigh,this._positionHighBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionLowBuffer),n.vertexAttribPointer(i.a_positionsLow,this._positionLowBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._sizeBuffer),n.vertexAttribPointer(i.a_size,this._sizeBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._offsetBuffer),n.vertexAttribPointer(i.a_offset,this._offsetBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._pickingColorBuffer),n.vertexAttribPointer(i.a_rgba,this._pickingColorBuffer.itemSize,n.FLOAT,!1,0,0),n.drawArrays(n.TRIANGLES,0,this._vertexBuffer.numItems)}_removeBillboard(e){var A=e._handlerIndex;this._billboards.splice(A,1);var t=24*this._maxLetters,i=A*t;this._rgbaArr=Ne(this._rgbaArr,i,t),this._outlineColorArr=Ne(this._outlineColorArr,i,t),this._texCoordArr=Ne(this._texCoordArr,i,t),this._gliphParamArr=Ne(this._gliphParamArr,i,t),i=A*(t=18*this._maxLetters),this._positionHighArr=Ne(this._positionHighArr,i,t),this._positionLowArr=Ne(this._positionLowArr,i,t),this._offsetArr=Ne(this._offsetArr,i,t),this._alignedAxisArr=Ne(this._alignedAxisArr,i,t),this._pickingColorArr=Ne(this._pickingColorArr,i,t),i=A*(t=12*this._maxLetters),this._vertexArr=Ne(this._vertexArr,i,t),i=A*(t=6*this._maxLetters),this._sizeArr=Ne(this._sizeArr,i,t),this._rotationArr=Ne(this._rotationArr,i,t),this._fontIndexArr=Ne(this._fontIndexArr,i,t),this._outlineArr=Ne(this._outlineArr,i,t),this._noOutlineArr=Ne(this._noOutlineArr,i,t),this.reindexBillbordsArray(A),this.refresh(),e._handlerIndex=-1,e._handler=null,e._isReady=!1}setText(e,A,t,i){var r=this._renderer.fontAtlas.atlasesArr[t];if(!r)return;let n=24*e*this._maxLetters,s=this._texCoordArr,a=this._gliphParamArr,o=0,h=r.nodes[A[o]],l=0,d=Math.min(this._maxLetters,A.length),c=r.kernings;for(o=0;o<d;o++){let e=n+24*o,t=A[o];h=r.nodes[t]||r.nodes[" "];let i=h.texCoords,d=h.metrics;s[e]=i[0],s[e+1]=i[1],s[e+2]=l,s[e+3]=0,s[e+4]=i[2],s[e+5]=i[3],s[e+6]=l,s[e+7]=0,s[e+8]=i[4],s[e+9]=i[5],s[e+10]=l,s[e+11]=0,s[e+12]=i[6],s[e+13]=i[7],s[e+14]=l,s[e+15]=0,s[e+16]=i[8],s[e+17]=i[9],s[e+18]=l,s[e+19]=0,s[e+20]=i[10],s[e+21]=i[11],s[e+22]=l,s[e+23]=0,a[e]=d.nWidth,a[e+1]=d.nHeight,a[e+2]=d.nXOffset,a[e+3]=d.nYOffset,a[e+4]=d.nWidth,a[e+5]=d.nHeight,a[e+6]=d.nXOffset,a[e+7]=d.nYOffset,a[e+8]=d.nWidth,a[e+9]=d.nHeight,a[e+10]=d.nXOffset,a[e+11]=d.nYOffset,a[e+12]=d.nWidth,a[e+13]=d.nHeight,a[e+14]=d.nXOffset,a[e+15]=d.nYOffset,a[e+16]=d.nWidth,a[e+17]=d.nHeight,a[e+18]=d.nXOffset,a[e+19]=d.nYOffset,a[e+20]=d.nWidth,a[e+21]=d.nHeight,a[e+22]=d.nXOffset,a[e+23]=d.nYOffset;let u=c[t];u?(u=u[A[o+1]],l+=u?d.nAdvance+u:d.nAdvance):l+=d.nAdvance}if(i===dt)for(l*=-.5,o=0;o<d;o++){let e=n+24*o;s[e+3]=l,s[e+7]=l,s[e+11]=l,s[e+15]=l,s[e+19]=l,s[e+23]=l}else if(i===lt)for(o=0;o<d;o++){let e=n+24*o;s[e+3]=0,s[e+7]=0,s[e+11]=0,s[e+15]=0,s[e+19]=0,s[e+23]=0}for(;o<this._maxLetters;o++){let e=n+24*o;s[e+2]=-1,s[e+6]=-1,s[e+10]=-1,s[e+14]=-1,s[e+18]=-1,s[e+17]=-1}this._changedBuffers[6]=!0}setPositionArr(e,A,t){for(var i=18*e*this._maxLetters,r=this._positionHighArr,n=A.x,s=A.y,a=A.z,o=this._positionLowArr,h=t.x,l=t.y,d=t.z,c=0;c<this._maxLetters;c++){var u=i+18*c;r[u]=n,r[u+1]=s,r[u+2]=a,r[u+3]=n,r[u+4]=s,r[u+5]=a,r[u+6]=n,r[u+7]=s,r[u+8]=a,r[u+9]=n,r[u+10]=s,r[u+11]=a,r[u+12]=n,r[u+13]=s,r[u+14]=a,r[u+15]=n,r[u+16]=s,r[u+17]=a,o[u]=h,o[u+1]=l,o[u+2]=d,o[u+3]=h,o[u+4]=l,o[u+5]=d,o[u+6]=h,o[u+7]=l,o[u+8]=d,o[u+9]=h,o[u+10]=l,o[u+11]=d,o[u+12]=h,o[u+13]=l,o[u+14]=d,o[u+15]=h,o[u+16]=l,o[u+17]=d}this._changedBuffers[1]=!0}setPickingColorArr(e,A){for(var t=18*e*this._maxLetters,i=this._pickingColorArr,r=A.x/255,n=A.y/255,s=A.z/255,a=0;a<this._maxLetters;a++){var o=t+18*a;i[o]=r,i[o+1]=n,i[o+2]=s,i[o+3]=r,i[o+4]=n,i[o+5]=s,i[o+6]=r,i[o+7]=n,i[o+8]=s,i[o+9]=r,i[o+10]=n,i[o+11]=s,i[o+12]=r,i[o+13]=n,i[o+14]=s,i[o+15]=r,i[o+16]=n,i[o+17]=s}this._changedBuffers[0]=!0}setSizeArr(e,A){for(var t=6*e*this._maxLetters,i=this._sizeArr,r=0;r<this._maxLetters;r++){var n=t+6*r;i[n]=A,i[n+1]=A,i[n+2]=A,i[n+3]=A,i[n+4]=A,i[n+5]=A}this._changedBuffers[2]=!0}setOffsetArr(e,A){for(var t=18*e*this._maxLetters,i=this._offsetArr,r=A.x,n=A.y,s=A.z,a=0;a<this._maxLetters;a++){var o=t+18*a;i[o]=r,i[o+1]=n,i[o+2]=s,i[o+3]=r,i[o+4]=n,i[o+5]=s,i[o+6]=r,i[o+7]=n,i[o+8]=s,i[o+9]=r,i[o+10]=n,i[o+11]=s,i[o+12]=r,i[o+13]=n,i[o+14]=s,i[o+15]=r,i[o+16]=n,i[o+17]=s}this._changedBuffers[3]=!0}setRgbaArr(e,A){for(var t=24*e*this._maxLetters,i=this._rgbaArr,r=A.x,n=A.y,s=A.z,a=A.w,o=0;o<this._maxLetters;o++){var h=t+24*o;i[h]=r,i[h+1]=n,i[h+2]=s,i[h+3]=a,i[h+4]=r,i[h+5]=n,i[h+6]=s,i[h+7]=a,i[h+8]=r,i[h+9]=n,i[h+10]=s,i[h+11]=a,i[h+12]=r,i[h+13]=n,i[h+14]=s,i[h+15]=a,i[h+16]=r,i[h+17]=n,i[h+18]=s,i[h+19]=a,i[h+20]=r,i[h+21]=n,i[h+22]=s,i[h+23]=a}this._changedBuffers[4]=!0}setOutlineColorArr(e,A){for(var t=24*e*this._maxLetters,i=this._outlineColorArr,r=A.x,n=A.y,s=A.z,a=A.w,o=0;o<this._maxLetters;o++){var h=t+24*o;i[h]=r,i[h+1]=n,i[h+2]=s,i[h+3]=a,i[h+4]=r,i[h+5]=n,i[h+6]=s,i[h+7]=a,i[h+8]=r,i[h+9]=n,i[h+10]=s,i[h+11]=a,i[h+12]=r,i[h+13]=n,i[h+14]=s,i[h+15]=a,i[h+16]=r,i[h+17]=n,i[h+18]=s,i[h+19]=a,i[h+20]=r,i[h+21]=n,i[h+22]=s,i[h+23]=a}this._changedBuffers[11]=!0}setOutlineArr(e,A){for(var t=6*e*this._maxLetters,i=this._outlineArr,r=0;r<this._maxLetters;r++){var n=t+6*r;i[n]=A,i[n+1]=A,i[n+2]=A,i[n+3]=A,i[n+4]=A,i[n+5]=A}this._changedBuffers[10]=!0}setRotationArr(e,A){for(var t=6*e*this._maxLetters,i=this._rotationArr,r=0;r<this._maxLetters;r++){var n=t+6*r;i[n]=A,i[n+1]=A,i[n+2]=A,i[n+3]=A,i[n+4]=A,i[n+5]=A}this._changedBuffers[5]=!0}setVertexArr(e,A){for(var t=12*e*this._maxLetters,i=this._vertexArr,r=0;r<this._maxLetters;r++){var n=t+12*r;i[n]=A[0],i[n+1]=A[1],i[n+2]=A[2],i[n+3]=A[3],i[n+4]=A[4],i[n+5]=A[5],i[n+6]=A[6],i[n+7]=A[7],i[n+8]=A[8],i[n+9]=A[9],i[n+10]=A[10],i[n+11]=A[11]}this._changedBuffers[7]=!0}setAlignedAxisArr(e,A){for(var t=18*e*this._maxLetters,i=this._alignedAxisArr,r=A.x,n=A.y,s=A.z,a=0;a<this._maxLetters;a++){var o=t+18*a;i[o]=r,i[o+1]=n,i[o+2]=s,i[o+3]=r,i[o+4]=n,i[o+5]=s,i[o+6]=r,i[o+7]=n,i[o+8]=s,i[o+9]=r,i[o+10]=n,i[o+11]=s,i[o+12]=r,i[o+13]=n,i[o+14]=s,i[o+15]=r,i[o+16]=n,i[o+17]=s}this._changedBuffers[8]=!0}setFontIndexArr(e,A){for(var t=6*e*this._maxLetters,i=this._fontIndexArr,r=0;r<this._maxLetters;r++){var n=t+6*r;i[n]=A,i[n+1]=A,i[n+2]=A,i[n+3]=A,i[n+4]=A,i[n+5]=A}this._changedBuffers[9]=!0}createSizeBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._sizeBuffer),this._sizeBuffer=e.createArrayBuffer(this._sizeArr,1,this._sizeArr.length)}createFontIndexBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._fontIndexBuffer),this._fontIndexBuffer=e.createArrayBuffer(this._fontIndexArr,1,this._fontIndexArr.length)}createTexCoordBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._texCoordBuffer),this._texCoordBuffer=e.createArrayBuffer(this._texCoordArr,4,this._texCoordArr.length/4),e.gl.deleteBuffer(this._gliphParamBuffer),this._gliphParamBuffer=e.createArrayBuffer(this._gliphParamArr,4,this._gliphParamArr.length/4)}createOutlineBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._outlineBuffer),this._outlineBuffer=e.createArrayBuffer(this._outlineArr,1,this._outlineArr.length),e.gl.deleteBuffer(this._noOutlineBuffer),this._noOutlineBuffer=e.createArrayBuffer(this._noOutlineArr,1,this._noOutlineArr.length)}createOutlineColorBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._outlineColorBuffer),this._outlineColorBuffer=e.createArrayBuffer(this._outlineColorArr,4,this._outlineColorArr.length/4)}setMaxLetters(e){this._maxLetters=e}refreshTexCoordsArr(){return null}}class Gt{constructor(e){this._entityCollection=e,this._renderer=null,this._polylines=[],this.__staticId=Gt._staticCounter++,this.pickingEnabled=!0}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}_initProgram(){this._renderer.handler&&(this._renderer.handler.programs.polyline_screen||this._renderer.handler.addProgram(new Mt("polyline_screen",{uniforms:{viewport:"vec2",proj:"mat4",view:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",uFloatParams:"vec2",thickness:"float",opacity:"float"},attributes:{prevHigh:"vec3",currentHigh:"vec3",nextHigh:"vec3",prevLow:"vec3",currentLow:"vec3",nextLow:"vec3",order:"float",color:"vec4"},vertexShader:"precision highp float;\n \n attribute vec3 prevHigh;\n attribute vec3 currentHigh;\n attribute vec3 nextHigh;\n \n attribute vec3 prevLow;\n attribute vec3 currentLow;\n attribute vec3 nextLow;\n\n attribute float order;\n\n attribute vec4 color;\n\n uniform float thickness;\n uniform mat4 proj;\n uniform mat4 view;\n uniform vec2 viewport;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform float opacity;\n\n varying vec4 vColor;\n varying vec3 vPos;\n varying vec3 uCamPos;\n \n const float NEAR = -1.0;\n \n vec2 getIntersection(vec2 start1, vec2 end1, vec2 start2, vec2 end2){\n vec2 dir = end2 - start2;\n vec2 perp = vec2(-dir.y, dir.x);\n float d2 = dot(perp, start2);\n float seg = dot(perp, start1) - d2;\n float prl = seg - dot(perp, end1) + d2;\n if(prl > -1.0 && prl < 1.0){\n return start1;\n }\n float u = seg / prl;\n return start1 + u * (end1 - start1);\n }\n \n vec2 project(vec4 p){\n return (0.5 * p.xyz / p.w + 0.5).xy * viewport;\n }\n \n void main(){\n\n uCamPos = eyePositionHigh + eyePositionLow;\n\n vColor = vec4(color.rgb, color.a * opacity);\n\n vec3 current = currentHigh + currentLow;\n\n vPos = current; \n\n mat4 viewMatrixRTE = view;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n vec3 highDiff, lowDiff;\n\n highDiff = currentHigh - eyePositionHigh;\n lowDiff = currentLow - eyePositionLow;\n vec4 vCurrent = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n\n highDiff = prevHigh - eyePositionHigh;\n lowDiff = prevLow - eyePositionLow; \n vec4 vPrev = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n\n highDiff = nextHigh - eyePositionHigh;\n lowDiff = nextLow - eyePositionLow; \n vec4 vNext = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n\n /*Clip near plane, the point behind view plane*/\n if(vCurrent.z > NEAR) {\n if(vPrev.z < NEAR && abs(order) == 1.0){\n vCurrent = vPrev + (vCurrent - vPrev) * (NEAR - vPrev.z) / (vCurrent.z - vPrev.z);\n } else if(vNext.z < NEAR && abs(order) == 2.0){\n vCurrent = vNext + (vCurrent - vNext) * (NEAR - vNext.z) / (vCurrent.z - vNext.z);\n }\n }\n \n vec4 dCurrent = proj * vCurrent;\n vec2 _next = project(proj * vNext);\n vec2 _prev = project(proj * vPrev);\n vec2 _current = project(dCurrent);\n\n if(_prev == _current){\n if(_next == _current){\n _next = _current + vec2(1.0, 0.0);\n _prev = _current - _next;\n }else{\n _prev = _current + normalize(_current - _next);\n }\n }\n\n if(_next == _current){\n _next = _current + normalize(_current - _prev);\n }\n \n vec2 sNext = _next,\n sCurrent = _current,\n sPrev = _prev;\n\n vec2 dirNext = normalize(sNext - sCurrent);\n vec2 dirPrev = normalize(sPrev - sCurrent);\n float dotNP = dot(dirNext, dirPrev);\n \n vec2 normalNext = normalize(vec2(-dirNext.y, dirNext.x));\n vec2 normalPrev = normalize(vec2(dirPrev.y, -dirPrev.x));\n \n float d = thickness * sign(order);\n \n vec2 m;\n if(dotNP >= 0.99991){\n m = sCurrent - normalPrev * d;\n }else{\n m = getIntersection( sCurrent + normalPrev * d, sPrev + normalPrev * d,\n sCurrent + normalNext * d, sNext + normalNext * d );\n \n if( dotNP > 0.5 && dot(dirNext + dirPrev, m - sCurrent) < 0.0 ){\n float occw = order * sign(dirNext.x * dirPrev.y - dirNext.y * dirPrev.x);\n if(occw == -1.0){\n m = sCurrent + normalPrev * d;\n }else if(occw == 1.0){\n m = sCurrent + normalNext * d;\n }else if(occw == -2.0){\n m = sCurrent + normalNext * d;\n }else if(occw == 2.0){\n m = sCurrent + normalPrev * d;\n }\n }else if(distance(sCurrent, m) > min(distance(sCurrent, sNext), distance(sCurrent, sPrev))){\n m = sCurrent + normalNext * d;\n }\n }\n\n gl_Position = vec4((2.0 * m / viewport - 1.0) * dCurrent.w, dCurrent.z, dCurrent.w);\n }",fragmentShader:"precision highp float;\n uniform vec2 uFloatParams;\n varying vec3 uCamPos;\n varying vec4 vColor;\n varying vec3 vPos;\n void main() {\n vec3 look = vPos - uCamPos;\n float lookLength = length(look);\n float a = vColor.a * step(lookLength, sqrt(dot(uCamPos,uCamPos) - uFloatParams[0]) + sqrt(dot(vPos,vPos) - uFloatParams[0])); \n gl_FragColor = vec4(vColor.rgb, a);\n }"})),this._renderer.handler.programs.polyline_picking||this._renderer.handler.addProgram(new Mt("polyline_picking",{uniforms:{viewport:"vec2",proj:"mat4",view:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",uFloatParams:"vec2",color:"vec4",thickness:"float"},attributes:{prevHigh:"vec3",currentHigh:"vec3",nextHigh:"vec3",prevLow:"vec3",currentLow:"vec3",nextLow:"vec3",order:"float"},vertexShader:"precision highp float;\n \n attribute vec3 prevHigh;\n attribute vec3 currentHigh;\n attribute vec3 nextHigh;\n \n attribute vec3 prevLow;\n attribute vec3 currentLow;\n attribute vec3 nextLow;\n\n attribute float order;\n\n uniform float thickness;\n uniform vec4 color;\n uniform mat4 proj;\n uniform mat4 view;\n uniform vec2 viewport;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n\n varying vec4 vColor;\n varying vec3 vPos;\n varying vec3 uCamPos;\n \n \n const float NEAR = -1.0;\n \n vec2 getIntersection(vec2 start1, vec2 end1, vec2 start2, vec2 end2){\n vec2 dir = end2 - start2;\n vec2 perp = vec2(-dir.y, dir.x);\n float d2 = dot(perp, start2);\n float seg = dot(perp, start1) - d2;\n float prl = seg - dot(perp, end1) + d2;\n if(prl > -1.0 && prl < 1.0){\n return start1;\n }\n float u = seg / prl;\n return start1 + u * (end1 - start1);\n }\n \n vec2 project(vec4 p){\n return (0.5 * p.xyz / p.w + 0.5).xy * viewport;\n }\n \n void main(){\n\n uCamPos = eyePositionHigh + eyePositionLow;\n\n vColor = color;\n\n vec3 current = currentHigh + currentLow;\n\n vPos = current; \n\n vec3 highDiff, lowDiff;\n\n mat4 viewMatrixRTE = view;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n highDiff = currentHigh - eyePositionHigh;\n lowDiff = currentLow - eyePositionLow;\n vec4 vCurrent = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n\n highDiff = prevHigh - eyePositionHigh;\n lowDiff = prevLow - eyePositionLow; \n vec4 vPrev = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n\n highDiff = nextHigh - eyePositionHigh;\n lowDiff = nextLow - eyePositionLow; \n vec4 vNext = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n\n /*Clip near plane*/\n if(vCurrent.z > NEAR) {\n if(vPrev.z < NEAR && abs(order) == 1.0){\n vCurrent = vPrev + (vCurrent - vPrev) * (NEAR - vPrev.z) / (vCurrent.z - vPrev.z);\n } else if(vNext.z < NEAR && abs(order) == 2.0){\n vCurrent = vNext + (vCurrent - vNext) * (NEAR - vNext.z) / (vCurrent.z - vNext.z);\n }\n }\n \n vec4 dCurrent = proj * vCurrent;\n vec2 _next = project(proj * vNext);\n vec2 _prev = project(proj * vPrev);\n vec2 _current = project(dCurrent);\n if(_prev == _current){\n if(_next == _current){\n _next = _current + vec2(1.0, 0.0);\n _prev = _current - _next;\n }else{\n _prev = _current + normalize(_current - _next);\n }\n }\n if(_next == _current){\n _next = _current + normalize(_current - _prev);\n }\n \n vec2 sNext = _next,\n sCurrent = _current,\n sPrev = _prev;\n\n vec2 dirNext = normalize(sNext - sCurrent);\n vec2 dirPrev = normalize(sPrev - sCurrent);\n float dotNP = dot(dirNext, dirPrev);\n \n vec2 normalNext = normalize(vec2(-dirNext.y, dirNext.x));\n vec2 normalPrev = normalize(vec2(dirPrev.y, -dirPrev.x));\n \n float d = thickness * sign(order);\n \n vec2 m;\n if(dotNP >= 0.99991){\n m = sCurrent - normalPrev * d;\n }else{\n m = getIntersection( sCurrent + normalPrev * d, sPrev + normalPrev * d,\n sCurrent + normalNext * d, sNext + normalNext * d );\n \n if( dotNP > 0.5 && dot(dirNext + dirPrev, m - sCurrent) < 0.0 ){\n float occw = order * sign(dirNext.x * dirPrev.y - dirNext.y * dirPrev.x);\n if(occw == -1.0){\n m = sCurrent + normalPrev * d;\n }else if(occw == 1.0){\n m = sCurrent + normalNext * d;\n }else if(occw == -2.0){\n m = sCurrent + normalNext * d;\n }else if(occw == 2.0){\n m = sCurrent + normalPrev * d;\n }\n }\n else if(distance(sCurrent, m) > min(distance(sCurrent, sNext), distance(sCurrent, sPrev))){\n m = sCurrent + normalNext * d;\n }\n }\n gl_Position = vec4((2.0 * m / viewport - 1.0) * dCurrent.w, dCurrent.z, dCurrent.w);\n }",fragmentShader:"precision highp float;\n uniform vec2 uFloatParams;\n varying vec3 uCamPos;\n varying vec4 vColor;\n varying vec3 vPos;\n void main() {\n vec3 look = vPos - uCamPos;\n float lookLength = length(look);\n float a = vColor.a * step(lookLength, sqrt(dot(uCamPos,uCamPos) - uFloatParams[0]) + sqrt(dot(vPos,vPos) - uFloatParams[0])); \n gl_FragColor = vec4(vColor.rgb, a);\n }"})))}setRenderNode(e){this._renderer=e.renderer,this._initProgram();for(var A=0;A<this._polylines.length;A++)this._polylines[A].setRenderNode(e)}add(e){-1===e._handlerIndex&&(e._handler=this,e._handlerIndex=this._polylines.length,this._polylines.push(e),this._entityCollection&&this._entityCollection.renderNode&&e.setRenderNode(this._entityCollection.renderNode))}remove(e){var A=e._handlerIndex;-1!==A&&(e._deleteBuffers(),e._handlerIndex=-1,e._handler=null,this._polylines.splice(A,1),this.reindexPolylineArray(A))}reindexPolylineArray(e){for(var A=this._polylines,t=e;t<A.length;t++)A[t]._handlerIndex=t}draw(){let e=this._polylines.length;for(;e--;)this._polylines[e].draw()}drawPicking(){if(this.pickingEnabled){let e=this._polylines.length;for(;e--;)this._polylines[e].drawPicking()}}clear(){for(var e=this._polylines.length;e--;)this._polylines[e]._deleteBuffers(),this._polylines[e]._handler=null,this._polylines[e]._handlerIndex=-1;this._polylines.length=0,this._polylines=[]}}class Yt{constructor(e){this.pickingEnabled=!0,this._entityCollection=e,this._renderer=null,this._rays=[],this._vertexBuffer=null,this._startPositionHighBuffer=null,this._startPositionLowBuffer=null,this._endPositionHighBuffer=null,this._endPositionLowBuffer=null,this._lengthBuffer=null,this._thicknessBuffer=null,this._rgbaBuffer=null,this._vertexArr=[],this._startPositionHighArr=[],this._startPositionLowArr=[],this._endPositionHighArr=[],this._endPositionLowArr=[],this._lengthArr=[],this._thicknessArr=[],this._rgbaArr=[],this._pickingColorBuffer=null,this._pickingColorArr=[],this._buffersUpdateCallbacks=[],this._buffersUpdateCallbacks[6]=this.createVertexBuffer,this._buffersUpdateCallbacks[1]=this.createStartPositionBuffer,this._buffersUpdateCallbacks[2]=this.createEndPositionBuffer,this._buffersUpdateCallbacks[3]=this.createLengthBuffer,this._buffersUpdateCallbacks[5]=this.createThicknessBuffer,this._buffersUpdateCallbacks[4]=this.createRgbaBuffer,this._buffersUpdateCallbacks[0]=this.createPickingColorBuffer,this._changedBuffers=new Array(this._buffersUpdateCallbacks.length),this.__staticId=Yt._staticCounter++}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}static concArr(e,A){for(var t=0;t<A.length;t++)e.push(A[t])}initProgram(){this._renderer.handler&&(this._renderer.handler.programs.rayScreen||this._renderer.handler.addProgram(new Mt("rayScreen",{uniforms:{projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",resolution:"float",uOpacity:"float"},attributes:{a_vertices:"vec2",a_startPosHigh:"vec3",a_startPosLow:"vec3",a_endPosHigh:"vec3",a_endPosLow:"vec3",a_length:"float",a_thickness:"float",a_rgba:"vec4"},vertexShader:"precision highp float;\n attribute vec2 a_vertices;\n attribute vec3 a_startPosHigh;\n attribute vec3 a_startPosLow;\n attribute vec3 a_endPosHigh;\n attribute vec3 a_endPosLow;\n attribute float a_thickness;\n attribute float a_length;\n attribute vec4 a_rgba;\n\n varying vec4 v_rgba;\n\n uniform mat4 viewMatrix;\n uniform mat4 projectionMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform float resolution;\n uniform float uOpacity;\n\n void main() {\n\n v_rgba = vec4(a_rgba.rgb, a_rgba.a * uOpacity);\n\n vec3 camPos = eyePositionHigh + eyePositionLow;\n\n vec3 startPos = a_startPosHigh + a_startPosLow;\n vec3 direction = normalize((a_endPosHigh + a_endPosLow) - startPos);\n vec3 vertPos = startPos + a_vertices.y * direction * a_length;\n\n vec3 look = vertPos - camPos;\n vec3 up = normalize(direction);\n vec3 right = normalize(cross(look,up));\n \n float dist = dot(camPos - vertPos, vec3(viewMatrix[0][2], viewMatrix[1][2], viewMatrix[2][2]));\n float focalSize = 2.0 * dist * resolution;\n vec3 rr = right * a_thickness * focalSize * a_vertices.x + up * a_length * a_vertices.y;\n\n vec3 highDiff = a_startPosHigh - eyePositionHigh;\n vec3 lowDiff = a_startPosLow + rr - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n vec4 pos = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n \n gl_Position = projectionMatrix * pos;\n }",fragmentShader:"precision highp float;\n varying vec4 v_rgba;\n void main () {\n gl_FragColor = v_rgba;\n }"})))}setRenderer(e){this._renderer=e,this.initProgram()}refresh(){for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]=!0}_removeRays(){for(var e=this._rays.length;e--;){var A=this._rays[e];A._handlerIndex=-1,A._handler=null}this._rays.length=0,this._rays=[]}clear(){this._vertexArr=null,this._startPositionHighArr=null,this._startPositionLowArr=null,this._endPositionHighArr=null,this._endPositionLowArr=null,this._lengthArr=null,this._thicknessArr=null,this._rgbaArr=null,this._vertexArr=new Float32Array,this._startPositionHighArr=new Float32Array,this._startPositionLowArr=new Float32Array,this._endPositionHighArr=new Float32Array,this._endPositionLowArr=new Float32Array,this._lengthArr=new Float32Array,this._thicknessArr=new Float32Array,this._rgbaArr=new Float32Array,this._removeRays(),this._deleteBuffers(),this.refresh()}_deleteBuffers(){if(this._renderer){var e=this._renderer.handler.gl;e.deleteBuffer(this._startPositionHighBuffer),e.deleteBuffer(this._startPositionLowBuffer),e.deleteBuffer(this._endPositionHighBuffer),e.deleteBuffer(this._endPositionLowBuffer),e.deleteBuffer(this._lengthBuffer),e.deleteBuffer(this._thicknessBuffer),e.deleteBuffer(this._rgbaBuffer),e.deleteBuffer(this._vertexBuffer),this._startPositionHighBuffer=null,this._startPositionLowBuffer=null,this._endPositionHighBuffer=null,this._endPositionLowBuffer=null,this._lengthBuffer=null,this._thicknessBuffer=null,this._rgbaBuffer=null,this._vertexBuffer=null}}update(){if(this._renderer)for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]&&(this._buffersUpdateCallbacks[e].call(this),this._changedBuffers[e]=!1)}add(e){-1==e._handlerIndex&&(e._handler=this,e._handlerIndex=this._rays.length,this._rays.push(e),this._addRayToArrays(e),this.refresh())}_addRayToArrays(e){e._visibility?this._vertexArr=He(this._vertexArr,[-.5,1,-.5,0,.5,0,.5,0,.5,1,-.5,1]):this._vertexArr=He(this._vertexArr,[0,0,0,0,0,0,0,0,0,0,0,0]);let A=e._startPositionHigh.x,t=e._startPositionHigh.y,i=e._startPositionHigh.z;this._startPositionHighArr=He(this._startPositionHighArr,[A,t,i,A,t,i,A,t,i,A,t,i,A,t,i,A,t,i]),A=e._startPositionLow.x,t=e._startPositionLow.y,i=e._startPositionLow.z,this._startPositionLowArr=He(this._startPositionLowArr,[A,t,i,A,t,i,A,t,i,A,t,i,A,t,i,A,t,i]),A=e._endPositionHigh.x,t=e._endPositionHigh.y,i=e._endPositionHigh.z,this._endPositionHighArr=He(this._endPositionHighArr,[A,t,i,A,t,i,A,t,i,A,t,i,A,t,i,A,t,i]),A=e._endPositionLow.x,t=e._endPositionLow.y,i=e._endPositionLow.z,this._endPositionLowArr=He(this._endPositionLowArr,[A,t,i,A,t,i,A,t,i,A,t,i,A,t,i,A,t,i]),A=e._thickness,this._thicknessArr=He(this._thicknessArr,[A,A,A,A,A,A]),A=e._length,this._lengthArr=He(this._lengthArr,[A,A,A,A,A,A]);let r=e._startColor.x,n=e._startColor.y,s=e._startColor.z,a=e._startColor.w,o=e._endColor.x,h=e._endColor.y,l=e._endColor.z,d=e._endColor.w;this._rgbaArr=He(this._rgbaArr,[o,h,l,d,r,n,s,a,r,n,s,a,r,n,s,a,o,h,l,d,o,h,l,d]),A=e._entity._pickingColor.x/255,t=e._entity._pickingColor.y/255,i=e._entity._pickingColor.z/255,this._pickingColorArr=He(this._pickingColorArr,[A,t,i,A,t,i,A,t,i,A,t,i,A,t,i,A,t,i])}_displayPASS(){var e=this._renderer,A=e.handler;A.programs.rayScreen.activate();var t=A.programs.rayScreen._program,i=t.attributes,r=t.uniforms,n=A.gl,s=this._entityCollection;n.polygonOffset(s.polygonOffsetFactor,s.polygonOffsetUnits),n.uniform1f(r.uOpacity,s._fadingOpacity),n.uniformMatrix4fv(r.viewMatrix,!1,e.activeCamera.getViewMatrix()),n.uniformMatrix4fv(r.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),n.uniform3fv(r.eyePositionHigh,e.activeCamera.eyeHigh),n.uniform3fv(r.eyePositionLow,e.activeCamera.eyeLow),n.uniform1f(r.resolution,e.activeCamera._tanViewAngle_hradOneByHeight),n.bindBuffer(n.ARRAY_BUFFER,this._startPositionHighBuffer),n.vertexAttribPointer(i.a_startPosHigh,this._startPositionHighBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._startPositionLowBuffer),n.vertexAttribPointer(i.a_startPosLow,this._startPositionLowBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._endPositionHighBuffer),n.vertexAttribPointer(i.a_endPosHigh,this._endPositionHighBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._endPositionLowBuffer),n.vertexAttribPointer(i.a_endPosLow,this._endPositionLowBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._rgbaBuffer),n.vertexAttribPointer(i.a_rgba,this._rgbaBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._thicknessBuffer),n.vertexAttribPointer(i.a_thickness,this._thicknessBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._lengthBuffer),n.vertexAttribPointer(i.a_length,this._lengthBuffer.itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer),n.vertexAttribPointer(i.a_vertices,this._vertexBuffer.itemSize,n.FLOAT,!1,0,0),n.drawArrays(n.TRIANGLES,0,this._vertexBuffer.numItems)}_pickingPASS(){}draw(){this._rays.length&&(this.update(),this._displayPASS())}drawPicking(){this._rays.length&&this.pickingEnabled&&this._pickingPASS()}reindexRaysArray(e){for(var A=this._rays,t=e;t<A.length;t++)A[t]._handlerIndex=t}_removeRay(e){var A=e._handlerIndex;this._rays.splice(A,1);var t=24*A;this._rgbaArr=Qe(this._rgbaArr,t,24),t=18*A,this._startPositionHighArr=Qe(this._startPositionHighArr,t,18),this._startPositionLowArr=Qe(this._startPositionLowArr,t,18),this._endPositionHighArr=Qe(this._endPositionHighArr,t,18),this._endPositionLowArr=Qe(this._endPositionLowArr,t,18),this._pickingColorArr=Qe(this._pickingColorArr,t,18),t=12*A,this._vertexArr=Qe(this._vertexArr,t,12),t=6*A,this._thicknessArr=Qe(this._thicknessArr,t,6),this._lengthArr=Qe(this._lengthArr,t,6),this.reindexRaysArray(A),this.refresh(),e._handlerIndex=-1,e._handler=null}remove(e){e._handler&&this.__staticId==e._handler.__staticId&&this._removeRay(e)}setStartPositionArr(e,A,t){var i=18*e,r=this._startPositionHighArr,n=A.x,s=A.y,a=A.z;r[i]=n,r[i+1]=s,r[i+2]=a,r[i+3]=n,r[i+4]=s,r[i+5]=a,r[i+6]=n,r[i+7]=s,r[i+8]=a,r[i+9]=n,r[i+10]=s,r[i+11]=a,r[i+12]=n,r[i+13]=s,r[i+14]=a,r[i+15]=n,r[i+16]=s,r[i+17]=a,r=this._startPositionLowArr,n=t.x,s=t.y,a=t.z,r[i]=n,r[i+1]=s,r[i+2]=a,r[i+3]=n,r[i+4]=s,r[i+5]=a,r[i+6]=n,r[i+7]=s,r[i+8]=a,r[i+9]=n,r[i+10]=s,r[i+11]=a,r[i+12]=n,r[i+13]=s,r[i+14]=a,r[i+15]=n,r[i+16]=s,r[i+17]=a,this._changedBuffers[1]=!0}setEndPositionArr(e,A,t){var i=18*e,r=this._endPositionHighArr,n=A.x,s=A.y,a=A.z;r[i]=n,r[i+1]=s,r[i+2]=a,r[i+3]=n,r[i+4]=s,r[i+5]=a,r[i+6]=n,r[i+7]=s,r[i+8]=a,r[i+9]=n,r[i+10]=s,r[i+11]=a,r[i+12]=n,r[i+13]=s,r[i+14]=a,r[i+15]=n,r[i+16]=s,r[i+17]=a,r=this._endPositionLowArr,n=t.x,s=t.y,a=t.z,r[i]=n,r[i+1]=s,r[i+2]=a,r[i+3]=n,r[i+4]=s,r[i+5]=a,r[i+6]=n,r[i+7]=s,r[i+8]=a,r[i+9]=n,r[i+10]=s,r[i+11]=a,r[i+12]=n,r[i+13]=s,r[i+14]=a,r[i+15]=n,r[i+16]=s,r[i+17]=a,this._changedBuffers[2]=!0}setPickingColorArr(e,A){var t=18*e,i=this._pickingColorArr,r=A.x/255,n=A.y/255,s=A.z/255;i[t]=r,i[t+1]=n,i[t+2]=s,i[t+3]=r,i[t+4]=n,i[t+5]=s,i[t+6]=r,i[t+7]=n,i[t+8]=s,i[t+9]=r,i[t+10]=n,i[t+11]=s,i[t+12]=r,i[t+13]=n,i[t+14]=s,i[t+15]=r,i[t+16]=n,i[t+17]=s,this._changedBuffers[0]=!0}setRgbaArr(e,A,t){var i=24*e,r=this._rgbaArr,n=A.x,s=A.y,a=A.z,o=A.w,h=t.x,l=t.y,d=t.z,c=t.w;r[i]=h,r[i+1]=l,r[i+2]=d,r[i+3]=c,r[i+4]=n,r[i+5]=s,r[i+6]=a,r[i+7]=o,r[i+8]=n,r[i+9]=s,r[i+10]=a,r[i+11]=o,r[i+12]=n,r[i+13]=s,r[i+14]=a,r[i+15]=o,r[i+16]=h,r[i+17]=l,r[i+18]=d,r[i+19]=c,r[i+20]=h,r[i+21]=l,r[i+22]=d,r[i+23]=c,this._changedBuffers[4]=!0}setThicknessArr(e,A){var t=6*e,i=this._thicknessArr;i[t]=A,i[t+1]=A,i[t+2]=A,i[t+3]=A,i[t+4]=A,i[t+5]=A,this._changedBuffers[5]=!0}setLengthArr(e,A){var t=6*e,i=this._lengthArr;i[t]=A,i[t+1]=A,i[t+2]=A,i[t+3]=A,i[t+4]=A,i[t+5]=A,this._changedBuffers[3]=!0}setVisibility(e,A){var t;t=A?[-.5,1,-.5,0,.5,0,.5,0,.5,1,-.5,1]:[0,0,0,0,0,0,0,0,0,0,0,0],this.setVertexArr(e,t)}setVertexArr(e,A){var t=12*e,i=this._vertexArr;i[t]=A[0],i[t+1]=A[1],i[t+2]=A[2],i[t+3]=A[3],i[t+4]=A[4],i[t+5]=A[5],i[t+6]=A[6],i[t+7]=A[7],i[t+8]=A[8],i[t+9]=A[9],i[t+10]=A[10],i[t+11]=A[11],this._changedBuffers[6]=!0}createStartPositionBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._startPositionHighBuffer),this._startPositionHighArr=Fe(this._startPositionHighArr),this._startPositionHighBuffer=e.createArrayBuffer(this._startPositionHighArr,3,this._startPositionHighArr.length/3,e.gl.DYNAMIC_DRAW),e.gl.deleteBuffer(this._startPositionLowBuffer),this._startPositionLowArr=Fe(this._startPositionLowArr),this._startPositionLowBuffer=e.createArrayBuffer(this._startPositionLowArr,3,this._startPositionLowArr.length/3,e.gl.DYNAMIC_DRAW)}createEndPositionBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._endPositionHighBuffer),this._endPositionHighArr=Fe(this._endPositionHighArr),this._endPositionHighBuffer=e.createArrayBuffer(this._endPositionHighArr,3,this._endPositionHighArr.length/3,e.gl.DYNAMIC_DRAW),e.gl.deleteBuffer(this._endPositionLowBuffer),this._endPositionLowArr=Fe(this._endPositionLowArr),this._endPositionLowBuffer=e.createArrayBuffer(this._endPositionLowArr,3,this._endPositionLowArr.length/3,e.gl.DYNAMIC_DRAW)}createRgbaBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._rgbaBuffer),this._rgbaArr=Fe(this._rgbaArr),this._rgbaBuffer=e.createArrayBuffer(this._rgbaArr,4,this._rgbaArr.length/4)}createThicknessBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._thicknessBuffer),this._thicknessArr=Fe(this._thicknessArr),this._thicknessBuffer=e.createArrayBuffer(this._thicknessArr,1,this._thicknessArr.length,e.gl.DYNAMIC_DRAW)}createLengthBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._lengthBuffer),this._lengthArr=Fe(this._lengthArr),this._lengthBuffer=e.createArrayBuffer(this._lengthArr,1,this._lengthArr.length,e.gl.DYNAMIC_DRAW)}createVertexBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._vertexBuffer),this._vertexArr=Fe(this._vertexArr),this._vertexBuffer=e.createArrayBuffer(this._vertexArr,2,this._vertexArr.length/2,e.gl.DYNAMIC_DRAW)}createPickingColorBuffer(){var e=this._renderer.handler;e.gl.deleteBuffer(this._pickingColorBuffer),this._pickingColorArr=Fe(this._pickingColorArr),this._pickingColorBuffer=e.createArrayBuffer(this._pickingColorArr,3,this._pickingColorArr.length/3)}}class Vt{constructor(e){this.pickingEnabled=!0,this._entityCollection=e,this._renderer=null,this._pointClouds=[],this.__staticId=Vt._staticCounter++}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}_initProgram(){this._renderer.handler&&(this._renderer.handler.programs.pointCloud||this._renderer.handler.addProgram(new Mt("pointCloud",{uniforms:{projectionViewMatrix:{type:Bt.MAT4},opacity:{type:Bt.FLOAT},pointSize:{type:Bt.FLOAT}},attributes:{coordinates:{type:Bt.VEC3,enableArray:!0},colors:{type:Bt.VEC3,enableArray:!0}},vertexShader:"attribute vec3 coordinates;\n attribute vec4 colors;\n uniform mat4 projectionViewMatrix;\n uniform float opacity;\n uniform float pointSize;\n varying vec4 color;\n void main() {\n color = colors;\n color.a *= opacity;\n gl_Position = projectionViewMatrix * vec4(coordinates, 1.0);\n gl_PointSize = pointSize;\n }",fragmentShader:"precision highp float;\n varying vec4 color;\n void main(void) {\n gl_FragColor = color;\n }"})))}setRenderNode(e){this._renderer=e.renderer,this._initProgram();for(var A=0;A<this._pointClouds.length;A++)this._pointClouds[A].setRenderNode(e)}add(e){-1===e._handlerIndex&&(e._handler=this,e._handlerIndex=this._pointClouds.length,this._pointClouds.push(e),this._entityCollection&&this._entityCollection.renderNode&&e.setRenderNode(this._entityCollection.renderNode))}remove(e){var A=e._handlerIndex;-1!==A&&(e._deleteBuffers(),e._handlerIndex=-1,e._handler=null,this._pointClouds.splice(A,1),this.reindexPointCloudArray(A))}reindexPointCloudArray(e){for(var A=this._pointClouds,t=e;t<A.length;t++)A[t]._handlerIndex=t}draw(){for(var e=this._pointClouds.length;e--;)this._pointClouds[e].draw()}drawPicking(){if(this.pickingEnabled)for(var e=this._pointClouds.length;e--;)this._pointClouds[e].drawPicking()}clear(){for(var e=this._pointClouds.length;e--;)this._pointClouds[e]._deleteBuffers(),this._pointClouds[e]._handler=null,this._pointClouds[e]._handlerIndex=-1;this._pointClouds.length=0,this._pointClouds=[]}}class Kt{constructor(e){this.pickingEnabled=!0,this._entityCollection=e,this._renderer=null,this._strips=[],this.__staticId=Kt._staticCounter++}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}_initProgram(){this._renderer.handler&&!this._renderer.handler.programs.strip&&this._renderer.handler.addProgram(new Mt("strip",{uniforms:{projectionMatrix:{type:"mat4"},viewMatrix:{type:"mat4"},eyePositionHigh:"vec3",eyePositionLow:"vec3",uColor:{type:"vec4"},uOpacity:{type:"float"}},attributes:{aVertexPositionHigh:{type:"vec3"},aVertexPositionLow:{type:"vec3"}},vertexShader:"attribute vec3 aVertexPositionHigh;\n attribute vec3 aVertexPositionLow;\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n void main(void) {\n\n vec3 highDiff = aVertexPositionHigh - eyePositionHigh;\n vec3 lowDiff = aVertexPositionLow - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n }",fragmentShader:"precision highp float;\n uniform vec4 uColor;\n uniform float uOpacity;\n void main(void) {\n gl_FragColor = vec4(uColor.rgb, uColor.a * uOpacity);\n }"}))}setRenderNode(e){this._renderer=e.renderer,this._initProgram();for(var A=0;A<this._strips.length;A++)this._strips[A].setRenderNode(e)}add(e){-1===e._handlerIndex&&(e._handler=this,e._handlerIndex=this._strips.length,this._strips.push(e),this._entityCollection&&this._entityCollection.renderNode&&e.setRenderNode(this._entityCollection.renderNode))}remove(e){var A=e._handlerIndex;-1!==A&&(e._deleteBuffers(),e._handlerIndex=-1,e._handler=null,this._strips.splice(A,1),this.reindexStripArray(A))}reindexStripArray(e){for(var A=this._strips,t=e;t<A.length;t++)A[t]._handlerIndex=t}draw(){for(var e=this._strips.length;e--;)this._strips[e].draw()}drawPicking(){if(this.pickingEnabled)for(var e=this._strips.length;e--;)this._strips[e].drawPicking()}clear(){for(var e=this._strips.length;e--;)this._strips[e]._deleteBuffers(),this._strips[e]._handler=null,this._strips[e]._handlerIndex=-1;this._strips.length=0,this._strips=[]}}class Jt{constructor(e){this.pickingEnabled=!0,this._entityCollection=e,this._renderer=null,this._shapes=[],this.__staticId=Jt._staticCounter++}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}_initProgram(){this._renderer.handler&&(this._renderer.handler.programs.shape_nl||this._renderer.handler.addProgram(new Mt("shape_nl",{uniforms:{projectionViewMatrix:{type:Bt.MAT4},modelMatrix:{type:Bt.MAT4},uColor:{type:Bt.VEC4},uSampler:{type:Bt.SAMPLER2D}},attributes:{aVertexPosition:{type:Bt.VEC3,enableArray:!0},aTextureCoord:{type:Bt.VEC2,enableArray:!0}},vertexShader:"attribute vec3 aVertexPosition;\n attribute vec2 aTextureCoord;\n uniform mat4 projectionViewMatrix;\n uniform mat4 modelMatrix;\n varying vec2 vTextureCoord;\n\n void main(void) {\n gl_Position = projectionViewMatrix * (modelMatrix * vec4(aVertexPosition, 1.0));\n vTextureCoord = aTextureCoord;\n }",fragmentShader:"precision highp float;\n uniform vec4 uColor;\n uniform sampler2D uSampler;\n varying vec2 vTextureCoord;\n void main(void) {\n gl_FragColor = uColor*texture2D( uSampler, vTextureCoord.st );\n }"})),this._renderer.handler.programs.shape_wl||this._renderer.handler.addProgram(new Mt("shape_wl",{uniforms:{viewMatrix:{type:Bt.MAT4},projectionMatrix:{type:Bt.MAT4},modelMatrix:{type:Bt.MAT4},normalMatrix:{type:Bt.MAT4},lightsPositions:{type:Bt.VEC4},lightsParamsv:{type:Bt.VEC3},lightsParamsf:{type:Bt.FLOAT},uColor:{type:Bt.VEC4},uSampler:{type:Bt.SAMPLER2D}},attributes:{aVertexNormal:{type:Bt.VEC3},aVertexPosition:{type:Bt.VEC3},aTextureCoord:{type:Bt.VEC2}},vertexShader:"attribute vec3 aVertexNormal;\n attribute vec3 aVertexPosition;\n attribute vec2 aTextureCoord;\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform mat4 modelMatrix;\n uniform mat3 normalMatrix;\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec4 vPosition;\n\n void main(void) {\n vTextureCoord = aTextureCoord;\n vNormal = normalMatrix * aVertexNormal;\n vPosition = viewMatrix * modelMatrix * vec4(aVertexPosition, 1.0);\n gl_Position = projectionMatrix * vPosition;\n }",fragmentShader:"precision highp float;\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec4 vPosition;\n uniform vec4 uColor;\n uniform sampler2D uSampler;\n #define MAX_POINT_LIGHTS 1\n uniform int lightsQuantity;\n uniform vec4 lightsPositions[MAX_POINT_LIGHTS];\n uniform vec3 lightsParamsv[MAX_POINT_LIGHTS * 3];\n uniform float lightsParamsf[MAX_POINT_LIGHTS];\n void main(void) {\n vec3 lightWeighting;\n vec3 lightDirection;\n vec3 normal;\n vec3 eyeDirection;\n vec3 reflectionDirection;\n float specularLightWeighting;\n float diffuseLightWeighting;\n lightDirection = normalize(lightsPositions[0].xyz - vPosition.xyz * lightsPositions[0].w);\n normal = normalize(vNormal);\n eyeDirection = normalize(-vPosition.xyz);\n reflectionDirection = reflect(-lightDirection, normal);\n specularLightWeighting = pow(max(dot(reflectionDirection, eyeDirection), 0.0), lightsParamsf[0]);\n diffuseLightWeighting = max(dot(normal, lightDirection), 0.0);\n lightWeighting = lightsParamsv[0] + lightsParamsv[1] * diffuseLightWeighting + lightsParamsv[2] * specularLightWeighting;\n vec4 cc = texture2D( uSampler, vTextureCoord.st );\n gl_FragColor = vec4(lightWeighting, uColor.a) * cc * uColor;\n }"})),this._renderer.handler.programs.shape_picking||this._renderer.handler.addProgram(new Mt("shape_picking",{uniforms:{projectionViewMatrix:{type:Bt.MAT4},modelMatrix:{type:Bt.MAT4},uColor:{type:Bt.VEC4}},attributes:{aVertexPosition:{type:Bt.VEC3,enableArray:!0}},vertexShader:"attribute vec3 aVertexPosition;\n uniform mat4 projectionViewMatrix;\n uniform mat4 modelMatrix;\n\n void main(void) {\n gl_Position = projectionViewMatrix * (modelMatrix * vec4(aVertexPosition, 1.0));\n }",fragmentShader:"precision highp float;\n uniform vec4 uColor;\n uniform sampler2D uSampler;\n void main(void) {\n gl_FragColor = uColor;\n }"})))}setRenderNode(e){this._renderer=e.renderer,this._initProgram();for(var A=0;A<this._shapes.length;A++)this._shapes[A].setRenderNode(e)}add(e){-1==e._handlerIndex&&(e._handler=this,e._handlerIndex=this._shapes.length,this._shapes.push(e),this._entityCollection&&this._entityCollection.renderNode&&e.setRenderNode(this._entityCollection.renderNode))}remove(e){}draw(){for(var e=this._shapes.length;e--;)this._shapes[e].draw()}drawPicking(){for(var e=this._shapes.length;e--;)this._shapes[e].drawPicking()}clear(){for(let A=0,t=this._shapes.length;A<t;A++){var e=this._shapes[A];e._handlerIndex=-1,e._handler=null}this._shapes.length=0,this._shapes=[]}}const jt=(e=[],A=0,t,i,...r)=>{const n=A*t;for(let A=n,s=n+t;A<s;A++)e[A]=r[A%i];return e};class Wt{constructor(e){this.pickingEnabled=!0,this._entityCollection=e,this._renderer=null,this._planet=null,this._geoObjects=[],this._pitchRollArr=[[]],this._sizeArr=[[]],this._vertexArr=[[]],this._positionHighArr=[[]],this._positionLowArr=[[]],this._directionArr=[[]],this._rgbaArr=[[]],this._normalsArr=[[]],this._indicesArr=[[]],this._pickingColorArr=[[]],this._vehicleVisibleArr=[[]],this._pitchRollBuffer=[],this._sizeBuffer=[],this._vertexBuffer=[],this._positionHighBuffer=[],this._positionLowBuffer=[],this._directionBuffer=[],this._rgbaBuffer=[],this._normalsBuffer=[],this._indicesBuffer=[],this._pickingColorBuffer=[],this._vehicleVisibleBuffer=[],this.__staticId=Wt._staticCounter++,this._buffersUpdateCallbacks=[],this._buffersUpdateCallbacks[8]=this.createPickingColorBuffer,this._buffersUpdateCallbacks[1]=this.createPositionBuffer,this._buffersUpdateCallbacks[5]=this.createDirectionBuffer,this._buffersUpdateCallbacks[3]=this.createNormalsBuffer,this._buffersUpdateCallbacks[2]=this.createRgbaBuffer,this._buffersUpdateCallbacks[4]=this.createIndicesBuffer,this._buffersUpdateCallbacks[0]=this.createVertexBuffer,this._buffersUpdateCallbacks[7]=this.createSizeBuffer,this._buffersUpdateCallbacks[6]=this.createPitchRollBuffer,this._buffersUpdateCallbacks[9]=this.createVisibleBuffer,this._changedBuffers=new Array(this._buffersUpdateCallbacks.length),this._instancedTags=new Map}getObjectByIndex(e){return this._geoObjects[e]}createVertexBuffer(){const e=this._renderer.handler;for(let A=0,t=this._vertexArr.length;A<t;A++)this._vertexBuffer&&e.gl.deleteBuffer(this._vertexBuffer[A]),this._vertexArr[A]=Fe(this._vertexArr[A]),this._vertexBuffer[A]=e.createArrayBuffer(this._vertexArr[A],3,this._vertexArr[A].length/3)}createPitchRollBuffer(){const e=this._renderer.handler;for(let A=0,t=this._pitchRollArr.length;A<t;A++)this._pitchRollBuffer&&e.gl.deleteBuffer(this._pitchRollBuffer[A]),this._pitchRollArr[A]=Fe(this._pitchRollArr[A]),this._pitchRollBuffer[A]=e.createArrayBuffer(this._pitchRollArr[A],2,this._pitchRollArr[A].length/2)}createVisibleBuffer(){const e=this._renderer.handler;for(let A=0,t=this._vehicleVisibleArr.length;A<t;A++)this._vehicleVisibleBuffer&&e.gl.deleteBuffer(this._vehicleVisibleBuffer[A]),this._vehicleVisibleArr[A]=Fe(this._vehicleVisibleArr[A]),this._vehicleVisibleBuffer[A]=e.createArrayBuffer(this._vehicleVisibleArr[A],1,this._vehicleVisibleArr[A].length)}createSizeBuffer(){const e=this._renderer.handler;for(let A=0,t=this._sizeArr.length;A<t;A++)this._sizeBuffer&&e.gl.deleteBuffer(this._sizeBuffer[A]),this._sizeArr[A]=Fe(this._sizeArr[A]),this._sizeBuffer[A]=e.createArrayBuffer(this._sizeArr[A],1,this._sizeArr[A].length)}createPositionBuffer(){let e=this._renderer.handler;for(let A=0,t=this._positionHighArr.length;A<t;A++)this._positionHighBuffer&&e.gl.deleteBuffer(this._positionHighBuffer[A]),this._positionHighArr[A]=Fe(this._positionHighArr[A]),this._positionHighBuffer[A]=e.createArrayBuffer(this._positionHighArr[A],3,this._positionHighArr[A].length/3),this._positionLowBuffer&&e.gl.deleteBuffer(this._positionLowBuffer[A]),this._positionLowArr[A]=Fe(this._positionLowArr[A]),this._positionLowBuffer[A]=e.createArrayBuffer(this._positionLowArr[A],3,this._positionLowArr[A].length/3)}createRgbaBuffer(){const e=this._renderer.handler;for(let A=0,t=this._rgbaArr.length;A<t;A++)this._rgbaBuffer&&e.gl.deleteBuffer(this._rgbaBuffer[A]),this._rgbaArr[A]=Fe(this._rgbaArr[A]),this._rgbaBuffer[A]=e.createArrayBuffer(this._rgbaArr[A],4,this._rgbaArr[A].length/4)}createDirectionBuffer(){const e=this._renderer.handler;for(let A=0,t=this._directionArr.length;A<t;A++)this._directionBuffer&&e.gl.deleteBuffer(this._directionBuffer[A]),this._directionArr[A]=Fe(this._directionArr[A]),this._directionBuffer[A]=e.createArrayBuffer(this._directionArr[A],3,this._directionArr[A].length/3)}createNormalsBuffer(){const e=this._renderer.handler;for(let A=0,t=this._normalsArr.length;A<t;A++)this._normalsBuffer&&e.gl.deleteBuffer(this._normalsBuffer[A]),this._normalsArr[A]=Fe(this._normalsArr[A]),this._normalsBuffer[A]=e.createArrayBuffer(this._normalsArr[A],3,this._normalsArr[A].length/3)}createIndicesBuffer(){const e=this._renderer.handler;for(let A=0,t=this._indicesArr.length;A<t;A++)this._indicesBuffer&&e.gl.deleteBuffer(this._indicesBuffer[A]),this._indicesArr[A]=Fe(this._indicesArr[A],Uint16Array),this._indicesBuffer[A]=e.createElementArrayBuffer(this._indicesArr[A],1,this._indicesArr[A].length)}createPickingColorBuffer(){const e=this._renderer.handler;for(let A=0,t=this._pickingColorArr.length;A<t;A++)this._pickingColorBuffer&&e.gl.deleteBuffer(this._pickingColorBuffer[A]),this._pickingColorArr[A]=Fe(this._pickingColorArr[A]),this._pickingColorBuffer[A]=e.createArrayBuffer(this._pickingColorArr[A],3,this._pickingColorArr[A].length/3)}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}initProgram(){this._renderer.handler&&(this._renderer.handler.programs.geo_object||this._renderer.handler.addProgram(new Mt("geo_object",{uniforms:{viewMatrix:"mat4",projectionMatrix:"mat4",normalMatrix:"mat3",uScaleByDistance:"vec3",eyePositionHigh:"vec3",eyePositionLow:"vec3",lightsPositions:"vec4",lightsParamsv:"vec3",lightsParamsf:"float"},attributes:{aVertexPosition:"vec3",aVertexNormal:"vec3",aPositionHigh:{type:"vec3",divisor:1},aPositionLow:{type:"vec3",divisor:1},aDirection:{type:"vec3",divisor:1},aPitchRoll:{type:"vec2",divisor:1},aColor:{type:"vec4",divisor:1},aScale:{type:"float",divisor:1},aDispose:{type:"float",divisor:1}},vertexShader:"precision highp float;\n\n attribute vec3 aVertexPosition;\n attribute vec3 aVertexNormal; \n attribute vec3 aPositionHigh;\n attribute vec3 aPositionLow; \n attribute vec3 aDirection;\n attribute vec2 aPitchRoll;\n attribute vec4 aColor;\n attribute float aScale;\n attribute float aDispose;\n \n uniform vec3 uScaleByDistance;\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform mat3 normalMatrix;\n \n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n\n varying vec3 vNormal;\n varying vec4 vPosition; \n varying vec4 vColor;\n varying float vDispose;\n \n const float RADIANS = 3.141592653589793 / 180.0;\n\n void main(void) {\n \n vDispose = aDispose;\n vColor = aColor;\n float roll = aPitchRoll.y * RADIANS;\n mat3 rotZ = mat3(\n vec3(cos(roll), sin(roll), 0.0),\n vec3(-sin(roll), cos(roll), 0.0), \n vec3(0.0, 0.0, 1.0) \n );\n\n float pitch = aPitchRoll.x * RADIANS;\n mat3 rotX = mat3(\n vec3(1.0, 0.0, 0.0),\n vec3(0.0, cos(pitch), sin(pitch)), \n vec3(0.0, -sin(pitch), cos(pitch)) \n );\n\n vec3 position = aPositionHigh + aPositionLow;\n vec3 r = cross(normalize(-position), aDirection);\n mat3 modelMatrix = mat3(r, normalize(position), -aDirection) * rotX * rotZ; /*up=-cross(aDirection, r)*/\n\n vec3 look = position - (eyePositionHigh + eyePositionLow);\n float lookLength = length(look);\n float scd = aScale * (1.0 - smoothstep(uScaleByDistance[0], uScaleByDistance[1], lookLength)) * (1.0 - step(uScaleByDistance[2], lookLength));\n vNormal = normalMatrix * modelMatrix * aVertexNormal;\n\n vec3 highDiff = aPositionHigh - eyePositionHigh;\n vec3 lowDiff = aPositionLow + modelMatrix * (aVertexPosition * scd) - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n vPosition = viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n\n gl_Position = mix(vec4(0.0, 0.0, 0.0, 0.0), projectionMatrix * vPosition, aDispose);\n }",fragmentShader:"precision highp float;\n\n varying vec4 vColor;\n #define MAX_POINT_LIGHTS 1\n \n uniform vec4 lightsPositions[MAX_POINT_LIGHTS];\n uniform vec3 lightsParamsv[MAX_POINT_LIGHTS * 3];\n uniform float lightsParamsf[MAX_POINT_LIGHTS];\n \n varying vec3 vNormal;\n varying vec4 vPosition;\n \n void main(void) {\n vec3 lightWeighting;\n vec3 lightDirection;\n vec3 normal;\n vec3 eyeDirection;\n vec3 reflectionDirection;\n float specularLightWeighting;\n float diffuseLightWeighting;\n \n lightDirection = normalize(lightsPositions[0].xyz - vPosition.xyz * lightsPositions[0].w);\n normal = normalize(vNormal);\n eyeDirection = normalize(-vPosition.xyz);\n reflectionDirection = reflect(-lightDirection, normal);\n specularLightWeighting = pow(max(dot(reflectionDirection, eyeDirection), 0.0), lightsParamsf[0]);\n diffuseLightWeighting = max(dot(normal, lightDirection), 0.0);\n lightWeighting = lightsParamsv[0] + lightsParamsv[1] * diffuseLightWeighting + lightsParamsv[2] * specularLightWeighting;\n gl_FragColor = vec4(lightWeighting, 1.0) * vColor;\n }"})),this._renderer.handler.programs.geo_object_picking||this._renderer.handler.addProgram(new Mt("geo_object_picking",{uniforms:{viewMatrix:"mat4",projectionMatrix:"mat4",uScaleByDistance:"vec3",eyePositionHigh:"vec3",eyePositionLow:"vec3",pickingScale:"float"},attributes:{aVertexPosition:"vec3",aPositionHigh:{type:"vec3",divisor:1},aPositionLow:{type:"vec3",divisor:1},aDirection:{type:"vec3",divisor:1},aPitchRoll:{type:"vec2",divisor:1},aPickingColor:{type:"vec3",divisor:1},aScale:{type:"float",divisor:1},aDispose:{type:"float",divisor:1}},vertexShader:"precision highp float;\n\n attribute vec3 aVertexPosition;\n attribute vec3 aPositionHigh;\n attribute vec3 aPositionLow; \n attribute vec3 aDirection;\n attribute vec2 aPitchRoll;\n attribute vec3 aPickingColor;\n attribute float aScale;\n attribute float aDispose;\n \n uniform vec3 uScaleByDistance;\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform float pickingScale;\n \n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n\n varying float vDispose;\n varying vec3 vColor;\n \n const float RADIANS = 3.141592653589793 / 180.0;\n\n void main(void) {\n \n vDispose = aDispose;\n vColor = aPickingColor;\n float roll = aPitchRoll.y * RADIANS;\n mat3 rotZ = mat3(\n vec3(cos(roll), sin(roll), 0.0),\n vec3(-sin(roll), cos(roll), 0.0), \n vec3(0.0, 0.0, 1.0) \n );\n\n float pitch = aPitchRoll.x * RADIANS;\n mat3 rotX = mat3(\n vec3(1.0, 0.0, 0.0),\n vec3(0.0, cos(pitch), sin(pitch)), \n vec3(0.0, -sin(pitch), cos(pitch)) \n );\n\n vec3 position = aPositionHigh + aPositionLow;\n vec3 r = cross(normalize(-position), aDirection);\n mat3 modelMatrix = mat3(r, normalize(position), -aDirection) * rotX * rotZ; /*up=-cross(aDirection, r)*/\n\n vec3 look = position - (eyePositionHigh + eyePositionLow);\n float lookLength = length(look);\n float scd = aScale * pickingScale * (1.0 - smoothstep(uScaleByDistance[0], uScaleByDistance[1], lookLength)) * (1.0 - step(uScaleByDistance[2], lookLength));\n\n vec3 highDiff = aPositionHigh - eyePositionHigh;\n vec3 lowDiff = aPositionLow + modelMatrix * (aVertexPosition * scd) - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n gl_Position = mix(vec4(0.0, 0.0, 0.0, 0.0), projectionMatrix *viewMatrixRTE * vec4(highDiff + lowDiff, 1.0), aDispose);\n }",fragmentShader:"precision highp float;\n varying vec3 vColor;\n varying float vDispose;\n void main () {\n gl_FragColor = vec4(vColor, vDispose);\n }"})))}setRenderNode(e){this._renderer=e.renderer,this._planet=e,this.initProgram()}setRenderer(e){super.setRenderer(e)}_addGeoObjectToArray(e){let A=3;const t=e.tag;if(this._instancedTags.has(t)){const e=this._instancedTags.get(t),A=e.iCounts+1;this._instancedTags.set(t,{...e,iCounts:A})}else this._instancedTags.set(t,{iCounts:1,maxIndex:Math.max(...e._indices),index:this._instancedTags.size});const i=this._instancedTags.get(t),r=i.index;e._tagIndex=i.iCounts-1,this._vertexArr[r]&&this._vertexArr[r].length===e._vertices.length||(this._vertexArr[r]=He(this._vertexArr[r],jt([],0,e._verticesCount*A,e._verticesCount*A,...e._vertices)),this._normalsArr[r]=He(this._normalsArr[r],jt([],0,e._verticesCount*A,e._verticesCount*A,...e._normals))),this._vehicleVisibleArr[r]=He(this._vehicleVisibleArr[r],jt([],0,1,1,e._visibility?1:0));let n,s=e._positionHigh.x,a=e._positionHigh.y,o=e._positionHigh.z;this._positionHighArr[r]=He(this._positionHighArr[r],jt([],0,A,A,s,a,o)),s=e._positionLow.x,a=e._positionLow.y,o=e._positionLow.z,this._positionLowArr[r]=He(this._positionLowArr[r],jt([],0,A,A,s,a,o)),s=e._entity._pickingColor.x/255,a=e._entity._pickingColor.y/255,o=e._entity._pickingColor.z/255,this._pickingColorArr[r]=He(this._pickingColorArr[r],jt([],0,A,A,s,a,o)),s=e._direction.x,a=e._direction.y,o=e._direction.z,this._directionArr[r]=He(this._directionArr[r],jt([],0,A,A,s,a,o)),A=4,s=e._color.x,a=e._color.y,o=e._color.z,n=e._color.w,this._rgbaArr[r]=He(this._rgbaArr[r],jt([],0,A,A,s,a,o,n)),s=e._pitch,a=e._roll,A=2,this._pitchRollArr[r]=He(this._pitchRollArr[r],jt([],0,A,A,s,a)),A=1,this._sizeArr[r]=He(this._sizeArr[r],jt([],0,A,A,e.scale)),this._addIndices(e)}_displayPASS(){const e=this._renderer,A=e.handler.programs.geo_object,t=A._program,i=t.uniforms,r=t.attributes,n=e.handler.gl,s=this._entityCollection;A.activate(),n.enable(n.CULL_FACE),n.uniform3fv(i.uScaleByDistance,s.scaleByDistance),n.uniform3fv(i.eyePositionHigh,e.activeCamera.eyeHigh),n.uniform3fv(i.eyePositionLow,e.activeCamera.eyeLow),n.uniformMatrix4fv(i.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),n.uniformMatrix4fv(i.viewMatrix,!1,e.activeCamera.getViewMatrix()),n.uniformMatrix3fv(i.normalMatrix,!1,e.activeCamera._normalMatrix._m),n.uniform4fv(i.lightsPositions,this._planet._lightsTransformedPositions),n.uniform3fv(i.lightsParamsv,this._planet._lightsParamsv),n.uniform1fv(i.lightsParamsf,this._planet._lightsParamsf);for(const e of this._instancedTags){const A=e[1],t=A.index;n.bindBuffer(n.ARRAY_BUFFER,this._normalsBuffer[t]),n.vertexAttribPointer(r.aVertexNormal,this._normalsBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer[t]),n.vertexAttribPointer(r.aVertexPosition,this._vertexBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._directionBuffer[t]),n.vertexAttribPointer(r.aDirection,this._directionBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._sizeBuffer[t]),n.vertexAttribPointer(r.aScale,this._sizeBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._pitchRollBuffer[t]),n.vertexAttribPointer(r.aPitchRoll,this._pitchRollBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._rgbaBuffer[t]),n.vertexAttribPointer(r.aColor,this._rgbaBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._vehicleVisibleBuffer[t]),n.vertexAttribPointer(r.aDispose,this._vehicleVisibleBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionHighBuffer[t]),n.vertexAttribPointer(r.aPositionHigh,this._positionHighBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionLowBuffer[t]),n.vertexAttribPointer(r.aPositionLow,this._positionLowBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this._indicesBuffer[t]),A.iCounts?n.drawElementsInstanced(n.TRIANGLES,this._indicesBuffer[t].numItems/A.iCounts,n.UNSIGNED_SHORT,0,A.iCounts):n.drawElements(n.TRIANGLES,this._indicesBuffer[t].numItems,n.UNSIGNED_SHORT,0)}n.disable(n.CULL_FACE)}drawPicking(){this._geoObjects.length&&this.pickingEnabled&&this._pickingPASS()}_pickingPASS(){const e=this._renderer,A=e.handler.programs.geo_object_picking,t=A._program,i=t.uniforms,r=t.attributes,n=e.handler.gl,s=this._entityCollection;A.activate(),n.enable(n.CULL_FACE),n.uniform3fv(i.uScaleByDistance,s.scaleByDistance),n.uniform1f(i.pickingScale,s.pickingScale),n.uniform3fv(i.eyePositionHigh,e.activeCamera.eyeHigh),n.uniform3fv(i.eyePositionLow,e.activeCamera.eyeLow),n.uniformMatrix4fv(i.projectionMatrix,!1,e.activeCamera.getProjectionMatrix()),n.uniformMatrix4fv(i.viewMatrix,!1,e.activeCamera.getViewMatrix());for(const e of this._instancedTags){const A=e[1],t=A.index;n.bindBuffer(n.ARRAY_BUFFER,this._vertexBuffer[t]),n.vertexAttribPointer(r.aVertexPosition,this._vertexBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._directionBuffer[t]),n.vertexAttribPointer(r.aDirection,this._directionBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._sizeBuffer[t]),n.vertexAttribPointer(r.aScale,this._sizeBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._pitchRollBuffer[t]),n.vertexAttribPointer(r.aPitchRoll,this._pitchRollBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._pickingColorBuffer[t]),n.vertexAttribPointer(r.aPickingColor,this._pickingColorBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionHighBuffer[t]),n.vertexAttribPointer(r.aPositionHigh,this._positionHighBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._positionLowBuffer[t]),n.vertexAttribPointer(r.aPositionLow,this._positionLowBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ARRAY_BUFFER,this._vehicleVisibleBuffer[t]),n.vertexAttribPointer(r.aDispose,this._vehicleVisibleBuffer[t].itemSize,n.FLOAT,!1,0,0),n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,this._indicesBuffer[t]),A.iCounts?n.drawElementsInstanced(n.TRIANGLES,this._indicesBuffer[t].numItems/A.iCounts,n.UNSIGNED_SHORT,0,A.iCounts):n.drawElements(n.TRIANGLES,this._indicesBuffer[t].numItems,n.UNSIGNED_SHORT,0)}n.disable(n.CULL_FACE)}_recalculateIndices(e){const A=this._indicesArr,t=this._geoObjects,i=new Array(this._instancedTags.size).fill(0);for(let e=0;e<t.length;e++){const r=t[e],n=this.getTagIndexByObjectIndex(r._handlerIndex),s=r._indices;for(let e=0;e<s.length;e++){const t=s[e],a=r._indicesCount*r._tagIndex+e;r._tagIndex>0?(A[n][a]=t+i[n],A[n][a]>i[n]&&(i[n]=A[n][a]+1)):(A[n][a]=t,t>i[n]&&(i[n]=t+1))}}}_addIndices(e){let A=e._handlerIndex;const t=this._indicesArr,i=this._geoObjects,r=e._indices.length,n=this._instancedTags.get(e.tag),s=n.maxIndex,a=n.index;for(t[a]=He(t[a],e._indices);i[A];){const e=i[A];e._tagIndex>0&&jt(t[a],e._tagIndex,r,r,...e._indices.reduce(((A,t)=>(A.push(t+(s+1)*e._tagIndex),A)),[])),A++}}_removeIndices(e){const A=this._indicesArr,t=this._geoObjects,i=e._indices.length,r=this._instancedTags.get(e.tag),n=r.maxIndex,s=r.index,a=r.iCounts;let o=e._handlerIndex;for(this._indicesArr[s]=Qe(this._indicesArr[s],e._tagIndex*e._indicesCount,e._indicesCount);t[o];){if(e.tag===t[o].tag)if(0!==a){const r=(t[o]._tagIndex-1)*i;let a=r+e._indicesCount;for(;a>r;)this._indicesArr[s][a-1]=A[s][a-1]-n-1,a--}else A[s]=e._indices;o++}}setDirectionArr(e,A){const t=this.getObjectByIndex(e),i=this.getTagIndexByObjectIndex(e);let r=3*t._verticesCount;t.instanced&&(r=3),jt(this._directionArr[i],t._tagIndex,r,3,A.x,A.y,A.z),this._changedBuffers[5]=!0}setVisibility(e,A){const t=this.getObjectByIndex(e),i=this.getTagIndexByObjectIndex(e);jt(this._vehicleVisibleArr[i],t._tagIndex,1,1,A?1:0),this._changedBuffers[9]=!0}setPositionArr(e,A,t){const i=this.getObjectByIndex(e),r=this.getTagIndexByObjectIndex(e);let n=3*i._verticesCount;i.instanced&&(n=3),jt(this._positionHighArr[r],i._tagIndex,n,3,A.x,A.y,A.z),jt(this._positionLowArr[r],i._tagIndex,n,3,t.x,t.y,t.z),this._changedBuffers[1]=!0}setRgbaArr(e,A){const t=this.getObjectByIndex(e),i=this.getTagIndexByObjectIndex(e);let r=4*t._verticesCount;t.instanced&&(r=4),jt(this._rgbaArr[i],t._tagIndex,r,4,A.x,A.y,A.z,A.w),this._changedBuffers[2]=!0}getTagIndexByObjectIndex(e){return this._instancedTags.get(this.getObjectByIndex(e).tag).index}getTagDataByObjectIndex(e){return this._instancedTags.get(this.getObjectByIndex(e).tag)}setPickingColorArr(e,A){const t=this.getTagIndexByObjectIndex(e),i=this.getObjectByIndex(e),r=A.x/255,n=A.y/255,s=A.z/255;let a=3*i._verticesCount;i.instanced&&(a=3),jt(this._pickingColorArr[t],i._tagIndex,a,3,r,n,s),this._changedBuffers[8]=!0}setPitchRollArr(e,A,t){const i=this.getTagIndexByObjectIndex(e),r=this.getObjectByIndex(e);let n=2*r._verticesCount;r.instanced&&(n=2),jt(this._pitchRollArr[i],r._tagIndex,n,2,A,t),this._changedBuffers[6]=!0}setScaleArr(e,A){const t=this.getTagIndexByObjectIndex(e),i=this.getObjectByIndex(e);let r=1*i._verticesCount;i.instanced&&(r=1),jt(this._sizeArr[t],i._tagIndex,r,1,A),this._changedBuffers[7]=!0}refresh(){let e=this._changedBuffers.length;for(;e--;)this._changedBuffers[e]=!0}_removeGeoObjects(){let e=this._geoObjects.length;for(;e--;){const A=this._geoObjects[e];A._handlerIndex=-1,A._handler=null}this._geoObjects.length=0,this._geoObjects=[]}clear(){this._sizeArr=null,this._pitchRollArr=null,this._vertexArr=null,this._positionHighArr=null,this._positionLowArr=null,this._directionArr=null,this._rgbaArr=null,this._normalsArr=null,this._indicesArr=null,this._pickingColorArr=null,this._vehicleVisibleArr=null,this._pitchRollArr=[new Float32Array],this._sizeArr=[new Float32Array],this._vertexArr=[new Float32Array],this._positionHighArr=[new Float32Array],this._positionLowArr=[new Float32Array],this._rgbaArr=[new Float32Array],this._directionArr=[new Float32Array],this._normalsArr=[new Float32Array],this._indicesArr=[new Uint16Array],this._pickingColorArr=[new Float32Array],this._vehicleVisibleArr=[new Int8Array],this._removeGeoObjects(),this._deleteBuffers(),this.refresh()}_deleteBuffers(){if(this._renderer){const e=this._renderer.handler.gl;e.deleteBuffer(this._sizeBuffer),e.deleteBuffer(this._pitchRollBuffer),e.deleteBuffer(this._vertexBuffer),e.deleteBuffer(this._positionHighBuffer),e.deleteBuffer(this._positionLowBuffer),e.deleteBuffer(this._rgbaBuffer),e.deleteBuffer(this._indicesBuffer),e.deleteBuffer(this._normalsBuffer),e.deleteBuffer(this._directionBuffer),e.deleteBuffer(this._pickingColorBuffer)}this._pitchRollBuffer=null,this._sizeBuffer=null,this._vertexBuffer=null,this._positionHighBuffer=null,this._positionLowBuffer=null,this._rgbaBuffer=null,this._indicesBuffer=null,this._normalsBuffer=null,this._directionBuffer=null,this._pickingColorBuffer=null}update(){if(this._renderer){let e=this._changedBuffers.length;for(;e--;)this._changedBuffers[e]&&(this._buffersUpdateCallbacks[e].call(this),this._changedBuffers[e]=!1)}}draw(){this._geoObjects.length&&(this.update(),this._displayPASS())}_reindexGeoObjects(e,A){const t=this._geoObjects;for(let i=e;i<t.length;i++){const e=t[i];t[i]._handlerIndex=i,A===e.tag&&--t[i]._tagIndex}}add(e){-1===e._handlerIndex&&(e._handler=this,e._handlerIndex=this._geoObjects.length,this._geoObjects.push(e),this._addGeoObjectToArray(e),this.refresh())}remove(e){e._handler&&this.__staticId==e._handler.__staticId&&this._removeGeoObject(e)}_removeGeoObject(e){const A=e._handlerIndex,t=e.tag,i=this.getTagIndexByObjectIndex(A),r=this._instancedTags.get(t),n=r.iCounts-1;this._instancedTags.set(t,{...r,iCounts:n}),this._geoObjects.splice(A,1);let s=4*e._tagIndex;this._rgbaArr[i]=Qe(this._rgbaArr[i],s,4),s=3*e._tagIndex,r.iCounts<=1&&(this._vertexArr[i]=Qe(this._vertexArr[i],0,3*e._verticesCount),this._normalsArr[i]=Qe(this._normalsArr[i],0,3*e._verticesCount)),this._positionHighArr[i]=Qe(this._positionHighArr[i],s,3),this._positionLowArr[i]=Qe(this._positionLowArr[i],s,3),this._directionArr[i]=Qe(this._directionArr[i],s,3),this._pickingColorArr[i]=Qe(this._pickingColorArr[i],s,3),s=2*e._tagIndex,this._pitchRollArr[i]=Qe(this._pitchRollArr[i],s,2),s=e._tagIndex,this._sizeArr[i]=Qe(this._sizeArr[i],s,1),this._vehicleVisibleArr[i]=Qe(this._vehicleVisibleArr[i],s,1),this._removeIndices(e),this._reindexGeoObjects(A,t),this.refresh(),e._handlerIndex=-1,e._handler=null}}class Xt{constructor(e){e=e||{},this.id=Xt._staticCounter++,this._renderNodeIndex=-1,this.renderNode=null,this._visibility=null==e.visibility||e.visibility,this.polygonOffsetFactor=null!=e.polygonOffsetFactor?e.polygonOffsetFactor:0,this.polygonOffsetUnits=null!=e.polygonOffsetUnits?e.polygonOffsetUnits:0,this.billboardHandler=new Nt(this),this.labelHandler=new Ut(this,e.labelMaxLetters),this.shapeHandler=new Jt(this),this.polylineHandler=new Gt(this),this.rayHandler=new Yt(this),this.pointCloudHandler=new Vt(this),this.stripHandler=new Kt(this),this.geoObjectHandler=new Wt(this),null!=e.pickingEnabled&&this.setPickingEnabled(e.pickingEnabled),this._entities=[],this.scaleByDistance=e.scaleByDistance||[h,h,h],this.pickingScale=e.pickingScale||1,this._opacity=null==e.opacity?1:e.opacity,this._fadingOpacity=this._opacity,this.events=new bA(Zt,this),this.rendererEvents=this.events,e.entities&&this.addEntities(e.entities)}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}setPolygonOffset(e,A){this.polygonOffsetFactor=e,this.polygonOffsetUnits=A}setVisibility(e){this._visibility=e,this._fadingOpacity=this._opacity*(e?1:0),this.events.dispatch(this.events.visibilitychange,this)}getVisibility(){return this._visibility}setOpacity(e){this._opacity=e}setPickingEnabled(e){this.billboardHandler.pickingEnabled=e,this.labelHandler.pickingEnabled=e,this.polylineHandler.pickingEnabled=e,this.rayHandler.pickingEnabled=e,this.shapeHandler.pickingEnabled=e,this.pointCloudHandler.pickingEnabled=e,this.stripHandler.pickingEnabled=e,this.geoObjectHandler.pickingEnabled=e}getOpacity(){return this._opacity}setScaleByDistance(e,A,t){this.scaleByDistance[0]=e,this.scaleByDistance[1]=A,this.scaleByDistance[2]=t||h}_addRecursively(e){e.billboard&&this.billboardHandler.add(e.billboard),e.label&&this.labelHandler.add(e.label),e.shape&&this.shapeHandler.add(e.shape),e.polyline&&this.polylineHandler.add(e.polyline),e.ray&&this.rayHandler.add(e.ray),e.pointCloud&&this.pointCloudHandler.add(e.pointCloud),e.strip&&this.stripHandler.add(e.strip),e.geoObject&&this.geoObjectHandler.add(e.geoObject),this.events.dispatch(this.events.entityadd,e);for(var A=0;A<e.childrenNodes.length;A++)e.childrenNodes[A]._entityCollection=this,e.childrenNodes[A]._entityCollectionIndex=e._entityCollectionIndex,e.childrenNodes[A]._pickingColor=e._pickingColor,this._addRecursively(e.childrenNodes[A])}add(e){if(!e._entityCollection){e._entityCollection=this,e._entityCollectionIndex=this._entities.length,this._entities.push(e);var A=this.renderNode;A&&(A.renderer&&A.renderer.assignPickingColor(e),A.ellipsoid&&e._cartesian.isZero()&&e.setCartesian3v(A.ellipsoid.lonLatToCartesian(e._lonlat))),this._addRecursively(e),e.setPickingColor()}return this}addEntities(e){for(let A=0,t=e.length;A<t;A++)this.add(e[A]);return this}belongs(e){return e._entityCollection&&this._renderNodeIndex===e._entityCollection._renderNodeIndex}_removeRecursively(e){e._entityCollection=null,e._entityCollectionIndex=-1,e.billboard&&this.billboardHandler.remove(e.billboard),e.label&&this.labelHandler.remove(e.label),e.shape&&this.shapeHandler.remove(e.shape),e.polyline&&this.polylineHandler.remove(e.polyline),e.ray&&this.rayHandler.remove(e.ray),e.pointCloud&&this.pointCloudHandler.remove(e.pointCloud),e.strip&&this.stripHandler.remove(e.strip),e.geoObject&&this.geoObjectHandler.remove(e.geoObject);for(var A=0;A<e.childrenNodes.length;A++)this._removeRecursively(e.childrenNodes[A])}removeEntity(e){this._entities.splice(e._entityCollectionIndex,1),this.reindexEntitiesArray(e._entityCollectionIndex),this.renderNode&&this.renderNode.renderer&&(this.renderNode.renderer.clearPickingColor(e),e._pickingColor.clear()),this.belongs(e)&&this._removeRecursively(e),this.events.dispatch(this.events.entityremove,e)}_removeEntitySilent(e){this._entities.splice(e._entityCollectionIndex,1),this.reindexEntitiesArray(e._entityCollectionIndex),this.renderNode&&this.renderNode.renderer&&(this.renderNode.renderer.clearPickingColor(e),e._pickingColor.clear()),this.belongs(e)&&this._removeRecursively(e)}createPickingColors(){for(var e=this._entities,A=0;A<e.length;A++)e[A].parent||(this.renderNode.renderer.assignPickingColor(e[A]),e[A].setPickingColor())}reindexEntitiesArray(e){for(var A=this._entities,t=e;t<A.length;t++)A[t]._entityCollectionIndex=t}addTo(e,A){return this.renderNode||(this.renderNode=e,A||(this._renderNodeIndex=e.entityCollections.length,e.entityCollections.push(this)),e.ellipsoid&&this._updateGeodeticCoordinates(e.ellipsoid),this.bindRenderNode(e),this.events.dispatch(this.events.add,this)),this}bindRenderNode(e){e.renderer&&(this.billboardHandler.setRenderer(e.renderer),this.labelHandler.setRenderer(e.renderer),this.rayHandler.setRenderer(e.renderer),this.geoObjectHandler.setRenderNode(e),this.shapeHandler.setRenderNode(e),this.polylineHandler.setRenderNode(e),this.pointCloudHandler.setRenderNode(e),this.stripHandler.setRenderNode(e),this.updateBillboardsTextureAtlas(),this.updateLabelsFontAtlas(),this.createPickingColors())}_updateGeodeticCoordinates(e){for(var A=this._entities,t=A.length;t--;){var i=A[t];i._lonlat&&i.setCartesian3v(e.lonLatToCartesian(i._lonlat))}}updateBillboardsTextureAtlas(){for(var e=this.billboardHandler._billboards,A=0;A<e.length;A++)e[A].setSrc(e[A]._src)}updateLabelsFontAtlas(){if(this.renderNode){var e=[].concat(this.labelHandler._billboards);this.labelHandler._billboards=[];for(var A=0;A<e.length;A++)this.labelHandler.assignFontAtlas(e[A])}}remove(){if(this.renderNode){if(-1!==this._renderNodeIndex){this.renderNode.entityCollections.splice(this._renderNodeIndex,1);for(var e=this._renderNodeIndex;e<this.renderNode.entityCollections.length;e++)this.renderNode.entityCollections._renderNodeIndex=e}this.renderNode=null,this._renderNodeIndex=-1,this.events.dispatch(this.events.remove,this)}}getEntities(){return[].concat(this._entities)}each(e){for(var A=this._entities.length;A--;){var t=this._entities[A];t&&e(t)}}clear(){this.billboardHandler.clear(),this.labelHandler.clear(),this.shapeHandler.clear(),this.polylineHandler.clear(),this.rayHandler.clear(),this.pointCloudHandler.clear(),this.stripHandler.clear(),this.geoObjectHandler.clear();for(var e=this._entities.length;e--;){var A=this._entities[e];this.renderNode&&this.renderNode.renderer&&(this.renderNode.renderer.clearPickingColor(A),A._pickingColor.clear()),this._clearEntity(A)}this._entities.length=0,this._entities=[]}_clearEntity(e){e._entityCollection=null,e._entityCollectionIndex=-1;for(var A=0;A<e.childrenNodes.length;A++)this._clearEntity(e.childrenNodes[A])}}const Zt=["entitymove","draw","drawend","add","remove","entityadd","entityremove","visibilitychange","mousemove","mouseenter","mouseleave","lclick","rclick","mclick","ldblclick","rdblclick","mdblclick","lup","rup","mup","ldown","rdown","mdown","lhold","rhold","mhold","mousewheel","touchmove","touchstart","touchend","doubletouch","touchleave","touchenter"];class qt{constructor(e,A,t,i,r,n,s){this.layer=e,this.parentNode=t,this.childrenNodes=[],this.partId=A,this.nodeId=A+i,this.state=null,this.extent=r,this.count=0,this.deferredEntities=[],this.entityCollection=null,this.zoom=s,this._inTheQueue=!1,this.bsphere=new xA,n&&this._setExtentBounds()}insertEntity(e,A){this.buildTree([e],A)}_addEntitiesToCollection(e,A){if(e.length){var t=this.layer,i=t._planet,r=this.entityCollection;r||((r=new Xt({pickingEnabled:t._pickingEnabled,labelMaxLetters:t._labelMaxLetters}))._layer=this.layer,r.addTo(i,!0),r._quadNode=this,t._bindEventsDefault(r),this.entityCollection=r),A||!t.async?this.entityCollection.addEntities(e):this.deferredEntities.push.apply(this.deferredEntities,e)}}_setExtentBounds(){this.nodeId?this.bsphere.setFromExtent(this.layer._planet.ellipsoid,this.extent.inverseMercator()):(this.bsphere.radius=this.layer._planet.ellipsoid._a,this.bsphere.center=new le)}__setLonLat__(e){return e._lonlat.isZero()&&!e._cartesian.isZero()&&(e._lonlat=this.layer._planet.ellipsoid.cartesianToLonLat(e._cartesian)),Math.abs(e._lonlat.lat)<te?e._lonlatMerc=e._lonlat.forwardMercator():e._lonlatMerc=null,e._lonlatMerc}buildTree(e,A){if(this.count+=e.length,e.length>this.layer._nodeCapacity||this.zoom>this.layer.minZoom){var t=this.childrenNodes;t.length||this.createChildrenNodes();for(var i=[],r=[],n=[],s=[],a=e.length;a--;){var o=e[a];t[0].isInside(o)?(o._nodePtr=t[0],i.push(o)):t[1].isInside(o)?(o._nodePtr=t[1],r.push(o)):t[2].isInside(o)?(o._nodePtr=t[2],n.push(o)):t[3].isInside(o)&&(o._nodePtr=t[3],s.push(o))}i.length&&t[0].buildTree(i,A),r.length&&t[1].buildTree(r,A),n.length&&t[2].buildTree(n,A),s.length&&t[3].buildTree(s,A)}else this._addEntitiesToCollection(e,A)}isInside(e){return this.extent.isInside(e._lonlatMerc)}createChildrenNodes(){var e=this.layer,A=this.extent,t=.5*A.getWidth(),i=.5*A.getHeight(),r=A.northEast,n=A.southWest,s=4*this.nodeId+1,a=new F(n.lon+t,n.lat+i),o=this.childrenNodes,h=this.layer._planet,l=this.zoom+1;o[0]=new qt(e,0,this,s,new ne(new F(n.lon,n.lat+i),new F(n.lon+t,r.lat)),h,l),o[1]=new qt(e,1,this,s,new ne(a,new F(r.lon,r.lat)),h,l),o[2]=new qt(e,2,this,s,new ne(new F(n.lon,n.lat),a),h,l),o[3]=new qt(e,3,this,s,new ne(new F(n.lon+t,n.lat),new F(r.lon,n.lat+i)),h,l)}collectRenderCollectionsPASS1(e,A){var t=e[this.nodeId];if(t){var i=this.childrenNodes;this.entityCollection?this.renderCollection(A,e):i.length&&(1===t.state?this.layer._secondPASS.push(this):(i[0].collectRenderCollectionsPASS1(e,A),i[1].collectRenderCollectionsPASS1(e,A),i[2].collectRenderCollectionsPASS1(e,A),i[3].collectRenderCollectionsPASS1(e,A)))}}collectRenderCollectionsPASS2(e,A,t){var i=this.layer._planet,r=i.renderer.activeCamera,n=r.eye.distance(this.bsphere.center)-this.bsphere.radius<3570*Math.sqrt(r._lonLat.height)||r._lonLat.height>1e4;if(this.count>0&&n&&i.renderer.activeCamera.frustum.containsSphere(this.bsphere)>0){var s=this.childrenNodes;this.entityCollection?this.renderCollection(A,e,t):s.length&&(s[0].collectRenderCollectionsPASS2(e,A,t),s[1].collectRenderCollectionsPASS2(e,A,t),s[2].collectRenderCollectionsPASS2(e,A,t),s[3].collectRenderCollectionsPASS2(e,A,t))}}applyCollection(){this.entityCollection.addEntities(this.deferredEntities),this.deferredEntities.length=0,this.deferredEntities=[],this._inTheQueue=!1}traverseTree(e){var A=this.childrenNodes;this.entityCollection?e(this):A.length&&(A[0].traverseTree(e),A[1].traverseTree(e),A[2].traverseTree(e),A[3].traverseTree(e))}renderCollection(e,A,t){var i=this.layer;i._renderingNodes[this.nodeId]=!0,this.deferredEntities.length&&!this._inTheQueue&&(i.async?i._queueDeferredNode(this):this.applyCollection());var r=this.entityCollection;if(r._fadingOpacity=i._fadingOpacity,r.scaleByDistance=i.scaleByDistance,r.pickingScale=i.pickingScale,r.polygonOffsetFactor=i.polygonOffsetFactor,r.polygonOffsetUnits=i.polygonOffsetUnits,e.push(r),i.clampToGround||i.relativeToGround){var n=r._entities,s=n.length;if(A[this.nodeId]&&1===A[this.nodeId].state)for(;s--;){let e=n[s];this.alignEntityToTheGround(e,A[this.nodeId].segment)}else if(t)for(;s--;){let e=n[s];this.alignEntityToTheGround(e,A[t].segment)}else for(var a=i._planet._renderedNodes;s--;){let e=n[s],A=a.length;for(;A--;)if(a[A].segment.isEntityInside(e)){this.alignEntityToTheGround(e,a[A].segment);break}}}}alignEntityToTheGround(e,A){var t=new le;A.getEntityTerrainPoint(e,t),e._setCartesian3vSilent(t.addA(t.normal().scale(Number(this.layer.relativeToGround)&&e._altitude||0)))}isVisible(){return!!this.layer._renderingNodes[this.nodeId]}}class $t extends qt{constructor(e,A,t,i,r,n,s){super(e,A,t,i,r,n,s),this.isNorth=!1}createChildrenNodes(){var e=this.layer,A=this.extent,t=.5*A.getWidth(),i=.5*A.getHeight(),r=A.northEast,n=A.southWest,s=4*this.nodeId+1,a=new F(n.lon+t,n.lat+i),o=this.childrenNodes,h=this.layer._planet,l=this.zoom+1;o[0]=new $t(e,0,this,s,new ne(new F(n.lon,n.lat+i),new F(n.lon+t,r.lat)),h,l),o[1]=new $t(e,1,this,s,new ne(a,new F(r.lon,r.lat)),h,l),o[2]=new $t(e,2,this,s,new ne(new F(n.lon,n.lat),a),h,l),o[3]=new $t(e,3,this,s,new ne(new F(n.lon+t,n.lat),new F(r.lon,n.lat+i)),h,l)}_setExtentBounds(){this.extent.northEast.lat>0&&(this.isNorth=!0),this.bsphere.setFromExtent(this.layer._planet.ellipsoid,this.extent)}__setLonLat__(e){return e._lonlat.isZero()&&(e._lonlat=this.layer._planet.ellipsoid.cartesianToLonLat(e._cartesian)),e._lonlat}isVisible(){return!(!this.isNorth||!this.layer._renderingNodesNorth[this.nodeId])||!!this.layer._renderingNodesSouth[this.nodeId]}isInside(e){return this.extent.isInside(e._lonlat)}renderCollection(e,A,t){this.isNorth?this.layer._renderingNodesNorth[this.nodeId]=!0:this.layer._renderingNodesSouth[this.nodeId]=!0,this.deferredEntities.length&&!this._inTheQueue&&(this.layer.async?this.layer._queueDeferredNode(this):this.applyCollection()),this.entityCollection._fadingOpacity=this.layer._fadingOpacity,this.entityCollection.scaleByDistance=this.layer.scaleByDistance,this.entityCollection.pickingScale=this.layer.pickingScale,e.push(this.entityCollection)}}function ei(e,A,t){t=t||2;var i,r,n,s,a,o,h,l=A&&A.length,d=l?A[0]*t:e.length,c=Ai(e,0,d,t,!0),u=[];if(!c)return u;if(l&&(c=function(e,A,t,i){var r,n,s,a=[];for(r=0,n=A.length;r<n;r++)(s=Ai(e,A[r]*i,r<n-1?A[r+1]*i:e.length,i,!1))===s.next&&(s.steiner=!0),a.push(di(s));for(a.sort(oi),r=0;r<a.length;r++)hi(a[r],t),t=ti(t,t.next);return t}(e,A,c,t)),e.length>80*t){i=n=e[0],r=s=e[1];for(var g=t;g<d;g+=t)(a=e[g])<i&&(i=a),(o=e[g+1])<r&&(r=o),a>n&&(n=a),o>s&&(s=o);h=Math.max(n-i,s-r)}return ii(c,u,t,i,r,h),u}function Ai(e,A,t,i,r){var n,s;if(r===function(e,A,t,i){for(var r=0,n=A,s=t-i;n<t;n+=i)r+=(e[s]-e[n])*(e[n+1]+e[s+1]),s=n;return r}(e,A,t,i)>0)for(n=A;n<t;n+=i)s=vi(n,e[n],e[n+1],s);else for(n=t-i;n>=A;n-=i)s=vi(n,e[n],e[n+1],s);return s&&fi(s,s.next)&&(yi(s),s=s.next),s}function ti(e,A){if(!e)return e;A||(A=e);var t,i=e;do{if(t=!1,i.steiner||!fi(i,i.next)&&0!==gi(i.prev,i,i.next))i=i.next;else{if(yi(i),(i=A=i.prev)===i.next)return null;t=!0}}while(t||i!==A);return A}function ii(e,A,t,i,r,n,s){if(e){!s&&n&&function(e,A,t,i){var r=e;do{null===r.z&&(r.z=li(r.x,r.y,A,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,function(e){var A,t,i,r,n,s,a,o,h=1;do{for(t=e,e=null,n=null,s=0;t;){for(s++,i=t,a=0,A=0;A<h&&(a++,i=i.nextZ);A++);for(o=h;a>0||o>0&&i;)0!==a&&(0===o||!i||t.z<=i.z)?(r=t,t=t.nextZ,a--):(r=i,i=i.nextZ,o--),n?n.nextZ=r:e=r,r.prevZ=n,n=r;t=i}n.nextZ=null,h*=2}while(s>1)}(r)}(e,i,r,n);for(var a,o,h=e;e.prev!==e.next;)if(a=e.prev,o=e.next,n?ni(e,i,r,n):ri(e))A.push(a.i/t),A.push(e.i/t),A.push(o.i/t),yi(e),e=o.next,h=o.next;else if((e=o)===h){s?1===s?ii(e=si(e,A,t),A,t,i,r,n,2):2===s&&ai(e,A,t,i,r,n):ii(ti(e),A,t,i,r,n,1);break}}}function ri(e){var A=e.prev,t=e,i=e.next;if(gi(A,t,i)>=0)return!1;for(var r=e.next.next;r!==e.prev;){if(ci(A.x,A.y,t.x,t.y,i.x,i.y,r.x,r.y)&&gi(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function ni(e,A,t,i){var r=e.prev,n=e,s=e.next;if(gi(r,n,s)>=0)return!1;for(var a=r.x<n.x?r.x<s.x?r.x:s.x:n.x<s.x?n.x:s.x,o=r.y<n.y?r.y<s.y?r.y:s.y:n.y<s.y?n.y:s.y,h=r.x>n.x?r.x>s.x?r.x:s.x:n.x>s.x?n.x:s.x,l=r.y>n.y?r.y>s.y?r.y:s.y:n.y>s.y?n.y:s.y,d=li(a,o,A,t,i),c=li(h,l,A,t,i),u=e.nextZ;u&&u.z<=c;){if(u!==e.prev&&u!==e.next&&ci(r.x,r.y,n.x,n.y,s.x,s.y,u.x,u.y)&&gi(u.prev,u,u.next)>=0)return!1;u=u.nextZ}for(u=e.prevZ;u&&u.z>=d;){if(u!==e.prev&&u!==e.next&&ci(r.x,r.y,n.x,n.y,s.x,s.y,u.x,u.y)&&gi(u.prev,u,u.next)>=0)return!1;u=u.prevZ}return!0}function si(e,A,t){var i=e;do{var r=i.prev,n=i.next.next;!fi(r,n)&&pi(r,i,i.next,n)&&mi(r,n)&&mi(n,r)&&(A.push(r.i/t),A.push(i.i/t),A.push(n.i/t),yi(i),yi(i.next),i=e=n),i=i.next}while(i!==e);return i}function ai(e,A,t,i,r,n){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&ui(s,a)){var o=xi(s,a);return s=ti(s,s.next),o=ti(o,o.next),ii(s,A,t,i,r,n),void ii(o,A,t,i,r,n)}a=a.next}s=s.next}while(s!==e)}function oi(e,A){return e.x-A.x}function hi(e,A){if(A=function(e,A){var t,i=A,r=e.x,n=e.y,s=-1/0;do{if(n<=i.y&&n>=i.next.y&&i.next.y!==i.y){var a=i.x+(n-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(a<=r&&a>s){if(s=a,a===r){if(n===i.y)return i;if(n===i.next.y)return i.next}t=i.x<i.next.x?i:i.next}}i=i.next}while(i!==A);if(!t)return null;if(r===s)return t.prev;var o,h=t,l=t.x,d=t.y,c=1/0;i=t.next;for(;i!==h;)r>=i.x&&i.x>=l&&r!==i.x&&ci(n<d?r:s,n,l,d,n<d?s:r,n,i.x,i.y)&&((o=Math.abs(n-i.y)/(r-i.x))<c||o===c&&i.x>t.x)&&mi(i,e)&&(t=i,c=o),i=i.next;return t}(e,A),A){var t=xi(A,e);ti(t,t.next)}}function li(e,A,t,i,r){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-t)/r)|e<<8))|e<<4))|e<<2))|e<<1))|(A=1431655765&((A=858993459&((A=252645135&((A=16711935&((A=32767*(A-i)/r)|A<<8))|A<<4))|A<<2))|A<<1))<<1}function di(e){var A=e,t=e;do{A.x<t.x&&(t=A),A=A.next}while(A!==e);return t}function ci(e,A,t,i,r,n,s,a){return(r-s)*(A-a)-(e-s)*(n-a)>=0&&(e-s)*(i-a)-(t-s)*(A-a)>=0&&(t-s)*(n-a)-(r-s)*(i-a)>=0}function ui(e,A){return e.next.i!==A.i&&e.prev.i!==A.i&&!function(e,A){var t=e;do{if(t.i!==e.i&&t.next.i!==e.i&&t.i!==A.i&&t.next.i!==A.i&&pi(t,t.next,e,A))return!0;t=t.next}while(t!==e);return!1}(e,A)&&mi(e,A)&&mi(A,e)&&function(e,A){var t=e,i=!1,r=(e.x+A.x)/2,n=(e.y+A.y)/2;do{t.y>n!=t.next.y>n&&t.next.y!==t.y&&r<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next}while(t!==e);return i}(e,A)}function gi(e,A,t){return(A.y-e.y)*(t.x-A.x)-(A.x-e.x)*(t.y-A.y)}function fi(e,A){return e.x===A.x&&e.y===A.y}function pi(e,A,t,i){return!!(fi(e,A)&&fi(t,i)||fi(e,i)&&fi(t,A))||gi(e,A,t)>0!=gi(e,A,i)>0&&gi(t,i,e)>0!=gi(t,i,A)>0}function mi(e,A){return gi(e.prev,e,e.next)<0?gi(e,A,e.next)>=0&&gi(e,e.prev,A)>=0:gi(e,A,e.prev)<0||gi(e,e.next,A)<0}function xi(e,A){var t=new wi(e.i,e.x,e.y),i=new wi(A.i,A.x,A.y),r=e.next,n=A.prev;return e.next=A,A.prev=e,t.next=r,r.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function vi(e,A,t,i){var r=new wi(e,A,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function yi(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function wi(e,A,t){this.i=e,this.x=A,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ci(e){for(var A=e[0][0].length,t={vertices:[],holes:[],dimensions:A},i=0,r=0;r<e.length;r++){for(var n=0;n<e[r].length;n++)for(var s=0;s<A;s++)t.vertices.push(e[r][n][s]);r>0&&(i+=e[r-1].length,t.holes.push(i))}return t}function Bi(e,A,t){let i=e[0],r=e[1];if(i>=0){let e=65536*Math.floor(i/65536);A.x=Math.fround(e),t.x=Math.fround(i-e)}else{let e=65536*Math.floor(-i/65536);A.x=Math.fround(-e),t.x=Math.fround(i+e)}if(r>=0){let e=65536*Math.floor(r/65536);A.y=Math.fround(e),t.y=Math.fround(r-e)}else{let e=65536*Math.floor(-r/65536);A.y=Math.fround(-e),t.y=Math.fround(r+e)}}let Ei=new de,Ti=new de,bi=new de;class Ii{constructor(e){this.__staticId=Ii._staticCounter++,this._layer=e,this._handler=null,this._geometries=[],this._updatedGeometryArr=[],this._updatedGeometry={},this._removeGeometryExtentArr=[],this._removeGeometryExtents={},this._polyVerticesHighMerc=[],this._polyVerticesLowMerc=[],this._polyColors=[],this._polyPickingColors=[],this._polyIndexes=[],this._lineVerticesHighMerc=[],this._lineVerticesLowMerc=[],this._lineOrders=[],this._lineIndexes=[],this._lineColors=[],this._linePickingColors=[],this._lineThickness=[],this._lineStrokes=[],this._lineStrokeColors=[],this._polyVerticesHighBufferMerc=null,this._polyVerticesLowBufferMerc=null,this._polyColorsBuffer=null,this._polyPickingColorsBuffer=null,this._polyIndexesBuffer=null,this._lineVerticesHighBufferMerc=null,this._lineVerticesLowBufferMerc=null,this._lineColorsBuffer=null,this._linePickingColorsBuffer=null,this._lineThicknessBuffer=null,this._lineStrokesBuffer=null,this._lineStrokeColorsBuffer=null,this._lineOrdersBuffer=null,this._lineIndexesBuffer=null,this._buffersUpdateCallbacks=[],this._buffersUpdateCallbacks[0]=this.createPolyVerticesBuffer,this._buffersUpdateCallbacks[1]=this.createPolyIndexesBuffer,this._buffersUpdateCallbacks[2]=this.createPolyColorsBuffer,this._buffersUpdateCallbacks[3]=this.createLineVerticesBuffer,this._buffersUpdateCallbacks[4]=this.createLineIndexesBuffer,this._buffersUpdateCallbacks[5]=this.createLineOrdersBuffer,this._buffersUpdateCallbacks[6]=this.createLineColorsBuffer,this._buffersUpdateCallbacks[7]=this.createLineThicknessBuffer,this._buffersUpdateCallbacks[8]=this.createLineStrokesBuffer,this._buffersUpdateCallbacks[9]=this.createLineStrokeColorsBuffer,this._buffersUpdateCallbacks[10]=this.createPolyPickingColorsBuffer,this._buffersUpdateCallbacks[11]=this.createLinePickingColorsBuffer,this._changedBuffers=new Array(this._buffersUpdateCallbacks.length)}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}static appendLineData(e,A,t,i,r,n,s,a,o,h,l,d,c,u,g,f,p,m){var x=0;l.length>0?(x=l[l.length-5]+9,l.push(x,x)):l.push(0,0);for(var v=r,y=[t.x,t.y,t.z,t.w],w=s,C=[n.x,n.y,n.z,n.w],B=[i.x,i.y,i.z,1],E=0;E<e.length;E++){var T=e[E];if(0!==T.length){var b,I,M=x;if(A)b=T[T.length-1];else{let e=T[0],A=T[1];A||(A=e),b=[e[0]+e[0]-A[0],e[1]+e[1]-A[1]]}Bi(b,Ei,Ti),a.push(Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y),o.push(Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y),p.push(Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y),m.push(Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y),h.push(1,-1,2,-2),u.push(v,v,v,v),f.push(w,w,w,w),d.push(y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3]),g.push(C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3]),c.push(B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3]);for(var P=0;P<T.length;P++){Bi(T[P],Ei,Ti),a.push(Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y),o.push(Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y),p.push(Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y),m.push(Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y),h.push(1,-1,2,-2),u.push(v,v,v,v),f.push(w,w,w,w),d.push(y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3]),g.push(C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3]),c.push(B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3]),l.push(x++,x++,x++,x++)}if(A)I=T[0],l.push(M,M+1,M+1,M+1);else{let e=T[T.length-1],A=T[T.length-2];A||(A=e),I=[e[0]+e[0]-A[0],e[1]+e[1]-A[1]],l.push(x-1,x-1,x-1,x-1)}Bi(I,Ei,Ti),a.push(Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y),o.push(Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y),p.push(Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y,Ei.x,Ei.y),m.push(Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y,Ti.x,Ti.y),h.push(1,-1,2,-2),u.push(v,v,v,v),f.push(w,w,w,w),d.push(y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[3]),g.push(C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3],C[0],C[1],C[2],C[3]),c.push(B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3],B[0],B[1],B[2],B[3]),E<e.length-1&&(x+=8,l.push(x,x))}}}assignHandler(e){this._handler=e,this.refresh()}add(e){if(-1===e._handlerIndex){e._handler=this,e._handlerIndex=this._geometries.length,this._geometries.push(e);let r=e._entity._pickingColor.scaleTo(1/255);if(e._polyVerticesHighMerc=[],e._polyVerticesLowMerc=[],e._lineVerticesHighMerc=[],e._lineVerticesLowMerc=[],e._type===at.POLYGON){let i=e._coordinates,n=[];for(let e=0;e<i.length;e++){n[e]=[];for(var A=0;A<i[e].length;A++)n[e][A]=[q(i[e][A][0]),$(i[e][A][1])]}let s=Ci(n),a=ei(s.vertices,s.holes,2);e._polyVerticesHandlerIndex=this._polyVerticesHighMerc.length,e._polyIndexesHandlerIndex=this._polyIndexes.length;for(let A=0;A<a.length;A++)this._polyIndexes.push(a[A]+.5*e._polyVerticesHandlerIndex);var t=e._style.fillColor;let o=[],h=[];for(let e=0;e<.5*s.vertices.length;e++)this._polyColors.push(t.x,t.y,t.z,t.w),this._polyPickingColors.push(r.x,r.y,r.z,1);for(let e=0;e<s.vertices.length;e++)pt(s.vertices[e],bi),o[e]=bi.x,h[e]=bi.y;e._polyVerticesHighMerc=o,e._polyVerticesLowMerc=h,this._polyVerticesHighMerc.push.apply(this._polyVerticesHighMerc,o),this._polyVerticesLowMerc.push.apply(this._polyVerticesLowMerc,h),e._polyVerticesLength=s.vertices.length,e._polyIndexesLength=a.length,e._lineVerticesHandlerIndex=this._lineVerticesHighMerc.length,e._lineOrdersHandlerIndex=this._lineOrders.length,e._lineIndexesHandlerIndex=this._lineIndexes.length,e._lineColorsHandlerIndex=this._lineColors.length,e._lineThicknessHandlerIndex=this._lineThickness.length,Ii.appendLineData(n,!0,e._style.lineColor,r,e._style.lineWidth,e._style.strokeColor,e._style.strokeWidth,this._lineVerticesHighMerc,this._lineVerticesLowMerc,this._lineOrders,this._lineIndexes,this._lineColors,this._linePickingColors,this._lineThickness,this._lineStrokeColors,this._lineStrokes,e._lineVerticesHighMerc,e._lineVerticesLowMerc),e._lineVerticesLength=this._lineVerticesHighMerc.length-e._lineVerticesHandlerIndex,e._lineOrdersLength=this._lineOrders.length-e._lineOrdersHandlerIndex,e._lineIndexesLength=this._lineIndexes.length-e._lineIndexesHandlerIndex,e._lineColorsLength=this._lineColors.length-e._lineColorsHandlerIndex,e._lineThicknessLength=this._lineThickness.length-e._lineThicknessHandlerIndex}else if(e._type===at.MULTIPOLYGON){let A=e._coordinates,t=[],n=[];e._lineVerticesHandlerIndex=this._lineVerticesHighMerc.length,e._lineOrdersHandlerIndex=this._lineOrders.length,e._lineIndexesHandlerIndex=this._lineIndexes.length,e._lineColorsHandlerIndex=this._lineColors.length,e._lineThicknessHandlerIndex=this._lineThickness.length;for(var i=0;i<A.length;i++){let s=A[i],a=[];for(let e=0;e<s.length;e++){a[e]=[];for(let t=0;t<A[i][e].length;t++)a[e][t]=[q(s[e][t][0]),$(s[e][t][1])]}let o=Ci(a),h=ei(o.vertices,o.holes,2);for(let e=0;e<h.length;e++)n.push(h[e]+.5*t.length);t.push.apply(t,o.vertices),Ii.appendLineData(a,!0,e._style.lineColor,r,e._style.lineWidth,e._style.strokeColor,e._style.strokeWidth,this._lineVerticesHighMerc,this._lineVerticesLowMerc,this._lineOrders,this._lineIndexes,this._lineColors,this._linePickingColors,this._lineThickness,this._lineStrokeColors,this._lineStrokes,e._lineVerticesHighMerc,e._lineVerticesLowMerc)}e._polyVerticesHandlerIndex=this._polyVerticesHighMerc.length,e._polyIndexesHandlerIndex=this._polyIndexes.length;for(let A=0;A<n.length;A++)this._polyIndexes.push(n[A]+.5*e._polyVerticesHandlerIndex);let s=e._style.fillColor,a=[],o=[];for(let e=0;e<.5*t.length;e++)this._polyColors.push(s.x,s.y,s.z,s.w),this._polyPickingColors.push(r.x,r.y,r.z,1);for(let e=0;e<t.length;e++)pt(t[e],bi),a[e]=bi.x,o[e]=bi.y;e._polyVerticesHighMerc=a,e._polyVerticesLowMerc=o,this._polyVerticesHighMerc.push.apply(this._polyVerticesHighMerc,a),this._polyVerticesLowMerc.push.apply(this._polyVerticesLowMerc,o),e._polyVerticesLength=t.length,e._polyIndexesLength=n.length,e._lineVerticesLength=this._lineVerticesHighMerc.length-e._lineVerticesHandlerIndex,e._lineOrdersLength=this._lineOrders.length-e._lineOrdersHandlerIndex,e._lineIndexesLength=this._lineIndexes.length-e._lineIndexesHandlerIndex,e._lineColorsLength=this._lineColors.length-e._lineColorsHandlerIndex,e._lineThicknessLength=this._lineThickness.length-e._lineThicknessHandlerIndex}else if(e._type===at.LINESTRING){let A=e._coordinates,t=new Array(A.length);for(let e=0;e<A.length;e++)t[e]=[q(A[e][0]),$(A[e][1])];e._lineVerticesHandlerIndex=this._lineVerticesHighMerc.length,e._lineOrdersHandlerIndex=this._lineOrders.length,e._lineIndexesHandlerIndex=this._lineIndexes.length,e._lineColorsHandlerIndex=this._lineColors.length,e._lineThicknessHandlerIndex=this._lineThickness.length,Ii.appendLineData([t],!1,e._style.lineColor,r,e._style.lineWidth,e._style.strokeColor,e._style.strokeWidth,this._lineVerticesHighMerc,this._lineVerticesLowMerc,this._lineOrders,this._lineIndexes,this._lineColors,this._linePickingColors,this._lineThickness,this._lineStrokeColors,this._lineStrokes,e._lineVerticesHighMerc,e._lineVerticesLowMerc),e._lineVerticesLength=this._lineVerticesHighMerc.length-e._lineVerticesHandlerIndex,e._lineOrdersLength=this._lineOrders.length-e._lineOrdersHandlerIndex,e._lineIndexesLength=this._lineIndexes.length-e._lineIndexesHandlerIndex,e._lineColorsLength=this._lineColors.length-e._lineColorsHandlerIndex,e._lineThicknessLength=this._lineThickness.length-e._lineThicknessHandlerIndex}else if(e._type===at.MULTILINESTRING){let A=e._coordinates,t=[];for(let e=0;e<A.length;e++){t[e]=[];for(let i=0;i<A[e].length;i++)t[e][i]=[q(A[e][i][0]),$(A[e][i][1])]}e._lineVerticesHandlerIndex=this._lineVerticesHighMerc.length,e._lineOrdersHandlerIndex=this._lineOrders.length,e._lineIndexesHandlerIndex=this._lineIndexes.length,e._lineColorsHandlerIndex=this._lineColors.length,e._lineThicknessHandlerIndex=this._lineThickness.length,Ii.appendLineData(t,!1,e._style.lineColor,r,e._style.lineWidth,e._style.strokeColor,e._style.strokeWidth,this._lineVerticesHighMerc,this._lineVerticesLowMerc,this._lineOrders,this._lineIndexes,this._lineColors,this._linePickingColors,this._lineThickness,this._lineStrokeColors,this._lineStrokes,e._lineVerticesHighMerc,e._lineVerticesLowMerc),e._lineVerticesLength=this._lineVerticesHighMerc.length-e._lineVerticesHandlerIndex,e._lineOrdersLength=this._lineOrders.length-e._lineOrdersHandlerIndex,e._lineIndexesLength=this._lineIndexes.length-e._lineIndexesHandlerIndex,e._lineColorsLength=this._lineColors.length-e._lineColorsHandlerIndex,e._lineThicknessLength=this._lineThickness.length-e._lineThicknessHandlerIndex}this.setGeometryVisibility(e),!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0,this.refresh()}}remove(e){var A=e._handlerIndex;if(-1!==A){this._geometries.splice(A,1),this._polyVerticesHighMerc.splice(e._polyVerticesHandlerIndex,e._polyVerticesLength),this._polyVerticesLowMerc.splice(e._polyVerticesHandlerIndex,e._polyVerticesLength),this._polyColors.splice(2*e._polyVerticesHandlerIndex,2*e._polyVerticesLength),this._polyPickingColors.splice(2*e._polyVerticesHandlerIndex,2*e._polyVerticesLength),this._polyIndexes.splice(e._polyIndexesHandlerIndex,e._polyIndexesLength);for(var t=.5*e._polyVerticesLength,i=e._polyIndexesHandlerIndex;i<this._polyIndexes.length;i++)this._polyIndexes[i]-=t;this._lineVerticesHighMerc.splice(e._lineVerticesHandlerIndex,e._lineVerticesLength),this._lineVerticesLowMerc.splice(e._lineVerticesHandlerIndex,e._lineVerticesLength),this._lineOrders.splice(e._lineOrdersHandlerIndex,e._lineOrdersLength),this._lineColors.splice(e._lineColorsHandlerIndex,e._lineColorsLength),this._linePickingColors.splice(e._lineColorsHandlerIndex,e._lineColorsLength),this._lineStrokeColors.splice(e._lineColorsHandlerIndex,e._lineColorsLength),this._lineThickness.splice(e._lineThicknessHandlerIndex,e._lineThicknessLength),this._lineStrokes.splice(e._lineThicknessHandlerIndex,e._lineThicknessLength),this._lineIndexes.splice(e._lineIndexesHandlerIndex,e._lineIndexesLength),t=.5*e._lineVerticesLength;for(let A=e._lineIndexesHandlerIndex;A<this._lineIndexes.length;A++)this._lineIndexes[A]-=t;var r=this._geometries;for(let t=A;t<r.length;t++){var n=r[t];n._handlerIndex=t,n._polyVerticesHandlerIndex-=e._polyVerticesLength,n._polyIndexesHandlerIndex-=e._polyIndexesLength,n._lineVerticesHandlerIndex-=e._lineVerticesLength,n._lineOrdersHandlerIndex-=e._lineOrdersLength,n._lineColorsHandlerIndex-=e._lineColorsLength,n._lineThicknessHandlerIndex-=e._lineThicknessLength,n._lineIndexesHandlerIndex-=e._lineIndexesLength}e._pickingReady=!1,e._handler=null,e._handlerIndex=-1,e._polyVerticesHighMerc=[],e._polyVerticesLowMerc=[],e._polyVerticesLength=-1,e._polyIndexesLength=-1,e._polyVerticesHandlerIndex=-1,e._polyIndexesHandlerIndex=-1,e._lineVerticesHighMerc=[],e._lineVerticesLowMerc=[],e._lineVerticesLength=-1,e._lineOrdersLength=-1,e._lineIndexesLength=-1,e._lineColorsLength=-1,e._lineThicknessLength=-1,e._lineVerticesHandlerIndex=-1,e._lineOrdersHandlerIndex=-1,e._lineIndexesHandlerIndex=-1,e._lineThicknessHandlerIndex=-1,e._lineColorsHandlerIndex=-1,!this._removeGeometryExtents[e._id]&&this._removeGeometryExtentArr.push(e.getExtent()),this._removeGeometryExtents[e._id]=!0,this.refresh()}}_refreshRecursevely(e,A){if(A.ready)for(var t=this._layer._id,i=0;i<A.nodes.length;i++){var r=A.nodes[i];if(e._extent.overlaps(r.segment.getExtentLonLat())){this._refreshRecursevely(e,r);var n=r.segment.materials[t];n&&n.isReady&&(1!==n.segment.node.getState()?n.layer.clearMaterial(n):(n.pickingReady=n.pickingReady&&e._pickingReady,n.isReady=!1,n._updateTexture=n.texture,n._updatePickingMask=n.pickingMask),e._pickingReady=!0)}}}_refreshRecursevelyExt(e,A){if(A.ready)for(var t=this._layer._id,i=0;i<A.nodes.length;i++){var r=A.nodes[i];if(e.overlaps(r.segment.getExtentLonLat())){this._refreshRecursevelyExt(e,r);var n=r.segment.materials[t];n&&n.isReady&&n.layer.clearMaterial(n)}}}_refreshPlanetNode(e){var A=0,t=this._removeGeometryExtentArr;for(A=0;A<t.length;A++)this._refreshRecursevelyExt(t[A],e);var i=this._updatedGeometryArr;for(A=0;A<i.length;A++)this._refreshRecursevely(i[A],e)}_updatePlanet(){var e=this._layer._planet;e&&(this._refreshPlanetNode(e._quadTree),this._refreshPlanetNode(e._quadTreeNorth),this._refreshPlanetNode(e._quadTreeSouth)),this._updatedGeometryArr.length=0,this._updatedGeometryArr=[],this._updatedGeometry={},this._removeGeometryExtentArr.length=0,this._removeGeometryExtentArr=[],this._removeGeometryExtents={}}refresh(){for(var e=this._changedBuffers.length;e--;)this._changedBuffers[e]=!0}update(){if(this._handler){for(var e=!1,A=this._changedBuffers.length;A--;)this._changedBuffers[A]&&(e=!0,this._buffersUpdateCallbacks[A].call(this),this._changedBuffers[A]=!1);e&&this._updatePlanet()}}setGeometryVisibility(e){for(var A=e._visibility?1:0,t=this._polyVerticesHighMerc,i=this._polyVerticesLowMerc,r=e._polyVerticesLength,n=e._polyVerticesHandlerIndex,s=0;s<r;s++)t[n+s]=e._polyVerticesHighMerc[s]*A,i[n+s]=e._polyVerticesLowMerc[s]*A;for(t=this._lineVerticesHighMerc,i=this._lineVerticesLowMerc,r=e._lineVerticesLength,n=e._lineVerticesHandlerIndex,s=0;s<r;s++)t[n+s]=e._lineVerticesHighMerc[s]*A,i[n+s]=e._lineVerticesLowMerc[s]*A;this._changedBuffers[0]=!0,this._changedBuffers[3]=!0,!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0}setPolyColorArr(e,A){for(var t=2*e._polyVerticesHandlerIndex,i=t+2*e._polyVerticesLength,r=this._polyColors,n=t;n<i;n+=4)r[n]=A.x,r[n+1]=A.y,r[n+2]=A.z,r[n+3]=A.w;this._changedBuffers[2]=!0,!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0}setLineStrokeColorArr(e,A){for(var t=e._lineColorsHandlerIndex,i=t+e._lineColorsLength,r=this._lineStrokeColors,n=t;n<i;n+=4)r[n]=A.x,r[n+1]=A.y,r[n+2]=A.z,r[n+3]=A.w;this._changedBuffers[9]=!0,!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0}setLineColorArr(e,A){for(var t=e._lineColorsHandlerIndex,i=t+e._lineColorsLength,r=this._lineColors,n=t;n<i;n+=4)r[n]=A.x,r[n+1]=A.y,r[n+2]=A.z,r[n+3]=A.w;this._changedBuffers[6]=!0,!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0}setLineStrokeArr(e,A){for(var t=e._lineStrokesHandlerIndex,i=t+e._lineStrokesLength,r=this._lineStrokes,n=t;n<i;n++)r[n]=A;this._changedBuffers[8]=!0,!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0}setLineThicknessArr(e,A){for(var t=e._lineThicknessHandlerIndex,i=t+e._lineThicknessLength,r=this._lineThickness,n=t;n<i;n++)r[n]=A;this._changedBuffers[7]=!0,!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0}bringToFront(e){var A=this._polyIndexes.splice(e._polyIndexesHandlerIndex,e._polyIndexesLength),t=this._lineIndexes.splice(e._lineIndexesHandlerIndex,e._lineIndexesLength);this._geometries.splice(e._handlerIndex,1);for(var i=this._geometries,r=e._handlerIndex;r<i.length;r++){var n=i[r];n._handlerIndex=r,n._polyIndexesHandlerIndex-=e._polyIndexesLength,n._lineIndexesHandlerIndex-=e._lineIndexesLength}e._polyIndexesHandlerIndex=this._polyIndexes.length,e._lineIndexesHandlerIndex=this._lineIndexes.length,e._handlerIndex=this._geometries.length,this._geometries.push(e),this._polyIndexes.push.apply(this._polyIndexes,A),this._lineIndexes.push.apply(this._lineIndexes,t),this._changedBuffers[1]=!0,this._changedBuffers[4]=!0,!this._updatedGeometry[e._id]&&this._updatedGeometryArr.push(e),this._updatedGeometry[e._id]=!0}createPolyVerticesBuffer(){var e=this._handler;e.gl.deleteBuffer(this._polyVerticesHighBufferMerc),this._polyVerticesHighBufferMerc=e.createArrayBuffer(new Float32Array(this._polyVerticesHighMerc),2,this._polyVerticesHighMerc.length/2),e.gl.deleteBuffer(this._polyVerticesLowBufferMerc),this._polyVerticesLowBufferMerc=e.createArrayBuffer(new Float32Array(this._polyVerticesLowMerc),2,this._polyVerticesLowMerc.length/2)}createPolyIndexesBuffer(){var e=this._handler;e.gl.deleteBuffer(this._polyIndexesBuffer),this._polyIndexesBuffer=e.createElementArrayBuffer(new Uint32Array(this._polyIndexes),1,this._polyIndexes.length)}createPolyColorsBuffer(){var e=this._handler;e.gl.deleteBuffer(this._polyColorsBuffer),this._polyColorsBuffer=e.createArrayBuffer(new Float32Array(this._polyColors),4,this._polyColors.length/4)}createPolyPickingColorsBuffer(){var e=this._handler;e.gl.deleteBuffer(this._polyPickingColorsBuffer),this._polyPickingColorsBuffer=e.createArrayBuffer(new Float32Array(this._polyPickingColors),4,this._polyPickingColors.length/4)}createLineVerticesBuffer(){var e=this._handler;e.gl.deleteBuffer(this._lineVerticesHighBufferMerc),this._lineVerticesHighBufferMerc=e.createArrayBuffer(new Float32Array(this._lineVerticesHighMerc),2,this._lineVerticesHighMerc.length/2),e.gl.deleteBuffer(this._lineVerticesLowBufferMerc),this._lineVerticesLowBufferMerc=e.createArrayBuffer(new Float32Array(this._lineVerticesLowMerc),2,this._lineVerticesLowMerc.length/2)}createLineIndexesBuffer(){var e=this._handler;e.gl.deleteBuffer(this._lineIndexesBuffer),this._lineIndexesBuffer=e.createElementArrayBuffer(new Uint32Array(this._lineIndexes),1,this._lineIndexes.length)}createLineOrdersBuffer(){var e=this._handler;e.gl.deleteBuffer(this._lineOrdersBuffer),this._lineOrdersBuffer=e.createArrayBuffer(new Float32Array(this._lineOrders),1,this._lineOrders.length/2)}createLineColorsBuffer(){var e=this._handler;e.gl.deleteBuffer(this._lineColorsBuffer),this._lineColorsBuffer=e.createArrayBuffer(new Float32Array(this._lineColors),4,this._lineColors.length/4)}createLinePickingColorsBuffer(){var e=this._handler;e.gl.deleteBuffer(this._linePickingColorsBuffer),this._linePickingColorsBuffer=e.createArrayBuffer(new Float32Array(this._linePickingColors),4,this._linePickingColors.length/4)}createLineThicknessBuffer(){var e=this._handler;e.gl.deleteBuffer(this._lineThicknessBuffer),this._lineThicknessBuffer=e.createArrayBuffer(new Float32Array(this._lineThickness),1,this._lineThickness.length)}createLineStrokesBuffer(){var e=this._handler;e.gl.deleteBuffer(this._lineStrokesBuffer),this._lineStrokesBuffer=e.createArrayBuffer(new Float32Array(this._lineStrokes),1,this._lineStrokes.length)}createLineStrokeColorsBuffer(){var e=this._handler;e.gl.deleteBuffer(this._lineStrokeColorsBuffer),this._lineStrokeColorsBuffer=e.createArrayBuffer(new Float32Array(this._lineStrokeColors),4,this._lineStrokeColors.length/4)}}class Mi{constructor(e){this._size=e||2048,this._array=new Array(this._size),this._popIndex=parseInt(.5*this._size),this._shiftIndex=this._popIndex,this.length=0}reset(){this._popIndex=parseInt(.5*this._size),this._shiftIndex=this._popIndex,this.length=0}clear(){this._array.length=0,this._array=new Array(this._size),this._popIndex=parseInt(.5*this._size),this._shiftIndex=this._popIndex,this.length=0}push(e){this.length++,this._array[this._popIndex++]=e}pop(){if(this.length){this.length--;var e=this._array[--this._popIndex];return this._array[this._popIndex]=null,this._array[this._popIndex-1]||(this._popIndex=parseInt(.5*this._size),this._shiftIndex=this._popIndex),e}}unshift(e){this.length++,this._array[--this._shiftIndex]=e}shift(){if(this.length){this.length--;var e=this._array[this._shiftIndex];return this._array[this._shiftIndex++]=null,this._array[this._shiftIndex]||(this._popIndex=parseInt(.5*this._size),this._shiftIndex=this._popIndex),e}}each(e){for(var A=this._shiftIndex;A<this._popIndex;A++)e(this._array[A])}}class Pi extends MA{constructor(e,A={}){super(e,A),this.events.registerNames(Di),this.isVector=!0,this._hasImageryTiles=!1,this.scaleByDistance=A.scaleByDistance||[h,h,h],this.pickingScale=A.pickingScale||1,this.async=void 0===A.async||A.async,this.clampToGround=A.clampToGround||!1,this.relativeToGround=A.relativeToGround||!1,this._nodeCapacity=A.nodeCapacity||30,this._entities=function(e){for(var A=[],t=0;t<e.length;t++){var i=e[t];"Entity"===i.instanceName?A.push(i):A.push(new _r(i))}return A}(A.entities||[]),this._stripEntityCollection=new Xt({pickingEnabled:this.pickingEnabled}),this._bindEventsDefault(this._stripEntityCollection),this._polylineEntityCollection=new Xt({pickingEnabled:this.pickingEnabled}),this._bindEventsDefault(this._polylineEntityCollection),this._geometryHandler=new Ii(this),this._entityCollectionsTree=null,this._entityCollectionsTreeNorth=null,this._entityCollectionsTreeSouth=null,this._renderingNodes={},this._renderingNodesNorth={},this._renderingNodesSouth={},this._counter=0,this._deferredEntitiesPendingQueue=new Mi,this._pendingsQueue=[],this.setEntities(this._entities),this.polygonOffsetFactor=null!=A.polygonOffsetFactor?A.polygonOffsetFactor:0,this.polygonOffsetUnits=null!=A.polygonOffsetUnits?A.polygonOffsetUnits:-637e3,this.pickingEnabled=this._pickingEnabled}get instanceName(){return"Vector"}_bindPicking(){this._pickingColor.clear()}addTo(e){return this._planet||(this._assignPlanet(e),this._geometryHandler.assignHandler(e.renderer.handler),this._polylineEntityCollection.addTo(e,!0),this._stripEntityCollection.addTo(e,!0),this.setEntities(this._entities)),this}getEntities(){return[].concat(this._entities)}add(e,A){return e._layer||e._entityCollection||(e._layer=this,e._layerIndex=this._entities.length,this._entities.push(e),this._proceedEntity(e,A)),this}insert(e,A,t){if(!e._layer&&!e._entityCollection){e._layer=this,e._layerIndex=A,this._entities.splice(A,0,e);for(let e=A+1,t=this._entities.length;e<t;e++)this._entities[e]._layerIndex=e;this._proceedEntity(e,t)}return this}_proceedEntity(e,A){let t=this._hasImageryTiles;e.strip&&this._stripEntityCollection.add(e),(e.polyline||e.ray)&&this._polylineEntityCollection.add(e),e.geometry&&(this._hasImageryTiles=!0,this._planet&&(this._planet.renderer.assignPickingColor(e),this._geometryHandler.add(e.geometry))),(e.billboard||e.label)&&this._planet&&(e._cartesian.isZero()&&!e._lonlat.isZero()?e._setCartesian3vSilent(this._planet.ellipsoid.lonLatToCartesian(e._lonlat)):e._lonlat=this._planet.ellipsoid.cartesianToLonLat(e._cartesian),e._lonlat.lat>te?(this._entityCollectionsTreeNorth.__setLonLat__(e),this._entityCollectionsTreeNorth.insertEntity(e,A)):e._lonlat.lat<ie?(this._entityCollectionsTreeSouth.__setLonLat__(e),this._entityCollectionsTreeSouth.insertEntity(e,A)):(this._entityCollectionsTree.__setLonLat__(e),this._entityCollectionsTree.insertEntity(e,A))),this._planet&&this._hasImageryTiles!==t&&this._planet.updateVisibleLayers(),this.events.dispatch(this.events.entityadd,e)}addEntities(e,A){for(var t=e.length;t--;)this.add(e[t],A);return this}removeEntity(e){if(e._layer&&this.isEqual(e._layer)){if(this._entities.splice(e._layerIndex,1),this._reindexEntitiesArray(e._layerIndex),e._layer=null,e._layerIndex=-1,e._entityCollection){e._entityCollection._removeEntitySilent(e);let A=e._nodePtr;for(;A;)A.count--,A=A.parentNode;e._nodePtr&&0===e._nodePtr.count&&0===e._nodePtr.deferredEntities.length&&(e._nodePtr.entityCollection=null)}else if(e._nodePtr&&e._nodePtr.deferredEntities.length)for(var A=e._nodePtr.deferredEntities,t=A.length;t--;)if(A[t].id===e.id){A.splice(t,1);let i=e._nodePtr;for(;i;)i.count--,i=i.parentNode;break}e.geometry&&this._planet&&(this._geometryHandler.remove(e.geometry),this._planet.renderer.clearPickingColor(e)),e._nodePtr&&(e._nodePtr=null),this.events.dispatch(this.events.entityremove,e)}return this}set pickingEnabled(e){this._pickingEnabled=e,this._stripEntityCollection.setPickingEnabled(e),this._polylineEntityCollection.setPickingEnabled(e),this._entityCollectionsTree&&this._entityCollectionsTree.traverseTree((function(A){A.entityCollection.setPickingEnabled(e)})),this._entityCollectionsTreeNorth&&this._entityCollectionsTreeNorth.traverseTree((function(A){A.entityCollection.setPickingEnabled(e)})),this._entityCollectionsTreeSouth&&this._entityCollectionsTreeSouth.traverseTree((function(A){A.entityCollection.setPickingEnabled(e)}))}_reindexEntitiesArray(e){for(var A=this._entities,t=e;t<A.length;t++)A[t]._layerIndex=t}removeEntities(e){for(var A=e.length;A--;)this.removeEntity(e[A]);return this}setScaleByDistance(e,A,t){return this.scaleByDistance[0]=e,this.scaleByDistance[1]=A,this.scaleByDistance[2]=t||h,this}clear(){let e=new Array(this._entities.length);for(let A=0;A<e.length;A++)e[A]=this._entities[A];let A=this._entities.length;for(;A--;)this._entities[A].remove();this._entities.length=0,this._entities=[];for(let A=0;A<e.length;A++)this._entities[A]=e[A];this._entityCollectionsTree=null,this._entityCollectionsTreeNorth=null,this._entityCollectionsTreeSouth=null}each(e){for(var A=this._entities,t=A.length;t--;)e(A[t],t)}setEntities(e){let A=new Array(e.length);for(let t=0,i=e.length;t<i;t++)A[t]=e[t];this.clear(),this._entities=new Array(A.length);for(var t=[],i=0;i<A.length;i++){var r=A[i];r._layer=this,r._layerIndex=i,r.strip?this._stripEntityCollection.add(r):r.polyline||r.ray?this._polylineEntityCollection.add(r):(r.billboard||r.label||r.shape)&&t.push(r),r.geometry&&(this._hasImageryTiles=!0,this._planet&&(this._planet.renderer.assignPickingColor(r),this._geometryHandler.add(r.geometry))),this._entities[i]=r}return this._createEntityCollectionsTree(t),this}_createEntityCollectionsTree(e){if(this._planet){this._entityCollectionsTree=new qt(this,0,null,0,ne.createFromArray([-20037508.34,-20037508.34,20037508.34,20037508.34]),this._planet,0),this._entityCollectionsTreeNorth=new $t(this,0,null,0,ne.createFromArray([-180,te,180,90]),this._planet,0),this._entityCollectionsTreeSouth=new $t(this,0,null,0,ne.createFromArray([-180,-90,180,ie]),this._planet,0);for(let A=0,t=e.length;A<t;A++){let t=e[A];t._lonlat.lat>te?this._entityCollectionsTreeNorth.__setLonLat__(t):t._lonlat.lat<ie?this._entityCollectionsTreeSouth.__setLonLat__(t):this._entityCollectionsTree.__setLonLat__(t)}this._entityCollectionsTree.buildTree(e),this._entityCollectionsTreeNorth.buildTree(e),this._entityCollectionsTreeSouth.buildTree(e)}}_bindEventsDefault(e){var A=this.events;e.events.on("entitymove",(function(e){A.dispatch(A.entitymove,e)})),e.events.on("mousemove",(function(e){A.dispatch(A.mousemove,e)})),e.events.on("mouseenter",(function(e){A.dispatch(A.mouseenter,e)})),e.events.on("mouseleave",(function(e){A.dispatch(A.mouseleave,e)})),e.events.on("lclick",(function(e){A.dispatch(A.lclick,e)})),e.events.on("rclick",(function(e){A.dispatch(A.rclick,e)})),e.events.on("mclick",(function(e){A.dispatch(A.mclick,e)})),e.events.on("ldblclick",(function(e){A.dispatch(A.ldblclick,e)})),e.events.on("rdblclick",(function(e){A.dispatch(A.rdblclick,e)})),e.events.on("mdblclick",(function(e){A.dispatch(A.mdblclick,e)})),e.events.on("lup",(function(e){A.dispatch(A.lup,e)})),e.events.on("rup",(function(e){A.dispatch(A.rup,e)})),e.events.on("mup",(function(e){A.dispatch(A.mup,e)})),e.events.on("ldown",(function(e){A.dispatch(A.ldown,e)})),e.events.on("rdown",(function(e){A.dispatch(A.rdown,e)})),e.events.on("mdown",(function(e){A.dispatch(A.mdown,e)})),e.events.on("lhold",(function(e){A.dispatch(A.lhold,e)})),e.events.on("rhold",(function(e){A.dispatch(A.rhold,e)})),e.events.on("mhold",(function(e){A.dispatch(A.mhold,e)})),e.events.on("mousewheel",(function(e){A.dispatch(A.mousewheel,e)})),e.events.on("touchmove",(function(e){A.dispatch(A.touchmove,e)})),e.events.on("touchstart",(function(e){A.dispatch(A.touchstart,e)})),e.events.on("touchend",(function(e){A.dispatch(A.touchend,e)})),e.events.on("doubletouch",(function(e){A.dispatch(A.doubletouch,e)})),e.events.on("touchleave",(function(e){A.dispatch(A.touchleave,e)})),e.events.on("touchenter",(function(e){A.dispatch(A.touchenter,e)}))}_collectStripCollectionPASS(e){var A=this._stripEntityCollection;A._fadingOpacity=this._fadingOpacity,A.scaleByDistance=this.scaleByDistance,A.pickingScale=this.pickingScale,A.polygonOffsetFactor=this.polygonOffsetFactor,A.polygonOffsetUnits=this.polygonOffsetUnits,e.push(A)}_collectPolylineCollectionPASS(e){var A=this._polylineEntityCollection;if(A._fadingOpacity=this._fadingOpacity,A.scaleByDistance=this.scaleByDistance,A.pickingScale=this.pickingScale,A.polygonOffsetFactor=this.polygonOffsetFactor,A.polygonOffsetUnits=this.polygonOffsetUnits,e.push(A),this.clampToGround||this.relativeToGround){let e=Number(this.relativeToGround);var t=this._planet._renderedNodes,i=this._planet.getViewExtent(),r=A._entities,n=r.length;let h=new le;for(;n--;){var s=r[n].polyline;if(i.overlaps(s._extent)){let A=s._pathLonLatMerc,i=A.length;for(;i--;)for(var a=A[i].length;a--;){let r=A[i][a],n=t.length;for(;n--;){var o=t[n].segment;if(o._extent.isInside(r)){let A=s._path3v[i][a];o.getTerrainPoint(A,r,h),s.setPoint3v(h.addA(h.normal().scale(e&&s.altitude||0)),a,i,!0);break}}}}}}}collectVisibleCollections(e){var A=this._planet;if(this._fading&&this._fadingOpacity>0||this.minZoom<=this._planet.maxCurrZoom&&this.maxZoom>=A.maxCurrZoom){this._renderingNodes={},this._renderingNodesNorth={},this._renderingNodesSouth={},this._collectStripCollectionPASS(e),this._collectPolylineCollectionPASS(e),this._secondPASS=[],this._entityCollectionsTree.collectRenderCollectionsPASS1(A._visibleNodes,e);for(var t=this._secondPASS.length;t--;)this._secondPASS[t].collectRenderCollectionsPASS2(A._visibleNodes,e,this._secondPASS[t].nodeId);for(this._secondPASS=[],this._entityCollectionsTreeNorth.collectRenderCollectionsPASS1(A._visibleNodesNorth,e),t=this._secondPASS.length;t--;)this._secondPASS[t].collectRenderCollectionsPASS2(A._visibleNodesNorth,e,this._secondPASS[t].nodeId);for(this._secondPASS=[],this._entityCollectionsTreeSouth.collectRenderCollectionsPASS1(A._visibleNodesSouth,e),t=this._secondPASS.length;t--;)this._secondPASS[t].collectRenderCollectionsPASS2(A._visibleNodesSouth,e,this._secondPASS[t].nodeId)}}_queueDeferredNode(e){this._visibility&&(e._inTheQueue=!0,this._counter>=1?this._deferredEntitiesPendingQueue.push(e):this._execDeferredNode(e))}_execDeferredNode(e){this._counter++;var A=this;setTimeout((function(){if(e.applyCollection(),A._counter--,A._deferredEntitiesPendingQueue.length&&A._counter<1)for(;A._deferredEntitiesPendingQueue.length;){var t=A._deferredEntitiesPendingQueue.pop();if(t._inTheQueue=!1,t.isVisible())return void A._execDeferredNode(t)}}),0)}loadMaterial(e){var A=e.segment;this._isBaseLayer?e.texture=A._isNorth?A.planet.solidTextureOne:A.planet.solidTextureTwo:e.texture=A.planet.transparentTexture,this._planet.layerLock.isFree()&&(e.isReady=!1,e.isLoading=!0,this._planet._vectorTileCreator.add(e))}abortMaterialLoading(e){e.isLoading=!1,e.isReady=!1}applyMaterial(e){if(e.isReady)return[0,0,1,1];!e.isLoading&&this.loadMaterial(e);for(var A=e.segment,t=A.node,i=!1,r=this._id,n=e;t.parentNode;){if(n&&n.isReady){i=!0;break}n=(t=t.parentNode).segment.materials[r]}if(i){e.appliedNodeId=t.nodeId,e.texture=n.texture,e.pickingMask=n.pickingMask;var s=1/(2<<A.tileZoom-t.segment.tileZoom-1);return[A.tileX*s-t.segment.tileX,A.tileY*s-t.segment.tileY,s,s]}return e.textureExists&&e._updateTexture?(e.texture=e._updateTexture,e.pickingMask=e._updatePickingMask):(e.texture=A.planet.transparentTexture,e.pickingMask=A.planet.transparentTexture),[0,0,1,1]}clearMaterial(e){if(e.isReady){var A=e.segment.handler.gl;e.isReady=!1,e.pickingReady=!1;var t=e.texture;e.texture=null,t&&!t.default&&A.deleteTexture(t),t=e.pickingMask,e.pickingMask=null,t&&!t.default&&A.deleteTexture(t),t=e._updateTexture,e._updateTexture=null,t&&!t.default&&A.deleteTexture(t),t=e._updatePickingMask,e._updatePickingMask=null,t&&!t.default&&A.deleteTexture(t)}this.abortMaterialLoading(e),e.isLoading=!1,e.textureExists=!1}update(){this._geometryHandler.update(),this.events.dispatch(this.events.draw,this)}}const Di=["entitymove","draw","entityadd","entityremove"];window&&!("createImageBitmap"in window)&&(window.createImageBitmap=function(e){return new Promise(((A,t)=>{let i=document.createElement("img");i.addEventListener("load",(function(){A(this)})),i.src=URL.createObjectURL(e)}))});class Li{constructor(e=24){this.MAX_REQUESTS=e,this.events=new bA(["loadend"]),this._loading=0,this._queue=[],this._promises={json:e=>e.json(),blob:e=>e.blob(),arrayBuffer:e=>e.arrayBuffer(),imageBitmap:e=>e.blob().then(createImageBitmap),text:e=>e.text()}}load(e,A){this._queue.push({params:e,callback:A}),this._exec()}fetch(e){return fetch(e.src,e.options||{}).then((A=>{if(!A.ok)throw Error(`Unable to load '${e.src}'`);return this._promises[e.type||"blob"](A)})).then((e=>({status:"ready",data:e}))).catch((e=>({status:"error",msg:e.toString()})))}_exec(){if(this._queue.length>0&&this._loading<this.MAX_REQUESTS){let e=this._queue.pop(),A=e.params;if(!A.filter||A.filter(A))return this._loading++,fetch(A.src,A.options||{}).then((e=>{if(!e.ok)throw Error(`Unable to load '${A.src}'`);return this._promises[A.type||"blob"](e)})).then((A=>{this._loading--,e.callback({status:"ready",data:A}),this._exec()})).catch((A=>{this._loading--,e.callback({status:"error",msg:A.toString()}),this._exec()}));e.callback({status:"abort"}),this._exec()}else 0===this._loading&&this.events.dispatch(this.events.loadend)}abort(){for(let e=0,A=this._queue.length;e<A;e++)this._queue[e].callback({status:"abort"}),this._queue[e]=null;this._queue=[]}}const _i="degrees",Si="m";let Ri=0;class ki{constructor(e){this.code=e.code,this.units=e.units,this.id=Ri++}equal(e){return e.id===this.id}}const zi=new ki({code:"epsg:3857",units:Si}),Hi=new ki({code:"epsg:4326",units:_i});let Fi=new le,Oi=new le;const Qi=[{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}],Ni=Math.sqrt(Qi.length)-1;let Ui={xmin:0,ymin:0,zmin:0,xmax:0,ymax:0,zmax:0};class Gi{constructor(e,A,t,i,r,n,s){this.SegmentPrototype=e,A._createdNodesCount++,this.planet=A,this.parentNode=i,this.partId=t,this.nodeId=t+r,this.state=null,this.appliedTerrainNodeId=-1,this.sideSize=[1,1,1,1],this.sideSizeLog2=[0,0,0,0],this.ready=!1,this.neighbors=[[],[],[],[]],this.equalizedNeighborId=[-1,-1,-1,-1],this.equalizedNeighborGridSize=[-1,-1,-1,-1],this.nodes=[null,null,null,null],this.segment=new e(this,A,n,s),this._cameraInside=!1,this.inFrustum=0,this.createBounds()}createChildrenNodes(){this.ready=!0;var e=this.planet,A=this.segment,t=A._extent,i=.5*t.getWidth(),r=.5*t.getHeight(),n=t.northEast,s=t.southWest,a=A.tileZoom+1,o=4*this.nodeId+1,h=new F(s.lon+i,s.lat+r),l=this.nodes;l[0]=new Gi(this.SegmentPrototype,e,0,this,o,a,new ne(new F(s.lon,s.lat+r),new F(s.lon+i,n.lat))),l[1]=new Gi(this.SegmentPrototype,e,1,this,o,a,new ne(h,new F(n.lon,n.lat))),l[2]=new Gi(this.SegmentPrototype,e,2,this,o,a,new ne(new F(s.lon,s.lat),h)),l[3]=new Gi(this.SegmentPrototype,e,3,this,o,a,new ne(new F(s.lon+i,s.lat),new F(n.lon,s.lat+r)))}createBounds(){let e=this.segment;e._setExtentLonLat(),0===e.tileZoom?e.setBoundingSphere(0,0,0,new le(0,0,e.planet.ellipsoid._a)):e.tileZoom<e.planet.terrain.minZoom?e.createBoundsByExtent():e.createBoundsByParent();let A=e.bsphere.center.x,t=e.bsphere.center.y,i=e.bsphere.center.z,r=1/Math.sqrt(A*A+t*t+i*i);e.centerNormal.x=A*r,e.centerNormal.y=t*r,e.centerNormal.z=i*r}getState(){if(-1===this.state)return this.state;for(var e=this.parentNode;e;){if(2!==e.state)return 0;e=e.parentNode}return this.state}getEqualNeighbor(e){var A=this,t=VA[e][A.partId];if(-1!==t)return A.parentNode.nodes[t];for(var i=[];A.parentNode;)if(i.push(A.partId),t=VA[e][A.partId],A=A.parentNode,-1!==t){var r=i.length;for(e=YA[e];A&&r--;)t=KA[e][i[r]],A=A.nodes[t];return A}}isBrother(e){return!(this.parentNode||e.parentNode)||this.parentNode.id===e.parentNode.id}renderTree(e,A,t,i){if(this.planet._renderedNodes.length>=1e3)return;this.state=2,this.neighbors[0]=null,this.neighbors[1]=null,this.neighbors[2]=null,this.neighbors[3]=null,this.neighbors[0]=[],this.neighbors[1]=[],this.neighbors[2]=[],this.neighbors[3]=[];let r=this.segment,n=this.planet;this._cameraInside=!1;let s=null;if(!this.parentNode||this.parentNode._cameraInside){let A;Math.abs(e._lonLat.lat)<=te&&r._projection.id===zi.id?(A=r._extent.isInside(e._lonLatMerc),s=e._lonLatMerc):r._projection.id===Hi.id&&(A=r._extent.isInside(e._lonLat),s=e._lonLat),A&&(e._insideSegmentPosition.lon=s.lon,e._insideSegmentPosition.lat=s.lat,e._insideSegment=r,this._cameraInside=!0)}this.inFrustum=0;let a=e.frustums,o=a.length;if(r.tileZoom<6)for(let e=0;e<o;e++)a[e].containsSphere(r.bsphere)&&(this.inFrustum|=1<<e);else{let e=1<<o-1-1;for(let A=0;e&&A<o;A++)r.terrainReady?a[A].containsBox(r.bbox)&&(e>>=1,this.inFrustum|=1<<A):a[A].containsSphere(r.bsphere)&&(e>>=1,this.inFrustum|=1<<A)}if(this.inFrustum||this._cameraInside||r.tileZoom<3){let s=e._lonLat.height,a=e.eye,o=a.length2()-this.planet.ellipsoid._b2,h=r.tileZoom>19||r.tileZoom<4&&!r.terrainReady||r.tileZoom<2;h=s>21e3?h||a.distance2(r._sw)<o||a.distance2(r._nw)<o||a.distance2(r._ne)<o||a.distance2(r._se)<o:h||e.eye.distance(r.bsphere.center)-r.bsphere.radius<3570*Math.sqrt(s),(this.inFrustum&&(h||s>1e4)||this._cameraInside)&&r._collectVisibleNodes(),r.tileZoom<2&&r.normalMapReady?this.traverseNodes(e,A,t,i):r.terrainReady&&(!A&&e.projectedSize(r.bsphere.center,r._plainRadius)<n._lodSize||A&&(r.tileZoom===A||!h))?h?(r.passReady=!0,this.renderNode(this.inFrustum,!this.inFrustum,t,i)):this.state=0:r.terrainReady&&r.tileZoom<n.terrain._maxNodeZoom&&(!A||A&&e.projectedSize(r.bsphere.center,r.bsphere.radius)>this.planet._maxLodSize)?this.traverseNodes(e,A,r,i):h?(r.passReady=!!A&&r.terrainReady,this.renderNode(this.inFrustum,!this.inFrustum,t,i)):this.state=0}else this.state=0}traverseNodes(e,A,t,i){this.ready||this.createChildrenNodes();let r=this.nodes;r[0].renderTree(e,A,t,i),r[1].renderTree(e,A,t,i),r[2].renderTree(e,A,t,i),r[3].renderTree(e,A,t,i)}renderNode(e,A,t,i){var r=this.segment;r.terrainReady||(r.initialized||r.initialize(),this.whileTerrainLoading(t,i),r.plainProcessing||r.createPlainSegmentAsync(),r.plainReady&&!i&&r.loadTerrain()),r.planet.lightEnabled&&!r.normalMapReady&&this.whileNormalMapCreating(),A?this.state=-1:(!this._cameraInside&&r.tileZoom>this.planet.maxCurrZoom&&(this.planet.maxCurrZoom=r.tileZoom),r.tileZoom<this.planet.minCurrZoom&&(this.planet.minCurrZoom=r.tileZoom),r._addViewExtent(),this.addToRender(e))}addToRender(e){this.state=1;for(var A=this.planet._renderedNodes,t=A.length-1;t>=0;--t){var i=A[t],r=this.getCommonSide(i);if(-1!==r){var n=YA[r];if(0===this.neighbors[r].length||0===i.neighbors[n].length){var s=this.segment,a=i.segment,o=s.gridSize/(a.gridSize*Math.pow(2,a.tileZoom-s.tileZoom));let e=s.gridSize,A=a.gridSize;o>1?(e=Math.ceil(s.gridSize/o),A=a.gridSize):o<1&&(e=s.gridSize,A=Math.ceil(a.gridSize*o)),this.sideSize[r]=e,i.sideSize[n]=A,this.sideSizeLog2[r]=Math.log2(e),i.sideSizeLog2[n]=Math.log2(A)}this.neighbors[r].push(i),i.neighbors[n].push(this)}}A.push(this),this.segment.terrainReady||(this.planet._renderCompleted=!1);let h=0,l=this.planet._renderedNodesInFrustum;for(;e;)1&e&&l[h].push(this),h++,e>>=1}getCommonSide(e){var A=this.segment,t=e.segment;if(A.tileZoom===t.tileZoom&&A._tileGroup===t._tileGroup)return A.getNeighborSide(t);var i=A._extentLonLat,r=t._extentLonLat,n=i.northEast,s=i.southWest,a=r.northEast,o=r.southWest,h=n.lon,l=n.lat,d=s.lon,c=s.lat,u=a.lon,g=a.lat,f=o.lon,p=o.lat;if(A._tileGroup===t._tileGroup){if(h===f&&(l<=g&&c>=p||l>=g&&c<=p))return 1;if(d===u&&(l<=g&&c>=p||l>=g&&c<=p))return 3;if(l===p&&(d>=f&&h<=u||d<=f&&h>=u))return 0;if(c===g&&(d>=f&&h<=u||d<=f&&h>=u))return 2;if(0===t.tileX&&A.tileX===Math.pow(2,A.tileZoom)-1&&(l<=g&&c>=p||l>=g&&c<=p))return 1;if(0===A.tileX&&t.tileX===Math.pow(2,t.tileZoom)-1&&(l<=g&&c>=p||l>=g&&c<=p))return 3}return 0===A._tileGroup&&1===t._tileGroup&&0===A.tileY&&t.tileY===Math.pow(2,t.tileZoom)-1&&(d>=f&&h<=u||d<=f&&h>=u)||2===A._tileGroup&&0===t._tileGroup&&0===A.tileY&&t.tileY===Math.pow(2,t.tileZoom)-1&&(d>=f&&h<=u||d<=f&&h>=u)?0:1===t._tileGroup&&0===A._tileGroup&&A.tileY===Math.pow(2,A.tileZoom)-1&&0===t.tileY&&(d>=f&&h<=u||d<=f&&h>=u)||1===A._tileGroup&&0===t._tileGroup&&A.tileY===Math.pow(2,A.tileZoom)-1&&0===t.tileY&&(d>=f&&h<=u||d<=f&&h>=u)?2:-1}___getCommonSide___(e){var A=this.segment,t=e.segment;if(A.tileZoom===t.tileZoom)return A.getNeighborSide(t);if(A.tileZoom>t.tileZoom){let e=A.tileZoom-t.tileZoom,i=e,r=this;for(;i--;)r=r.parentNode;let n=r.segment.getNeighborSide(t);if(-1!==n){i=e,r=this;let A=!0;for(;i--;)A=A&&JA[r.partId][n];if(A)return n}}else{let i=t.tileZoom-A.tileZoom,r=i,n=e;for(;r--;)n=n.parentNode;let s=n.segment.getNeighborSide(A);if(-1!==s){r=i,n=e;let A=!0;for(;r--;)A=A&&JA[n.partId][s];if(A)return YA[s]}}return-1}whileNormalMapCreating(){var e=this.segment,A=this.planet.terrain.maxZoom;e.tileZoom<=A&&!e.terrainIsLoading&&e.terrainReady&&!e._inTheQueue&&e.planet._normalMapCreator.queue(e);for(var t=this;t.parentNode&&!t.segment.normalMapReady;)t=t.parentNode;var i=2<<e.tileZoom-t.segment.tileZoom-1;e.normalMapTexture=t.segment.normalMapTexture,e.normalMapTextureBias[0]=e.tileX-t.segment.tileX*i,e.normalMapTextureBias[1]=e.tileY-t.segment.tileY*i,e.normalMapTextureBias[2]=1/i,e.tileZoom>A&&t.segment.tileZoom===A&&(e.parentNormalMapReady=!0)}whileTerrainLoading(e,A){const t=this.segment,i=this.planet.terrain;let r=this;if(e&&e.terrainReady)r=e.node;else for(;r.parentNode&&!r.segment.terrainReady;)r=r.parentNode;if(r.segment.terrainReady&&this.appliedTerrainNodeId!==r.nodeId){let e,s,a,o,h=2<<t.tileZoom-r.segment.tileZoom-1,c=t.tileX-r.segment.tileX*h,u=t.tileY-r.segment.tileY*h,g=r.segment;this.appliedTerrainNodeId=r.nodeId;let f=r.segment.gridSize/h,p=r.segment.fileGridSize/h;if(Ui.xmin=l,Ui.xmax=d,Ui.ymin=l,Ui.ymax=d,Ui.zmin=l,Ui.zmax=d,f>=1){t.gridSize=f;let A=(f+1)*(f+1)*3;e=new Float64Array(A),s=new Float32Array(A),a=new Float32Array(A),g.noDataVertices&&(o=new Uint8Array(A/3)),Ge(g.terrainVertices,g.terrainVerticesHigh,g.terrainVerticesLow,g.noDataVertices,g.gridSize,f*u,f*c,f,e,s,a,Ui,o)}else if(p>=1){t.gridSize=p;let A=(p+1)*(p+1)*3;e=new Float64Array(A),s=new Float32Array(A),a=new Float32Array(A),g.noDataVertices&&(o=new Uint8Array(A/3)),Ge(g.normalMapVertices,g.normalMapVerticesHigh,g.normalMapVerticesLow,g.noDataVertices,r.segment.fileGridSize,p*u,p*c,p,e,s,a,Ui,o)}else{t.gridSize=Ni;let A,i=Math.floor(f*u),r=Math.floor(f*c);A=1===g.gridSize?g.terrainVertices:Ue(g.terrainVertices,g.gridSize,i,r,1);let o=1/f,h=u-o*i,l=c-o*r,d=new le(A[0],A[1],A[2]),p=new le(A[9],A[10],A[11]),m=new le(A[3]-A[0],A[4]-A[1],A[5]-A[2]),x=new le(A[6]-A[0],A[7]-A[1],A[8]-A[2]),v=new le(A[3]-A[9],A[4]-A[10],A[5]-A[11]),y=new le(A[6]-A[9],A[7]-A[10],A[8]-A[11]),w=new le;e=new Float64Array(3*Qi.length),s=new Float32Array(3*Qi.length),a=new Float32Array(3*Qi.length);for(var n=0;n<Qi.length;n++){let A=Qi[n].y+h,t=Qi[n].x+l,i=t*f,r=A*f;w=A+t<o?m.scaleTo(i).addA(x.scaleTo(r)).addA(d):y.scaleTo(1-i).addA(v.scaleTo(1-r)).addA(p),le.doubleToTwoFloats(w,Fi,Oi);let c=3*n;e[c]=w.x,e[c+1]=w.y,e[c+2]=w.z,s[c]=Fi.x,s[c+1]=Fi.y,s[c+2]=Fi.z,a[c]=Oi.x,a[c+1]=Oi.y,a[c+2]=Oi.z,w.x<Ui.xmin&&(Ui.xmin=w.x),w.x>Ui.xmax&&(Ui.xmax=w.x),w.y<Ui.ymin&&(Ui.ymin=w.y),w.y>Ui.ymax&&(Ui.ymax=w.y),w.z<Ui.zmin&&(Ui.zmin=w.z),w.z>Ui.zmax&&(Ui.zmax=w.z)}}if(t.readyToEngage=!0,t.terrainVertices=e,t.terrainVerticesHigh=s,t.terrainVerticesLow=a,t.tempVertices=e,t.tempVerticesHigh=s,t.tempVerticesLow=a,t.noDataVertices=o,t.setBoundingVolume(Ui.xmin,Ui.ymin,Ui.zmin,Ui.xmax,Ui.ymax,Ui.zmax),t.tileZoom>i.maxZoom)if(r.segment.tileZoom>=i.maxZoom){if(t._plainRadius=r.segment._plainRadius/h,t.terrainReady=!0,t.terrainIsLoading=!1,t.terrainVertices=e,t.terrainVerticesHigh=s,t.terrainVerticesLow=a,this.appliedTerrainNodeId=this.nodeId,r.segment.terrainExists){t.terrainExists=!0,t.normalMapVertices=e,t.fileGridSize=Math.sqrt(e.length/3)-1;let A=Math.sqrt(g.normalMapNormals.length/3)-1,i=A/h;t.normalMapNormals=A>1?Ue(g.normalMapNormals,A,i*u,i*c,i):g.normalMapNormals}}else{for(r=this;r.parentNode&&r.segment.tileZoom!==i.maxZoom;)r=r.parentNode;let e=r.segment;e.initialized||e.initialize(),e.plainProcessing||r.segment.createPlainSegmentAsync(),e.plainReady&&!A&&e.loadTerrain(!0)}}}destroy(){this.state=0,this.segment.destroySegment();var e=this.neighbors;e[0]&&e[0].neighbors&&(e[0].neighbors[2]=[]),e[1]&&e[1].neighbors&&(e[1].neighbors[3]=[]),e[2]&&e[2].neighbors&&(e[2].neighbors[0]=[]),e[3]&&e[3].neighbors&&(e[3].neighbors[1]=[]),this.neighbors=null,this.parentNode=null,this.sideSize=null,this.sideSizeLog2=null,this.segment=null}clearTree(){var e=this.getState();if(0===e)this.destroyBranches();else if(1===e)this.destroyBranches();else for(var A=0;A<this.nodes.length;A++)this.nodes[A]&&this.nodes[A].clearTree()}clearBranches(){for(let e=0;e<this.nodes.length;e++)this.nodes[e].clearBranches(),this.nodes[e].segment.deleteMaterials()}destroyBranches(){if(this.ready){var e,A=[];for(e=0;e<this.nodes.length;e++)A[e]=this.nodes[e];for(this.ready=!1,this.nodes.length=0,e=0;e<A.length;e++)A[e].destroyBranches(),A[e].destroy(),A[e]=null;A.length=0,A=null}}traverseTree(e){if(e(this),this.ready)for(var A=0;A<this.nodes.length;A++)this.nodes[A].traverseTree(e)}getOffsetOppositeNeighbourSide(e,A){let t=this,i=e.segment.tileZoom,r=0;for(;t.segment.tileZoom>i;)r+=jA[t.partId][A]/(1<<t.segment.tileZoom-i),t=t.parentNode;return r}}class Yi{constructor(e,A){A=A||{},this._minTabelSize=A.minTableSize||1,this._maxTableSize=A.maxTableSize||8,this._planet=e,this._handler=e.renderer.handler,this._verticesBufferArray=[],this._indexBufferArray=[],this._positionBuffer=null,this._framebuffer=null,this._normalMapVerticesTexture=null,this._width=A.width||128,this._height=A.height||128,this._queue=new Mi(1024),this._lock=new SA,this._init()}_init(){var e=new Mt("normalMapBlur",{attributes:{a_position:{type:Bt.VEC2,enableArray:!0}},uniforms:{s_texture:{type:Bt.SAMPLER2D}},vertexShader:"attribute vec2 a_position;\n attribute vec2 a_texCoord;\n\n varying vec2 blurCoordinates[5];\n\n void main() {\n vec2 vt = a_position * 0.5 + 0.5; gl_Position = vec4(a_position, 0.0, 1.0);\n blurCoordinates[0] = vt;\n blurCoordinates[1] = vt + "+1/this._width*1.407333+";blurCoordinates[2] = vt - "+1/this._height*1.407333+";blurCoordinates[3] = vt + "+1/this._width*3.294215+";blurCoordinates[4] = vt - "+1/this._height*3.294215+";}",fragmentShader:"precision lowp float;\n uniform sampler2D s_texture;\n \n varying vec2 blurCoordinates[5];\n \n void main() {\n lowp vec4 sum = vec4(0.0);\n //if(blurCoordinates[0].x <= 0.01 || blurCoordinates[0].x >= 0.99 ||\n // blurCoordinates[0].y <= 0.01 || blurCoordinates[0].y >= 0.99){\n // sum = texture2D(s_texture, blurCoordinates[0]);\n //} else {\n sum += texture2D(s_texture, blurCoordinates[0]) * 0.204164;\n sum += texture2D(s_texture, blurCoordinates[1]) * 0.304005;\n sum += texture2D(s_texture, blurCoordinates[2]) * 0.304005;\n sum += texture2D(s_texture, blurCoordinates[3]) * 0.093913;\n sum += texture2D(s_texture, blurCoordinates[4]) * 0.093913;\n //}\n gl_FragColor = sum;\n }"}),A=new Mt("normalMap",{attributes:{a_position:{type:Bt.VEC2,enableArray:!0},a_normal:{type:Bt.VEC3,enableArray:!0}},vertexShader:"attribute vec2 a_position;\n attribute vec3 a_normal;\n \n varying vec3 v_color;\n \n void main() {\n gl_Position = vec4(a_position, 0, 1);\n v_color = normalize(a_normal) * 0.5 + 0.5;\n }",fragmentShader:"precision highp float;\n \n varying vec3 v_color;\n \n void main () {\n gl_FragColor = vec4(v_color, 1.0);\n }"});this._handler.addProgram(e),this._handler.addProgram(A),this._framebuffer=new Ot(this._handler,{width:this._width,height:this._height,useDepth:!1}),this._framebuffer.init(),this._normalMapVerticesTexture=this._handler.createEmptyTexture_l(this._width,this._height);for(var t=this._minTabelSize;t<=this._maxTableSize;t++){for(var i=Math.pow(2,t),r=i/2,n=new Float32Array((i+1)*(i+1)*2),s=0;s<=i;s++)for(var a=0;a<=i;a++){let e=2*(s*(i+1)+a);n[e]=a/r-1,n[e+1]=s/r-1}this._verticesBufferArray[i]=this._handler.createArrayBuffer(n,2,n.length/2),this._indexBufferArray[i]=this._planet._indexesCache[Math.log2(i)][Math.log2(i)][Math.log2(i)][Math.log2(i)][Math.log2(i)].buffer}var o=new Float32Array([-1,-1,1,-1,-1,1,1,1]);this._positionBuffer=this._handler.createArrayBuffer(o,2,o.length/2)}_drawNormalMapBlur(e){var A=e.normalMapNormals;if(e.node&&0!==e.node.getState()&&A&&A.length){var t=A.length/3,i=Math.sqrt(t)-1;let d=this._verticesBufferArray[i];if(d){e.planet.terrain.equalizeNormals&&(e._normalMapEdgeEqualize(0),e._normalMapEdgeEqualize(2),e._normalMapEdgeEqualize(3),e._normalMapEdgeEqualize(1));var r=e.normalMapTexturePtr,n=this._handler,s=n.gl,a=n.createArrayBuffer(A,3,t,s.DYNAMIC_DRAW),o=this._framebuffer,h=n.programs.normalMap,l=h._program.attributes;return o.bindOutputTexture(this._normalMapVerticesTexture),h.activate(),s.bindBuffer(s.ARRAY_BUFFER,d),s.vertexAttribPointer(l.a_position,d.itemSize,s.FLOAT,!1,0,0),s.bindBuffer(s.ARRAY_BUFFER,a),s.vertexAttribPointer(l.a_normal,a.itemSize,s.FLOAT,!1,0,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,this._indexBufferArray[i]),s.drawElements(s.TRIANGLE_STRIP,this._indexBufferArray[i].numItems,s.UNSIGNED_INT,0),s.deleteBuffer(a),o.bindOutputTexture(r),(h=n.programs.normalMapBlur).activate(),s.bindBuffer(s.ARRAY_BUFFER,this._positionBuffer),s.vertexAttribPointer(h._program.attributes.a_position,this._positionBuffer.itemSize,s.FLOAT,!1,0,0),s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,this._normalMapVerticesTexture),s.uniform1i(h._program.uniforms.s_texture,0),s.drawArrays(s.TRIANGLE_STRIP,0,this._positionBuffer.numItems),!0}return!0}return!1}_drawNormalMapNoBlur(e){var A=e.normalMapNormals;if(e.node&&0!==e.node.getState()&&A&&A.length){var t=A.length/3,i=Math.sqrt(t)-1;let d=this._verticesBufferArray[i];if(d){e.planet.terrain.equalizeNormals&&(e._normalMapEdgeEqualize(0),e._normalMapEdgeEqualize(2),e._normalMapEdgeEqualize(3),e._normalMapEdgeEqualize(1));var r=e.normalMapTexturePtr,n=this._handler,s=n.gl,a=n.createArrayBuffer(A,3,t,s.DYNAMIC_DRAW),o=this._framebuffer,h=n.programs.normalMap,l=h._program.attributes;return o.bindOutputTexture(r),h.activate(),s.bindBuffer(s.ARRAY_BUFFER,d),s.vertexAttribPointer(l.a_position,d.itemSize,s.FLOAT,!1,0,0),s.bindBuffer(s.ARRAY_BUFFER,a),s.vertexAttribPointer(l.a_normal,a.itemSize,s.FLOAT,!1,0,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,this._indexBufferArray[i]),s.drawElements(s.TRIANGLE_STRIP,this._indexBufferArray[i].numItems,s.UNSIGNED_INT,0),s.deleteBuffer(a),!0}return!0}return!1}_drawNormalMap(e){return e.planet.terrain.isBlur(e)?this._drawNormalMapBlur(e):this._drawNormalMapNoBlur(e)}drawSingle(e){var A=this._handler.gl;this._framebuffer.activate(),A.disable(A.CULL_FACE),A.disable(A.DEPTH_TEST),e.terrainReady&&this._drawNormalMap(e)&&(e.normalMapReady=!0,e.normalMapTexture=e.normalMapTexturePtr,e.normalMapTextureBias[0]=0,e.normalMapTextureBias[1]=0,e.normalMapTextureBias[2]=1),e._inTheQueue=!1,A.disable(A.BLEND),A.enable(A.DEPTH_TEST),A.enable(A.CULL_FACE),this._framebuffer.deactivate()}frame(){if(this._queue.length){var e=this._handler.gl;this._framebuffer.activate(),e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST);for(var A=0,t=window.performance.now();this._lock.isFree()&&this._queue.length&&A<.25;){var i=this._queue.shift();i.terrainReady&&this._drawNormalMap(i)&&(i.normalMapReady=!0,i.normalMapTexture=i.normalMapTexturePtr,i.normalMapTextureBias[0]=0,i.normalMapTextureBias[1]=0,i.normalMapTextureBias[2]=1),i._inTheQueue=!1,A=window.performance.now()-t}e.disable(e.BLEND),e.enable(e.DEPTH_TEST),e.enable(e.CULL_FACE),this._framebuffer.deactivate()}}queue(e){e._inTheQueue=!0,this._queue.push(e)}unshift(e){e._inTheQueue=!0,this._queue.unshift(e)}remove(e){}clear(){for(;this._queue.length;){this._queue.pop()._inTheQueue=!1}}lock(e){this._lock.lock(e)}free(e){this._lock.free(e)}}function Vi(e){var A=1/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]*=A,e[1]*=A,e[2]*=A,e[3]*=A}class Ki{constructor(e={}){this._f=new Array(6);for(var A=0;A<6;A++)this._f[A]=new Array(4);this._projectionMatrix=new ae,this._inverseProjectionMatrix=new ae,this._projectionViewMatrix=new ae,this._inverseProjectionViewMatrix=new ae,this.left=0,this.right=0,this.bottom=0,this.top=0,this.near=0,this.far=0,this._cameraFrustumIndex=null!=e.cameraFrustumIndex?e.cameraFrustumIndex:-1,this.setProjectionMatrix(e.fov||30,e.aspect||1,e.near||1,e.far||1e3)}getRightPlane(){return this._f[0]}getLeftPlane(){return this._f[1]}getBottomPlane(){return this._f[2]}getTopPlane(){return this._f[3]}getBackwardPlane(){return this._f[4]}getForwardPlane(){return this._f[5]}getProjectionViewMatrix(){return this._projectionViewMatrix._m}getProjectionMatrix(){return this._projectionMatrix._m}getInverseProjectionMatrix(){return this._inverseProjectionMatrix._m}setProjectionMatrix(e,A,t,i){this.top=t*Math.tan(e*Math.PI/360),this.bottom=-this.top,this.right=this.top*A,this.left=-this.right,this.near=t,this.far=i,this._projectionMatrix.setPerspective(this.left,this.right,this.bottom,this.top,t,i),this._projectionMatrix.inverseTo(this._inverseProjectionMatrix)}setViewMatrix(e){this._projectionViewMatrix=this._projectionMatrix.mul(e),this._projectionViewMatrix.inverseTo(this._inverseProjectionViewMatrix);let A=this._projectionViewMatrix._m;this._f[0][0]=A[3]-A[0],this._f[0][1]=A[7]-A[4],this._f[0][2]=A[11]-A[8],this._f[0][3]=A[15]-A[12],Vi(this._f[0]),this._f[1][0]=A[3]+A[0],this._f[1][1]=A[7]+A[4],this._f[1][2]=A[11]+A[8],this._f[1][3]=A[15]+A[12],Vi(this._f[1]),this._f[2][0]=A[3]+A[1],this._f[2][1]=A[7]+A[5],this._f[2][2]=A[11]+A[9],this._f[2][3]=A[15]+A[13],Vi(this._f[2]),this._f[3][0]=A[3]-A[1],this._f[3][1]=A[7]-A[5],this._f[3][2]=A[11]-A[9],this._f[3][3]=A[15]-A[13],Vi(this._f[3]),this._f[4][0]=A[3]-A[2],this._f[4][1]=A[7]-A[6],this._f[4][2]=A[11]-A[10],this._f[4][3]=A[15]-A[14],Vi(this._f[4]),this._f[5][0]=A[3]+A[2],this._f[5][1]=A[7]+A[6],this._f[5][2]=A[11]+A[10],this._f[5][3]=A[15]+A[14],Vi(this._f[5])}containsPoint(e){for(var A=0;A<6;A++)if(e.dotArr(this._f[A])+this._f[A][3]<=0)return!1;return!0}containsSphereBottomExc(e){var A=-e.radius,t=this._f;return!(e.center.dotArr(t[0])+t[0][3]<=A)&&(!(e.center.dotArr(t[1])+t[1][3]<=A)&&(!(e.center.dotArr(t[3])+t[3][3]<=A)&&(!(e.center.dotArr(t[4])+t[4][3]<=A)&&!(e.center.dotArr(t[5])+t[5][3]<=A))))}containsSphereButtom(e){var A=-e.radius,t=this._f;return!(e.center.dotArr(t[2])+t[2][3]<=A)}containsSphere(e){var A=-e.radius,t=this._f;return!(e.center.dotArr(t[0])+t[0][3]<=A)&&(!(e.center.dotArr(t[1])+t[1][3]<=A)&&(!(e.center.dotArr(t[2])+t[2][3]<=A)&&(!(e.center.dotArr(t[3])+t[3][3]<=A)&&(!(e.center.dotArr(t[4])+t[4][3]<=A)&&!(e.center.dotArr(t[5])+t[5][3]<=A)))))}containsSphere2(e,A){var t=-A;return!(e.dotArr(this._f[0])+this._f[0][3]<=t)&&(!(e.dotArr(this._f[1])+this._f[1][3]<=t)&&(!(e.dotArr(this._f[2])+this._f[2][3]<=t)&&(!(e.dotArr(this._f[3])+this._f[3][3]<=t)&&(!(e.dotArr(this._f[4])+this._f[4][3]<=t)&&!(e.dotArr(this._f[5])+this._f[5][3]<=t)))))}containsBox(e){for(var A,t,i=!0,r=0;r<6;r++){A=0,t=0;for(var n=0;n<8&&(0===t||0===A);n++){e.vertices[n].dotArr(this._f[r])+this._f[r][3]<0?A++:t++}if(0===t)return!1;A>0&&(i=!0)}return i}}class Ji{constructor(e,A){if(this.renderer=e,this.events=new bA(ji,this),this.eye=new le,this.eyeHigh=new Float32Array(3),this.eyeLow=new Float32Array(3),this._aspect=A.aspect||this.renderer.handler.getClientAspect(),this._viewAngle=A.viewAngle||38,this._normalMatrix=new oe,this._viewMatrix=new ae,this._r=new le(1,0,0),this._u=new le(0,1,0),this._b=new le(0,0,1),this._pu=this._r.clone(),this._pv=this._u.clone(),this._pn=this._b.clone(),this._peye=this.eye.clone(),this.isMoved=!1,this._tanViewAngle_hrad=0,this._tanViewAngle_hradOneByHeight=0,this.frustums=[],this.nearFarArr=[],this.frustumColors=[],A.frustums)for(let e=0,t=A.frustums.length;e<t;e++){let t=A.frustums[e],i=new Ki({fov:this._viewAngle,aspect:this._aspect,near:t[0],far:t[1]});i._cameraFrustumIndex=this.frustums.length,this.frustums.push(i),this.renderer.assignPickingColor(i),this.nearFarArr.push.apply(this.nearFarArr,[t[0],t[1]]),this.frustumColors.push.apply(this.frustumColors,i._pickingColorU)}else{let e=1,A=1e4,t=new Ki({fov:this._viewAngle,aspect:this._aspect,near:e,far:A});t._cameraFrustumIndex=this.frustums.length,this.frustums.push(t),this.renderer.assignPickingColor(t),this.nearFarArr=new Array([e,A]),this.frustumColors.push.apply(this.frustumColors,t._pickingColorU)}this.FARTHEST_FRUSTUM_INDEX=this.frustums.length-1,this._currentFrustum=0,e&&this._init(A)}checkMoveEnd(){var e=this._r,A=this._u,t=this._b,i=this.eye;this._peye.equal(i)&&this._pu.equal(e)&&this._pv.equal(A)&&this._pn.equal(t)?(this.isMoved&&this.events.dispatch(this.events.moveend,this),this.isMoved=!1):this.isMoved=!0,this._pu.copy(e),this._pv.copy(A),this._pn.copy(t),this._peye.copy(i)}_init(e){this._setProj(this._viewAngle,this._aspect),this.set(e.eye||new le(0,0,1),e.look||new le,e.up||new le(0,1,0))}getUp(){return this._u.clone()}getDown(){return this._u.negateTo()}getRight(){return this._r.clone()}getLeft(){return this._r.negateTo()}getForward(){return this._b.negateTo()}getBackward(){return this._b.clone()}update(){var e=this._r,A=this._u,t=this._b,i=this.eye;le.doubleToTwoFloat32Array(i,this.eyeHigh,this.eyeLow),this._viewMatrix.set([e.x,A.x,t.x,0,e.y,A.y,t.y,0,e.z,A.z,t.z,0,-i.dot(e),-i.dot(A),-i.dot(t),1]),this._normalMatrix=this._viewMatrix.toMatrix3();for(let e=0,A=this.frustums.length;e<A;e++)this.frustums[e].setViewMatrix(this._viewMatrix);this.events.dispatch(this.events.viewchange,this)}refresh(){this._setProj(this._viewAngle,this._aspect),this.update()}setAspectRatio(e){this._aspect=e,this.refresh()}getAspectRatio(){return this._aspect}_setProj(e,A){this._viewAngle=e,this._aspect=A,this._tanViewAngle_hrad=Math.tan(e*f),this._tanViewAngle_hradOneByHeight=this._tanViewAngle_hrad*this.renderer.handler._oneByHeight;var t=this.renderer.handler.canvas;this._projSizeConst=Math.min(t.clientWidth<256?256:t.clientWidth,t.clientHeight<256?256:t.clientHeight)/(e*c);for(let t=0,i=this.frustums.length;t<i;t++)this.frustums[t].setProjectionMatrix(e,A,this.frustums[t].near,this.frustums[t].far)}setViewAngle(e){this._viewAngle=e,this.refresh()}getViewAngle(){return this._viewAngle}set(e,A,t){return this.eye.x=e.x,this.eye.y=e.y,this.eye.z=e.z,A=A||this._b,t=t||this._u,this._b.x=e.x-A.x,this._b.y=e.y-A.y,this._b.z=e.z-A.z,this._r.copy(t.cross(this._b)),this._b.normalize(),this._r.normalize(),this._u.copy(this._b.cross(this._r)),this}look(e,A){this._b.set(this.eye.x-e.x,this.eye.y-e.y,this.eye.z-e.z),this._r.copy((A||this._u).cross(this._b)),this._b.normalize(),this._r.normalize(),this._u.copy(this._b.cross(this._r))}slide(e,A,t){this.eye.x+=e*this._r.x+A*this._u.x+t*this._b.x,this.eye.y+=e*this._r.y+A*this._u.y+t*this._b.y,this.eye.z+=e*this._r.z+A*this._u.z+t*this._b.z}roll(e){var A=Math.cos(c*e),t=Math.sin(c*e),i=this._r.clone();this._r.set(A*i.x-t*this._u.x,A*i.y-t*this._u.y,A*i.z-t*this._u.z),this._u.set(t*i.x+A*this._u.x,t*i.y+A*this._u.y,t*i.z+A*this._u.z)}pitch(e){var A=Math.cos(c*e),t=Math.sin(c*e),i=this._b.clone();this._b.set(A*i.x-t*this._u.x,A*i.y-t*this._u.y,A*i.z-t*this._u.z),this._u.set(t*i.x+A*this._u.x,t*i.y+A*this._u.y,t*i.z+A*this._u.z)}yaw(e){var A=Math.cos(c*e),t=Math.sin(c*e),i=this._r.clone();this._r.set(A*i.x-t*this._b.x,A*i.y-t*this._b.y,A*i.z-t*this._b.z),this._b.set(t*i.x+A*this._b.x,t*i.y+A*this._b.y,t*i.z+A*this._b.z)}unproject(e,A){var t=this.renderer.handler.canvas,i=.5*t.width,r=.5*t.height,n=(e-i)/i,s=-(A-r)/r,a=this.frustums[0]._inverseProjectionViewMatrix.mulVec4(new se(n,s,-1,1)).affinity();return this.frustums[0]._inverseProjectionViewMatrix.mulVec4(new se(n,s,0,1)).affinity().subA(a).toVec3().normalize()}project(e){var A=this.frustums[0]._projectionViewMatrix.mulVec4(e.toVec4()),t=this.renderer.handler.canvas;return new de((1+A.x/A.w)*t.width*.5,(1-A.y/A.w)*t.height*.5)}rotateAround(e,A,t,i){t=t||le.ZERO,i=i||le.UP;var r=(new ae).setRotation(A?this._u:i,e),n=(new ae).setIdentity().translate(t),s=(new ae).setIdentity().translate(t.negateTo()),a=n.mul(r).mul(s);this.eye=a.mulVec3(this.eye),this._u=r.mulVec3(this._u).normalize(),this._r=r.mulVec3(this._r).normalize(),this._b=r.mulVec3(this._b).normalize()}rotateHorizontal(e,A,t,i){this.rotateAround(e,A,t,i)}rotateVertical(e,A){this.rotateAround(e,!1,A,this._r)}projectedSize(e,A){return Math.atan(A/this.eye.distance(e))*this._projSizeConst}getNormalMatrix(){return this._normalMatrix._m}getViewMatrix(){return this._viewMatrix._m}setCurrentFrustum(e){this._currentFrustum=e}getCurrentFrustum(){return this._currentFrustum}get frustum(){return this.frustums[this._currentFrustum]}getProjectionMatrix(){return this.frustum._projectionMatrix._m}getProjectionViewMatrix(){return this.frustum._projectionViewMatrix._m}getInverseProjectionViewMatrix(){return this.frustum._inverseProjectionViewMatrix._m}getInverseProjectionMatrix(){return this.frustum._inverseProjectionMatrix._m}}const ji=["viewchange","moveend"];class Wi extends Ji{constructor(e,A){super(e.renderer,{frustums:[[1,100.075],[100,1000.075],[1e3,101e4],[1e6,1e9]],...A}),this.planet=e,this.minAltitude=A.minAltitude||1,this.maxAltitude=A.maxAltitude||2e7,this._lonLat=this.planet.ellipsoid.cartesianToLonLat(this.eye),this._lonLatMerc=this._lonLat.forwardMercator(),this._terrainAltitude=this._lonLat.height,this._terrainPoint=new le,this._insideSegment=null,this._insideSegmentPosition=new F,this.slope=0,this._keyLock=new RA,this._framesArr=[],this._framesCounter=0,this._numFrames=50,this._completeCallback=null,this._flying=!1}update(){this.events.stopPropagation();let e=this.maxAltitude+this.planet.ellipsoid._a;this.eye.length()>e&&this.eye.copy(this.eye.normal().scale(e)),super.update(),this.updateGeodeticPosition(),this.eyeNorm=this.eye.normal(),this.slope=this._b.dot(this.eyeNorm),this.events.dispatch(this.events.viewchange,this)}updateGeodeticPosition(){this._lonLat=this.planet.ellipsoid.cartesianToLonLat(this.eye),Math.abs(this._lonLat.lat)<=te&&(this._lonLatMerc=this._lonLat.forwardMercator())}setAltitude(e){var A=this.eye.normal(),t=this._terrainPoint;this.eye.x=A.x*e+t.x,this.eye.y=A.y*e+t.y,this.eye.z=A.z*e+t.z,this._terrainAltitude=e}getAltitude(){return this._terrainAltitude}setLonLat(e,A,t){this.stopFlying(),this._lonLat.set(e.lon,e.lat,e.height||this._lonLat.height);var i=this.planet.ellipsoid,r=i.lonLatToCartesian(this._lonLat),n=A?i.lonLatToCartesian(A):le.ZERO;this.set(r,n,t||le.UP),this.update()}getLonLat(){return this._lonLat}getHeight(){return this._lonLat.height}getExtentPosition(e,A){var t=e.getNorth(),i=e.getSouth(),r=e.getEast(),n=e.getWest();n>r&&(r+=360);var s=this.planet.ellipsoid,a=new F(r,t),o=s.lonLatToCartesian(a);a.lat=i;var h=s.lonLatToCartesian(a);a.lon=n;var l=s.lonLatToCartesian(a);a.lat=t;var d=s.lonLatToCartesian(a),u=le.sub(o,l).scale(.5).addA(l),g=u.length();g<1e-6&&(a.lon=.5*(r+n),a.lat=.5*(t+i),u=s.lonLatToCartesian(a)),d.subA(u),h.subA(u),o.subA(u),l.subA(u);var f=u.normal(),p=f.cross(le.UP).normalize(),m=p.cross(f).normalize(),x=Math.max(Math.abs(m.dot(d)),Math.abs(m.dot(h)),Math.abs(m.dot(o)),Math.abs(m.dot(l))),v=Math.max(Math.abs(p.dot(d)),Math.abs(p.dot(h)),Math.abs(p.dot(o)),Math.abs(p.dot(l))),y=Math.tan(this._viewAngle*c*.5),w=this._aspect*y,C=Math.max(v/w,x/y);return u.normalize(),u.scale(g+C+(A||0)),u}viewExtent(e,A){this.stopFlying(),this.set(this.getExtentPosition(e,A),le.ZERO,le.UP),this.update()}flyExtent(e,A,t,i,r,n,s){this.flyCartesian(this.getExtentPosition(e,A),le.ZERO,t,i,r,n,s)}viewDistance(e,A=1e4){let t=this.eye.add(this.getForward().scaleTo(A)),i=he.getRotationBetweenVectors(t.normal(),e.normal());if(i.isZero()){let t=e.add(this.getBackward().scaleTo(A));this.set(t,e)}else{let t=e.add(i.mulVec3(this.getBackward()).scale(A)),r=i.mulVec3(this.getUp());this.set(t,e,r)}this.update()}flyDistance(e,A=1e4,t=0,i,r,n){let s=this.eye.add(this.getForward().scaleTo(A)),a=he.getRotationBetweenVectors(s.normal(),e.normal());if(a.isZero()){let t=e.add(this.getBackward().scaleTo(A));this.set(t,e)}else{let s=e.add(a.mulVec3(this.getBackward()).scale(A)),o=a.mulVec3(this.getUp());this.flyCartesian(s,e,o,t,i,r,n)}}flyCartesian(e,A,t,i=1,r,n,s){this.stopFlying(),this._completeCallback=r,this._frameCallback=s,n&&n.call(this),(A=A||le.ZERO)instanceof F&&(A=this.planet.ellipsoid.lonLatToCartesian(A));var a=this.planet.ellipsoid.lonLatToCartesian(new F(this._lonLat.lon,this._lonLat.lat)),o=this._u,h=this._b,l=this.planet.ellipsoid.cartesianToLonLat(e),d=t||le.UP,c=this.planet.ellipsoid.lonLatToCartesian(new F(l.lon,l.lat,0)),u=e,g=le.sub(u,A),f=d.cross(g);g.normalize(),f.normalize();var m=g.cross(f),x=a.normal(),v=c.normal(),y=1-x.dot(v),w=i*p*Math.sqrt(y>0?y:0),C=6639613,B=Math.max(this._lonLat.height,l.height);B>C&&(C=B);for(var E=B+2.5*w*(C-B),T=le.ZERO,b=0;b<=this._numFrames;b++){var I=1-b/this._numFrames;I=I*I*(3-2*I),I*=I;var M=a.smerp(c,I).normalize(),P=this.planet.getRayIntersectionEllipsoid(new vA(T,M)),D=1-I,L=this._lonLat.height*I*I*I+3*E*I*I*D+3*E*I*D*D+l.height*D*D*D,_=P.addA(M.scale(L)),S=o.smerp(m,I),R=le.add(_,h.smerp(g,I).negateTo()),k=new le(_.x-R.x,_.y-R.y,_.z-R.z),z=S.cross(k);k.normalize(),z.normalize();var H=k.cross(z);this._framesArr[b]={eye:_,n:k,u:z,v:H}}this._framesCounter=this._numFrames,this._flying=!0}flyLonLat(e,A,t,i,r,n){var s=new F(e.lon,e.lat,e.height||this._lonLat.height);this.flyCartesian(this.planet.ellipsoid.lonLatToCartesian(s),A,t,i,r,n)}stopFlying(){this.planet.layerLock.free(this._keyLock),this.planet.terrainLock.free(this._keyLock),this.planet._normalMapCreator.free(this._keyLock),this._flying=!1,this._framesArr.length=0,this._framesArr=[],this._framesCounter=-1,this._frameCallback=null}isFlying(){return this._flying}rotateLeft(e,A){this.rotateHorizontal(e*c,!0^A,le.ZERO),this.update()}rotateRight(e,A){this.rotateHorizontal(-e*c,!0^A,le.ZERO),this.update()}rotateUp(e){this.rotateVertical(e*c,le.ZERO),this.update()}rotateDown(e){this.rotateVertical(-e*c,le.ZERO),this.update()}rotateVertical(e,A,t=0){var i=(new ae).setRotation(this._r,e),r=(new ae).setIdentity().translate(A),n=(new ae).setIdentity().translate(A.negateTo());let s=r.mul(i).mul(n).mulVec3(this.eye),a=i.mulVec3(this._u).normalize(),o=i.mulVec3(this._r).normalize(),h=i.mulVec3(this._b).normalize(),l=s.normal(),d=h.dot(l);if(t){let e=d-this.slope;if(d<t&&e<0)return;(d>.1&&a.dot(l)>0||this.slope<=.1||this._u.dot(this.eye.normal())<=0)&&(this.eye=s,this._u=a,this._r=o,this._b=h)}else this.eye=s,this._u=a,this._r=o,this._b=h}checkFly(){if(this._flying){var e=this._numFrames-this._framesCounter;this.planet.layerLock.lock(this._keyLock),this.planet.terrainLock.lock(this._keyLock),this.planet._normalMapCreator.lock(this._keyLock),this.eye=this._framesArr[e].eye,this._r=this._framesArr[e].u,this._u=this._framesArr[e].v,this._b=this._framesArr[e].n,this._frameCallback&&this._frameCallback(),this.update(),this._framesCounter--,this._framesCounter<0&&(this.stopFlying(),this._completeCallback&&(this._completeCallback(),this._completeCallback=null))}}checkTerrainCollision(){this._terrainAltitude=this._lonLat.height,this._insideSegment&&this._insideSegment.planet&&(this._terrainAltitude=this._insideSegment.getTerrainPoint(this.eye,this._insideSegmentPosition,this._terrainPoint),this._terrainAltitude<this.minAltitude&&this.setAltitude(this.minAltitude))}getSurfaceVisibleDistance(e){let A=this.planet.ellipsoid._a;return A*Math.acos(A/(A+this._lonLat.height+e))}getHeading(){let e=this.eye.normal(),A=le.proj_b_to_plane(this.slope>=.97?this.getUp():this.getForward(),e).normalize(),t=le.proj_b_to_plane(le.UP,e).normalize(),i=Math.sign(e.dot(A.cross(t)))*Math.acos(A.dot(t))*u;return i<0?360+i:i}isVisible(e){let A=this.eye.length();return this.eye.distance(e)<Math.sqrt(A*A-this.planet.ellipsoid._a2)}}class Xi{constructor(e){this.name=e,this.topNode=this,this._dictionary=[],this._dictionary[e]=this,this.childNodes=[],this.parentNode=null,this.__staticId=Xi._staticCounter++}static get _staticCounter(){return this.__counter__||0===this.__counter__||(this.__counter__=0),this.__counter__}static set _staticCounter(e){this.__counter__=e}addNode(e){null==this.parentNode?e.topNode=this:e.topNode=this.topNode,e.parentNode=this,e._dictionary=this.topNode._dictionary,this.childNodes.push(e),this.topNode._dictionary[e.name]=e}destroy(){for(var e=0;e<this.childNodes.length;e++)this.childNodes[e].destroy();this._clear()}getNodeByName(e){return this._dictionary[e]}_clear(){this.name="",this.parentNode=null,this.topNode=null,this.childNodes.length=0}isEqual(e){return e.__staticId===this.__staticId}}class Zi extends Xi{constructor(e){super(e),this.renderer=null,this.drawMode=null,this.show=!0,this._isActive=!0,this.lightEnabled=!1,this._lights=[],this._lightsTransformedPositions=[],this._lightsParamsv=[],this._lightsParamsf=[],this._lightsNames=[],this.entityCollections=[],this._pickingId=-1,this.events=new bA(null,this)}addNode(e){super.addNode(e),e.assign(this.renderer)}assign(e){this.renderer=e,this._pickingId=e.addPickingCallback(this,this._entityCollectionPickingCallback);for(var A=0;A<this.entityCollections.length;A++)this.entityCollections[A].bindRenderNode(this);this.init&&this.init()}onremove(){}remove(){var e=this.renderer,A=this.name;if(e){e.renderNodes[A]&&e.renderNodes[A].isEqual(this)&&(e.renderNodes[A]=null,delete e.renderNodes[A]);for(var t=0;t<e._renderNodesArr.length;t++)if(e._renderNodesArr[t].isEqual(this)){e._renderNodesArr.splice(t,1);break}e.removePickingCallback(this._pickingId),this._pickingId=-1,this.onremove&&this.onremove()}}addEntityCollection(e,A){return e.addTo(this,A),this}removeEntityCollection(e){e.remove()}addLight(e){return e.addTo(this),this}getLightByName(e){var A=this._lightsNames.indexOf(e);return this._lights[A]}removeLight(e){e.remove()}drawNode(e,A){this._isActive&&this._drawNodes(e,A)}isActive(){return this._isActive}setActive(e){this._isActive=e,this.renderer&&(this._isActive&&-1===this._pickingId?this._pickingId=this.renderer.addPickingCallback(this,this._entityCollectionPickingCallback):this._isActive||-1===this._pickingId||(this.renderer.removePickingCallback(this._pickingId),this._pickingId=-1));for(var A=0;A<this.childNodes.length;A++)this.childNodes[A].setActive(e)}setDrawMode(e){this.drawMode=e;for(var A=0;A<this.childNodes.length;A++)this.childNodes[A].setDrawMode(e)}transformLights(){for(var e=this.renderer,A=0;A<this._lights.length;A++){var t,i=4*A;this._lights[A].directional?(t=e.activeCamera._normalMatrix.mulVec(this._lights[A]._position),this._lightsTransformedPositions[i+3]=0):(t=e.activeCamera._viewMatrix.mulVec3(this._lights[A]._position),this._lightsTransformedPositions[i+3]=1),this._lightsTransformedPositions[i]=t.x,this._lightsTransformedPositions[i+1]=t.y,this._lightsTransformedPositions[i+2]=t.z}}updateBillboardsTexCoords(){for(var e=0;e<this.entityCollections.length;e++)this.entityCollections[e].billboardHandler.refreshTexCoordsArr()}_drawNodes(){for(var e=0;e<this.childNodes.length;e++)this.childNodes[e]._isActive&&this.childNodes[e]._drawNodes();this.show&&(this.frame&&this.frame(),this.drawEntityCollections(this.entityCollections))}drawEntityCollections(e){this.renderer.enqueueEntityCollectionsToDraw(e)}drawPickingEntityCollections(e){if(e.length){var A=this.renderer.handler.gl;A.disable(A.CULL_FACE),A.enable(A.POLYGON_OFFSET_FILL),A.polygonOffset(0,0);for(var t=e.length;t--;)e[t]._fadingOpacity&&e[t].billboardHandler.drawPicking();for(t=e.length;t--;)e[t]._fadingOpacity&&e[t].geoObjectHandler.drawPicking();for(t=e.length;t--;)e[t]._fadingOpacity&&e[t].labelHandler.drawPicking();for(t=e.length;t--;)e[t]._fadingOpacity&&e[t].rayHandler.drawPicking();for(A.polygonOffset(0,0),A.disable(A.POLYGON_OFFSET_FILL),A.enable(A.CULL_FACE),t=e.length;t--;)e[t]._visibility&&e[t].polylineHandler.drawPicking();for(t=e.length;t--;)e[t]._visibility&&e[t].shapeHandler.drawPicking();for(t=e.length;t--;)e[t]._visibility&&e[t].stripHandler.drawPicking()}}_entityCollectionPickingCallback(){this.drawPickingEntityCollections(this.entityCollections)}}class qi{constructor(e){this.vertices=[new le,new le,new le,new le,new le,new le,new le,new le],e&&this.setFromBoundsArr(e)}copy(e){for(let A=0,t=this.vertices.length;A<t;A++)this.vertices[A].copy(e.vertices[A])}setFromBoundsArr(e){var A=e[0],t=e[3],i=e[1],r=e[4],n=e[2],s=e[5],a=this.vertices;a[0].set(A,i,n),a[1].set(t,i,n),a[2].set(t,i,s),a[3].set(A,i,s),a[4].set(A,r,n),a[5].set(t,r,n),a[6].set(t,r,s),a[7].set(A,r,s)}setFromExtent(e,A){this.setFromBoundsArr(A.getCartesianBounds(e))}}class $i{constructor(e){this.segment=e,this.layers=[],this.tileOffsetArr=new Float32Array(e.planet.SLICE_SIZE_4),this.layerOpacityArr=new Float32Array(e.planet.SLICE_SIZE),this.init()}init(){}clear(){this.layers=null,this.tileOffsetArr=null,this.layerOpacityArr=null}append(e,A){let t=this.layers.length;this.layers.push(e),this.layerOpacityArr[t]=e.opacity;let i=4*t,r=e.applyMaterial(A);this.tileOffsetArr[i]=r[0],this.tileOffsetArr[i+1]=r[1],this.tileOffsetArr[i+2]=r[2],this.tileOffsetArr[i+3]=r[3]}}var er=new le,Ar=new le;let tr=new le,ir=new le,rr=new le,nr=new le,sr=new vA,ar=new vA;window.ELLNORM=!1;const or=new Array(4);or[0]=0,or[1]=1,or[2]=1,or[3]=0;const hr=new Array(4);hr[0]=!1,hr[1]=!0,hr[2]=!1,hr[3]=!0;class lr{constructor(e,A,t,i){this.isPole=!1,this._tileGroup=0,this._projection=zi,this.node=e,this.planet=A,this.handler=A.renderer.handler,this.bsphere=new xA,this._plainRadius=0,this.bbox=new qi,this._sw=new le,this._nw=new le,this._se=new le,this._ne=new le,this.centerNormal=new le,this._extent=i,this._extentLonLat=null,this.gridSize=A.terrain.gridSizeByZoom[t],this.fileGridSize=0,this.tileZoom=t,this.tileX=0,this.tileXE=0,this.tileXW=0,this.tileYN=0,this.tileYS=0,this.tileY=0,this.tileIndex="",this._assignTileIndexes(),this.materials=[],this.plainReady=!1,this.initialized=!1,this.normalMapReady=!1,this.parentNormalMapReady=!1,this.terrainReady=!1,this.terrainIsLoading=!1,this.terrainExists=!1,this.passReady=!1,this.plainVertices=null,this.plainVerticesHigh=null,this.plainVerticesLow=null,this.plainNormals=null,this.terrainVertices=null,this.terrainVerticesHigh=null,this.terrainVerticesLow=null,this.noDataVertices=null,this.tempVertices=null,this.tempVerticesHigh=null,this.tempVerticesLow=null,this.normalMapTexture=null,this.normalMapTextureBias=new Float32Array(3),this.normalMapVertices=null,this.normalMapVerticesHigh=null,this.normalMapVerticesLow=null,this.normalMapNormals=null,this.vertexNormalBuffer=null,this.vertexPositionBuffer=null,this.vertexPositionBufferHigh=null,this.vertexPositionBufferLow=null,this.vertexTextureCoordBuffer=null,this._globalTextureCoordinates=new Float32Array(4),this._inTheQueue=!1,this._appliedNeighborsZoom=[0,0,0,0],this._slices=[],this._indexBuffer=null,this.readyToEngage=!1,this.plainProcessing=!1}getEntityTerrainPoint(e,A,t){return this.getTerrainPoint(e._cartesian,e._lonlatMerc,A,t)}isEntityInside(e){return this._extent.isInside(e._lonlatMerc)}getTerrainPoint(e,A,t,i){var r=this.tempVertices;if(sr.set(e,e.negateTo()),r){var n=this._extent.northEast,s=this._extent.southWest,a=Math.sqrt(r.length/3)-1,o=n.lon,h=n.lat,l=s.lon,d=s.lat,c=(o-l)/a,u=(h-d)/a,g=A.lon-l,f=A.lat-d,p=Math.floor(g/c),m=Math.floor(a-f/u);if(r&&r.length){var x=3*((a+1)*m+p),v=3*((a+1)*(m+1)+p);tr.set(r[x],r[x+1],r[x+2]),ir.set(r[x+3],r[x+4],r[x+5]),rr.set(r[v],r[v+1],r[v+2]);let A=sr.hitTriangle(tr,ir,rr,t,i);if(A===vA.INSIDE)return e.distance(t);if(A===vA.AWAY){if(ar.set(e,e),ar.hitTriangle(tr,ir,rr,t,i)===vA.INSIDE)return-e.distance(t)}if(nr.set(r[v+3],r[v+4],r[v+5]),A=sr.hitTriangle(ir,nr,rr,t,i),A===vA.INSIDE)return e.distance(t);if(A===vA.AWAY){if(ar.set(e,e),ar.hitTriangle(ir,nr,rr,t,i)===vA.INSIDE)return-e.distance(t)}return A===vA.AWAY?-e.distance(t):e.distance(t)}return t.copy(this.planet.ellipsoid.hitRay(sr.origin,sr.direction)),i&&i.copy(e.normal()),e.distance(t)}return i&&i.copy(e.normal()),e.distance(this.planet.ellipsoid.hitRay(sr.origin,sr.direction))}projectNative(e){return e.forwardMercator()}loadTerrain(e){this.tileZoom<this.planet.terrain.minZoom?(this.terrainIsLoading=!0,this.elevationsNotExists(),this._inTheQueue||this.planet._normalMapCreator.queue(this)):this.tileZoom>this.planet.terrain.maxZoom?this.elevationsNotExists():this.terrainIsLoading||this.terrainReady||this.planet.terrain.loadTerrain(this,e)}elevationsExists(e){this.plainReady&&this.terrainIsLoading&&(this.planet._terrainWorker.make(this,e),this.plainVerticesHigh=null,this.plainVerticesLow=null,this.normalMapVerticesHigh=null,this.normalMapVerticesLow=null,this.planet.terrain.equalizeVertices||(this.tempVerticesHigh=null,this.tempVerticesLow=null))}_checkEqualization(e,A){return A&&this.tileZoom>=A.segment.tileZoom}equalize(){if(this.tileZoom<8||this.gridSize<2)return;this.readyToEngage=!0;let e=this.node.neighbors,A=this.tempVertices,t=this.tempVerticesHigh,i=this.tempVerticesLow,r=this.gridSize,n=r+1,s=e[0][0];if(this._checkEqualization(0,s)){this.readyToEngage=!0;let e=this.node.getOffsetOppositeNeighbourSide(s,0),a=s.segment.tempVertices,o=s.segment.tempVerticesHigh,h=s.segment.tempVerticesLow,l=s.segment.gridSize,d=l+1,c=1/(1<<this.tileZoom-s.segment.tileZoom),u=Math.max(r/(l*c),1),g=Math.max(l*c/r,1);for(let r=0,s=e*l;r<n;r+=u,s+=g){const e=3*r,n=3*(d*l+s);A[e]=a[n],A[e+1]=a[n+1],A[e+2]=a[n+2],t[e]=o[n],t[e+1]=o[n+1],t[e+2]=o[n+2],i[e]=h[n],i[e+1]=h[n+1],i[e+2]=h[n+2]}}if(s=e[1][0],this._checkEqualization(1,s)){this.readyToEngage=!0;let e=this.node.getOffsetOppositeNeighbourSide(s,1),a=s.segment.tempVertices,o=s.segment.tempVerticesHigh,h=s.segment.tempVerticesLow,l=s.segment.gridSize,d=l+1,c=1/(1<<this.tileZoom-s.segment.tileZoom),u=Math.max(r/(l*c),1),g=Math.max(l*c/r,1);for(let s=0,c=e*l;s<n;s+=u,c+=g){const e=3*(n*s+r),l=d*c*3;A[e]=a[l],A[e+1]=a[l+1],A[e+2]=a[l+2],t[e]=o[l],t[e+1]=o[l+1],t[e+2]=o[l+2],i[e]=h[l],i[e+1]=h[l+1],i[e+2]=h[l+2]}}if(s=e[2][0],this._checkEqualization(2,s)){this.readyToEngage=!0;let e=this.node.getOffsetOppositeNeighbourSide(s,2),a=s.segment.tempVertices,o=s.segment.tempVerticesHigh,h=s.segment.tempVerticesLow,l=s.segment.gridSize,d=1/(1<<this.tileZoom-s.segment.tileZoom),c=Math.max(r/(l*d),1),u=Math.max(l*d/r,1);for(let s=0,d=e*l;s<n;s+=c,d+=u){const e=3*(n*r+s),l=3*d;A[e]=a[l],A[e+1]=a[l+1],A[e+2]=a[l+2],t[e]=o[l],t[e+1]=o[l+1],t[e+2]=o[l+2],i[e]=h[l],i[e+1]=h[l+1],i[e+2]=h[l+2]}}if(s=e[3][0],this._checkEqualization(3,s)){this.readyToEngage=!0;let e=this.node.getOffsetOppositeNeighbourSide(s,3),a=s.segment.tempVertices,o=s.segment.tempVerticesHigh,h=s.segment.tempVerticesLow,l=s.segment.gridSize,d=l+1,c=1/(1<<this.tileZoom-s.segment.tileZoom),u=Math.max(r/(l*c),1),g=Math.max(l*c/r,1);for(let r=0,s=e*l;r<n;r+=u,s+=g){const e=n*r*3,c=3*(d*s+l);A[e]=a[c],A[e+1]=a[c+1],A[e+2]=a[c+2],t[e]=o[c],t[e+1]=o[c+1],t[e+2]=o[c+2],i[e]=h[c],i[e+1]=h[c+1],i[e+2]=h[c+2]}}}engage(){this.readyToEngage=!1,this.createCoordsBuffers(this.tempVerticesHigh,this.tempVerticesLow,this.gridSize)}_plainSegmentWorkerCallback(e){this.plainProcessing=!1,this.initialized&&!this.terrainReady&&(this.plainVertices=e.plainVertices,this.plainVerticesHigh=e.plainVerticesHigh,this.plainVerticesLow=e.plainVerticesLow,this.plainNormals=e.plainNormals,this.normalMapNormals=e.normalMapNormals,this.normalMapVertices=e.normalMapVertices,this.normalMapVerticesHigh=e.normalMapVerticesHigh,this.normalMapVerticesLow=e.normalMapVerticesLow,this.terrainVertices=this.plainVertices,this.terrainVerticesHigh=this.plainVerticesHigh,this.terrainVerticesLow=this.plainVerticesLow,this.fileGridSize=Math.sqrt(e.normalMapVertices.length/3)-1,this._plainRadius=e.plainRadius,this.plainReady=!0)}_terrainWorkerCallback(e){if(this.plainReady){if(this.readyToEngage=!0,this.normalMapNormals=null,this.normalMapVertices=null,this.normalMapVerticesHigh=null,this.normalMapVerticesLow=null,this.terrainVertices=null,this.terrainVerticesHigh=null,this.terrainVerticesLow=null,this.noDataVertices=null,this.tempVertices=null,this.tempVerticesHigh=null,this.tempVerticesLow=null,this.normalMapNormals=e.normalMapNormals,this.normalMapVertices=e.normalMapVertices,this.normalMapVerticesHigh=e.normalMapVerticesHigh,this.normalMapVerticesLow=e.normalMapVerticesLow,this.terrainVertices=e.terrainVertices,this.terrainVerticesHigh=e.terrainVerticesHigh,this.terrainVerticesLow=e.terrainVerticesLow,this.noDataVertices=e.noDataVertices,this.tempVertices=this.terrainVertices,this.tempVerticesHigh=this.terrainVerticesHigh,this.tempVerticesLow=this.terrainVerticesLow,this.setBoundingVolumeArr(e.bounds),this.gridSize=Math.sqrt(this.terrainVertices.length/3)-1,this.node.appliedTerrainNodeId=this.node.nodeId,this.terrainReady=!0,this.terrainIsLoading=!1,this.parentNormalMapReady=!0,this.terrainExists=!0,!this.normalMapTexturePtr){var A=this.planet._normalMapCreator;this.normalMapTexturePtr=this.planet.renderer.handler.createEmptyTexture_l(A._width,A._height)}this.planet.lightEnabled&&this.planet._normalMapCreator.queue(this)}}elevationsNotExists(){this.planet&&this.tileZoom<=this.planet.terrain.maxZoom&&(this.plainReady&&this.terrainIsLoading&&(this.terrainIsLoading=!1,this.node.appliedTerrainNodeId=this.node.nodeId,this.planet.lightEnabled&&!this._inTheQueue&&this.planet._normalMapCreator.queue(this),this.readyToEngage=!0),this.terrainVertices=this.plainVertices,this.terrainVerticesHigh=this.plainVerticesHigh,this.terrainVerticesLow=this.plainVerticesLow,this.tempVertices=this.terrainVertices,this.tempVerticesHigh=this.terrainVerticesHigh,this.tempVerticesLow=this.terrainVerticesLow,this.noDataVertices=null,this.fileGridSize=Math.sqrt(this.terrainVertices.length/3)-1,this.gridSize=this.fileGridSize,this.terrainReady=!0,this.terrainExists=!1)}_normalMapEdgeEqualize(e){let A=this.node.neighbors,t=A[e][0],i=this.planet.terrain.maxZoom;this.tileZoom===i&&(A[0].length||A[1].length||A[2].length||A[3].length||(t=this.node.getEqualNeighbor(e)));let r=t&&t.segment,n=this;if(t&&r&&r.terrainReady&&r.terrainExists&&r.tileZoom<=i&&n._appliedNeighborsZoom[e]!==r.tileZoom){n._appliedNeighborsZoom[e]=r.tileZoom;let A=n.normalMapNormals,t=r.normalMapNormals;if(!A||!t)return;let i=n.normalMapNormals,s=r.normalMapNormals,a=Math.sqrt(A.length/3),o=a-1;const h=o*or[e];let l,d,c,u;if(n.tileZoom===r.tileZoom){const g=o-h;if(hr[e])for(let e=0;e<a;e++){let r=3*(e*a+h),n=3*(e*a+g);l=i[r]+s[n],d=i[r+1]+s[n+1],c=i[r+2]+s[n+2],u=1/Math.sqrt(l*l+d*d+c*c),t[n]=A[r]=l*u,t[n+1]=A[r+1]=d*u,t[n+2]=A[r+2]=c*u}else for(let e=0;e<a;e++){let r=3*(h*a+e),n=3*(g*a+e);l=i[r]+s[n],d=i[r+1]+s[n+1],c=i[r+2]+s[n+2],u=1/Math.sqrt(l*l+d*d+c*c),t[n]=A[r]=l*u,t[n+1]=A[r+1]=d*u,t[n+2]=A[r+2]=c*u}r._inTheQueue||r._appliedNeighborsZoom[YA[e]]===n.tileZoom||(r._appliedNeighborsZoom[YA[e]]=n.tileZoom,n.planet._normalMapCreator.queue(r))}}}applyTerrain(e){e?this.elevationsExists(e):this.elevationsNotExists()}deleteBuffers(){var e=this.handler.gl;e.deleteBuffer(this.vertexNormalBuffer),e.deleteBuffer(this.vertexPositionBuffer),e.deleteBuffer(this.vertexPositionBufferHigh),e.deleteBuffer(this.vertexPositionBufferLow),this.vertexNormalBuffer=null,this.vertexPositionBuffer=null,this.vertexPositionBufferHigh=null,this.vertexPositionBufferLow=null,this.vertexTextureCoordBuffer=null}deleteMaterials(){for(var e=this.materials,A=0;A<e.length;A++){var t=e[A];t&&t.clear()}this.materials.length=0}deleteElevations(){this.terrainExists=!1,this.terrainReady=!1,this.terrainIsLoading=!1,this.normalMapVertices=null,this.normalMapVerticesHigh=null,this.normalMapVerticesLow=null,this.normalMapNormals=null,this.tempVertices=null,this.tempVerticesHigh=null,this.tempVerticesLow=null,this.terrainVertices=null,this.terrainVerticesHigh=null,this.terrainVerticesLow=null,this.noDataVertices=null,this.plainVertices=null,this.plainVerticesHigh=null,this.plainVerticesLow=null,this.plainNormals=null,this.normalMapReady&&this.handler.gl.deleteTexture(this.normalMapTexture),this.normalMapReady=!1,this.parentNormalMapReady=!1,this._appliedNeighborsZoom=[0,0,0,0],this.normalMapTextureBias[0]=0,this.normalMapTextureBias[1]=0,this.normalMapTextureBias[2]=1,this._inTheQueue=!1}clearSegment(){this.plainReady=!1,this.initialized=!1,this.deleteBuffers(),this.deleteMaterials(),this.deleteElevations()}_freeCache(){this.planet._quadTreeNodesCacheMerc[this.tileIndex]=null,delete this.planet._quadTreeNodesCacheMerc[this.tileIndex]}destroySegment(){this._freeCache(),this.clearSegment();for(var e=this._slices.length;e--;)this._slices[e].clear();this._slices=null,this.node=null,this.planet=null,this.handler=null,this.bbox=null,this.bsphere=null,this._extent=null,this.materials=null,this.plainVertices=null,this.plainVerticesHigh=null,this.plainVerticesLow=null,this.plainNormals=null,this.terrainVertices=null,this.terrainVerticesHigh=null,this.terrainVerticesLow=null,this.noDataVertices=null,this.tempVertices=null,this.tempVerticesHigh=null,this.tempVerticesLow=null,this.normalMapTexture=null,this.normalMapTextureBias=null,this.normalMapVertices=null,this.normalMapVerticesHigh=null,this.normalMapVerticesLow=null,this.normalMapNormals=null,this.vertexNormalBuffer=null,this.vertexPositionBuffer=null,this.vertexPositionBufferHigh=null,this.vertexPositionBufferLow=null,this.vertexTextureCoordBuffer=null,this._projection=null,this._appliedNeighborsZoom=null,this._globalTextureCoordinates=null}_setExtentLonLat(){this._extentLonLat=this._extent.inverseMercator()}createBoundsByExtent(){var e=this.planet.ellipsoid,A=this._extentLonLat,t=e.geodeticToCartesian(A.southWest.lon,A.southWest.lat),i=e.geodeticToCartesian(A.northEast.lon,A.northEast.lat),r=e.geodeticToCartesian(A.southWest.lon,A.northEast.lat),n=e.geodeticToCartesian(A.northEast.lon,A.southWest.lat);this._sw.copy(t),this._nw.copy(r),this._ne.copy(i),this._se.copy(n),this.setBoundingVolume3v(t,i)}createBoundsByParent(){let e=this.node;for(;e.parentNode&&!e.segment.terrainReady;)e=e.parentNode;let A=1<<this.tileZoom-e.segment.tileZoom,t=this.tileX-e.segment.tileX*A,i=this.tileY-e.segment.tileY*A;if(e.segment.terrainReady&&e.segment.tileZoom>=this.planet.terrain.minZoom){let r=e.segment.gridSize/A;if(r>=1){this.bsphere.center.x=e.segment.bsphere.center.x,this.bsphere.center.y=e.segment.bsphere.center.y,this.bsphere.center.z=e.segment.bsphere.center.z,this.bsphere.radius=e.segment.bsphere.radius;let A=r*i,n=r*t,s=e.segment.gridSize+1,a=3*((A+r)*s+n),o=3*(A*s+n),h=3*(A*s+n+r),l=3*((A+r)*s+n+r),d=e.segment.tempVertices,c=new le(d[a],d[a+1],d[a+2]),u=new le(d[h],d[h+1],d[h+2]),g=new le(d[o],d[o+1],d[o+2]),f=new le(d[l],d[l+1],d[l+2]);this._sw.copy(c),this._nw.copy(g),this._ne.copy(u),this._se.copy(f)}else{let A,n=e.segment,s=Math.floor(r*i),a=Math.floor(r*t),o=1/r,h=i-o*s,l=t-o*a;A=1===n.gridSize?n.tempVertices:Ue(n.tempVertices,n.gridSize,s,a,1);let d,c,u=new le(A[0],A[1],A[2]),g=new le(A[9],A[10],A[11]),f=new le(A[3]-A[0],A[4]-A[1],A[5]-A[2]),p=new le(A[6]-A[0],A[7]-A[1],A[8]-A[2]),m=new le(A[3]-A[9],A[4]-A[10],A[5]-A[11]),x=new le(A[6]-A[9],A[7]-A[10],A[8]-A[11]),v=h,y=l;d=v+y<o?le.add(f.scaleTo(y/o),p.scaleTo(v/o)).addA(u):le.add(x.scaleTo(1-y/o),m.scaleTo(1-v/o)).addA(g),v=h+1,y=l+1,c=v+y<o?le.add(f.scaleTo(y/o),p.scaleTo(v/o)).addA(u):le.add(x.scaleTo(1-y/o),m.scaleTo(1-v/o)).addA(g),this.setBoundingVolume3v(d,c)}}else this.createBoundsByExtent()}setBoundingSphere(e,A,t,i){this.bsphere.center.x=e,this.bsphere.center.y=A,this.bsphere.center.z=t,this.bsphere.radius=this.bsphere.center.distance(i)}setBoundingVolume(e,A,t,i,r,n){this.bbox.setFromBoundsArr([e,A,t,i,r,n]);let s=e+.5*(i-e),a=A+.5*(r-A),o=t+.5*(n-t);this.bsphere.center.set(s,a,o),this.bsphere.radius=this.bsphere.center.distance(new le(e,A,t))}setBoundingVolume3v(e,A){this.bbox.setFromBoundsArr([e.x,e.y,e.z,A.x,A.y,A.z]);let t=e.x+.5*(A.x-e.x),i=e.y+.5*(A.y-e.y),r=e.z+.5*(A.z-e.z);this.bsphere.center.set(t,i,r),this.bsphere.radius=this.bsphere.center.distance(new le(e.x,e.y,e.z))}setBoundingVolumeArr(e){this.bbox.setFromBoundsArr(e);let A=e[0]+.5*(e[3]-e[0]),t=e[1]+.5*(e[4]-e[1]),i=e[2]+.5*(e[5]-e[2]);this.bsphere.center.set(A,t,i),this.bsphere.radius=this.bsphere.center.distance(new le(e[0],e[1],e[2]))}createCoordsBuffers(e,A,t){var i=(t+1)*(t+1),r=this.handler;this.vertexPositionBufferHigh&&this.vertexPositionBufferHigh.numItems===i?(r.setStreamArrayBuffer(this.vertexPositionBufferHigh,e),r.setStreamArrayBuffer(this.vertexPositionBufferLow,A)):(r.gl.deleteBuffer(this.vertexPositionBufferHigh),r.gl.deleteBuffer(this.vertexPositionBufferLow),this.vertexTextureCoordBuffer=this.planet._textureCoordsBufferCache[Math.log2(t)],this.vertexPositionBufferHigh=r.createArrayBuffer(e,3,i),this.vertexPositionBufferLow=r.createArrayBuffer(A,3,i))}_addViewExtent(){var e=this._extentLonLat;if(this.planet._viewExtent){var A=this.planet._viewExtent;e.southWest.lon<A.southWest.lon&&(A.southWest.lon=e.southWest.lon),e.northEast.lon>A.northEast.lon&&(A.northEast.lon=e.northEast.lon),e.southWest.lat<A.southWest.lat&&(A.southWest.lat=e.southWest.lat),e.northEast.lat>A.northEast.lat&&(A.northEast.lat=e.northEast.lat)}else this.planet._viewExtent=new ne(new F(e.southWest.lon,e.southWest.lat),new F(e.northEast.lon,e.northEast.lat))}_assignTileIndexes(){this._tileGroup=0;var e=this.tileZoom,A=this._extent,t=O;this.tileX=Math.round(Math.abs(-t-A.southWest.lon)/(A.northEast.lon-A.southWest.lon)),this.tileY=Math.round(Math.abs(t-A.northEast.lat)/(A.northEast.lat-A.southWest.lat));var i=Math.pow(2,e);this.tileXE=(this.tileX+1)%i,this.tileXW=(i+this.tileX-1)%i,this.tileYN=this.tileY-1,this.tileYS=this.tileY+1,this.tileIndex=MA.getTileIndex(this.tileX,this.tileY,e),this.planet._quadTreeNodesCacheMerc[this.tileIndex]=this.node}initialize(){var e=this.planet,A=this.node;if(A.sideSize[0]=A.sideSize[1]=A.sideSize[2]=A.sideSize[3]=this.gridSize=e.terrain.gridSizeByZoom[this.tileZoom]||e.terrain.plainGridSize,A.sideSizeLog2[0]=A.sideSizeLog2[1]=A.sideSizeLog2[2]=A.sideSizeLog2[3]=Math.log2(e.terrain.gridSizeByZoom[this.tileZoom]||e.terrain.plainGridSize),this.tileZoom<=e.terrain.maxZoom){var t=this.planet._normalMapCreator;this.normalMapTexturePtr=e.renderer.handler.createEmptyTexture_l(t._width,t._height)}this.normalMapTexture=this.planet.transparentTexture,this._assignGlobalTextureCoordinates(),this.initialized=!0}_assignGlobalTextureCoordinates(){var e=this._extent;this._globalTextureCoordinates[0]=(e.southWest.lon+O)*X,this._globalTextureCoordinates[1]=(O-e.northEast.lat)*X,this._globalTextureCoordinates[2]=(e.northEast.lon+O)*X,this._globalTextureCoordinates[3]=(O-e.southWest.lat)*X}createPlainSegmentAsync(){let e=this.planet,A=e.terrain;A.isReady()&&this.tileZoom<=A.maxZoom&&!this.plainReady&&(this.plainProcessing=!0,e._plainSegmentWorker.make(this))}createPlainSegment(){this.initialize(),this._createPlainVertices(),this.readyToEngage=!0}_createPlainVertices(){var e=this.planet.terrain.gridSizeByZoom[this.tileZoom],A=this._extent,t=this.planet.terrain.plainGridSize,i=A.getWidth()/Math.max(t,e),r=A.southWest.lon,n=A.northEast.lat,s=Math.max(t/e,1),a=Math.max(t,e)+1,o=this.planet.ellipsoid._invRadii2,h=0,l=0;const d=a*a;var c=(e+1)*(e+1)*3;this.plainNormals=new Float32Array(c),this.plainVertices=new Float64Array(c),this.plainVerticesHigh=new Float32Array(c),this.plainVerticesLow=new Float32Array(c),this.normalMapNormals=new Float32Array(3*d),this.normalMapVertices=new Float64Array(3*d),this.normalMapVerticesHigh=new Float32Array(3*d),this.normalMapVerticesLow=new Float32Array(3*d);for(var u=this.plainVertices,g=this.plainVerticesHigh,f=this.plainVerticesLow,p=this.plainNormals,m=this.normalMapVertices,x=this.normalMapVerticesHigh,v=this.normalMapVerticesLow,y=this.normalMapNormals,w=0;w<d;w++){var C=w%a,B=~~(w/a),E=this.planet.ellipsoid.lonLatToCartesian(F.inverseMercator(r+C*i,n-B*i)),T=E.x*o.x,b=E.y*o.y,I=E.z*o.z,M=1/Math.sqrt(T*T+b*b+I*I),P=T*M,D=b*M,L=I*M;le.doubleToTwoFloats(E,er,Ar),m[l]=E.x,x[l]=er.x,v[l]=Ar.x,y[l++]=P,m[l]=E.y,x[l]=er.y,v[l]=Ar.y,y[l++]=D,m[l]=E.z,x[l]=er.z,v[l]=Ar.z,y[l++]=L,B%s==0&&C%s==0&&(u[h]=E.x,g[h]=er.x,f[h]=Ar.x,p[h++]=P,u[h]=E.y,g[h]=er.y,f[h]=Ar.y,p[h++]=D,u[h]=E.z,g[h]=er.z,f[h]=Ar.z,p[h++]=L)}this.terrainVertices=u,this.terrainVerticesHigh=g,this.terrainVerticesLow=f,this.plainReady=!0}getMaterialByLayer(e){return this.materials[e._id]}_getLayerExtentOffset(e){var A=e._extentMerc,t=this._extent,i=A.northEast.lon-A.southWest.lon,r=A.northEast.lat-A.southWest.lat;return[(t.southWest.lon-A.southWest.lon)/i,(A.northEast.lat-t.northEast.lat)/r,(t.northEast.lon-t.southWest.lon)/i,(t.northEast.lat-t.southWest.lat)/r]}screenRendering(e,A,t,i,r){var n,s,a=this.handler.gl,o=e.attributes,h=e.uniforms,l=this.materials,d=this.planet;n=A?(s=A[0])._height:0,a.activeTexture(a.TEXTURE0+d.SLICE_SIZE+2),a.bindTexture(a.TEXTURE_2D,i||this.getDefaultTexture()),a.uniform1i(h.defaultTexture,d.SLICE_SIZE+2);var c=0,u=0,g=!1,f=this._slices[t];for(f?f.layers=[]:f=this._slices[t]=new $i(this),this._indexBuffer=this._getIndexBuffer();s;){if(this.layerOverlap(s)&&(s._fading&&s._fadingOpacity>0||(s.minZoom>=d.minCurrZoom||s.maxZoom>=d.minCurrZoom)&&(s.minZoom<=d.maxCurrZoom||s.maxZoom<=d.maxCurrZoom))){g=!0;var p=l[s._id];p||(p=l[s._id]=s.createMaterial(this)),p.isReady||(this.planet._renderCompleted=!1),f.append(s,p),d._samplerArr[c]=c,a.activeTexture(a.TEXTURE0+c),a.bindTexture(a.TEXTURE_2D,p.texture||d.transparentTexture),c++}s=A[++u]}!g&&r||(a.uniform1i(h.samplerCount,c),a.uniform1f(h.height,n),a.uniform1iv(h.samplerArr,d._samplerArr),a.uniform4fv(h.tileOffsetArr,f.tileOffsetArr),a.uniform1fv(h.layerOpacityArr,f.layerOpacityArr),d.lightEnabled&&(a.activeTexture(a.TEXTURE0+d.SLICE_SIZE+3),a.bindTexture(a.TEXTURE_2D,this.normalMapTexture||d.transparentTexture),a.uniform1i(h.uNormalMap,d.SLICE_SIZE+3),a.uniform3fv(h.uNormalMapBias,this.normalMapTextureBias),a.uniform4fv(h.uGlobalTextureCoord,this._globalTextureCoordinates)),a.bindBuffer(a.ARRAY_BUFFER,this.vertexPositionBufferHigh),a.vertexAttribPointer(o.aVertexPositionHigh,this.vertexPositionBufferHigh.itemSize,a.FLOAT,!1,0,0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexPositionBufferLow),a.vertexAttribPointer(o.aVertexPositionLow,this.vertexPositionBufferLow.itemSize,a.FLOAT,!1,0,0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexTextureCoordBuffer),a.vertexAttribPointer(o.aTextureCoord,2,a.UNSIGNED_SHORT,!0,0,0),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this._indexBuffer),a.drawElements(d.drawMode,this._indexBuffer.numItems,a.UNSIGNED_INT,0))}heightPickingRendering(e,A){var t,i=this.handler.gl,r=e.attributes,n=e.uniforms;this.materials,this.planet,t=A?A[0]._height:0,i.uniform1f(n.height,t),i.bindBuffer(i.ARRAY_BUFFER,this.vertexPositionBufferHigh),i.vertexAttribPointer(r.aVertexPositionHigh,this.vertexPositionBufferHigh.itemSize,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,this.vertexPositionBufferLow),i.vertexAttribPointer(r.aVertexPositionLow,this.vertexPositionBufferLow.itemSize,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,this._indexBuffer),i.drawElements(i.TRIANGLE_STRIP,this._indexBuffer.numItems,i.UNSIGNED_INT,0)}colorPickingRendering(e,A,t,i,r){var n,s=this.handler.gl,a=e.attributes,o=e.uniforms,h=this.materials,l=this.planet;n=A?A[0]._height:0;var d=!1,c=this._slices[t];let u=c.layers.length;for(let e=0;e<u;e++){d=!0;var g=c.layers[e],f=4*e;l._pickingColorArr[f]=g._pickingColor.x/255,l._pickingColorArr[f+1]=g._pickingColor.y/255,l._pickingColorArr[f+2]=g._pickingColor.z/255,l._pickingColorArr[f+3]=g._pickingEnabled,l._samplerArr[e]=e,s.activeTexture(s.TEXTURE0+e),s.bindTexture(s.TEXTURE_2D,h[g._id].texture||this.planet.transparentTexture),l._pickingMaskArr[e]=e+l.SLICE_SIZE,s.activeTexture(s.TEXTURE0+e+l.SLICE_SIZE),s.bindTexture(s.TEXTURE_2D,h[g._id].pickingMask||this.planet.transparentTexture)}!d&&r||(s.uniform1i(o.samplerCount,u),s.uniform1f(o.height,n),s.uniform1iv(o.samplerArr,l._samplerArr),s.uniform1iv(o.pickingMaskArr,l._pickingMaskArr),s.uniform4fv(o.pickingColorArr,l._pickingColorArr),s.uniform4fv(o.tileOffsetArr,c.tileOffsetArr),s.uniform1fv(o.layerOpacityArr,c.layerOpacityArr),s.bindBuffer(s.ARRAY_BUFFER,this.vertexPositionBufferHigh),s.vertexAttribPointer(a.aVertexPositionHigh,this.vertexPositionBufferHigh.itemSize,s.FLOAT,!1,0,0),s.bindBuffer(s.ARRAY_BUFFER,this.vertexPositionBufferLow),s.vertexAttribPointer(a.aVertexPositionLow,this.vertexPositionBufferLow.itemSize,s.FLOAT,!1,0,0),s.bindBuffer(s.ARRAY_BUFFER,this.vertexTextureCoordBuffer),s.vertexAttribPointer(a.aTextureCoord,2,s.UNSIGNED_SHORT,!0,0,0),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,this._indexBuffer),s.drawElements(s.TRIANGLE_STRIP,this._indexBuffer.numItems,s.UNSIGNED_INT,0))}depthRendering(e,A){var t,i=this.handler.gl,r=e.attributes,n=e.uniforms;t=A?A[0]._height:0,i.uniform1f(n.height,t),i.bindBuffer(i.ARRAY_BUFFER,this.vertexPositionBufferHigh),i.vertexAttribPointer(r.aVertexPositionHigh,this.vertexPositionBufferHigh.itemSize,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,this.vertexPositionBufferLow),i.vertexAttribPointer(r.aVertexPositionLow,this.vertexPositionBufferLow.itemSize,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,this._indexBuffer),i.drawElements(i.TRIANGLE_STRIP,this._indexBuffer.numItems,i.UNSIGNED_INT,0)}_getIndexBuffer(){var e=this.node.sideSizeLog2,A=this.planet._indexesCache[Math.log2(this.gridSize)][e[0]][e[1]][e[2]][e[3]];if(!A.buffer){let t=Ht().createSegmentIndexes(Math.log2(this.gridSize),[e[0],e[1],e[2],e[3]]);A.buffer=this.planet.renderer.handler.createElementArrayBuffer(t,1),this.planet._indexesCacheToRemoveCounter++,t=null}return A.buffer}_collectVisibleNodes(){this.planet._visibleNodes[this.node.nodeId]=this.node}layerOverlap(e){return this._extent.overlaps(e._extentMerc)}getDefaultTexture(){return this.planet.solidTextureOne}getExtentLonLat(){return this._extentLonLat}getExtentMerc(){return this._extent}getExtent(){return this._extent}getNodeState(){var e=this.planet._visibleNodes[this.node.nodeId];return e&&e.state||0}getNeighborSide(e){if(this.tileY===e.tileY){if(this.tileX===e.tileXE)return 3;if(this.tileX===e.tileXW)return 1}else if(this.tileX===e.tileX){if(this.tileY===e.tileYS)return 0;if(this.tileY===e.tileYN)return 2}return-1}}const dr=(90-te)/Math.pow(2,7);let cr=new le,ur=new le;class gr extends lr{constructor(e,A,t,i){super(e,A,t,i),this._projection=Hi,this._extentMerc=new ne(i.southWest.forwardMercatorEPS01(),i.northEast.forwardMercatorEPS01()),this.isPole=!0}_setExtentLonLat(){this._extentLonLat=this._extent}projectNative(e){return e}getTerrainPoint(e,A,t,i){return t.copy(this.planet.ellipsoid.hitRay(e,e.negateTo().normalize())),i&&i.copy(t.normal()),e.length()-t.length()}acceptForRendering(e){var A,t=this._extent.northEast.lat;if(this._isNorth){let e=Math.floor((90-t)/dr);A=Math.floor(e/16)+7}else{let e=Math.floor((ie-t)/dr);A=12-Math.floor(e/16)}return lr.prototype.acceptForRendering.call(this,e)||this.tileZoom>=A}_assignTileIndexes(){var e=this.tileZoom,A=this._extent;this.tileX=Math.round(Math.abs(-180-A.southWest.lon)/(A.northEast.lon-A.southWest.lon));var t=A.northEast.lat;t>0?(this._isNorth=!0,this._tileGroup=1,this.tileY=Math.round((90-t)/(A.northEast.lat-A.southWest.lat))):(this._tileGroup=2,this.tileY=Math.round((ie-t)/(A.northEast.lat-A.southWest.lat)));var i=1<<e;this.tileXE=(this.tileX+1)%i,this.tileXW=(i+this.tileX-1)%i,this.tileYN=this.tileY-1,this.tileYS=this.tileY+1,this.tileIndex=MA.getTileIndex(this.tileX,this.tileY,e)}_createPlainVertices(){var e=this.planet.terrain.gridSizeByZoom[this.tileZoom],A=this._extent,t=this.planet.terrain.plainGridSize,i=A.getWidth(),r=A.getHeight(),n=i/Math.max(t,e),s=r/e,a=A.southWest.lon,o=A.northEast.lat,h=Math.max(t/e,1),l=Math.max(t,e)+1,d=this.planet.ellipsoid._invRadii2,c=0,u=0;const g=l*l;var f=(e+1)*(e+1)*3;this.plainNormals=new Float32Array(f),this.plainVertices=new Float64Array(f),this.plainVerticesHigh=new Float32Array(f),this.plainVerticesLow=new Float32Array(f),this.normalMapNormals=new Float32Array(3*g),this.normalMapVertices=new Float64Array(3*g),this.normalMapVerticesHigh=new Float32Array(3*g),this.normalMapVerticesLow=new Float32Array(3*g);let p=549755748352,m=-549755748352,x=549755748352,v=-549755748352,y=549755748352,w=-549755748352;for(var C=this.plainVertices,B=this.plainVerticesHigh,E=this.plainVerticesLow,T=this.plainNormals,b=this.normalMapVertices,I=this.normalMapVerticesHigh,M=this.normalMapVerticesLow,P=this.normalMapNormals,D=0;D<g;D++){var L=D%l,_=~~(D/l),S=this.planet.ellipsoid.lonLatToCartesian(new F(a+L*n,o-_*s)),R=S.x*d.x,k=S.y*d.y,z=S.z*d.z,H=1/Math.sqrt(R*R+k*k+z*z),O=R*H,Q=k*H,N=z*H;le.doubleToTwoFloats(S,cr,ur),b[u]=S.x,I[u]=cr.x,M[u]=ur.x,P[u++]=O,b[u]=S.y,I[u]=cr.y,M[u]=ur.y,P[u++]=Q,b[u]=S.z,I[u]=cr.z,M[u]=ur.z,P[u++]=N,_%h==0&&L%h==0&&(C[c]=S.x,B[c]=cr.x,E[c]=ur.x,T[c++]=O,C[c]=S.y,B[c]=cr.y,E[c]=ur.y,T[c++]=Q,C[c]=S.z,B[c]=cr.z,E[c]=ur.z,T[c++]=N,S.x<p&&(p=S.x),S.x>m&&(m=S.x),S.y<x&&(x=S.y),S.y>v&&(v=S.y),S.z<y&&(y=S.z),S.z>w&&(w=S.z))}this.terrainVertices=C,this.terrainVerticesHigh=B,this.terrainVerticesLow=E,this.normalMapNormalsRaw=new Float32Array(P.length),this.normalMapNormalsRaw.set(P);let U=.5*(m-p),G=.5*(v-x),Y=.5*(w-y);this._plainRadius=Math.sqrt(U*U+G*G+Y*Y),this.plainReady=!0}_assignGlobalTextureCoordinates(){var e=this._extent;this._globalTextureCoordinates[0]=(e.southWest.lon+180)/360,this._globalTextureCoordinates[1]=(90-e.northEast.lat)/180,this._globalTextureCoordinates[2]=(e.northEast.lon+180)/360,this._globalTextureCoordinates[3]=(90-e.southWest.lat)/180}_collectVisibleNodes(){this._isNorth?this.planet._visibleNodesNorth[this.node.nodeId]=this.node:this.planet._visibleNodesSouth[this.node.nodeId]=this.node}isEntityInside(e){return this._extent.isInside(e._lonlat)}_getLayerExtentOffset(e){var A=e._extent,t=this._extent,i=A.northEast.lon-A.southWest.lon,r=A.northEast.lat-A.southWest.lat;return[(t.southWest.lon-A.southWest.lon)/i,(A.northEast.lat-t.northEast.lat)/r,(t.northEast.lon-t.southWest.lon)/i,(t.northEast.lat-t.southWest.lat)/r]}layerOverlap(e){return this._extent.overlaps(e._extent)}getDefaultTexture(){return this._isNorth?this.planet.solidTextureOne:this.planet.solidTextureTwo}getExtentLonLat(){return this._extent}getExtentMerc(){return this._extentMerc}getNodeState(){var e;return(e=this._isNorth?this.planet._visibleNodesNorth[this.node.nodeId]:this.planet._visibleNodesSouth[this.node.nodeId])&&e.state||0}_freeCache(){}}class fr{constructor(e=2){this._id=0,this._segments={},this._workerQueue=[];var A=new Blob([pr],{type:"application/javascript"});let t=this;for(let i=0;i<e;i++){let e=new Worker(URL.createObjectURL(A));e.onmessage=function(e){t._segments[e.data.id]._plainSegmentWorkerCallback(e.data),e.data.plainVertices=null,e.data.plainVerticesHigh=null,e.data.plainVerticesLow=null,e.data.plainNormals=null,e.data.normalMapNormals=null,e.data.normalMapVertices=null,e.data.normalMapVerticesHigh=null,e.data.normalMapVerticesLow=null,t._segments[e.data.id]=null,delete t._segments[e.data.id],t._workerQueue.unshift(this),t.check()},this._workerQueue.push(e)}this._pendingQueue=[]}check(){this._pendingQueue.length&&this.make(this._pendingQueue.pop())}setGeoid(e){let A=e.model,t={scale:A.scale,offset:A.offset,width:A.width,height:A.height,rlonres:A.rlonres,rlatres:A.rlatres,i:A.i};this._workerQueue.forEach((e=>{let i=new Uint8Array(A.rawfile.length);i.set(A.rawfile),e.postMessage({model:t,rawfile:i},[i.buffer])}))}make(e){if(e.initialized)if(this._workerQueue.length){let A=this._workerQueue.pop();this._segments[this._id]=e;let t=new Float64Array([this._id++,e._projection.id===Hi.id?1:0,e.planet.terrain.gridSizeByZoom[e.tileZoom],e.planet.terrain.plainGridSize,e._extent.southWest.lon,e._extent.southWest.lat,e._extent.northEast.lon,e._extent.northEast.lat,e.planet.ellipsoid._e2,e.planet.ellipsoid._a,e.planet.ellipsoid._invRadii2.x,e.planet.ellipsoid._invRadii2.y,e.planet.ellipsoid._invRadii2.z,e.planet._heightFactor]);A.postMessage({params:t},[t.buffer])}else this._pendingQueue.push(e);else this.check()}}const pr="\n 'use strict';\n\n let cached_ix = null;\n let cached_iy = null;\n let v00 = null;\n let v01 = null;\n let v10 = null;\n let v11 = null;\n let t = null;\n\n function rawval(ix, iy) {\n\n if (iy < 0) {\n iy = -iy;\n ix += model.width / 2;\n } else if (iy >= model.height) {\n iy = 2 * (model.height - 1) - iy;\n ix += model.width / 2;\n }\n\n if (ix < 0) {\n ix += model.width;\n } else if (ix >= model.width) {\n ix -= model.width;\n }\n\n var k = (iy * model.width + ix) * 2 + model.i;\n\n return (model.rawfile[k] << 8) | model.rawfile[k + 1];\n };\n\n function getHeightMSL(lon, lat) {\n\n if (!model) return 0;\n\n if (lon < 0) lon += 360.0;\n\n var fy = (90 - lat) * model.rlatres;\n var fx = lon * model.rlonres;\n var iy = Math.floor(fy);\n var ix = Math.floor(fx);\n\n fx -= ix;\n fy -= iy;\n\n if (iy === (model.height - 1)) {\n iy--;\n }\n\n if ((cached_ix !== ix) || (cached_iy !== iy)) {\n\n cached_ix = ix;\n cached_iy = iy;\n\n v00 = rawval(ix, iy);\n v01 = rawval(ix + 1, iy);\n v10 = rawval(ix, iy + 1);\n v11 = rawval(ix + 1, iy + 1);\n }\n\n let h = null;\n\n var a = (1 - fx) * v00 + fx * v01;\n var b = (1 - fx) * v10 + fx * v11;\n\n h = (1 - fy) * a + fy * b;\n\n return model.offset + model.scale * h;\n };\n\n let model = null;\n\n const HALF_PI = Math.PI * 0.5;\n const POLE = 20037508.34;\n const PI_BY_POLE = Math.PI / POLE;\n const INV_POLE_BY_180 = 180.0 / POLE;\n const INV_PI_BY_180 = 180.0 / Math.PI;\n const INV_PI_BY_180_HALF_PI = INV_PI_BY_180 * HALF_PI;\n const RADIANS = Math.PI / 180.0;\n const INV_PI_BY_360 = INV_PI_BY_180 * 2.0;\n\n let E2 = 0.0,\n A = 0.0;\n\n let _projFunc = null;\n\n const Vec3 = function (x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n };\n\n var lonLatToCartesian = function (lon, lat, heightFactor, res) {\n\n let h = getHeightMSL(lon, lat) * heightFactor;\n\n let latrad = RADIANS * lat,\n lonrad = RADIANS * lon;\n\n let slt = Math.sin(latrad);\n\n let N = A / Math.sqrt(1.0 - E2 * slt * slt);\n let nc = (N + h) * Math.cos(latrad); \n \n res.x = nc * Math.sin(lonrad);\n res.y = (N * (1.0 - E2) + h) * slt;\n res.z = nc * Math.cos(lonrad);\n };\n\n var lonLatToCartesianInverse = function (lon, lat, heightFactor, res){\n lonLatToCartesian(\n lon * INV_POLE_BY_180,\n INV_PI_BY_360 * Math.atan(Math.exp(lat * PI_BY_POLE)) - INV_PI_BY_180_HALF_PI,\n heightFactor,\n res);\n };\n\n var v = new Vec3(0.0, 0.0, 0.0);\n var _tempHigh = new Vec3(0.0, 0.0, 0.0);\n var _tempLow = new Vec3(0.0, 0.0, 0.0);\n\n var doubleToTwoFloats = function(v, high, low) {\n\n let x = v.x, y = v.y, z = v.z;\n \n if (x >= 0.0) {\n var doubleHigh = Math.floor(x / 65536.0) * 65536.0;\n high.x = Math.fround(doubleHigh);\n low.x = Math.fround(x - doubleHigh);\n } else {\n var doubleHigh = Math.floor(-x / 65536.0) * 65536.0;\n high.x = Math.fround(-doubleHigh);\n low.x = Math.fround(x + doubleHigh);\n }\n\n if (y >= 0.0) {\n var doubleHigh = Math.floor(y / 65536.0) * 65536.0;\n high.y = Math.fround(doubleHigh);\n low.y = Math.fround(y - doubleHigh);\n } else {\n var doubleHigh = Math.floor(-y / 65536.0) * 65536.0;\n high.y = Math.fround(-doubleHigh);\n low.y = Math.fround(y + doubleHigh);\n }\n\n if (z >= 0.0) {\n var doubleHigh = Math.floor(z / 65536.0) * 65536.0;\n high.z = Math.fround(doubleHigh);\n low.z = Math.fround(z - doubleHigh);\n } else {\n var doubleHigh = Math.floor(-z / 65536.0) * 65536.0;\n high.z = Math.fround(-doubleHigh);\n low.z = Math.fround(z + doubleHigh);\n }\n };\n\n self.onmessage = function (msg) {\n if(msg.data.model) {\n model = msg.data.model;\n model.rawfile = msg.data.rawfile;\n } else if(msg.data.params) {\n\n let xmin = 549755748352.0, xmax = -549755748352.0, \n ymin = 549755748352.0, ymax = -549755748352.0, \n zmin = 549755748352.0, zmax = -549755748352.0;\n\n E2 = msg.data.params[8];\n A = msg.data.params[9];\n\n let gridSize = msg.data.params[2],\n fgs = msg.data.params[3],\n r2_x = msg.data.params[10],\n r2_y = msg.data.params[11],\n r2_z = msg.data.params[12];\n\n let heightFactor = msg.data.params[13];\n \n if(msg.data.params[1] === 0.0){\n _projFunc = lonLatToCartesianInverse;\n }else{\n _projFunc = lonLatToCartesian;\n }\n\n let maxFgs = Math.max(fgs, gridSize);\n let llStep = (msg.data.params[6] - msg.data.params[4]) / maxFgs;\n let ltStep = (msg.data.params[7] - msg.data.params[5]) / maxFgs;\n\n let esw_lon = msg.data.params[4],\n ene_lat = msg.data.params[7];\n\n let dg = Math.max(fgs / gridSize, 1.0),\n gs = maxFgs + 1;\n \n const gsgs = gs * gs;\n\n const gridSize3 = (gridSize + 1) * (gridSize + 1) * 3;\n\n let plainNormals = new Float32Array(gridSize3);\n\n let plainVertices = new Float64Array(gridSize3);\n let plainVerticesHigh = new Float32Array(gridSize3);\n let plainVerticesLow = new Float32Array(gridSize3);\n\n let normalMapNormals = new Float32Array(gsgs * 3);\n\n let normalMapVertices = new Float64Array(gsgs * 3);\n let normalMapVerticesHigh = new Float32Array(gsgs * 3);\n let normalMapVerticesLow = new Float32Array(gsgs * 3);\n\n let ind = 0,\n nmInd = 0;\n\n for (let k = 0; k < gsgs; k++) {\n\n let j = k % gs,\n i = ~~(k / gs);\n\n _projFunc(esw_lon + j * llStep, ene_lat - i * ltStep, heightFactor, v);\n\n let nx = v.x * r2_x, ny = v.y * r2_y, nz = v.z * r2_z;\n let l = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz); \n let nxl = nx * l,\n nyl = ny * l,\n nzl = nz * l;\n\n doubleToTwoFloats(v, _tempHigh, _tempLow);\n\n normalMapVertices[nmInd] = v.x;\n normalMapVerticesHigh[nmInd] = _tempHigh.x;\n normalMapVerticesLow[nmInd] = _tempLow.x;\n normalMapNormals[nmInd++] = nxl;\n\n normalMapVertices[nmInd] = v.y;\n normalMapVerticesHigh[nmInd] = _tempHigh.y;\n normalMapVerticesLow[nmInd] = _tempLow.y;\n normalMapNormals[nmInd++] = nyl;\n\n normalMapVertices[nmInd] = v.z;\n normalMapVerticesHigh[nmInd] = _tempHigh.z;\n normalMapVerticesLow[nmInd] = _tempLow.z;\n normalMapNormals[nmInd++] = nzl;\n\n if (i % dg === 0 && j % dg === 0) {\n plainVertices[ind] = v.x;\n plainVerticesHigh[ind] = _tempHigh.x;\n plainVerticesLow[ind] = _tempLow.x;\n plainNormals[ind++] = nxl;\n\n plainVertices[ind] = v.y;\n plainVerticesHigh[ind] = _tempHigh.y;\n plainVerticesLow[ind] = _tempLow.y;\n plainNormals[ind++] = nyl;\n\n plainVertices[ind] = v.z;\n plainVerticesHigh[ind] = _tempHigh.z;\n plainVerticesLow[ind] = _tempLow.z;\n plainNormals[ind++] = nzl;\n\n if (v.x < xmin) xmin = v.x; if (v.x > xmax) xmax = v.x;\n if (v.y < ymin) ymin = v.y; if (v.y > ymax) ymax = v.y;\n if (v.z < zmin) zmin = v.z; if (v.z > zmax) zmax = v.z;\n }\n }\n\n let x = (xmax - xmin) * 0.5,\n y = (ymax - ymin) * 0.5,\n z = (zmax - zmin) * 0.5;\n\n let plainRadius = Math.sqrt(x * x + y * y + z * z);\n\n self.postMessage({\n id: msg.data.params[0],\n plainVertices: plainVertices,\n plainVerticesHigh: plainVerticesHigh,\n plainVerticesLow: plainVerticesLow,\n plainNormals: plainNormals,\n normalMapNormals: normalMapNormals,\n normalMapVertices: normalMapVertices,\n normalMapVerticesHigh: normalMapVerticesHigh,\n normalMapVerticesLow: normalMapVerticesLow,\n plainRadius: plainRadius\n }, [\n plainVertices.buffer,\n plainVerticesHigh.buffer,\n plainVerticesLow.buffer,\n plainNormals.buffer,\n normalMapNormals.buffer,\n normalMapVertices.buffer,\n normalMapVerticesHigh.buffer,\n normalMapVerticesLow.buffer\n ]);\n }\n }";class mr{constructor(e=2){this._id=0,this._segments={},this._workerQueue=[];var A=new Blob([xr],{type:"application/javascript"}),t=this;for(let r=0;r<e;r++){var i=new Worker(URL.createObjectURL(A));i.onmessage=function(e){t._segments[e.data.id]._terrainWorkerCallback(e.data),t._segments[e.data.id]=null,e.data.normalMapNormals=null,e.data.normalMapVertices=null,e.data.normalMapVerticesHigh=null,e.data.normalMapVerticesLow=null,e.data.terrainVertices=null,e.data.terrainVerticesHigh=null,e.data.terrainVerticesLow=null,delete t._segments[e.data.id],t._workerQueue.unshift(this),t.check()},this._workerQueue.push(i)}this._pendingQueue=[]}check(){if(this._pendingQueue.length){var e=this._pendingQueue.pop();this.make(e.segment,e.elevations)}}make(e,A){if(e.plainReady&&e.terrainIsLoading){var t=new Float32Array(A.length);if(t.set(A),this._workerQueue.length){var i=this._workerQueue.pop();this._segments[this._id]=e,i.postMessage({elevations:t,this_plainVertices:e.plainVertices,this_plainNormals:e.plainNormals,this_normalMapVertices:e.normalMapVertices,this_normalMapNormals:e.normalMapNormals,heightFactor:e.planet._heightFactor,gridSize:e.planet.terrain.gridSizeByZoom[e.tileZoom],noDataValues:e.planet.terrain.noDataValues,id:this._id++},[t.buffer,e.plainVertices.buffer,e.plainNormals.buffer,e.normalMapVertices.buffer,e.normalMapNormals.buffer])}else this._pendingQueue.push({segment:e,elevations:t})}else this.check()}}const xr="'use strict';\n //\n //Terrain worker\n //\n\n function binarySearchFast(arr, x) {\n let start = 0,\n end = arr.length - 1;\n while (start <= end) {\n let k = Math.floor((start + end) * 0.5); \n if (arr[k] === x)\n return k;\n else if (arr[k] < x)\n start = k + 1;\n else\n end = k - 1;\n }\n return -1;\n };\n\n function checkNoDataValue(noDataValues, value) {\n return binarySearchFast(noDataValues, value) !== -1;\n };\n\n\n var Vec3 = function(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n };\n\n var doubleToTwoFloats = function(v, high, low) {\n\n let x = v.x, y = v.y, z = v.z;\n \n if (x >= 0.0) {\n var doubleHigh = Math.floor(x / 65536.0) * 65536.0;\n high.x = Math.fround(doubleHigh);\n low.x = Math.fround(x - doubleHigh);\n } else {\n var doubleHigh = Math.floor(-x / 65536.0) * 65536.0;\n high.x = Math.fround(-doubleHigh);\n low.x = Math.fround(x + doubleHigh);\n }\n\n if (y >= 0.0) {\n var doubleHigh = Math.floor(y / 65536.0) * 65536.0;\n high.y = Math.fround(doubleHigh);\n low.y = Math.fround(y - doubleHigh);\n } else {\n var doubleHigh = Math.floor(-y / 65536.0) * 65536.0;\n high.y = Math.fround(-doubleHigh);\n low.y = Math.fround(y + doubleHigh);\n }\n\n if (z >= 0.0) {\n var doubleHigh = Math.floor(z / 65536.0) * 65536.0;\n high.z = Math.fround(doubleHigh);\n low.z = Math.fround(z - doubleHigh);\n } else {\n var doubleHigh = Math.floor(-z / 65536.0) * 65536.0;\n high.z = Math.fround(-doubleHigh);\n low.z = Math.fround(z + doubleHigh);\n }\n };\n\n Vec3.prototype.sub = function(v) {\n return new Vec3(this.x - v.x, this.y - v.y, this.z - v.z);\n };\n\n Vec3.prototype.add = function(v) {\n return new Vec3(this.x + v.x, this.y + v.y, this.z + v.z);\n };\n\n Vec3.prototype.cross = function(v) {\n return new Vec3(\n this.y * v.z - this.z * v.y,\n this.z * v.x - this.x * v.z,\n this.x * v.y - this.y * v.x\n );\n };\n\n Vec3.prototype.normalize = function(v) {\n var x = this.x, y = this.y, z = this.z;\n var length = 1.0 / Math.sqrt(x * x + y * y + z * z);\n this.x = x * length;\n this.y = y * length;\n this.z = z * length;\n return this;\n };\n\n Vec3.prototype.distance = function(v) {\n return this.sub(v).length();\n };\n\n Vec3.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n };\n\n var blerp = function(x, y, fQ11, fQ21, fQ12, fQ22) {\n return (fQ11 * (1.0 - x) * (1.0 - y) + fQ21 * x * (1.0 - y) + fQ12 * (1.0 - x) * y + fQ22 * x * y);\n };\n \n var slice = function (t, h1, h0) {\n return t * (h1 - h0);\n };\n\n var _tempVec = new Vec3(0.0, 0.0, 0.0);\n\n var _tempHigh = new Vec3(0.0, 0.0, 0.0),\n _tempLow = new Vec3(0.0, 0.0, 0.0);\n\n self.onmessage = function (e) {\n var elevations = e.data.elevations,\n this_plainVertices = e.data.this_plainVertices,\n this_plainNormals = e.data.this_plainNormals,\n this_normalMapVertices = e.data.this_normalMapVertices,\n this_normalMapNormals = e.data.this_normalMapNormals,\n heightFactor = e.data.heightFactor,\n gridSize = e.data.gridSize,\n noDataValues = e.data.noDataValues,\n id = e.data.id;\n \n var xmin = 549755748352.0, xmax = -549755748352.0, \n ymin = 549755748352.0, ymax = -549755748352.0, \n zmin = 549755748352.0, zmax = -549755748352.0;\n\n const fileGridSize = Math.sqrt(elevations.length) - 1;\n\n const fileGridSize_one = fileGridSize + 1;\n const fileGridSize_one_x2 = fileGridSize_one * fileGridSize_one;\n const tgs = gridSize;\n const dg = fileGridSize / tgs;\n const gs = tgs + 1;\n const hf = heightFactor;\n\n var nmvInd = 0,\n vInd = 0,\n noDataInd = 0;\n\n var gsgs3 = gs * gs * 3;\n\n var terrainVertices = new Float64Array(gsgs3),\n terrainVerticesHigh = new Float32Array(gsgs3),\n terrainVerticesLow = new Float32Array(gsgs3),\n noDataVertices = new Uint8Array(gs * gs);\n\n var normalMapNormals,\n normalMapVertices,\n normalMapVerticesHigh,\n normalMapVerticesLow;\n\n var nv = this_normalMapVertices,\n nn = this_normalMapNormals;\n\n if (fileGridSize >= tgs) {\n\n normalMapNormals = new Float32Array(fileGridSize_one_x2 * 3);\n normalMapVertices = new Float64Array(fileGridSize_one_x2 * 3);\n normalMapVerticesHigh = new Float32Array(fileGridSize_one_x2 * 3);\n normalMapVerticesLow = new Float32Array(fileGridSize_one_x2 * 3);\n\n for (var k = 0; k < fileGridSize_one_x2; k++) {\n\n var j = k % fileGridSize_one,\n i = ~~(k / fileGridSize_one);\n\n //\n // V0\n //\n var hInd0 = k;\n var vInd0 = hInd0 * 3;\n var currElv = elevations[hInd0];\n if(checkNoDataValue(noDataValues, currElv)) {\n currElv = 0.0;\n }\n var h0 = hf * currElv;\n var v0 = new Vec3(nv[vInd0] + h0 * nn[vInd0], nv[vInd0 + 1] + h0 * nn[vInd0 + 1], nv[vInd0 + 2] + h0 * nn[vInd0 + 2]);\n \n doubleToTwoFloats(v0, _tempHigh, _tempLow);\n\n normalMapVertices[vInd0] = v0.x;\n normalMapVertices[vInd0 + 1] = v0.y;\n normalMapVertices[vInd0 + 2] = v0.z;\n\n normalMapVerticesHigh[vInd0] = _tempHigh.x;\n normalMapVerticesHigh[vInd0 + 1] = _tempHigh.y;\n normalMapVerticesHigh[vInd0 + 2] = _tempHigh.z;\n\n normalMapVerticesLow[vInd0] = _tempLow.x;\n normalMapVerticesLow[vInd0 + 1] = _tempLow.y;\n normalMapVerticesLow[vInd0 + 2] = _tempLow.z;\n\n //\n // The vertex goes into screen buffer\n if (i % dg === 0 && j % dg === 0) {\n\n let currVert = new Vec3(nv[vInd0], nv[vInd0 + 1], nv[vInd0 + 2]);\n let nextVert = new Vec3(nv[vInd0 + 3], nv[vInd0 + 4], nv[vInd0 + 5]);\n\n let nextElv = elevations[hInd0 + 1];\n if(checkNoDataValue(noDataValues, nextElv)) {\n nextElv = 0.0;\n }\n \n let eps = false;\n if(noDataValues.length === 0){\n let step = currVert.distance(nextVert);\n let deltaElv = Math.abs(currElv - nextElv);\n eps = ((deltaElv / step) > 10.0) || (currElv < -5000);\n }\n\n if(eps){\n noDataVertices[noDataInd] = 1;\n } else {\n noDataVertices[noDataInd] = 0;\n if (v0.x < xmin) xmin = v0.x; if (v0.x > xmax) xmax = v0.x;\n if (v0.y < ymin) ymin = v0.y; if (v0.y > ymax) ymax = v0.y;\n if (v0.z < zmin) zmin = v0.z; if (v0.z > zmax) zmax = v0.z;\n }\n\n terrainVerticesHigh[vInd] = _tempHigh.x;\n terrainVerticesLow[vInd] = _tempLow.x;\n terrainVertices[vInd++] = v0.x;\n\n terrainVerticesHigh[vInd] = _tempHigh.y;\n terrainVerticesLow[vInd] = _tempLow.y;\n terrainVertices[vInd++] = v0.y;\n\n terrainVerticesHigh[vInd] = _tempHigh.z;\n terrainVerticesLow[vInd] = _tempLow.z;\n terrainVertices[vInd++] = v0.z;\n\n noDataInd++;\n }\n\n if (i !== fileGridSize && j !== fileGridSize) {\n\n //\n // V1\n //\n var hInd1 = k + 1;\n var vInd1 = hInd1 * 3;\n var elv = elevations[hInd1];\n if(checkNoDataValue(noDataValues, elv)) {\n elv = 0.0;\n }\n var h1 = hf * elv;\n var v1 = new Vec3(nv[vInd1] + h1 * nn[vInd1], nv[vInd1 + 1] + h1 * nn[vInd1 + 1], nv[vInd1 + 2] + h1 * nn[vInd1 + 2]);\n\n doubleToTwoFloats(v1, _tempHigh, _tempLow);\n\n normalMapVertices[vInd1] = v1.x;\n normalMapVertices[vInd1 + 1] = v1.y;\n normalMapVertices[vInd1 + 2] = v1.z;\n\n normalMapVerticesHigh[vInd1] = _tempHigh.x;\n normalMapVerticesHigh[vInd1 + 1] = _tempHigh.y;\n normalMapVerticesHigh[vInd1 + 2] = _tempHigh.z;\n\n normalMapVerticesLow[vInd1] = _tempLow.x;\n normalMapVerticesLow[vInd1 + 1] = _tempLow.y;\n normalMapVerticesLow[vInd1 + 2] = _tempLow.z;\n\n //\n // V2\n //\n var hInd2 = k + fileGridSize_one;\n var vInd2 = hInd2 * 3;\n var elv = elevations[hInd2];\n if(checkNoDataValue(noDataValues, elv)) {\n elv = 0.0;\n }\n var h2 = hf * elv;\n var v2 = new Vec3(nv[vInd2] + h2 * nn[vInd2], nv[vInd2 + 1] + h2 * nn[vInd2 + 1], nv[vInd2 + 2] + h2 * nn[vInd2 + 2]);\n\n doubleToTwoFloats(v2, _tempHigh, _tempLow);\n\n normalMapVertices[vInd2] = v2.x;\n normalMapVertices[vInd2 + 1] = v2.y;\n normalMapVertices[vInd2 + 2] = v2.z;\n\n normalMapVerticesHigh[vInd2] = _tempHigh.x;\n normalMapVerticesHigh[vInd2 + 1] = _tempHigh.y;\n normalMapVerticesHigh[vInd2 + 2] = _tempHigh.z;\n\n normalMapVerticesLow[vInd2] = _tempLow.x;\n normalMapVerticesLow[vInd2 + 1] = _tempLow.y;\n normalMapVerticesLow[vInd2 + 2] = _tempLow.z;\n\n //\n // V3\n //\n var hInd3 = k + fileGridSize_one + 1;\n var vInd3 = hInd3 * 3;\n var elv = elevations[hInd3];\n if(checkNoDataValue(noDataValues, elv)) {\n elv = 0.0;\n }\n var h3 = hf * elv;\n var v3 = new Vec3(nv[vInd3] + h3 * nn[vInd3], nv[vInd3 + 1] + h3 * nn[vInd3 + 1], nv[vInd3 + 2] + h3 * nn[vInd3 + 2]);\n\n doubleToTwoFloats(v3, _tempHigh, _tempLow);\n\n normalMapVertices[vInd3] = v3.x;\n normalMapVertices[vInd3 + 1] = v3.y;\n normalMapVertices[vInd3 + 2] = v3.z;\n\n normalMapVerticesHigh[vInd3] = _tempHigh.x;\n normalMapVerticesHigh[vInd3 + 1] = _tempHigh.y;\n normalMapVerticesHigh[vInd3 + 2] = _tempHigh.z;\n\n normalMapVerticesLow[vInd3] = _tempLow.x;\n normalMapVerticesLow[vInd3 + 1] = _tempLow.y;\n normalMapVerticesLow[vInd3 + 2] = _tempLow.z;\n\n //\n // Normal\n //\n var e10 = v1.sub(v0),\n e20 = v2.sub(v0),\n e30 = v3.sub(v0);\n var sw = e20.cross(e30).normalize();\n var ne = e30.cross(e10).normalize();\n var n0 = ne.add(sw).normalize();\n\n normalMapNormals[vInd0] += n0.x;\n normalMapNormals[vInd0 + 1] += n0.y;\n normalMapNormals[vInd0 + 2] += n0.z;\n\n normalMapNormals[vInd1] += ne.x;\n normalMapNormals[vInd1 + 1] += ne.y;\n normalMapNormals[vInd1 + 2] += ne.z;\n\n normalMapNormals[vInd2] += sw.x;\n normalMapNormals[vInd2 + 1] += sw.y;\n normalMapNormals[vInd2 + 2] += sw.z;\n\n normalMapNormals[vInd3] += n0.x;\n normalMapNormals[vInd3 + 1] += n0.y;\n normalMapNormals[vInd3 + 2] += n0.z;\n }\n }\n\n } else {\n\n normalMapNormals = new Float32Array(gsgs3);\n normalMapVertices = new Float64Array(gsgs3);\n normalMapVerticesHigh = new Float32Array(gsgs3);\n normalMapVerticesLow = new Float32Array(gsgs3);\n normalMapNormals = new Float32Array(gsgs3);\n\n var oneSize = tgs / fileGridSize;\n var h, inside_i, inside_j, v_i, v_j;\n var gsgs = gsgs3 / 3;\n var fgsOne = fileGridSize + 1;\n\n for(let i = 0; i < gsgs; i++) {\n let ii = Math.floor(i / gs),\n ij = i % gs;\n \n let qii = ii % oneSize,\n qij = ij % oneSize;\n\n let hlt_ind = Math.floor(ii / oneSize) * fgsOne + Math.floor(ij / oneSize);\n\n if (ij === tgs) {\n hlt_ind -= 1;\n qij = oneSize;\n }\n\n if (ii === tgs) {\n hlt_ind -= fgsOne;\n qii = oneSize;\n }\n\n let hrt_ind = hlt_ind + 1,\n hlb_ind = hlt_ind + fgsOne,\n hrb_ind = hlb_ind + 1;\n\n let h_lt = elevations[hlt_ind],\n h_rt = elevations[hrt_ind],\n h_lb = elevations[hlb_ind],\n h_rb = elevations[hrb_ind];\n\n if(checkNoDataValue(noDataValues, h_lt)) {\n h_lt = 0.0;\n }\n\n if(checkNoDataValue(noDataValues, h_rt)) {\n h_rt = 0.0;\n }\n\n if(checkNoDataValue(noDataValues, h_lb)) {\n h_lb = 0.0;\n }\n\n if(checkNoDataValue(noDataValues, h_rb)) {\n h_rb = 0.0;\n }\n\n let hi = blerp(qij / oneSize, qii / oneSize, h_lt, h_rt, h_lb, h_rb);\n\n let i3 = i * 3;\n\n _tempVec.x = this_plainVertices[i3] + hi * this_plainNormals[i3],\n _tempVec.y = this_plainVertices[i3 + 1] + hi * this_plainNormals[i3 + 1],\n _tempVec.z = this_plainVertices[i3 + 2] + hi * this_plainNormals[i3 + 2];\n\n doubleToTwoFloats(_tempVec, _tempHigh, _tempLow);\n\n terrainVertices[i3] = _tempVec.x;\n terrainVertices[i3 + 1] = _tempVec.y;\n terrainVertices[i3 + 2] = _tempVec.z;\n\n terrainVerticesHigh[i3] = _tempHigh.x;\n terrainVerticesHigh[i3 + 1] = _tempHigh.y;\n terrainVerticesHigh[i3 + 2] = _tempHigh.z;\n\n terrainVerticesLow[i3] = _tempLow.x;\n terrainVerticesLow[i3 + 1] = _tempLow.y;\n terrainVerticesLow[i3 + 2] = _tempLow.z;\n\n if (_tempVec.x < xmin) xmin = _tempVec.x; if (_tempVec.x > xmax) xmax = _tempVec.x;\n if (_tempVec.y < ymin) ymin = _tempVec.y; if (_tempVec.y > ymax) ymax = _tempVec.y;\n if (_tempVec.z < zmin) zmin = _tempVec.z; if (_tempVec.z > zmax) zmax = _tempVec.z;\n }\n\n normalMapVertices.set(terrainVertices);\n normalMapVerticesHigh.set(terrainVerticesHigh);\n normalMapVerticesLow.set(terrainVerticesLow);\n\n for(var k=0;k < gsgs; k++) {\n\n var j = k % gs,\n i = ~~(k / gs);\n\n if (i !== tgs && j !== tgs) {\n var v0ind = k * 3,\n v1ind = v0ind + 3,\n v2ind = v0ind + gs * 3,\n v3ind = v2ind + 3;\n\n\n var v0 = new Vec3(terrainVertices[v0ind], terrainVertices[v0ind + 1], terrainVertices[v0ind + 2]),\n v1 = new Vec3(terrainVertices[v1ind], terrainVertices[v1ind + 1], terrainVertices[v1ind + 2]),\n v2 = new Vec3(terrainVertices[v2ind], terrainVertices[v2ind + 1], terrainVertices[v2ind + 2]),\n v3 = new Vec3(terrainVertices[v3ind], terrainVertices[v3ind + 1], terrainVertices[v3ind + 2]);\n\n var e10 = v1.sub(v0).normalize(),\n e20 = v2.sub(v0).normalize(),\n e30 = v3.sub(v0).normalize();\n\n var sw = e20.cross(e30).normalize();\n var ne = e30.cross(e10).normalize();\n var n0 = ne.add(sw).normalize();\n\n normalMapNormals[v0ind] += n0.x;\n normalMapNormals[v0ind + 1] += n0.y;\n normalMapNormals[v0ind + 2] += n0.z;\n\n normalMapNormals[v1ind] += ne.x;\n normalMapNormals[v1ind + 1] += ne.y;\n normalMapNormals[v1ind + 2] += ne.z;\n\n normalMapNormals[v2ind] += sw.x;\n normalMapNormals[v2ind + 1] += sw.y;\n normalMapNormals[v2ind + 2] += sw.z;\n\n normalMapNormals[v3ind] += n0.x;\n normalMapNormals[v3ind + 1] += n0.y;\n normalMapNormals[v3ind + 2] += n0.z;\n }\n }\n }\n\n self.postMessage({\n id: id,\n normalMapNormals: normalMapNormals,\n normalMapVertices: normalMapVertices,\n normalMapVerticesHigh: normalMapVerticesHigh,\n normalMapVerticesLow: normalMapVerticesLow,\n terrainVertices: terrainVertices,\n terrainVerticesHigh: terrainVerticesHigh,\n terrainVerticesLow: terrainVerticesLow,\n noDataVertices: noDataVertices,\n //bounds: [xmin, xmax, ymin, ymax, zmin, zmax]\n bounds: [xmin, ymin, zmin, xmax, ymax, zmax]\n }, [\n normalMapNormals.buffer, \n normalMapVertices.buffer, \n normalMapVerticesHigh.buffer, \n normalMapVerticesLow.buffer, \n terrainVertices.buffer,\n terrainVerticesHigh.buffer,\n terrainVerticesLow.buffer,\n noDataVertices.buffer\n ]);\n }";let vr=new Float32Array(2);class yr{constructor(e,A,t,i){this._width=t||256,this._height=i||256,this._handler=e.renderer.handler,this._planet=e,this._framebuffer=null,this.MAX_FRAMES=A||5,this._currentFrame=0,this._queue=[],this._initialize()}_initialize(){this._handler.programs.vectorTileLineRasterization||this._handler.addProgram(new Mt("vectorTileLineRasterization",{uniforms:{viewport:"vec2",thicknessOutline:"float",alpha:"float",extentParamsHigh:"vec4",extentParamsLow:"vec4"},attributes:{prevHigh:"vec2",currentHigh:"vec2",nextHigh:"vec2",prevLow:"vec2",currentLow:"vec2",nextLow:"vec2",order:"float",color:"vec4",thickness:"float"},vertexShader:"attribute vec2 prevHigh;\n attribute vec2 currentHigh;\n attribute vec2 nextHigh;\n\n attribute vec2 prevLow;\n attribute vec2 currentLow;\n attribute vec2 nextLow;\n\n attribute float order;\n attribute float thickness;\n attribute vec4 color;\n uniform float thicknessOutline;\n uniform vec2 viewport;\n uniform vec4 extentParamsHigh;\n uniform vec4 extentParamsLow;\n varying vec4 vColor;\n \n vec2 proj(vec2 coordHigh, vec2 coordLow) {\n vec2 highDiff = coordHigh - extentParamsHigh.xy;\n vec2 lowDiff = coordLow - extentParamsLow.xy;\n return vec2(-1.0 + (highDiff + lowDiff) * extentParamsHigh.zw) * vec2(1.0, -1.0);\n }\n \n void main(){\n vColor = color;\n\n vec2 vNext = proj(nextHigh, nextLow),\n vCurrent = proj(currentHigh, currentLow),\n vPrev = proj(prevHigh, prevLow);\n\n vec2 _next = vNext;\n vec2 _prev = vPrev;\n vec2 _current = vCurrent;\n\n if(_prev == _current){\n if(_next == _current){\n _next = _current + vec2(1.0, 0.0);\n _prev = _current - _next;\n }else{\n _prev = _current + normalize(_current - _next);\n }\n }\n\n if(_next == _current){\n _next = _current + normalize(_current - _prev);\n }\n\n vec2 sNext = _next;\n vec2 sCurrent = _current;\n vec2 sPrev = _prev;\n \n vec2 dirNext = normalize(sNext - sCurrent);\n vec2 dirPrev = normalize(sPrev - sCurrent);\n float dotNP = dot(dirNext, dirPrev);\n \n vec2 normalNext = normalize(vec2(-dirNext.y, dirNext.x));\n vec2 normalPrev = normalize(vec2(dirPrev.y, -dirPrev.x));\n vec2 d = (thickness + thicknessOutline) * 0.5 * sign(order) / viewport;\n \n vec2 m;\n if(dotNP >= 0.99991){\n m = sCurrent - normalPrev * d;\n }else{\n vec2 dir = normalPrev + normalNext;\n m = sCurrent + dir * d / (dirNext.x * dir.y - dirNext.y * dir.x);\n \n if( dotNP > 0.5 && dot(dirNext + dirPrev, m - sCurrent) < 0.0 ){\n float occw = order * sign(dirNext.x * dirPrev.y - dirNext.y * dirPrev.x);\n if(occw == -1.0){\n m = sCurrent + normalPrev * d;\n }else if(occw == 1.0){\n m = sCurrent + normalNext * d;\n }else if(occw == -2.0){\n m = sCurrent + normalNext * d;\n }else if(occw == 2.0){\n m = sCurrent + normalPrev * d;\n }\n }else if(distance(sCurrent, m) > min(distance(sCurrent, sNext), distance(sCurrent, sPrev))){\n m = sCurrent + normalNext * d;\n }\n }\n gl_Position = vec4(m.x, m.y, 0.0, 1.0);\n }",fragmentShader:"precision highp float;\n uniform float alpha;\n varying vec4 vColor;\n void main() {\n gl_FragColor = vec4(vColor.rgb, alpha * vColor.a);\n }"})),this._handler.programs.vectorTilePolygonRasterization||this._handler.addProgram(new Mt("vectorTilePolygonRasterization",{uniforms:{extentParamsHigh:"vec4",extentParamsLow:"vec4"},attributes:{coordinatesHigh:"vec2",coordinatesLow:"vec2",colors:"vec4"},vertexShader:"attribute vec2 coordinatesHigh;\n attribute vec2 coordinatesLow; \n attribute vec4 colors; \n uniform vec4 extentParamsHigh; \n uniform vec4 extentParamsLow; \n varying vec4 color;\n\n vec2 proj(vec2 coordHigh, vec2 coordLow) {\n vec2 highDiff = coordHigh - extentParamsHigh.xy;\n vec2 lowDiff = coordLow - extentParamsLow.xy;\n return vec2(-1.0 + (highDiff + lowDiff) * extentParamsHigh.zw) * vec2(1.0, -1.0);\n }\n\n void main() { \n color = colors;\n gl_Position = vec4(proj(coordinatesHigh, coordinatesLow), 0.0, 1.0); \n }",fragmentShader:"precision highp float;\n varying vec4 color;\n void main () { \n gl_FragColor = color; \n }"})),this._framebuffer=new Ot(this._handler,{width:this._width,height:this._height,useDepth:!1}),this._framebuffer.init()}frame(){if(this._planet.layerLock.isFree()&&this._queue.length){var e=this._handler,A=e.gl;A.disable(A.CULL_FACE),A.disable(A.DEPTH_TEST),A.enable(A.BLEND),A.blendEquationSeparate(A.FUNC_ADD,A.FUNC_ADD),A.blendFuncSeparate(A.SRC_ALPHA,A.ONE_MINUS_SRC_ALPHA,A.ONE,A.ONE_MINUS_SRC_ALPHA);for(var t=e.programs.vectorTileLineRasterization,i=e.programs.vectorTilePolygonRasterization,r=this._width,n=this._height,s=r,a=n,o=s<<1,h=a<<1,l=null,d=null,c=new Float32Array(4),u=new Float32Array(4),g=this._framebuffer.activate(),f=0,p=window.performance.now();this._planet.layerLock.isFree()&&this._queue.length&&f<.25;){var m=this._queue.shift();if(m.isLoading&&1===m.segment.node.getState()){m.segment.tileZoom<=3?(s=o,a=h):(s=r,a=n),d=m._updateTexture&&m._updateTexture||e.createEmptyTexture_l(s,a),g.setSize(s,a),g.bindOutputTexture(d),A.clearColor(0,0,0,0),A.clear(A.COLOR_BUFFER_BIT);var x=m.segment.getExtentMerc();ft(x.southWest.lon,vr),c[0]=vr[0],u[0]=vr[1],ft(x.southWest.lat,vr),c[1]=vr[0],u[1]=vr[1],c[2]=2/x.getWidth(),c[3]=2/x.getHeight(),i.activate();var v=i._program,y=v.attributes,w=v.uniforms,C=m.layer._geometryHandler;A.uniform4fv(w.extentParamsHigh,c),A.uniform4fv(w.extentParamsLow,u),A.bindBuffer(A.ARRAY_BUFFER,C._polyVerticesHighBufferMerc),A.vertexAttribPointer(y.coordinatesHigh,C._polyVerticesHighBufferMerc.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ARRAY_BUFFER,C._polyVerticesLowBufferMerc),A.vertexAttribPointer(y.coordinatesLow,C._polyVerticesLowBufferMerc.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ARRAY_BUFFER,C._polyColorsBuffer),A.vertexAttribPointer(y.colors,C._polyColorsBuffer.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ELEMENT_ARRAY_BUFFER,C._polyIndexesBuffer),A.drawElements(A.TRIANGLES,C._polyIndexesBuffer.numItems,A.UNSIGNED_INT,0),m.layer._pickingEnabled&&(m.pickingReady?l=m.pickingMask:(l=m._updatePickingMask?m._updatePickingMask:e.createEmptyTexture_n(s,a),g.bindOutputTexture(l),A.clearColor(0,0,0,0),A.clear(A.COLOR_BUFFER_BIT),A.bindBuffer(A.ARRAY_BUFFER,C._polyPickingColorsBuffer),A.vertexAttribPointer(y.colors,C._polyPickingColorsBuffer.itemSize,A.FLOAT,!1,0,0),A.drawElements(A.TRIANGLES,C._polyIndexesBuffer.numItems,A.UNSIGNED_INT,0))),g.bindOutputTexture(d),t.activate(),y=(v=t._program).attributes,w=v.uniforms,A.uniform2fv(w.viewport,[s,a]),A.uniform4fv(w.extentParamsHigh,c),A.uniform4fv(w.extentParamsLow,u);var B=C._lineVerticesHighBufferMerc;A.bindBuffer(A.ARRAY_BUFFER,B),A.vertexAttribPointer(y.prevHigh,B.itemSize,A.FLOAT,!1,8,0),A.vertexAttribPointer(y.currentHigh,B.itemSize,A.FLOAT,!1,8,32),A.vertexAttribPointer(y.nextHigh,B.itemSize,A.FLOAT,!1,8,64),B=C._lineVerticesLowBufferMerc,A.bindBuffer(A.ARRAY_BUFFER,B),A.vertexAttribPointer(y.prevLow,B.itemSize,A.FLOAT,!1,8,0),A.vertexAttribPointer(y.currentLow,B.itemSize,A.FLOAT,!1,8,32),A.vertexAttribPointer(y.nextLow,B.itemSize,A.FLOAT,!1,8,64),A.bindBuffer(A.ARRAY_BUFFER,C._lineOrdersBuffer),A.vertexAttribPointer(y.order,C._lineOrdersBuffer.itemSize,A.FLOAT,!1,4,0),A.bindBuffer(A.ELEMENT_ARRAY_BUFFER,C._lineIndexesBuffer),A.bindBuffer(A.ARRAY_BUFFER,C._lineStrokesBuffer),A.vertexAttribPointer(y.thickness,C._lineStrokesBuffer.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ARRAY_BUFFER,C._lineStrokeColorsBuffer),A.vertexAttribPointer(y.color,C._lineStrokeColorsBuffer.itemSize,A.FLOAT,!1,0,0),A.uniform1f(w.thicknessOutline,2),A.uniform1f(w.alpha,.54),A.drawElements(A.TRIANGLE_STRIP,C._lineIndexesBuffer.numItems,A.UNSIGNED_INT,0),A.uniform1f(w.thicknessOutline,1),A.uniform1f(w.alpha,1),A.drawElements(A.TRIANGLE_STRIP,C._lineIndexesBuffer.numItems,A.UNSIGNED_INT,0),A.bindBuffer(A.ARRAY_BUFFER,C._lineThicknessBuffer),A.vertexAttribPointer(y.thickness,C._lineThicknessBuffer.itemSize,A.FLOAT,!1,0,0),A.bindBuffer(A.ARRAY_BUFFER,C._lineColorsBuffer),A.vertexAttribPointer(y.color,C._lineColorsBuffer.itemSize,A.FLOAT,!1,0,0),A.uniform1f(w.thicknessOutline,2),A.uniform1f(w.alpha,.54),A.drawElements(A.TRIANGLE_STRIP,C._lineIndexesBuffer.numItems,A.UNSIGNED_INT,0),A.uniform1f(w.thicknessOutline,1),A.uniform1f(w.alpha,1),A.drawElements(A.TRIANGLE_STRIP,C._lineIndexesBuffer.numItems,A.UNSIGNED_INT,0),m.layer._pickingEnabled&&!m.pickingReady&&(g.bindOutputTexture(l),A.uniform1f(w.thicknessOutline,8),A.bindBuffer(A.ARRAY_BUFFER,C._linePickingColorsBuffer),A.vertexAttribPointer(y.color,C._linePickingColorsBuffer.itemSize,A.FLOAT,!1,0,0),A.drawElements(A.TRIANGLE_STRIP,C._lineIndexesBuffer.numItems,A.UNSIGNED_INT,0)),m.applyTexture(d,l)}else m.isLoading=!1;f=window.performance.now()-p}A.disable(A.BLEND),A.enable(A.DEPTH_TEST),A.enable(A.CULL_FACE),g.deactivate()}}add(e){this._queue.push(e)}remove(e){}}class wr{constructor(e,A){this._a=e,this._b=A,this._flattening=(e-A)/e,this._f=1/this._flattening,this._a2=e*e,this._b2=A*A;var t=Math.sqrt(this._a2-this._b2);this._e=t/e,this._e2=this._e*this._e,this._e22=this._e2*this._e2,this._k=t/A,this._k2=this._k*this._k,this._radii=new le(e,A,e),this._radii2=new le(this._a2,this._b2,this._a2),this._invRadii=new le(1/e,1/A,1/e),this._invRadii2=new le(1/this._a2,1/this._b2,1/this._a2)}static getRelativeBearing(e,A){let t=Math.cos(e),i=Math.sin(e),r=Math.cos(A),n=Math.sin(A),s=i*n+t*r;return t*n-r*i>0?Math.acos(s):-Math.acos(s)}static getMiddlePointOnGreatCircle(e,A){var t=e.lat*c,i=e.lon*c,r=A.lat*c,n=(A.lon-e.lon)*c,s=Math.cos(r)*Math.cos(n),a=Math.cos(r)*Math.sin(n),o=Math.sqrt((Math.cos(t)+s)*(Math.cos(t)+s)+a*a),h=Math.sin(t)+Math.sin(r),l=Math.atan2(h,o),d=i+Math.atan2(a,Math.cos(t)+s);return new F((d*u+540)%360-180,l*u)}static getIntermediatePointOnGreatCircle(e,A,t){var i=e.lat*c,r=e.lon*c,n=A.lat*c,s=A.lon*c,a=Math.sin(i),o=Math.cos(i),h=Math.sin(r),l=Math.cos(r),d=Math.sin(n),g=Math.cos(n),f=Math.sin(s),p=Math.cos(s),m=n-i,x=s-r,v=Math.sin(m/2)*Math.sin(m/2)+Math.cos(i)*Math.cos(n)*Math.sin(x/2)*Math.sin(x/2),y=2*Math.atan2(Math.sqrt(v),Math.sqrt(1-v)),w=Math.sin((1-t)*y)/Math.sin(y),C=Math.sin(t*y)/Math.sin(y),B=w*o*l+C*g*p,E=w*o*h+C*g*f,T=w*a+C*d,b=Math.atan2(T,Math.sqrt(B*B+E*E)),I=Math.atan2(E,B);return new F((I*u+540)%360-180,b*u)}static getRhumbBearing(e,A){var t=(A.lon-e.lon)*c,i=Math.log(Math.tan(A.lat*c/2+Math.PI/4)/Math.tan(e.lat*c/2+Math.PI/4));return Math.abs(t)>Math.PI&&(t=t>0?-1*(2*Math.PI-t):2*Math.PI+t),(Math.atan2(t,i)*u+360)%360}static getBearing(e,A){var t=e.lat*c,i=e.lon*c,r=A.lat*c,n=A.lon*c,s=Math.sin(n-i)*Math.cos(r),a=Math.cos(t)*Math.sin(r)-Math.sin(t)*Math.cos(r)*Math.cos(n-i);return Math.atan2(s,a)*u}static getInitialBearing(e,A){var t=e.lat*c,i=A.lat*c,r=(A.lon-e.lon)*c,n=Math.sin(r)*Math.cos(i),s=Math.cos(t)*Math.sin(i)-Math.sin(t)*Math.cos(i)*Math.cos(r);return(Math.atan2(n,s)*u+360)%360}static intersection(e,A,t,i){var r=e.lat*c,n=e.lon*c,s=t.lat*c,a=t.lon*c,o=A*c,h=i*c,l=s-r,d=a-n,g=2*Math.asin(Math.sqrt(Math.sin(l/2)*Math.sin(l/2)+Math.cos(r)*Math.cos(s)*Math.sin(d/2)*Math.sin(d/2)));if(0==g)return null;var f=Math.acos((Math.sin(s)-Math.sin(r)*Math.cos(g))/(Math.sin(g)*Math.cos(r)));isNaN(f)&&(f=0);var p=Math.acos((Math.sin(r)-Math.sin(s)*Math.cos(g))/(Math.sin(g)*Math.cos(s))),m=Math.sin(a-n)>0?f:2*Math.PI-f,x=Math.sin(a-n)>0?2*Math.PI-p:p,v=(o-m+Math.PI)%(2*Math.PI)-Math.PI,y=(x-h+Math.PI)%(2*Math.PI)-Math.PI;if(0==Math.sin(v)&&0==Math.sin(y))return null;if(Math.sin(v)*Math.sin(y)<0)return null;var w=Math.acos(-Math.cos(v)*Math.cos(y)+Math.sin(v)*Math.sin(y)*Math.cos(g)),C=Math.atan2(Math.sin(g)*Math.sin(v)*Math.sin(y),Math.cos(y)+Math.cos(v)*Math.cos(w)),B=Math.asin(Math.sin(r)*Math.cos(C)+Math.cos(r)*Math.sin(C)*Math.cos(o)),E=Math.atan2(Math.sin(o)*Math.sin(C)*Math.cos(r),Math.cos(C)-Math.sin(r)*Math.sin(B));return new F(((n+E)*u+540)%360-180,B*u)}static getFinalBearing(e,A){return(wr.getInitialBearing(A,e)+180)%360}getEquatorialSize(){return this._a}getPolarSize(){return this._b}lonLatToCartesian(e){var A=c*e.lat,t=c*e.lon,i=Math.sin(A),r=this._a/Math.sqrt(1-this._e2*i*i),n=(r+e.height)*Math.cos(A);return new le(n*Math.sin(t),(r*(1-this._e2)+e.height)*i,n*Math.cos(t))}lonLatToCartesianRes(e,A){var t=c*e.lat,i=c*e.lon,r=Math.sin(t),n=this._a/Math.sqrt(1-this._e2*r*r),s=(n+e.height)*Math.cos(t);return A.x=s*Math.sin(i),A.y=(n*(1-this._e2)+e.height)*r,A.z=s*Math.cos(i),A}geodeticToCartesian(e,A,t=0){var i=c*A,r=c*e,n=Math.sin(i),s=this._a/Math.sqrt(1-this._e2*n*n),a=(s+t)*Math.cos(i);return new le(a*Math.sin(r),(s*(1-this._e2)+t)*n,a*Math.cos(r))}cartesianToLonLat(e){var A=e.z,t=e.x,i=e.y,r=this._e2,n=this._e22,s=A*A+t*t,a=Math.sqrt(s),o=i*i,h=54*this._b2*o,l=s+(1-r)*o+r*(this._a2-this._b2),d=l*l,c=n*h*s/(d*l),g=Math.pow(1+c+Math.sqrt(c*(c+2)),.3333333333333333),f=h/(3*Math.pow(1+g+1/g,2)*d),p=Math.sqrt(1+2*n*f),m=a-r*(-f*r*a/1+p+Math.sqrt(.5*this._a2*(1+1/p)-f*(1-r)*o/(p*(1+p))-.5*f*s)),x=m*m,v=Math.sqrt(x+(1-r)*o),y=this._b2*i/(this._a*v),w=Math.atan((i+this._k2*y)/a)*u,C=Math.atan2(t,A)*u;return new F(C,w,e.length()-this.geodeticToCartesian(C,w).length())}getSurfaceNormal3v(e){var A=this._invRadii2,t=e.x*A.x,i=e.y*A.y,r=e.z*A.z,n=1/Math.sqrt(t*t+i*i+r*r);return new le(t*n,i*n,r*n)}getBearingDestination(e,A,t){A*=c;var i=(e.lon+540)%360-180,r=e.lat*c,n=i*c,s=t/this._a,a=Math.asin(Math.sin(r)*Math.cos(s)+Math.cos(r)*Math.sin(s)*Math.cos(A));return new F((n+Math.atan2(Math.sin(A)*Math.sin(s)*Math.cos(r),Math.cos(s)-Math.sin(r)*Math.sin(a)))*u,a*u)}getGreatCircleDistance(e,A){var t=(A.lat-e.lat)*c,i=(A.lon-e.lon)*c,r=Math.sin(t/2)*Math.sin(t/2)+Math.sin(i/2)*Math.sin(i/2)*Math.cos(e.lat*c)*Math.cos(A.lat*c);return 2*this._a*Math.atan2(Math.sqrt(r),Math.sqrt(1-r))}getGreatCircleDestination(e,A,t){for(var i=e.lon,r=e.lat,n=this._a,s=this._b,a=1/this._f,o=t,h=A*c,l=Math.sin(h),d=Math.cos(h),g=(1-a)*Math.tan(r*c),f=1/Math.sqrt(1+g*g),p=g*f,m=Math.atan2(g,d),x=f*l,v=1-x*x,y=v*(n*n-s*s)/(s*s),w=1+y/16384*(4096+y*(y*(320-175*y)-768)),C=y/1024*(256+y*(y*(74-47*y)-128)),B=o/(s*w),E=2*Math.PI;Math.abs(B-E)>1e-12;){var T=Math.cos(2*m+B),b=Math.sin(B),I=Math.cos(B);E=B,B=o/(s*w)+C*b*(T+C/4*(I*(2*T*T-1)-C/6*T*(4*b*b-3)*(4*T*T-3)))}var M=p*b-f*I*d,P=Math.atan2(p*I+f*b*d,(1-a)*Math.sqrt(x*x+M*M)),D=Math.atan2(b*l,f*I-p*b*d),L=a/16*v*(4+a*(4-3*v));return new F(i+(D-(1-L)*a*x*(B+L*b*(T+L*I*(2*T*T-1))))*u,P*u)}hitRay(e,A){var t,i,r,n,s,a=this._invRadii.mul(e),o=this._invRadii.mul(A),h=a.dot(a),l=a.dot(o);if(h>1){if(l>=0)return null;var d=l*l;if(t=h-1,d<(r=(i=o.dot(o))*t))return null;if(d>r){n=l*l-r;var c=(s=-l+Math.sqrt(n))/i,u=t/s;return c<u?e.add(A.scaleTo(c)):e.add(A.scaleTo(u))}var g=Math.sqrt(t/i);return e.add(A.scaleTo(g))}return h<1?(t=h-1,n=l*l-(r=(i=o.dot(o))*t),s=-l+Math.sqrt(n),e.add(A.scaleTo(s/i))):l<0?(i=o.dot(o),e.add(A.scaleTo(-l/i))):null}}const Cr=new wr(6378137,6356752.3142),Br="data:image/png;base64,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",Er=ke("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/wgALCAgACAABAREA/8QAHAABAAIDAQEBAAAAAAAAAAAAAAEDAgQFBgcI/9oACAEBAAAAAPysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmAAAAAAAAAAAAAAAAAAAAAAAiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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"),Tr=ke("data:image/jpeg;base64,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AAAAAAAAAAAAAAAAAAAAAAAA5ycMMcZErHeTOGeAAAAAAAABrJhzfgAAAAAAAAAAAACkVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiTk4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhTkJYnRzfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUCkXgAAAAAAAAAAAABITgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFImJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1LoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDFGRKoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABii8LkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkG6kwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIYsxpsZWIEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWBdExq5rRTOqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxZYnJDXztBuJUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOSmQOUmgnp0y5tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKcxOHGunSj0yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWxxw7KVyBE1o2QiAAAAAAAAACwL8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE1Y4ac9B6EOvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFMx5kiYAAAAAAAAkMaZUAAFkXpgDx2dXOgHEzoRxc7Sd1ABrJizegADVjaQACiVgcxNiNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMYcDOXEhmT2IVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGHAzl5TN3PR5nQAAAAAAAY88wHoYonIjTD1wVy1InNjzcAADInok3svjnh5hJz0MbSbeCU4GdXOHG2HYi6PORYFsYoyp143suyIAAIEQAAAY0yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzEtzgZjgbgerCuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADSi2PLhKAdwO2lYgRAAAAAABwc4uTFIHVzAmrkS1LcAAAF4dlOPmOAKx6TJDFnGzYzRy2OkHcjgxz4AAnN3NzN9MqaibwZoAAAAFIlK4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjTgBrRqQAPYpngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYo5oSnDy0KIAM4dkNnNkMabSRAAAABSPLBpAAAAAAAAAAAAAAAAAAAAABVN3PSpkgAAAAAYkywAAABblwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgYY89mgAA9Wm7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwxzI44YkiUgAAACoSGQNxMwbidYAABqRyU5GAAAAAAAAAAAAAAAAAAAAAATnWzdzpwAAAAAAAAABbFyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUHnU5QADInssrgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAolAvQAcjOEGPAAAAAAAABtZ60KgANAPLxIAAAAAAAAAAAAAAAAAAAAAAADeTcDKl0THWQAAAAAAAC2LkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGHODHdQeVTBAA389REwAAAAAAAAAAAAAAAAAAAOUnTS5AAAAAAAAABYmINNOXnpIyoPPByMAAAAAAAAAAzB6BOlAgedDlAAAAAAAAAAAAAAAAAAAAAAAAAABE7Yb0b0TAAAAAAAtS6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrJsxyc88ncjQzRAAD2qXwAAAAAAAAAAAAAAAAAAAB59OwmwgAAAwhwU9HlYAAAFieUi/NzOKm/naTczyaasAAAAAAAAAACsenzlRYnPyUAAAAAAAAAAAAAAAAAAAAAAAAAAAqmyncDpIAAAAABal0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUjzsc8LEpmyFAwQAL09rAAAAAAAAAAAAAAAAAAAAHOzzadWNvOmFoQNRLk1IzJxg00zZMdQLo6mZIqGsnOzlRrwABE6Qc2AAAAAAAAAAABeFmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6PXxmwAAAAAW5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsjyAYgAAAGznrwAAAAAAAAAAAAAAAAAGjmbNINUMIc+LcAmKhljBkxKAAAC4L02c0ooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaOjnYiYyReAAAAkJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc8OanKQAAAZI9nE4AAAAAAAAAAAAAAABTOeHmUrFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXBIbQeoDLAAAFoXYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOPnJTVgAAAD2UZkAAAAAAAAAAAAAAAA4scFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM0elDZTIAAFkXoAAAAAAAAAAAAAAAAAAAAAAAAAABjzHFwWJemaAAAAAABwk4kAAAAD1mbgAAAAAAAAAAAAAAASGCPL5rgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKp3g7MAAWJfAAAAAAAAAAAAAAAAAAAAAAAAAAA1U80muAG7nqwAAAAAAA004uc2AAAB6hOhAAAAAAAAAAAAAAA1o8zmDLUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2E9aF8AAY8yAAAAAAAAAAAAAAAAAAAAAAAAAJCcA54eXwAbibkTlkcvLc74dmBZl4CQ42amd/MocbOAAAAA9NnSAAAAAAAAAAAAAAc8OdGiGvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXPYxWAALIvQAAAAAAAAAAAAAAAAAASluXQAAAAABjjjZxEAAAAG0m8k5yI2EzxtxoRo5cnbDHnGgAAAd/OyAAAAAAAAAAAAAFI8pmmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHos6wAADHmQAAAAAAAAAAAAAAAAAABzY8+Hpc2wuQAAAc1OlAx5McxOBloAAAAAACc2o1IExKAAAC7PYJlwAAAAAAAAAAAADSTykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPnWzczdgAAY8yAAAAAAAAAAAAAAAAAAKBzE4CY8FY3o6UbKRJDNmbB41PR5vYB5mOagAAAAAAAAAAAAA3o9UgAAAAAAAAAAAAA83HLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/PWRsQAAAMcZEAAAAAAAAAAAAAAAAsSgaAcDMYAAAATmZNzOmnOSBs5v5tBy883kgAAAAAAAAAAAAB0o9MgAAAAAAAAAAAA1g81GskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD02dDKoAAAMcZEAAAAAAAAAAAAAAxxdnNDQjSTDlAAAAAAAGVO7HCzEHqg3s5oeZwAAAAAAAAAAAACJ6eOiAAAAAAAAAAAAFmePDFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2M7+dBAAAAMcZEAAAAAAAAAAAAAGiHlo3E0sAAAAAAAAAArG2mVOpnmQAAAAAAAAAAAAArHp438AAAAAAAAAAAA108gEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPRR1kAAAAGOMiAAAAAAAAAAAAAWhxU4iAAAAAAAAAAAC4LcAAAAAAAAAAAAAAFU9CnWCIAAAAAAAAAAObHDDWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXhv56LL0AAAAx5kAAAAAAAAAAAAaSacchMSW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAOyHeyoAAAAAAAAACU8dGDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwPVJOVwAAADGmSAAAAAAAAAABYFc87nLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdtO7AAAAAAAAAA0s8okAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADph6XAJCcAAAxxkQAAAAAAAACyOEGQOXFoXZgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATndzs5MAAAAAAACU4ecZLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRz04AAAAAY4yIAAAAAAAAAOTnnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHSz0gXAAAAAAABwc4oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADfT1MAAAAAY0yJEAAAAAAHLzSToJeGznjwsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcTrR1IrAAAAAFgctPPxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQT0+TlIqgAAAxheFcAAAAAAHmE50AbQauAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADpp6EMkAAAAYk8rGuEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeqTejhpu5ljkR0s3ArgGNLouAAAAAAQMCeXzWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPnrAygMOaudAAB5LNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2Q7+eaTmREgDOnTDoBvRjC7LgAAAAAxJ5lNRJSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVPSZenEDSDrRnScrHnUpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAujZDEGIAABUPTJuJoJvxdFcqAAAHJzi5rgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMiWxbgAE5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZU6GcnLoiZAvzKl+UiqDLnOzXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATnQjpZsRUB5JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABE2U6SdAPKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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");
|
|
2
|
+
/* This file is mostly a straight translation of
|
|
3
|
+
* GeographicLib/src/Geoid.cpp from C++ to JavaScript
|
|
4
|
+
* by Kim Vandry <vandry@TZoNE.ORG>
|
|
5
|
+
*
|
|
6
|
+
* @license
|
|
7
|
+
* **
|
|
8
|
+
* * \file Geoid.cpp
|
|
9
|
+
* * \brief Implementation for GeographicLib::Geoid class
|
|
10
|
+
* *
|
|
11
|
+
* * Copyright (c) Charles Karney (2009) <charles@karney.com>
|
|
12
|
+
* * and licensed under the LGPL. For more information, see
|
|
13
|
+
* * http://geographiclib.sourceforge.net/
|
|
14
|
+
* **********************************************************************
|
|
15
|
+
*
|
|
16
|
+
* Geoid height grade not supported
|
|
17
|
+
* The files can be downloaded from here:
|
|
18
|
+
* http://geographiclib.sourceforge.net/1.18/geoid.html
|
|
19
|
+
*/
|
|
20
|
+
class br{constructor(e={}){this.model=e.model||null,this.src=e.src||null,this._cached_ix=null,this._cached_iy=null,this._v00=null,this._v01=null,this._v10=null,this._v11=null,this._t=null}static loadModel(e){return fetch(e,{}).then((e=>{if(!e.ok)throw Error("Geoid model file: HTTP error "+e.status);return e.arrayBuffer()})).then((A=>{if(A)return new Uint8Array(A);throw Error("Geoid model file: no data from "+e)})).then((function(e){if(80!==e[0]||53!==e[1]||(13!==e[2]||10!==e[3])&&10!==e[2])throw new Error("Geoid model file: no PGM header");var A,t,i=13===e[2]?4:3,r=null,n=null;function s(){for(var A=i,t=i;;t++){if(t>=e.length)throw new Error("Geoid model file: missing newline in header");if(10===e[t]){i=t+1;break}}return t>A&&13===e[t-1]&&t--,String.fromCharCode.apply(null,e.slice(A,t))}for(;"#"===(t=s())[0];)if(A=t.match(/^# Offset (.*)$/)){if(r=parseInt(A[1],10),!isFinite(r))throw new Error("Geoid model file: bad offset "+A[1])}else if((A=t.match(/^# Scale (.*)$/))&&(n=parseFloat(A[1]),!isFinite(n)))throw new Error("Geoid model file: bad scale "+A[1]);var a=null,o=null;if((A=t.match(/^\s*(\d+)\s+(\d+)\s*$/))&&(a=parseInt(A[1],10),o=parseInt(A[2],10)),!(A&&a>=0&&o>=0))throw new Error("Geoid model file: bad PGM width&height line");if(65535!=parseInt(s()))throw new Error("Geoid model file: PGM file must have 65535 gray levels");if(null===r)throw new Error("Geoid model file: PGM file does not contain offset");if(null===n)throw new Error("Geoid model file: PGM file does not contain scale");if(a<2||o<2)throw new Error("Geoid model file: Raster size too small");if(e.length-i!==a*o*2)throw new Error("Geoid model file: File has the wrong length");return{scale:n,offset:r,width:a,height:o,rlonres:a/360,rlatres:(o-1)/180,i:i,rawfile:e}}))}setModel(e){this.model=e}_rawval(e,A){let t=this.model;A<0?(A=-A,e+=t.width/2):A>=t.height&&(A=2*(t.height-1)-A,e+=t.width/2),e<0?e+=t.width:e>=t.width&&(e-=t.width);var i=2*(A*t.width+e)+t.i;return t.rawfile[i]<<8|t.rawfile[i+1]}getHeightLonLat(e){return this.getHeight(e.lon,e.lat)}getHeight(e,A){if(!this.model)return 0;let t=this.model;e<0&&(e+=360);var i=(90-A)*t.rlatres,r=e*t.rlonres,n=Math.floor(i),s=Math.floor(r);r-=s,i-=n,n===t.height-1&&n--,this._cached_ix===s&&this._cached_iy===n||(this._cached_ix=s,this._cached_iy=n,this._v00=this._rawval(s,n),this._v01=this._rawval(s+1,n),this._v10=this._rawval(s,n+1),this._v11=this._rawval(s+1,n+1));let a=null;return a=(1-i)*((1-r)*this._v00+r*this._v01)+i*((1-r)*this._v10+r*this._v11),t.offset+t.scale*a}}let Ir=new Uint8Array(4),Mr=new Uint8Array(4);const Pr=["draw","layeradd","baselayerchange","layerremove","layervisibilitychange","rendercompleted"];class Dr extends Zi{constructor(e={}){super(e.name),this._cameraFrustums=e.frustums||[[1,100.075],[100,1000.075],[1e3,101e4],[1e6,1e9]],this.ellipsoid=e.ellipsoid||Cr,this.lightEnabled=!0,this._planetRadius2=this.ellipsoid.getPolarSize()*this.ellipsoid.getPolarSize(),this.layers=[],this.visibleTileLayers=[],this.visibleVectorLayers=[],this._visibleTileLayerSlices=[],this._frustumEntityCollections=[],this.baseLayer=null,this.terrain=null,this.camera=null,this._minAltitude=e.minAltitude,this._maxAltitude=e.maxAltitude,this.maxEqualZoomAltitude=e.maxEqualZoomAltitude||15e6,this.minEqualZoomAltitude=e.minEqualZoomAltitude||1e4,this.minEqualZoomCameraSlope=e.minEqualZoomCameraSlope||.8,this.mousePositionOnEarth=new le,this.emptyTexture=null,this.transparentTexture=null,this.defaultTexture=null,this.minCurrZoom=l,this.maxCurrZoom=d,this._viewExtent=null,this._createdNodesCount=0,this._renderedNodes=[],this._renderedNodesInFrustum=[],this._quadTreeNodesCacheMerc={},this._visibleNodes={},this._visibleNodesNorth={},this._visibleNodesSouth={},this.layerLock=new SA,this.terrainLock=new SA,this._tcolorArr=[],this._heightFactor=1,this._indexesCache=[],this._indexesCacheToRemove=[],this._indexesCacheToRemoveCounter=0,this._textureCoordsBufferCache=[],this._heightPickingFramebuffer=null,this._quadTree=null,this._quadTreeNorth=null,this._quadTreeSouth=null,this._nightTexture=null,this._specularTexture=null;let A=be(e.ambient,new le(.2,.2,.2)),t=be(e.diffuse,new le(.8,.8,.8)),i=be(e.specular,new le(3e-4,3e-4,3e-4)),r=e.shininess||20;this._ambient=new Float32Array([A.x,A.y,A.z]),this._diffuse=new Float32Array([t.x,t.y,t.z]),this._specular=new Float32Array([i.x,i.y,i.z,r]),this._useNightTexture=!!Ve(e.useNightTexture)||e.useNightTexture,this._useSpecularTexture=!!Ve(e.useSpecularTexture)||e.useSpecularTexture,this._maxGridSize=Math.log2(e.maxGridSize||128),this.SLICE_SIZE=4,this.SLICE_SIZE_4=4*this.SLICE_SIZE,this.SLICE_SIZE_3=3*this.SLICE_SIZE,this._lodSize=250,this._curLodSize=250,this._minLodSize=312,this._maxLodSize=190,this._pickingColorArr=new Float32Array(this.SLICE_SIZE_4),this._samplerArr=new Int32Array(this.SLICE_SIZE),this._pickingMaskArr=new Int32Array(this.SLICE_SIZE),this._geoImageCreator=null,this._vectorTileCreator=null,this._normalMapCreator=null,this._terrainWorker=new mr(3),this._plainSegmentWorker=new fr(4),this._tileLoader=new Li(e.loadingBatchSize||12),this._memKey=new RA,this.events.registerNames(Pr),this._distBeforeMemClear=0,this._prevCamEye=new le,this._initialized=!1,this.always=[],this._renderCompleted=!1}static getBearingNorthRotationQuat(e){let A=e.normal(),t=le.proj_b_to_plane(le.UNIT_Y,A);return he.getLookRotation(t,A)}addControl(e){e.planet=this,e.addTo(this.renderer)}get lodSize(){return this._lodSize}setLodSize(e,A,t){this._maxLodSize=t||this._maxLodSize,this._minLodSize=A||this._minLodSize,this._curLodSize=e||this._curLodSize,this._renderCompletedActivated=!1}addControls(e){for(var A=0;A<e.length;A++)this.addControl(e[A])}getLayerByName(e){for(var A=this.layers.length;A--;)if(this.layers[A].name===e)return this.layers[A]}addLayer(e){e.addTo(this)}_onLayerVisibilityChanged(e){this.events.dispatch(this.events.layervisibilitychange,e)}addLayers(e){for(var A=0;A<e.length;A++)this.addLayer(e[A])}removeLayer(e){return e.remove()}_clearLayerMaterial(e){var A=e._id;this._quadTree.traverseTree((function(e){var t=e.segment.materials;t[A]&&(t[A].clear(),t[A]=null)}))}getLayers(){return this.layers}setBaseLayer(e){this.baseLayer?this.baseLayer.isEqual(e)||(this.baseLayer.setVisibility(!1),this.baseLayer=e,e.setVisibility(!0),this.events.dispatch(this.events.baselayerchange,e)):(this.baseLayer=e,this.baseLayer.setVisibility(!0),this.events.dispatch(this.events.baselayerchange,e))}setHeightFactor(e){this._renderCompletedActivated=!1,this._heightFactor!==e&&(this._heightFactor=e,this._quadTree.destroyBranches())}getHeightFactor(){return this._heightFactor}setTerrain(e){this._renderCompletedActivated=!1,this._initialized&&this.memClear(),this.terrain&&(this.terrain.abortLoading(),this.terrain.clearCache(),this.terrain._planet=null),this.terrain=e,this.terrain._planet=this,this._quadTree&&this._quadTree.destroyBranches(),e._geoid&&(e._geoid.model?this._plainSegmentWorker.setGeoid(e.getGeoid()):(e._geoid.model=null,br.loadModel(e._geoid.src).then((A=>{e.getGeoid().setModel(A),this._plainSegmentWorker.setGeoid(e.getGeoid())})).catch((e=>{console.log(e)}))))}_initializeShaders(){var e=this.renderer.handler;e.addProgram(new Mt("drawnode_screen_nl",{uniforms:{projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",samplerCount:"int",tileOffsetArr:"vec4",layerOpacityArr:"float",samplerArr:"sampler2darray",defaultTexture:"sampler2d",height:"float"},attributes:{aVertexPositionHigh:"vec3",aVertexPositionLow:"vec3",aTextureCoord:"vec2"},vertexShader:"attribute vec3 aVertexPositionHigh;\n attribute vec3 aVertexPositionLow;\n attribute vec2 aTextureCoord;\n\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform float height;\n\n varying vec2 vTextureCoord;\n\n void main(void) {\n vTextureCoord = aTextureCoord;\n\n vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;\n vec3 highDiff = aVertexPositionHigh - eyePositionHigh;\n vec3 lowDiff = aVertexPositionLow + normalize(aVertexPosition) * height - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n }",fragmentShader:"precision highp float;\n #define SLICE_SIZE 5\n uniform vec4 tileOffsetArr[SLICE_SIZE];\n uniform float layerOpacityArr[SLICE_SIZE];\n uniform sampler2D defaultTexture;\n uniform sampler2D samplerArr[SLICE_SIZE];\n uniform int samplerCount;\n varying vec2 vTextureCoord;\n\n #define blend(DEST, SAMPLER, OFFSET, OPACITY) src = texture2D( SAMPLER, OFFSET.xy + vTextureCoord.xy * OFFSET.zw ); DEST = DEST * (1.0 - src.a * OPACITY) + src * OPACITY;\n\n void main(void) {\n gl_FragColor = texture2D( defaultTexture, vTextureCoord );\n if( samplerCount == 0 ) return;\n\n vec4 src;\n\n blend(gl_FragColor, samplerArr[0], tileOffsetArr[0], layerOpacityArr[0]);\n if( samplerCount == 1 ) return;\n\n blend(gl_FragColor, samplerArr[1], tileOffsetArr[1], layerOpacityArr[1]);\n if( samplerCount == 2 ) return;\n\n blend(gl_FragColor, samplerArr[2], tileOffsetArr[2], layerOpacityArr[2]);\n if( samplerCount == 3 ) return;\n\n blend(gl_FragColor, samplerArr[3], tileOffsetArr[3], layerOpacityArr[3]);\n if( samplerCount == 4 ) return;\n\n blend(gl_FragColor, samplerArr[4], tileOffsetArr[4], layerOpacityArr[4]);\n }"}),!0),e.addProgram(new Mt("drawnode_screen_wl",{uniforms:{projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",height:"float",uGlobalTextureCoord:"vec4",uNormalMapBias:"vec3",samplerCount:"int",tileOffsetArr:"vec4",layerOpacityArr:"float",samplerArr:"sampler2darray",defaultTexture:"sampler2d",normalMatrix:"mat3",uNormalMap:"sampler2d",nightTexture:"sampler2d",specularTexture:"sampler2d",lightsPositions:"vec4",diffuse:"vec3",ambient:"vec3",specular:"vec4"},attributes:{aVertexPositionHigh:"vec3",aVertexPositionLow:"vec3",aTextureCoord:"vec2"},vertexShader:"#version 300 es\n\n in vec3 aVertexPositionHigh;\n in vec3 aVertexPositionLow;\n in vec2 aTextureCoord;\n\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform float height;\n uniform vec4 uGlobalTextureCoord;\n uniform vec3 uNormalMapBias;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n\n out vec4 vTextureCoord;\n out vec2 vGlobalTextureCoord;\n out vec4 v_vertex;\n out float v_height;\n\n void main(void) {\n\n vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;\n vec3 highDiff = aVertexPositionHigh - eyePositionHigh;\n vec3 lowDiff = aVertexPositionLow + normalize(aVertexPosition) * height - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n v_height = height;\n vec3 heightVertex = aVertexPosition + normalize(aVertexPosition) * height;\n v_vertex = viewMatrix * vec4(heightVertex, 1.0);\n vTextureCoord.xy = aTextureCoord;\n vGlobalTextureCoord = uGlobalTextureCoord.xy + (uGlobalTextureCoord.zw - uGlobalTextureCoord.xy) * aTextureCoord;\n vTextureCoord.zw = uNormalMapBias.z * ( aTextureCoord + uNormalMapBias.xy );\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n }",fragmentShader:"#version 300 es\n\n precision highp float;\n\n #define MAX_POINT_LIGHTS 1\n #define SLICE_SIZE 5\n\n uniform vec3 diffuse;\n uniform vec3 ambient;\n uniform vec4 specular;\n\n uniform sampler2D uNormalMap;\n uniform vec4 lightsPositions[MAX_POINT_LIGHTS];\n uniform mat3 normalMatrix;\n uniform sampler2D nightTexture;\n uniform sampler2D specularTexture;\n\n uniform vec4 tileOffsetArr[SLICE_SIZE];\n uniform float layerOpacityArr[SLICE_SIZE];\n\n uniform sampler2D defaultTexture;\n uniform sampler2D samplerArr[SLICE_SIZE];\n uniform int samplerCount;\n\n in vec4 vTextureCoord;\n in vec2 vGlobalTextureCoord;\n in vec4 v_vertex;\n in float v_height;\n\n float shininess;\n float reflection;\n float diffuseLightWeighting;\n vec3 night;\n\n layout(location = 0) out vec4 fragColor;\n\n const vec3 nightStep = 10.0 * vec3(0.58, 0.48, 0.25);\n\n #define blend(DEST, SAMPLER, OFFSET, OPACITY) src = texture( SAMPLER, OFFSET.xy + vTextureCoord.xy * OFFSET.zw ); DEST = DEST * (1.0 - src.a * OPACITY) + src * OPACITY;\n\n void main(void) {\n\n float overGround = 1.0 - step(0.1, v_height);\n vec3 normal = normalize(normalMatrix * ((texture(uNormalMap, vTextureCoord.zw).rgb - 0.5) * 2.0));\n vec3 lightDirection = normalize(lightsPositions[0].xyz - v_vertex.xyz * lightsPositions[0].w);\n vec3 eyeDirection = normalize(-v_vertex.xyz);\n vec3 reflectionDirection = reflect(-lightDirection, normal);\n vec4 nightImageColor = texture( nightTexture, vGlobalTextureCoord.st );\n\n shininess = texture( specularTexture, vGlobalTextureCoord.st ).r * 255.0 * overGround;\n reflection = max( dot(reflectionDirection, eyeDirection), 0.0);\n diffuseLightWeighting = max(dot(normal, lightDirection), 0.0);\n night = nightStep * (.18 - diffuseLightWeighting * 3.0) * nightImageColor.rgb;\n night *= overGround * step(0.0, night);\n\n vec3 spec = specular.rgb * pow( reflection, specular.w) * shininess;\n vec4 lightWeighting = vec4(ambient + diffuse * diffuseLightWeighting + spec + night, 1.0);\n\n fragColor = texture( defaultTexture, vTextureCoord.xy );\n if( samplerCount == 0 ) {\n fragColor *= lightWeighting;\n return;\n }\n\n vec4 src;\n\n blend(fragColor, samplerArr[0], tileOffsetArr[0], layerOpacityArr[0]);\n if( samplerCount == 1 ) {\n fragColor *= lightWeighting;\n return;\n }\n\n blend(fragColor, samplerArr[1], tileOffsetArr[1], layerOpacityArr[1]);\n if( samplerCount == 2 ) {\n fragColor *= lightWeighting;\n return;\n }\n\n blend(fragColor, samplerArr[2], tileOffsetArr[2], layerOpacityArr[2]);\n if( samplerCount == 3 ) {\n fragColor *= lightWeighting;\n return;\n }\n\n blend(fragColor, samplerArr[3], tileOffsetArr[3], layerOpacityArr[3]);\n if( samplerCount == 4 ) {\n fragColor *= lightWeighting;\n return;\n }\n\n blend(fragColor, samplerArr[4], tileOffsetArr[4], layerOpacityArr[4]);\n fragColor *= lightWeighting;\n }"}),!0),e.addProgram(new Mt("drawnode_colorPicking",{uniforms:{projectionMatrix:"mat4",viewMatrix:"mat4",eyePositionHigh:"vec3",eyePositionLow:"vec3",samplerCount:"int",tileOffsetArr:"vec4",samplerArr:"sampler2darray",pickingMaskArr:"sampler2darray",pickingColorArr:"vec4",height:"float"},attributes:{aVertexPositionHigh:"vec3",aVertexPositionLow:"vec3",aTextureCoord:"vec2"},vertexShader:"attribute vec3 aVertexPositionHigh;\n attribute vec3 aVertexPositionLow;\n attribute vec2 aTextureCoord;\n\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n uniform float height;\n\n varying vec2 vTextureCoord;\n\n void main(void) {\n\n vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;\n vec3 highDiff = aVertexPositionHigh - eyePositionHigh;\n vec3 lowDiff = aVertexPositionLow + normalize(aVertexPosition) * height - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n }",fragmentShader:"precision highp float;\n #define SLICE_SIZE 5\n uniform vec4 tileOffsetArr[SLICE_SIZE];\n uniform vec4 pickingColorArr[SLICE_SIZE];\n uniform sampler2D samplerArr[SLICE_SIZE];\n uniform sampler2D pickingMaskArr[SLICE_SIZE];\n uniform int samplerCount;\n varying vec2 vTextureCoord;\n\n #define blendPicking(DEST, OFFSET, SAMPLER, MASK, COLOR, OPACITY) tc = OFFSET.xy + vTextureCoord.xy * OFFSET.zw; t = texture2D(SAMPLER, tc); p = texture2D(MASK, tc); DEST = mix(DEST, vec4(max(COLOR.rgb, p.rgb), OPACITY), (t.a == 0.0 ? 0.0 : 1.0) * COLOR.a);\n\n void main(void) {\n gl_FragColor = vec4(0.0);\n if( samplerCount == 0 ) return;\n\n vec2 tc;\n vec4 t;\n vec4 p;\n\n blendPicking(gl_FragColor, tileOffsetArr[0], samplerArr[0], pickingMaskArr[0], pickingColorArr[0], 1.0);\n if( samplerCount == 1 ) return;\n\n blendPicking(gl_FragColor, tileOffsetArr[1], samplerArr[1], pickingMaskArr[1], pickingColorArr[1], 1.0);\n if( samplerCount == 2 ) return;\n\n blendPicking(gl_FragColor, tileOffsetArr[2], samplerArr[2], pickingMaskArr[2], pickingColorArr[2], 1.0);\n if( samplerCount == 3 ) return;\n\n blendPicking(gl_FragColor, tileOffsetArr[3], samplerArr[3], pickingMaskArr[3], pickingColorArr[3], 1.0);\n if( samplerCount == 4 ) return;\n\n blendPicking(gl_FragColor, tileOffsetArr[4], samplerArr[4], pickingMaskArr[4], pickingColorArr[4], 1.0);\n }"}),!0),e.addProgram(new Mt("drawnode_depth",{uniforms:{projectionMatrix:"mat4",viewMatrix:"mat4",height:"float",eyePositionHigh:"vec3",eyePositionLow:"vec3",frustumPickingColor:"vec3"},attributes:{aVertexPositionHigh:"vec3",aVertexPositionLow:"vec3"},vertexShader:"attribute vec3 aVertexPositionHigh;\n attribute vec3 aVertexPositionLow;\n\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform float height;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n\n void main(void) {\n\n vec3 cameraPosition = eyePositionHigh + eyePositionLow;\n vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;\n\n vec3 highDiff = aVertexPositionHigh - eyePositionHigh;\n vec3 lowDiff = aVertexPositionLow + normalize(aVertexPosition) * height - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n }",fragmentShader:"precision highp float;\n uniform vec3 frustumPickingColor;\n\n void main(void) {\n gl_FragColor = vec4(frustumPickingColor, 1.0);\n } "}),!0),e.addProgram(new Mt("drawnode_heightPicking",{uniforms:{projectionMatrix:"mat4",viewMatrix:"mat4",height:"float",eyePositionHigh:"vec3",eyePositionLow:"vec3"},attributes:{aVertexPositionHigh:"vec3",aVertexPositionLow:"vec3"},vertexShader:"attribute vec3 aVertexPositionHigh;\n attribute vec3 aVertexPositionLow;\n\n uniform mat4 projectionMatrix;\n uniform mat4 viewMatrix;\n uniform float height;\n uniform vec3 eyePositionHigh;\n uniform vec3 eyePositionLow;\n\n varying float range;\n\n void main(void) {\n\n vec3 cameraPosition = eyePositionHigh + eyePositionLow;\n vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;\n\n vec3 highDiff = aVertexPositionHigh - eyePositionHigh;\n vec3 lowDiff = aVertexPositionLow + normalize(aVertexPosition) * height - eyePositionLow;\n\n mat4 viewMatrixRTE = viewMatrix;\n viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);\n\n range = distance(cameraPosition, aVertexPosition + normalize(aVertexPosition) * height);\n gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);\n }",fragmentShader:"precision highp float;\n\n varying float range;\n\n vec3 encode24(highp float f) {\n float F = abs(f);\n float s = step( 0.0, -f );\n float e = floor( log2(F) );\n float m = exp2(- e) * F;\n e = floor( log2(F) + 127.0 ) + floor( log2(m) );\n return vec3(\n ( 128.0 * s + floor( e * exp2(-1.0) ) ) / 255.0,\n ( 128.0 * mod( e, 2.0 ) + mod( floor( m * 128.0 ), 128.0 ) ) / 255.0,\n floor( mod( floor( m * exp2( 23.0 - 8.0) ), exp2(8.0) ) ) / 255.0);\n }\n\n void main(void) {\n gl_FragColor = vec4(encode24(range), 1.0);\n }"}),!0),this.renderer.addPickingCallback(this,this._renderColorPickingFramebufferPASS),this.renderer.addDepthCallback(this,this._renderDepthFramebufferPASS),this._heightPickingFramebuffer=new Ot(this.renderer.handler,{width:320,height:240}),this._heightPickingFramebuffer.init(),this.renderer.screenTexture.height=this._heightPickingFramebuffer.textures[0]}init(){Ht().setMaxGridSize(this._maxGridSize);const e=this._maxGridSize;let A=0;for(var t=0;t<=e;t++){!this._indexesCache[t]&&(this._indexesCache[t]=new Array(e));for(var i=0;i<=e;i++){!this._indexesCache[t][i]&&(this._indexesCache[t][i]=new Array(e));for(var r=0;r<=e;r++){!this._indexesCache[t][i][r]&&(this._indexesCache[t][i][r]=new Array(e));for(var n=0;n<=e;n++){!this._indexesCache[t][i][r][n]&&(this._indexesCache[t][i][r][n]=new Array(e));for(var s=0;s<=e;s++){let e={buffer:null};if(t>=1&&t===i&&t===r&&t===n&&t===s){let A=Ht().createSegmentIndexes(t,[i,r,n,s]);e.buffer=this.renderer.handler.createElementArrayBuffer(A,1),A=null}else this._indexesCacheToRemove[A++]=e;this._indexesCache[t][i][r][n][s]=e}}}}}this.renderer.events.on("resize",(()=>{this._renderCompletedActivated=!1})),this._textureCoordsBufferCache=[];let a=Ht().initTextureCoordsTable(e+1);for(let A=0;A<=e;A++)this._textureCoordsBufferCache[A]=this.renderer.handler.createArrayBuffer(a[A],2,(1+(1<<A))*(1+(1<<A)));a=null;var o=this;this.renderer.handler.createDefaultTexture(null,(function(e){o.solidTextureOne=e,o.solidTextureTwo=e})),this.transparentTexture=this.renderer.handler.transparentTexture,this.camera=this.renderer.activeCamera=new Wi(this,{frustums:this._cameraFrustums,eye:new le(0,0,28e6),look:new le(0,0,0),up:new le(0,1,0),minAltitude:this._minAltitude,maxAltitude:this._maxAltitude}),this.camera.update(),this._renderedNodesInFrustum=new Array(this.camera.frustums.length);for(let e=0,A=this._renderedNodesInFrustum.length;e<A;e++)this._renderedNodesInFrustum[e]=[];this._quadTree=new Gi(lr,this,0,null,0,0,ne.createFromArray([-20037508.34,-20037508.34,20037508.34,20037508.34])),this._quadTreeNorth=new Gi(gr,this,0,null,0,0,ne.createFromArray([-180,te,180,90])),this._quadTreeSouth=new Gi(gr,this,0,null,0,0,ne.createFromArray([-180,-90,180,ie])),this.drawMode=this.renderer.handler.gl.TRIANGLE_STRIP,this._initializeShaders(),this.updateVisibleLayers(),this.renderer.addPickingCallback(this,this._frustumEntityCollectionPickingCallback),this._useNightTexture&&createImageBitmap(Er).then((e=>this._nightTexture=this.renderer.handler.createTextureDefault(e))),this._useSpecularTexture&&createImageBitmap(Tr).then((e=>this._specularTexture=this.renderer.handler.createTexture_l(e))),this._geoImageCreator=new Qt(this),this._vectorTileCreator=new yr(this),this._normalMapCreator=new Yi(this,{minTableSize:1,maxTableSize:e,blur:this.terrain&&(null==this.terrain.blur||this.terrain.blur)}),this.renderer.events.on("draw",this._globalPreDraw,this,-100),this._preRender(),this._initialized=!0,this.renderer.events.on("postdraw",(()=>{this._checkRendercompleted()}))}clearIndexesCache(){this._indexesCacheToRemoveCounter=0;let e=this._indexesCacheToRemove,A=this.renderer.handler.gl;for(let t=0,i=e.length;t<i;t++){let i=e[t];A.deleteBuffer(i.buffer),i.buffer=null}}_preRender(){this._quadTree.createChildrenNodes(),this._quadTree.segment.createPlainSegment();for(let e=0;e<this._quadTree.nodes.length;e++)this._quadTree.nodes[e].segment.createPlainSegment();this._quadTreeNorth.createChildrenNodes(),this._quadTreeNorth.segment.createPlainSegment();for(let e=0;e<this._quadTreeNorth.nodes.length;e++)this._quadTreeNorth.nodes[e].segment.createPlainSegment();this._quadTreeSouth.createChildrenNodes(),this._quadTreeSouth.segment.createPlainSegment();for(let e=0;e<this._quadTreeSouth.nodes.length;e++)this._quadTreeSouth.nodes[e].segment.createPlainSegment();this._preLoad()}_preLoad(){this._clearRenderedNodeList(),this._skipPreRender=!1,this._quadTreeNorth.segment.passReady=!0,this._quadTreeNorth.renderNode(!0),this._normalMapCreator.drawSingle(this._quadTreeNorth.segment);for(let e=0;e<this._quadTreeNorth.nodes.length;e++)this._quadTreeNorth.nodes[e].segment.passReady=!0,this._quadTreeNorth.nodes[e].renderNode(!0),this._normalMapCreator.drawSingle(this._quadTreeNorth.nodes[e].segment);this._quadTreeSouth.segment.passReady=!0,this._quadTreeSouth.renderNode(!0),this._normalMapCreator.drawSingle(this._quadTreeSouth.segment);for(let e=0;e<this._quadTreeSouth.nodes.length;e++)this._quadTreeSouth.nodes[e].segment.passReady=!0,this._quadTreeSouth.nodes[e].renderNode(!0),this._normalMapCreator.drawSingle(this._quadTreeSouth.nodes[e].segment);for(let e=0;e<this._quadTree.nodes.length;e++)this._quadTree.nodes[e].segment.passReady=!0,this._quadTree.nodes[e].renderNode(!0),this._normalMapCreator.drawSingle(this._quadTree.nodes[e].segment);this._quadTree.segment.passReady=!0,this._quadTree.renderNode(!0),this._normalMapCreator.drawSingle(this._quadTree.segment)}createDefaultTextures(e,A){this.renderer.handler.gl.deleteTexture(this.solidTextureOne),this.renderer.handler.gl.deleteTexture(this.solidTextureTwo);var t=this;this.renderer.handler.createDefaultTexture(e,(function(e){t.solidTextureOne=e})),this.renderer.handler.createDefaultTexture(A,(function(e){t.solidTextureTwo=e}))}updateAttributionsList(){for(var e="",A=0;A<this.layers.length;A++){var t=this.layers[A];t._visibility&&t._attribution.length&&(e+="<li>"+t._attribution+"</li>")}this.renderer&&(e.length?(this.renderer.div.attributions.style.display="block",this.renderer.div.attributions.innerHTML="<ul>"+e+"</ul>"):(this.renderer.div.attributions.style.display="none",this.renderer.div.attributions.innerHTML=""))}updateVisibleLayers(){this.visibleTileLayers=[],this.visibleTileLayers.length=0,this.visibleVectorLayers=[],this.visibleVectorLayers.length=0;for(var e="",A=0;A<this.layers.length;A++){var t=this.layers[A];t._visibility?(t._isBaseLayer&&(this.createDefaultTextures(t._defaultTextures[0],t._defaultTextures[1]),this.baseLayer=t),t.hasImageryTiles()&&this.visibleTileLayers.push(t),t.isVector&&this.visibleVectorLayers.push(t),t._attribution.length&&(e+="<li>"+t._attribution+"</li>")):t._fading&&t._fadingOpacity>0&&(t.hasImageryTiles()&&this.visibleTileLayers.push(t),t.isVector&&this.visibleVectorLayers.push(t))}this.renderer&&(e.length?(this.renderer.div.attributions.style.display="block",this.renderer.div.attributions.innerHTML="<ul>"+e+"</ul>"):(this.renderer.div.attributions.style.display="none",this.renderer.div.attributions.innerHTML="")),this._sortLayers()}_sortLayers(){if(this.visibleVectorLayers.sort((function(e,A){return e._zIndex-A._zIndex||e._height-A._height})),this._visibleTileLayerSlices=[],this._visibleTileLayerSlices.length=0,this.visibleTileLayers.length){this.visibleTileLayers.sort((function(e,A){return e._height-A._height||e._zIndex-A._zIndex}));for(var e=-1,A=this.visibleTileLayers[0]._height,t=0;t<this.visibleTileLayers.length;t++)t%this.SLICE_SIZE!=0&&this.visibleTileLayers[t]._height===A||(e++,this._visibleTileLayerSlices[e]=[],A=this.visibleTileLayers[t]._height),this._visibleTileLayerSlices[e].push(this.visibleTileLayers[t])}}_clearRenderedNodeList(){this._renderedNodes.length=0,this._renderedNodes=[];for(let e=0,A=this._renderedNodesInFrustum.length;e<A;e++)this._renderedNodesInFrustum[e].length=0,this._renderedNodesInFrustum[e]=[]}_collectRenderNodes(){let e=this.camera;if(this._lodSize=M(e.slope<0?0:e.slope,this._curLodSize,this._minLodSize),e._insideSegment=null,this._clearRenderedNodeList(),this._viewExtent=null,this._visibleNodes={},this._visibleNodesNorth={},this._visibleNodesSouth={},this.minCurrZoom=l,this.maxCurrZoom=d,this._quadTree.renderTree(e,0,null),e.slope>this.minEqualZoomCameraSlope&&e._lonLat.height<this.maxEqualZoomAltitude&&e._lonLat.height>this.minEqualZoomAltitude){this.minCurrZoom=this.maxCurrZoom;let r=this._renderedNodes,n=this._renderedNodesInFrustum,s=[];this._renderedNodes=[];for(let e=0,A=this._renderedNodesInFrustum.length;e<A;e++)this._renderedNodesInFrustum[e].length=0,this._renderedNodesInFrustum[e]=[];for(var A=0,t=r.length;A<t;A++){var i=r[A];let t=i.segment.centerNormal.dot(e._b);if(i.segment.tileZoom===this.maxCurrZoom||t<.81){this._renderedNodes.push(i);let e=0,A=i.inFrustum;for(;A;)1&A&&n[e].push(i),e++,A>>=1}else s.push(i)}for(let A=0,t=s.length;A<t;A++)s[A].renderTree(e,this.maxCurrZoom,null)}this._quadTreeNorth.renderTree(e,0,null),this._quadTreeSouth.renderTree(e,0,null)}_globalPreDraw(){let e=this.camera;this._distBeforeMemClear+=this._prevCamEye.distance(e.eye),this._prevCamEye.copy(e.eye),e.checkFly(),this._createdNodesCount>200&&this._distBeforeMemClear>1e3&&(this.terrain.clearCache(),this.memClear()),this._indexesCacheToRemoveCounter>600&&this.clearIndexesCache()}frame(){this._renderScreenNodesPASS(),this._renderHeightPickingFramebufferPASS(),this.drawEntityCollections(this._frustumEntityCollections)}_checkRendercompleted(){this._renderCompleted?this._renderCompletedActivated||(this._renderCompletedActivated=!0,this.events.dispatch(this.events.rendercompleted,!0)):this._renderCompletedActivated=!1,this._renderCompleted=!0}_renderScreenNodesPASS(){let e,A,t=this.renderer,i=t.handler,r=i.gl,n=t.activeCamera,s=n.getCurrentFrustum();r.disable(r.POLYGON_OFFSET_FILL),s===n.FARTHEST_FRUSTUM_INDEX&&(this._skipPreRender&&this._collectRenderNodes(),this._skipPreRender=!0,this.events.dispatch(this.events.draw,this),this.transformLights(),this._normalMapCreator.frame(),this._geoImageCreator.frame(),this._collectVectorLayerCollections(),this._vectorTileCreator.frame()),r.enable(r.CULL_FACE),r.enable(r.BLEND),r.blendEquation(r.FUNC_ADD),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),this.lightEnabled?(i.programs.drawnode_screen_wl.activate(),e=i.programs.drawnode_screen_wl._program,A=e.uniforms,r.uniform4fv(A.lightsPositions,this._lightsTransformedPositions),r.uniformMatrix3fv(A.normalMatrix,!1,n.getNormalMatrix()),r.uniformMatrix4fv(A.viewMatrix,!1,n.getViewMatrix()),r.uniformMatrix4fv(A.projectionMatrix,!1,n.getProjectionMatrix()),r.uniform3fv(A.diffuse,this._diffuse),r.uniform3fv(A.ambient,this._ambient),r.uniform4fv(A.specular,this._specular),r.activeTexture(r.TEXTURE0+this.SLICE_SIZE),r.bindTexture(r.TEXTURE_2D,this.camera._lonLat.height>329958&&(this._nightTexture||this.transparentTexture)||this.transparentTexture),r.uniform1i(A.nightTexture,this.SLICE_SIZE),r.activeTexture(r.TEXTURE0+this.SLICE_SIZE+1),r.bindTexture(r.TEXTURE_2D,this._specularTexture||this.transparentTexture),r.uniform1i(A.specularTexture,this.SLICE_SIZE+1)):(i.programs.drawnode_screen_nl.activate(),e=i.programs.drawnode_screen_nl._program,A=e.uniforms,r.uniformMatrix4fv(A.viewMatrix,!1,n.getViewMatrix()),r.uniformMatrix4fv(A.projectionMatrix,!1,n.getProjectionMatrix())),r.uniform3fv(A.eyePositionHigh,n.eyeHigh),r.uniform3fv(A.eyePositionLow,n.eyeLow);var a=this._renderedNodesInFrustum[s],o=this._visibleTileLayerSlices;if(o.length){let e=o[0];for(var h=e.length-1;h>=0;--h){let A=e[h];A._fading&&A._refreshFadingOpacity()&&e.splice(h,1)}}let l=this.terrain.equalizeVertices;for(h=a.length;h--;){let A=a[h].segment;l&&A.equalize(),A.readyToEngage&&A.engage(),A.screenRendering(e,o[0],0)}for(let A=1,t=o.length;A<t;A++){let t=o[A];for(h=t.length-1;h>=0;--h){let e=t[h];e._fading&&e._refreshFadingOpacity()&&t.splice(h,1)}for(h=a.length;h--;)a[h].segment.screenRendering(e,o[A],A,this.transparentTexture,!0)}r.disable(r.BLEND)}_renderHeightPickingFramebufferPASS(){if(!this.terrain.isEmpty){let t;this._heightPickingFramebuffer.activate();let i=this.renderer,r=i.handler,n=r.gl,s=i.activeCamera,a=s.getCurrentFrustum();a===s.FARTHEST_FRUSTUM_INDEX?(n.clearColor(0,0,0,1),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT)):n.clear(n.DEPTH_BUFFER_BIT),r.programs.drawnode_heightPicking.activate(),t=r.programs.drawnode_heightPicking._program;let o=t.uniforms;n.uniformMatrix4fv(o.viewMatrix,!1,i.activeCamera.getViewMatrix()),n.uniformMatrix4fv(o.projectionMatrix,!1,i.activeCamera.getProjectionMatrix()),n.uniform3fv(o.eyePositionHigh,s.eyeHigh),n.uniform3fv(o.eyePositionLow,s.eyeLow);var e=this._renderedNodesInFrustum[a],A=this._visibleTileLayerSlices;let h=e.length;for(;h--;)e[h].segment.heightPickingRendering(t,A[0]);this._heightPickingFramebuffer.deactivate()}}_renderColorPickingFramebufferPASS(){let e,A=this.renderer,t=A.handler,i=t.gl;t.programs.drawnode_colorPicking.activate(),e=t.programs.drawnode_colorPicking._program;let r=e.uniforms,n=A.activeCamera;i.blendEquation(i.FUNC_ADD),i.blendFunc(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA),i.enable(i.BLEND),i.enable(i.CULL_FACE),i.uniformMatrix4fv(r.viewMatrix,!1,n.getViewMatrix()),i.uniformMatrix4fv(r.projectionMatrix,!1,n.getProjectionMatrix()),i.uniform3fv(r.eyePositionHigh,n.eyeHigh),i.uniform3fv(r.eyePositionLow,n.eyeLow);var s=this._renderedNodesInFrustum[n.getCurrentFrustum()],a=this._visibleTileLayerSlices;let o=s.length;for(;o--;)s[o].segment.colorPickingRendering(e,a[0],0);i.enable(i.POLYGON_OFFSET_FILL);for(let A=1,t=a.length;A<t;A++)for(o=s.length,i.polygonOffset(0,-A);o--;)s[o].segment.colorPickingRendering(e,a[A],A,this.transparentTexture,!0);i.disable(i.POLYGON_OFFSET_FILL),i.disable(i.BLEND)}_renderDepthFramebufferPASS(){let e,A=this.renderer,t=A.handler,i=t.gl;t.programs.drawnode_depth.activate(),e=t.programs.drawnode_depth._program;let r=e.uniforms,n=A.activeCamera;i.disable(i.BLEND),i.disable(i.POLYGON_OFFSET_FILL),i.uniformMatrix4fv(r.viewMatrix,!1,n.getViewMatrix()),i.uniformMatrix4fv(r.projectionMatrix,!1,n.getProjectionMatrix()),i.uniform3fv(r.eyePositionHigh,n.eyeHigh),i.uniform3fv(r.eyePositionLow,n.eyeLow),i.uniform3fv(r.frustumPickingColor,n.frustum._pickingColorU);var s=this._renderedNodesInFrustum[n.getCurrentFrustum()],a=this._visibleTileLayerSlices;let o=s.length;for(;o--;)s[o].segment.depthRendering(e,a[0])}_collectVectorLayerCollections(){this._frustumEntityCollections.length=0,this._frustumEntityCollections=[];for(var e=this.visibleVectorLayers.length;e--;){let A=this.visibleVectorLayers[e];A._fading&&A._refreshFadingOpacity()&&this.visibleVectorLayers.splice(e,1),A.collectVisibleCollections(this._frustumEntityCollections),A.update()}}_frustumEntityCollectionPickingCallback(){this.drawPickingEntityCollections(this._frustumEntityCollections)}memClear(){this._distBeforeMemClear=0,this.camera._insideSegment=null,this.layerLock.lock(this._memKey),this.terrainLock.lock(this._memKey),this._normalMapCreator.lock(this._memKey),this._normalMapCreator.clear(),this.terrain.abortLoading(),this._tileLoader.abort();var e=this;e._quadTree.clearTree(),e._quadTreeNorth.clearTree(),e._quadTreeSouth.clearTree(),e.layerLock.free(e._memKey),e.terrainLock.free(e._memKey),e._normalMapCreator.free(e._memKey),this._createdNodesCount=0}getRayIntersectionEllipsoid(e){return this.ellipsoid.hitRay(e.origin,e.direction)}getCartesianFromPixelEllipsoid(e){var A=this.renderer.activeCamera;return this.ellipsoid.hitRay(A.eye,A.unproject(e.x,e.y))}getLonLatFromPixelEllipsoid(e){var A=this.getCartesianFromPixelEllipsoid(e);return A?this.ellipsoid.cartesianToLonLat(A):null}getCartesianFromMouseTerrain(){var e=this.renderer.events.mouseState,A=this.getDistanceFromPixel(e);return A?e.direction.scaleTo(A).addA(this.renderer.activeCamera.eye):null}getCartesianFromPixelTerrain(e){var A=this.getDistanceFromPixel(e);return A?(e.direction||this.renderer.activeCamera.unproject(e.x,e.y)).scaleTo(A).addA(this.renderer.activeCamera.eye):null}getLonLatFromPixelTerrain(e,A){var t=this.getCartesianFromPixelTerrain(e,A);return t?this.ellipsoid.cartesianToLonLat(t):null}getPixelFromCartesian(e){return this.renderer.activeCamera.project(e)}getPixelFromLonLat(e){var A=this.ellipsoid.lonLatToCartesian(e);return A?this.renderer.activeCamera.project(A):null}getDistanceFromPixelEllipsoid(e){var A=this.getCartesianFromPixelEllipsoid(e);return A?A.distance(this.renderer.activeCamera.eye):null}getDistanceFromPixel(e){if(this.terrain.isEmpty)return this.getDistanceFromPixelEllipsoid(e)||0;{let s=this.renderer,a=this.renderer.handler.canvas,o=e.x/a.width,h=(a.height-e.y)/a.height;Ir[0]=Ir[1]=Ir[2]=0;let l=0;if(this._heightPickingFramebuffer.activate(),this._heightPickingFramebuffer.isComplete()&&(this._heightPickingFramebuffer.readPixels(Ir,o,h),i=1-2*T(128,(A=Ir)[0]),r=2*B(A[0],128)+T(128,A[1])-127,n=65536*B(A[1],128)+256*A[2]+(t?A[3]:0)+8388608,l=i*I(r)*(1.1920928955078125e-7*n)),this._heightPickingFramebuffer.deactivate(),Ir[0]||Ir[1]||Ir[2]){if(l<11){if(s.screenDepthFramebuffer.activate(),s.screenDepthFramebuffer.isComplete()){s.screenDepthFramebuffer.readPixels(Mr,o,h);let A=new se(2*o-1,2*h-1,Mr[0]/255*2-1,1),t=this.camera.frustums[0]._inverseProjectionMatrix.mulVec4(A),i=e.direction||this.renderer.activeCamera.unproject(e.x,e.y);l=-t.z/t.w/i.dot(this.renderer.activeCamera.getForward())}s.screenDepthFramebuffer.deactivate()}}else l=this.getDistanceFromPixelEllipsoid(e)||0;return l}var A,t,i,r,n}viewExtent(e){this.renderer.activeCamera.viewExtent(e)}viewExtentArr(e){this.renderer.activeCamera.viewExtent(new ne(new F(e[0],e[1]),new F(e[2],e[3])))}getViewExtent(){return this._viewExtent}viewLonLat(e,A){this.renderer.activeCamera.setLonLat(e,A)}flyExtent(e,A,t,i,r,n){this.renderer.activeCamera.flyExtent(e,A,t,i,r,n)}flyCartesian(e,A,t,i,r,n,s){this.renderer.activeCamera.flyCartesian(e,A,t,i,r,n,s)}flyLonLat(e,A,t,i,r,n,s){this.renderer.activeCamera.flyLonLat(e,A,t,i,r,n,s)}stopFlying(){this.renderer.activeCamera.stopFlying()}updateBillboardsTexCoords(){for(let e=0;e<this.entityCollections.length;e++)this.entityCollections[e].billboardHandler.refreshTexCoordsArr();let e={};for(let A=0;A<this.layers.length;A++){let t=this.layers[A];t instanceof Pi&&t.each((function(A){A._entityCollection&&!e[A._entityCollection.id]&&(A._entityCollection.billboardHandler.refreshTexCoordsArr(),e[A._entityCollection.id]=!0)}))}}getEntityTerrainPoint(e,A){let t=this._renderedNodes,i=t.length;for(;i--;)if(t[i].segment.isEntityInside(e))return t[i].segment.getEntityTerrainPoint(e,A)}}class Lr{constructor(e){e=e||{},this.scale=e.scale||.02,this.scaleByDistance=new Float32Array(e.scaleByDistance||[h,h,h]),this._position=Ee(e.position),this._positionHigh=new le,this._positionLow=new le,le.doubleToTwoFloats(this._position,this._positionHigh,this._positionLow),this._pitch=e.pitch||0,this._yaw=e.yaw||0,this._roll=e.roll||0,this._planet=e.planet||null,this._lonLatAlt=new F(0,0,1e5),this._color=Te(e.color),this._direction=new le(0,0,0),this._handler=null,this._handlerIndex=-1,this._vertices=e.vertices,this._normals=e.normals,this._indices=e.indices,this.instanced=e.instanced,this.tag=e.tag||"none",e.indices&&(this._indicesCount=e.indices.length),e.vertices&&(this._verticesCount=Math.floor(e.vertices.length/3))}get planet(){return this._handler&&this._handler._planet}get renderer(){return this.planet&&this.planet.renderer}setOpacity(e){this._color.w=e,this.setColor(this._color.x,this._color.y,this._color.z,e)}setColor(e,A,t,i){this._color.x=e,this._color.y=A,this._color.z=t,null!=i&&(this._color.w=i),this._handler&&this._handler.setRgbaArr(this._handlerIndex,this._color)}setColor4v(e){this._color.x=e.x,this._color.y=e.y,this._color.z=e.z,null!=e.w&&(this._color.w=e.w),this._handler&&this._handler.setRgbaArr(this._handlerIndex,e)}setVisibility(e){this._visibility=e,this._handler&&this._handler.setVisibility(this._handlerIndex,e)}getVisibility(){return this._visibility}setLonLat(e,A,t){this._lonLatAlt.lon=e,this._lonLatAlt.lat=A,this._lonLatAlt.height=t,this._handler._planet.ellipsoid.lonLatToCartesianRes(this._lonLatAlt,this._position),this.setPosition3v(this._position)}setPosition(e,A,t){this._position.x=e,this._position.y=A,this._position.z=t,le.doubleToTwoFloats(this._position,this._positionHigh,this._positionLow),this._handler&&this._handler.setPositionArr(this._handlerIndex,this._positionHigh,this._positionLow),this.updateDirection()}setPosition3v(e){this._position.x=e.x,this._position.y=e.y,this._position.z=e.z,le.doubleToTwoFloats(e,this._positionHigh,this._positionLow),this._handler&&this._handler.setPositionArr(this._handlerIndex,this._positionHigh,this._positionLow),this.updateDirection()}setYaw(e){this._yaw=e,this.updateDirection()}setPitch(e){this._pitch=e,this._handler&&this._handler.setPitchRollArr(this._handlerIndex,e,this._roll)}setRoll(e){this._roll=e,this._handler&&this._handler.setPitchRollArr(this._handlerIndex,this._pitch,e)}setScale(e){this.scale=e,this._handler&&this._handler.setScaleArr(this._handlerIndex,e)}remove(){this._entity=null,this._handler&&this._handler.remove(this)}setPickingColor3v(e){this._handler&&this._handler.setPickingColorArr(this._handlerIndex,e)}updateDirection(){this._entity&&this._entity.renderNode&&this._entity.renderNode.ellipsoid&&this._entity.renderNode.ellipsoid.lonLatToCartesianRes(this._lonLatAlt,this._position),this._qNorthFrame=Dr.getBearingNorthRotationQuat(this._position);let e=he.yRotation(this._yaw*c).mul(this._qNorthFrame).conjugate();this._direction=e.mulVec3(new le(0,0,-1)).normalize(),this._handler&&this._handler.setDirectionArr(this._handlerIndex,this._direction)}}class _r{constructor(e){(e=e||{}).properties=e.properties||{},this.id=_r._staticCounter++,this.properties=e.properties||{},this.properties.name=this.properties.name||e.name||"",this.childrenNodes=[],this.parent=null,this._cartesian=Ee(e.cartesian),this._lonlat=Me(e.lonlat),this._lonlatMerc=null,this._altitude=e.altitude||0,this._visibility=null==e.visibility||e.visibility,this._entityCollection=null,this._entityCollectionIndex=-1,this._layer=null,this._layerIndex=-1,this._pickingColor=new le(0,0,0),this._featureConstructorArray={billboard:[tt,this.setBillboard],label:[ut,this.setLabel],sphere:[yt,this.setShape],polyline:[gt,this.setPolyline],pointCloud:[xt,this.setPointCloud],geometry:[ot,this.setGeometry],geoObject:[Lr,this.setGeoObject],strip:[st,this.setStrip],ray:[mt,this.setRay]},this.billboard=this._createOptionFeature("billboard",e.billboard),this.label=this._createOptionFeature("label",e.label),this.shape=this._createOptionFeature("sphere",e.sphere||e.box),this.polyline=this._createOptionFeature("polyline",e.polyline),this.ray=this._createOptionFeature("ray",e.ray),this.pointCloud=this._createOptionFeature("pointCloud",e.pointCloud),this.geometry=this._createOptionFeature("geometry",e.geometry),this.geoObject=this._createOptionFeature("geoObject",e.geoObject),this.strip=this._createOptionFeature("strip",e.strip)}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}get instanceName(){return"Entity"}_createOptionFeature(e,A){if(A){let t=this._featureConstructorArray[e];return t[1].call(this,new t[0](A))}return null}getCollectionIndex(){return this._entityCollectionIndex}addTo(e,A){return e.add(this,A),this}remove(){this._layer&&this._layer.removeEntity(this),this._entityCollection&&this._entityCollection.removeEntity(this)}setVisibility(e){this._visibility=e,this.billboard&&this.billboard.setVisibility(e),this.geoObject&&this.geoObject.setVisibility(e),this.label&&this.label.setVisibility(e),this.shape&&this.shape.setVisibility(e),this.polyline&&this.polyline.setVisibility(e),this.ray&&this.ray.setVisibility(e),this.geometry&&this.geometry.setVisibility(e);for(let A=0;A<this.childrenNodes.length;A++)this.childrenNodes[A].setVisibility(e)}getVisibility(){return this._visibility}setCartesian3v(e){this.setCartesian(e.x,e.y,e.z)}setCartesian(e,A,t){let i=this._cartesian;i.x=e,i.y=A,i.z=t,this.billboard&&this.billboard.setPosition3v(i),this.geoObject&&this.geoObject.setPosition3v(i),this.label&&this.label.setPosition3v(i),this.shape&&this.shape.setPosition3v(i);for(let i=0;i<this.childrenNodes.length;i++)this.childrenNodes[i].setCartesian(e,A,t);let r=this._entityCollection;r&&r.renderNode&&r.renderNode.ellipsoid&&(this._lonlat=r.renderNode.ellipsoid.cartesianToLonLat(i),Math.abs(this._lonlat.lat)<te?this._lonlatMerc=this._lonlat.forwardMercator():this._lonlatMerc=null),r&&r.events.dispatch(r.events.entitymove,this)}_setCartesian3vSilent(e,A){let t=this._cartesian;t.x=e.x,t.y=e.y,t.z=e.z,this.billboard&&this.billboard.setPosition3v(t),this.geoObject&&this.geoObject.setPosition3v(t),this.label&&this.label.setPosition3v(t),this.shape&&this.shape.setPosition3v(t);for(let e=0;e<this.childrenNodes.length;e++)this.childrenNodes[e].setCartesian(t.x,t.y,t.z);let i=this._entityCollection;!A&&i&&i.renderNode&&i.renderNode.ellipsoid&&(this._lonlat=i.renderNode.ellipsoid.cartesianToLonLat(t),Math.abs(this._lonlat.lat)<te?this._lonlatMerc=this._lonlat.forwardMercator():this._lonlatMerc=null)}getLonLat(){return this._lonlat.clone()}setLonLat(e){let A=this._lonlat;A.lon=e.lon,A.lat=e.lat,A.height=e.height;let t=this._entityCollection;t&&t.renderNode&&t.renderNode.ellipsoid&&(Math.abs(e.lat)<te?this._lonlatMerc=e.forwardMercator():this._lonlatMerc=null,t.renderNode.ellipsoid.lonLatToCartesianRes(e,this._cartesian),this.setCartesian3v(this._cartesian))}setAltitude(e){this._altitude=e}getAltitude(){return this._altitude}getCartesian(){return this._cartesian.clone()}setBillboard(e){return this.billboard&&this.billboard.remove(),this.billboard=e,this.billboard._entity=this,this.billboard.setPosition3v(this._cartesian),this.billboard.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._billboardHandler.add(e),e}setLabel(e){return this.label&&this.label.remove(),this.label=e,this.label._entity=this,this.label.setPosition3v(this._cartesian),this.label.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._labelHandler.add(e),e}setRay(e){return this.ray&&this.ray.remove(),this.ray=e,this.ray._entity=this,this.ray.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._rayHandler.add(e),e}setShape(e){return this.shape&&this.shape.remove(),this.shape=e,this.shape._entity=this,this.shape.setPosition3v(this._cartesian),this.shape.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._shapeHandler.add(e),e}setPolyline(e){return this.polyline&&this.polyline.remove(),this.polyline=e,this.polyline._entity=this,this.polyline.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._polylineHandler.add(e),e}setPointCloud(e){return this.pointCloud&&this.pointCloud.remove(),this.pointCloud=e,this.pointCloud._entity=this,this.pointCloud.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._pointCloudHandler.add(e),e}setGeometry(e){return this.geometry&&this.geometry.remove(),this.geometry=e,this.geometry._entity=this,this.geometry.setVisibility(this._visibility),this._layer&&this._layer.add(this),e}setGeoObject(e){return this.geoObject&&this.geoObject.remove(),this.geoObject=e,this.geoObject._entity=this,this.geoObject.setPosition3v(this._cartesian),this.geoObject.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._geoObjectHandler.add(e),e}setStrip(e){return this.strip&&this.strip.remove(),this.strip=e,this.strip._entity=this,this.strip.setVisibility(this._visibility),this._entityCollection&&this._entityCollection._stripHandler.add(e),e}get layer(){return this._layer}get rendererEvents(){return this._layer?this._layer.events:this._entityCollection?this._entityCollection.events:null}appendChild(e){e._entityCollection=this._entityCollection,e._pickingColor=this._pickingColor,e.parent=this,this.childrenNodes.push(e),this._entityCollection&&this._entityCollection._addRecursively(e)}setPickingColor(){let e=this._pickingColor;this.billboard&&this.billboard.setPickingColor3v(e),this.label&&this.label.setPickingColor3v(e),this.shape&&this.shape.setPickingColor3v(e),this.polyline&&this.polyline.setPickingColor3v(e),this.ray&&this.ray.setPickingColor3v(e),this.strip&&this.strip.setPickingColor3v(e),this.geoObject&&this.geoObject.setPickingColor3v(e);for(let e=0;e<this.childrenNodes.length;e++)this.childrenNodes[e].setPickingColor()}getExtent(){let e,A=this._lonlat;e=this.billboard||this.label?new ne(new F(A.lon,A.lat),new F(A.lon,A.lat)):new ne(new F(180,90),new F(-180,-90));let t=e.southWest,i=e.northEast;if(this.polyline){let e=this.polyline.getExtent();e.southWest.lon<t.lon&&(t.lon=e.southWest.lon),e.southWest.lat<t.lat&&(t.lat=e.southWest.lat),e.northEast.lon>i.lon&&(i.lon=e.northEast.lon),e.northEast.lat>i.lat&&(i.lat=e.northEast.lat)}if(this.geometry){let e=this.geometry.getExtent();e.southWest.lon<t.lon&&(t.lon=e.southWest.lon),e.southWest.lat<t.lat&&(t.lat=e.southWest.lat),e.northEast.lon>i.lon&&(i.lon=e.northEast.lon),e.northEast.lat>i.lat&&(i.lat=e.northEast.lat)}for(let e=0;e<this.childrenNodes.length;e++){let A=this.childrenNodes[e].getExtent();A.southWest.lon<t.lon&&(t.lon=A.southWest.lon),A.southWest.lat<t.lat&&(t.lat=A.southWest.lat),A.northEast.lon>i.lon&&(i.lon=A.northEast.lon),A.northEast.lat>i.lat&&(i.lat=A.northEast.lat)}return e}isEqual(e){return this.id===e.id}}class Sr extends MA{constructor(e,A){super(e,A),this.events.registerNames(Rr),this.url=A.url||"",this._s=A.subdomains||["a","b","c"],this.minNativeZoom=A.minNativeZoom||0,this.maxNativeZoom=A.maxNativeZoom||19,this._crossOrigin=void 0===A.crossOrigin?"":A.crossOrigin,this._urlRewriteCallback=A.urlRewrite||null}get instanceName(){return"XYZ"}abortLoading(){this._planet&&this._planet._tileLoader.abort()}setVisibility(e){e!==this._visibility&&(super.setVisibility(e),e||this.abortLoading())}setUrl(e){this.url=e}_checkSegment(e){return e._projection.id===zi.id}loadMaterial(e,A){let t=e.segment;this._isBaseLayer?e.texture=t.getDefaultTexture():e.texture=t.planet.transparentTexture,(this._planet.layerLock.isFree()||e.segment.tileZoom<2)&&(e.isReady=!1,e.isLoading=!0,this._checkSegment(t)?(e.loadingAttempts++,this._planet._tileLoader.load({src:this._getHTTPRequestString(e.segment),type:"imageBitmap",filter:()=>t.initialized&&1===t.node.getState()||A,options:{}},(A=>{if("ready"===A.status){if(e.isLoading){let t=this.events.load;t.handlers.length&&this.events.dispatch(t,e),e.applyImage(A.data),A.data=null}}else"abort"===A.status?e.isLoading=!1:"error"===A.status&&e.isLoading&&e.textureNotExists()}))):e.textureNotExists())}_createUrl(e){return ve(this.url,{s:this._getSubdomain(),x:e.tileX.toString(),y:e.tileY.toString(),z:e.tileZoom.toString()})}_getSubdomain(){return this._s[Math.floor(Math.random()*this._s.length)]}_getHTTPRequestString(e){return this._urlRewriteCallback?this._urlRewriteCallback(e,this.url):this._createUrl(e)}setUrlRewriteCallback(e){this._urlRewriteCallback=e}applyMaterial(e){if(e.isReady)return e.texOffset;{let A=e.segment,t=A.node,i=!1,r=this._id,n=e;for(;t.parentNode;)if(t=t.parentNode,n=t.segment.materials[r],n&&n.textureExists){i=!0;break}if(A.passReady){let i=e.layer.maxNativeZoom;if(t.segment.tileZoom===i)e.textureNotExists();else if(e.segment.tileZoom<=i)!e.isLoading&&!e.isReady&&this.loadMaterial(e);else{let t=A.node;for(;t.segment.tileZoom>e.layer.maxNativeZoom;)t=t.parentNode;let i=t.segment.materials[e.layer._id];i?!i.isLoading&&!i.isReady&&this.loadMaterial(i,!0):(i=t.segment.materials[e.layer._id]=e.layer.createMaterial(t.segment),this.loadMaterial(i,!0))}}if(i){e.appliedNode=t,e.appliedNodeId=t.nodeId,e.texture=n.texture;let i=1/(2<<A.tileZoom-t.segment.tileZoom-1);e.texOffset[0]=A.tileX*i-t.segment.tileX,e.texOffset[1]=A.tileY*i-t.segment.tileY,e.texOffset[2]=i,e.texOffset[3]=i}else e.texture=A.planet.transparentTexture,e.texOffset[0]=0,e.texOffset[1]=0,e.texOffset[2]=1,e.texOffset[3]=1}return e.texOffset}clearMaterial(e){e.isReady&&e.textureExists&&(!e.texture.default&&e.segment.handler.gl.deleteTexture(e.texture),e.texture=null,e.image&&(e.image.src="",e.image=null)),e.isReady=!1,e.textureExists=!1,e.isLoading=!1}_correctFullExtent(){var e=this._extent,A=this._extentMerc,t=O+5e4,i=O+5e4;90===e.northEast.lat&&(A.northEast.lat=i),180===e.northEast.lon&&(A.northEast.lon=t),-90===e.southWest.lat&&(A.southWest.lat=-20087508.34),-180===e.southWest.lon&&(A.southWest.lon=-20087508.34),e.northEast.lat>=te&&(e.northEast.lat=te),e.northEast.lat<=ie&&(e.northEast.lat=ie)}}const Rr=["load","loadend"];class kr extends Sr{constructor(e,A){super(e,A),A.extent||this.setExtent(new ne(new F(-180,-90),new F(180,90))),this.layers=A.layers,this.imageWidth=A.imageWidth||256,this.imageHeight=A.imageHeight||256,this._getBbox=kr.get_bbox_v1_1_1,this.setVersion(A.version)}static createRequestUrl(e,A,t="image/png",i="1.1.1",r="GetMap",n,s,a=256,o=256){return`${e}/wms?LAYERS=${A}&FORMAT=${t}&SERVICE=WMS&VERSION=${i}&REQUEST=${r}\n &SRS=${n}&BBOX=${s}&WIDTH=${a}&HEIGHT=${o}`}static get_bbox_v1_1_1(e){return e.getWest()+","+e.getSouth()+","+e.getEast()+","+e.getNorth()}static get_bbox_v1_3_0(e){return e.getSouth()+","+e.getWest()+","+e.getNorth()+","+e.getEast()}_checkSegment(e){return!0}get instanceName(){return"WMS"}_createUrl(e){return kr.createRequestUrl(this.url,this.layers,"image/png",this._version,"GetMap",e._projection.code,this._getBbox(e.getExtent()),this.imageWidth,this.imageHeight)}setVersion(e){this._version=e||"1.1.1","1.1.1"===this._version?this._getBbox=kr.get_bbox_v1_1_1:"1.3.0"===e&&(this._getBbox=kr.get_bbox_v1_3_0)}_correctFullExtent(){var e=this._extent,A=this._extentMerc,t=O+5e4,i=O+5e4;90===e.northEast.lat&&(A.northEast.lat=i),180===e.northEast.lon&&(A.northEast.lon=t),-90===e.southWest.lat&&(A.southWest.lat=-20087508.34),-180===e.southWest.lon&&(A.southWest.lon=-20087508.34)}}var zr=Object.freeze({__proto__:null,CanvasTiles:XA,GeoImage:class extends DA{constructor(e,A){super(e,A),this._image=A.image||null,this._src=A.src||null}get instanceName(){return"GeoImage"}setSrc(e){this._planet&&this._planet._geoImageCreator.remove(this),this._src=e,this._sourceReady=!1}setImage(e){this._planet&&this._planet._geoImageCreator.remove(this),this._image=e,this._src=e.src,this._sourceReady=!1}_createSourceTexture(){this._sourceCreated||(this._sourceTexture=this._planet.renderer.handler.createTexture_n(this._image),this._sourceCreated=!0)}_onLoad(e){this._frameWidth=e.width,this._frameHeight=e.height,this._sourceReady=!0,this._planet._geoImageCreator.add(this)}loadMaterial(e){if(e.isLoading=!0,this._creationProceeding=!0,!this._sourceReady&&this._src)if(this._image){if(this._image.complete)this._onLoad(this._image);else if(this._image.src){let e=this;this._image.addEventListener("load",(function(A){e._onLoad(this)}))}}else{let e=this;this._image=new Image,this._image.addEventListener("load",(function(A){e._onLoad(this)})),this._image.src=this._src}else this._planet._geoImageCreator.add(this)}abortMaterialLoading(e){this._image&&(this._image.src=""),this._creationProceeding=!1,e.isLoading=!1,e.isReady=!1}_renderingProjType1(){var e=this._planet,A=e.renderer.handler,t=A.gl,i=e._geoImageCreator;this._refreshFrame&&this._createFrame(),this._createSourceTexture();var r=i._framebuffer;r.setSize(this._frameWidth,this._frameHeight),r.activate(),A.programs.geoImageTransform.activate();var n=A.programs.geoImageTransform._program,s=n.attributes,a=n.uniforms;t.disable(t.CULL_FACE),r.bindOutputTexture(this._materialTexture),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.bindBuffer(t.ARRAY_BUFFER,i._texCoordsBuffer),t.vertexAttribPointer(s.texCoords,2,t.UNSIGNED_SHORT,!0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this._gridBuffer),t.vertexAttribPointer(s.corners,this._gridBuffer.itemSize,t.FLOAT,!1,0,0),t.uniform4fv(a.extentParams,this._extentMercParams),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.uniform1i(a.sourceTexture,0),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i._indexBuffer),t.drawElements(t.TRIANGLE_STRIP,i._indexBuffer.numItems,t.UNSIGNED_INT,0),r.deactivate(),t.enable(t.CULL_FACE),this._ready=!0,this._creationProceeding=!1}_renderingProjType0(){var e=this._planet,A=e.renderer.handler,t=A.gl,i=e._geoImageCreator;this._refreshFrame&&this._createFrame(),this._createSourceTexture();var r=i._framebuffer;r.setSize(this._frameWidth,this._frameHeight),r.activate(),A.programs.geoImageTransform.activate();var n=A.programs.geoImageTransform._program,s=n.attributes,a=n.uniforms;t.disable(t.CULL_FACE),r.bindOutputTexture(this._materialTexture),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.bindBuffer(t.ARRAY_BUFFER,i._texCoordsBuffer),t.vertexAttribPointer(s.texCoords,2,t.UNSIGNED_SHORT,!0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this._gridBuffer),t.vertexAttribPointer(s.corners,this._gridBuffer.itemSize,t.FLOAT,!1,0,0),t.uniform4fv(a.extentParams,this._extentWgs84Params),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.uniform1i(a.sourceTexture,0),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i._indexBuffer),t.drawElements(t.TRIANGLE_STRIP,i._indexBuffer.numItems,t.UNSIGNED_INT,0),r.deactivate(),t.enable(t.CULL_FACE),this._ready=!0,this._creationProceeding=!1}},GeoTexture2d:class extends DA{constructor(e,A){super(e,A),this._sourceTexture=A.texture||null,A.texture&&(this._sourceReady=!0,this._sourceCreated=!0),this._frameWidth=A.frameWidth?w(A.frameWidth):256,this._frameHeight=A.frameHeight?w(A.frameHeight):256,this._animate=!0}get instanceName(){return"GeoTexture2d"}loadMaterial(e){this._planet._geoImageCreator.add(this)}bindTexture(e){this._sourceReady=!0,this._sourceCreated=!0,this._sourceTexture=e}setSize(e,A){this._frameWidth=e,this._frameHeight=A,this._frameCreated=!1}abortMaterialLoading(e){this._creationProceeding=!1,e.isLoading=!1,e.isReady=!1}_renderingProjType1(){var e=this._planet,A=e.renderer.handler,t=A.gl,i=e._geoImageCreator;this._refreshFrame&&this._createFrame();var r=i._framebuffer;r.setSize(this._frameWidth,this._frameHeight),r.activate(),A.programs.geoImageTransform.activate();var n=A.programs.geoImageTransform._program,s=n.attributes,a=n.uniforms;t.disable(t.CULL_FACE),r.bindOutputTexture(this._materialTexture),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.bindBuffer(t.ARRAY_BUFFER,i._texCoordsBuffer),t.vertexAttribPointer(s.texCoords,2,t.UNSIGNED_SHORT,!0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this._gridBuffer),t.vertexAttribPointer(s.corners,this._gridBuffer.itemSize,t.FLOAT,!1,0,0),t.uniform4fv(a.extentParams,this._extentMercParams),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.uniform1i(a.sourceTexture,0),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i._indexBuffer),t.drawElements(t.TRIANGLE_STRIP,i._indexBuffer.numItems,t.UNSIGNED_INT,0),r.deactivate(),t.enable(t.CULL_FACE),this._ready=!0,this._creationProceeding=!1}_renderingProjType0(){var e=this._planet,A=e.renderer.handler,t=A.gl,i=e._geoImageCreator,r=this._frameWidth,n=this._frameHeight;this._refreshFrame&&this._createFrame();var s=i._framebuffer;s.setSize(r,n),s.activate(),A.programs.geoImageTransform.activate();var a=A.programs.geoImageTransform._program,o=a.attributes,h=a.uniforms;t.disable(t.CULL_FACE),s.bindOutputTexture(this._materialTexture),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.bindBuffer(t.ARRAY_BUFFER,i._texCoordsBuffer),t.vertexAttribPointer(o.texCoords,2,t.UNSIGNED_SHORT,!0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this._gridBuffer),t.vertexAttribPointer(o.corners,this._gridBuffer.itemSize,t.FLOAT,!1,0,0),t.uniform4fv(h.extentParams,this._extentWgs84Params),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.uniform1i(h.sourceTexture,0),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i._indexBuffer),t.drawElements(t.TRIANGLE_STRIP,i._indexBuffer.numItems,t.UNSIGNED_INT,0),s.deactivate(),t.enable(t.CULL_FACE),this._ready=!0,this._creationProceeding=!1}},GeoVideo:class extends DA{constructor(e,A){super(e,A),this._animate=!0,this._video=A.videoElement||null,this._src=A.src||null}get instanceName(){return"GeoVideo"}setSrc(e){this._planet&&this._planet._geoImageCreator.remove(this),this._src=e,this._sourceReady=!1}setVideoElement(e){this._planet&&this._planet._geoImageCreator.remove(this),this._video=e,this._src=e.src,this._sourceReady=!1}setVisibility(e){e!=this._visibility&&(super.setVisibility(e),e?(this._sourceReady&&this._planet._geoImageCreator.add(this),this._video&&this._video.play()):(this._sourceReady&&this._planet._geoImageCreator.remove(this),this._video&&this._video.pause()))}_createSourceTexture(){if(this._sourceCreated){var e=this._planet.renderer.handler.gl;e.bindTexture(e.TEXTURE_2D,this._sourceTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this._video)}else this._sourceTexture=this._planet.renderer.handler.createTexture_n(this._video),this._sourceCreated=!0}_onCanPlay(e){this._frameWidth=e.videoWidth,this._frameHeight=e.videoHeight,e.width=e.videoWidth,e.height=e.videoHeight,e.play(),this._sourceReady=!0,this._planet._geoImageCreator.add(this)}_onError(e){var A="unknown error";switch(e.error.code){case 1:A="video loading aborted";break;case 2:A="network loading error";break;case 3:A="video decoding failed / corrupted data or unsupported codec";break;case 4:A="video not supported"}console.log("Error: "+A+" (errorcode="+e.error.code+")")}loadMaterial(e){if(e.isLoading=!0,this._creationProceeding=!0,!this._sourceReady&&this._src){if(this._video){if(this._video.readyState===this._video.HAVE_ENOUGH_DATA)this._onCanPlay(this._video);else if(this._video.src){let e=this;this._video.addEventListener("canplay",(function(A){e._onCanPlay(this)}))}}else{this._video=document.createElement("video");let e=this;this._video.addEventListener("canplay",(function(){e._onCanPlay(this)})),this._video.addEventListener("error",(function(){e._onError(this)}))}this._video.autoplay=!0,this._video.loop=!0,this._video.src=this._src,this._video.muted="muted",this._video.setAttribute("playsinline","true"),this._video.setAttribute("webkit-playsinline","true")}else this._planet._geoImageCreator.add(this)}abortMaterialLoading(e){this._video&&(this._video.src=""),this._creationProceeding=!1,e.isLoading=!1,e.isReady=!1}_renderingProjType1(){var e=this._planet,A=e.renderer.handler,t=A.gl,i=e._geoImageCreator;this._refreshFrame&&this._createFrame(),this._sourceCreated?(t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,this._video)):(this._sourceTexture=this._planet.renderer.handler.createTexture_n(this._video),this._sourceCreated=!0);var r=i._framebuffer;r.setSize(this._frameWidth,this._frameHeight),r.activate(),A.programs.geoImageTransform.activate();var n=A.programs.geoImageTransform._program,s=n.attributes,a=n.uniforms;t.disable(t.CULL_FACE),r.bindOutputTexture(this._materialTexture),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.bindBuffer(t.ARRAY_BUFFER,i._texCoordsBuffer),t.vertexAttribPointer(s.texCoords,2,t.UNSIGNED_SHORT,!0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this._gridBuffer),t.vertexAttribPointer(s.corners,this._gridBuffer.itemSize,t.FLOAT,!1,0,0),t.uniform4fv(a.extentParams,this._extentMercParams),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.uniform1i(a.sourceTexture,0),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i._indexBuffer),t.drawElements(t.TRIANGLE_STRIP,i._indexBuffer.numItems,t.UNSIGNED_INT,0),r.deactivate(),t.enable(t.CULL_FACE),this._ready=!0,this._creationProceeding=!1}_renderingProjType0(){var e=this._planet,A=e.renderer.handler,t=A.gl,i=e._geoImageCreator;this._refreshFrame&&this._createFrame(),this._sourceCreated?(t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,this._video)):(this._sourceTexture=this._planet.renderer.handler.createTexture_n(this._video),this._sourceCreated=!0);var r=i._framebuffer;r.setSize(this._frameWidth,this._frameHeight),r.activate(),A.programs.geoImageTransform.activate();var n=A.programs.geoImageTransform._program,s=n.attributes,a=n.uniforms;t.disable(t.CULL_FACE),r.bindOutputTexture(this._materialTexture),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.bindBuffer(t.ARRAY_BUFFER,i._texCoordsBuffer),t.vertexAttribPointer(s.texCoords,2,t.UNSIGNED_SHORT,!0,0,0),t.bindBuffer(t.ARRAY_BUFFER,this._gridBuffer),t.vertexAttribPointer(s.corners,this._gridBuffer.itemSize,t.FLOAT,!1,0,0),t.uniform4fv(a.extentParams,this._extentWgs84Params),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,this._sourceTexture),t.uniform1i(a.sourceTexture,0),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i._indexBuffer),t.drawElements(t.TRIANGLE_STRIP,i._indexBuffer.numItems,t.UNSIGNED_INT,0),r.deactivate(),t.enable(t.CULL_FACE),this._ready=!0,this._creationProceeding=!1}},KML:class extends Pi{constructor(e,A={}){super(e,A),this._extent=null,this._billboard=A.billboard||{src:"https://openglobus.org/examples/billboards/carrot.png"},this._color=A.color||"#6689db"}get instanceName(){return"KML"}_extractCoordonatesFromKml(e){return Array.from(e.getElementsByTagName("coordinates")).map((e=>e.textContent.trim())).map((e=>e.replace(/\n/g," ").replace(/\t/g," ").replace(/ +/g," ").split(" ").map((e=>e.split(",").map(parseFloat)))))}_convertCoordonatesIntoEntities(e,A,t){const i=new ne(new F(180,90),new F(-180,-90)),r=e=>{const A=e[0],t=e[1];A<i.southWest.lon&&(i.southWest.lon=A),t<i.southWest.lat&&(i.southWest.lat=t),A>i.northEast.lon&&(i.northEast.lon=A),t>i.northEast.lat&&(i.northEast.lat=t)},n=[];e.forEach((e=>e.forEach((e=>n.push(e)))));return{entities:n.map((e=>{if(1===e.length){const A=e[0],i=new _r({lonlat:A,billboard:t});return r(A),i}if(e.length>1){const t=e.map((e=>(r(e),new F(e[0],e[1],e[2]))));return new _r({polyline:{pathLonLat:[t],thickness:3,color:A,isClosed:!1}})}})),extent:i}}_getXmlContent(e){return new Promise((A=>{const t=new FileReader;t.onload=async e=>A((new DOMParser).parseFromString(e.target.result,"text/xml")),t.readAsText(e)}))}_expandExtents(e,A){return e?(A.southWest.lon<e.southWest.lon&&(e.southWest.lon=A.southWest.lon),A.southWest.lat<e.southWest.lat&&(e.southWest.lat=A.southWest.lat),A.northEast.lon>e.northEast.lon&&(e.northEast.lon=A.northEast.lon),A.northEast.lat>e.northEast.lat&&(e.northEast.lat=A.northEast.lat),e):A}async addKmlFromFiles(e,A=null,t=null){const i=(await Promise.all(e.map(this._getXmlContent))).map(this._extractCoordonatesFromKml),{entities:r,extent:n}=this._convertCoordonatesIntoEntities(i,A||this._color,t||this._billboard);return this._extent=this._expandExtents(this._extent,n),r.forEach(this.add.bind(this)),{entities:r,extent:n}}setColor(e){this._color=e,this._billboard.color=e}_getKmlFromUrl(e){return new Promise(((A,t)=>{const i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="document",i.overrideMimeType("text/xml"),i.onload=()=>{i.readyState===i.DONE&&200===i.status?A(i.responseXML):t(new Error("no valid kml file"))},i.send()}))}async addKmlFromUrl(e,A=null,t=null){const i=await this._getKmlFromUrl(e),r=this._extractCoordonatesFromKml(i),{entities:n,extent:s}=this._convertCoordonatesIntoEntities([r],A||this._color,t||this._billboard);return this._extent=this._expandExtents(this._extent,s),n.forEach(this.add.bind(this)),{entities:n,extent:s}}},Layer:MA,Vector:Pi,WMS:kr,XYZ:Sr}),Hr=Object.freeze({__proto__:null,Box:qi,Sphere:xA});class Fr extends Zi{constructor(e){super("skybox"),this.params=e,this.vertexPositionBuffer=null,this.texture=null}static createDefault(e){return new Fr({nx:e+"skybox/gal/_nx.jpg",px:e+"skybox/gal/_px.jpg",py:e+"skybox/gal/_py.jpg",ny:e+"skybox/gal/_ny.jpg",pz:e+"skybox/gal/_pz.jpg",nz:e+"skybox/gal/_nz.jpg"})}init(){this.renderer.handler.addProgram(new Mt("skybox",{uniforms:{projectionViewMatrix:{type:Bt.MAT4},uSampler:{type:Bt.SAMPLERCUBE},pos:{type:Bt.VEC3}},attributes:{aVertexPosition:{type:Bt.VEC3,enableArray:!0}},vertexShader:"attribute vec3 aVertexPosition;\n uniform mat4 projectionViewMatrix;\n uniform vec3 pos;\n varying vec3 vTextureCoord;\n void main(void) {\n vTextureCoord = aVertexPosition;\n gl_Position = projectionViewMatrix * vec4(aVertexPosition + pos, 1.0);\n }",fragmentShader:"precision lowp float;\n varying vec3 vTextureCoord;\n uniform samplerCube uSampler;\n void main(void) {\n gl_FragColor = textureCube(uSampler, vTextureCoord);\n }"}),!0),this.texture=this.renderer.handler.loadCubeMapTexture(this.params),this._createBuffers(),this.drawMode=this.renderer.handler.gl.TRIANGLES}frame(){var e=this.renderer.handler,A=e.gl,t=this.renderer.activeCamera;A.disable(e.gl.DEPTH_TEST),e.programs.skybox.activate();var i=e.programs.skybox._program,r=i.uniforms;A.uniformMatrix4fv(r.projectionViewMatrix,!1,t.getProjectionViewMatrix()),A.uniform3fv(r.pos,t.eye.toVec()),A.activeTexture(A.TEXTURE0),A.bindTexture(A.TEXTURE_CUBE_MAP,this.texture),A.uniform1i(r.uSampler,0);var n=this.vertexPositionBuffer;A.bindBuffer(A.ARRAY_BUFFER,n),A.vertexAttribPointer(i.attributes.aVertexPosition,n.itemSize,A.FLOAT,!1,0,0),A.drawArrays(this.drawMode,0,n.numItems),e.gl.enable(e.gl.DEPTH_TEST)}_createBuffers(){var e=new Float32Array([-1e8,1e8,-1e8,-1e8,-1e8,-1e8,1e8,-1e8,-1e8,1e8,-1e8,-1e8,1e8,1e8,-1e8,-1e8,1e8,-1e8,-1e8,-1e8,1e8,-1e8,-1e8,-1e8,-1e8,1e8,-1e8,-1e8,1e8,-1e8,-1e8,1e8,1e8,-1e8,-1e8,1e8,1e8,-1e8,-1e8,1e8,-1e8,1e8,1e8,1e8,1e8,1e8,1e8,1e8,1e8,1e8,-1e8,1e8,-1e8,-1e8,-1e8,-1e8,1e8,-1e8,1e8,1e8,1e8,1e8,1e8,1e8,1e8,1e8,1e8,-1e8,1e8,-1e8,-1e8,1e8,-1e8,1e8,-1e8,1e8,1e8,-1e8,1e8,1e8,1e8,1e8,1e8,1e8,-1e8,1e8,1e8,-1e8,1e8,-1e8,-1e8,-1e8,-1e8,-1e8,-1e8,1e8,1e8,-1e8,-1e8,1e8,-1e8,-1e8,-1e8,-1e8,1e8,1e8,-1e8,1e8]);this.vertexPositionBuffer=this.renderer.handler.createArrayBuffer(e,3,e.length/3)}}var Or=Object.freeze({__proto__:null,Planet:Dr,Axes:class extends Zi{constructor(e){super("Axes"),this.size=e||100,this.axesBuffer=null,this.axesColorBuffer=null}init(){this.createAxisBuffer(this.size),this.drawMode=this.renderer.handler.gl.LINES,this.renderer.handler.addProgram(new Mt("axesShader",{uniforms:{projectionViewMatrix:"mat4"},attributes:{aVertexPosition:"vec3",aVertexColor:"vec4"},vertexShader:"attribute vec3 aVertexPosition;\n attribute vec4 aVertexColor;\n uniform mat4 projectionViewMatrix;\n varying vec4 vColor;\n void main(void) {\n gl_Position = projectionViewMatrix * vec4(aVertexPosition, 1.0);\n vColor = aVertexColor;\n }",fragmentShader:"precision highp float;\n varying vec4 vColor;\n void main(void) {\n gl_FragColor = vColor;\n }"}))}frame(){this.renderer.handler.programs.axesShader.activate().set({projectionViewMatrix:this.renderer.activeCamera.getProjectionViewMatrix(),aVertexPosition:this.axisBuffer,aVertexColor:this.axisColorBuffer}),this.renderer.handler.programs.axesShader.drawArrays(this.drawMode,this.axisBuffer.numItems)}createAxisBuffer(e){var A=[0,0,0,e-1,0,0,0,0,0,0,e-1,0,0,0,0,0,0,e-1];this.axisBuffer=this.renderer.handler.createArrayBuffer(new Float32Array(A),3,6),this.axisColorBuffer=this.renderer.handler.createArrayBuffer(new Float32Array([1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,0,1]),4,6)}},SkyBox:Fr}),Qr=Object.freeze({__proto__:null,Entity:_r,EntityCollection:Xt,Billboard:tt,Geometry:ot,Label:ut,PointCloud:xt,Polyline:gt});class Nr{static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}constructor(e){e=e||{},this._id=Nr._staticCounter++,this.name=e.name||"",this.events=new bA(["tick","end"],this),this.startDate=e.startDate||0,this.endDate=e.endDate||0;var A=e.currentDate||sA(new Date);e.startDate&&A<e.startDate&&(A=e.startDate),e.endDate&&A>e.endDate&&(A=e.endDate),this.currentDate=A,this.multiplier=void 0!==e.multiplier?e.multiplier:1,this.deltaTicks=0,this.active=!0,this._intervalDelay=0,this._intervalStart=0,this._intervalCallback=null}clearInterval(){this._intervalDelay=0,this._intervalStart=0,this._intervalCallback=null}setInterval(e,A){this._intervalStart=this.currentDate,this._intervalDelay=e*tA,this._intervalCallback=A}setDate(e){var A=sA(e);this.startDate&&A<this.startDate&&(A=this.startDate),this.endDate&&A>this.endDate&&(A=this.endDate),this.currentDate=A}getDate(){return hA(this.currentDate)}reset(){this.startDate&&(this.currentDate=this.startDate)}_tick(e){if(this.deltaTicks=e*this.multiplier,this.active){var A=lA(this.currentDate,this.deltaTicks);this.multiplier>0?this.endDate&&A>this.endDate?(this.currentDate=this.startDate,this.events.dispatch(this.events.end,this)):this.currentDate=A:this.startDate&&A<this.startDate?(this.currentDate=this.endDate,this.events.dispatch(this.events.end,this)):this.currentDate=A,this._intervalCallback&&this.currentDate-this._intervalStart>=this._intervalDelay&&(this._intervalStart=this.currentDate,this._intervalCallback(this)),this.events.dispatch(this.events.tick,this)}}equal(e){return this._id===e._id}}class Ur{constructor(e,A){this._program=A,this._handler=e,this._activated=!1}initialize(){this._program.createProgram(this._handler.gl)}getProgram(){return this._program}activate(){if(!this._activated){this._handler.activeProgram.deactivate(),this._handler.activeProgram=this;var e=this._program;this._activated=!0,e.enableAttribArrays(),e.use()}return this}remove(){var e=this._handler.programs;e[this._program.name]&&(this._activated&&this.deactivate(),this._program.delete(),e[this._program.name]=null,delete e[this._program.name])}deactivate(){this._program.disableAttribArrays(),this._activated=!1}isActive(){return this._activated}set(e){return this.activate(),this._program.set(e),this}drawIndexBuffer(e,A){return this._program.drawIndexBuffer(e,A),this}drawArrays(e,A){return this._program.drawArrays(e,A),this}}class Gr{constructor(){this.next=null,this.prev=null,this.data=null}}class Yr{constructor(e=256){this._current=new Gr,this._head=this._current;for(var A=0;A<e;A++){var t=new Gr;t.prev=this._current,this._current.next=t,this._current=t}this._current=this._head}current(){return this._current}push(e){this._current=this._current.next,this._current.data=e}pop(e){return this._current=this._current.prev,this._current.next.data}popPrev(e){return this._current=this._current.prev,this._current.data}}const Vr=["","WEBKIT_","MOZ_"];class Kr{constructor(e,A){A=A||{},this.defaultClock=new Nr,this._clocks=[],this.deltaTime=0,this.canvas=null,this.gl=null,this.programs={},this.activeProgram=null,this._params=A||{},this._params.anisotropy=this._params.anisotropy||4,this._params.width=this._params.width||256,this._params.height=this._params.height||256,this._params.pixelRatio=this._params.pixelRatio||1,this._params.context=this._params.context||{},this._params.extensions=this._params.extensions||[],this._oneByHeight=1/(this._params.height*this._params.pixelRatio),this.extensions={},this._id=e,this._lastAnimationFrameTime=0,this._initialized=!1,this._frameCallback=function(){},this.transparentTexture=null,this.framebufferStack=new Yr,this.createTexture={NEAREST:null,LINEAR:null,MIPMAP:null,ANISOTROPIC:null},this.createTextureDefault=null,(A.autoActivate||ce(A.autoActivate))&&this.initialize()}static getExtension(e,A){let t,i;for(t in Vr)if(i=e.getExtension(Vr[t]+A),i)return i;return null}static getContext(e,A){const t=["webgl2","webgl"];let i=null;try{for(let r=0;r<t.length;r++)if(i=e.getContext(t[r],A),i){console.log(t[r]),i.type=t[r];break}}catch(e){bt.logErr("exception during the GL context initialization")}return i||bt.logErr("could not initialise WebGL"),i}setFrameCallback(e){e&&(this._frameCallback=e)}createEmptyTexture2DExt(e=1,A=1,t="NEAREST",i="RGBA",r="RGBA",n="UNSIGNED_BYTE",s=0){let a=this.gl,o=a.createTexture();return a.bindTexture(a.TEXTURE_2D,o),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),a.texImage2D(a.TEXTURE_2D,s,a[i.toUpperCase()],e,A,0,a[r.toUpperCase()],a[n.toUpperCase()],null),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a[t.toUpperCase()]),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a[t.toUpperCase()]),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.bindTexture(a.TEXTURE_2D,null),o}createEmptyTexture_n(e,A,t){let i=this.gl,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.texImage2D(i.TEXTURE_2D,0,t||i.RGBA,e,A,0,i.RGBA,i.UNSIGNED_BYTE,null),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.bindTexture(i.TEXTURE_2D,null),r}createEmptyTexture_l(e,A,t){let i=this.gl,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.texImage2D(i.TEXTURE_2D,0,t||i.RGBA,e,A,0,i.RGBA,i.UNSIGNED_BYTE,null),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.bindTexture(i.TEXTURE_2D,null),r}createTexture_n_webgl1(e,A){var t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.texImage2D(t.TEXTURE_2D,0,A||t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}createTexture_l_webgl1(e,A){let t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.texImage2D(t.TEXTURE_2D,0,A||t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}createTexture_mm_webgl1(e,A){let t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.texImage2D(t.TEXTURE_2D,0,A||t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.generateMipmap(t.TEXTURE_2D),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}createTexture_a_webgl1(e,A){let t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.texImage2D(t.TEXTURE_2D,0,A||t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.generateMipmap(t.TEXTURE_2D),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.texParameterf(t.TEXTURE_2D,this.extensions.EXT_texture_filter_anisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this._params.anisotropy),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}createTexture_n_webgl2(e,A){var t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.texStorage2D(t.TEXTURE_2D,1,A||t.RGBA8,e.width,e.height),t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.width,e.height,t.RGBA,t.UNSIGNED_BYTE,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}createTexture_l_webgl2(e,A){let t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.texStorage2D(t.TEXTURE_2D,1,A||t.RGBA8,e.width,e.height),t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.width,e.height,t.RGBA,t.UNSIGNED_BYTE,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}createTexture_mm_webgl2(e,A){let t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.texStorage2D(t.TEXTURE_2D,2,A||t.RGBA8,e.width,e.height),t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.width,e.height,t.RGBA,t.UNSIGNED_BYTE,e),t.generateMipmap(t.TEXTURE_2D),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}createTexture_a_webgl2(e,A){let t=this.gl,i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.texStorage2D(t.TEXTURE_2D,2,A||t.RGBA8,e.width,e.height),t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.width,e.height,t.RGBA,t.UNSIGNED_BYTE,e),t.generateMipmap(t.TEXTURE_2D),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.texParameterf(t.TEXTURE_2D,this.extensions.EXT_texture_filter_anisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this._params.anisotropy),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.bindTexture(t.TEXTURE_2D,null),i}loadCubeMapTexture(e){let A=this.gl,t=A.createTexture();A.bindTexture(A.TEXTURE_CUBE_MAP,t),A.texParameteri(A.TEXTURE_CUBE_MAP,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_CUBE_MAP,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_CUBE_MAP,A.TEXTURE_MIN_FILTER,A.LINEAR),A.texParameteri(A.TEXTURE_CUBE_MAP,A.TEXTURE_MAG_FILTER,A.LINEAR);let i=[[e.px,A.TEXTURE_CUBE_MAP_POSITIVE_X],[e.nx,A.TEXTURE_CUBE_MAP_NEGATIVE_X],[e.py,A.TEXTURE_CUBE_MAP_POSITIVE_Y],[e.ny,A.TEXTURE_CUBE_MAP_NEGATIVE_Y],[e.pz,A.TEXTURE_CUBE_MAP_POSITIVE_Z],[e.nz,A.TEXTURE_CUBE_MAP_NEGATIVE_Z]],r=new Ft;r.fillEmpty();let n=r.getImage();for(let e=0;e<i.length;e++){let r=i[e][1];A.bindTexture(A.TEXTURE_CUBE_MAP,t),A.pixelStorei(A.UNPACK_FLIP_Y_WEBGL,!1),A.texImage2D(r,0,A.RGBA,A.RGBA,A.UNSIGNED_BYTE,n)}for(let e=0;e<i.length;e++){let r=i[e][1],n=new Image;n.crossOrigin="",n.onload=function(e,t,i){return function(){A.bindTexture(A.TEXTURE_CUBE_MAP,e),A.pixelStorei(A.UNPACK_FLIP_Y_WEBGL,!1),A.texImage2D(t,0,A.RGBA,A.RGBA,A.UNSIGNED_BYTE,i)}}(t,r,n),n.src=i[e][0]}return t}addProgram(e,A){if(this.programs[e.name])console.log("og.webgl.Handler:284 - shader program: '"+e.name+"' is allready exists.");else{let t=new Ur(this,e);this.programs[e.name]=t,this._initProgramController(t),A&&(t._activated=!1)}return e}removeProgram(e){this.programs[e]&&this.programs[e].remove()}addPrograms(e){for(let A=0;A<e.length;A++)this.addProgram(e[A])}_initProgramController(e){this._initialized&&(e.initialize(),this.activeProgram?(e.deactivate(),this.activeProgram._program.enableAttribArrays(),this.activeProgram._program.use()):(this.activeProgram=e,e.activate()))}_initPrograms(){for(let e in this.programs)this._initProgramController(this.programs[e])}initializeExtension(e,A){if(!this.extensions||!this.extensions[e]){let t=Kr.getExtension(this.gl,e);t?this.extensions[e]=t:A&&console.log("og.webgl.Handler: extension '"+e+"' doesn't initialize.")}return this.extensions&&this.extensions[e]}initialize(){this._id?this.canvas=document.getElementById(this._id):(this.canvas=document.createElement("canvas"),this.canvas.width=this._params.width,this.canvas.height=this._params.height),this.gl=Kr.getContext(this.canvas,this._params.context),this._initialized=!0,this._params.extensions.push("EXT_texture_filter_anisotropic"),"webgl"===this.gl.type?(this._params.extensions.push("OES_standard_derivatives"),this._params.extensions.push("OES_element_index_uint"),this._params.extensions.push("WEBGL_depth_texture")):(this._params.extensions.push("EXT_color_buffer_float"),this._params.extensions.push("OES_texture_float_linear"));let e=this._params.extensions.length;for(;e--;)this.initializeExtension(this._params.extensions[e],!0);"webgl"===this.gl.type?(this.createTexture_n=this.createTexture_n_webgl1.bind(this),this.createTexture_l=this.createTexture_l_webgl1.bind(this),this.createTexture_mm=this.createTexture_mm_webgl1.bind(this),this.createTexture_a=this.createTexture_a_webgl1.bind(this)):(this.createTexture_n=this.createTexture_n_webgl2.bind(this),this.createTexture_l=this.createTexture_l_webgl2.bind(this),this.createTexture_mm=this.createTexture_mm_webgl2.bind(this),this.createTexture_a=this.createTexture_a_webgl2.bind(this)),this.createTexture.NEAREST=this.createTexture_n,this.createTexture.LINEAR=this.createTexture_l,this.createTexture.MIPMAP=this.createTexture_mm,this.createTexture.ANISOTROPIC=this.createTexture_a,this.extensions.EXT_texture_filter_anisotropic?this.createTextureDefault=this.createTexture_a:this.createTextureDefault=this.createTexture_mm,this._initPrograms(),this._setDefaults()}_setDefaults(){this.activateDepthTest(),this.setSize(this.canvas.clientWidth||this._params.width,this.canvas.clientHeight||this._params.height),this.gl.frontFace(this.gl.CCW),this.gl.cullFace(this.gl.BACK),this.activateFaceCulling(),this.deactivateBlending();let e=this;this.createDefaultTexture({color:"rgba(0,0,0,0.0)"},(function(A){e.transparentTexture=A}))}activateDepthTest(){this.gl.enable(this.gl.DEPTH_TEST)}deactivateDepthTest(){this.gl.disable(this.gl.DEPTH_TEST)}activateFaceCulling(){this.gl.enable(this.gl.CULL_FACE)}deactivateFaceCulling(){this.gl.disable(this.gl.CULL_FACE)}activateBlending(){this.gl.enable(this.gl.BLEND)}deactivateBlending(){this.gl.disable(this.gl.BLEND)}createStreamArrayBuffer(e,A,t,i=4){let r=this.gl.createBuffer();return this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,A*e*i,t||this.gl.STREAM_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),r.itemSize=e,r.numItems=A,r}setStreamArrayBuffer(e,A,t=0){let i=this.gl;return i.bindBuffer(this.gl.ARRAY_BUFFER,e),i.bufferSubData(this.gl.ARRAY_BUFFER,t,A),i.bindBuffer(this.gl.ARRAY_BUFFER,null),e}createArrayBuffer(e,A,t,i){let r=this.gl.createBuffer();return this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,e,i||this.gl.STATIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),r.itemSize=A,r.numItems=t,r}createArrayBufferLength(e,A){let t=this.gl.createBuffer();return this.gl.bindBuffer(this.gl.ARRAY_BUFFER,t),this.gl.bufferData(this.gl.ARRAY_BUFFER,e,A||this.gl.STATIC_DRAW),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),t.itemSize=1,t.numItems=e,t}createElementArrayBuffer(e,A,t,i){let r=this.gl.createBuffer();return this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER,e,i||this.gl.STATIC_DRAW),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,null),r.itemSize=A,r.numItems=t||e.length,r}setSize(e,A){this._params.width=e,this._params.height=A,this.canvas.width=e*this._params.pixelRatio,this.canvas.height=A*this._params.pixelRatio,this._oneByHeight=1/this.canvas.height,this.gl&&this.gl.viewport(0,0,e,A),this.onCanvasResize&&this.onCanvasResize(this.canvas)}get pixelRatio(){return this._params.pixelRatio}set pixelRatio(e){this._params.pixelRatio=e,this.setSize(this._params.width,this._params.height)}getWidth(){return this.canvas.width}getHeight(){return this.canvas.height}getClientAspect(){return this.canvas.clientWidth/this.canvas.clientHeight}getCenter(){let e=this.canvas;return new de(Math.round(.5*e.width),Math.round(.5*e.height))}drawFrame(){let e=window.performance.now();this.deltaTime=e-this._lastAnimationFrameTime,this._lastAnimationFrameTime=e,this.defaultClock._tick(this.deltaTime);for(let e=0;e<this._clocks.length;e++)this._clocks[e]._tick(this.deltaTime);let A=this.canvas;Math.floor(A.clientWidth*this._params.pixelRatio)===A.width&&Math.floor(A.clientHeight*this._params.pixelRatio)===A.height||this.setSize(A.clientWidth,A.clientHeight),this._frameCallback()}clearFrame(){let e=this.gl;this.gl.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}start(){!this._requestAnimationFrameId&&this._initialized&&(this._lastAnimationFrameTime=window.performance.now(),this.defaultClock.setDate(new Date),this._animationFrameCallback())}stop(){this._requestAnimationFrameId&&(window.cancelAnimationFrame(this._requestAnimationFrameId),this._requestAnimationFrameId=null)}_animationFrameCallback(){this._requestAnimationFrameId=window.requestAnimationFrame((()=>{this.drawFrame(),this._animationFrameCallback()}))}createDefaultTexture(e,A){let t,i;if(e&&e.color)t=new Ft(2,2),t.fillColor(e.color),i=this.createTexture_n_webgl2(t._canvas),i.default=!0,A(i);else if(e&&e.url){let t=new Image,r=this;t.onload=function(){i=r.createTexture(this),i.default=!0,A(i)},t.src=e.url}else t=new Ft(2,2),t.fillColor("#C5C5C5"),i=this.createTexture_n_webgl2(t._canvas),i.default=!0,A(i)}destroy(){let e=this.gl;this.stop();for(let e in this.programs)this.removeProgram(e);e.deleteTexture(this.transparentTexture),this.transparentTexture=null,this.framebufferStack=null,this.framebufferStack=new Yr,this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.canvas.width=1,this.canvas.height=1,this.canvas=null;let A=e.getParameter(e.MAX_VERTEX_ATTRIBS),t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t);for(let t=0;t<A;++t)e.disableVertexAttribArray(t),e.vertexAttribPointer(t,4,e.FLOAT,!1,0,0),e.vertexAttrib1f(t,0);e.deleteBuffer(t);let i=e.getParameter(e.MAX_TEXTlURE_IMAGE_UNITS);for(let A=0;A<i;++A)e.activeTexture(e.TEXTURE0+A),e.bindTexture(e.TEXTURE_CUBE_MAP,null),e.bindTexture(e.TEXTURE_2D,null);e.activeTexture(e.TEXTURE0),e.useProgram(null),e.bindBuffer(e.ARRAY_BUFFER,null),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindRenderbuffer(e.RENDERBUFFER,null),e.disable(e.BLEND),e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.DITHER),e.disable(e.SCISSOR_TEST),e.blendColor(0,0,0,0),e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ONE,e.ZERO),e.clearColor(0,0,0,0),e.clearDepth(1),e.clearStencil(-1),this.gl=null,this._initialized=!1}addClock(e){e.__handler||(e.__handler=this,this._clocks.push(e))}addClocks(e){for(let A=0;A<e.length;A++)this.addClock(e[A])}removeClock(e){if(e.__handler){let A=this._clocks,t=A.length;for(;t--;)if(A[t].equal(e)){e.__handler=null,A.splice(t,1);break}}}}class Jr{constructor(e,A){A=A||{},this.handler=e,this._internalFormat=A.internalFormat?A.internalFormat.toUpperCase():"RGBA8",this._fbo=null,this._depthRenderbuffer=null,this._width=A.width||e.canvas.width,this._height=A.height||e.canvas.height,this._msaa=null!=A.msaa?A.msaa:4,this._useDepth=null==A.useDepth||A.useDepth,this._depthComponent=null!=A.depthComponent?A.depthComponent:"DEPTH_COMPONENT16",this._active=!1,this._size=A.size||1,this._filter=A.filter||"NEAREST",this._glFilter=null,this.renderbuffers=new Array(this._size)}destroy(){for(var e=this.handler.gl,A=0;A<this.renderbuffers.length;A++)e.deleteRenderbuffer(this.renderbuffers[A]);this.renderbuffers=new Array(this._size),e.deleteFramebuffer(this._fbo),e.deleteRenderbuffer(this._depthRenderbuffer),this._depthRenderbuffer=null,this._fbo=null,this._active=!1}init(){var e=this.handler.gl;this._glFilter=e[this._filter],this._fbo=e.createFramebuffer(),e.bindFramebuffer(e.FRAMEBUFFER,this._fbo);let A=[];for(var t=0;t<this.renderbuffers.length;t++){let i=e.createRenderbuffer();e.bindRenderbuffer(e.RENDERBUFFER,i),e.renderbufferStorageMultisample(e.RENDERBUFFER,this._msaa,e[this._internalFormat],this._width,this._height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0+t,e.RENDERBUFFER,i),A.push(e.COLOR_ATTACHMENT0+t),this.renderbuffers[t]=i,e.bindRenderbuffer(e.RENDERBUFFER,null)}return e.drawBuffers(A),this._useDepth&&(this._depthRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,this._depthRenderbuffer),e.renderbufferStorageMultisample(e.RENDERBUFFER,this._msaa,e[this._depthComponent],this._width,this._height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this._depthRenderbuffer),e.bindRenderbuffer(e.RENDERBUFFER,null)),e.bindFramebuffer(e.FRAMEBUFFER,null),this}blitTo(e,A=0){let t=this.handler.gl;t.bindFramebuffer(t.READ_FRAMEBUFFER,this._fbo),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,e._fbo),t.readBuffer(t.COLOR_ATTACHMENT0+A),t.clearBufferfv(t.COLOR,0,[0,0,0,1]),t.blitFramebuffer(0,0,this._width,this._height,0,0,e._width,e._height,t.COLOR_BUFFER_BIT,this._glFilter),t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null)}setSize(e,A,t){this._width=e,this._height=A,this._active&&this.handler.gl.viewport(0,0,this._width,this._height),(this._useDepth||t)&&(this.destroy(),this.init())}isComplete(){var e=this.handler.gl;return e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE}activate(){var e=this.handler.gl;e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindFramebuffer(e.FRAMEBUFFER,this._fbo),e.viewport(0,0,this._width,this._height),this._active=!0;var A=this.handler.framebufferStack.current().data;return A&&(A._active=!1),this.handler.framebufferStack.push(this),this}deactivate(){var e=this.handler,A=e.gl;A.bindFramebuffer(A.FRAMEBUFFER,null),this._active=!1;var t=this.handler.framebufferStack.popPrev();t?(A.bindFramebuffer(A.FRAMEBUFFER,t._fbo),A.viewport(0,0,t._width,t._height)):A.viewport(0,0,e.canvas.width,e.canvas.height)}}var jr=Object.freeze({__proto__:null,Framebuffer:Ot,Handler:Kr,Multisample:Jr,types:Bt,Program:Mt});class Wr{constructor(e={}){this.equalizeVertices=!1,this.equalizeNormals=!1,this.isEmpty=!0,this.name="empty",this.minZoom=1e6,this.maxZoom=21,this.gridSizeByZoom=e.gridSizeByZoom||[32,16,16,8,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],this._maxNodeZoom=this.gridSizeByZoom.length-1,this.plainGridSize=2,this._planet=null,this._geoid=null}static checkNoDataValue(e,A){return-1!==Pe(e,A)}isBlur(){return!1}set maxNodeZoom(e){e>this.gridSizeByZoom.length-1&&(e=this.gridSizeByZoom.length-1),this._maxNodeZoom=e}get maxNodeZoom(){return this._maxNodeZoom}set geoid(e){this._geoid=e}get geoid(){return this._geoid}handleSegmentTerrain(e){e.terrainIsLoading=!1,e.terrainReady=!0,e.terrainExists=!0}isReady(){return this._geoid&&this._geoid.model||!this._geoid}abortLoading(){}clearCache(){}}const Xr=["load","loadend"];class Zr extends Wr{constructor(e,A){super(),A=A||{},this.events=new bA(Xr,this),this.isEmpty=!1,this.equalizeNormals=!0,this.name=e||"",this.minZoom=A.minZoom||2,this.maxZoom=A.maxZoom||14,this.url=A.url||"//srtm3.openglobus.org/{z}/{y}/{x}.ddm",this.gridSizeByZoom=A.gridSizeByZoom||[64,32,32,16,16,8,8,8,8,16,16,16,16,32,32,16,8,4,2,2,2,2,2,2],this.noDataValues=A.noDataValues||[],this.plainGridSize=A.plainGridSize||32,this._geoid=A.geoid||new br({src:A.geoidSrc||"//openglobus.org/geoid/egm84-30.pgm"}),this._extent=Ie(A.extent,new ne(new F(-180,-90),new F(180,90))),this._dataType="arrayBuffer",this._maxNodeZoom=this.gridSizeByZoom.length-1,this._elevationCache={},this._fetchCache={},this._loader=new Li,this._urlRewriteCallback=A.urlRewrite||null}clearCache(){for(let e in this._elevationCache)this._elevationCache[e].heights=null,this._elevationCache[e].extent=null,delete this._elevationCache[e];this._elevationCache=null,this._elevationCache={};for(let e in this._fetchCache)this._fetchCache[e]=null,delete this._fetchCache[e];this._fetchCache=null,this._fetchCache={}}getGeoid(){return this._geoid}isBlur(e){return e.tileZoom>=8}getHeightAsync(e,A,t){if(!e||e.lat>te||e.lat<ie)return A(0),!0;let i=t||this.maxZoom,r=Math.pow(2,i),n=Q/r,s=Z(e),a=Math.floor((O+s.lon)/n),o=Math.floor((O-s.lat)/n),h=MA.getTileIndex(a,o,i),l=this._elevationCache[h];if(l)return l.heights?A(this._getGroundHeightMerc(s,l)):A(this._geoid.getHeightLonLat(e)),!0;if(!this._fetchCache[h]){let e=ve(this.url,{x:a,y:o,z:i});this._fetchCache[h]=this._loader.fetch({src:e,type:this._dataType})}return this._fetchCache[h].then((t=>{if("ready"===t.status){let e={heights:this._createHeights(t.data),extent:Ae(a,o,i)};this._elevationCache[h]=e,A(this._getGroundHeightMerc(s,e))}else if("error"===t.status){let t={heights:null,extent:Ae(a,o,i)};this._elevationCache[h]=t,A(this._geoid.getHeightLonLat(e))}else this._fetchCache[h]=null,delete this._fetchCache[h]})),!1}getTileCache(e,A){if(!e||e.lat>te||e.lat<ie)return;let t=Math.pow(2,A),i=Q/t,r=Z(e),n=Math.floor((O+r.lon)/i),s=Math.floor((O-r.lat)/i),a=MA.getTileIndex(n,s,A);return this._elevationCache[a]}_getGroundHeightMerc(e,A){if(!A.extent||!A.heights)return 0;let t=A.extent.getWidth(),i=Math.sqrt(A.heights.length),r=t/(i-1),n=i-Math.ceil((e.lat-A.extent.southWest.lat)/r)-1,s=Math.floor((e.lon-A.extent.southWest.lon)/r),a=(n+1)*i+s,o=a+1,h=n*i+s,l=h+1,d=A.heights[a],c=A.heights[o],u=A.heights[h],g=A.heights[l],f=new le(A.extent.southWest.lon+r*s,d,A.extent.northEast.lat-r*n-r),p=new le(f.x+r,c,f.z),m=new le(f.x,u,f.z+r),x=new le(f.x+r,g,f.z+r),v=new le(e.lon,1e5,e.lat),y=new vA(v,new le(0,-1,0)),w=new le,C=y.hitTriangle(f,p,m,w);return C===vA.INSIDE?w.y:(C=y.hitTriangle(p,x,m,w),C===vA.INSIDE?w.y:void 0)}abortLoading(){this._loader.abort()}setUrl(e){this.url=e}setName(e){this.name=e}isReadyToLoad(e){return e._projection.id===zi.id&&this._extent.overlaps(e.getExtentLonLat())}loadTerrain(e,A){if(this._planet.terrainLock.isFree())if(e.terrainReady=!1,e.terrainIsLoading=!0,this.isReadyToLoad(e)){let t=this._elevationCache[e.tileIndex];t?this._applyElevationsData(e,t.heights):this._loader.load({src:this._getHTTPRequestString(e),segment:e,type:this._dataType,filter:()=>e.plainReady&&0!==e.node.getState()||A},(A=>{if("ready"===A.status){let t=this._createHeights(A.data,e);this._elevationCache[e.tileIndex]={heights:t,extent:e.getExtent()},this._applyElevationsData(e,t)}else"abort"===A.status?e.terrainIsLoading=!1:"error"===A.status?this._applyElevationsData(e,null):e.terrainIsLoading=!1}))}else e.elevationsNotExists();else e.terrainIsLoading=!1}_createUrl(e){return ve(this.url,{x:e.tileX.toString(),y:e.tileY.toString(),z:e.tileZoom.toString()})}_getHTTPRequestString(e){return this._urlRewriteCallback?this._urlRewriteCallback(e,this.url):this._createUrl(e)}setUrlRewriteCallback(e){this._urlRewriteCallback=e}_createHeights(e){return new Float32Array(e)}_applyElevationsData(e,A){if(e){var t=this.events.load;t.handlers.length&&this.events.dispatch(t,{elevations:A,segment:e}),e.applyTerrain(A)}}}class qr extends Zr{constructor(e,A){super(e,A),A=A||{},this.equalizeVertices=null==A.equalizeVertices||A.equalizeVertices,this.equalizeNormals=A.equalizeNormals||!1,this.minZoom=null!=A.minZoom?A.minZoom:2,this.maxZoom=null!=A.maxZoom?A.maxZoom:17,this.gridSizeByZoom=A.gridSizeByZoom||[64,32,16,8,8,8,8,16,16,16,16,16,32,16,32,16,32,16,32,16,8,4],this.url=null!=A.url?A.url:`//api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=${A.key||"pk.eyJ1IjoiZm94bXVsZGVyODMiLCJhIjoiY2pqYmR3dG5oM2Z1bzNrczJqYm5pODhuNSJ9.Y4DRmEPhb-XSlCR9CAXACQ"}`,this.noDataValues=A.noDataValues||[-65537,-1e4],this.plainGridSize=A.plainGridSize||128,this._dataType="imageBitmap",this._imageSize=A.imageSize||256,this._ctx=this._createTemporalCanvas(this._imageSize)}isBlur(e){return e.tileZoom>=18}_createTemporalCanvas(e){let A=document.createElement("canvas");return A.width=e,A.height=e,A.getContext("2d")}_createHeights(e,A){const t=e.width;this._ctx.clearRect(0,0,t,t),this._ctx.drawImage(e,0,0);let i=this._ctx.getImageData(0,0,t,t).data;if(!y(this._imageSize)&&t===this._imageSize){let e=new Float32Array(t*t);return function(e,A){for(let t=0,i=A.length;t<i;t++){let i=4*t;A[t]=.1*(256*e[i]*256+256*e[i+1]+e[i+2])-1e4}}(i,e),e}let r=(this.plainGridSize+1)*(this.plainGridSize+1),n=t/this.plainGridSize,s=new Float32Array(r),a=new Array(n);for(let e=0;e<n;e++){a[e]=[];for(let A=0;A<n;A++)a[e][A]=new Float32Array(r)}!function(e,A,t,i){let r=Math.sqrt(t.length)-1,n=r+1,s=Math.sqrt(e.length/4),a=s/r,o=0,h=0,l=0;for(let d=0,c=0,u=e.length/4;d<u;d++){let u=4*d,g=.1*(256*e[u]*256+256*e[u+1]+e[u+2])-1e4,f=qr.checkNoDataValue(A,g),p=!1,m=!1,x=Math.floor(d/s),v=d%s,y=Math.floor(v/r),w=Math.floor(x/r),C=i[w][y],B=x%r,E=v%r,T=(B+w)*n+E+y;if(C[T]=g,(x+w)%a==0&&(v+y)%a==0&&(t[c++]=g),(v+1)%r==0&&v!==s-1){o=.1*(256*e[u+4]*256+256*e[u+5]+e[u+6])-1e4,p=qr.checkNoDataValue(A,o);let s=g;f||p||(s=.5*(g+o)),T=(B+w)*n+E+1,C[T]=s,(x+w)%a==0&&(t[c++]=s);let h=(B+w)*n+(E+1)%r;i[w][y+1][h]=s}if((x+1)%r==0&&x!==s-1){l=4*s,h=.1*(256*e[u+l]*256+256*e[u+l+1]+e[u+l+2])-1e4,m=qr.checkNoDataValue(A,h);let o=.5*(g+h);f||m||(o=.5*(g+h)),T=(B+1)*n+E+y,C[T]=o,(v+y)%a==0&&(t[c++]=o);let d=(B+1)%r*n+E+y;i[w+1][y][d]=o}if((v+1)%r==0&&v!==s-1&&(x+1)%r==0&&x!==s-1){let s=.1*(256*e[u+l+4]*256+256*e[u+l+5]+e[u+l+6])-1e4,a=qr.checkNoDataValue(A,s),d=g;f||p||m||a||(d=.25*(g+o+h+s)),T=(B+1)*n+(E+1),C[T]=d,t[c++]=d;let x=(B+1)*n;i[w][y+1][x]=d;let v=r;i[w+1][y][v]=d;let b=0;i[w+1][y+1][b]=d}}}(i,this.noDataValues,s,a),this._elevationCache[A.tileIndex]={heights:s,extent:A.getExtent()};for(let e=0;e<n;e++)for(let t=0;t<n;t++){let i=2*A.tileX+t,r=2*A.tileY+e,n=A.tileZoom+1,s=MA.getTileIndex(i,r,n);this._elevationCache[s]={heights:a[e][t],extent:Ae(i,r,n)}}return s}}class $r extends Zr{constructor(e){super("bil",e),e=e||{},this.equalizeVertices=!0,this.equalizeNormals=!0,this.minZoom=e.minZoom||2,this.maxZoom=e.maxZoom||14,this.noDataValues=e.noDataValues||[-9999,32767],this.url=e.url||"",this._format="application/bil16",this._layers=e.layers||"",this._imageSize=e.imageSize||256,this.plainGridSize=null!=e.plainGridSize?e.plainGridSize:y(this._imageSize)?this._imageSize/2:w(this._imageSize)/2,this._dataType="arrayBuffer"}isBlur(e){return e.tileZoom>=18}_createUrl(e){return kr.createRequestUrl(this.url,this._layers,this._format,"1.1.1","GetMap",e._projection.code,kr.get_bbox_v1_1_1(e.getExtent()),this._imageSize,this._imageSize)}_createHeights(e,A){let t=new Int16Array(e);if(!y(this._imageSize)){let e=new Float32Array(t.length);return function(e,A){for(let t=0,i=A.length;t<i;t++)A[t]=e[t]}(t,e),e}let i=(this.plainGridSize+1)*(this.plainGridSize+1),r=new Array(4);for(let e=0;e<4;e++){r[e]=[];for(let A=0;A<4;A++)r[e][A]=new Float32Array(i)}let n=new Float32Array(i);!function(e,A,t,i){let r=Math.sqrt(t.length)-1,n=r+1,s=Math.sqrt(e.length),a=s/r,o=0,h=0;for(let l=0,d=0,c=e.length;l<c;l++){let c=e[l],u=$r.checkNoDataValue(A,c),g=!1,f=!1,p=Math.floor(l/s),m=l%s,x=Math.floor(m/r),v=Math.floor(p/r),y=i[v][x],w=p%r,C=m%r,B=(w+v)*n+C+x;if(y[B]=c,(p+v)%a==0&&(m+x)%a==0&&(t[d++]=c),(m+1)%r==0&&m!==s-1){o=e[l],g=$r.checkNoDataValue(A,o);let s=c;u||g||(s=.5*(c+o)),B=(w+v)*n+C+1,y[B]=s,(p+v)%a==0&&(t[d++]=s);let h=(w+v)*n+(C+1)%r;i[v][x+1][h]=s}if((p+1)%r==0&&p!==s-1){h=e[l+s],f=$r.checkNoDataValue(A,h);let o=c;u||f||(o=.5*(c+h)),B=(w+1)*n+C+x,y[B]=o,(m+x)%a==0&&(t[d++]=o);let g=(w+1)%r*n+C+x;i[v+1][x][g]=o}if((m+1)%r==0&&m!==s-1&&(p+1)%r==0&&p!==s-1){let a=e[l+s+1],p=$r.checkNoDataValue(A,a),m=c;u||g||f||p||(m=.25*(c+o+h+a)),B=(w+1)*n+(C+1),y[B]=m,t[d++]=m;let E=(w+1)*n;i[v][x+1][E]=m;let T=r;i[v+1][x][T]=m;let b=0;i[v+1][x+1][b]=m}}}(t,this.noDataValues,n,r),this._elevationCache[A.tileIndex]={heights:n,extent:A.getExtent()};let s=this._imageSize/this.plainGridSize;for(let e=0;e<s;e++)for(let t=0;t<s;t++){let i=2*A.tileX+t,n=2*A.tileY+e,s=A.tileZoom+1,a=MA.getTileIndex(i,n,s);this._elevationCache[a]={heights:r[e][t],extent:Ae(i,n,s)}}return n}}var en=Object.freeze({__proto__:null,EmptyTerrain:Wr,GlobusTerrain:Zr,MapboxTerrain:qr,BilTerrain:$r});const An=[1,2,3,5,10,20,30,50,100,200,300,500,1e3,2e3,3e3,5e3,1e4,2e4,3e4,5e4,1e5,2e5,3e5,5e5,1e6,2e6,3e6,5e6,1e7];class tn extends pA{constructor(e={}){e.name&&""!==e.name||(e.name="scaleControl"),super(e),e=e||{},this._template='<div class="og-scale-container">\n <div class="og-scale-label"></div>\n <div class="og-scale-ruler"></div>\n </div>',this.planet=null,this._minWidth=100,this._maxWidth=150}_renderTemplate(){return we(this._template)[0]}oninit(){this.el=this._renderTemplate(),this._scaleLabelEl=this.el.querySelector(".og-scale-label"),this.renderer.div.appendChild(this.el),this.renderer.events.on("draw",(e=>{e.events.mouseState.anyEvent()&&this._draw()})),this.renderer.activeCamera.events.on("moveend",(e=>{this._draw(e)}))}_draw(e){let A=this.renderer.activeCamera,t=this.planet.renderer.handler.getCenter(),i=this.planet.getDistanceFromPixel(t),r=A.getForward().scaleTo(i).addA(A.eye),n=i*Math.tan(A._viewAngle*c),s=r.add(A.getRight().scaleTo(n)),a=A.project(s);this._mPx=n/a.distance(t);let o=this._mPx*this._minWidth,h=De(An,o,((e,A)=>e-A));h<0&&(h=~h);let l=An[h],d=(l-o)/(An[h+1]-l);this.currWidth=this._minWidth+d*(this._maxWidth-this._minWidth),this._scaleLabelEl.innerText=l>1e3?l/1e3+" km":`${l} m`,this._metersInMinSize=o,this.el.style.width=this.currWidth+"px"}}class rn{constructor(){var e={},A={},t={},i={},r=this,n=null,s=null,a=!0;if(rn.prototype._instance)return rn.prototype._instance;rn.prototype._instance=this,document.onkeydown=function(e){s=e,a&&r.handleKeyDown()},document.onkeyup=function(e){s=e,a&&r.handleKeyUp()};var o=function(e,A){return e.priority<A.priority};this.removeEvent=function(e,A){},this.setActivity=function(e){a=e},this.releaseKeys=function(){e={}},this.addEvent=function(e,s,a,h,l){switch(void 0===l&&(l=1600),e){case"keyfree":t[h]||(t[h]=[]),t[h].push({callback:a,sender:s,priority:l}),t[h].sort(o);break;case"keypress":null==h?n={callback:a,sender:s||r}:(A[h]||(A[h]=[]),A[h].push({callback:a,sender:s,priority:l}),A[h].sort(o));break;case"charkeypress":i[h]||(i[h]=[]),i[h].push({callback:a,sender:s,priority:l}),i[h].sort(o)}},this.isKeyPressed=function(A){return e[A]},this.handleKeyDown=function(){for(var A in n&&n.callback.call(n.sender,s),e[s.keyCode]=!0,i)if(String.fromCharCode(s.keyCode)==String.fromCharCode(A))for(var t=i[A],r=0;r<t.length;r++)t[r].callback.call(t[r].sender,s);s.keyCode!=LA.KEY_ALT&&s.keyCode!=LA.KEY_SHIFT||s.preventDefault()},this.handleKeyUp=function(){if(e[s.keyCode]||s.keyCode===LA.KEY_PRINTSCREEN)for(var A in t)if(e[A]||s.keyCode===LA.KEY_PRINTSCREEN&&A==LA.KEY_PRINTSCREEN)for(var i=t[A],r=0;r<i.length;r++)i[r].callback.call(i[r].sender,s);e[s.keyCode]=!1},this.handleEvents=function(){for(var t in A)if(e[t])for(var i=A[t],r=0;r<i.length;r++)i[r].callback.call(i[r].sender,s)}}}class nn{constructor(e){this._htmlObject=e}setEvent(e,A,t){switch(e){case"mousewheel":this._htmlObject.addEventListener("mousewheel",(function(e){var i=e.deltaY||e.detail||e.wheelDelta;null==e.wheelDelta&&(e.wheelDelta=-120*i),t.call(A,e),e.preventDefault()}),!1),this._htmlObject.addEventListener("wheel",(function(e){var i=e.deltaY||e.detail||e.wheelDelta;null==e.wheelDelta&&(e.wheelDelta=-120*i),t.call(A,e),e.preventDefault()}),!1);break;case"mousedown":this._htmlObject.addEventListener("mousedown",(function(e){var i=this.getBoundingClientRect();t.call(A,{button:e.button,clientX:e.clientX-i.left,clientY:e.clientY-i.top},e)})),this._htmlObject.addEventListener("contextmenu",(function(e){return e.preventDefault(),!1}));break;case"mouseup":this._htmlObject.addEventListener("mouseup",(function(e){var i=this.getBoundingClientRect();t.call(A,{button:e.button,clientX:e.clientX-i.left,clientY:e.clientY-i.top},e)}));break;case"mousemove":this._htmlObject.addEventListener("mousemove",(function(e){var i=this.getBoundingClientRect();t.call(A,{clientX:e.clientX-i.left,clientY:e.clientY-i.top},e)}));break;case"mouseleave":this._htmlObject.addEventListener("mouseleave",(function(e){t.call(A,e)}));break;case"mouseout":this._htmlObject.addEventListener("mouseout",(function(e){t.call(A,e)}));break;case"mouseover":this._htmlObject.addEventListener("mouseover",(function(e){t.call(A,e)}));break;case"mouseenter":this._htmlObject.addEventListener("mouseenter",(function(e){t.call(A,e)}))}}}class sn{constructor(e){this._htmlObject=e}setEvent(e,A,t){switch(e){case"touchcancel":this._htmlObject.addEventListener("touchcancel",(function(e){e.preventDefault();var i=this.getBoundingClientRect();e.offsetLeft=i.left,e.offsetTop=i.top,t.call(A,e),e.preventDefault()}));break;case"touchstart":this._htmlObject.addEventListener("touchstart",(function(e){e.preventDefault();var i=this.getBoundingClientRect();e.offsetLeft=i.left,e.offsetTop=i.top,t.call(A,e),e.preventDefault()}));break;case"touchend":this._htmlObject.addEventListener("touchend",(function(e){e.preventDefault();var i=this.getBoundingClientRect();e.offsetLeft=i.left,e.offsetTop=i.top,t.call(A,e),e.preventDefault()}));break;case"touchmove":this._htmlObject.addEventListener("touchmove",(function(e){e.preventDefault();var i=this.getBoundingClientRect();e.offsetLeft=i.left,e.offsetTop=i.top,t.call(A,e),e.preventDefault()}))}}}class an extends bA{constructor(e){super(on),this.renderer=e,this._touchHandler=new sn(e.handler.canvas),this._mouseHandler=new nn(e.handler.canvas),this._keyboardHandler=new rn,this._active=!0,this.clickRadius=15,this.mouseState={anyEvent:()=>{let e=this.mouseState;return e.leftButtonUp||e.rightButtonUp||e.middleButtonUp||e.leftButtonDown||e.rightButtonDown||e.middleButtonDown||e.leftButtonHold||e.rightButtonHold||e.middleButtonHold||e.leftButtonDoubleClick||e.rightButtonDoubleClick||e.middleButtonDoubleClick||e.leftButtonClick||e.rightButtonClick||e.middleButtonClick||e.moving||e.justStopped},clientX:0,clientY:0,x:0,y:0,nx:0,ny:0,prev_x:0,prev_y:0,direction:new le,leftButtonUp:!1,rightButtonUp:!1,middleButtonUp:!1,leftButtonDown:!1,rightButtonDown:!1,middleButtonDown:!1,leftButtonHold:!1,rightButtonHold:!1,middleButtonHold:!1,leftButtonDoubleClick:!1,rightButtonDoubleClick:!1,middleButtonDoubleClick:!1,leftButtonClick:!1,rightButtonClick:!1,middleButtonClick:!1,moving:!1,justStopped:!1,doubleClickDelay:500,clickDelay:200,wheelDelta:0,sys:null,pickingObject:null,renderer:e},this.touchState={moving:!1,touchEnd:!1,touchStart:!1,touchCancel:!1,doubleTouch:!1,doubleTouchDelay:550,doubleTouchRadius:10,x:0,y:0,nx:0,ny:0,prev_x:0,prev_y:0,sys:null,pickingObject:null,renderer:e},this._dblTchCoords=new de,this._oneTouchStart=!1,this._dblTchBegins=0,this._mousestopThread=null,this._ldblClkBegins=0,this._rdblClkBegins=0,this._mdblClkBegins=0,this._lClkBegins=0,this._rClkBegins=0,this._mClkBegins=0,this._lclickX=0,this._lclickY=0,this._rclickX=0,this._rclickY=0,this._mclickX=0,this._mclickY=0}get active(){return this._active}set active(e){this._active=e,this._keyboardHandler.setActivity(e)}handleEvents(){this._active&&(this.mouseState.direction=this.renderer.activeCamera.unproject(this.mouseState.x,this.mouseState.y),this.entityPickingEvents(),this._keyboardHandler.handleEvents(),this.handleMouseEvents(),this.handleTouchEvents())}on(e,A,t,i,r){"keypress"===e||"charkeypress"===e||"keyfree"===e?this._keyboardHandler.addEvent(e,i,t,A,r):super.on(e,A,t,i)}off(e,A){"keypress"===e||"charkeypress"===e||"keyfree"===e?this._keyboardHandler.removeEvent(e,A):super.off(e,A)}isKeyPressed(e){return this._keyboardHandler.isKeyPressed(e)}releaseKeys(){this._keyboardHandler.releaseKeys()}initialize(){this._mouseHandler.setEvent("mouseup",this,this.onMouseUp),this._mouseHandler.setEvent("mousemove",this,this.onMouseMove),this._mouseHandler.setEvent("mousedown",this,this.onMouseDown),this._mouseHandler.setEvent("mousewheel",this,this.onMouseWheel),this._mouseHandler.setEvent("mouseleave",this,this.onMouseLeave),this._mouseHandler.setEvent("mouseenter",this,this.onMouseEnter),this._touchHandler.setEvent("touchstart",this,this.onTouchStart),this._touchHandler.setEvent("touchend",this,this.onTouchEnd),this._touchHandler.setEvent("touchcancel",this,this.onTouchCancel),this._touchHandler.setEvent("touchmove",this,this.onTouchMove)}onMouseWheel(e){this.mouseState.wheelDelta=e.wheelDelta}updateButtonsStates(e){var A=this.mouseState;1&e?A.leftButtonDown=!0:(A.leftButtonHold=!1,A.leftButtonDown=!1),2&e?A.rightButtonDown=!0:(A.rightButtonHold=!1,A.rightButtonDown=!1),4&e?A.middleButtonDown=!0:(A.middleButtonHold=!1,A.middleButtonDown=!1)}onMouseMove(e,A){var t=this.mouseState;this.updateButtonsStates(A.buttons),t.sys=e;let i=e.clientX,r=e.clientY,n=this.clickRadius;if(Math.abs(this._lclickX-i)>=n&&Math.abs(this._lclickY-r)>=n&&(this._ldblClkBegins=0,this._lClkBegins=0),Math.abs(this._rclickX-i)>=n&&Math.abs(this._rclickY-r)>=n&&(this._rdblClkBegins=0,this._rClkBegins=0),Math.abs(this._mclickX-i)>=n&&Math.abs(this._mclickY-r)>=n&&(this._mdblClkBegins=0,this._mClkBegins=0),t.clientX===e.clientX&&t.clientY===e.clientY)return;t.clientX=e.clientX,t.clientY=e.clientY;let s=this.renderer.handler;t.x=e.clientX*s.pixelRatio,t.y=e.clientY*s.pixelRatio,t.nx=t.x/s.canvas.width,t.ny=t.y/s.canvas.height,t.moving=!0,clearTimeout(this._mousestopThread),this._mousestopThread=setTimeout((function(){t.justStopped=!0}),100)}onMouseLeave(e){this.dispatch(this.mouseleave,e)}onMouseEnter(e){this.dispatch(this.mouseenter,e)}onMouseDown(e){e.button===LA.MB_LEFT?(this._lClkBegins=window.performance.now(),this._lclickX=e.clientX,this._lclickY=e.clientY,this.mouseState.sys=e,this.mouseState.leftButtonDown=!0):e.button===LA.MB_RIGHT?(this._rClkBegins=window.performance.now(),this._rclickX=e.clientX,this._rclickY=e.clientY,this.mouseState.sys=e,this.mouseState.rightButtonDown=!0):e.button===LA.MB_MIDDLE&&(this._mClkBegins=window.performance.now(),this._mclickX=e.clientX,this._mclickY=e.clientY,this.mouseState.sys=e,this.mouseState.middleButtonDown=!0)}onMouseUp(e){var A=this.mouseState;A.sys=e;var t=window.performance.now();if(e.button===LA.MB_LEFT){if(A.leftButtonDown=!1,A.leftButtonUp=!0,Math.abs(this._lclickX-e.clientX)<this.clickRadius&&Math.abs(this._lclickY-e.clientY)<this.clickRadius&&t-this._lClkBegins<=A.clickDelay){if(this._ldblClkBegins){window.performance.now()-this._ldblClkBegins<=A.doubleClickDelay&&(A.leftButtonDoubleClick=!0),this._ldblClkBegins=0}else this._ldblClkBegins=window.performance.now();A.leftButtonClick=!0,this._lClkBegins=0}}else if(e.button===LA.MB_RIGHT){if(A.rightButtonDown=!1,A.rightButtonUp=!0,Math.abs(this._rclickX-e.clientX)<this.clickRadius&&Math.abs(this._rclickY-e.clientY)<this.clickRadius&&t-this._rClkBegins<=A.clickDelay){if(this._rdblClkBegins){window.performance.now()-this._rdblClkBegins<=A.doubleClickDelay&&(A.rightButtonDoubleClick=!0),this._rdblClkBegins=0}else this._rdblClkBegins=window.performance.now();A.rightButtonClick=!0,this._rClkBegins=0}}else if(e.button===LA.MB_MIDDLE&&(A.middleButtonDown=!1,A.middleButtonUp=!0,Math.abs(this._mclickX-e.clientX)<this.clickRadius&&Math.abs(this._mclickY-e.clientY)<this.clickRadius&&t-this._mClkBegins<=A.clickDelay)){if(this._mdblClkBegins)window.performance.now()-this._mdblClkBegins<=A.doubleClickDelay&&(A.middleButtonDoubleClick=!0),this._mdblClkBegins=0;else this._mdblClkBegins=window.performance.now();A.middleButtonClick=!0,this._mClkBegins=0}}onTouchStart(e){var A=this.touchState;A.sys=e,A.clienX=e.touches.item(0).clientX-e.offsetLeft,A.clientY=e.touches.item(0).clientY-e.offsetTop;let t=this.renderer.handler;A.x=A.clientX*t.pixelRatio,A.y=A.clientY*t.pixelRatio,A.nx=A.x/t.canvas.width,A.ny=A.y/t.canvas.height,A.prev_x=A.x,A.prev_y=A.y,A.touchStart=!0,1===e.touches.length?(this._dblTchCoords.x=A.x,this._dblTchCoords.y=A.y,this._oneTouchStart=!0):this._oneTouchStart=!1}onTouchEnd(e){var A=this.touchState;if(A.sys=e,A.touchEnd=!0,0===e.touches.length&&(A.prev_x=A.x,A.prev_y=A.y,this._oneTouchStart)){if(this._dblTchBegins)window.performance.now()-this._dblTchBegins<=A.doubleTouchDelay&&(A.doubleTouch=!0),this._dblTchBegins=0;this._dblTchBegins=window.performance.now(),this._oneTouchStart=!1}}onTouchCancel(e){var A=this.touchState;A.sys=e,A.touchCancel=!0}onTouchMove(e){var A=this.touchState;A.clientX=e.touches.item(0).clientX-e.offsetLeft,A.clientY=e.touches.item(0).clientY-e.offsetTop;var t=this.renderer.handler;A.x=A.clientX*t.pixelRatio,A.y=A.clientY*t.pixelRatio,A.nx=A.x/t.canvas.width,A.ny=A.y/t.canvas.height,A.sys=e,A.moving=!0,this._dblTchBegins=0,this._oneTouchStart=!1}entityPickingEvents(){var e=this.touchState,A=this.mouseState;if(!(A.leftButtonHold||A.rightButtonHold||A.middleButtonHold)){var t=this.renderer,i=t.colorObjects,r=t._currPickingColor,n=t._prevPickingColor;A.pickingObject=null,e.pickingObject=null;var s=i&&i[r[0]+"_"+r[1]+"_"+r[2]];if(A.pickingObject=s,e.pickingObject=s,r[0]!=n[0]||r[1]!=n[1]||r[2]!=n[2])if(r[0]||r[1]||r[2]){if(n[0]||n[1]||n[2]){let t=i[n[0]+"_"+n[1]+"_"+n[2]];if(t){let i=t.rendererEvents;A.pickingObject=t,i&&i.dispatch(i.mouseleave,A),e.pickingObject=t,i&&i.dispatch(i.touchleave,e)}}if(s){var a=s.rendererEvents;A.pickingObject=s,a&&a.dispatch(a.mouseenter,A),e.pickingObject=s,a&&a.dispatch(a.touchenter,e)}}else{let t=i[n[0]+"_"+n[1]+"_"+n[2]];if(t){let i=t.rendererEvents;A.pickingObject=t,i&&i.dispatch(i.mouseleave,A),e.pickingObject=t,i&&i.dispatch(i.touchleave,e)}}}}handleMouseEvents(){let e=this.mouseState,A=e.pickingObject,t=null;e.leftButtonClick&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.lclick,e)),this.dispatch(this.lclick,e),e.leftButtonClick=!1),e.rightButtonClick&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.rclick,e)),this.dispatch(this.rclick,e),e.rightButtonClick=!1),e.middleButtonClick&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.mclick,e)),this.dispatch(this.mclick,e),e.middleButtonClick=!1),e.leftButtonDown&&(e.leftButtonHold?(A&&(t=A.rendererEvents,t&&t.dispatch(t.lhold,e)),this.dispatch(this.lhold,e)):(e.leftButtonHold=!0,A&&(t=A.rendererEvents,t&&t.dispatch(t.ldown,e)),this.dispatch(this.ldown,e))),e.rightButtonDown&&(e.rightButtonHold?(A&&(t=A.rendererEvents,t&&t.dispatch(t.rhold,e)),this.dispatch(this.rhold,e)):(e.rightButtonHold=!0,A&&(t=A.rendererEvents,t&&t.dispatch(t.rdown,e)),this.dispatch(this.rdown,e))),e.middleButtonDown&&(e.middleButtonHold?(A&&(t=A.rendererEvents,t&&t.dispatch(t.mhold,e)),this.dispatch(this.mhold,e)):(e.middleButtonHold=!0,A&&(t=A.rendererEvents,t&&t.dispatch(t.mdown,e)),this.dispatch(this.mdown,e))),e.leftButtonUp&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.lup,e)),this.dispatch(this.lup,e),e.leftButtonUp=!1,e.leftButtonHold=!1),e.rightButtonUp&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.rup,e)),this.dispatch(this.rup,e),e.rightButtonUp=!1,e.rightButtonHold=!1),e.middleButtonUp&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.mup,e)),this.dispatch(this.mup,e),e.middleButtonUp=!1,e.middleButtonHold=!1),e.leftButtonDoubleClick&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.ldblclick,e)),this.dispatch(this.ldblclick,e),e.leftButtonDoubleClick=!1),e.rightButtonDoubleClick&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.rdblclick,e)),this.dispatch(this.rdblclick,e),e.rightButtonDoubleClick=!1),e.middleButtonDoubleClick&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.mdblclick,e)),this.dispatch(this.mdblclick,e),e.middleButtonDoubleClick=!1),e.wheelDelta&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.mousewheel,e)),this.dispatch(this.mousewheel,e),e.wheelDelta=0),e.moving&&(A&&(t=A.rendererEvents,t&&t.dispatch(t.mousemove,e)),this.dispatch(this.mousemove,e),e.prev_x=e.x,e.prev_y=e.y),e.justStopped&&(this.dispatch(this.mousestop,e),e.justStopped=!1)}handleTouchEvents(){var e=this.touchState,A=e.pickingObject,t=null;if(e.touchCancel&&(this.dispatch(this.touchcancel,e),e.touchCancel=!1),e.touchStart){var i=this.renderer;i.pickingFramebuffer.activate(),i.pickingFramebuffer.readPixels(i._currPickingColor,e.nx,1-e.ny,1),i.pickingFramebuffer.deactivate();var r=i.colorObjects,n=i._currPickingColor,s=r[n[0]+"_"+n[1]+"_"+n[2]];(A=e.pickingObject=s)&&(t=A.rendererEvents)&&t.dispatch(t.touchstart,e),this.dispatch(this.touchstart,e),e.touchStart=!1}e.doubleTouch&&(A&&(t=A.rendererEvents)&&t.dispatch(t.doubletouch,e),this.dispatch(this.doubletouch,e),e.doubleTouch=!1),e.touchEnd&&(A&&(t=A.rendererEvents)&&t.dispatch(t.touchend,e),this.dispatch(this.touchend,e),e.x=0,e.y=0,e.touchEnd=!1),e.moving&&(A&&(t=A.rendererEvents)&&t.dispatch(t.touchmove,e),this.dispatch(this.touchmove,e),e.prev_x=e.x,e.prev_y=e.y)}}const on=["draw","postdraw","resize","mouseenter","mouseleave","mousemove","mousestop","lclick","rclick","mclick","ldblclick","rdblclick","mdblclick","lup","rup","mup","ldown","rdown","mdown","lhold","rhold","mhold","mousewheel","touchstart","touchend","touchcancel","touchmove","doubletouch","touchleave","touchenter"];class hn{constructor(e,A,t,i){this.left=e||0,this.right=t||0,this.top=A||0,this.bottom=i||0}clone(){return new hn(this.left,this.top,this.right,this.bottom)}getWidth(){return Math.abs(this.right-this.left)}getHeight(){return Math.abs(this.bottom-this.top)}getSquare(){return this.getHeight()*this.getWidth()}getDiagonal(){var e=this.getWidth(),A=this.getHeight();return Math.sqrt(A*A+e*e)}fit(e,A){return this.getWidth()==e&&this.getHeight()==A}isInside(e,A){return e>=this.left&&e<=this.right&&A>=this.top&&A<=this.bottom}}class ln{constructor(){this.imagesCache={},this._counter=0,this._pendingsQueue=new Mi,this._imageIndexCounter=0}load(e,A){if(this.imagesCache[e])A(this.imagesCache[e]);else{var t={src:e,success:A};this._counter>=1?this._pendingsQueue.unshift(t):this._exec(t)}}_exec(e){this._counter++;var A=this,t=new Image;t.crossOrigin="",t.onload=function(){A.imagesCache[e.src]=t,this.__nodeIndex=A._imageIndexCounter++,e.success(this),A._dequeueRequest()},t.onerror=function(){A._dequeueRequest()},t.src=e.src}_dequeueRequest(){if(this._counter--,this._pendingsQueue.length&&this._counter<1)for(;this._pendingsQueue.length;){var e=this._pendingsQueue.pop();if(e){if(!this.imagesCache[e.src]){this._exec(e);break}this._counter<=0?this._counter=0:this._counter--,e.success(this.imagesCache[e.src])}}}}class dn{constructor(e,A){this.nodes=[],this.texture=null,this.canvas=new Ft(e||1024,A||1024),this.clearCanvas(),this._handler=null,this._images=[],this._btree=null,this._imagesCacheManager=new ln,this.borderSize=4}getImage(){return this.canvas.getImage()}getCanvas(){return this.canvas._canvas}clearCanvas(){this.canvas.fillEmpty("black")}assignHandler(e){this._handler=e,this.createTexture()}getDiagonal(e){var A=e.atlasWidth||e.width,t=e.atlasHeight||e.height;return Math.sqrt(A*A+t*t)}addImage(e,A){if(e.width&&e.height)return this._images.push(e),this._makeAtlas(A),this.nodes[e.__nodeIndex]}_completeNode(e,A){if(A){var t=this.canvas.getWidth(),i=this.canvas.getHeight(),r=A.image,n=A.rect,s=Math.round(.5*this.borderSize);this.canvas.drawImage(r,n.left+s,n.top+s,r.atlasWidth,r.atlasHeight);var a=A.texCoords;a[0]=(n.left+s)/t,a[1]=(n.top+s)/i,a[2]=(n.left+s)/t,a[3]=(n.bottom-s)/i,a[4]=(n.right-s)/t,a[5]=(n.bottom-s)/i,a[6]=(n.right-s)/t,a[7]=(n.bottom-s)/i,a[8]=(n.right-s)/t,a[9]=(n.top+s)/i,a[10]=(n.left+s)/t,a[11]=(n.top+s)/i,e[r.__nodeIndex]=A}}_makeAtlas(e){if(e&&this._btree){let e=this._images[this._images.length-1];this._completeNode(this.nodes,this._btree.insert(e))}else{let e=this._images.slice(0);e.sort((function(e,A){return(A.atlasWidth||A.width)-(e.atlasWidth||e.width)||(A.atlasHeight||A.height)-(e.atlasHeight||e.height)})),this._btree=new cn(new hn(0,0,this.canvas.getWidth(),this.canvas.getHeight())),this._btree.atlas=this,this.clearCanvas();for(var A=[],t=0;t<e.length;t++)this._completeNode(A,this._btree.insert(e[t]));this.nodes=[],this.nodes=A}}createTexture(e,A){this._handler&&(this._handler.gl.deleteTexture(this.texture),e&&(this.canvas.resize(e.width,e.height),this.canvas.drawImage(e,0,0,e.width,e.height)),this.texture=this._handler.createTexture_l(this.canvas._canvas,A))}loadImage(e,A){this._imagesCacheManager.load(e,A)}getImageTexCoordinates(e){if(null!=e.__nodeIndex&&this.nodes[e.__nodeIndex])return this.nodes[e.__nodeIndex].texCoords}}class cn{constructor(e,A){this.childNodes=null,this.image=null,this.rect=e,this.texCoords=A||[],this.atlas=null}insert(e){if(this.childNodes){var A=this.childNodes[0].insert(e);return null!=A?A:this.childNodes[1].insert(e)}if(null!=this.image)return null;var t=this.rect,i=(e.atlasWidth||e.width)+this.atlas.borderSize,r=(e.atlasHeight||e.height)+this.atlas.borderSize;return i>t.getWidth()||r>t.getHeight()?null:t.fit(i,r)?(this.image=e,this):(this.childNodes=new Array(2),this.childNodes[0]=new cn,this.childNodes[0].atlas=this.atlas,this.childNodes[1]=new cn,this.childNodes[1].atlas=this.atlas,t.getWidth()-i>t.getHeight()-r?(this.childNodes[0].rect=new hn(t.left,t.top,t.left+i,t.bottom),this.childNodes[1].rect=new hn(t.left+i,t.top,t.right,t.bottom)):(this.childNodes[0].rect=new hn(t.left,t.top,t.right,t.top+r),this.childNodes[1].rect=new hn(t.left,t.top+r,t.right,t.bottom)),this.childNodes[0].insert(e))}}function un(){this.resolve=null,this.reject=null,this.promise=new Promise(function(e,A){this.resolve=e,this.reject=A}.bind(this)),Object.freeze(this)}class gn{constructor(){this.atlasesArr=[],this.atlasIndexes={},this.atlasIndexesDeferred=[],this.tokenImageSize=64,this.samplerArr=[0],this._handler=null}assignHandler(e){this._handler=e}getFontIndex(e){let A=this.getFullIndex(e);return this.atlasIndexesDeferred[A]||(this.atlasIndexesDeferred[A]=new un),this.atlasIndexesDeferred[A].promise}getFullIndex(e){return e.trim().toLowerCase()}_applyFontDataToAtlas(e,A){let t=A.chars;e.height=A.common.scaleH,e.width=A.common.scaleW,e.gliphSize=A.info.size,e.distanceRange=A.distanceField.distanceRange;let i=e.width,r=e.height,n=e.gliphSize,s={};for(let A=0;A<t.length;A++){let a=t[A],o=a.char;s[a.id]=o;let h=new hn(a.x,a.y,a.x+a.width,a.y+a.height),l=new Array(12);l[0]=h.left/i,l[1]=h.top/r,l[2]=h.left/i,l[3]=h.bottom/r,l[4]=h.right/i,l[5]=h.bottom/r,l[6]=h.right/i,l[7]=h.bottom/r,l[8]=h.right/i,l[9]=h.top/r,l[10]=h.left/i,l[11]=h.top/r,e.nodes[o]=new cn(h,l),e.nodes[o].metrics=a,e.nodes[o].metrics.nWidth=e.nodes[o].metrics.width/n,e.nodes[o].metrics.nHeight=e.nodes[o].metrics.height/n,e.nodes[o].metrics.nAdvance=e.nodes[o].metrics.xadvance/n,e.nodes[o].metrics.nXOffset=e.nodes[o].metrics.xoffset/n,e.nodes[o].metrics.nYOffset=1-e.nodes[o].metrics.yoffset/n,e.nodes[o].emptySize=1}e.kernings={};for(let t=0;t<A.kernings.length;t++){let i=A.kernings[t],r=i.first,a=i.second,o=s[r],h=s[a];e.kernings[o]||(e.kernings[o]={}),e.kernings[o][h]=i.amount/n}}initFont(e,A,t){let i=this.atlasesArr.length,r=this.getFullIndex(e);this.atlasIndexes[r]=i;let n=this.atlasIndexesDeferred[r];n||(n=this.atlasIndexesDeferred[r]=new un),this.samplerArr[this.atlasesArr.length]=i;let s=new dn;s.height=0,s.width=0,s.gliphSize=0,s.distanceRange=0,s.kernings={},s.assignHandler(this._handler),this.atlasesArr[i]=s,this._applyFontDataToAtlas(s,A);let a=new Image;a.onload=()=>{this._createTexture(s,a),n.resolve(i)},a.src=Br}_createTexture(e,A){e.createTexture(A)}loadFont(e,A,t){let i=this.atlasesArr.length,r=this.getFullIndex(e);this.atlasIndexes[r]=i;let n=this.atlasIndexesDeferred[r];n||(n=this.atlasIndexesDeferred[r]=new un),this.samplerArr[this.atlasesArr.length]=i;let s=new dn;s.height=0,s.width=0,s.gliphSize=0,s.distanceRange=0,s.kernings={},s.assignHandler(this._handler),this.atlasesArr[i]=s,fetch(`${A}/${t}`).then((e=>{if(!e.ok)throw Error(`Unable to load "${A}/${t}"`);return e.json(e)})).then((e=>{this._applyFontDataToAtlas(s,e);let t=new Image;t.onload=()=>{this._createTexture(s,t),n.resolve(i)},t.src=`${A}/${e.pages[0]}`,t.crossOrigin="Anonymous"})).catch((e=>(n.reject(),{status:"error",msg:e.toString()})))}}const fn={pages:["arial.ttf.png"],chars:[{id:1033,index:564,char:"Љ",width:40,height:31,xoffset:-4,yoffset:4,xadvance:34,chnl:15,x:0,y:0,page:0},{id:106,index:77,char:"j",width:14,height:38,xoffset:-5,yoffset:4,xadvance:7,chnl:15,x:0,y:32,page:0},{id:1106,index:635,char:"ђ",width:24,height:38,xoffset:-4,yoffset:4,xadvance:18,chnl:15,x:0,y:71,page:0},{id:1112,index:641,char:"ј",width:14,height:38,xoffset:-5,yoffset:4,xadvance:7,chnl:15,x:15,y:32,page:0},{id:1118,index:646,char:"ў",width:23,height:38,xoffset:-3,yoffset:4,xadvance:16,chnl:15,x:0,y:110,page:0},{id:946,index:533,char:"β",width:23,height:38,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:0,y:149,page:0},{id:950,index:535,char:"ζ",width:21,height:38,xoffset:-3,yoffset:4,xadvance:14,chnl:15,x:0,y:188,page:0},{id:958,index:543,char:"ξ",width:20,height:38,xoffset:-3,yoffset:4,xadvance:14,chnl:15,x:0,y:227,page:0},{id:40,index:11,char:"(",width:16,height:38,xoffset:-2,yoffset:4,xadvance:11,chnl:15,x:0,y:266,page:0},{id:41,index:12,char:")",width:16,height:38,xoffset:-2,yoffset:4,xadvance:11,chnl:15,x:0,y:305,page:0},{id:123,index:94,char:"{",width:17,height:38,xoffset:-3,yoffset:4,xadvance:11,chnl:15,x:0,y:344,page:0},{id:64,index:35,char:"@",width:38,height:38,xoffset:-2,yoffset:4,xadvance:32,chnl:15,x:17,y:266,page:0},{id:125,index:96,char:"}",width:17,height:38,xoffset:-3,yoffset:4,xadvance:11,chnl:15,x:21,y:227,page:0},{id:268,index:253,char:"Č",width:28,height:37,xoffset:-2,yoffset:-2,xadvance:23,chnl:15,x:17,y:305,page:0},{id:262,index:251,char:"Ć",width:28,height:37,xoffset:-2,yoffset:-2,xadvance:23,chnl:15,x:22,y:188,page:0},{id:352,index:226,char:"Š",width:26,height:37,xoffset:-3,yoffset:-2,xadvance:21,chnl:15,x:39,y:226,page:0},{id:87,index:58,char:"W",width:37,height:31,xoffset:-4,yoffset:4,xadvance:30,chnl:15,x:24,y:110,page:0},{id:381,index:228,char:"Ž",width:26,height:37,xoffset:-3,yoffset:-2,xadvance:20,chnl:15,x:25,y:71,page:0},{id:1168,index:648,char:"Ґ",width:20,height:37,xoffset:-1,yoffset:-2,xadvance:16,chnl:15,x:30,y:32,page:0},{id:1046,index:576,char:"Ж",width:37,height:31,xoffset:-4,yoffset:4,xadvance:30,chnl:15,x:41,y:0,page:0},{id:1034,index:565,char:"Њ",width:37,height:31,xoffset:-1,yoffset:4,xadvance:32,chnl:15,x:51,y:32,page:0},{id:1038,index:568,char:"Ў",width:28,height:37,xoffset:-4,yoffset:-1,xadvance:20,chnl:15,x:24,y:142,page:0},{id:1062,index:592,char:"Ц",width:28,height:37,xoffset:-2,yoffset:4,xadvance:24,chnl:15,x:52,y:64,page:0},{id:1039,index:569,char:"Џ",width:26,height:37,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:51,y:180,page:0},{id:1065,index:595,char:"Щ",width:34,height:37,xoffset:-1,yoffset:4,xadvance:30,chnl:15,x:53,y:142,page:0},{id:1092,index:622,char:"ф",width:32,height:37,xoffset:-3,yoffset:4,xadvance:26,chnl:15,x:62,y:102,page:0},{id:194,index:198,char:"Â",width:29,height:37,xoffset:-4,yoffset:-2,xadvance:21,chnl:15,x:81,y:64,page:0},{id:202,index:199,char:"Ê",width:25,height:37,xoffset:-1,yoffset:-2,xadvance:21,chnl:15,x:89,y:0,page:0},{id:212,index:208,char:"Ô",width:30,height:37,xoffset:-2,yoffset:-2,xadvance:25,chnl:15,x:0,y:383,page:0},{id:91,index:62,char:"[",width:14,height:37,xoffset:-2,yoffset:4,xadvance:9,chnl:15,x:18,y:343,page:0},{id:93,index:64,char:"]",width:14,height:37,xoffset:-3,yoffset:4,xadvance:9,chnl:15,x:0,y:421,page:0},{id:162,index:132,char:"¢",width:22,height:37,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:0,y:459,page:0},{id:1044,index:574,char:"Д",width:29,height:36,xoffset:-4,yoffset:4,xadvance:22,chnl:15,x:15,y:421,page:0},{id:1025,index:556,char:"Ё",width:25,height:36,xoffset:-1,yoffset:-1,xadvance:21,chnl:15,x:31,y:381,page:0},{id:1031,index:562,char:"Ї",width:17,height:36,xoffset:-4,yoffset:-1,xadvance:9,chnl:15,x:33,y:343,page:0},{id:1049,index:579,char:"Й",width:26,height:36,xoffset:-1,yoffset:-1,xadvance:23,chnl:15,x:46,y:305,page:0},{id:1070,index:600,char:"Ю",width:36,height:32,xoffset:-1,yoffset:4,xadvance:32,chnl:15,x:51,y:342,page:0},{id:1113,index:642,char:"љ",width:36,height:25,xoffset:-4,yoffset:10,xadvance:29,chnl:15,x:89,y:38,page:0},{id:910,index:502,char:"Ύ",width:36,height:31,xoffset:-5,yoffset:4,xadvance:27,chnl:15,x:115,y:0,page:0},{id:939,index:527,char:"Ϋ",width:29,height:36,xoffset:-4,yoffset:-1,xadvance:21,chnl:15,x:56,y:264,page:0},{id:258,index:258,char:"Ă",width:29,height:36,xoffset:-4,yoffset:-1,xadvance:21,chnl:15,x:73,y:301,page:0},{id:36,index:7,char:"$",width:23,height:36,xoffset:-3,yoffset:2,xadvance:18,chnl:15,x:66,y:218,page:0},{id:196,index:98,char:"Ä",width:29,height:36,xoffset:-4,yoffset:-1,xadvance:21,chnl:15,x:78,y:180,page:0},{id:214,index:103,char:"Ö",width:30,height:36,xoffset:-2,yoffset:-1,xadvance:25,chnl:15,x:88,y:140,page:0},{id:220,index:104,char:"Ü",width:26,height:36,xoffset:-1,yoffset:-1,xadvance:23,chnl:15,x:95,y:102,page:0},{id:1026,index:557,char:"Ђ",width:34,height:31,xoffset:-3,yoffset:4,xadvance:28,chnl:15,x:111,y:64,page:0},{id:81,index:52,char:"Q",width:30,height:33,xoffset:-3,yoffset:4,xadvance:25,chnl:15,x:86,y:255,page:0},{id:1035,index:566,char:"Ћ",width:33,height:31,xoffset:-3,yoffset:4,xadvance:27,chnl:15,x:126,y:32,page:0},{id:904,index:498,char:"Έ",width:33,height:31,xoffset:-5,yoffset:4,xadvance:25,chnl:15,x:152,y:0,page:0},{id:905,index:499,char:"Ή",width:33,height:31,xoffset:-5,yoffset:4,xadvance:27,chnl:15,x:90,y:217,page:0},{id:908,index:501,char:"Ό",width:33,height:32,xoffset:-5,yoffset:4,xadvance:25,chnl:15,x:108,y:177,page:0},{id:416,index:1130,char:"Ơ",width:33,height:32,xoffset:-2,yoffset:4,xadvance:27,chnl:15,x:119,y:139,page:0},{id:37,index:8,char:"%",width:33,height:32,xoffset:-2,yoffset:4,xadvance:28,chnl:15,x:122,y:96,page:0},{id:67,index:38,char:"C",width:28,height:32,xoffset:-2,yoffset:4,xadvance:23,chnl:15,x:23,y:458,page:0},{id:71,index:42,char:"G",width:29,height:32,xoffset:-2,yoffset:4,xadvance:25,chnl:15,x:45,y:418,page:0},{id:79,index:50,char:"O",width:30,height:32,xoffset:-2,yoffset:4,xadvance:25,chnl:15,x:57,y:375,page:0},{id:83,index:54,char:"S",width:26,height:32,xoffset:-3,yoffset:4,xadvance:21,chnl:15,x:52,y:451,page:0},{id:103,index:74,char:"g",width:23,height:32,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:75,y:408,page:0},{id:1028,index:559,char:"Є",width:28,height:32,xoffset:-2,yoffset:4,xadvance:23,chnl:15,x:88,y:338,page:0},{id:1047,index:577,char:"З",width:25,height:32,xoffset:-3,yoffset:4,xadvance:19,chnl:15,x:88,y:371,page:0},{id:1029,index:560,char:"Ѕ",width:26,height:32,xoffset:-3,yoffset:4,xadvance:21,chnl:15,x:103,y:289,page:0},{id:1054,index:584,char:"О",width:30,height:32,xoffset:-2,yoffset:4,xadvance:25,chnl:15,x:117,y:249,page:0},{id:1057,index:587,char:"С",width:28,height:32,xoffset:-2,yoffset:4,xadvance:23,chnl:15,x:124,y:210,page:0},{id:1064,index:594,char:"Ш",width:32,height:31,xoffset:-1,yoffset:4,xadvance:29,chnl:15,x:146,y:64,page:0},{id:1066,index:596,char:"Ъ",width:32,height:31,xoffset:-4,yoffset:4,xadvance:25,chnl:15,x:160,y:32,page:0},{id:1069,index:599,char:"Э",width:28,height:32,xoffset:-3,yoffset:4,xadvance:23,chnl:15,x:142,y:172,page:0},{id:1073,index:603,char:"б",width:24,height:32,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:153,y:129,page:0},{id:920,index:300,char:"Θ",width:30,height:32,xoffset:-2,yoffset:4,xadvance:25,chnl:15,x:156,y:96,page:0},{id:927,index:517,char:"Ο",width:30,height:32,xoffset:-2,yoffset:4,xadvance:25,chnl:15,x:79,y:441,page:0},{id:934,index:301,char:"Φ",width:31,height:32,xoffset:-3,yoffset:3,xadvance:26,chnl:15,x:99,y:404,page:0},{id:952,index:537,char:"θ",width:23,height:32,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:114,y:371,page:0},{id:912,index:504,char:"ΐ",width:19,height:32,xoffset:-6,yoffset:3,xadvance:7,chnl:15,x:79,y:474,page:0},{id:944,index:532,char:"ΰ",width:21,height:32,xoffset:-2,yoffset:3,xadvance:18,chnl:15,x:99,y:474,page:0},{id:911,index:503,char:"Ώ",width:32,height:31,xoffset:-5,yoffset:4,xadvance:24,chnl:15,x:186,y:0,page:0},{id:431,index:1132,char:"Ư",width:32,height:31,xoffset:-1,yoffset:4,xadvance:27,chnl:15,x:179,y:64,page:0},{id:35,index:6,char:"#",width:25,height:32,xoffset:-4,yoffset:4,xadvance:18,chnl:15,x:110,y:437,page:0},{id:47,index:18,char:"/",width:17,height:32,xoffset:-4,yoffset:4,xadvance:9,chnl:15,x:131,y:404,page:0},{id:38,index:9,char:"&",width:27,height:32,xoffset:-3,yoffset:4,xadvance:21,chnl:15,x:121,y:470,page:0},{id:92,index:63,char:"\\",width:17,height:32,xoffset:-4,yoffset:4,xadvance:9,chnl:15,x:136,y:437,page:0},{id:174,index:138,char:"®",width:32,height:32,xoffset:-4,yoffset:4,xadvance:24,chnl:15,x:149,y:470,page:0},{id:169,index:139,char:"©",width:32,height:32,xoffset:-4,yoffset:4,xadvance:24,chnl:15,x:117,y:322,page:0},{id:8364,index:188,char:"€",width:26,height:32,xoffset:-4,yoffset:4,xadvance:18,chnl:15,x:130,y:282,page:0},{id:163,index:133,char:"£",width:24,height:32,xoffset:-4,yoffset:4,xadvance:18,chnl:15,x:148,y:243,page:0},{id:223,index:137,char:"ß",width:24,height:32,xoffset:-2,yoffset:4,xadvance:20,chnl:15,x:153,y:205,page:0},{id:65,index:36,char:"A",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:193,y:32,page:0},{id:66,index:37,char:"B",width:25,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:219,y:0,page:0},{id:68,index:39,char:"D",width:27,height:31,xoffset:-2,yoffset:4,xadvance:23,chnl:15,x:171,y:162,page:0},{id:272,index:264,char:"Đ",width:29,height:31,xoffset:-4,yoffset:4,xadvance:23,chnl:15,x:178,y:129,page:0},{id:69,index:40,char:"E",width:25,height:31,xoffset:-1,yoffset:4,xadvance:21,chnl:15,x:187,y:96,page:0},{id:70,index:41,char:"F",width:23,height:31,xoffset:-1,yoffset:4,xadvance:20,chnl:15,x:212,y:64,page:0},{id:72,index:43,char:"H",width:26,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:223,y:32,page:0},{id:73,index:44,char:"I",width:11,height:31,xoffset:-1,yoffset:4,xadvance:9,chnl:15,x:245,y:0,page:0},{id:74,index:45,char:"J",width:21,height:31,xoffset:-3,yoffset:4,xadvance:16,chnl:15,x:138,y:355,page:0},{id:75,index:46,char:"K",width:27,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:150,y:315,page:0},{id:76,index:47,char:"L",width:22,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:157,y:276,page:0},{id:77,index:48,char:"M",width:30,height:31,xoffset:-2,yoffset:4,xadvance:27,chnl:15,x:173,y:238,page:0},{id:78,index:49,char:"N",width:26,height:31,xoffset:-2,yoffset:4,xadvance:23,chnl:15,x:178,y:194,page:0},{id:80,index:51,char:"P",width:25,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:199,y:161,page:0},{id:82,index:53,char:"R",width:28,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:208,y:128,page:0},{id:84,index:55,char:"T",width:26,height:31,xoffset:-3,yoffset:4,xadvance:20,chnl:15,x:213,y:96,page:0},{id:85,index:56,char:"U",width:26,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:236,y:64,page:0},{id:86,index:57,char:"V",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:250,y:32,page:0},{id:88,index:59,char:"X",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:257,y:0,page:0},{id:89,index:60,char:"Y",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:149,y:387,page:0},{id:90,index:61,char:"Z",width:26,height:31,xoffset:-3,yoffset:4,xadvance:20,chnl:15,x:160,y:347,page:0},{id:98,index:69,char:"b",width:22,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:178,y:308,page:0},{id:269,index:254,char:"č",width:22,height:31,xoffset:-3,yoffset:4,xadvance:16,chnl:15,x:180,y:270,page:0},{id:263,index:252,char:"ć",width:22,height:31,xoffset:-3,yoffset:4,xadvance:16,chnl:15,x:154,y:419,page:0},{id:100,index:71,char:"d",width:22,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:177,y:419,page:0},{id:273,index:255,char:"đ",width:25,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:179,y:379,page:0},{id:102,index:73,char:"f",width:18,height:31,xoffset:-4,yoffset:4,xadvance:9,chnl:15,x:187,y:340,page:0},{id:104,index:75,char:"h",width:22,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:201,y:302,page:0},{id:105,index:76,char:"i",width:11,height:31,xoffset:-2,yoffset:4,xadvance:7,chnl:15,x:203,y:270,page:0},{id:107,index:78,char:"k",width:22,height:31,xoffset:-2,yoffset:4,xadvance:16,chnl:15,x:204,y:226,page:0},{id:108,index:79,char:"l",width:11,height:31,xoffset:-2,yoffset:4,xadvance:7,chnl:15,x:205,y:193,page:0},{id:112,index:83,char:"p",width:22,height:31,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:217,y:193,page:0},{id:113,index:84,char:"q",width:22,height:31,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:225,y:160,page:0},{id:353,index:227,char:"š",width:22,height:31,xoffset:-3,yoffset:4,xadvance:16,chnl:15,x:237,y:128,page:0},{id:116,index:87,char:"t",width:16,height:31,xoffset:-3,yoffset:5,xadvance:9,chnl:15,x:240,y:96,page:0},{id:119,index:90,char:"w",width:31,height:25,xoffset:-4,yoffset:10,xadvance:23,chnl:15,x:257,y:96,page:0},{id:121,index:92,char:"y",width:23,height:31,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:263,y:64,page:0},{id:382,index:229,char:"ž",width:23,height:31,xoffset:-3,yoffset:4,xadvance:16,chnl:15,x:280,y:32,page:0},{id:1040,index:570,char:"А",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:287,y:0,page:0},{id:1041,index:571,char:"Б",width:25,height:31,xoffset:-1,yoffset:4,xadvance:21,chnl:15,x:287,y:64,page:0},{id:1042,index:572,char:"В",width:25,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:304,y:32,page:0},{id:1043,index:573,char:"Г",width:23,height:31,xoffset:-1,yoffset:4,xadvance:17,chnl:15,x:317,y:0,page:0},{id:1045,index:575,char:"Е",width:25,height:31,xoffset:-1,yoffset:4,xadvance:21,chnl:15,x:215,y:258,page:0},{id:1048,index:578,char:"И",width:26,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:227,y:225,page:0},{id:1030,index:561,char:"І",width:11,height:31,xoffset:-1,yoffset:4,xadvance:9,chnl:15,x:240,y:192,page:0},{id:1032,index:563,char:"Ј",width:21,height:31,xoffset:-3,yoffset:4,xadvance:16,chnl:15,x:248,y:160,page:0},{id:1050,index:580,char:"К",width:24,height:31,xoffset:-1,yoffset:4,xadvance:19,chnl:15,x:252,y:192,page:0},{id:1051,index:581,char:"Л",width:26,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:260,y:122,page:0},{id:1052,index:582,char:"М",width:30,height:31,xoffset:-2,yoffset:4,xadvance:27,chnl:15,x:270,y:154,page:0},{id:1053,index:583,char:"Н",width:26,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:287,y:122,page:0},{id:1055,index:585,char:"П",width:26,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:313,y:64,page:0},{id:1056,index:586,char:"Р",width:25,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:330,y:32,page:0},{id:1058,index:588,char:"Т",width:26,height:31,xoffset:-3,yoffset:4,xadvance:20,chnl:15,x:341,y:0,page:0},{id:1059,index:589,char:"У",width:28,height:31,xoffset:-4,yoffset:4,xadvance:20,chnl:15,x:182,y:451,page:0},{id:1060,index:590,char:"Ф",width:30,height:31,xoffset:-3,yoffset:4,xadvance:24,chnl:15,x:200,y:411,page:0},{id:1061,index:591,char:"Х",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:205,y:372,page:0},{id:1063,index:593,char:"Ч",width:25,height:31,xoffset:-3,yoffset:4,xadvance:21,chnl:15,x:206,y:334,page:0},{id:1067,index:597,char:"Ы",width:31,height:31,xoffset:-1,yoffset:4,xadvance:28,chnl:15,x:224,y:290,page:0},{id:1068,index:598,char:"Ь",width:25,height:31,xoffset:-1,yoffset:4,xadvance:21,chnl:15,x:241,y:257,page:0},{id:1071,index:601,char:"Я",width:28,height:31,xoffset:-4,yoffset:4,xadvance:23,chnl:15,x:254,y:224,page:0},{id:1169,index:649,char:"ґ",width:18,height:31,xoffset:-2,yoffset:4,xadvance:13,chnl:15,x:277,y:186,page:0},{id:1105,index:634,char:"ё",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:232,y:322,page:0},{id:1110,index:639,char:"і",width:11,height:31,xoffset:-2,yoffset:4,xadvance:7,chnl:15,x:211,y:443,page:0},{id:1111,index:640,char:"ї",width:17,height:31,xoffset:-4,yoffset:4,xadvance:9,chnl:15,x:211,y:475,page:0},{id:1081,index:611,char:"й",width:22,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:223,y:443,page:0},{id:1114,index:643,char:"њ",width:31,height:25,xoffset:-2,yoffset:10,xadvance:26,chnl:15,x:289,y:96,page:0},{id:1088,index:618,char:"р",width:22,height:31,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:229,y:475,page:0},{id:1115,index:644,char:"ћ",width:24,height:31,xoffset:-4,yoffset:4,xadvance:18,chnl:15,x:231,y:404,page:0},{id:1091,index:621,char:"у",width:23,height:31,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:246,y:436,page:0},{id:1097,index:627,char:"щ",width:31,height:29,xoffset:-2,yoffset:10,xadvance:26,chnl:15,x:252,y:468,page:0},{id:913,index:505,char:"Α",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:235,y:354,page:0},{id:914,index:506,char:"Β",width:25,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:256,y:386,page:0},{id:915,index:299,char:"Γ",width:22,height:31,xoffset:-1,yoffset:4,xadvance:18,chnl:15,x:270,y:418,page:0},{id:916,index:507,char:"Δ",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:284,y:450,page:0},{id:917,index:508,char:"Ε",width:25,height:31,xoffset:-1,yoffset:4,xadvance:21,chnl:15,x:256,y:289,page:0},{id:918,index:509,char:"Ζ",width:26,height:31,xoffset:-3,yoffset:4,xadvance:20,chnl:15,x:256,y:321,page:0},{id:919,index:510,char:"Η",width:26,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:267,y:256,page:0},{id:921,index:511,char:"Ι",width:11,height:31,xoffset:-1,yoffset:4,xadvance:9,chnl:15,x:265,y:353,page:0},{id:922,index:512,char:"Κ",width:27,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:282,y:288,page:0},{id:923,index:513,char:"Λ",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:277,y:353,page:0},{id:924,index:514,char:"Μ",width:30,height:31,xoffset:-2,yoffset:4,xadvance:27,chnl:15,x:282,y:385,page:0},{id:925,index:515,char:"Ν",width:26,height:31,xoffset:-2,yoffset:4,xadvance:23,chnl:15,x:283,y:320,page:0},{id:926,index:516,char:"Ξ",width:25,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:293,y:417,page:0},{id:928,index:518,char:"Π",width:26,height:31,xoffset:-1,yoffset:4,xadvance:23,chnl:15,x:307,y:352,page:0},{id:929,index:519,char:"Ρ",width:25,height:31,xoffset:-2,yoffset:4,xadvance:21,chnl:15,x:313,y:384,page:0},{id:931,index:520,char:"Σ",width:24,height:31,xoffset:-2,yoffset:4,xadvance:20,chnl:15,x:283,y:218,page:0},{id:932,index:521,char:"Τ",width:26,height:31,xoffset:-3,yoffset:4,xadvance:20,chnl:15,x:296,y:186,page:0},{id:933,index:522,char:"Υ",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:301,y:154,page:0},{id:935,index:523,char:"Χ",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:314,y:122,page:0},{id:936,index:524,char:"Ψ",width:31,height:31,xoffset:-2,yoffset:4,xadvance:27,chnl:15,x:294,y:250,page:0},{id:937,index:525,char:"Ω",width:29,height:31,xoffset:-2,yoffset:4,xadvance:24,chnl:15,x:308,y:218,page:0},{id:947,index:534,char:"γ",width:23,height:31,xoffset:-4,yoffset:10,xadvance:16,chnl:15,x:323,y:186,page:0},{id:948,index:303,char:"δ",width:24,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:331,y:154,page:0},{id:951,index:536,char:"η",width:21,height:31,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:340,y:64,page:0},{id:955,index:540,char:"λ",width:23,height:31,xoffset:-4,yoffset:4,xadvance:16,chnl:15,x:356,y:32,page:0},{id:956,index:541,char:"μ",width:21,height:31,xoffset:-1,yoffset:10,xadvance:18,chnl:15,x:368,y:0,page:0},{id:961,index:545,char:"ρ",width:23,height:31,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:344,y:96,page:0},{id:966,index:307,char:"φ",width:27,height:31,xoffset:-3,yoffset:10,xadvance:21,chnl:15,x:362,y:64,page:0},{id:967,index:548,char:"χ",width:24,height:31,xoffset:-4,yoffset:10,xadvance:17,chnl:15,x:380,y:32,page:0},{id:968,index:549,char:"ψ",width:27,height:31,xoffset:-2,yoffset:10,xadvance:23,chnl:15,x:390,y:0,page:0},{id:940,index:528,char:"ά",width:24,height:31,xoffset:-3,yoffset:4,xadvance:19,chnl:15,x:314,y:449,page:0},{id:902,index:497,char:"Ά",width:29,height:31,xoffset:-4,yoffset:4,xadvance:21,chnl:15,x:314,y:481,page:0},{id:941,index:529,char:"έ",width:20,height:31,xoffset:-2,yoffset:4,xadvance:14,chnl:15,x:319,y:416,page:0},{id:943,index:531,char:"ί",width:14,height:31,xoffset:-2,yoffset:4,xadvance:7,chnl:15,x:339,y:448,page:0},{id:970,index:551,char:"ϊ",width:17,height:31,xoffset:-5,yoffset:4,xadvance:7,chnl:15,x:344,y:480,page:0},{id:906,index:500,char:"Ί",width:18,height:31,xoffset:-5,yoffset:4,xadvance:12,chnl:15,x:310,y:282,page:0},{id:972,index:553,char:"ό",width:24,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:326,y:250,page:0},{id:973,index:554,char:"ύ",width:21,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:338,y:218,page:0},{id:971,index:552,char:"ϋ",width:21,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:347,y:186,page:0},{id:259,index:259,char:"ă",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:310,y:314,page:0},{id:226,index:107,char:"â",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:329,y:282,page:0},{id:234,index:114,char:"ê",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:351,y:250,page:0},{id:244,index:123,char:"ô",width:24,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:360,y:218,page:0},{id:49,index:20,char:"1",width:16,height:31,xoffset:-1,yoffset:4,xadvance:18,chnl:15,x:356,y:128,page:0},{id:50,index:21,char:"2",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:368,y:96,page:0},{id:51,index:22,char:"3",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:390,y:64,page:0},{id:52,index:23,char:"4",width:24,height:31,xoffset:-4,yoffset:4,xadvance:18,chnl:15,x:405,y:32,page:0},{id:53,index:24,char:"5",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:418,y:0,page:0},{id:54,index:25,char:"6",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:369,y:160,page:0},{id:55,index:26,char:"7",width:23,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:373,y:128,page:0},{id:56,index:27,char:"8",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:392,y:96,page:0},{id:57,index:28,char:"9",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:414,y:64,page:0},{id:48,index:19,char:"0",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:430,y:32,page:0},{id:63,index:34,char:"?",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:442,y:0,page:0},{id:33,index:4,char:"!",width:11,height:31,xoffset:-1,yoffset:4,xadvance:9,chnl:15,x:466,y:0,page:0},{id:165,index:150,char:"¥",width:26,height:31,xoffset:-4,yoffset:4,xadvance:18,chnl:15,x:478,y:0,page:0},{id:228,index:108,char:"ä",width:23,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:454,y:32,page:0},{id:246,index:124,char:"ö",width:24,height:31,xoffset:-3,yoffset:4,xadvance:18,chnl:15,x:478,y:32,page:0},{id:252,index:129,char:"ü",width:21,height:31,xoffset:-2,yoffset:4,xadvance:18,chnl:15,x:334,y:314,page:0},{id:109,index:80,char:"m",width:30,height:25,xoffset:-2,yoffset:10,xadvance:27,chnl:15,x:369,y:192,page:0},{id:1078,index:608,char:"ж",width:30,height:25,xoffset:-4,yoffset:10,xadvance:21,chnl:15,x:353,y:282,page:0},{id:969,index:550,char:"ω",width:30,height:25,xoffset:-3,yoffset:10,xadvance:25,chnl:15,x:393,y:160,page:0},{id:1076,index:606,char:"д",width:26,height:29,xoffset:-4,yoffset:10,xadvance:19,chnl:15,x:182,y:483,page:0},{id:1094,index:624,char:"ц",width:23,height:29,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:284,y:482,page:0},{id:1119,index:647,char:"џ",width:21,height:29,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:375,y:250,page:0},{id:1096,index:626,char:"ш",width:29,height:25,xoffset:-2,yoffset:10,xadvance:26,chnl:15,x:397,y:128,page:0},{id:1102,index:632,char:"ю",width:29,height:25,xoffset:-2,yoffset:10,xadvance:24,chnl:15,x:385,y:218,page:0},{id:960,index:652,char:"π",width:29,height:25,xoffset:-3,yoffset:10,xadvance:22,chnl:15,x:416,y:96,page:0},{id:59,index:30,char:";",width:11,height:29,xoffset:-1,yoffset:10,xadvance:9,chnl:15,x:400,y:186,page:0},{id:7838,index:0,char:"ẞ",width:24,height:28,xoffset:0,yoffset:7,xadvance:24,chnl:15,x:52,y:484,page:0},{id:1099,index:629,char:"ы",width:27,height:25,xoffset:-2,yoffset:10,xadvance:23,chnl:15,x:438,y:64,page:0},{id:417,index:1131,char:"ơ",width:27,height:25,xoffset:-3,yoffset:10,xadvance:21,chnl:15,x:412,y:186,page:0},{id:1084,index:614,char:"м",width:26,height:25,xoffset:-2,yoffset:10,xadvance:22,chnl:15,x:424,y:154,page:0},{id:1098,index:628,char:"ъ",width:26,height:25,xoffset:-3,yoffset:10,xadvance:20,chnl:15,x:427,y:122,page:0},{id:963,index:305,char:"σ",width:26,height:25,xoffset:-3,yoffset:10,xadvance:20,chnl:15,x:446,y:90,page:0},{id:432,index:1133,char:"ư",width:26,height:25,xoffset:-2,yoffset:10,xadvance:21,chnl:15,x:466,y:64,page:0},{id:97,index:68,char:"a",width:23,height:25,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:334,y:346,page:0},{id:99,index:70,char:"c",width:22,height:25,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:321,y:96,page:0},{id:101,index:72,char:"e",width:23,height:25,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:356,y:308,page:0},{id:110,index:81,char:"n",width:21,height:25,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:473,y:90,page:0},{id:111,index:82,char:"o",width:24,height:25,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:339,y:372,page:0},{id:114,index:85,char:"r",width:17,height:25,xoffset:-2,yoffset:10,xadvance:11,chnl:15,x:493,y:64,page:0},{id:115,index:86,char:"s",width:22,height:25,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:358,y:334,page:0},{id:117,index:88,char:"u",width:21,height:25,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:380,y:308,page:0},{id:118,index:89,char:"v",width:23,height:25,xoffset:-4,yoffset:10,xadvance:16,chnl:15,x:384,y:280,page:0},{id:120,index:91,char:"x",width:24,height:25,xoffset:-4,yoffset:10,xadvance:16,chnl:15,x:397,y:244,page:0},{id:122,index:93,char:"z",width:23,height:25,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:415,y:212,page:0},{id:1072,index:602,char:"а",width:23,height:25,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:340,y:398,page:0},{id:1074,index:604,char:"в",width:22,height:25,xoffset:-2,yoffset:10,xadvance:17,chnl:15,x:354,y:424,page:0},{id:1075,index:605,char:"г",width:18,height:25,xoffset:-2,yoffset:10,xadvance:12,chnl:15,x:354,y:450,page:0},{id:1077,index:607,char:"е",width:23,height:25,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:362,y:476,page:0},{id:1108,index:637,char:"є",width:22,height:25,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:373,y:450,page:0},{id:1079,index:609,char:"з",width:21,height:25,xoffset:-3,yoffset:10,xadvance:15,chnl:15,x:386,y:476,page:0},{id:1109,index:638,char:"ѕ",width:22,height:25,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:454,y:116,page:0},{id:1080,index:610,char:"и",width:22,height:25,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:477,y:116,page:0},{id:1082,index:612,char:"к",width:20,height:25,xoffset:-2,yoffset:10,xadvance:14,chnl:15,x:364,y:360,page:0},{id:1083,index:613,char:"л",width:24,height:25,xoffset:-4,yoffset:10,xadvance:19,chnl:15,x:381,y:334,page:0},{id:1085,index:615,char:"н",width:21,height:25,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:402,y:306,page:0},{id:1086,index:616,char:"о",width:24,height:25,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:408,y:270,page:0},{id:1087,index:617,char:"п",width:21,height:25,xoffset:-2,yoffset:10,xadvance:17,chnl:15,x:422,y:238,page:0},{id:1089,index:619,char:"с",width:22,height:25,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:439,y:212,page:0},{id:1090,index:620,char:"т",width:21,height:25,xoffset:-3,yoffset:10,xadvance:15,chnl:15,x:440,y:180,page:0},{id:1093,index:623,char:"х",width:24,height:25,xoffset:-4,yoffset:10,xadvance:16,chnl:15,x:451,y:148,page:0},{id:1095,index:625,char:"ч",width:21,height:25,xoffset:-3,yoffset:10,xadvance:17,chnl:15,x:364,y:386,page:0},{id:1100,index:630,char:"ь",width:22,height:25,xoffset:-2,yoffset:10,xadvance:17,chnl:15,x:385,y:360,page:0},{id:1101,index:631,char:"э",width:22,height:25,xoffset:-3,yoffset:10,xadvance:16,chnl:15,x:406,y:332,page:0},{id:1103,index:633,char:"я",width:23,height:25,xoffset:-4,yoffset:10,xadvance:17,chnl:15,x:424,y:296,page:0},{id:945,index:302,char:"α",width:24,height:25,xoffset:-3,yoffset:10,xadvance:19,chnl:15,x:433,y:264,page:0},{id:949,index:304,char:"ε",width:20,height:25,xoffset:-2,yoffset:10,xadvance:14,chnl:15,x:444,y:238,page:0},{id:953,index:538,char:"ι",width:11,height:25,xoffset:-2,yoffset:10,xadvance:7,chnl:15,x:344,y:128,page:0},{id:954,index:539,char:"κ",width:22,height:25,xoffset:-2,yoffset:10,xadvance:16,chnl:15,x:377,y:412,page:0},{id:957,index:542,char:"ν",width:23,height:25,xoffset:-4,yoffset:10,xadvance:16,chnl:15,x:386,y:386,page:0},{id:959,index:544,char:"ο",width:24,height:25,xoffset:-3,yoffset:10,xadvance:18,chnl:15,x:408,y:358,page:0},{id:964,index:306,char:"τ",width:19,height:25,xoffset:-3,yoffset:10,xadvance:13,chnl:15,x:429,y:322,page:0},{id:965,index:547,char:"υ",width:21,height:25,xoffset:-2,yoffset:10,xadvance:18,chnl:15,x:448,y:290,page:0},{id:58,index:29,char:":",width:11,height:25,xoffset:-1,yoffset:10,xadvance:9,chnl:15,x:356,y:160,page:0},{id:60,index:31,char:"<",width:23,height:24,xoffset:-2,yoffset:8,xadvance:19,chnl:15,x:458,y:264,page:0},{id:62,index:33,char:">",width:23,height:24,xoffset:-2,yoffset:8,xadvance:19,chnl:15,x:482,y:142,page:0},{id:43,index:14,char:"+",width:23,height:23,xoffset:-2,yoffset:8,xadvance:19,chnl:15,x:482,y:167,page:0},{id:247,index:183,char:"÷",width:23,height:21,xoffset:-3,yoffset:9,xadvance:18,chnl:15,x:23,y:491,page:0},{id:61,index:32,char:"=",width:23,height:18,xoffset:-2,yoffset:11,xadvance:19,chnl:15,x:154,y:451,page:0},{id:215,index:238,char:"×",width:22,height:22,xoffset:-1,yoffset:9,xadvance:19,chnl:15,x:482,y:191,page:0},{id:42,index:13,char:"*",width:18,height:18,xoffset:-3,yoffset:4,xadvance:12,chnl:15,x:462,y:174,page:0},{id:45,index:16,char:"-",width:17,height:11,xoffset:-3,yoffset:17,xadvance:11,chnl:15,x:178,y:226,page:0},{id:8216,index:181,char:"‘",width:11,height:16,xoffset:-2,yoffset:4,xadvance:7,chnl:15,x:235,y:386,page:0},{id:8217,index:182,char:"’",width:11,height:16,xoffset:-2,yoffset:4,xadvance:7,chnl:15,x:256,y:418,page:0},{id:8220,index:179,char:"“",width:16,height:16,xoffset:-3,yoffset:4,xadvance:11,chnl:15,x:465,y:193,page:0},{id:8221,index:180,char:"”",width:16,height:16,xoffset:-3,yoffset:4,xadvance:11,chnl:15,x:465,y:210,page:0},{id:44,index:15,char:",",width:11,height:16,xoffset:-1,yoffset:24,xadvance:9,chnl:15,x:270,y:450,page:0},{id:46,index:17,char:".",width:11,height:11,xoffset:-1,yoffset:24,xadvance:9,chnl:15,x:86,y:289,page:0},{id:32,index:3,char:" ",width:0,height:0,xoffset:-4,yoffset:27,xadvance:9,chnl:15,x:22,y:226,page:0}],info:{face:"arial",size:32,bold:0,italic:0,charset:[" ","A","B","C","Č","Ć","D","Đ","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","Š","T","U","V","W","X","Y","Z","Ž","a","b","c","č","ć","d","đ","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","š","t","u","v","w","x","y","z","ž","А","Б","В","Г","Ґ","Д","Ђ","Е","Ё","Є","Ж","З","Ѕ","И","І","Ї","Й","Ј","К","Л","Љ","М","Н","Њ","О","П","Р","С","Т","Ћ","У","Ў","Ф","Х","Ц","Ч","Џ","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","а","б","в","г","ґ","д","ђ","е","ё","є","ж","з","ѕ","и","і","ї","й","ј","к","л","љ","м","н","њ","о","п","р","с","т","ћ","у","ў","ф","х","ц","ч","џ","ш","щ","ъ","ы","ь","э","ю","я","Α","Β","Γ","Δ","Ε","Ζ","Η","Θ","Ι","Κ","Λ","Μ","Ν","Ξ","Ο","Π","Ρ","Σ","Τ","Υ","Φ","Χ","Ψ","Ω","α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","σ","τ","υ","φ","χ","ψ","ω","ά","Ά","έ","Έ","Ή","ί","ϊ","ΐ","Ί","ό","Ό","ύ","ΰ","ϋ","Ύ","Ϋ","Ώ","Ă","Â","Ê","Ô","Ơ","Ư","ă","â","ê","ô","ơ","ư","1","2","3","4","5","6","7","8","9","0","‘","?","’","“","!","”","(","%",")","[","#","]","{","@","}","/","&","\\","<","-","+","÷","×","=",">","®","©","$","€","£","¥","¢",":",";",",",".","*","Ä","ä","Ö","ö","Ü","ü","ẞ","ß"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[4,4,4,4],spacing:[0,0]},common:{lineHeight:35,base:27,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},distanceField:{fieldType:"msdf",distanceRange:8},kernings:[]};let pn=0,mn=0;class xn{constructor(e,A){if(A=A||{},this.div=null,this.handler=e,this.exposure=3.01,this.gamma=.47,this.whitepoint=1,this.brightThreshold=.9,this.backgroundColor=A.backgroundColor||new le(115/255,203/255,249/255),this._renderNodesArr=[],this.renderNodes={},this.activeCamera=null,this.events=new an(this),this.controls={},A.controls)for(let e in A.controls)this.controls[A.controls[e].name]=A.controls[e];this.controlsBag={},this.colorObjects={},this._pickingCallbacks=[],this.pickingFramebuffer=null,this._depthCallbacks=[],this.depthFramebuffer=null,this._msaa=A.msaa||4,this._internalFormat="RGBA16F",this._format="RGBA",this._type="FLOAT",this.sceneFramebuffer=null,this.blitFramebuffer=null,this.toneMappingFramebuffer=null,this._currPickingColor=new Uint8Array(4),this._prevPickingColor=new Uint8Array(4),this._tempPickingColor_=new Uint8Array(4),this._initialized=!1,this.billboardsTextureAtlas=new dn,this.fontAtlas=new gn,this._entityCollections=[],(A.autoActivate||ce(A.autoActivate))&&(this.initialize(),this.start()),this._currentOutput="screen",this.labelWorker=new $A}setEventsActivity(e){this.events.active=e}addDepthCallback(e,A){var t=mn++;return this._depthCallbacks.push({id:t,callback:A,sender:e}),t}removeDepthCallback(e){for(var A=0;A<this._depthCallbacks.length;A++)if(e===this._depthCallbacks[A].id){this._depthCallbacks.splice(A,1);break}}addPickingCallback(e,A){var t=pn++;return this._pickingCallbacks.push({id:t,callback:A,sender:e}),t}removePickingCallback(e){for(var A=0;A<this._pickingCallbacks.length;A++)if(e===this._pickingCallbacks[A].id){this._pickingCallbacks.splice(A,1);break}}getPickingObjectByColor(e,A,t){return this.colorObjects[e+"_"+A+"_"+t]}assignPickingColor(e){if(!e._pickingColor||e._pickingColor.isZero()){for(var A=0,t=0,i=0,r="0_0_0";!(A||t||i)||this.colorObjects[r];)r=(A=C(1,255))+"_"+(t=C(1,255))+"_"+(i=C(1,255));e._pickingColor?e._pickingColor.set(A,t,i):e._pickingColor=new le(A,t,i),e._pickingColorU=new Float32Array([A/255,t/255,i/255]),this.colorObjects[r]=e}}clearPickingColor(e){if(!e._pickingColor.isZero()){var A=e._pickingColor;A.isZero()||(this.colorObjects[A.x+"_"+A.y+"_"+A.z]=null,delete this.colorObjects[A.x+"_"+A.y+"_"+A.z],A.x=A.y=A.z=0)}}getWidth(){return this.handler.canvas.clientWidth}getHeight(){return this.handler.canvas.clientHeight}getCenter(){var e=this.handler.canvas;return new de(Math.round(.5*e.clientWidth),Math.round(.5*e.clientHeight))}addControl(e){e.addTo(this)}addControls(e){for(var A=0;A<e.length;A++)e[A].addTo(this)}removeControl(e){e.remove()}initialize(){if(this._initialized)return;this._initialized=!0;var e=this;if(this.billboardsTextureAtlas.assignHandler(this.handler),this.fontAtlas.assignHandler(this.handler),this.handler.setFrameCallback((function(){e.draw()})),this.activeCamera=new Ji(this,{eye:new le(0,0,0),look:new le(0,0,-1),up:new le(0,1,0)}),this.events.initialize(),this.events.on("charkeypress",LA.KEY_APOSTROPHE,(function(){bt.setVisibility(!bt.getVisibility())})),this.handler.addProgram(new Mt("screenFrame",{uniforms:{texture:"sampler2d"},attributes:{corners:"vec3"},vertexShader:"attribute vec2 corners;\n \n varying vec2 tc;\n void main(void) {\n gl_Position = vec4(corners, 0.0, 1.0);\n tc = corners * 0.5 + 0.5;\n }",fragmentShader:"precision highp float;\n uniform sampler2D texture;\n \n varying vec2 tc;\n \n void main(void) {\n gl_FragColor = texture2D( texture, tc );\n }"})),this.pickingFramebuffer=new Ot(this.handler,{width:640,height:480}).init(),this.depthFramebuffer=new Ot(this.handler,{size:2,internalFormat:["RGBA","DEPTH_COMPONENT24"],format:["RGBA","DEPTH_COMPONENT"],type:["UNSIGNED_BYTE","UNSIGNED_INT"],attachment:["COLOR_ATTACHMENT","DEPTH_ATTACHMENT"],useDepth:!1}).init(),this.screenDepthFramebuffer=new Ot(this.handler,{useDepth:!1}).init(),"webgl"===this.handler.gl.type)this.sceneFramebuffer=new Ot(this.handler),this.sceneFramebuffer.init(),this._fnScreenFrame=this._screenFrameNoMSAA,this.screenTexture={screen:this.sceneFramebuffer.textures[0],picking:this.pickingFramebuffer.textures[0],depth:this.screenDepthFramebuffer.textures[0]};else{let e=this.getMaxMSAA(this._internalFormat);this._msaa>e&&(this._msaa=e),this.handler.addPrograms([new Mt("toneMapping",{uniforms:{hdrBuffer:"sampler2d",exposure:"float",gamma:"float",whitepoint:"float"},attributes:{corners:"vec3"},vertexShader:"#version 300 es\n \n in vec2 corners;\n \n out vec2 tc;\n\n void main(void) {\n gl_Position = vec4(corners, 0.0, 1.0);\n tc = corners * 0.5 + 0.5;\n }",fragmentShader:"#version 300 es\n\n precision highp float;\n\n #ifndef saturate\n #define saturate(a) clamp(a, 0.0, 1.0)\n #endif\n\n uniform sampler2D hdrBuffer;\n\n uniform float whitepoint;\n uniform float exposure;\n uniform float gamma;\n\n vec3 LinearToneMapping(vec3 color) {\n return exposure * color;\n }\n\n vec3 ReinhardToneMapping2(vec3 color) {\n return vec3(1.0) - exp(-color * exposure);\n }\n\n vec3 ReinhardToneMapping(vec3 color) {\n color *= exposure;\n return saturate(color / (vec3(1.0) + color));\n }\n\n #define Uncharted2Helper(x) max(((x * (0.15 * x + 0.10 * 0.50) + 0.20 * 0.02) / (x * (0.15 * x + 0.50) + 0.20 * 0.30)) - 0.02 / 0.30, vec3(0.0))\n\n vec3 Uncharted2ToneMapping(vec3 color) {\n color *= exposure;\n return saturate(Uncharted2Helper(color) / Uncharted2Helper(vec3(whitepoint)));\n }\n\n vec3 OptimizedCineonToneMapping(vec3 color) {\n color *= exposure;\n color = max(vec3(0.0), color - 0.004);\n return pow((color * (6.2 * color + 0.5)) / (color * (6.2 * color + 1.7) + 0.06), vec3(2.2));\n }\n\n vec3 ACESFilmicToneMapping(vec3 color) {\n color *= exposure;\n return saturate((color * (2.51 * color + 0.03)) / (color * (2.43 * color + 0.59) + 0.14));\n }\n\n in vec2 tc;\n\n layout(location = 0) out vec4 fragColor;\n \n void main(void) {\n vec3 hdrColor = texture(hdrBuffer, tc).rgb;\n \n float oneByGamma = gamma / gamma;\n float oneByWhitePoint = whitepoint / whitepoint;\n vec3 mapped = ReinhardToneMapping2(hdrColor) * oneByGamma * oneByWhitePoint;\n //vec3 mapped = ACESFilmicToneMapping(hdrColor) * oneByGamma * oneByWhitePoint;\n\n mapped = pow(mapped, vec3(1.0 / gamma));\n\n fragColor = vec4(mapped, 1.0);\n }"})]),this.handler.addPrograms([new Mt("depth",{uniforms:{depthTexture:"sampler2d"},attributes:{corners:"vec2"},vertexShader:"#version 300 es\n \n in vec2 corners;\n \n out vec2 tc;\n\n void main(void) {\n gl_Position = vec4(corners, 0.0, 1.0);\n tc = corners * 0.5 + 0.5;\n }",fragmentShader:"#version 300 es\n\n precision highp float;\n\n #define MAX_FRUSTUMS 4\n\n uniform sampler2D depthTexture;\n \n in vec2 tc;\n\n layout(location = 0) out vec4 fragColor;\n\n float LinearizeDepth(in vec2 uv)\n {\n float depth = texture(depthTexture, tc).x;\n return depth;//(2.0 * zNear) / (zFar + zNear - depth * (zFar - zNear));\n }\n \n void main(void) {\n float c = LinearizeDepth(tc);\n fragColor = vec4(c, c, c, 1.0);\n }"})]),this.sceneFramebuffer=new Jr(this.handler,{size:1,msaa:this._msaa,internalFormat:this._internalFormat,filter:"LINEAR"}).init(),this.blitFramebuffer=new Ot(this.handler,{useDepth:!1,internalFormat:this._internalFormat,format:this._format,type:this._type,filter:"NEAREST"}).init(),this.toneMappingFramebuffer=new Ot(this.handler,{useDepth:!1}).init(),this._fnScreenFrame=this._screenFrameMSAA,this.screenTexture={screen:this.toneMappingFramebuffer.textures[0],picking:this.pickingFramebuffer.textures[0],depth:this.screenDepthFramebuffer.textures[0],frustum:this.depthFramebuffer.textures[0]}}this.handler.onCanvasResize=()=>{this.resize(),this.events.dispatch(this.events.resize,this.handler.canvas)},this._screenFrameCornersBuffer=this.handler.createArrayBuffer(new Float32Array([1,1,-1,1,1,-1,-1,-1]),2,4);let A=this.controls;this.controls={};for(let e in A)this.addControl(A[e]);this.outputTexture=this.screenTexture.screen,this.fontAtlas.initFont("arial",fn,Br)}setCurrentScreen(e){this._currentOutput=e,this.screenTexture[e]&&(this.outputTexture=this.screenTexture[e])}resize(){let e=this.handler.canvas;this.activeCamera.setAspectRatio(e.width/e.height),this.sceneFramebuffer.setSize(e.width,e.height),this.blitFramebuffer&&this.blitFramebuffer.setSize(e.width,e.height,!0),this.toneMappingFramebuffer&&this.toneMappingFramebuffer.setSize(e.width,e.height,!0),this.depthFramebuffer&&this.depthFramebuffer.setSize(e.clientWidth,e.clientHeight,!0),this.screenDepthFramebuffer&&this.screenDepthFramebuffer.setSize(e.clientWidth,e.clientHeight,!0),"webgl"===this.handler.gl.type?(this.screenTexture.screen=this.sceneFramebuffer.textures[0],this.screenTexture.picking=this.pickingFramebuffer.textures[0],this.screenTexture.depth=this.screenDepthFramebuffer.textures[0],this.screenTexture.frustum=this.depthFramebuffer.textures[0]):(this.screenTexture.screen=this.toneMappingFramebuffer.textures[0],this.screenTexture.picking=this.pickingFramebuffer.textures[0],this.screenTexture.depth=this.screenDepthFramebuffer.textures[0],this.screenTexture.frustum=this.depthFramebuffer.textures[0]),this.setCurrentScreen(this._currentOutput)}removeNode(e){e.remove()}addNode(e){this.renderNodes[e.name]?bt.logWrn("Node name "+e.name+" allready exists."):(e.assign(this),this._renderNodesArr.unshift(e),this.renderNodes[e.name]=e)}addNodeBefore(e,A){if(this.renderNodes[e.name])bt.logWrn("Node name "+e.name+" allready exists.");else{e.assign(this),this.renderNodes[e.name]=e;for(let t=0;t<this._renderNodesArr.length;t++)if(this._renderNodesArr[t].isEqual(A)){this._renderNodesArr.splice(t,0,e);break}this._renderNodesArr.unshift(e)}}addNodes(e){for(var A=0;A<e.length;A++)this.addNode(e[A])}getMaxMSAA(e){var A=this.handler.gl;return A.getInternalformatParameter(A.RENDERBUFFER,A[e],A.SAMPLES)[0]}getMSAA(){return this._msaa}enqueueEntityCollectionsToDraw(e){this._entityCollections.push.apply(this._entityCollections,e)}_drawEntityCollections(){let e=this._entityCollections;if(e.length){var A=this.handler.gl;A.enable(A.BLEND),A.blendEquation(A.FUNC_ADD),A.blendFuncSeparate(A.SRC_ALPHA,A.ONE_MINUS_SRC_ALPHA,A.ONE,A.ONE),A.disable(A.CULL_FACE),A.enable(A.POLYGON_OFFSET_FILL),A.polygonOffset(0,0),A.activeTexture(A.TEXTURE0),A.bindTexture(A.TEXTURE_2D,this.billboardsTextureAtlas.texture);for(var t=e.length;t--;){var i=e[t];i._fadingOpacity&&(i.events.dispatch(i.events.draw,i),i.billboardHandler.draw())}var r=this.fontAtlas.atlasesArr;for(t=0;t<r.length;t++)A.activeTexture(A.TEXTURE0+t),A.bindTexture(A.TEXTURE_2D,r[t].texture);for(t=e.length;t--;)e[t]._fadingOpacity&&e[t].labelHandler.draw();for(t=e.length;t--;)e[t]._fadingOpacity&&e[t].geoObjectHandler.draw();for(t=e.length;t--;)e[t]._fadingOpacity&&e[t].rayHandler.draw();for(t=e.length;t--;)e[t]._fadingOpacity&&e[t].polylineHandler.draw();for(A.enable(A.CULL_FACE),t=e.length;t--;)e[t]._fadingOpacity&&e[t].pointCloudHandler.draw();for(t=e.length;t--;)(i=e[t])._fadingOpacity&&i.shapeHandler.draw();for(t=e.length;t--;)e[t]._fadingOpacity&&(e[t].stripHandler.draw(),i.events.dispatch(i.events.drawend,i));A.disable(A.POLYGON_OFFSET_FILL),this._entityCollections.length=0,this._entityCollections=[]}}draw(){this.activeCamera.checkMoveEnd();let e=this.events;e.handleEvents();let A=this.sceneFramebuffer;A.activate();let t=this.handler;t.gl.clearColor(this.backgroundColor.x,this.backgroundColor.y,this.backgroundColor.z,1),t.gl.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT),e.dispatch(e.draw,this);let i=this.activeCamera.frustums,r=this.events.mouseState.anyEvent(),n=this._renderNodesArr,s=i.length;for(;s--;){this.activeCamera.setCurrentFrustum(s),t.gl.clear(t.gl.DEPTH_BUFFER_BIT);let e=n.length;for(;e--;)n[e].drawNode();this._drawEntityCollections(),r&&this._drawPickingBuffer(s)}A.deactivate(),this.blitFramebuffer&&A.blitTo(this.blitFramebuffer),r&&(this._drawDepthBuffer(),this._readPickingColor()),this._fnScreenFrame(),e.dispatch(e.postdraw,this),e.mouseState.moving=!1,e.touchState.moving=!1}_screenFrameMSAA(){var e=this.handler,A=e.programs.toneMapping,t=A._program,i=e.gl;i.disable(i.DEPTH_TEST),i.bindBuffer(i.ARRAY_BUFFER,this._screenFrameCornersBuffer),i.vertexAttribPointer(t.attributes.corners,2,i.FLOAT,!1,0,0),this.toneMappingFramebuffer.activate(),A.activate(),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,this.blitFramebuffer.textures[0]),i.uniform1i(t.uniforms.hdrBuffer,0),i.uniform1f(t.uniforms.gamma,this.gamma),i.uniform1f(t.uniforms.exposure,this.exposure),i.uniform1f(t.uniforms.whitepoint,this.whitepoint),i.drawArrays(i.TRIANGLE_STRIP,0,4),this.toneMappingFramebuffer.deactivate(),t=(A=e.programs.screenFrame)._program,i=e.gl,A.activate(),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,this.outputTexture),i.uniform1i(t.uniforms.texture,0),i.drawArrays(i.TRIANGLE_STRIP,0,4),i.enable(i.DEPTH_TEST)}_screenFrameNoMSAA(){var e=this.handler,A=e.programs.screenFrame,t=A._program,i=e.gl;i.disable(i.DEPTH_TEST),A.activate(),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,this.outputTexture),i.uniform1i(t.uniforms.texture,0),i.bindBuffer(i.ARRAY_BUFFER,this._screenFrameCornersBuffer),i.vertexAttribPointer(t.attributes.corners,2,i.FLOAT,!1,0,0),i.drawArrays(i.TRIANGLE_STRIP,0,4),i.enable(i.DEPTH_TEST)}_drawPickingBuffer(e){this.pickingFramebuffer.activate();var A=this.handler,t=A.gl;e===this.activeCamera.FARTHEST_FRUSTUM_INDEX?(t.clearColor(0,0,0,1),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)):t.clear(t.DEPTH_BUFFER_BIT),t.disable(A.gl.BLEND);for(var i=this._pickingCallbacks,r=i.length;r--;)i[r].callback.call(i[r].sender);this.pickingFramebuffer.deactivate()}_drawDepthBuffer(){this.depthFramebuffer.activate();var e=this.handler,A=e.gl;A.clearColor(0,0,0,1),A.clear(A.COLOR_BUFFER_BIT|A.DEPTH_BUFFER_BIT),A.enable(A.DEPTH_TEST);for(var t=this._depthCallbacks,i=t.length;i--;)t[i].callback.call(t[i].sender);this.depthFramebuffer.deactivate(),this.screenDepthFramebuffer.activate();var r=e.programs.depth,n=r._program;(A=e.gl).bindBuffer(A.ARRAY_BUFFER,this._screenFrameCornersBuffer),A.vertexAttribPointer(n.attributes.corners,2,A.FLOAT,!1,0,0),r.activate(),A.activeTexture(A.TEXTURE0),A.bindTexture(A.TEXTURE_2D,this.depthFramebuffer.textures[1]),A.uniform1i(n.uniforms.depthTexture,0),A.drawArrays(A.TRIANGLE_STRIP,0,4),this.screenDepthFramebuffer.deactivate()}_readPickingColor(){var e=this.events.mouseState,A=this.events.touchState;if(!(e.leftButtonHold||e.rightButtonHold||e.middleButtonHold)){this._prevPickingColor[0]=this._currPickingColor[0],this._prevPickingColor[1]=this._currPickingColor[1],this._prevPickingColor[2]=this._currPickingColor[2];var t=this._currPickingColor;A.x||A.y?(this.pickingFramebuffer.activate(),this.pickingFramebuffer.readPixels(t,A.nx,1-A.ny),this.pickingFramebuffer.deactivate()):(this.pickingFramebuffer.activate(),this.pickingFramebuffer.readPixels(t,e.nx,1-e.ny),this.pickingFramebuffer.deactivate())}}start(){this.handler.start()}}class vn{constructor(e){var A="globus_viewport_"+vn._staticCounter++;function t(e){e.preventDefault()}this._canvas=document.createElement("canvas"),this._canvas.id=A,this._canvas.style.width="100%",this._canvas.style.height="100%",this._canvas.style.display="block",this._canvas.style.opacity="0.0",this._canvas.style.transition="opacity 1.0s",e.target instanceof HTMLElement?this.div=e.target:this.div=document.getElementById(e.target)||document.querySelector(e.target),this.div.appendChild(this._canvas),this.div.classList.add("ogViewport"),document.addEventListener("visibilitychange",(()=>{"visible"===document.visibilityState?(this.renderer.handler.start(),this.renderer&&this.renderer.resize()):this.renderer.handler.stop()})),this.div.onmouseenter=function(){document.addEventListener("mousewheel",t,{capture:!1,passive:!1})},this.div.onmouseleave=function(){document.removeEventListener("mousewheel",t)},this.renderer=new xn(new Kr(A,{pixelRatio:window.devicePixelRatio+.15,context:{alpha:!1,antialias:!1,powerPreference:"high-performance"}}),{autoActivate:!1}),this.renderer.initialize(),this.renderer.div=this.div,this.renderer.div.attributions=document.createElement("div"),e.attributionContainer?e.attributionContainer.appendChild(this.renderer.div.attributions):(this.renderer.div.attributions.classList.add("ogAttribution"),this.div.appendChild(this.renderer.div.attributions)),e.skybox&&this.renderer.addNode(e.skybox),this._planetName=e.name?e.name:"globus_planet_"+vn._staticCounter,e.atmosphere||(this.planet=new Dr({name:this._planetName,frustums:e.frustums,ellipsoid:e.ellipsoid,maxGridSize:e.maxGridSize,useNightTexture:e.useNightTexture,useSpecularTexture:e.useSpecularTexture,minAltitude:e.minAltitude,maxAltitude:e.maxAltitude||15e6,maxEqualZoomAltitude:e.maxEqualZoomAltitude,minEqualZoomAltitude:e.minEqualZoomAltitude,minEqualZoomCameraSlope:e.minEqualZoomCameraSlope,loadingBatchSize:e.loadingBatchSize})),e.terrain?this.planet.setTerrain(e.terrain):this.planet.setTerrain(new Wr),this.renderer.addNode(this.planet),e.controls?this.planet.addControls(e.controls):this.planet.addControls([new UA,e.useEarthNavigation?new wA:new kA({minSlope:e.minSlope}),new HA,new TA,new tn,new mA(e)]);var i=this.renderer.controls;for(var r in i)if(i[r]instanceof NA){this.sun=i[r];break}this.sun||(this.sun=new NA,this.planet.addControl(this.sun)),e.sun&&(void 0===e.sun.active||e.sun.active||this.sun.deactivate()),e.layers&&this.planet.addLayers(e.layers);let n=e.viewExtent;n&&(n instanceof Array?this.planet.viewExtentArr(n):this.planet.viewExtent(n)),this._opacityCounter=0,this._fadeHandler=null,this._stopHandler=null,(e.autoActivate||ce(e.autoActivate))&&(this.renderer.start(),this.fadeIn())}fadeIn(){this._canvas.style.opacity=1}fadeOut(){this._canvas.style.opacity=0}static get _staticCounter(){return this._counter||0===this._counter||(this._counter=0),this._counter}static set _staticCounter(e){this._counter=e}}class yn{constructor(e){this._id=yn._staticCounter++,this.events=new bA(["open","close"]),this._template=ye('<div class="og-popup {className}">\n <div class="og-popup-content-wrapper">\n <div class="og-popup-content"></div>\n </div>\n <div class="og-popup-tip-container">\n <div class="og-popup-tip"></div>\n </div>\n <div class="og-popup-toolbar">\n <div class="og-popup-btn og-popup-close">×</div>\n </div>\n <div class="og-popup-title">\n </div>\n </div>',{className:e.className}),this.el=null,this._title=e.title||"",this._content=e.content||null,this._contentEl=null,this._titleEl=null,this._planet=e.planet,this._offset=e.offset||[0,0],this._lonLat=Me(e.lonLat),this._cartPos=new le,this._visibility=e.visibility||!1,this.render()}static get _staticCounter(){return this.__counter__||0===this.__counter__||(this.__counter__=0),this.__counter__}static set _staticCounter(e){this.__counter__=e}_renderTemplate(){return we(this._template)[0]}_updatePosition(){this.setCartesian3v(this._cartPos)}setScreen(e){if(this._planet){let A=this._planet.renderer.handler.pixelRatio;this.el.style.transform="translate("+(e.x/A-.5*this.clientWidth)+"px, "+(e.y/A-this._planet.renderer.handler.canvas.clientHeight-this._tipEl.clientHeight)+"px)"}}get clientWidth(){return this.el.clientWidth}get clientHeight(){return this.el.clientHeight}setOffset(e=0,A=0){return this._offset[0]=e,this._offset[1]=A,this.el&&(this.el.style.left=`${e}px`,this.el.style.bottom=`${A}px`),this}render(e){return this.el=this._renderTemplate(e),this._contentEl=this.el.querySelector(".og-popup-content"),this._titleEl=this.el.querySelector(".og-popup-title"),this._tipEl=this.el.querySelector(".og-popup-tip-container"),this.setOffset(this._offset[0],this._offset[1]),this.setContent(this._content),this.setTitle(this._title),this.setLonLat(this._lonLat),this.setVisibility(this._visibility),this.el.querySelector(".og-popup-close").addEventListener("click",(()=>{this.hide()})),this}setVisibility(e){return e?this.show():this.hide(),this}getContainer(){return this._contentEl}getToolbarContainer(){return this.el.querySelector(".og-popup-toolbar")}show(){return this._visibility=!0,this._planet&&(this._planet.events.on("draw",this._updatePosition,this),this._planet.renderer.div.appendChild(this.el),this.events.dispatch(this.events.open,this)),this}hide(){return this._visibility=!1,this.el.parentNode&&(this._planet.events.off("draw",this._updatePosition),this.el.parentNode.removeChild(this.el),this.events.dispatch(this.events.close,this)),this}setCartesian3v(e,A=0){if(this._cartPos=e,this._planet){let t=this._planet.camera,i=this._planet.ellipsoid._a+A,r=t._lonLat.height,n=e.sub(t.eye);Math.sqrt((i+r)*(i+r)-i*i)>n.length()&&t.getForward().dot(n.normalize())>0?(this.el.style.display="block",this.setScreen(t.project(e))):this.el.style.display="none"}return this}setTitle(e){return this._title=e,this._titleEl.innerHTML=e,this}setLonLat(e){return this._lonLat=e,this._planet&&this.setCartesian3v(this._planet.ellipsoid.lonLatToCartesian(e),e.height),this}setContent(e){return e&&(this.clear(),this._content=e,"string"==typeof e?this._contentEl.innerHTML=e:this._contentEl.appendChild(e)),this}clear(){this._content=null,this._contentEl.innerHTML=""}}var wn="0.12.3";const{Handler:Cn}=jr,{Control:Bn}=GA,{Layer:En}=zr,{EntityCollection:Tn,Entity:bn}=Qr,In={version:wn};e.Camera=Ji,e.Clock=Nr,e.Control=Bn,e.Ellipsoid=wr,e.Entity=bn,e.EntityCollection=Tn,e.Events=bA,e.Extent=ne,e.Geoid=br,e.Globe=vn,e.Handler=Cn,e.Layer=En,e.LightSource=QA,e.Line2=wt,e.Line3=it,e.LonLat=F,e.Mat3=oe,e.Mat4=ae,e.Plane=class{constructor(e,A){this.p=e?e.clone():new le,this.n=A?A.clone():this.p.normal()}set(e,A){this.p.copy(e),this.n.copy(A)}getNormal(){return this.n.clone()}distance(e){let A=this.getProjection(e);return e.distance(A)}getProjection(e,A){return le.proj_b_to_plane(e,this.n,A)}getProjectionPoint(e,A){let t=e.sub(this.p),i=this.n,r=t.dot(i);return A?A.copy(i.scale(r)):A=i.scale(r),e.sub(A)}getIntersection(e,A,t){var i,r=e.n.cross(A.n),n=r.x>=0?r.x:-r.x,s=r.y>=0?r.y:-r.y,a=r.z>=0?r.z:-r.z;if(n+s+a<m){var o=A.p.sub(e.p);return 0==e.n.dot(o)?1:0}i=n>s?n>a?1:3:s>a?2:3;var h,l,d=new le;return h=-e.n.dot(e.p),l=-A.n.dot(A.p),1===i?(d.x=0,d.y=(l*e.n.z-h*A.n.z)/r.x,d.z=(h*A.n.y-l*e.n.y)/r.x):2===i?(d.x=(h*A.n.z-l*e.n.z)/r.y,d.y=0,d.z=(l*e.n.x-h*A.n.x)/r.y):3===i&&(d.x=(l*e.n.y-h*A.n.y)/r.z,d.y=(h*A.n.x-l*e.n.x)/r.z,d.z=0),t.p0.copy(d),t.p1.copy(d.add(r)),2}},e.PlanetCamera=Wi,e.Popup=yn,e.Quat=he,e.Ray=vA,e.RenderNode=Zi,e.Renderer=xn,e.Vec2=de,e.Vec3=le,e.Vec4=se,e.bv=Hr,e.control=GA,e.entity=Qr,e.input=LA,e.jd=fA,e.layer=zr,e.math=_,e.mercator=re,e.scene=Or,e.terrain=en,e.utils=Ke,e.version=In,e.webgl=jr,e.wgs84=Cr,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
21
|
+
//# sourceMappingURL=og.umd.js.map
|