1 |
- var MinMap=function(){"use strict";var t=function(){};t.prototype.getFixed=function(t,e){return e||(e=5),parseFloat(t.toFixed(e))},t.prototype.createLine=function(t,e){if(t.x==e.x&&t.y==e.y)return null;if(0==this.getFixed(Math.abs(t.x-e.x)))return{x:t.x};if(0==this.getFixed(Math.abs(t.y-e.y)))return{y:t.y};var i=(t.y-e.y)/(t.x-e.x),o=(t.x*e.y-e.x*t.y)/(t.x-e.x);return 0==this.getFixed(i)?{y:this.getFixed(o)}:{a:this.getFixed(i),b:this.getFixed(o)}},t.prototype.createLine1=function(t,e){if(e==Math.PI/2||e==1.5*Math.PI)return{x:t.x};var i=Math.tan(e),o=t.y-i*t.x;return 0!=i?{a:i,b:o}:{y:t.y}},t.prototype.create2AngleLine=function(t,e,i){return{line1:this.createLine2(t,e-i/2),line2:this.createLine2(t,e+i/2)}},t.prototype.distanceForPoints=function(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},t.prototype.getParallelLineForDistance=function(t,e){var i={};i.a=t.a,i.b=t.b;var o={};if(o.a=t.a,o.b=t.b,void 0===t.a){if(t.hasOwnProperty("x")){var n=t.x;i.x=n+e,o.x=n-e}else if(t.hasOwnProperty("y")){var s=t.y;i.y=s+e,o.y=s-e}}else{var r=Math.atan(t.a),a=Math.abs(e/Math.cos(r)),h=t.b;i.b=h+a,o.b=h-a}return{line1:i,line2:o}},t.prototype.getEndpoint=function(t,e,i){var o=this.create2AngleLine(t,e,i),n=this.createLine2(t,e);n=this.getLineForPoint(n,t);var s=this.getParallelLineForDistance(n,15),r=this.getIntersectionPoint(o.line1,s.line1),a=this.getIntersectionPoint(o.line1,s.line2),h=this.getIntersectionPoint(o.line2,s.line1),c=this.getIntersectionPoint(o.line2,s.line2),l=this.Angle(t,r,{x:t.x+1,y:t.y}),x=this.Angle(t,a,{x:t.x+1,y:t.y}),y=this.Angle(t,h,{x:t.x+1,y:t.y}),d=this.Angle(t,c,{x:t.x+1,y:t.y});return e>Math.PI&&(e=2*Math.PI-e),Math.abs((l+y)/2-e)<Math.abs((x+d)/2-e)?{p1:r,p2:h}:{p1:a,p2:c}},t.prototype.getIntersectionPoint=function(t,e){if(this.isParallel(t,e))return null;if(void 0===t.a&&void 0!==e.a){if(t.x)return{x:t.x,y:e.a*t.x+e.b};if(t.y)return{x:(t.y-e.b)/e.a,y:t.y}}else if(void 0===e.a&&void 0!==t.a){if(e.x)return{x:e.x,y:t.a*e.x+t.b};if(e.y)return{x:(e.y-t.b)/t.a,y:e.y}}else if(void 0===e.a&&void 0===t.a)return t.hasOwnProperty("x")&&e.hasOwnProperty("y")?{x:t.x,y:e.y}:t.hasOwnProperty("y")&&e.hasOwnProperty("x")?{x:e.x,y:t.y}:null;return t.a==e.a?null:{x:(e.b-t.b)/(t.a-e.a),y:(t.a*e.b-e.a*t.b)/(t.a-e.a)}},t.prototype.isParallel=function(t,e){var i=this.fixed;return void 0===t.a&&void 0===e.a?!(!t.hasOwnProperty("x")||!e.hasOwnProperty("x"))||!(!t.hasOwnProperty("y")||!e.hasOwnProperty("y")):void 0!==t.a&&void 0!==e.a&&t.a.toFixed(i)==e.a.toFixed(i)},t.prototype.Angle=function(t,e,i){var o,n,s=0,r=e.x-t.x,a=e.y-t.y,h=i.x-t.x,c=i.y-t.y;return s=r*h+a*c,n=(r*r+a*a)*(h*h+c*c),(s/=Math.sqrt(n))>=1?0:s<=-1?180:180*(o=Math.acos(s))/Math.PI<180?o:2*Math.PI-o},t.prototype.getLineForPoint=function(t,e){var i={};return 0==t.a||void 0===t.a?t.hasOwnProperty("x")?i.y=e.y:t.hasOwnProperty("y")&&(i.x=e.x):(i.a=-1/t.a,i.b=e.y-e.x*i.a),i},t.prototype.createLine2=function(t,e){if(e==Math.PI/2||e==1.5*Math.PI)return{x:t.x};var i=Math.tan(e),o=t.y-i*t.x;return 0!=i?{a:i,b:o}:{y:t.y}},t.prototype.getDistance=function(t,e){var i=t.x,o=t.y,n=e.x,s=e.y,r=Math.sqrt(Math.pow(i-n,2)+Math.pow(o-s,2));return this.getFixed(r)},t.prototype.isClockwise=function(t){for(var e=0,i=0;i<t.length;i++){var o=(i+1)%t.length;e+=t[i].x*t[o].y,e-=t[o].x*t[i].y}return e/2>0};var e=new t,i={strokeStyle:"#FFFFFF",lineWidth:2,lineWidth_out:4,important:{strokeStyle:"#FFFFFF",lineWidth:4},error:{strokeStyle:"rgba(255,0,0,0.5)",fillStyle:"rgba(255,0,0,0.8)"}},o={strokeStyle:"rgba(255,255,255,1)",fillStyle:"rgba(255,255,255,0)",lineWidth:1,Pass:{}},n={strokeStyle:"rgba(255,255,255,1)",fillStyle:"rgba(255,255,255,0)",lineWidth:1},s="SingleDoor",r="DoubleDoor",a="SlideDoor",h="SingleWindow",c="BayWindow",l="FrenchWindow",x="Pass",y="Beam",d="Flue",p="Corridor",u=20,g=20,f=20,v=20,m={cameraR:2,camera_fillStyle:"#1FE4DC",camera_strokeStyle:"white",cameraSectorR:18,cameraSector_fillStyle:["rgba(31,228,220, 1)","rgba(31,228,220, 0)"],cameraSectorAngle:70/180*Math.PI},P=function(t,e){if((t=t.toLowerCase())&&/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)){if(4===t.length){for(var i="#",o=1;o<4;o+=1)i+=t.slice(o,o+1).concat(t.slice(o,o+1));t=i}var n=[];for(o=1;o<7;o+=2)n.push(parseInt("0x"+t.slice(o,o+2)));return void 0===e?"rgb("+n.join(",")+")":"rgba("+n.join(",")+","+(void 0===e?1:e)+")"}return t},b=function(t,e,i){var o=this;this.app=t,this.dom=e,this.mode=null,this.ready=!1,this.$minmap=null,i.theme&&this.theme(i.theme),window.addEventListener("resize",(function(){o.render()})),this.app.core.get("Player").on("mode.changing",(function(t,e,i){o.mode=e,"panorama"===e?!1!==o.app.MinMap.display&&!0!==o.app.MinMap.hidden&&(o.show(),o.render(i.floorIndex)):o.hide()})),this.angle=0};return b.prototype.init=function(){this.canvas1=null,this.canvas2=null,this.context1=null,this.context2=null,this.ratio=null,this.resolution=null,this.playerPoint=null,this.playerAngle=null,this.canvas_bounding=null,this.cad_bounding=null,this.$minmap=this.dom.querySelector("[xui_min_map]"),this.initContext(),this.data()},b.prototype.data=function(t){var e=this;return this.app.store.get("flooruser",t).then((function(t){e.floor=t,e.setCadBounding(),e.render(e.app.core.get("Player").currentPano.floorIndex)}))},b.prototype.show=function(){"panorama"!=this.mode&&"panorama"!=this.app.Camera.mode||(this.mode=null,this.$minmap&&(this.$minmap.style.visibility="visible"))},b.prototype.hide=function(){this.$minmap&&(this.$minmap.style.visibility="hidden")},b.prototype.theme=function(t){void 0===t&&(t={}),t.camera_fillStyle&&!t.cameraSector_fillStyle&&(t.cameraSector_fillStyle=[P(t.camera_fillStyle,1),P(t.camera_fillStyle,0)]),Object.assign(m,t)},b.prototype.render=function(t){if(this.floor){null!=t?(this.subgroup=t,this.floorNum=t):this.floorNum=null==this.floorNum?0:this.floorNum;var e=this.app.store.getValue("metadata");e.floorPlanUser?(this.angle=e.floorPlanAngle,this.initMapping(),this.drawCad(this.floor.floors[this.floorNum])):this.drawDefaultCad(this.floor.floors[this.floorNum]||this.floor.floors[0]),this.player&&this.player.camera&&this.drawPlayer({x:this.player.camera.position.x,y:this.player.camera.position.z},this.player.cameraControls.controls.panorama.lon/180*Math.PI),this.$xui.show=!0,0==this.ready&&(this.ready=!0,this.bindEvent())}},b.prototype.setCadBounding=function(){for(var t=null,e=null,i=null,o=null,n=0;n<this.floor.floors.length;++n)if(this.floor.floors[n].points)for(var s in this.floor.floors[n].points)(null==t||t>this.floor.floors[n].points[s].x)&&(t=this.floor.floors[n].points[s].x),(null==e||e>this.floor.floors[n].points[s].y)&&(e=this.floor.floors[n].points[s].y),(null==i||i<this.floor.floors[n].points[s].x)&&(i=this.floor.floors[n].points[s].x),(null==o||o<this.floor.floors[n].points[s].y)&&(o=this.floor.floors[n].points[s].y);this.cad_bounding=this.Bounds(t,e,i,o)},b.prototype.drawPlayer=function(t,i){if((i+=this.angle)<0||i>2*Math.PI){var o=i/(2*Math.PI);(i-=Math.floor(o)*(2*Math.PI))<0&&(i+=2*Math.PI)}if(null==this.playerPoint||this.playerPoint.x!=t.x||this.playerPoint.y!=t.y||null==this.playerAngle||this.playerAngle!=i){this.clearCanvas(),this.playerPoint=t,t=this.getVectorForRotate(t),t=this.getScreenXY(t);var n=e.getEndpoint(t,i,m.cameraSectorAngle);this.drawSector(t,n.p1,n.p2,e.distanceForPoints(t,n.p1)),this.playerAngle=i,this.drawPoint(t),this.drawCircle(t)}},b.prototype.initContext=function(){this.canvas1=this.dom.querySelector("canvas[xui_min_map_cad]"),this.canvas2=this.dom.querySelector("canvas[xui_min_map_dir]"),this.context1=this.canvas1.getContext("2d"),this.context2=this.canvas2.getContext("2d"),this.initRatio(),this.canvas1.width=this.canvas1.clientWidth*this.ratio,this.canvas1.height=this.canvas1.clientHeight*this.ratio,this.canvas2.width=this.canvas2.clientWidth*this.ratio,this.canvas2.height=this.canvas2.clientHeight*this.ratio,this.context1.scale(this.ratio,this.ratio),this.context2.scale(this.ratio,this.ratio),this.canvas_bounding=this.Bounds(-this.canvas1.width/2+f,-this.canvas1.height/2+u,this.canvas1.width/2-v,this.canvas1.height/2-g)},b.prototype.bindEvent=function(){var t=this;this.$minmap.addEventListener("click",(function(){t.app.store.getValue("metadata").controls.showFloorplan&&t.app.Camera.floorplan()})),this.player||(this.player=this.app.core.get("Player")),this.player.on("update",(function(e){var i=e.x,o=e.y,n=e.lon;if(e.hasChanged,t.player.cameraControls.activeControl&&!t.player.cameraControls.activeControl.updateForCad){if(!t.floor)return;t.drawPlayer({x:i,y:-1*o},n/180*Math.PI)}})),this.player.on("flying.ended",(function(e){var i=e.targetPano;i.floorIndex!==t.subgroup&&t.render(i.floorIndex)}))},b.prototype.initRatio=function(){this.context1.webkitBackingStorePixelRatio||this.context1.mozBackingStorePixelRatio||this.context1.msBackingStorePixelRatio||this.context1.oBackingStorePixelRatio||this.context1.backingStorePixelRatio,this.ratio=1},b.prototype.initMapping=function(){var t=Math.abs((this.canvas_bounding.right-this.canvas_bounding.left)/(this.cad_bounding.right-this.cad_bounding.left)),e=Math.abs((this.canvas_bounding.down-this.canvas_bounding.top)/(this.cad_bounding.top-this.cad_bounding.down));this.center={x:(this.cad_bounding.left+this.cad_bounding.right)/2,y:(this.cad_bounding.top+this.cad_bounding.down)/2},this.resolution=Math.min(t,e)},b.prototype.getScreenXY=function(t){var e=(t.x-this.center.x)*this.resolution-this.canvas_bounding.left+f,i=this.canvas_bounding.top-(t.y-this.center.y)*this.resolution+u;return e=.5+e<<0,i=.5+i<<0,{x:Math.floor(e),y:Math.floor(i)}},b.prototype.clear=function(){this.context1.clearRect(0,0,this.context1.canvas.width,this.context1.canvas.height)},b.prototype.drawDefaultCad=function(t){var e=null,o=null,n=null,s=null,r={};if(t&&t["vertex-xy"]){this.clear();for(var a=0;a<t["vertex-xy"].length;++a){var h=t["vertex-xy"][a];r[h.id]={x:h.x,y:h.y},(null==e||e>h.x)&&(e=h.x),(null==o||o>h.y)&&(o=h.y),(null==n||n<h.x)&&(n=h.x),(null==s||s<h.y)&&(s=h.y)}if(this.cad_bounding=this.Bounds(e,o,n,s),this.initMapping(),t.segment){this.context1.lineCap="square",this.context1.beginPath();for(var c=0;c<t.segment.length;++c){var l=t.segment[c],x=l.a,y=l.b,d=this.getScreenXY(r[x]),p=this.getScreenXY(r[y]);l.border?(this.context1.lineWidth=i.important.lineWidth,this.context1.strokeStyle=i.important.strokeStyle):l.border||l.exterior?l.exterior&&(this.context1.lineWidth=i.important.lineWidth,this.context1.strokeStyle=i.important.strokeStyle):(this.context1.lineWidth=i.lineWidth,this.context1.strokeStyle=i.strokeStyle),this.context1.moveTo(d.x,d.y),this.context1.lineTo(p.x,p.y),this.context1.stroke()}}}},b.prototype.drawCad=function(t){if(t.walls)for(var e in this.clear(),this.context1.lineCap="square",this.context1.beginPath(),t.walls)this.drawWall(t,e);if(t.symbols)for(var i in t.symbols)this.drawSymbol(t.symbols[i]);if(t.components)for(var o in t.components)this.drawComponent(t.components[o])},b.prototype.drawCadImg=function(t){this.context1.drawImage(t,0,0,1200,1200,0,0,200,200)},b.prototype.drawPoint=function(t){var e=2*Math.PI,i=t;this.context2.save(),this.context2.fillStyle=m.camera_fillStyle,this.context2.beginPath(),this.context2.moveTo(i.x,i.y),this.context2.arc(i.x,i.y,m.cameraR,0,e,!0),this.context2.closePath(),this.context2.fill(),this.context2.restore()},b.prototype.drawCircle=function(t){var e=m.cameraR+1,i=2*Math.PI,o=t;this.context2.save(),this.context2.strokeStyle=m.camera_strokeStyle,this.context2.lineWidth=2,this.context2.beginPath(),this.context2.arc(o.x,o.y,e,0,i,!0),this.context2.closePath(),this.context2.stroke(),this.context2.restore()},b.prototype.drawCircle2=function(t){var e=m.cameraR+1,i=2*Math.PI,o=this.getScreenXY(t);this.context2.save(),this.context2.strokeStyle=m.camera_strokeStyle,this.context2.lineWidth=2,this.context2.beginPath(),this.context2.arc(o.x,o.y,e,0,i,!0),this.context2.closePath(),this.context2.stroke(),this.context2.restore()},b.prototype.drawSector=function(t,i,o){this.context2.save();var n=this.context2.createRadialGradient(t.x,t.y,0,t.x,t.y,e.distanceForPoints(t,i));n.addColorStop(0,m.cameraSector_fillStyle[0]),n.addColorStop(1,m.cameraSector_fillStyle[1]);var s=t,r=i,a=o;this.context2.fillStyle=n,this.context2.beginPath(),this.context2.moveTo(s.x,s.y),this.context2.lineTo(r.x,r.y),this.context2.arcTo(r.x,r.y,a.x,a.y,m.cameraSectorR),this.context2.lineTo(a.x,a.y),this.context2.closePath(),this.context2.fill(),this.context2.restore()},b.prototype.drawWall=function(t,o){var n=t.walls[o],s=n.start,r=n.end,a=t.points[s],h=t.points[r],c=[];c.push(a);for(var l=0;l<n.children.length;++l){var x=t.symbols[n.children[l]];c.push(x.startPoint),c.push(x.endPoint)}c.push(h),c=c.sort(function(t,i){return e.getDistance(a,t)-e.getDistance(a,i)}.bind(this)),this.context1.save(),this.context1.beginPath(),this.context1.lineCap="square",n.important?(this.context1.lineWidth=i.important.lineWidth,this.context1.strokeStyle=i.important.strokeStyle):n.important||n.out?n.out&&(this.context1.lineWidth=i.important.lineWidth,this.context1.strokeStyle=i.important.strokeStyle):(this.context1.lineWidth=i.lineWidth,this.context1.strokeStyle=i.strokeStyle);for(var y=0;y<c.length-1;y+=2){var d=this.getScreenXY(c[y]),p=this.getScreenXY(c[y+1]);this.context1.moveTo(d.x,d.y),this.context1.lineTo(p.x,p.y)}this.context1.stroke(),this.context1.restore()},b.prototype.drawSymbol=function(t){switch(t.geoType){case s:this.drawSingleDoor(t);break;case r:this.drawDoubleDoor(t);break;case a:this.drawSlideDoor(t);break;case h:this.drawSingleWindow(t);break;case l:this.drawFrenchWindow(t);break;case c:this.drawBayWindow(t);break;case x:this.drawPass(t)}},b.prototype.drawComponent=function(t){switch(t.geoType){case y:this.drawBeam(t);break;case d:this.drawFlue(t);break;case p:this.drawCorridor(t)}},b.prototype.drawSingleDoor=function(t){for(var i=t.points2d,n=[],s=0;s<i.length;++s)n[s]=this.getScreenXY({x:i[s].x,y:i[s].y});var r=e.getDistance(n[0],n[1]);this.context1.save(),this.context1.lineWidth=o.lineWidth,this.context1.lineCap="square",this.context1.strokeStyle=o.strokeStyle,this.context1.beginPath(),this.context1.moveTo(n[0].x,n[0].y),this.context1.lineTo(n[1].x,n[1].y),this.context1.arcTo(n[2].x,n[2].y,n[3].x,n[3].y,r),this.context1.closePath(),this.context1.stroke(),this.context1.restore()},b.prototype.drawDoubleDoor=function(t){for(var i=t.points2d,n=[],s=0;s<i.length;++s)n[s]=this.getScreenXY({x:i[s].x,y:i[s].y});var r=e.getDistance(n[0],n[1]);this.context1.save(),this.context1.lineWidth=o.lineWidth,this.context1.lineCap="square",this.context1.strokeStyle=o.strokeStyle,this.context1.beginPath(),this.context1.moveTo(n[0].x,n[0].y),this.context1.lineTo(n[1].x,n[1].y),this.context1.arcTo(n[4].x,n[4].y,n[5].x,n[5].y,r),this.context1.closePath(),this.context1.stroke(),this.context1.beginPath(),this.context1.moveTo(n[2].x,n[2].y),this.context1.lineTo(n[1].x,n[1].y),this.context1.arcTo(n[4].x,n[4].y,n[3].x,n[3].y,r),this.context1.closePath(),this.context1.stroke(),this.context1.restore()},b.prototype.drawSlideDoor=function(t){for(var e=t.points2d,i=[],n=0;n<e.length;++n)i[n]=this.getScreenXY({x:e[n].x,y:e[n].y});this.context1.save(),this.context1.lineWidth=o.lineWidth,this.context1.strokeStyle=o.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.lineTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.closePath(),this.context1.stroke(),this.context1.beginPath(),this.context1.moveTo(i[4].x,i[4].y),this.context1.lineTo(i[5].x,i[5].y),this.context1.lineTo(i[6].x,i[6].y),this.context1.lineTo(i[7].x,i[7].y),this.context1.closePath(),this.context1.stroke(),this.context1.restore()},b.prototype.drawSingleWindow=function(t){for(var e=t.points2d,i=[],n=0;n<e.length;++n)i[n]=this.getScreenXY({x:e[n].x,y:e[n].y});this.context1.save(),this.context1.lineWidth=o.lineWidth,this.context1.strokeStyle=o.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.stroke(),this.context1.beginPath(),this.context1.moveTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.lineTo(i[4].x,i[4].y),this.context1.lineTo(i[5].x,i[5].y),this.context1.closePath(),this.context1.stroke(),this.context1.restore()},b.prototype.drawBayWindow=function(t){for(var e=t.points2d,i=[],n=0;n<e.length;++n)i[n]=this.getScreenXY({x:e[n].x,y:e[n].y});this.context1.save(),this.context1.lineWidth=o.lineWidth,this.context1.strokeStyle=o.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.lineTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.closePath(),this.context1.stroke(),this.context1.beginPath(),this.context1.moveTo(i[5].x,i[5].y),this.context1.lineTo(i[6].x,i[6].y),this.context1.lineTo(i[7].x,i[7].y),this.context1.lineTo(i[4].x,i[4].y),this.context1.stroke(),this.context1.restore()},b.prototype.drawFrenchWindow=function(t){for(var e=t.points2d,i=[],n=0;n<e.length;++n)i[n]=this.getScreenXY({x:e[n].x,y:e[n].y});this.context1.save(),this.context1.lineWidth=o.lineWidth,this.context1.strokeStyle=o.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.moveTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.moveTo(i[4].x,i[4].y),this.context1.lineTo(i[5].x,i[5].y),this.context1.moveTo(i[2].x,i[2].y),this.context1.lineTo(i[4].x,i[4].y),this.context1.moveTo(i[3].x,i[3].y),this.context1.lineTo(i[5].x,i[5].y),this.context1.moveTo(i[6].x,i[6].y),this.context1.lineTo(i[7].x,i[7].y),this.context1.stroke(),this.context1.restore()},b.prototype.drawEntranceDoor=function(t){this.context1.save();var i,o,n={x:(t.startPoint.x+t.endPoint.x)/2,y:(t.startPoint.y+t.endPoint.y)/2},s=e.createLine(t.startPoint,t.endPoint),r=e.getLineForPoint(s,n),a=null,h=null;a=t.openSide!=t.enter?e.getParallelLineForDistance(s,this.enter_mini_Img.height/2/this.resolution):e.getParallelLineForDistance(s,this.enter_mini_Img.height/2/this.resolution+e.getDistance(t.startPoint,t.endPoint)),i=e.getIntersectionPoint(a.line1,r),o=e.getIntersectionPoint(a.line2,r);var c=e.Angle(t.startPoint,{x:t.startPoint.x+1,y:t.startPoint.y},t.endPoint);e.isClockwise([t.startPoint,t.endPoint,o])?h="LEFT"==t.openSide?"default"==t.enter?i:o:"default"==t.enter?o:i:e.isClockwise([t.startPoint,t.endPoint,i])&&(h="LEFT"==t.openSide?"default"==t.enter?o:i:"default"==t.enter?i:o),e.isClockwise([t.startPoint,t.endPoint,h])||(c=Math.PI+c),n=this.getScreenXY(n),h=this.getScreenXY(h),this.context1.translate(h.x,h.y),t.startPoint.y<=t.endPoint.y?this.context1.rotate(-c):this.context1.rotate(c),this.context1.drawImage(this.enter_mini_Img,-this.enter_mini_Img.width/2,-this.enter_mini_Img.height/2),this.context1.restore()},b.prototype.drawPass=function(t){for(var e=t.points2d,i=[],n=0;n<e.length;++n)i[n]=this.getScreenXY({x:e[n].x,y:e[n].y});this.context1.save(),this.context1.lineWidth=o.lineWidth,this.context1.strokeStyle=o.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.lineTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.closePath(),this.context1.stroke(),this.context1.beginPath(),this.context1.moveTo(i[4].x,i[4].y),this.context1.lineTo(i[5].x,i[5].y),this.context1.setLineDash([3,2,2]),this.context1.stroke(),this.context1.beginPath(),this.context1.moveTo(i[6].x,i[6].y),this.context1.lineTo(i[7].x,i[7].y),this.context1.setLineDash([3,2,2]),this.context1.stroke(),this.context1.restore()},b.prototype.drawBeam=function(t){for(var e=t.points2d,i=[],o=0;o<e.length;++o)i[o]=this.getScreenXY({x:e[o].x,y:e[o].y});this.context1.save(),this.context1.lineWidth=n.lineWidth,this.context1.strokeStyle=n.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.lineTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.closePath(),this.context1.stroke(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[2].x,i[2].y),this.context1.moveTo(i[1].x,i[1].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.stroke(),this.context1.restore()},b.prototype.drawFlue=function(t){for(var e=t.points2d,i=[],o=0;o<e.length;++o)i[o]=this.getScreenXY({x:e[o].x,y:e[o].y});this.context1.save(),this.context1.lineWidth=n.lineWidth,this.context1.strokeStyle=n.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.lineTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.closePath(),this.context1.beginPath(),this.context1.moveTo(i[4].x,i[4].y),this.context1.lineTo(i[5].x,i[5].y),this.context1.lineTo(i[6].x,i[6].y),this.context1.lineTo(i[7].x,i[7].y),this.context1.closePath(),this.context1.moveTo(i[4].x,i[4].y),this.context1.lineTo(i[8].x,i[8].y),this.context1.lineTo(i[6].x,i[6].y),this.context1.stroke(),this.context1.restore()},b.prototype.drawCorridor=function(t){for(var e=t.points2d,i=[],o=0;o<e.length;++o)i[o]=this.getScreenXY({x:e[o].x,y:e[o].y});this.context1.save(),this.context1.lineWidth=n.lineWidth,this.context1.strokeStyle=n.strokeStyle,this.context1.beginPath(),this.context1.moveTo(i[0].x,i[0].y),this.context1.lineTo(i[1].x,i[1].y),this.context1.lineTo(i[2].x,i[2].y),this.context1.lineTo(i[3].x,i[3].y),this.context1.closePath(),this.context1.stroke();for(var s=4;s<i.length-1;s+=2)this.context1.moveTo(i[s].x,i[s].y),this.context1.lineTo(i[s+1].x,i[s+1].y);this.context1.stroke(),this.context1.restore()},b.prototype.drawPanos=function(t){this.player||(this.player=this.app.core.get("Player"));for(var e=this.player.model.panos.list,i=0;i<e.length;++i){var o=e[i];if(o.floorIndex==t){var n=this.getVectorForRotate({x:o.position.x,y:-1*o.position.z},this.angle);this.drawCircle2(n),this.drawText(n,o.id)}}},b.prototype.drawText=function(t,e,i,o){this.context1.save(),this.context1.font="12px Microsoft YaHei";var n={x:t.x,y:t.y};i||(n=this.getScreenXY({x:t.x,y:t.y})),o?(this.context1.translate(n.x,n.y),this.context1.rotate(o),this.context1.fillText(e,0,0)):this.context1.fillText(e,n.x,n.y),this.context1.restore()},b.prototype.getVectorForRotate=function(t){var e=-1*this.angle;if(Math.abs(e)<.01||Math.abs(e-2*Math.PI)<.01)return t;var i={x:(this.cad_bounding.left+this.cad_bounding.right)/2,y:(this.cad_bounding.top+this.cad_bounding.down)/2},o=(t.x-i.x)*Math.cos(e)-(t.y-i.y)*Math.sin(e)+i.x,n=(t.y-i.y)*Math.cos(e)+(t.x-i.x)*Math.sin(e)+i.y;return t.x=o,t.y=n,t},b.prototype.Bounds=function(t,e,i,o){var n={};return n.leftBottom={x:t,y:e},n.rigthTop={x:i,y:o},n.leftTop={x:t,y:o},n.rightBottom={x:i,y:e},n.left=t,n.right=i,n.down=e,n.top=o,n},b.prototype.clearCanvas=function(t){1==t?this.context1.clearRect(0,0,this.canvas1.width,this.canvas1.height):this.context2.clearRect(0,0,this.canvas2.width,this.canvas2.height)},function(t,e){void 0===e&&(e={});var i=KanKan.Deferred(),o=null;return e.el&&(o="string"===e.el?document.querySelector(e.el):e.el),t.Scene.on("loaded",(function(){var n=new b(t,o||t.dom,e);n.$scope=o,n.$html='<div v-cloak v-scope xui_min_map @vue:mounted="create" :class="{show:show}"> <canvas xui_min_map_cad></canvas> <canvas xui_min_map_dir></canvas> </div> <style> [xui_min_map] {\r\n visibility: hidden;\r\n position: absolute;\r\n pointer-events: all;\r\n width: 204px;\r\n height: 200px;\r\n background-color: rgba(0, 0, 0, 0.3);\r\n border-radius: 10px;\r\n }\r\n [xui_min_map] canvas {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n [xui_min_map].show {\r\n visibility: visible;\r\n } </style> ',n.$name="MinMap",n.$load=function(){PetiteVue.createApp({show:!1,create:function(){n.$xui=this,n.init(),t.store.getValue("metadata").controls.showMap||n.hide(),t.MinMap.install(n)}}).mount((o||t.dom).querySelector("[xui_min_map]"))},i.resolve(n)})),i}}();
|