vizicities/dist/vizicities-worker.min.js

5 wiersze
92 KiB
JavaScript
Czysty Zwykły widok Historia

2016-11-09 05:13:40 +00:00
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("THREE")):"function"==typeof define&&define.amd?define(["THREE"],t):"object"==typeof exports?exports.VIZI=t(require("THREE")):e.VIZI=t(e.THREE)}(this,function(__WEBPACK_EXTERNAL_MODULE_18__){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(1),i=n(o),s=r(4),a=n(s),u=r(22),l=n(u),c=r(36),f=n(c),p=r(3),d=n(p),h=r(2),v=n(h),y=r(41),g=n(y),_={version:"0.3",Geo:i["default"],Layer:a["default"],layer:s.layer,GeoJSONWorkerLayer:l["default"],geoJSONWorkerLayer:u.geoJSONWorkerLayer,PolygonLayer:f["default"],polygonLayer:c.polygonLayer,Point:d["default"],point:p.point,LatLon:v["default"],latLon:h.latLon,Util:g["default"]};t["default"]=_,e.exports=t["default"]},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=r(3),i={};i.R=6378137,i.MAX_LATITUDE=85.0511287798,i.ECC=.081819191,i.ECC2=.006694380015894481,i.project=function(e){var t=Math.PI/180,r=i.MAX_LATITUDE,n=Math.max(Math.min(r,e.lat),-r),s=Math.sin(n*t);return(0,o.point)(i.R*e.lon*t,i.R*Math.log((1+s)/(1-s))/2)},i.unproject=function(e){var t=180/Math.PI;return(0,n.latLon)((2*Math.atan(Math.exp(e.y/i.R))-Math.PI/2)*t,e.x*t/i.R)},i.latLonToPoint=function(e){var t=i.project(e);return t.y*=-1,t},i.pointToLatLon=function(e){var t=(0,o.point)(e.x,-1*e.y);return i.unproject(t)},i.pointScale=function(e,t){var r,n=Math.PI/180;if(t){var o=e.lat*n,s=(e.lon*n,i.R),a=Math.sin(o),u=a*a,l=Math.cos(o),c=s*(1-i.ECC2)/Math.pow(1-i.ECC2*u,1.5),f=s/Math.sqrt(1-i.ECC2*u),p=s/c/l;return r=s/f/l,[r,p]}return r=1/Math.cos(e.lat*n),[r,r]},i.metresToProjected=function(e,t){return e*t[1]},i.projectedToMetres=function(e,t){return e/t[1]},i.metresToWorld=function(e,t){var r=i.metresToProjected(e,t),n=i.scale(),o=n*r;return o},i.worldToMetres=function(e,t){var r=i.scale(),n=e/r,o=i.projectedToMetres(n,t);return o},i.scale=function(e){return e>=0?256*Math.pow(2,e):1},i.zoom=function(e){return Math.log(e/256)/Math.LN2},i.distance=function(e,t,r){var n,o,s,a=Math.PI/180;if(r){n=e.lat*a,o=t.lat*a;var u=e.lon*a,l=t.lon*a,c=o-n,f=l-u,p=c/2,d=f/2;s=Math.sin(p)*Math.sin(p)+Math.cos(n)*Math.cos(o)*Math.sin(d)*Math.sin(d);var h=2*Math.atan2(Math.sqrt(s),Math.sqrt(1-s));return i.R*h}return n=e.lat*a,o=t.lat*a,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((t.lon-e.lon)*a),i.R*Math.acos(Math.min(s,1))},i.bounds=function(){var e=i.R*Math.PI;return[[-e,-e],[e,e]]}(),t["default"]=i,e.exports=t["default"]},function(e,t){function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=function(){function e(t,n,o){if(r(this,e),isNaN(t)||isNaN(n))throw new Error("Invalid LatLon object: ("+t+", "+n+")");this.lat=+t,this.lon=+n,void 0!==o&&(this.alt=+o)}return n(e,[{key:"clone",value:function(){return new e(this.lat,this.lon,this.alt)}}]),e}();t["default"]=o;var i=function(e,t,r){return e instanceof o?e:Array.isArray(e)&&"object"!=typeof e[0]?3===e.length?new o(e[0],e[1],e[2]):2===e.length?new o(e[0],e[1]):null:void 0===e||null===e?e:"object"==typeof e&&"lat"in e?new o(e.lat,"lng"in e?e.lng:e.lon,e.alt):void 0===t?null:new o(e,t,r)};t.latLon=i},function(e,t){function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){
t._pointMesh=e.mesh,t.add(t._pointMesh),e.pickingMesh&&t._pickingMesh.add(e.pickingMesh),r()})["catch"](n)}else r()})}},{key:"_setPolygonMesh",value:function(e,t,r,n){return this._world?M["default"].SetMesh(e,t,n,r,this._options,this._world._environment._skybox):Promise.reject()}},{key:"_setPolylineMesh",value:function(e,t,r,n){return this._world?P["default"].SetMesh(e,t,n,r,this._options):Promise.reject()}},{key:"_setPointMesh",value:function(e,t,r,n){return this._world?O["default"].SetMesh(e,t,n,r,this._options,this._world._environment._skybox):Promise.reject()}},{key:"_addPicking",value:function(e,t){var r=this;this._world.on("pick-click-"+e,function(e,n,o,i){r._world.emit("click",r,t,n,o)}),this._world.on("pick-hover-"+e,function(e,n,o,i){r._world.emit("hover",r,t,n,o)})}},{key:"destroy",value:function(){u(Object.getPrototypeOf(t.prototype),"destroy",this).call(this)}}],[{key:"Process",value:function(e,r,n,o,i,s,a){return new Promise(function(u,l){t.ProcessGeoJSON(e,n).then(function(e){var n,l=y["default"].collectFeatures(e,r),c=l.features,f=[],d=[],h=[];"string"==typeof i&&(i=w["default"].stringToFunction(i));var v,g=i;"string"==typeof a&&(v=w["default"].stringToFunction(a));for(var _,m=0;m<c.length;m++){_=c[m];var b=_.geometry,x=b.coordinates?b.coordinates:null;if(!x||!b)return;if("function"==typeof i&&(g=(0,p["default"])({},y["default"].defaultStyle,i(_))),"Polygon"===b.type||"MultiPolygon"===b.type){x=M["default"].isSingle(x)?[x]:x;var k,A=x.map(function(e){return e.map(function(e){return e.map(function(e){return(0,S.latLon)(e[1],e[0])})})}),j=A.map(function(e){return e.map(function(e){return e.map(function(e){return k=E["default"].latLonToPoint(e)._subtract(o),n||(n=E["default"].pointScale(e)),k})})}),C={projected:j,options:{pointScale:n,style:g}};s&&(C.properties=_.properties),f.push(C)}if("LineString"===b.type||"MultiLineString"===b.type){x=P["default"].isSingle(x)?[x]:x;var k,A=x.map(function(e){return e.map(function(e){return(0,S.latLon)(e[1],e[0])})}),j=A.map(function(e){return e.map(function(e){return k=E["default"].latLonToPoint(e)._subtract(o),n||(n=E["default"].pointScale(e)),k})}),T={projected:j,options:{pointScale:n,style:g}};s&&(T.properties=_.properties),d.push(T)}if("Point"===b.type||"MultiPoint"===b.type){x=O["default"].isSingle(x)?[x]:x;var k,A=x.map(function(e){return(0,S.latLon)(e[1],e[0])}),j=A.map(function(e){return k=E["default"].latLonToPoint(e)._subtract(o),n||(n=E["default"].pointScale(e)),k}),k={projected:j,options:{pointGeometry:v(_),pointScale:n,style:g}};s&&(k.properties=_.properties),h.push(k)}}for(var C,F=[],D=[],I=[],m=0;m<f.length;m++)C=f[m],F.push(M["default"].SetBufferAttributes(C.projected,C.options));for(var T,m=0;m<d.length;m++)T=d[m],D.push(P["default"].SetBufferAttributes(T.projected,T.options));for(var k,m=0;m<h.length;m++)k=h[m],I.push(O["default"].SetBufferAttributes(k.projected,k.options));var R={},L=[];t.ProcessPolygons(F,f,s).then(function(e){R.polygons=e.data,L=L.concat(e.transferrables),t.ProcessPolylines(D,d,s).then(function(e){R.polylines=e.data,L=L.concat(e.transferrables),t.ProcessPoints(I,h,s).then(function(e){R.points=e.data,L=L.concat(e.transferrables),u({data:R,transferrables:L})})})})})})}},{key:"ProcessPolygons",value:function(e,t,r){return new Promise(function(n,o){Promise.all(e).then(function(e){for(var o,i,s=[],a=[],u=[],l=[],c=[],f=[],p=[],d=[],h=[],v=0;v<e.length;v++){i=e[v],o=t[v],h.push(i.flat);for(var y,g=0;g<i.attributes.length;g++)y=i.attributes[g],a.push(y.positions),u.push(y.normals),l.push(y.colors),c.push(y.tops),r&&d.push(b["default"].stringToUint8Array(JSON.stringify(o.properties)));for(var _,g=0;g<i.outlineAttributes.length;g++)_=i.outlineAttributes[g],f.push(_.positions),p.push(_.colors)}var m={positions:b["default"].mergeFloat32Arrays(a),normals:b["default"].mergeFloat32Arrays(u),colors:b["default"].mergeFloat32Arrays(l),tops:b["default"].mergeFloat32Arrays(c)},x={positions:b["default"].mergeFloat32Arrays(f),colors:b["default"].mergeFloat32Arrays(p)};s.push(m.positions[0].buffer),s.push(m.positions[1].buffer),s.push(m.normals[0].buffer)
a.push([0,r,d])):(a.push([r+d,r+d+1,r]),a.push([r+1,r,r+d+1]));if(c=[].concat(a),p.closed){var n=t,o=n.map(function(e){return e.map(function(e){return e+d})});o=o.map(function(e){return[e[0],e[2],e[1]]}),a=a.concat(n).concat(o),u=n,l=o}}var s,a,u,l,c,f={top:1,bottom:0,closed:!0},p=(0,i["default"])({},f,r),d=e.length;return p.top===p.bottom?n():o(),{positions:s,faces:a,top:u,bottom:l,sides:c}};t["default"]=s,e.exports=t["default"]},function(e,t,r){function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(32),i=n(o),s=function(){var e,t=2,r=function(r,n){return e=new i["default"]({numThreads:r?r:t,workerScript:n?n:"vizicities-worker.js"}),e.createWorkers()},n=function(t,r,n){return e.exec(t,r,n)};return{createWorkers:r,exec:n}}();t["default"]=s,e.exports=t["default"]},function(e,t,r){function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),s=r(33),a=n(s),u=!1,l=function(){function e(t){o(this,e),this.numThreads=t.numThreads||2,this.workerScript=t.workerScript,this.workers=[],this.tasks=[]}return i(e,[{key:"createWorkers",value:function(){var e=this;return new Promise(function(t,r){for(var n=[],o=0;o<e.numThreads;o++)n.push(e.createWorker());Promise.all(n).then(function(){u&&console.log("All workers ready",performance.now()),t()})["catch"](r)})}},{key:"createWorker",value:function(){var e=this;return new Promise(function(t,r){var n=new a["default"]({workerScript:e.workerScript});return n.start().then(function(){u&&console.log("Worker ready",performance.now()),e.workers.push(n),t()})["catch"](r)})}},{key:"getFreeWorker",value:function(){return this.workers.find(function(e){return!e.busy})}},{key:"exec",value:function(e,t,r){var n=Promise.deferred(),o={method:e,args:t,transferrables:r,deferred:n};return this.tasks.push(o),this.processTasks(),o.deferred.promise}},{key:"processTasks",value:function(){var e=this;if(u&&console.log("Processing tasks"),0!==this.tasks.length){var t=this.getFreeWorker();if(!t)return void(u&&console.log("No workers free"));var r=this.tasks.shift();t.exec(r.method,r.args,r.transferrables).then(function(t){e.processTasks(),r.deferred.resolve(t)})}}}]),e}();t["default"]=l,Promise.deferred=function(){var e={};return e.promise=new Promise(function(t,r){e.resolve=t,e.reject=r}),e},e.exports=t["default"]},function(e,t){function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=!1,i=function(){function e(t){r(this,e),this.workerScript=t.workerScript,this.ready=!1,this.busy=!1,this.deferred=null}return n(e,[{key:"start",value:function(){var e=this;return new Promise(function(t,r){e.worker=new Worker(e.workerScript);var n=function o(n){return n.data&&"startup"===n.data.type?(e.ready=!0,e.worker.removeEventListener("message",o),e.worker.addEventListener("message",function(t){e.onMessage(t)}),void t()):void r()};e.worker.addEventListener("message",n)})}},{key:"exec",value:function(e,t,r){o&&console.log("Execute",e,t,r);var n=Promise.deferred();return this.busy=!0,this.deferred=n,this.worker.postMessage({method:e,args:t},r),n.promise}},{key:"onMessage",value:function(e){return console.log("Message received from worker",performance.now()),this.busy=!1,e.data&&"error"!==e.data.type&&"result"===e.data.type?void this.deferred.resolve(e.data.payload):void this.deferred.reject(e.data.payload)}}]),e}();t["default"]=i,Promise.deferred=function(){var e={};return
//# sourceMappingURL=vizicities-worker.min.js.map