🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@maptalks/video-layer

Package Overview
Dependencies
Maintainers
1
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@maptalks/video-layer - npm Package Compare versions

Comparing version
0.101.0
to
0.101.1
+2
-2
dist/maptalks.video.es.js
/*!
* @maptalks/video-layer v0.101.0
* @maptalks/video-layer v0.101.1
* LICENSE : UNLICENSED

@@ -11,3 +11,3 @@ * (c) 2016-2024 maptalks.org

* https://github.com/mrdoob/three.js
*/for(var c=[],u=0;u<6;u++)c[u]=[];var p=[];function f(t,e,i){var s,r,o,n,a,h,l,d,u,f,_,g,x,w,y,b,O;r=(s=t)[0],o=s[1],n=s[2],a=s[3],h=s[4],l=s[5],d=s[6],u=s[7],f=s[8],_=s[9],g=s[10],x=s[11],w=s[12],y=s[13],b=s[14],O=s[15],m(c[0],a-r,u-h,x-f,O-w),m(c[1],a+r,u+h,x+f,O+w),m(c[2],a+o,u+l,x+_,O+y),m(c[3],a-o,u-l,x-_,O-y),m(c[4],a-n,u-d,x-g,O-b),m(c[5],a+n,u+d,x+g,O+b);for(var S=0;S<6;S++){var T=c[S];if(p[0]=T[0]>0?e[1][0]:e[0][0],p[1]=T[1]>0?e[1][1]:e[0][1],p[2]=T[2]>0?e[1][2]:e[0][2],v(T,p)<0)return!1}return!0}function m(t,e,i,s,r){var o=1/Math.sqrt(e*e+i*i+s*s);return t[0]=e*o,t[1]=i*o,t[2]=s*o,t[3]=r*o,t}function v(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]}const _={vert:"\n attribute vec3 aPosition;\n attribute vec2 aTexCoord;\n uniform mat4 projViewModelMatrix;\n uniform mat4 positionMatrix;\n uniform mat4 modelMatrix;\n varying vec2 vTexCoords;\n #include <get_output>\n void main()\n {\n mat4 localPositionMatrix = getPositionMatrix();\n vec4 localPosition = getPosition(aPosition);\n gl_Position = projViewModelMatrix * localPositionMatrix * localPosition;\n vTexCoords = aTexCoord;\n }\n",frag:"\n precision mediump float;\n uniform sampler2D videoTexture;\n uniform float opacity;\n\n varying vec2 vTexCoords;\n void main() {\n vec4 color = texture2D(videoTexture, vTexCoords);\n gl_FragColor = color * opacity;\n }\n",uniforms:[{name:"projViewModelMatrix",type:"function",fn:(t,e)=>l.multiply([],e.projViewMatrix,e.modelMatrix)},"texture","opacity"],positionAttribute:"POSITION",extraCommandProps:{depth:{enable:!0,func:"always"},cull:{enable:!1,face:"back"},frontFace:"cw",blend:{enable:!0,func:{src:"src alpha",dst:"one minus src alpha"},equation:"add"}}},g=[1,0,3,3,2,1];class x extends t.renderer.CanvasRenderer{constructor(t){super(t),this.t={}}draw(t,e){this.prepareCanvas(),this.i(e)}drawOnInteracting(t,e,i){this.i(i)}needToRedraw(){return!0}hitDetect(){return!1}createContext(){if(this.canvas.gl&&this.canvas.gl.wrap)this.gl=this.canvas.gl.wrap(),this.regl=this.canvas.gl.regl;else{const t=this.layer.options.glOptions||{alpha:!0,depth:!0,stencil:!0};this.glOptions=t,this.gl=this.gl||this.o(this.canvas,t),this.regl=a({gl:this.gl,extensions:["ANGLE_instanced_arrays","OES_texture_float","OES_texture_half_float","OES_texture_float_linear","OES_texture_half_float_linear","EXT_shader_texture_lod","OES_element_index_uint","OES_standard_derivatives","WEBGL_depth_texture"],optionalExtensions:this.layer.options.glExtensions||[]})}this.h(),this.l();const t=this.layer.getVideoSurfaces();for(let e=0;e<t.length;e++)this.u(t[e])}o(t,e){const i=["webgl","experimental-webgl"];let s=null;for(let r=0;r<i.length;++r){try{s=t.getContext(i[r],e)}catch(t){}if(s)break}return s}l(){const t=this.layer.getMap(),e=new h.Renderer(this.regl);this.renderer=e,this.p={projMatrix:t.projMatrix,projViewMatrix:t.projViewMatrix,viewMatrix:t.viewMatrix,halton:[.2107,-.0202],uHalton:[.2107,-.0202],uCameraPosition:t.cameraPosition,cameraPosition:t.cameraPosition,globalTexSize:[t.width,t.height]}}m(){return this.regl}h(){this.viewport={x:0,y:0,width:()=>this.canvas?this.canvas.width:1,height:()=>this.canvas?this.canvas.height:1},this.v()}v(){this._&&this._.dispose(),this.layer.options.showTopAlways?(_.extraCommandProps.depth.mask=!1,_.extraCommandProps.depth.range=[0,0]):(delete _.extraCommandProps.depth.mask,delete _.extraCommandProps.depth.range),_.extraCommandProps.cull.enable=!this.layer.options.doubleSide,this._=new h.MeshShader(_)}u(t){const e=this.regl.texture(),i=new h.Material({videoTexture:e,opacity:1}),s=t.getCoordinates(),{worldCenter:r,points:o}=this.O(s),n=this.S(o),a=new h.Mesh(n,i);this.T(a,r);const l=new h.Scene(a),d=t.C();this.t[d]=l}M(t){const e=t.C(),i=this.t[e].getMeshes()[0],s=t.getCoordinates();i.geometry.dispose();const{worldCenter:r,points:o}=this.O(s),n=this.S(o);i.geometry=n,this.T(i,r)}i(t){const e=this.layer.getVideoSurfaces().filter((t=>t.isVisible()));if(!e.length)return;const i=this.P(e);if(!i)return;let s=null;t&&(s=t.renderTarget&&t.renderTarget.fbo),this.renderer.render(this._,this.p,i,s)}S(t){return new h.Geometry({POSITION:t,TEXCOORD:[0,0,1,0,1,1,0,1]},g,0,{primitive:"triangles",positionAttribute:"POSITION",uv0Attribute:"TEXCOORD",normalAttribute:"NORMAL",positionSize:3})}O(e){let i=[];const s=this.getMap(),r=new t.Polygon(e).getCenter(),o=w(s,r,0);return this.V=o,s&&e.forEach((e=>{const r=new t.Coordinate(e[0],e[1]),n=s.altitudeToPoint(e[2]||0,s.getGLRes()),a=w(s,r,n);a[0]=a[0]-o[0],a[1]=a[1]-o[1],i=i.concat(a)})),{worldCenter:o,points:i}}P(t){const e=[],i=this.layer.getMap();for(let s=0;s<t.length;s++){const r=t[s],o=this.t[r.C()];if(!o)continue;const n=o.getMeshes();for(let t=0;t<n.length;t++){const s=n[t],o=s.getMaterial(),a=o.get("videoTexture");a&&r.A()&&(a(r.video),o.set("opacity",r.getOpacity())),f(i.projViewMatrix,s.getBoundingBox())&&e.push(s)}}return e.length?new h.Scene(e):null}T(t,e){l.fromRotationTranslationScale(t.localTransform,d.fromEuler([],0,0,0),e,[1,1,1])}remove(){this._&&this._.dispose(),super.remove()}clearCanvas(){this.canvas&&(this.regl.clear({color:[0,0,0,0],depth:1,stencil:0}),super.clearCanvas())}k(t){const e=this.t[t];if(!e)return;e.getMeshes().forEach((t=>{t.geometry.dispose(),t.material&&t.material.dispose(),t.dispose()}))}}function w(t,e,i){if(!t)return null;const s=t.coordinateToPointAtRes(e,t.getGLRes());return[s.x,s.y,i]}class y extends(e(i(s))){constructor(t,e){super(e),this.setCoordinates(t),this.I()}setCoordinates(t){this.R=t}getCoordinates(){return this.R}setVideo(t){this.D="stop",this.options.url=t,delete this.options.elementId,this.I()}setElementId(t){this.D="stop",this.options.elementId=t,delete this.options.url,this.I()}I(){this.D="stop";const t=this.options.url,e=this.options.elementId;let i=document.getElementById(e);if(t&&(i=document.createElement("video"),i.src=t),!i)throw new Error("there is no element or url setting for video mask");i.autoplay=!0,i.loop=!0,i.muted=!0,i.play(),i.addEventListener("playing",(()=>{this.D="playing",this.fire("playing",{state:this.D,url:t})})),i.addEventListener("pause",(()=>{this.D="pause",this.fire("pause",{state:this.D,url:t})})),i.addEventListener("error",(()=>{throw this.D="pause",this.fire("error",{state:this.D,url:t}),new Error("video resource load error")})),this.video=i}getVideo(){return this.video}L(t){this.j=t}C(){return this.j}addTo(t){if(this.F)throw new Error("VideoSurface cannot be added to two or more layers at the same time.");return t.addSurfaces(this),this}show(){return this.options.visible=!0,this}hide(){return this.options.visible=!1,this}isVisible(){return this.options.visible}play(){this.video&&this.video.play()}pause(){this.video&&this.video.pause()}setAudio(t){this.video.muted=t}setOpacity(t){this.options.opacity=t}getOpacity(){return this.options.opacity}remove(){delete this.video;const t=this.getLayer();t&&t.removeVideoSurfaces(this),this.endEdit()}getLayer(){return this.F}A(){return"playing"===this.D}startEdit(){const t=this.getLayer();if(!t)return void console.warn("videosurface should be added to a map before edit");const e=t.getMap();if(!e)return void console.warn("videosurface should be added to a map before edit");if(this.N(),!this.G){const i=t.getId();this.G=new r(`internal_${i}_edit`,{enableAltitude:!0}).addTo(e)}const i=this.getCoordinates();this.H=new o(i,{symbol:{lineColor:"#34495e",lineWidth:2,polygonFill:"rgb(135,196,240)",polygonOpacity:.1}}).addTo(this.G),this.H.startEdit({newVertexHandleSymbol:{polygonFill:"rgba(0, 0, 0, 0)",polygonOpacity:0,markerType:"ellipse",markerWidth:1,markerHeight:1}}),this.H.on("shapechange",(e=>{const i=e.target.getCoordinates()[0].slice(0,4).map((t=>[t.x,t.y,0]));this.setCoordinates(i);t.getRenderer().M(this)}),this)}endEdit(){this.G&&(this.H.endEdit(),this.H.remove(),this.G.remove()),delete this.G,delete this.H}N(){this.G&&this.G.clear(),delete this.H}}y.mergeOptions({opacity:1,visible:!0});class b extends n{constructor(t,e,i){!e||Array.isArray(e)||e instanceof y||(i=e,e=null),super(t,i),this.W={},this.videoId=0,this.W={},this.videoId=0,e&&this.addSurfaces(e)}addSurfaces(t){if(t)if(Array.isArray(t))t.forEach((t=>{this.addMarker(t)}));else{t.F=this,this.W[this.videoId]=t,t.L(this.videoId);const e=this.getRenderer();e?e.m()&&e.u(t):this.on("renderercreate",(e=>{e.renderer.m()&&e.renderer.u(t)})),this.videoId++}}showTopAlways(t){this.options.showTopAlways=t;const e=this.getRenderer();e&&e.v()}setDoubleSide(t){this.options.doubleSide=t;const e=this.getRenderer();e&&e.v()}getVideoSurfaces(){const t=[];for(const e in this.W)t.push(this.W[e]);return t}removeVideoSurfaces(t){if(Array.isArray(t))t.forEach((t=>{this.removeVideoSurfaces(t)}));else{const e=t.C(),i=this.getRenderer();i&&i.k(e),delete this.W[e]}}remove(){this.clear(),super.remove()}clear(){const t=this.getVideoSurfaces();for(let e=0;e<t.length;e++)t[e].remove()}}b.mergeOptions({renderer:"gl",doubleBuffer:!1,glOptions:null,markerEvents:!0,forceRenderOnZooming:!0,forceRenderOnMoving:!0,forceRenderOnRotating:!0,showTopAlways:!0,doubleSide:!0}),b.registerJSONType("VideoLayer"),b.registerRenderer("gl",x);export{b as VideoLayer,y as VideoSurface};"undefined"!=typeof console&&console.log("@maptalks/video-layer v0.101.0");
*/for(var c=[],u=0;u<6;u++)c[u]=[];var p=[];function f(t,e,i){var s,r,o,n,a,h,l,d,u,f,_,g,x,w,y,b,O;r=(s=t)[0],o=s[1],n=s[2],a=s[3],h=s[4],l=s[5],d=s[6],u=s[7],f=s[8],_=s[9],g=s[10],x=s[11],w=s[12],y=s[13],b=s[14],O=s[15],m(c[0],a-r,u-h,x-f,O-w),m(c[1],a+r,u+h,x+f,O+w),m(c[2],a+o,u+l,x+_,O+y),m(c[3],a-o,u-l,x-_,O-y),m(c[4],a-n,u-d,x-g,O-b),m(c[5],a+n,u+d,x+g,O+b);for(var S=0;S<6;S++){var T=c[S];if(p[0]=T[0]>0?e[1][0]:e[0][0],p[1]=T[1]>0?e[1][1]:e[0][1],p[2]=T[2]>0?e[1][2]:e[0][2],v(T,p)<0)return!1}return!0}function m(t,e,i,s,r){var o=1/Math.sqrt(e*e+i*i+s*s);return t[0]=e*o,t[1]=i*o,t[2]=s*o,t[3]=r*o,t}function v(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]}const _={vert:"\n attribute vec3 aPosition;\n attribute vec2 aTexCoord;\n uniform mat4 projViewModelMatrix;\n uniform mat4 positionMatrix;\n uniform mat4 modelMatrix;\n varying vec2 vTexCoords;\n #include <get_output>\n void main()\n {\n mat4 localPositionMatrix = getPositionMatrix();\n vec4 localPosition = getPosition(aPosition);\n gl_Position = projViewModelMatrix * localPositionMatrix * localPosition;\n vTexCoords = aTexCoord;\n }\n",frag:"\n precision mediump float;\n uniform sampler2D videoTexture;\n uniform float opacity;\n\n varying vec2 vTexCoords;\n void main() {\n vec4 color = texture2D(videoTexture, vTexCoords);\n gl_FragColor = color * opacity;\n }\n",uniforms:[{name:"projViewModelMatrix",type:"function",fn:(t,e)=>l.multiply([],e.projViewMatrix,e.modelMatrix)},"texture","opacity"],positionAttribute:"POSITION",extraCommandProps:{depth:{enable:!0,func:"always"},cull:{enable:!1,face:"back"},frontFace:"cw",blend:{enable:!0,func:{src:"src alpha",dst:"one minus src alpha"},equation:"add"}}},g=[1,0,3,3,2,1];class x extends t.renderer.CanvasRenderer{constructor(t){super(t),this.t={}}draw(t,e){this.prepareCanvas(),this.i(e)}drawOnInteracting(t,e,i){this.i(i)}needToRedraw(){return!0}hitDetect(){return!1}createContext(){if(this.canvas.gl&&this.canvas.gl.wrap)this.gl=this.canvas.gl.wrap(),this.regl=this.canvas.gl.regl;else{const t=this.layer.options.glOptions||{alpha:!0,depth:!0,stencil:!0};this.glOptions=t,this.gl=this.gl||this.o(this.canvas,t),this.regl=a({gl:this.gl,extensions:["ANGLE_instanced_arrays","OES_texture_float","OES_texture_half_float","OES_texture_float_linear","OES_texture_half_float_linear","EXT_shader_texture_lod","OES_element_index_uint","OES_standard_derivatives","WEBGL_depth_texture"],optionalExtensions:this.layer.options.glExtensions||[]})}this.h(),this.l();const t=this.layer.getVideoSurfaces();for(let e=0;e<t.length;e++)this.u(t[e])}o(t,e){const i=["webgl","experimental-webgl"];let s=null;for(let r=0;r<i.length;++r){try{s=t.getContext(i[r],e)}catch(t){}if(s)break}return s}l(){const t=this.layer.getMap(),e=new h.Renderer(this.regl);this.renderer=e,this.p={projMatrix:t.projMatrix,projViewMatrix:t.projViewMatrix,viewMatrix:t.viewMatrix,halton:[.2107,-.0202],uHalton:[.2107,-.0202],uCameraPosition:t.cameraPosition,cameraPosition:t.cameraPosition,globalTexSize:[t.width,t.height]}}m(){return this.regl}h(){this.viewport={x:0,y:0,width:()=>this.canvas?this.canvas.width:1,height:()=>this.canvas?this.canvas.height:1},this.v()}v(){this._&&this._.dispose(),this.layer.options.showTopAlways?(_.extraCommandProps.depth.mask=!1,_.extraCommandProps.depth.range=[0,0]):(delete _.extraCommandProps.depth.mask,delete _.extraCommandProps.depth.range),_.extraCommandProps.cull.enable=!this.layer.options.doubleSide,this._=new h.MeshShader(_)}u(t){const e=this.regl.texture(),i=new h.Material({videoTexture:e,opacity:1}),s=t.getCoordinates(),{worldCenter:r,points:o}=this.O(s),n=this.S(o),a=new h.Mesh(n,i);this.T(a,r);const l=new h.Scene(a),d=t.C();this.t[d]=l}M(t){const e=t.C(),i=this.t[e].getMeshes()[0],s=t.getCoordinates();i.geometry.dispose();const{worldCenter:r,points:o}=this.O(s),n=this.S(o);i.geometry=n,this.T(i,r)}i(t){const e=this.layer.getVideoSurfaces().filter((t=>t.isVisible()));if(!e.length)return;const i=this.P(e);if(!i)return;let s=null;t&&(s=t.renderTarget&&t.renderTarget.fbo),this.renderer.render(this._,this.p,i,s)}S(t){return new h.Geometry({POSITION:t,TEXCOORD:[0,0,1,0,1,1,0,1]},g,0,{primitive:"triangles",positionAttribute:"POSITION",uv0Attribute:"TEXCOORD",normalAttribute:"NORMAL",positionSize:3})}O(e){let i=[];const s=this.getMap(),r=new t.Polygon(e).getCenter(),o=w(s,r,0);return this.V=o,s&&e.forEach((e=>{const r=new t.Coordinate(e[0],e[1]),n=s.altitudeToPoint(e[2]||0,s.getGLRes()),a=w(s,r,n);a[0]=a[0]-o[0],a[1]=a[1]-o[1],i=i.concat(a)})),{worldCenter:o,points:i}}P(t){const e=[],i=this.layer.getMap();for(let s=0;s<t.length;s++){const r=t[s],o=this.t[r.C()];if(!o)continue;const n=o.getMeshes();for(let t=0;t<n.length;t++){const s=n[t],o=s.getMaterial(),a=o.get("videoTexture");a&&r.A()&&(a(r.video),o.set("opacity",r.getOpacity())),f(i.projViewMatrix,s.getBoundingBox())&&e.push(s)}}return e.length?new h.Scene(e):null}T(t,e){l.fromRotationTranslationScale(t.localTransform,d.fromEuler([],0,0,0),e,[1,1,1])}remove(){this._&&this._.dispose(),super.remove()}clearCanvas(){this.canvas&&(this.regl.clear({color:[0,0,0,0],depth:1,stencil:0}),super.clearCanvas())}k(t){const e=this.t[t];if(!e)return;e.getMeshes().forEach((t=>{t.geometry.dispose(),t.material&&t.material.dispose(),t.dispose()}))}}function w(t,e,i){if(!t)return null;const s=t.coordinateToPointAtRes(e,t.getGLRes());return[s.x,s.y,i]}class y extends(e(i(s))){constructor(t,e){super(e),this.setCoordinates(t),this.I()}setCoordinates(t){this.R=t}getCoordinates(){return this.R}setVideo(t){this.D="stop",this.options.url=t,delete this.options.elementId,this.I()}setElementId(t){this.D="stop",this.options.elementId=t,delete this.options.url,this.I()}I(){this.D="stop";const t=this.options.url,e=this.options.elementId;let i=document.getElementById(e);if(t&&(i=document.createElement("video"),i.src=t),!i)throw new Error("there is no element or url setting for video mask");i.autoplay=!0,i.loop=!0,i.muted=!0,i.play(),i.addEventListener("playing",(()=>{this.D="playing",this.fire("playing",{state:this.D,url:t})})),i.addEventListener("pause",(()=>{this.D="pause",this.fire("pause",{state:this.D,url:t})})),i.addEventListener("error",(()=>{throw this.D="pause",this.fire("error",{state:this.D,url:t}),new Error("video resource load error")})),this.video=i}getVideo(){return this.video}L(t){this.j=t}C(){return this.j}addTo(t){if(this.F)throw new Error("VideoSurface cannot be added to two or more layers at the same time.");return t.addSurfaces(this),this}show(){return this.options.visible=!0,this}hide(){return this.options.visible=!1,this}isVisible(){return this.options.visible}play(){this.video&&this.video.play()}pause(){this.video&&this.video.pause()}setAudio(t){this.video.muted=t}setOpacity(t){this.options.opacity=t}getOpacity(){return this.options.opacity}remove(){delete this.video;const t=this.getLayer();t&&t.removeVideoSurfaces(this),this.endEdit()}getLayer(){return this.F}A(){return"playing"===this.D}startEdit(){const t=this.getLayer();if(!t)return void console.warn("videosurface should be added to a map before edit");const e=t.getMap();if(!e)return void console.warn("videosurface should be added to a map before edit");if(this.N(),!this.G){const i=t.getId();this.G=new r(`internal_${i}_edit`,{enableAltitude:!0}).addTo(e)}const i=this.getCoordinates();this.H=new o(i,{symbol:{lineColor:"#34495e",lineWidth:2,polygonFill:"rgb(135,196,240)",polygonOpacity:.1}}).addTo(this.G),this.H.startEdit({newVertexHandleSymbol:{polygonFill:"rgba(0, 0, 0, 0)",polygonOpacity:0,markerType:"ellipse",markerWidth:1,markerHeight:1}}),this.H.on("shapechange",(e=>{const i=e.target.getCoordinates()[0].slice(0,4).map((t=>[t.x,t.y,0]));this.setCoordinates(i);t.getRenderer().M(this)}),this)}endEdit(){this.G&&(this.H.endEdit(),this.H.remove(),this.G.remove()),delete this.G,delete this.H}N(){this.G&&this.G.clear(),delete this.H}}y.mergeOptions({opacity:1,visible:!0});class b extends n{constructor(t,e,i){!e||Array.isArray(e)||e instanceof y||(i=e,e=null),super(t,i),this.W={},this.videoId=0,this.W={},this.videoId=0,e&&this.addSurfaces(e)}addSurfaces(t){if(t)if(Array.isArray(t))t.forEach((t=>{this.addMarker(t)}));else{t.F=this,this.W[this.videoId]=t,t.L(this.videoId);const e=this.getRenderer();e?e.m()&&e.u(t):this.on("renderercreate",(e=>{e.renderer.m()&&e.renderer.u(t)})),this.videoId++}}showTopAlways(t){this.options.showTopAlways=t;const e=this.getRenderer();e&&e.v()}setDoubleSide(t){this.options.doubleSide=t;const e=this.getRenderer();e&&e.v()}getVideoSurfaces(){const t=[];for(const e in this.W)t.push(this.W[e]);return t}removeVideoSurfaces(t){if(Array.isArray(t))t.forEach((t=>{this.removeVideoSurfaces(t)}));else{const e=t.C(),i=this.getRenderer();i&&i.k(e),delete this.W[e]}}remove(){this.clear(),super.remove()}clear(){const t=this.getVideoSurfaces();for(let e=0;e<t.length;e++)t[e].remove()}}b.mergeOptions({renderer:"gl",doubleBuffer:!1,glOptions:null,markerEvents:!0,forceRenderOnZooming:!0,forceRenderOnMoving:!0,forceRenderOnRotating:!0,showTopAlways:!0,doubleSide:!0}),b.registerJSONType("VideoLayer"),b.registerRenderer("gl",x);export{b as VideoLayer,y as VideoSurface};"undefined"!=typeof console&&console.log("@maptalks/video-layer v0.101.1");
//# sourceMappingURL=maptalks.video.es.js.map
/*!
* @maptalks/video-layer v0.101.0
* @maptalks/video-layer v0.101.1
* LICENSE : UNLICENSED
* (c) 2016-2024 maptalks.org
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("maptalks"),require("@maptalks/gl")):"function"==typeof define&&define.amd?define(["exports","maptalks","@maptalks/gl"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).maptalks=t.maptalks||{},t.maptalks,t.maptalksgl)}(this,(function(t,e,i){"use strict";function s(t){var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}for(var r=s(e),o=[],n=0
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("maptalks"),require("@maptalks/gl")):"function"==typeof define&&define.amd?define(["exports","maptalks","@maptalks/gl"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).maptalks=t.maptalks||{},t.maptalks,t.maptalks)}(this,(function(t,e,i){"use strict";function s(t){var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}for(var r=s(e),o=[],n=0
/*!

@@ -11,3 +11,3 @@ * Contains code from THREE.js

* https://github.com/mrdoob/three.js
*/;n<6;n++)o[n]=[];var a=[];function h(t,e,i){var s,r,n,h,d,u,p,f,m,g,v,_,x,y,w,b,O;r=(s=t)[0],n=s[1],h=s[2],d=s[3],u=s[4],p=s[5],f=s[6],m=s[7],g=s[8],v=s[9],_=s[10],x=s[11],y=s[12],w=s[13],b=s[14],O=s[15],l(o[0],d-r,m-u,x-g,O-y),l(o[1],d+r,m+u,x+g,O+y),l(o[2],d+n,m+p,x+v,O+w),l(o[3],d-n,m-p,x-v,O-w),l(o[4],d-h,m-f,x-_,O-b),l(o[5],d+h,m+f,x+_,O+b);for(var T=0;T<6;T++){var S=o[T];if(a[0]=S[0]>0?e[1][0]:e[0][0],a[1]=S[1]>0?e[1][1]:e[0][1],a[2]=S[2]>0?e[1][2]:e[0][2],c(S,a)<0)return!1}return!0}function l(t,e,i,s,r){var o=1/Math.sqrt(e*e+i*i+s*s);return t[0]=e*o,t[1]=i*o,t[2]=s*o,t[3]=r*o,t}function c(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]}const d={vert:"\n attribute vec3 aPosition;\n attribute vec2 aTexCoord;\n uniform mat4 projViewModelMatrix;\n uniform mat4 positionMatrix;\n uniform mat4 modelMatrix;\n varying vec2 vTexCoords;\n #include <get_output>\n void main()\n {\n mat4 localPositionMatrix = getPositionMatrix();\n vec4 localPosition = getPosition(aPosition);\n gl_Position = projViewModelMatrix * localPositionMatrix * localPosition;\n vTexCoords = aTexCoord;\n }\n",frag:"\n precision mediump float;\n uniform sampler2D videoTexture;\n uniform float opacity;\n\n varying vec2 vTexCoords;\n void main() {\n vec4 color = texture2D(videoTexture, vTexCoords);\n gl_FragColor = color * opacity;\n }\n",uniforms:[{name:"projViewModelMatrix",type:"function",fn:(t,e)=>i.mat4.multiply([],e.projViewMatrix,e.modelMatrix)},"texture","opacity"],positionAttribute:"POSITION",extraCommandProps:{depth:{enable:!0,func:"always"},cull:{enable:!1,face:"back"},frontFace:"cw",blend:{enable:!0,func:{src:"src alpha",dst:"one minus src alpha"},equation:"add"}}},u=[1,0,3,3,2,1];class p extends r.renderer.CanvasRenderer{constructor(t){super(t),this.t={}}draw(t,e){this.prepareCanvas(),this.i(e)}drawOnInteracting(t,e,i){this.i(i)}needToRedraw(){return!0}hitDetect(){return!1}createContext(){if(this.canvas.gl&&this.canvas.gl.wrap)this.gl=this.canvas.gl.wrap(),this.regl=this.canvas.gl.regl;else{const t=this.layer.options.glOptions||{alpha:!0,depth:!0,stencil:!0};this.glOptions=t,this.gl=this.gl||this.o(this.canvas,t),this.regl=i.createREGL({gl:this.gl,extensions:["ANGLE_instanced_arrays","OES_texture_float","OES_texture_half_float","OES_texture_float_linear","OES_texture_half_float_linear","EXT_shader_texture_lod","OES_element_index_uint","OES_standard_derivatives","WEBGL_depth_texture"],optionalExtensions:this.layer.options.glExtensions||[]})}this.h(),this.l();const t=this.layer.getVideoSurfaces();for(let e=0;e<t.length;e++)this.u(t[e])}o(t,e){const i=["webgl","experimental-webgl"];let s=null;for(let r=0;r<i.length;++r){try{s=t.getContext(i[r],e)}catch(t){}if(s)break}return s}l(){const t=this.layer.getMap(),e=new i.reshader.Renderer(this.regl);this.renderer=e,this.p={"projMatrix":t.projMatrix,"projViewMatrix":t.projViewMatrix,"viewMatrix":t.viewMatrix,"halton":[.2107,-.0202],"uHalton":[.2107,-.0202],"uCameraPosition":t.cameraPosition,"cameraPosition":t.cameraPosition,"globalTexSize":[t.width,t.height]}}m(){return this.regl}h(){this.viewport={x:0,y:0,width:()=>this.canvas?this.canvas.width:1,height:()=>this.canvas?this.canvas.height:1},this.v()}v(){this._&&this._.dispose(),this.layer.options.showTopAlways?(d.extraCommandProps.depth.mask=!1,d.extraCommandProps.depth.range=[0,0]):(delete d.extraCommandProps.depth.mask,delete d.extraCommandProps.depth.range),d.extraCommandProps.cull.enable=!this.layer.options.doubleSide,this._=new i.reshader.MeshShader(d)}u(t){const e=this.regl.texture(),s=new i.reshader.Material({videoTexture:e,opacity:1}),r=t.getCoordinates(),{worldCenter:o,points:n}=this.O(r),a=this.T(n),h=new i.reshader.Mesh(a,s);this.S(h,o);const l=new i.reshader.Scene(h),c=t.C();this.t[c]=l}M(t){const e=t.C(),i=this.t[e].getMeshes()[0],s=t.getCoordinates();i.geometry.dispose();const{worldCenter:r,points:o}=this.O(s),n=this.T(o);i.geometry=n,this.S(i,r)}i(t){const e=this.layer.getVideoSurfaces().filter((t=>t.isVisible()));if(!e.length)return;const i=this.P(e);if(!i)return;let s=null;t&&(s=t.renderTarget&&t.renderTarget.fbo),this.renderer.render(this._,this.p,i,s)}T(t){return new i.reshader.Geometry({POSITION:t,TEXCOORD:[0,0,1,0,1,1,0,1]},u,0,{primitive:"triangles",positionAttribute:"POSITION",uv0Attribute:"TEXCOORD",normalAttribute:"NORMAL",positionSize:3})}O(t){let e=[];const i=this.getMap(),s=new r.Polygon(t).getCenter(),o=f(i,s,0);return this.V=o,i&&t.forEach((t=>{const s=new r.Coordinate(t[0],t[1]),n=i.altitudeToPoint(t[2]||0,i.getGLRes()),a=f(i,s,n);a[0]=a[0]-o[0],a[1]=a[1]-o[1],e=e.concat(a)})),{worldCenter:o,points:e}}P(t){const e=[],s=this.layer.getMap();for(let i=0;i<t.length;i++){const r=t[i],o=this.t[r.C()];if(!o)continue;const n=o.getMeshes();for(let t=0;t<n.length;t++){const i=n[t],o=i.getMaterial(),a=o.get("videoTexture");a&&r.A()&&(a(r.video),o.set("opacity",r.getOpacity())),h(s.projViewMatrix,i.getBoundingBox())&&e.push(i)}}return e.length?new i.reshader.Scene(e):null}S(t,e){i.mat4.fromRotationTranslationScale(t.localTransform,i.quat.fromEuler([],0,0,0),e,[1,1,1])}remove(){this._&&this._.dispose(),super.remove()}clearCanvas(){this.canvas&&(this.regl.clear({color:[0,0,0,0],depth:1,stencil:0}),super.clearCanvas())}k(t){const e=this.t[t];if(!e)return;e.getMeshes().forEach((t=>{t.geometry.dispose(),t.material&&t.material.dispose(),t.dispose()}))}}function f(t,e,i){if(!t)return null;const s=t.coordinateToPointAtRes(e,t.getGLRes());return[s.x,s.y,i]}class m extends(e.Eventable(e.Handlerable(e.Class))){constructor(t,e){super(e),this.setCoordinates(t),this.j()}setCoordinates(t){this.I=t}getCoordinates(){return this.I}setVideo(t){this.R="stop",this.options.url=t,delete this.options.elementId,this.j()}setElementId(t){this.R="stop",this.options.elementId=t,delete this.options.url,this.j()}j(){this.R="stop";const t=this.options.url,e=this.options.elementId;let i=document.getElementById(e);if(t&&(i=document.createElement("video"),i.src=t),!i)throw new Error("there is no element or url setting for video mask");i.autoplay=!0,i.loop=!0,i.muted=!0,i.play(),i.addEventListener("playing",(()=>{this.R="playing",this.fire("playing",{state:this.R,url:t})})),i.addEventListener("pause",(()=>{this.R="pause",this.fire("pause",{state:this.R,url:t})})),i.addEventListener("error",(()=>{throw this.R="pause",this.fire("error",{state:this.R,url:t}),new Error("video resource load error")})),this.video=i}getVideo(){return this.video}D(t){this.L=t}C(){return this.L}addTo(t){if(this.F)throw new Error("VideoSurface cannot be added to two or more layers at the same time.");return t.addSurfaces(this),this}show(){return this.options.visible=!0,this}hide(){return this.options.visible=!1,this}isVisible(){return this.options.visible}play(){this.video&&this.video.play()}pause(){this.video&&this.video.pause()}setAudio(t){this.video.muted=t}setOpacity(t){this.options.opacity=t}getOpacity(){return this.options.opacity}remove(){delete this.video;const t=this.getLayer();t&&t.removeVideoSurfaces(this),this.endEdit()}getLayer(){return this.F}A(){return"playing"===this.R}startEdit(){const t=this.getLayer();if(!t)return void console.warn("videosurface should be added to a map before edit");const i=t.getMap();if(!i)return void console.warn("videosurface should be added to a map before edit");if(this.N(),!this.G){const s=t.getId();this.G=new e.VectorLayer(`internal_${s}_edit`,{enableAltitude:!0}).addTo(i)}const s=this.getCoordinates();this.H=new e.Polygon(s,{symbol:{lineColor:"#34495e",lineWidth:2,polygonFill:"rgb(135,196,240)",polygonOpacity:.1}}).addTo(this.G),this.H.startEdit({newVertexHandleSymbol:{polygonFill:"rgba(0, 0, 0, 0)",polygonOpacity:0,markerType:"ellipse",markerWidth:1,markerHeight:1}}),this.H.on("shapechange",(e=>{const i=e.target.getCoordinates()[0].slice(0,4).map((t=>[t.x,t.y,0]));this.setCoordinates(i);t.getRenderer().M(this)}),this)}endEdit(){this.G&&(this.H.endEdit(),this.H.remove(),this.G.remove()),delete this.G,delete this.H}N(){this.G&&this.G.clear(),delete this.H}}m.mergeOptions({opacity:1,visible:!0});class g extends e.Layer{constructor(t,e,i){!e||Array.isArray(e)||e instanceof m||(i=e,e=null),super(t,i),this.W={},this.videoId=0,this.W={},this.videoId=0,e&&this.addSurfaces(e)}addSurfaces(t){if(t)if(Array.isArray(t))t.forEach((t=>{this.addMarker(t)}));else{t.F=this,this.W[this.videoId]=t,t.D(this.videoId);const e=this.getRenderer();e?e.m()&&e.u(t):this.on("renderercreate",(e=>{e.renderer.m()&&e.renderer.u(t)})),this.videoId++}}showTopAlways(t){this.options.showTopAlways=t;const e=this.getRenderer();e&&e.v()}setDoubleSide(t){this.options.doubleSide=t;const e=this.getRenderer();e&&e.v()}getVideoSurfaces(){const t=[];for(const e in this.W)t.push(this.W[e]);return t}removeVideoSurfaces(t){if(Array.isArray(t))t.forEach((t=>{this.removeVideoSurfaces(t)}));else{const e=t.C(),i=this.getRenderer();i&&i.k(e),delete this.W[e]}}remove(){this.clear(),super.remove()}clear(){const t=this.getVideoSurfaces();for(let e=0;e<t.length;e++)t[e].remove()}}g.mergeOptions({renderer:"gl",doubleBuffer:!1,glOptions:null,markerEvents:!0,forceRenderOnZooming:!0,forceRenderOnMoving:!0,forceRenderOnRotating:!0,showTopAlways:!0,doubleSide:!0}),g.registerJSONType("VideoLayer"),g.registerRenderer("gl",p),t.VideoLayer=g,t.VideoSurface=m,"undefined"!=typeof console&&console.log("@maptalks/video-layer v0.101.0")}));
*/;n<6;n++)o[n]=[];var a=[];function h(t,e,i){var s,r,n,h,d,u,p,f,m,g,v,_,x,y,w,b,O;r=(s=t)[0],n=s[1],h=s[2],d=s[3],u=s[4],p=s[5],f=s[6],m=s[7],g=s[8],v=s[9],_=s[10],x=s[11],y=s[12],w=s[13],b=s[14],O=s[15],l(o[0],d-r,m-u,x-g,O-y),l(o[1],d+r,m+u,x+g,O+y),l(o[2],d+n,m+p,x+v,O+w),l(o[3],d-n,m-p,x-v,O-w),l(o[4],d-h,m-f,x-_,O-b),l(o[5],d+h,m+f,x+_,O+b);for(var T=0;T<6;T++){var S=o[T];if(a[0]=S[0]>0?e[1][0]:e[0][0],a[1]=S[1]>0?e[1][1]:e[0][1],a[2]=S[2]>0?e[1][2]:e[0][2],c(S,a)<0)return!1}return!0}function l(t,e,i,s,r){var o=1/Math.sqrt(e*e+i*i+s*s);return t[0]=e*o,t[1]=i*o,t[2]=s*o,t[3]=r*o,t}function c(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]}const d={vert:"\n attribute vec3 aPosition;\n attribute vec2 aTexCoord;\n uniform mat4 projViewModelMatrix;\n uniform mat4 positionMatrix;\n uniform mat4 modelMatrix;\n varying vec2 vTexCoords;\n #include <get_output>\n void main()\n {\n mat4 localPositionMatrix = getPositionMatrix();\n vec4 localPosition = getPosition(aPosition);\n gl_Position = projViewModelMatrix * localPositionMatrix * localPosition;\n vTexCoords = aTexCoord;\n }\n",frag:"\n precision mediump float;\n uniform sampler2D videoTexture;\n uniform float opacity;\n\n varying vec2 vTexCoords;\n void main() {\n vec4 color = texture2D(videoTexture, vTexCoords);\n gl_FragColor = color * opacity;\n }\n",uniforms:[{name:"projViewModelMatrix",type:"function",fn:(t,e)=>i.mat4.multiply([],e.projViewMatrix,e.modelMatrix)},"texture","opacity"],positionAttribute:"POSITION",extraCommandProps:{depth:{enable:!0,func:"always"},cull:{enable:!1,face:"back"},frontFace:"cw",blend:{enable:!0,func:{src:"src alpha",dst:"one minus src alpha"},equation:"add"}}},u=[1,0,3,3,2,1];class p extends r.renderer.CanvasRenderer{constructor(t){super(t),this.t={}}draw(t,e){this.prepareCanvas(),this.i(e)}drawOnInteracting(t,e,i){this.i(i)}needToRedraw(){return!0}hitDetect(){return!1}createContext(){if(this.canvas.gl&&this.canvas.gl.wrap)this.gl=this.canvas.gl.wrap(),this.regl=this.canvas.gl.regl;else{const t=this.layer.options.glOptions||{alpha:!0,depth:!0,stencil:!0};this.glOptions=t,this.gl=this.gl||this.o(this.canvas,t),this.regl=i.createREGL({gl:this.gl,extensions:["ANGLE_instanced_arrays","OES_texture_float","OES_texture_half_float","OES_texture_float_linear","OES_texture_half_float_linear","EXT_shader_texture_lod","OES_element_index_uint","OES_standard_derivatives","WEBGL_depth_texture"],optionalExtensions:this.layer.options.glExtensions||[]})}this.h(),this.l();const t=this.layer.getVideoSurfaces();for(let e=0;e<t.length;e++)this.u(t[e])}o(t,e){const i=["webgl","experimental-webgl"];let s=null;for(let r=0;r<i.length;++r){try{s=t.getContext(i[r],e)}catch(t){}if(s)break}return s}l(){const t=this.layer.getMap(),e=new i.reshader.Renderer(this.regl);this.renderer=e,this.p={"projMatrix":t.projMatrix,"projViewMatrix":t.projViewMatrix,"viewMatrix":t.viewMatrix,"halton":[.2107,-.0202],"uHalton":[.2107,-.0202],"uCameraPosition":t.cameraPosition,"cameraPosition":t.cameraPosition,"globalTexSize":[t.width,t.height]}}m(){return this.regl}h(){this.viewport={x:0,y:0,width:()=>this.canvas?this.canvas.width:1,height:()=>this.canvas?this.canvas.height:1},this.v()}v(){this._&&this._.dispose(),this.layer.options.showTopAlways?(d.extraCommandProps.depth.mask=!1,d.extraCommandProps.depth.range=[0,0]):(delete d.extraCommandProps.depth.mask,delete d.extraCommandProps.depth.range),d.extraCommandProps.cull.enable=!this.layer.options.doubleSide,this._=new i.reshader.MeshShader(d)}u(t){const e=this.regl.texture(),s=new i.reshader.Material({videoTexture:e,opacity:1}),r=t.getCoordinates(),{worldCenter:o,points:n}=this.O(r),a=this.T(n),h=new i.reshader.Mesh(a,s);this.S(h,o);const l=new i.reshader.Scene(h),c=t.C();this.t[c]=l}M(t){const e=t.C(),i=this.t[e].getMeshes()[0],s=t.getCoordinates();i.geometry.dispose();const{worldCenter:r,points:o}=this.O(s),n=this.T(o);i.geometry=n,this.S(i,r)}i(t){const e=this.layer.getVideoSurfaces().filter((t=>t.isVisible()));if(!e.length)return;const i=this.P(e);if(!i)return;let s=null;t&&(s=t.renderTarget&&t.renderTarget.fbo),this.renderer.render(this._,this.p,i,s)}T(t){return new i.reshader.Geometry({POSITION:t,TEXCOORD:[0,0,1,0,1,1,0,1]},u,0,{primitive:"triangles",positionAttribute:"POSITION",uv0Attribute:"TEXCOORD",normalAttribute:"NORMAL",positionSize:3})}O(t){let e=[];const i=this.getMap(),s=new r.Polygon(t).getCenter(),o=f(i,s,0);return this.V=o,i&&t.forEach((t=>{const s=new r.Coordinate(t[0],t[1]),n=i.altitudeToPoint(t[2]||0,i.getGLRes()),a=f(i,s,n);a[0]=a[0]-o[0],a[1]=a[1]-o[1],e=e.concat(a)})),{worldCenter:o,points:e}}P(t){const e=[],s=this.layer.getMap();for(let i=0;i<t.length;i++){const r=t[i],o=this.t[r.C()];if(!o)continue;const n=o.getMeshes();for(let t=0;t<n.length;t++){const i=n[t],o=i.getMaterial(),a=o.get("videoTexture");a&&r.A()&&(a(r.video),o.set("opacity",r.getOpacity())),h(s.projViewMatrix,i.getBoundingBox())&&e.push(i)}}return e.length?new i.reshader.Scene(e):null}S(t,e){i.mat4.fromRotationTranslationScale(t.localTransform,i.quat.fromEuler([],0,0,0),e,[1,1,1])}remove(){this._&&this._.dispose(),super.remove()}clearCanvas(){this.canvas&&(this.regl.clear({color:[0,0,0,0],depth:1,stencil:0}),super.clearCanvas())}k(t){const e=this.t[t];if(!e)return;e.getMeshes().forEach((t=>{t.geometry.dispose(),t.material&&t.material.dispose(),t.dispose()}))}}function f(t,e,i){if(!t)return null;const s=t.coordinateToPointAtRes(e,t.getGLRes());return[s.x,s.y,i]}class m extends(e.Eventable(e.Handlerable(e.Class))){constructor(t,e){super(e),this.setCoordinates(t),this.j()}setCoordinates(t){this.I=t}getCoordinates(){return this.I}setVideo(t){this.R="stop",this.options.url=t,delete this.options.elementId,this.j()}setElementId(t){this.R="stop",this.options.elementId=t,delete this.options.url,this.j()}j(){this.R="stop";const t=this.options.url,e=this.options.elementId;let i=document.getElementById(e);if(t&&(i=document.createElement("video"),i.src=t),!i)throw new Error("there is no element or url setting for video mask");i.autoplay=!0,i.loop=!0,i.muted=!0,i.play(),i.addEventListener("playing",(()=>{this.R="playing",this.fire("playing",{state:this.R,url:t})})),i.addEventListener("pause",(()=>{this.R="pause",this.fire("pause",{state:this.R,url:t})})),i.addEventListener("error",(()=>{throw this.R="pause",this.fire("error",{state:this.R,url:t}),new Error("video resource load error")})),this.video=i}getVideo(){return this.video}D(t){this.L=t}C(){return this.L}addTo(t){if(this.F)throw new Error("VideoSurface cannot be added to two or more layers at the same time.");return t.addSurfaces(this),this}show(){return this.options.visible=!0,this}hide(){return this.options.visible=!1,this}isVisible(){return this.options.visible}play(){this.video&&this.video.play()}pause(){this.video&&this.video.pause()}setAudio(t){this.video.muted=t}setOpacity(t){this.options.opacity=t}getOpacity(){return this.options.opacity}remove(){delete this.video;const t=this.getLayer();t&&t.removeVideoSurfaces(this),this.endEdit()}getLayer(){return this.F}A(){return"playing"===this.R}startEdit(){const t=this.getLayer();if(!t)return void console.warn("videosurface should be added to a map before edit");const i=t.getMap();if(!i)return void console.warn("videosurface should be added to a map before edit");if(this.N(),!this.G){const s=t.getId();this.G=new e.VectorLayer(`internal_${s}_edit`,{enableAltitude:!0}).addTo(i)}const s=this.getCoordinates();this.H=new e.Polygon(s,{symbol:{lineColor:"#34495e",lineWidth:2,polygonFill:"rgb(135,196,240)",polygonOpacity:.1}}).addTo(this.G),this.H.startEdit({newVertexHandleSymbol:{polygonFill:"rgba(0, 0, 0, 0)",polygonOpacity:0,markerType:"ellipse",markerWidth:1,markerHeight:1}}),this.H.on("shapechange",(e=>{const i=e.target.getCoordinates()[0].slice(0,4).map((t=>[t.x,t.y,0]));this.setCoordinates(i);t.getRenderer().M(this)}),this)}endEdit(){this.G&&(this.H.endEdit(),this.H.remove(),this.G.remove()),delete this.G,delete this.H}N(){this.G&&this.G.clear(),delete this.H}}m.mergeOptions({opacity:1,visible:!0});class g extends e.Layer{constructor(t,e,i){!e||Array.isArray(e)||e instanceof m||(i=e,e=null),super(t,i),this.W={},this.videoId=0,this.W={},this.videoId=0,e&&this.addSurfaces(e)}addSurfaces(t){if(t)if(Array.isArray(t))t.forEach((t=>{this.addMarker(t)}));else{t.F=this,this.W[this.videoId]=t,t.D(this.videoId);const e=this.getRenderer();e?e.m()&&e.u(t):this.on("renderercreate",(e=>{e.renderer.m()&&e.renderer.u(t)})),this.videoId++}}showTopAlways(t){this.options.showTopAlways=t;const e=this.getRenderer();e&&e.v()}setDoubleSide(t){this.options.doubleSide=t;const e=this.getRenderer();e&&e.v()}getVideoSurfaces(){const t=[];for(const e in this.W)t.push(this.W[e]);return t}removeVideoSurfaces(t){if(Array.isArray(t))t.forEach((t=>{this.removeVideoSurfaces(t)}));else{const e=t.C(),i=this.getRenderer();i&&i.k(e),delete this.W[e]}}remove(){this.clear(),super.remove()}clear(){const t=this.getVideoSurfaces();for(let e=0;e<t.length;e++)t[e].remove()}}g.mergeOptions({renderer:"gl",doubleBuffer:!1,glOptions:null,markerEvents:!0,forceRenderOnZooming:!0,forceRenderOnMoving:!0,forceRenderOnRotating:!0,showTopAlways:!0,doubleSide:!0}),g.registerJSONType("VideoLayer"),g.registerRenderer("gl",p),t.VideoLayer=g,t.VideoSurface=m,"undefined"!=typeof console&&console.log("@maptalks/video-layer v0.101.1")}));
//# sourceMappingURL=maptalks.video.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"maptalks.video.js","sources":["../../../node_modules/.pnpm/frustum-intersects@0.2.4/node_modules/frustum-intersects/src/index.js","../src/VideoLayerRenderer.js","../src/VideoSurface.ts","../src/VideoLayer.ts"],"sourcesContent":["/*!\r\n* Contains code from THREE.js\r\n* MIT License\r\n* https://github.com/mrdoob/three.js\r\n*/\r\n\r\nvar planes = [];\r\nfor (var i = 0; i < 6; i++) {\r\n planes[i] = [];\r\n}\r\n\r\nexport function intersectsSphere(matrix, sphere, mask) {\r\n setPlanes(matrix);\r\n var center = sphere[0];\r\n var negRadius = -sphere[1];\r\n for (var i = 0; i < 6; i++) {\r\n if (mask && mask.charAt(i) === '0') {\r\n continue;\r\n }\r\n var distance = distanceToPoint(planes[i], center);\r\n if (distance < negRadius) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nvar p = [];\r\n\r\nexport function intersectsBox(matrix, box, mask) {\r\n setPlanes(matrix);\r\n for (var i = 0; i < 6; i++) {\r\n if (mask && mask.charAt(i) === '0') {\r\n continue;\r\n }\r\n var plane = planes[i];\r\n // corner at max distance\r\n p[0] = plane[0] > 0 ? box[1][0] : box[0][0];\r\n p[1] = plane[1] > 0 ? box[1][1] : box[0][1];\r\n p[2] = plane[2] > 0 ? box[1][2] : box[0][2];\r\n\r\n if (distanceToPoint(plane, p) < 0) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport function intersectsOrientedBox(matrix, box, mask) {\r\n setPlanes(matrix);\r\n for (var i = 0; i < 6; i++) {\r\n if (mask && mask.charAt(i) === '0') {\r\n continue;\r\n }\r\n var plane = planes[i];\r\n if (!intersectsPlane(plane, box)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nvar COLUMN0ROW0 = 0 + 3, COLUMN0ROW1 = 1 + 3, COLUMN0ROW2 = 2 + 3, COLUMN1ROW0 = 3 + 3, COLUMN1ROW1 = 4 + 3, COLUMN1ROW2 = 5 + 3, COLUMN2ROW0 = 6 + 3, COLUMN2ROW1 = 7 + 3, COLUMN2ROW2 = 8 + 3;\r\n// const COLUMN0ROW0 = 0, COLUMN0ROW1 = 1, COLUMN0ROW2 = 2, COLUMN1ROW0 = 3, COLUMN1ROW1 = 4, COLUMN1ROW2 = 5, COLUMN2ROW0 = 6, COLUMN2ROW1 = 7, COLUMN2ROW2 = 8;\r\nvar BOX_CENTER = [];\r\nvar HALF_AXES = [];\r\n\r\nfunction intersectsPlane(plane, box) {\r\n var center = box;\r\n var normal = plane;\r\n var halfAxes = box;\r\n var normalX = normal[0], normalY = normal[1], normalZ = normal[2];\r\n // plane is used as if it is its normal; the first three components are assumed to be normalized\r\n var radEffective = Math.abs(normalX * halfAxes[COLUMN0ROW0] + normalY * halfAxes[COLUMN0ROW1] + normalZ * halfAxes[COLUMN0ROW2]) +\r\n Math.abs(normalX * halfAxes[COLUMN1ROW0] + normalY * halfAxes[COLUMN1ROW1] + normalZ * halfAxes[COLUMN1ROW2]) +\r\n Math.abs(normalX * halfAxes[COLUMN2ROW0] + normalY * halfAxes[COLUMN2ROW1] + normalZ * halfAxes[COLUMN2ROW2]);\r\n var distanceToPlane = distanceToPoint(plane, center);\r\n\r\n if (distanceToPlane <= -radEffective) {\r\n // The entire box is on the negative side of the plane normal\r\n // return Intersect.OUTSIDE;\r\n return false;\r\n } else if (distanceToPlane >= radEffective) {\r\n // The entire box is on the positive side of the plane normal\r\n // return Intersect.INSIDE;\r\n return true;\r\n }\r\n return true;\r\n // return Intersect.INTERSECTING;\r\n}\r\n\r\nfunction setPlanes(m) {\r\n var me = m;\r\n var me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3];\r\n var me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7];\r\n var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11];\r\n var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15];\r\n\r\n //right\r\n setComponents(planes[0], me3 - me0, me7 - me4, me11 - me8, me15 - me12);\r\n //left\r\n setComponents(planes[1], me3 + me0, me7 + me4, me11 + me8, me15 + me12);\r\n //bottom\r\n setComponents(planes[2], me3 + me1, me7 + me5, me11 + me9, me15 + me13);\r\n //top\r\n setComponents(planes[3], me3 - me1, me7 - me5, me11 - me9, me15 - me13);\r\n //z-far\r\n setComponents(planes[4], me3 - me2, me7 - me6, me11 - me10, me15 - me14);\r\n //z-near\r\n setComponents(planes[5], me3 + me2, me7 + me6, me11 + me10, me15 + me14);\r\n}\r\n\r\nfunction setComponents(out, x, y, z, w) {\r\n // THREE.js Plane.js\r\n var inverseNormalLength = 1 / Math.sqrt(x * x + y * y + z * z);\r\n out[0] = x * inverseNormalLength;\r\n out[1] = y * inverseNormalLength;\r\n out[2] = z * inverseNormalLength;\r\n out[3] = w * inverseNormalLength;\r\n return out;\r\n}\r\n\r\nfunction distanceToPoint(plane, p) {\r\n return plane[0] * p[0] + plane[1] * p[1] + plane[2] * p[2] + plane[3];\r\n}\r\n","import * as maptalks from 'maptalks';\r\nimport { createREGL, reshader, mat4, quat } from '@maptalks/gl';\r\nimport { intersectsBox } from 'frustum-intersects';\r\n\r\nconst vert = `\r\n attribute vec3 aPosition;\r\n attribute vec2 aTexCoord;\r\n uniform mat4 projViewModelMatrix;\r\n uniform mat4 positionMatrix;\r\n uniform mat4 modelMatrix;\r\n varying vec2 vTexCoords;\r\n #include <get_output>\r\n void main()\r\n {\r\n mat4 localPositionMatrix = getPositionMatrix();\r\n vec4 localPosition = getPosition(aPosition);\r\n gl_Position = projViewModelMatrix * localPositionMatrix * localPosition;\r\n vTexCoords = aTexCoord;\r\n }\r\n`;\r\n\r\nconst frag = `\r\n precision mediump float;\r\n uniform sampler2D videoTexture;\r\n uniform float opacity;\r\n\r\n varying vec2 vTexCoords;\r\n void main() {\r\n vec4 color = texture2D(videoTexture, vTexCoords);\r\n gl_FragColor = color * opacity;\r\n }\r\n`;\r\nconst shaderConfig = {\r\n vert,\r\n frag,\r\n uniforms : [\r\n {\r\n name: 'projViewModelMatrix',\r\n type: 'function',\r\n fn: (context, props) => {\r\n return mat4.multiply([], props['projViewMatrix'], props['modelMatrix']);\r\n }\r\n },\r\n 'texture',\r\n 'opacity'\r\n ],\r\n positionAttribute : 'POSITION',\r\n extraCommandProps: {\r\n depth: {\r\n enable: true,\r\n func: 'always'\r\n },\r\n cull: {\r\n enable: false,\r\n face: 'back'\r\n },\r\n frontFace: 'cw',\r\n blend: {\r\n enable: true,\r\n func: {\r\n src: 'src alpha',\r\n dst: 'one minus src alpha'\r\n },\r\n equation: 'add'\r\n }\r\n }\r\n};\r\n\r\nconst triangles = [1, 0, 3, 3, 2, 1];\r\nclass VideoLayerRenderer extends maptalks.renderer.CanvasRenderer {\r\n constructor(layer) {\r\n super(layer);\r\n this._scenes = {};\r\n }\r\n\r\n draw(timestamp, context) {\r\n this.prepareCanvas();\r\n this._renderScene(context);\r\n }\r\n\r\n drawOnInteracting(e, timestamp, context) {\r\n this._renderScene(context);\r\n }\r\n\r\n needToRedraw() {\r\n return true;\r\n }\r\n\r\n hitDetect() {\r\n return false;\r\n }\r\n\r\n createContext() {\r\n const inGroup = this.canvas.gl && this.canvas.gl.wrap;\r\n if (inGroup) {\r\n this.gl = this.canvas.gl.wrap();\r\n this.regl = this.canvas.gl.regl;\r\n } else {\r\n const layer = this.layer;\r\n const attributes = layer.options.glOptions || {\r\n alpha: true,\r\n depth: true,\r\n //antialias: true,\r\n stencil : true\r\n };\r\n this.glOptions = attributes;\r\n this.gl = this.gl || this._createGLContext(this.canvas, attributes);\r\n this.regl = createREGL({\r\n gl : this.gl,\r\n extensions : [\r\n 'ANGLE_instanced_arrays',\r\n 'OES_texture_float',\r\n 'OES_texture_half_float',\r\n 'OES_texture_float_linear',\r\n 'OES_texture_half_float_linear',\r\n 'EXT_shader_texture_lod',\r\n 'OES_element_index_uint',\r\n 'OES_standard_derivatives',\r\n 'WEBGL_depth_texture'\r\n ],\r\n optionalExtensions : this.layer.options['glExtensions'] || []\r\n });\r\n }\r\n this._initShader();\r\n this._initRenderer();\r\n const videoSurfaces = this.layer.getVideoSurfaces();\r\n for (let i = 0; i < videoSurfaces.length; i++) {\r\n this._createScene(videoSurfaces[i]);\r\n }\r\n }\r\n\r\n _createGLContext(canvas, options) {\r\n const names = ['webgl', 'experimental-webgl'];\r\n let context = null;\r\n /* eslint-disable no-empty */\r\n for (let i = 0; i < names.length; ++i) {\r\n try {\r\n context = canvas.getContext(names[i], options);\r\n } catch (e) {}\r\n if (context) {\r\n break;\r\n }\r\n }\r\n return context;\r\n /* eslint-enable no-empty */\r\n }\r\n\r\n _initRenderer() {\r\n const map = this.layer.getMap();\r\n const renderer = new reshader.Renderer(this.regl);\r\n this.renderer = renderer;\r\n this._uniforms = {\r\n 'projMatrix': map.projMatrix,\r\n 'projViewMatrix' : map.projViewMatrix,\r\n 'viewMatrix': map.viewMatrix,\r\n 'halton': [0.2107, -0.0202],\r\n 'uHalton': [0.2107, -0.0202],\r\n 'uCameraPosition' : map.cameraPosition,\r\n 'cameraPosition' : map.cameraPosition,\r\n 'globalTexSize' : [map.width, map.height]\r\n };\r\n }\r\n\r\n _getRegl() {\r\n return this.regl;\r\n }\r\n\r\n _initShader() {\r\n this.viewport = {\r\n x : 0,\r\n y : 0,\r\n width : () => {\r\n return this.canvas ? this.canvas.width : 1;\r\n },\r\n height : () => {\r\n return this.canvas ? this.canvas.height : 1;\r\n }\r\n };\r\n this._updateShader();\r\n }\r\n\r\n _updateShader() {\r\n if (this._shader) {\r\n this._shader.dispose();\r\n }\r\n if (this.layer.options['showTopAlways']) {\r\n shaderConfig.extraCommandProps.depth.mask = false;\r\n shaderConfig.extraCommandProps.depth.range = [0, 0];\r\n } else {\r\n delete shaderConfig.extraCommandProps.depth.mask;\r\n delete shaderConfig.extraCommandProps.depth.range;\r\n }\r\n shaderConfig.extraCommandProps.cull.enable = this.layer.options['doubleSide'] ? false : true;\r\n this._shader = new reshader.MeshShader(shaderConfig);\r\n }\r\n\r\n _createScene(videoSurface) {\r\n const texture = this.regl.texture();\r\n const material = new reshader.Material({\r\n videoTexture: texture,\r\n opacity: 1.0\r\n });\r\n const coordinates = videoSurface.getCoordinates();\r\n const { worldCenter, points } = this._transformCoordToWorld(coordinates);\r\n const geometry = this._createGeometry(points);\r\n const mesh = new reshader.Mesh(geometry, material);\r\n this._updateMatrix(mesh, worldCenter);\r\n const scene = new reshader.Scene(mesh);\r\n const videoId = videoSurface._getVideoId();\r\n this._scenes[videoId] = scene;\r\n }\r\n\r\n _updateCoordinates(videoSurface) {\r\n const videoId = videoSurface._getVideoId();\r\n const scene = this._scenes[videoId];\r\n const mesh = scene.getMeshes()[0];\r\n const coordinates = videoSurface.getCoordinates();\r\n mesh.geometry.dispose();\r\n const { worldCenter, points } = this._transformCoordToWorld(coordinates);\r\n const geometry = this._createGeometry(points);\r\n mesh.geometry = geometry;\r\n this._updateMatrix(mesh, worldCenter);\r\n }\r\n\r\n _renderScene(context) {\r\n const visibles = this.layer.getVideoSurfaces().filter(videoSurface => {\r\n return videoSurface.isVisible();\r\n });\r\n if (!visibles.length) {\r\n return;\r\n }\r\n const renderScene = this._createSceneInFrustum(visibles);\r\n if (!renderScene) {\r\n return;\r\n }\r\n let targetFBO = null;\r\n if (context) {\r\n targetFBO = context.renderTarget && context.renderTarget.fbo;\r\n }\r\n this.renderer.render(this._shader, this._uniforms, renderScene, targetFBO);\r\n }\r\n\r\n _createGeometry(points) {\r\n return new reshader.Geometry({\r\n POSITION : points,\r\n TEXCOORD : [\r\n 0.0, 0.0,\r\n 1.0, 0.0,\r\n 1.0, 1.0,\r\n 0.0, 1.0\r\n ]\r\n },\r\n triangles,\r\n 0,\r\n {\r\n primitive: 'triangles',\r\n //顶点的属性名称,默认为aPosition\r\n positionAttribute: 'POSITION',\r\n uv0Attribute: 'TEXCOORD',\r\n normalAttribute: 'NORMAL',\r\n //顶点个数,默认为3\r\n positionSize : 3\r\n });\r\n }\r\n\r\n _transformCoordToWorld(coordinates) {\r\n let points = [];\r\n const map = this.getMap();\r\n const tmpPolygon = new maptalks.Polygon(coordinates);\r\n const center = tmpPolygon.getCenter();\r\n const worldCenter = coordinateToWorld(map, center, 0);\r\n this._worldCenter = worldCenter;\r\n if (map) {\r\n coordinates.forEach(coordinate => {\r\n const coord = new maptalks.Coordinate(coordinate[0], coordinate[1]);\r\n const altitude = map.altitudeToPoint(coordinate[2] || 0, map.getGLRes());\r\n const worldPoint = coordinateToWorld(map, coord, altitude);\r\n worldPoint[0] = worldPoint[0] - worldCenter[0];\r\n worldPoint[1] = worldPoint[1] - worldCenter[1];\r\n points = points.concat(worldPoint);\r\n });\r\n }\r\n return { worldCenter, points };\r\n }\r\n\r\n _createSceneInFrustum(videoSurfaces) {\r\n const visibles = [];\r\n const map = this.layer.getMap();\r\n for (let i = 0; i < videoSurfaces.length; i++) {\r\n const videoSurface = videoSurfaces[i];\r\n const scene = this._scenes[videoSurface._getVideoId()];\r\n if (!scene) {\r\n continue;\r\n }\r\n const meshes = scene.getMeshes();\r\n for (let ii = 0; ii < meshes.length; ii++) {\r\n const mesh = meshes[ii];\r\n const material = mesh.getMaterial();\r\n const texture = material.get('videoTexture');\r\n if (texture && videoSurface._canDrawing()) {\r\n texture(videoSurface.video);\r\n material.set('opacity', videoSurface.getOpacity());\r\n }\r\n if (intersectsBox(map.projViewMatrix, mesh.getBoundingBox())) {\r\n visibles.push(mesh);\r\n }\r\n }\r\n }\r\n return visibles.length ? new reshader.Scene(visibles) : null;\r\n }\r\n\r\n _updateMatrix(mesh, worldCenter) {\r\n mat4.fromRotationTranslationScale(mesh.localTransform, quat.fromEuler([], 0, 0, 0), worldCenter, [1, 1, 1]);\r\n }\r\n\r\n remove() {\r\n if (this._shader) {\r\n this._shader.dispose();\r\n }\r\n super.remove();\r\n }\r\n\r\n clearCanvas() {\r\n if (!this.canvas) {\r\n return;\r\n }\r\n this.regl.clear({\r\n color: [0, 0, 0, 0],\r\n depth: 1,\r\n stencil : 0\r\n });\r\n super.clearCanvas();\r\n }\r\n\r\n _deleteScene(videoId) {\r\n const scene = this._scenes[videoId];\r\n if (!scene) {\r\n return;\r\n }\r\n const meshes = scene.getMeshes();\r\n meshes.forEach(mesh => {\r\n mesh.geometry.dispose();\r\n if (mesh.material) {\r\n mesh.material.dispose();\r\n }\r\n mesh.dispose();\r\n });\r\n }\r\n}\r\nexport default VideoLayerRenderer;\r\n\r\nfunction coordinateToWorld(map, coordinate, z) {\r\n if (!map) {\r\n return null;\r\n }\r\n const p = map.coordinateToPointAtRes(coordinate, map.getGLRes());\r\n return [p.x, p.y, z];\r\n}\r\n",null,null],"names":["planes","i","p","intersectsBox","matrix","box","mask","me","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","setComponents","plane","distanceToPoint","out","x","y","z","w","inverseNormalLength","Math","sqrt","shaderConfig","vert","frag","uniforms","name","type","fn","context","props","mat4","multiply","positionAttribute","extraCommandProps","depth","enable","func","cull","face","frontFace","blend","src","dst","equation","triangles","VideoLayerRenderer","maptalks","renderer","CanvasRenderer","constructor","layer","super","this","_scenes","draw","timestamp","prepareCanvas","_renderScene","drawOnInteracting","e","needToRedraw","hitDetect","createContext","canvas","gl","wrap","regl","attributes","options","glOptions","alpha","stencil","_createGLContext","createREGL","extensions","optionalExtensions","_initShader","_initRenderer","videoSurfaces","getVideoSurfaces","length","_createScene","names","getContext","map","getMap","reshader","Renderer","_uniforms","projMatrix","projViewMatrix","viewMatrix","halton","uHalton","uCameraPosition","cameraPosition","globalTexSize","width","height","_getRegl","viewport","_updateShader","_shader","dispose","range","MeshShader","videoSurface","texture","material","Material","videoTexture","opacity","coordinates","getCoordinates","worldCenter","points","_transformCoordToWorld","geometry","_createGeometry","mesh","Mesh","_updateMatrix","scene","Scene","videoId","_getVideoId","_updateCoordinates","getMeshes","visibles","filter","isVisible","renderScene","_createSceneInFrustum","targetFBO","renderTarget","fbo","render","Geometry","POSITION","TEXCOORD","primitive","uv0Attribute","normalAttribute","positionSize","center","Polygon","getCenter","coordinateToWorld","_worldCenter","forEach","coordinate","coord","Coordinate","altitude","altitudeToPoint","getGLRes","worldPoint","concat","meshes","ii","getMaterial","get","_canDrawing","video","set","getOpacity","getBoundingBox","push","fromRotationTranslationScale","localTransform","quat","fromEuler","remove","clearCanvas","clear","color","_deleteScene","coordinateToPointAtRes","VideoSurface","Eventable","Handlerable","Class","setCoordinates","_createVideo","_coordinates","setVideo","url","_videoState","elementId","setElementId","id","document","getElementById","createElement","Error","autoplay","loop","muted","play","addEventListener","fire","state","getVideo","_setVideoId","_videoId","addTo","_layer","addSurfaces","show","visible","hide","pause","setAudio","audio","setOpacity","getLayer","removeVideoSurfaces","endEdit","startEdit","console","warn","_clearEditHelper","_editHelpLayer","layerId","getId","VectorLayer","enableAltitude","_editHelpPolygon","symbol","lineColor","lineWidth","polygonFill","polygonOpacity","newVertexHandleSymbol","markerType","markerWidth","markerHeight","on","positions","target","slice","getRenderer","mergeOptions","VideoLayer","Layer","Array","isArray","_videoSurfaceMap","addMarker","showTopAlways","always","setDoubleSide","doubleSide","surfaceList","s","surfaces","doubleBuffer","markerEvents","forceRenderOnZooming","forceRenderOnMoving","forceRenderOnRotating","registerJSONType","registerRenderer"],"mappings":"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","x_google_ignoreList":[0]}
{"version":3,"file":"maptalks.video.js","sources":["../../../node_modules/.pnpm/frustum-intersects@0.2.4/node_modules/frustum-intersects/src/index.js","../src/VideoLayerRenderer.js","../src/VideoSurface.ts","../src/VideoLayer.ts"],"sourcesContent":["/*!\r\n* Contains code from THREE.js\r\n* MIT License\r\n* https://github.com/mrdoob/three.js\r\n*/\r\n\r\nvar planes = [];\r\nfor (var i = 0; i < 6; i++) {\r\n planes[i] = [];\r\n}\r\n\r\nexport function intersectsSphere(matrix, sphere, mask) {\r\n setPlanes(matrix);\r\n var center = sphere[0];\r\n var negRadius = -sphere[1];\r\n for (var i = 0; i < 6; i++) {\r\n if (mask && mask.charAt(i) === '0') {\r\n continue;\r\n }\r\n var distance = distanceToPoint(planes[i], center);\r\n if (distance < negRadius) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nvar p = [];\r\n\r\nexport function intersectsBox(matrix, box, mask) {\r\n setPlanes(matrix);\r\n for (var i = 0; i < 6; i++) {\r\n if (mask && mask.charAt(i) === '0') {\r\n continue;\r\n }\r\n var plane = planes[i];\r\n // corner at max distance\r\n p[0] = plane[0] > 0 ? box[1][0] : box[0][0];\r\n p[1] = plane[1] > 0 ? box[1][1] : box[0][1];\r\n p[2] = plane[2] > 0 ? box[1][2] : box[0][2];\r\n\r\n if (distanceToPoint(plane, p) < 0) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport function intersectsOrientedBox(matrix, box, mask) {\r\n setPlanes(matrix);\r\n for (var i = 0; i < 6; i++) {\r\n if (mask && mask.charAt(i) === '0') {\r\n continue;\r\n }\r\n var plane = planes[i];\r\n if (!intersectsPlane(plane, box)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nvar COLUMN0ROW0 = 0 + 3, COLUMN0ROW1 = 1 + 3, COLUMN0ROW2 = 2 + 3, COLUMN1ROW0 = 3 + 3, COLUMN1ROW1 = 4 + 3, COLUMN1ROW2 = 5 + 3, COLUMN2ROW0 = 6 + 3, COLUMN2ROW1 = 7 + 3, COLUMN2ROW2 = 8 + 3;\r\n// const COLUMN0ROW0 = 0, COLUMN0ROW1 = 1, COLUMN0ROW2 = 2, COLUMN1ROW0 = 3, COLUMN1ROW1 = 4, COLUMN1ROW2 = 5, COLUMN2ROW0 = 6, COLUMN2ROW1 = 7, COLUMN2ROW2 = 8;\r\nvar BOX_CENTER = [];\r\nvar HALF_AXES = [];\r\n\r\nfunction intersectsPlane(plane, box) {\r\n var center = box;\r\n var normal = plane;\r\n var halfAxes = box;\r\n var normalX = normal[0], normalY = normal[1], normalZ = normal[2];\r\n // plane is used as if it is its normal; the first three components are assumed to be normalized\r\n var radEffective = Math.abs(normalX * halfAxes[COLUMN0ROW0] + normalY * halfAxes[COLUMN0ROW1] + normalZ * halfAxes[COLUMN0ROW2]) +\r\n Math.abs(normalX * halfAxes[COLUMN1ROW0] + normalY * halfAxes[COLUMN1ROW1] + normalZ * halfAxes[COLUMN1ROW2]) +\r\n Math.abs(normalX * halfAxes[COLUMN2ROW0] + normalY * halfAxes[COLUMN2ROW1] + normalZ * halfAxes[COLUMN2ROW2]);\r\n var distanceToPlane = distanceToPoint(plane, center);\r\n\r\n if (distanceToPlane <= -radEffective) {\r\n // The entire box is on the negative side of the plane normal\r\n // return Intersect.OUTSIDE;\r\n return false;\r\n } else if (distanceToPlane >= radEffective) {\r\n // The entire box is on the positive side of the plane normal\r\n // return Intersect.INSIDE;\r\n return true;\r\n }\r\n return true;\r\n // return Intersect.INTERSECTING;\r\n}\r\n\r\nfunction setPlanes(m) {\r\n var me = m;\r\n var me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3];\r\n var me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7];\r\n var me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11];\r\n var me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15];\r\n\r\n //right\r\n setComponents(planes[0], me3 - me0, me7 - me4, me11 - me8, me15 - me12);\r\n //left\r\n setComponents(planes[1], me3 + me0, me7 + me4, me11 + me8, me15 + me12);\r\n //bottom\r\n setComponents(planes[2], me3 + me1, me7 + me5, me11 + me9, me15 + me13);\r\n //top\r\n setComponents(planes[3], me3 - me1, me7 - me5, me11 - me9, me15 - me13);\r\n //z-far\r\n setComponents(planes[4], me3 - me2, me7 - me6, me11 - me10, me15 - me14);\r\n //z-near\r\n setComponents(planes[5], me3 + me2, me7 + me6, me11 + me10, me15 + me14);\r\n}\r\n\r\nfunction setComponents(out, x, y, z, w) {\r\n // THREE.js Plane.js\r\n var inverseNormalLength = 1 / Math.sqrt(x * x + y * y + z * z);\r\n out[0] = x * inverseNormalLength;\r\n out[1] = y * inverseNormalLength;\r\n out[2] = z * inverseNormalLength;\r\n out[3] = w * inverseNormalLength;\r\n return out;\r\n}\r\n\r\nfunction distanceToPoint(plane, p) {\r\n return plane[0] * p[0] + plane[1] * p[1] + plane[2] * p[2] + plane[3];\r\n}\r\n","import * as maptalks from 'maptalks';\r\nimport { createREGL, reshader, mat4, quat } from '@maptalks/gl';\r\nimport { intersectsBox } from 'frustum-intersects';\r\n\r\nconst vert = `\r\n attribute vec3 aPosition;\r\n attribute vec2 aTexCoord;\r\n uniform mat4 projViewModelMatrix;\r\n uniform mat4 positionMatrix;\r\n uniform mat4 modelMatrix;\r\n varying vec2 vTexCoords;\r\n #include <get_output>\r\n void main()\r\n {\r\n mat4 localPositionMatrix = getPositionMatrix();\r\n vec4 localPosition = getPosition(aPosition);\r\n gl_Position = projViewModelMatrix * localPositionMatrix * localPosition;\r\n vTexCoords = aTexCoord;\r\n }\r\n`;\r\n\r\nconst frag = `\r\n precision mediump float;\r\n uniform sampler2D videoTexture;\r\n uniform float opacity;\r\n\r\n varying vec2 vTexCoords;\r\n void main() {\r\n vec4 color = texture2D(videoTexture, vTexCoords);\r\n gl_FragColor = color * opacity;\r\n }\r\n`;\r\nconst shaderConfig = {\r\n vert,\r\n frag,\r\n uniforms : [\r\n {\r\n name: 'projViewModelMatrix',\r\n type: 'function',\r\n fn: (context, props) => {\r\n return mat4.multiply([], props['projViewMatrix'], props['modelMatrix']);\r\n }\r\n },\r\n 'texture',\r\n 'opacity'\r\n ],\r\n positionAttribute : 'POSITION',\r\n extraCommandProps: {\r\n depth: {\r\n enable: true,\r\n func: 'always'\r\n },\r\n cull: {\r\n enable: false,\r\n face: 'back'\r\n },\r\n frontFace: 'cw',\r\n blend: {\r\n enable: true,\r\n func: {\r\n src: 'src alpha',\r\n dst: 'one minus src alpha'\r\n },\r\n equation: 'add'\r\n }\r\n }\r\n};\r\n\r\nconst triangles = [1, 0, 3, 3, 2, 1];\r\nclass VideoLayerRenderer extends maptalks.renderer.CanvasRenderer {\r\n constructor(layer) {\r\n super(layer);\r\n this._scenes = {};\r\n }\r\n\r\n draw(timestamp, context) {\r\n this.prepareCanvas();\r\n this._renderScene(context);\r\n }\r\n\r\n drawOnInteracting(e, timestamp, context) {\r\n this._renderScene(context);\r\n }\r\n\r\n needToRedraw() {\r\n return true;\r\n }\r\n\r\n hitDetect() {\r\n return false;\r\n }\r\n\r\n createContext() {\r\n const inGroup = this.canvas.gl && this.canvas.gl.wrap;\r\n if (inGroup) {\r\n this.gl = this.canvas.gl.wrap();\r\n this.regl = this.canvas.gl.regl;\r\n } else {\r\n const layer = this.layer;\r\n const attributes = layer.options.glOptions || {\r\n alpha: true,\r\n depth: true,\r\n //antialias: true,\r\n stencil : true\r\n };\r\n this.glOptions = attributes;\r\n this.gl = this.gl || this._createGLContext(this.canvas, attributes);\r\n this.regl = createREGL({\r\n gl : this.gl,\r\n extensions : [\r\n 'ANGLE_instanced_arrays',\r\n 'OES_texture_float',\r\n 'OES_texture_half_float',\r\n 'OES_texture_float_linear',\r\n 'OES_texture_half_float_linear',\r\n 'EXT_shader_texture_lod',\r\n 'OES_element_index_uint',\r\n 'OES_standard_derivatives',\r\n 'WEBGL_depth_texture'\r\n ],\r\n optionalExtensions : this.layer.options['glExtensions'] || []\r\n });\r\n }\r\n this._initShader();\r\n this._initRenderer();\r\n const videoSurfaces = this.layer.getVideoSurfaces();\r\n for (let i = 0; i < videoSurfaces.length; i++) {\r\n this._createScene(videoSurfaces[i]);\r\n }\r\n }\r\n\r\n _createGLContext(canvas, options) {\r\n const names = ['webgl', 'experimental-webgl'];\r\n let context = null;\r\n /* eslint-disable no-empty */\r\n for (let i = 0; i < names.length; ++i) {\r\n try {\r\n context = canvas.getContext(names[i], options);\r\n } catch (e) {}\r\n if (context) {\r\n break;\r\n }\r\n }\r\n return context;\r\n /* eslint-enable no-empty */\r\n }\r\n\r\n _initRenderer() {\r\n const map = this.layer.getMap();\r\n const renderer = new reshader.Renderer(this.regl);\r\n this.renderer = renderer;\r\n this._uniforms = {\r\n 'projMatrix': map.projMatrix,\r\n 'projViewMatrix' : map.projViewMatrix,\r\n 'viewMatrix': map.viewMatrix,\r\n 'halton': [0.2107, -0.0202],\r\n 'uHalton': [0.2107, -0.0202],\r\n 'uCameraPosition' : map.cameraPosition,\r\n 'cameraPosition' : map.cameraPosition,\r\n 'globalTexSize' : [map.width, map.height]\r\n };\r\n }\r\n\r\n _getRegl() {\r\n return this.regl;\r\n }\r\n\r\n _initShader() {\r\n this.viewport = {\r\n x : 0,\r\n y : 0,\r\n width : () => {\r\n return this.canvas ? this.canvas.width : 1;\r\n },\r\n height : () => {\r\n return this.canvas ? this.canvas.height : 1;\r\n }\r\n };\r\n this._updateShader();\r\n }\r\n\r\n _updateShader() {\r\n if (this._shader) {\r\n this._shader.dispose();\r\n }\r\n if (this.layer.options['showTopAlways']) {\r\n shaderConfig.extraCommandProps.depth.mask = false;\r\n shaderConfig.extraCommandProps.depth.range = [0, 0];\r\n } else {\r\n delete shaderConfig.extraCommandProps.depth.mask;\r\n delete shaderConfig.extraCommandProps.depth.range;\r\n }\r\n shaderConfig.extraCommandProps.cull.enable = this.layer.options['doubleSide'] ? false : true;\r\n this._shader = new reshader.MeshShader(shaderConfig);\r\n }\r\n\r\n _createScene(videoSurface) {\r\n const texture = this.regl.texture();\r\n const material = new reshader.Material({\r\n videoTexture: texture,\r\n opacity: 1.0\r\n });\r\n const coordinates = videoSurface.getCoordinates();\r\n const { worldCenter, points } = this._transformCoordToWorld(coordinates);\r\n const geometry = this._createGeometry(points);\r\n const mesh = new reshader.Mesh(geometry, material);\r\n this._updateMatrix(mesh, worldCenter);\r\n const scene = new reshader.Scene(mesh);\r\n const videoId = videoSurface._getVideoId();\r\n this._scenes[videoId] = scene;\r\n }\r\n\r\n _updateCoordinates(videoSurface) {\r\n const videoId = videoSurface._getVideoId();\r\n const scene = this._scenes[videoId];\r\n const mesh = scene.getMeshes()[0];\r\n const coordinates = videoSurface.getCoordinates();\r\n mesh.geometry.dispose();\r\n const { worldCenter, points } = this._transformCoordToWorld(coordinates);\r\n const geometry = this._createGeometry(points);\r\n mesh.geometry = geometry;\r\n this._updateMatrix(mesh, worldCenter);\r\n }\r\n\r\n _renderScene(context) {\r\n const visibles = this.layer.getVideoSurfaces().filter(videoSurface => {\r\n return videoSurface.isVisible();\r\n });\r\n if (!visibles.length) {\r\n return;\r\n }\r\n const renderScene = this._createSceneInFrustum(visibles);\r\n if (!renderScene) {\r\n return;\r\n }\r\n let targetFBO = null;\r\n if (context) {\r\n targetFBO = context.renderTarget && context.renderTarget.fbo;\r\n }\r\n this.renderer.render(this._shader, this._uniforms, renderScene, targetFBO);\r\n }\r\n\r\n _createGeometry(points) {\r\n return new reshader.Geometry({\r\n POSITION : points,\r\n TEXCOORD : [\r\n 0.0, 0.0,\r\n 1.0, 0.0,\r\n 1.0, 1.0,\r\n 0.0, 1.0\r\n ]\r\n },\r\n triangles,\r\n 0,\r\n {\r\n primitive: 'triangles',\r\n //顶点的属性名称,默认为aPosition\r\n positionAttribute: 'POSITION',\r\n uv0Attribute: 'TEXCOORD',\r\n normalAttribute: 'NORMAL',\r\n //顶点个数,默认为3\r\n positionSize : 3\r\n });\r\n }\r\n\r\n _transformCoordToWorld(coordinates) {\r\n let points = [];\r\n const map = this.getMap();\r\n const tmpPolygon = new maptalks.Polygon(coordinates);\r\n const center = tmpPolygon.getCenter();\r\n const worldCenter = coordinateToWorld(map, center, 0);\r\n this._worldCenter = worldCenter;\r\n if (map) {\r\n coordinates.forEach(coordinate => {\r\n const coord = new maptalks.Coordinate(coordinate[0], coordinate[1]);\r\n const altitude = map.altitudeToPoint(coordinate[2] || 0, map.getGLRes());\r\n const worldPoint = coordinateToWorld(map, coord, altitude);\r\n worldPoint[0] = worldPoint[0] - worldCenter[0];\r\n worldPoint[1] = worldPoint[1] - worldCenter[1];\r\n points = points.concat(worldPoint);\r\n });\r\n }\r\n return { worldCenter, points };\r\n }\r\n\r\n _createSceneInFrustum(videoSurfaces) {\r\n const visibles = [];\r\n const map = this.layer.getMap();\r\n for (let i = 0; i < videoSurfaces.length; i++) {\r\n const videoSurface = videoSurfaces[i];\r\n const scene = this._scenes[videoSurface._getVideoId()];\r\n if (!scene) {\r\n continue;\r\n }\r\n const meshes = scene.getMeshes();\r\n for (let ii = 0; ii < meshes.length; ii++) {\r\n const mesh = meshes[ii];\r\n const material = mesh.getMaterial();\r\n const texture = material.get('videoTexture');\r\n if (texture && videoSurface._canDrawing()) {\r\n texture(videoSurface.video);\r\n material.set('opacity', videoSurface.getOpacity());\r\n }\r\n if (intersectsBox(map.projViewMatrix, mesh.getBoundingBox())) {\r\n visibles.push(mesh);\r\n }\r\n }\r\n }\r\n return visibles.length ? new reshader.Scene(visibles) : null;\r\n }\r\n\r\n _updateMatrix(mesh, worldCenter) {\r\n mat4.fromRotationTranslationScale(mesh.localTransform, quat.fromEuler([], 0, 0, 0), worldCenter, [1, 1, 1]);\r\n }\r\n\r\n remove() {\r\n if (this._shader) {\r\n this._shader.dispose();\r\n }\r\n super.remove();\r\n }\r\n\r\n clearCanvas() {\r\n if (!this.canvas) {\r\n return;\r\n }\r\n this.regl.clear({\r\n color: [0, 0, 0, 0],\r\n depth: 1,\r\n stencil : 0\r\n });\r\n super.clearCanvas();\r\n }\r\n\r\n _deleteScene(videoId) {\r\n const scene = this._scenes[videoId];\r\n if (!scene) {\r\n return;\r\n }\r\n const meshes = scene.getMeshes();\r\n meshes.forEach(mesh => {\r\n mesh.geometry.dispose();\r\n if (mesh.material) {\r\n mesh.material.dispose();\r\n }\r\n mesh.dispose();\r\n });\r\n }\r\n}\r\nexport default VideoLayerRenderer;\r\n\r\nfunction coordinateToWorld(map, coordinate, z) {\r\n if (!map) {\r\n return null;\r\n }\r\n const p = map.coordinateToPointAtRes(coordinate, map.getGLRes());\r\n return [p.x, p.y, z];\r\n}\r\n",null,null],"names":["planes","i","p","intersectsBox","matrix","box","mask","me","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","setComponents","plane","distanceToPoint","out","x","y","z","w","inverseNormalLength","Math","sqrt","shaderConfig","vert","frag","uniforms","name","type","fn","context","props","mat4","multiply","positionAttribute","extraCommandProps","depth","enable","func","cull","face","frontFace","blend","src","dst","equation","triangles","VideoLayerRenderer","maptalks","renderer","CanvasRenderer","constructor","layer","super","this","_scenes","draw","timestamp","prepareCanvas","_renderScene","drawOnInteracting","e","needToRedraw","hitDetect","createContext","canvas","gl","wrap","regl","attributes","options","glOptions","alpha","stencil","_createGLContext","createREGL","extensions","optionalExtensions","_initShader","_initRenderer","videoSurfaces","getVideoSurfaces","length","_createScene","names","getContext","map","getMap","reshader","Renderer","_uniforms","projMatrix","projViewMatrix","viewMatrix","halton","uHalton","uCameraPosition","cameraPosition","globalTexSize","width","height","_getRegl","viewport","_updateShader","_shader","dispose","range","MeshShader","videoSurface","texture","material","Material","videoTexture","opacity","coordinates","getCoordinates","worldCenter","points","_transformCoordToWorld","geometry","_createGeometry","mesh","Mesh","_updateMatrix","scene","Scene","videoId","_getVideoId","_updateCoordinates","getMeshes","visibles","filter","isVisible","renderScene","_createSceneInFrustum","targetFBO","renderTarget","fbo","render","Geometry","POSITION","TEXCOORD","primitive","uv0Attribute","normalAttribute","positionSize","center","Polygon","getCenter","coordinateToWorld","_worldCenter","forEach","coordinate","coord","Coordinate","altitude","altitudeToPoint","getGLRes","worldPoint","concat","meshes","ii","getMaterial","get","_canDrawing","video","set","getOpacity","getBoundingBox","push","fromRotationTranslationScale","localTransform","quat","fromEuler","remove","clearCanvas","clear","color","_deleteScene","coordinateToPointAtRes","VideoSurface","Eventable","Handlerable","Class","setCoordinates","_createVideo","_coordinates","setVideo","url","_videoState","elementId","setElementId","id","document","getElementById","createElement","Error","autoplay","loop","muted","play","addEventListener","fire","state","getVideo","_setVideoId","_videoId","addTo","_layer","addSurfaces","show","visible","hide","pause","setAudio","audio","setOpacity","getLayer","removeVideoSurfaces","endEdit","startEdit","console","warn","_clearEditHelper","_editHelpLayer","layerId","getId","VectorLayer","enableAltitude","_editHelpPolygon","symbol","lineColor","lineWidth","polygonFill","polygonOpacity","newVertexHandleSymbol","markerType","markerWidth","markerHeight","on","positions","target","slice","getRenderer","mergeOptions","VideoLayer","Layer","Array","isArray","_videoSurfaceMap","addMarker","showTopAlways","always","setDoubleSide","doubleSide","surfaceList","s","surfaces","doubleBuffer","markerEvents","forceRenderOnZooming","forceRenderOnMoving","forceRenderOnRotating","registerJSONType","registerRenderer"],"mappings":"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","x_google_ignoreList":[0]}
{
"name": "@maptalks/video-layer",
"version": "0.101.0",
"version": "0.101.1",
"description": "A maptalks Layer to render video",

@@ -37,3 +37,3 @@ "license": "UNLICENSED",

"rollup": "^4.17.2",
"@maptalks/gl": "0.104.0"
"@maptalks/gl": "0.104.1"
},

@@ -40,0 +40,0 @@ "dependencies": {