You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.5 MiB
76 lines
2.5 MiB
!function(){"use strict";var e=window.Glodon=window.Glodon||{};e.Version="2022-3-2-17-50",function(){function t(e,t){let i=t.split("."),o=e,n=i.length;for(let e=0;e<n;e++)void 0===o[i[e]]&&(o[i[e]]={}),o=o[i[e]];return o}t(e,"Web.Lang.Utility.Namespace").ensureNamespace=t}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Common"),i=function(e){"string"==typeof e&&(e=JSON.parse(res)),this.code=e.code,this.message=e.message};i.prototype={getErrorCode:function(){return this.code},getErrorMessage:function(){return this.message}},t.Error=i}();class t{constructor(e,t,i){this.x=e||0,this.y=t||0,this.z=i||0}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}clone(){return new this.constructor(this.x,this.y,this.z)}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}distanceToSquared(e){var t=this.x-e.x,i=this.y-e.y,o=this.z-e.z;return t*t+i*i+o*o}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}}class i{constructor(e,i){this.min=e||new t(1/0,1/0,1/0),this.max=i||new t(-1/0,-1/0,-1/0)}getSize(){return new t(this.max.x-this.min.x,this.max.y-this.min.y,this.max.z-this.min.z)}setFromCenterAndSize(e,i){let o=new t(i.x,i.y).multiplyScalar(.5);return this.min.copy(e).sub(o),this.max.copy(e).add(o),this}getCenter(){return new t(this.min.x+this.max.x,this.min.y+this.max.y,this.min.z+this.max.z).multiplyScalar(.5)}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)}union(e){return this.min.min(e.min),this.max.max(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}expandByPoint(e){return this.min.min(e),this.max.max(e),this}setFromPoints(e){this.makeEmpty();for(var t=0,i=e.length;t<i;t++)this.expandByPoint(e[t]);return this}}!function(){let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Algorithm");o.MeanShift=class{constructor(e,t){this.points=e,this.searchRangeSquared=t**2,this.EPSILON_SQR=.1,this.clusters=[]}setSearchRange(e){this.searchRangeSquared=e**2}setPoints(e){this.points=e}meanShift(e){let t=e.clone(),i=[];for(;;){let e=this.rangeSearch(t);i=this.connect(i,e);let o=this.mean(e);if(t.distanceToSquared(o)<=this.EPSILON_SQR)break;t=o}return i}mean(e){let i=new t;for(const t of e)i.add(t);return i.multiplyScalar(1/e.length),i}rangeSearch(e){let t=[];for(const i of this.points)e.distanceToSquared(i)<=this.searchRangeSquared&&t.push(i);return t}clustering(e,t){0===this.clusters.length?this.clusteringPrepare():this.clusteringAfter(e,t),this.clusters.forEach((e=>{this.resetPointStatus(e.points)}))}clusteringPrepare(){for(const e of this.points){if(e.stopMoving)continue;const t=this.meanShift(e),i=t.length,o=`${t[0].index}_${i}`;this.mergeClusters({points:t,center:this.mean(t),id:o,parent:null,children:[]})}}clusteringAfter(e,t){this.tmpPoints=this.points,this.points=[];let i=[...this.clusters];if(this.clusters=[],!1!==e){for(let e=0;e<i.length;e++){const o=i[e];let n=[];t||this.resetClusterPoints(o.points),this.points=o.points,this.clusteringZoomIn(o,n),this.clusters.push.apply(this.clusters,n)}this.clusters.forEach((e=>{this.resetPointStatus(e.points)}))}else this.clusteringZoomOut(i,t)}clusteringZoomIn(e,t){for(const i of e.points){if(i.stopMoving)continue;const o=this.meanShift(i),n=o.length,s=`${o[0].index}_${n}`;this.mergeClustersInTarget({points:o,center:this.mean(o),id:s,parent:e.id,children:[]},t)}}clusteringZoomOut(e,t){for(let i=0;i<e.length;i++){const o=e[i];t||this.resetClusterPoints(o.points),o.center=this.mean(o.points),this.updateClusterBbox(o),o.children=[],o.parent=null,o.isMerged=!1}for(let t=0;t<e.length;t++){const i=Object.assign({},e[t]);if(!0===i.isMerged)continue;let o=[i.id];for(let n=t+1;n<e.length;n++){const t=e[n];if(!0===t.isMerged)continue;i.center.distanceToSquared(t.center)<=4*this.searchRangeSquared&&(t.isMerged=!0,i.points=this.connect(i.points,t.points,!0),o.push(t.id))}if(i.isMerged=!0,o.length>1){i.center=this.mean(i.points),this.updateClusterBbox(i);const e=i.points.length,t=`${i.points[0].index}_${e}`;i.id=t,i.children=o}this.clusters.push(i)}this.clusters.forEach((e=>{delete e.isMerged,this.resetPointStatus(e.points)}))}mergeClusters(e){let t=!1;for(const i of this.clusters){const o=e.center.distanceToSquared(i.center)<=4*this.searchRangeSquared,n=i.parent==i.parent;if(o&&n){i.points=this.connect(i.points,e.points,!0),i.center=this.mean(i.points),this.updateClusterBbox(i);const o=i.points.length,n=`${i.points[0].index}_${o}`;i.id=n,i.children=[],t=!0;break}}!1===t&&(this.updateClusterBbox(e),this.clusters.push(e))}mergeClustersInTarget(e,t){let i=!1;for(const o of t){if(e.center.distanceToSquared(o.center)<=4*this.searchRangeSquared){o.points=this.connect(o.points,e.points,!0),o.center=this.mean(o.points),this.updateClusterBbox(o);const t=o.points.length,n=`${o.points[0].index}_${t}`;o.id=n,o.children=[],i=!0;break}}!1===i&&(this.updateClusterBbox(e),t.push(e))}removeNodeFromParents(e,t){let i=t.indexOf(e);i>=0&&t.splice(i,1)}updateClusterBbox(e){let t=(new i).setFromPoints(e.points);e.bbox=t}connect(e,t,i){let o=[...e];for(const e of t)e.stopMoving&&!i||o.push(e),e.stopMoving=!0;return o}resetPointStatus(e){for(const t of e)t.stopMoving=!1}resetClusterPoints(e){for(let t=0;t<e.length;t++)for(let i=0;i<this.tmpPoints.length;i++)if(e[t].index===this.tmpPoints[i].index){e[t]=this.tmpPoints[i];break}}}}();class o{constructor(e,t){this.x=e||0,this.y=t||0}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}normalize(){return this.multiplyScalar(1/this.length())}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}add(e){return this.x+=e.x,this.y+=e.y,this}sub(e){return this.x-=e.x,this.y-=e.y,this}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}addScalar(e){return this.x+=e,this.y+=e,this}rotateAround(e,t){var i=Math.cos(t),o=Math.sin(t),n=this.x-e.x,s=this.y-e.y;return this.x=n*i-s*o+e.x,this.y=n*o+s*i+e.y,this}setLength(e){return this.multiplyScalar(e/this.length())}angle(){var e=Math.atan2(this.y,this.x);return e<0&&(e+=2*Math.PI),e}distanceToSquared(e){var t=this.x-e.x,i=this.y-e.y;return t*t+i*i}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}}class n{constructor(e,t){this.min=e||new o(1/0,1/0),this.max=t||new o(-1/0,-1/0)}getSize(){return new o(this.max.x-this.min.x,this.max.y-this.min.y)}setFromCenterAndSize(e,t){let i=new o(t.x,t.y).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}getCenter(){return new o(this.min.x+this.max.x,this.min.y+this.max.y).multiplyScalar(.5)}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y)}union(e){return this.min.min(e.min),this.max.max(e.max),this}expandByPoint(e){return this.min.min(e),this.max.max(e),this}}!function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Algorithm");class i{constructor(){}}i.toThreeJsBox2=function(e,t=0){let i=[];for(const s of e){let e=Math.min(t,100)/100,r=Math.max(s[1][1]-s[0][1],s[1][0]-s[0][0])*e,a=new o(s[0][0],s[0][1]),l=new o(s[1][0],s[1][1]),h=new n(a,l),c=h.getSize();i.push((new n).setFromCenterAndSize(h.getCenter(),c.addScalar(2*r)))}let s=0;for(const e of i)e.indices=[s++];return i},i.toDrawingBox2=function(e){let t=[];for(const i of e){let e=[];e.push([i.min.x,i.min.y]),e.push([i.max.x,i.max.y]),t.push(e)}return t},i.merge=function(e,t){let i=e.length;for(let o=0;o<=i;o++){if(o===i){e.push(t);break}let n=e[o];if(n.intersectsBox(t)){n.union(t),n.indices=n.indices.concat(t.indices);break}}},i.mergeBoundingBox=function(e){let t=e,o=[];for(;;){for(let e=0;e<t.length;e++)i.merge(o,t[e]);if(o.length===t.length)break;t=o.slice(0,o.length),o=[]}return o},t.BoundingBoxUtil=i}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Type").inheritPrototype=function(e,t){var i=function(e){function t(){}return t.prototype=e,new t}(t.prototype);i.constructor=e,e.prototype=i},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),i=function(e,t){var i=Object.assign({type:"get",cache:!0,headers:{"Content-type":"application/x-www-form-urlencoded"},data:null,async:!0,success:null,failure:null},e);const o=e=>{i.success&&i.success(e.responseText,e.responseXML)},n=e=>{i.failure&&i.failure(e)},s=(e,t)=>{var o;(o=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")).onreadystatechange=function(){if(4==o.readyState){var i=o.status;if(i>=200&&i<300||304==i||0===i&&"file:"===window.location.protocol){let{responseText:t,responseXML:i}=o;e({responseText:t,responseXML:i})}else t(i)}},o.open(i.type,i.url,i.async);for(let e in i.headers)o.setRequestHeader(e,i.headers[e]);o.send(i.data)};t?CLOUD.Storage.IndexedDBHelper.loadWithStorage("InfoData",i.url,(()=>new Promise(s)),o,n):s(o,n)},o=function(e,t,i){let o={};if(o[e])t&&t();else{let n=document.createElement("script");n.type="text/javascript",n.src=e,document.head.appendChild(n),o[e]=!0,n.readyState?n.onreadystatechange=function(){"loaded"==n.readyState||"complete"==n.readyState?(n.onreadystatechange=null,t&&t()):"uninitialized"==n.readyState&&(n.onreadystatechange=null,i&&i())}:(n.onload=function(){t&&t()},n.onerror=function(){i&&i()})}},n=function(e,t){e.length>1?o(e.shift(),(()=>{n(e,t)})):o(e.shift(),t)};t.ajax=i,t.promiseJSONRequest=function(e,t,o){let n;return n="string"==typeof e?{url:e,status:t}:e,new Promise((function(e,s){i(Object.assign({},n,{success:function(i){try{var o=JSON.parse(i)}catch(t){return e(i)}"success"==o.code||"noCode"==n.status?e("noCode"==t?o:o.data):s(`requestError,dataCode:${o.code}, dataMessage:${o.message}`)},failure:e=>{s(e)}}),o)}))},t.getScript=o,t.getScripts=n}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.FullScreen");t.fullScreen=function(e){if(!e)return!1;e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullScreen?e.webkitRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()},t.exitFullScreen=function(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()},t.onFullScreenChanged=function(e){var t=function(){e&&e()};document.onfullscreenchange=t,document.onwebkitfullscreenchange=t,document.documentElement.onwebkitfullscreenchange=t,document.onmozfullscreenchange=t,document.onmsfullscreenchange=t},t.isFullScreen=function(){return document.webkitIsFullScreen||!!document.mozFullScreenElement||!!document.msFullScreenElement||!1}}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.ClientHelper"),i=null;if(t.getIsDesktop)return;var o=function(e,t,i){i=i||"asc";var o=!1;return t?t.indexOf(".")>-1&&(o=!0):t="name",e=e.sort((function(e,n){if(o){var s=r(e,t),a=r(n,t);return"asc"==i?s.localeCompare(a):a.localeCompare(s)}return"asc"==i?e[t].localeCompare(n[t]):n[t].localeCompare(e[t])})),s(e,t,o)};var n=function(e,t){return function(i,o){var n,s;t?(n=r(i,e),s=r(o,e)):(n=i[e],s=o[e]);var a,l,h=1,c=0,d=0,g=String.alphabet;function u(e,t,i){if(i){for(a=t;(i=u(e,a))<76&&i>65;)++a;return+e.slice(t-1,a)}return(i=g&&g.indexOf(e.charAt(t)))>-1?i+76:(i=e.charCodeAt(t)||0)<45||i>127?i:i<46?65:i<48?i-1:i<58?i+18:i<65?i-11:i<91?i+11:i<97?i-37:i<123?i+5:i-63}if((n+="")!=(s+=""))for(;h;)if(l=u(n,c++),h=u(s,d++),l<76&&h<76&&l>66&&h>66&&(l=u(n,c,c),h=u(s,d,c=a),d=a),l!=h)return l<h?-1:1;return 0}},s=function(e,t,i){let o=[],n=[],s=[],a=[];return e.map((function(e,l){var h;h=i?r(e,t):e[t],/^[a-zA-Z]*$/.test(h.slice(0,1))?o.push(e):/^[\u4e00-\u9fa5]*$/.test(h.slice(0,1))?n.push(e):/^\d+(\.\d+)?$/.test(h.slice(0,1))?s.push(e):a.push(e)})),a.concat(s,o,n)},r=function(e,t){var i=t.split("."),o=e;return i.map((function(e,t){o=o[e]})),o};t.getIsDesktop=function(){if("Mobile"===i)return!1;if("Web"===i)return!0;var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),o=/(?:SymbianOS)/.test(e)||t,n=/(?:Android)/.test(e),s=/(?:Firefox)/.test(e),r=(/(?:Chrome|CriOS)/.test(e),/(?:iPad|PlayBook)/.test(e)||n&&!/(?:Mobile)/.test(e)||s&&/(?:Tablet)/.test(e));return!(/(?:iPhone)/.test(e)&&!r||n||o||r)},t.getIsMac=()=>/macintosh|mac os x/i.test(navigator.userAgent),t.getIsChrome=()=>/(?:Chrome|CriOS)/.test(navigator.userAgent),t.setNavigatorType=function(e){i=e},t.getIsIphone=function(){var e=navigator.userAgent;return/(?:iPhone)/.test(e)},t.getIsIE=function(){return!(!window.ActiveXObject&&!("ActiveXObject"in window))},t.formatURL=function(e){var t=function(e){return e.replace("viewToken.json","").replace(/\.\//g,"/").replace(/\/\//g,"/")};if(e.indexOf("://")>-1){var i=e.split("://");e=i[0]+"://"+t(i[1])}else e="//"===e.slice(0,2)?"//"+t(e.slice(2)):"./"!=e.slice(0,2)?t(e):"."+t(e.slice(1));return e},t.sortByName=o,t.sortByRules=function(e,t,i){i=i||"asc";var o=!1;return t?t.indexOf(".")>-1&&(o=!0):t="name",e=e.sort(n(t,o)),s(e,t,o)},t.PointToLineDistance=function(e,t,i,o,n,s){let r,a,l,h,c=0;const d=Math.sqrt((i-e)*(i-e)+(o-t)*(o-t));if(0===d)return[0,{x:i,y:o}];const g=Math.sqrt((n-e)*(n-e)+(s-t)*(s-t));if(0===g)return[0,{x:n,y:s}];const u=Math.sqrt((i-n)*(i-n)+(o-s)*(o-s));if(0===u)return c=d,[c,{x:i,y:o}];if(d<g){if(o===s?r=i<n?0:Math.PI:(h=(n-i)/u,h-1>1e-5&&(h=1),r=Math.acos(h),o>s&&(r=2*Math.PI-r)),h=(e-i)/d,h-1>1e-5&&(h=1),a=Math.acos(h),o>t&&(a=2*Math.PI-a),l=a-r,l<0&&(l=-l),l>Math.PI&&(l=2*Math.PI-l),l>Math.PI/2)return[d,{x:i,y:o}];if(i===n)return[g*Math.sin(l),{x:i,y:t}];if(o===s)return[g*Math.sin(l),{x:e,y:o}];let c=0,p=0;const A=(s-o)/n-i,m=-1/A,w=t-e*m;return c=(s-n*A-w)/(m-A),p=m*c+w,[d*Math.sin(l),{x:c,y:p}]}if(o===s?r=i<n?Math.PI:0:(h=(i-n)/u,h-1>1e-5&&(h=1),r=Math.acos(h),s>o&&(r=2*Math.PI-r)),h=(e-n)/g,h-1>1e-5&&(h=1),a=Math.acos(h),s>t&&(a=2*Math.PI-a),l=a-r,l<0&&(l=-l),l>Math.PI&&(l=2*Math.PI-l),l>Math.PI/2)return[g,{x:n,y:s}];if(i===n)return[g*Math.sin(l),{x:i,y:t}];if(o===s)return[g*Math.sin(l),{x:e,y:o}];let p=0,A=0;const m=(s-o)/n-i,w=-1/m,C=t-e*w;return p=(s-n*m-C)/(w-m),A=w*p+C,[g*Math.sin(l),{x:p,y:A}]},t.isWebGLAvailable=function(){try{var e=document.createElement("canvas");return!(!window.WebGLRenderingContext||!e.getContext("webgl")&&!e.getContext("experimental-webgl"))}catch(e){return!1}},t.isWebGL2Available=function(){try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},t.sortByGroupName=function(e,t,i,n){let s=((e,t)=>e.reduce(((e,i)=>({...e,[i[t]]:[...e[i[t]]||[],i]})),{}))(e,t),r=[];for(let e in s)r=[...r,...o(s[e],i,n)];return r}}();var s,r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAbCAYAAAH3zbSEAAAAAXNSR0IArs4c6QAAAn5JREFUSA29lr9uGkEQxu8A47MTKSf5j2RbjnDhAAUVVKbhBeiiNHmLPIxbt64i+QF4A3iBpEiUIkWUCEVBcSz/uXy/1S1aH3fxcoKM9LG7szv77c7MzhEEQRAKFWEutXkvCKoMqkmS3Foly+vCa6ugjdwBm907imoo+8QqwjCMavp5axVqzWTUarWuNKg6E/MurJvCS2F+lHR2Q+0XFkSiuU6VjxrRbaHg3OyyIJVut3sj7cHCjBTWOZ+zkzJKrLMa2UnGISvyJtAZy/F4vDDf6/VMUAaaOVyYDYKv6OpsPZ1Ok06nc6Hxs5yFharNfr9/qdmGkOvuIksTBjH/KVpQpJ9MJhF+fCha8ITe2EXcOU/+pdfGhrmQIC8E7mLuDEgzmwrufFGfI99iiIcJNv27FGqeliPuOhwOyekTwZu9KSPSeSAslRg8r7NljbhXLNBOBR/ZZhFOiRW7Tz4Wdo0y6QSmhrArfBd8xKzFcE+M33ws7Box7mN4qmh8sEqfVmXnFTHzjpuzaaWMkbEvbUg4ZjrzG7Uku49Qi2c4x01yH0PK4p013FJIfmWt4jg+H41G76SHpWzlyG5rxnwETqkaVFAeS7vdfi8duX8k8D0r7UfZ5gqbGtKUbKBxQ+CFLlWFtd5LcC+BfCHwQCkJPFDqifuB1rC0wAHwFiFK6KCoyb0fUQgIB8EDqwAeO9D+5MWesEHqQmyLXUv9mUC5XZXA8TzdjPYnt+QfxU6K3yiFVZMSPurljxSG9JjsdWUdYxEeC3VcC0zVVrtugQc+kyzN7M3cW6+iz/7iasJnWGH+n0JmcQJT4vj3t2Yx75Tsperwx9hm2DpuD5l9Gdd/AVIlXMI9fgkPAAAAAElFTkSuQmCC",a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAABBpJREFUWAntVUtLG1EUniRjEo2amKjVxBiFqlAXRUVFEBFKF6KLgii47kIKXVX36rra0lXRnd1IFftYqFAoBFyJ2AdUixqoMU18a3ylSZwk/b6pCRmfP6AZuJlz7znfd8797rkTQUg9KQVSCqQUSClwgwKxWEzV0NBgrq6u/tbf36/m/IZw2cUYxhJD7G0Y9XWEJGlsbKw5Ozv7qlKp7h8eHuoGBgZuLYAxjCWGWHKQ67o8VxISMDMz8yASiUyUlZUZV1ZWhNra2jvRaPTAarVGpqamHsF+AVLHObFbrVY/a21t/eDz+TSwc+bn57fKy8uF1dXVQ41G09HS0vIZvNGLhVyqjMmR4LEkSZ/a2tqMw8PDMgZzQzgc1kxPT7cj+WRzc7ODPg7aXKOPMYwliD5ykIucVymhKKCjo4MJXoFspKurS+jr6xOysrLkAtLS0rSwtfANIaEwODgo1NTUyIM21+hjDGMJIpYc5CInuZlDJjz/kQtgo9TV1VnW1tZGIftTVCr09PQkxwk4U7Xb7S5ErJ2EFx+u0RcKhQyMTfaTi5zkZg7mijenHNjZ2aluamoK4ux0ycBkGzvQYGeyHNzZdQ+SZzL2Oj9zMBdzMkb+qaysVB0dHaVXVVU9B/l7Vjs0NKTg4K4sFksIBDsjIyMKHydjY2MCfUjOY1I0N7nISW7mYC7mJE4hFSSKVVRUvMvPz39LQlwp4fj4mHGJJzc3943T6RR6e3uFhYUFgTeENtfgG00EwiCWHOQiJ7mZIzlGPJ/wegS0Wu02Agx2u33GYDD40LlPlpeX9YzBmUUxwkVFRU7s1DQ7O9uOpCb6cM38BQUFkzabzQmlwhjyUXZ3dwsulytYWlr62mw2f8f6b+bA9yEAmHwlE1KxOx0Ohx7yWJDADhkdfr+/en19vQsAa319/T1cJz9IbPDdxTsfI50FoLA/GNvAufD2iqJompubW0LP+IqLi8dMJtMX+NzAebKzs/fQzMGJiYkIsYlmWVpaimEHUcgYCgQCQZBIOp3uBIAf+/v7FbA/Go3GDRTBZpWADeN9iiL8SLoF28PkiDvd3d214mv4EB+ilzj3n/D9wvdhHfaex+MJxZOzgIQCnPBBs6hxVbR6vT4bUxtIefUkyOzC2sbBwUEMdgZGJpLLUsMfwtGdYARycnJUwWCwEDZVEjE2wOPF2lFJSUkY/Iqv4aUC4kXgLe7s7GShcgtsqJm2h/k+uldaXFwkToNzl/Gbm5tsrAh8MfjEvLw8M46NuDOc+R7m7GTpYnKsXVaAi3ywKxWaCCch6kAi4ljC2L1Cvn+Ryl/2ElTQZWRkaFE8TkwK4ZMsQQlF98dRimsYX+SbAAJxfQJer/cYf0LB8fFxhXzJ8XGbMYwlhtibkscxqXdKgf9bgb8e4D98kWiZrgAAAABJRU5ErkJggg==",l="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjFweCIgaGVpZ2h0PSIyMXB4IiB2aWV3Qm94PSIwIDAgMjEgMjEiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+5b2i54q257uT5ZCIPC90aXRsZT4KICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0xMSw1IEwxMSwxMCBMMTYsMTAgTDE2LDExIEwxMSwxMSBMMTEsMTYgTDEwLDE2IEwxMCwxMSBMNSwxMSBMNSwxMCBMMTAsMTAgTDEwLDUgTDExLDUgWiIgaWQ9InBhdGgtMSI+PC9wYXRoPgogICAgICAgIDxmaWx0ZXIgeD0iLTYzLjYlIiB5PSItNjMuNiUiIHdpZHRoPSIyMjcuMyUiIGhlaWdodD0iMjI3LjMlIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJmaWx0ZXItMiI+CiAgICAgICAgICAgIDxmZU1vcnBob2xvZ3kgcmFkaXVzPSIxIiBvcGVyYXRvcj0iZGlsYXRlIiBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93U3ByZWFkT3V0ZXIxIj48L2ZlTW9ycGhvbG9neT4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMCIgaW49InNoYWRvd1NwcmVhZE91dGVyMSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIiIGluPSJzaGFkb3dPZmZzZXRPdXRlcjEiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0ib3V0IiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVDb21wb3NpdGU+CiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjUgMCIgdHlwZT0ibWF0cml4IiBpbj0ic2hhZG93Qmx1ck91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICAgIDwvZmlsdGVyPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IuWFtuS7luWKn+iDvSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IuW9oueKtue7k+WQiCI+CiAgICAgICAgICAgIDx1c2UgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMSIgZmlsdGVyPSJ1cmwoI2ZpbHRlci0yKSIgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxIiBkPSJNMTEuNSw0LjUgTDExLjUsOS41IEwxNi41LDkuNSBMMTYuNSwxMS41IEwxMS41LDExLjUgTDExLjUsMTYuNSBMOS41LDE2LjUgTDkuNSwxMS41IEw0LjUsMTEuNSBMNC41LDkuNSBMOS41LDkuNSBMOS41LDQuNSBMMTEuNSw0LjUgWiIgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=";e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.MouseMotion").setCursor=function(t){let i,o=!1,n=t.getDomElement(),s=!1,r=!1,a=!1,l=null;function h(){o&&"walk"==t.getViewer().getEditorManager().editor.name||(n.addClass("motion-zoom"),i=Date.now(),setTimeout((()=>{Date.now()-i>180&&n.removeClass("motion-zoom")}),200))}e.Bimface.Viewer.Viewer3D&&"Viewer3D"===t.viewerType&&(o=!0),document.addEventListener("keydown",(function(e){const t=e.keyCode||evt.which||evt.charCode;17==t?s=!0:18==t&&(r=!0)})),document.addEventListener("keyup",(function(e){const t=e.keyCode||evt.which||evt.charCode;17==t?s=!1:18==t&&(r=!1)})),n.addEventListener("mousedown",(function(e){t._opt.enableZoomRect||s||r||(l={x:e.clientX,y:e.clientY})})),n.addEventListener("mousemove",(function(e){if(l&&!a&&!s&&!r&&!(Math.abs(l.x-e.clientX)<2&&Math.abs(l.y-e.clientY)<2)){if(o){let i=t.getUseLeftHandedInput();if("walk"==t.getViewer().getEditorManager().editor.name)1==e.buttons&&n.addClass("motion-rotate");else{let o=t._getIsCursorEnabled();1==e.buttons?o&&n.addClass(i?"motion-rotate":"motion-translate"):n.addClass(i?"motion-translate":"motion-rotate")}}else 1==e.buttons&&n.addClass("motion-translate");a=!0}})),n.addEventListener("mousewheel",h,!1),n.addEventListener("DOMMouseScroll",h,!1),n.addEventListener("mouseup",(function(e){l=!1,a=!1,n.removeClass("motion-translate"),n.removeClass("motion-rotate")}))},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom").create=function(e,t){var i=document.createElement(e);return i.setAttribute("class",t),i},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom").createNS=function(e,t){var i=document.createElementNS("http://www.w3.org/2000/svg",e);return i.setAttribute("class",t),i},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom").select=function(e){return e.indexof("#")?document.getElementById(e.replace("#","")):e.indexof(".")?document.getElementsByClassName(e.replace(".","")):document.getElementsByTagName(e)},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom").drag=function(t){let i=e.Web.Lang.Utility.ClientHelper.getIsDesktop(),o=Object.assign({element:null,handle:null,axis:"all",cursor:"move",distance:0,start:null,move:null,stop:null,bBoxDetection:!1},t),n=o.element;if(!n)return!1;let s,r=o.handle||n,a=!1,l=this;this.resize=function(e,t,i){t=t||{x:0,y:0};let n=e.getBoundingClientRect(),s=e.parentElement.getBoundingClientRect(),r=n.left-s.left,a=n.top-s.top;var l=e.offsetWidth,h=e.offsetHeight,c=e.parentElement.offsetWidth,d=e.parentElement.offsetHeight,g=Math.min(r+t.x,c-l),u=Math.min(a+t.y,d-h),p=r+t.x<0?0:g>0&&g||0,A=a+t.y<0?0:u>0&&u||0;i&&0!=p&&0!=A||(e.style.left=`${p}px`,e.style.top=`${A}px`,e.style.transform="none",o.record&&o.record(p,A))};let h=function(e){var t,n,a=e;if(i){if(t=a.button,!((n=navigator.userAgent).indexOf("compatible")>-1&&n.indexOf("MSIE")>-1&&!isOpera?1==t:0==t))return;s={x:a.clientX,y:a.clientY},document.addEventListener("mousemove",c)}else s={x:a.touches[0].clientX,y:a.touches[0].clientY},r.addEventListener("touchmove",c);o.start&&o.start(s)},c=function(e){var t=e;if(i)var r={x:t.clientX,y:t.clientY};else r={x:t.touches[0].clientX,y:t.touches[0].clientY};var h={x:r.x-s.x,y:r.y-s.y};a?(o.move&&o.move(s,r,h),s=r,function(e){let t=n.getBoundingClientRect(),i=n.parentElement.getBoundingClientRect(),s=t.left-i.left,r=t.top-i.top;if(o.bBoxDetection)l.resize(n,e);else{let t=s+e.x,i=r+e.y;switch(o.axis){case"x":n.style.left=`${t}px`;break;case"y":n.style.top=`${i}px`;break;case"all":default:n.style.left=`${t}px`,n.style.top=`${i}px`}}}(h)):a=function(e){return Math.pow(e.x,2)+Math.pow(e.y,2)>Math.pow(o.distance,2)&&(o.start&&o.start(s),!0)}(h),e.preventDefault(),e.stopPropagation()},d=function(){a&&o.end&&o.end(s),a=!1,document.removeEventListener("mousemove",c),r.removeEventListener("touchmove",c)};i?(r.style.cursor=o.cursor,r.style.userSelect="none",r.addEventListener("mousedown",h),document.addEventListener("mouseup",d)):(r.addEventListener("touchend",d),r.addEventListener("touchstart",h))},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");t.sizable=function(e){let i=Object.assign({element:null,axis:"all",minWidth:100,minHeight:100,distance:0,start:null,sizable:null,stop:null},e),o=i.element;if(!o)return!1;let n,s=!1,r=t.create("div","bf-resize");var a,l;let h=function(e){a=o.clientWidth,l=o.clientHeight;var t,i,s=e;(t=s.button,(i=navigator.userAgent).indexOf("compatible")>-1&&i.indexOf("MSIE")>-1&&!isOpera?1==t:0==t)&&(n={x:s.clientX,y:s.clientY},document.addEventListener("mousemove",c),document.addEventListener("touchmove",c))},c=function(e){var t=e,r={x:t.clientX,y:t.clientY},h={x:r.x-n.x,y:r.y-n.y};s?(i.sizable&&i.sizable(n,r,h),function(e){var t=o.offsetLeft,n=o.offsetTop,s=a+e.x<i.minWidth?i.minWidth:a+e.x,r=l+e.y<i.minHeight?i.minHeight:l+e.y;switch(i.resize&&i.resize(s,r),o.style.left=`${t}px`,o.style.top=`${n}px`,i.axis){case"x":o.style.width=`${s}px`;break;case"y":o.style.height=`${r}px`;break;case"all":default:o.style.width=`${s}px`,o.style.height=`${r}px`}}(h)):s=function(e){return Math.pow(e.x,2)+Math.pow(e.y,2)>Math.pow(i.distance,2)&&(i.start&&i.start(n),!0)}(h)},d=function(){s&&i.end&&i.end(n),s=!1,document.removeEventListener("mousemove",c),document.removeEventListener("touchmove",c)};o.addClass("bf-sizable"),o.appendChild(r),r.addEventListener("mousedown",h),r.addEventListener("touchstart",h),document.addEventListener("mouseup",d),document.addEventListener("touchend",d)}}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),i=function(e){let i=this,o=Object.assign({element:null,min:0,max:100,cur:50,step:1,isShowProgress:!0,input:null,change:null,currentColor:"#11dab7",defaultColor:"#999"},e);this._opt=o;let n=t.create("div","bf-range"),s=t.create("input","bf-input-range");i.input=s,s.setAttribute("type","range"),s.setAttribute("step",o.step),s.setAttribute("min",o.min),s.setAttribute("max",o.max),s.setAttribute("value",o.cur);let r=t.create("span","bf-range-min");r.innerText=o.min;let a=t.create("span","bf-range-cur");i.cur=a,a.innerText=o.cur;let l=t.create("span","bf-range-max");l.innerText=o.max;let h=t.create("span","bf-range-progress");n.appendChild(s),o.isShowProgress&&(n.appendChild(r),n.appendChild(a),n.appendChild(l)),n.appendChild(h),o.element.appendChild(n),i.setProgress(o.cur),s.addEventListener("input",(function(){i.setProgress(this.value),o.input&&o.input(this.value)})),s.addEventListener("change",(function(){i.setProgress(this.value),o.change&&o.change(this.value)}))};i.prototype.setProgress=function(e){var t=this._opt,i=t.max-t.min,o=this.input,n=this.cur,s=(e-t.min)/i*100;o.value=e,o.style.background=`linear-gradient(to right,${t.currentColor} 0%,${t.currentColor} ${s}%,${t.defaultColor} ${s}%, ${t.defaultColor} 100%)`,n.innerText=e},i.prototype.reset=function(){this.setProgress(this._opt.cur)},t.range=i}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),i=function(e){this._opt=Object.assign({element:null,min:0,max:100,from:null,to:null,step:1,currentColor:"#11dab7",defaultColor:"#999",change:null},e),this._opt.from=this._opt.from||this._opt.min,this._opt.to=this._opt.to||this._opt.max,this.init()};i.prototype={init:function(){var e=t.create("div","bf-multiple-range"),i=t.create("div","bf-range-track"),o=t.create("span","bf-slider bf-slider-min");o.id="minSlider",o.type="minimum";var n=t.create("span","bf-slider bf-slider-max");n.id="maxSlider",n.type="maximum",this._state={from:this._opt.from,to:this._opt.to},i.style.backgroundColor=this._opt.currentColor,e.style.backgroundColor=this._opt.defaultColor,e.appendChild(i),e.appendChild(o),e.appendChild(n),this._opt.element.appendChild(e),this._track=i,this._sliders={min:o,max:n},this._element=e,this.bindEvent(),this.update(!1)},bindEvent:function(){var e,t,i=this,o=!1,n=function(i){i=i||event;t=i.screenX,e=this,o=!0};this._sliders.min.addEventListener("mousedown",n),this._sliders.max.addEventListener("mousedown",n),document.addEventListener("mousemove",(function(n){if(o){var s=(n=n||event).screenX-t,r=Math.round(s/i._pix/i._opt.step)*i._opt.step;0!=r&&(t=r*i._pix+t,"minimum"==e.type?i._state.from+=r:i._state.to+=r,i.recalculate(e),i.update(!0))}})),document.addEventListener("mouseup",(function(){e=null,o=!1}))},update:function(e){var t=this._sliders.min.offsetWidth,i=this._sliders.max.offsetWidth;if(!this._pix){var o=(this._element.offsetWidth-t-i)/(this._opt.max-this._opt.min);this._pix=o}var n=(this._state.from-this._opt.min)*this._pix,s=(this._state.to-this._opt.min)*this._pix+t+i;this._track.style.left=`${n+t/2}px`,this._track.style.width=s-n-t/2-i/2+"px",this._sliders.min.style.left=`${n}px`,this._sliders.max.style.left=`${s}px`,this._opt.change&&e&&this._opt.change(this._state)},recalculate:function(e){this._state.to>=this._opt.max&&(this._state.to=this._opt.max),this._state.from<=this._opt.min&&(this._state.from=this._opt.min),e&&("maximum"==e.type&&this._state.to<=this._state.from&&(this._state.to=this._state.from),"minimum"==e.type&&this._state.from>=this._state.to&&(this._state.from=this._state.to))},getProgress:function(){return this._state},setProgress:function(e){this._state=e,this.recalculate(),this.update(!1)}},t.multipleRange=i}(),HTMLElement.prototype.tap=function(e){var t;this.addEventListener("touchstart",(function(e){t=Date.now()})),this.addEventListener("touchend",(function(i){Date.now()-t<200&&e(i)}))},(window.ActiveXObject||"ActiveXObject"in window)&&(HTMLElement.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)},window.Element&&((s=Element.prototype).matches=s.matches||s.matchesSelector||s.webkitMatchesSelector||s.msMatchesSelector||function(e){for(var t=this,i=(t.parentNode||t.document).querySelectorAll(e),o=-1;i[++o]&&i[o]!=t;);return!!i[o]}),window.Element&&function(e){e.closest=e.closest||function(e){for(var t=this;t.matches&&!t.matches(e);)t=t.parentNode;return t.matches?t:null}}(Element.prototype)),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.UUID").createUUID=function(){let e=[],t="0123456789abcdef";for(let i=0;i<36;i++)e[i]=t.substr(Math.floor(16*Math.random()),1);return e[14]="4",e[19]=t.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-",e.join("")},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility").throttle=function(e,t){let i=null,o=Date.now();return null==t&&(t=30),function(){let n=Date.now(),s=t-(n-o);const r=this,a=arguments;clearTimeout(i),s<=0?(e.apply(r,a),o=Date.now()):i=setTimeout(e,s)}};const h=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility");h.DataUtil={assertType(e,t){const i=t=>Object.prototype.toString.call(e)===`[object ${t}]`;switch(t){case"obj":case"Obj":case"object":case"Object":return i("Object");case"arr":case"Arr":case"array":case"Array":return i("Array");case"num":case"Num":case"number":case"Number":return i("Number");case"func":case"Func":case"function":case"Function":return i("Function");case"str":case"Str":case"string":case"String":return i("String");default:return i(t)}},assertParamsType(...e){if(e.length>1){const[t]=e.splice(e.length-1,1);let i=!0;return e.every((e=>(i=this.assertType(e,t),i))),i}},hasProperty(e,t){return!!this.assertType(e,"obj")&&e.hasOwnProperty(t)},hasProperties(e,...t){if(!t)return!1;let i=!0;return t.every((t=>i=this.hasProperty(e,t))),i},hasChildProperty(e,...t){if(!t||0===t.length)return!1;let i=e;for(let e=0;e<t.length;e++){let o=t[e];if(!this.hasProperty(i,o))return!1;i=i[o]}return!0},getChildProperty(e,...t){if(this.hasChildProperty(e,...t)){let i=e;return t.forEach((e=>i=i[e])),i}}};var c=h.DataUtil;e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Utils").Transformation={getTranslation(e){const t=this._getDecompose(e);return{x:t.position.x,y:t.position.y,z:t.position.z}},getQuaternion(e){const t=this._getDecompose(e);return{x:t.quaternion._x,y:t.quaternion._y,z:t.quaternion._z,w:t.quaternion._w}},getScaling(e){const t=this._getDecompose(e);return{x:t.scale.x,y:t.scale.y,z:t.scale.z}},quaternionToEulerAngles(e,t){const i=new THREE.Euler,o=new THREE.Quaternion(e.x,e.y,e.z,e.w),n=i.setFromQuaternion(o,t||"XYZ");return{x:n._x,y:n._y,z:n._z,order:n._order}},eulerAnglesToQuaternion(e){const t=new THREE.Quaternion,i=new THREE.Euler(e.x,e.y,e.z,e.order),o=t.setFromEuler(i);return{x:o._x,y:o._y,z:o._z,w:o._w}},_getDecompose(e){const t=new THREE.Matrix4,i=new THREE.Vector3,o=new THREE.Quaternion,n=new THREE.Vector3;return t.fromArray(e),t.decompose(i,o,n),{position:i,quaternion:o,scale:n}}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang");let i=function(){this.container={}};i.prototype.addEvent=function(e,t,i){return"string"==typeof e&&"function"==typeof t&&(void 0===this.container[e]?this.container[e]=[t]:!0===i?this.container[e].unshift(t):this.container[e].push(t)),this},i.prototype.fireEvent=function(e){if(e&&this.container[e]){var t=Array.prototype.slice.call(arguments);t.shift();for(var i=[...this.container[e]],o=i.length,n=0;n<o;n++){var s=i[n];if(!0===s.apply(null,t))return this}}return this},i.prototype.removeEvent=function(e,t){if("function"==typeof t&&"string"==typeof e){var i=this.container[e];if(i instanceof Array){for(var o=0,n=i.length;o<n;o+=1)if(i[o]===t){i.splice(o,1);break}0==i.length&&delete this.container[e]}return this}},t.EventManager=i}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Geometry"),i=function(e,t,i){this.x=e,this.y=t,this.z=i};i.prototype={get:function(){return{x:this.x,y:this.y,z:this.z}},set:function(e,t,i){this.x=e,this.y=t,this.z=i}},t.Point3d=i}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Geometry");t.BoundingBox=function(e,i){var o={},n=new t.Point3d,s=new t.Point3d;return n.set(e.x,e.y,e.z),s.set(i.x,i.y,i.z),o.min=n,o.max=s,o}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Graphics.Utility").RGBToHex=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t};var d=window.hostConfig||{APIHost:"https://api.bimface.com",resourceHost:"https://m.bimface.com",staticHost:"https://static.bimface.com",dataEnvType:"BIMFACE",securityApi:!0};!function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Graphics.Utility.Relation");t.getViews=function(t,i,o){e.Web.Lang.Utility.HttpRequest.ajax({url:`${d.resourceHost}/${t}/metadata/views.json`,success:function(e){var n=JSON.parse(e).viewList;e=[];for(var s in n){var r=n[s];r.viewType==i&&(r.preview.path=`${d.resourceHost}/${t}/${r.preview.path}`,e.push(r))}o&&o(e)}})},t.getDrawingSheets=function(t,i,o){e.Web.Lang.Utility.HttpRequest.ajax({url:`${d.resourceHost}/${t}/metadata/drawings.json`,success:function(e){for(var t=JSON.parse(e).drawingList,n=0;n<t.length;n++){var s=t[n];if(s.viewInfo.id==i){o&&o(s);break}}}})},t.point2DToPoint3D=function(t,i){if("DrawingSheet"==i.viewType)return function(e,t){if("DrawingSheet"!=t.viewType)return null;var i=t.viewInfo;let o=i.preview.width,n=i.preview.height,s=i.outline[0],r=i.outline[2],a=i.outline[1],l=i.outline[3],h=r-s,c=l-a;function d(e){return"FloorPlan"==e||"CeilingPlan"==e}function g(t,i,r,l,d){let g=e.x/o,u=(n-e.y)/n;if("Elevation"==d.viewType){u=(o-e.x)/o,g=e.y/n;var p=d.viewPoint.viewDirection;1!=Math.round(p[0])&&-1!=Math.round(p[1])||(g=(n-e.y)/n)}let A=(t-s)/h,m=(i-s)/h;if(g<A||g>m)return null;let w=(r-a)/c,C=(l-a)/c;if(u<w||u>C)return null;let f=(g-A)/(m-A),E=(u-w)/(C-w),B=((d.outline[2]-d.outline[0])*f+d.outline[0])*d.viewPoint.scale,I=((d.outline[3]-d.outline[1])*E+d.outline[1])*d.viewPoint.scale;return new THREE.Vector3(B,I,0)}let u=(i=t).portsAndViews;for(var p=0;p<u.length;p++){let e=u[p];if(!d(e.viewType))continue;let t=g(e.viewport[0],e.viewport[3],e.viewport[1],e.viewport[4],e);if(null!=t){if(d(e.viewType))null!==t&&(t.z=e.elevation);else if("Elevation"==e.viewType){var A=e.viewPoint.viewDirection,m=e.cropBox;0!=Math.round(A[0])?null!==t&&(t.z=t.y,t.y=t.x,t.x=A[0]<0?m[3]:m[0]):0!=Math.round(A[1])&&null!==t&&(t.z=t.y,t.y=A[1]<0?m[4]:m[1])}return t}}return null}(t,i);if("FloorPlan"!=i.viewType)return console.warn("Not support yet!"),null;var o=i.preview.width,n=i.preview.height,s=i.outline[0],r=i.outline[2],a=i.outline[1],l=i.outline[3],h=r-s,c=l-a,d=(0-s)/h,g=l/c,u=(t.x-o*d)/o,p=(n*g-t.y)/n;return u=u*h*i.viewPoint.scale,p=p*c*i.viewPoint.scale,new e.Web.Geometry.Point3d(u,p,i.elevation)},t.point3DToPoint2D=function(e,t){let i=[];if(function(e,t,i){if("DrawingSheet"!=t.viewType)return!1;var o=t.preview.width,n=t.preview.height,s=t.outline[0],r=t.outline[2],a=t.outline[1],l=t.outline[3];let h=t.portsAndViews;for(let t in h){let c=h[t];if("FloorPlan"!==c.viewType)continue;let d=c.viewPoint.scale,g=c.outline[0]*d,u=c.outline[2]*d,p=c.outline[1]*d,A=c.outline[3]*d;if(e.x<g||e.x>u)continue;if(e.y<p||e.y>A)continue;let m=(e.x-g)/(u-g),w=(e.y-p)/(A-p),C=c.viewport[3]-c.viewport[0],f=c.viewport[4]-c.viewport[1];i(o*((c.viewport[0]+C*m-s)/(r-s)),n-n*((c.viewport[1]+f*w-a)/(l-a)),c)}return!0}(e,t,(function(e,t,o){i.append({x:e,y:t})})))return 0==i.length?null:i;if("FloorPlan"!=t.viewType)return console.warn("Not support yet!"),null;var o=t.preview.width,n=t.preview.height,s=t.outline[0],r=t.outline[2],a=t.outline[1],l=t.outline[3],h=r-s,c=l-a,d=(0-s)/(r-s),g=l/(l-a),u=e.x/(h*t.viewPoint.scale),p=e.y/(c*t.viewPoint.scale);return{x:u=u*o+o*d,y:p=n*g-p*n,z:0}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Graphics.Utility").ImageContainer=function(e){var t=new Image;return new Promise((function(i,o){t.onload=function(){i(t)},t.onerror=function(e){o(e)},t.crossOrigin="anonymous",t.src=e,!0===t.complete&&i(t)}))},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Graphics"),i=e.Web.Graphics.Utility.RGBToHex,o=function(e,t,i,o){this.red=e,this.green=t,this.blue=i,this.alpha=o},n=function(e,t){/^#[0-9a-fA-F]{6}$/.test(e)&&(this.red=parseInt(e.slice(1,3),16),this.green=parseInt(e.slice(3,5),16),this.blue=parseInt(e.slice(5),16)),"number"==typeof t?(t>1&&(t=1),t<0&&(t=0),this.alpha=t):this.alpha=1},s=function(){arguments.length<4?n.apply(this,arguments):o.apply(this,arguments)};s.prototype={getRGB:function(){return`rgba(${this.red},${this.green},${this.blue})`},getRGBA:function(){return`rgba(${this.red},${this.green},${this.blue},${this.alpha})`},getHEX:function(){return`${i(this.red)}${i(this.green)}${i(this.blue)}`},getAlpha:function(){return this.alpha},fromObject:function(e){return this.red=e.red,this.green=e.green,this.blue=e.blue,this.alpha=e.alpha,this}},t.Color=s}(),SVGElement.prototype.getClass=HTMLElement.prototype.getClass=function(e){return this.getAttribute("class")},SVGElement.prototype.hasClass=HTMLElement.prototype.hasClass=function(e){let t=this.getClass();return!!t&&(t&&t.split(" ")).indexOf(e)>-1},SVGElement.prototype.addClass=HTMLElement.prototype.addClass=function(e){let t=this.getClass();var i=t&&t.split(" ");return t?-1==i.indexOf(e)&&(i.push(e),t=i.join(" "),this.setAttribute("class",`${t}`)):this.setAttribute("class",`${e}`),this},SVGElement.prototype.removeClass=HTMLElement.prototype.removeClass=function(e){if(!this.hasClass(e))return this;let t=this.getClass().replace(e,"").trim();return t?this.setAttribute("class",`${t}`):this.removeAttribute("class"),this},SVGElement.prototype.toggleClass=HTMLElement.prototype.toggleClass=function(e,t){this.getClass();var i=this.hasClass(e);return null!=t?(t&&!i&&this.addClass(e),t||this.removeClass(e)):i?this.removeClass(e):this.addClass(e),!i},Array.prototype.getObjectByAttribute=function(e,t){for(var i=this,o=i.length,n=0;n<o;n++)if(i[n][e]==t)return i[n];return!1},Array.prototype.removeObjectByAttribute=function(e,t){for(var i=this,o=i.length,n=0;n<o;n++)if(i[n][e]==t)return i=i.splice(n,1);return!1},Array.prototype.getAllObjectByAttribute=function(e,t){for(var i=this,o=i.length,n=0,s=[];n<o;n++)i[n][e]==t&&s.push(i[n]);return s},Array.prototype.removeByValue=function(e){for(var t=this,i=t.length-1;i>=0;i--)t[i]==e&&t.splice(i,1);return t},Array.prototype.insert=function(e,t){return this.splice(e,0,t),this},Array.prototype.insertAfter=function(e,t){let i=e.length;for(;i>0&&-1==this.indexOf(e[i-1]);)i--;return i<1?this.splice(e.length,0,t):this.splice(i,0,t),{res:this,index:i}},Array.prototype.unique=function(e){for(var t=[],i=0;i<e.length;i++)t.indexOf(-1===e[i])&&t.push(e[i]);return t},SVGElement.prototype.setCss=HTMLElement.prototype.setCss=function(e){if(e)for(var t in e)this.style[t]=e[t]},SVGElement.prototype.getCss=HTMLElement.prototype.getCss=function(){return this.style},function(){let t=Object.freeze({Google:"Google",Tianditu:"Tianditu",OSM:"OSM",Amap:"Amap",ArcGIS:"ArcGIS",BingMap:"BingMap",Tencent:"Tencent",None:"None",Custom:"Custom"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Common").Credit=t}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Common").ImageStyle=Object.freeze({DarkBlue:"DarkBlue",DarkGreen:"DarkGreen",CustomColor:"CustomColor"}),function(){let t=Object.freeze({Millimeter:"Millimeter",Centimeter:"Centimeter",Meter:"Meter",Kilometer:"Kilometer",None:"None"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Common.Units").LengthUnits=t}();class g{constructor(){let e=[["EPSG:4214","+proj=longlat +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +no_defs"],["EPSG:4490","+proj=longlat +ellps=GRS80 +no_defs"],["EPSG:4610","+proj=longlat +a=6378140 +b=6356755.288157528 +no_defs"],["EPSG:3395","+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"]];for(let t=0;t<21;t++)e.push([`EPSG:45${13+t}`,`+proj=tmerc +lat_0=0 +lon_0=${75+3*t} +k=1 +x_0=${255e5+1e6*t} +y_0=0 +ellps=GRS80 +units=m +no_defs`]);for(let t=0;t<21;t++)e.push([`EPSG:45${34+t}`,`+proj=tmerc +lat_0=0 +lon_0=${75+3*t} +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs`]);proj4.defs(e)}translateXY(e,t,i){if(c.assertParamsType(t,i,"str")&&c.hasProperties(e,"x","y")&&proj4(t)&&"longlat"!==proj4(t).oProj.projName&&proj4(i)){let o=proj4(t,i,e);return"longlat"===proj4(i).oProj.projName?{lat:o.y,lon:o.x}:{x:o.x,y:o.y}}}translateLatLon(e,t,i){if(c.assertParamsType(t,i,"str")&&c.hasProperties(e,"lat","lon")&&proj4(t)&&"longlat"===proj4(t).oProj.projName&&proj4(i)){let o={x:e.lon,y:e.lat},n=proj4(t,i,o);return"longlat"===proj4(i).oProj.projName?{lat:n.y,lon:n.x}:{x:n.x,y:n.y}}}defineCustomCoordSys(e,t){const{falseEasting:i,falseNorthing:o,centralMeridian:n,latitudeOfOrigin:s}=t,r=[e,`+proj=tmerc ${s?`+lat_0=${s}`:""} ${n?`+lon_0=${n}`:""} +k=1 ${i?`+x_0=${i}`:""} ${o?`+y_0=${o}`:""} +ellps=GRS80 +units=m +no_defs`];proj4.defs([r])}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Common").CoordinateConvertor=g;const u=Object.freeze({EPSG_4214:"EPSG:4214",EPSG_4326:"EPSG:4326",EPSG_4490:"EPSG:4490",EPSG_4610:"EPSG:4610",EPSG_4513:"EPSG:4513",EPSG_4514:"EPSG:4514",EPSG_4515:"EPSG:4515",EPSG_4516:"EPSG:4516",EPSG_4517:"EPSG:4517",EPSG_4518:"EPSG:4518",EPSG_4519:"EPSG:4519",EPSG_4520:"EPSG:4520",EPSG_4521:"EPSG:4521",EPSG_4522:"EPSG:4522",EPSG_4523:"EPSG:4523",EPSG_4524:"EPSG:4524",EPSG_4525:"EPSG:4525",EPSG_4526:"EPSG:4526",EPSG_4527:"EPSG:4527",EPSG_4528:"EPSG:4528",EPSG_4529:"EPSG:4529",EPSG_4530:"EPSG:4530",EPSG_4531:"EPSG:4531",EPSG_4532:"EPSG:4532",EPSG_4533:"EPSG:4533",EPSG_4534:"EPSG:4534",EPSG_4535:"EPSG:4535",EPSG_4536:"EPSG:4536",EPSG_4537:"EPSG:4537",EPSG_4538:"EPSG:4538",EPSG_4539:"EPSG:4539",EPSG_4540:"EPSG:4540",EPSG_4541:"EPSG:4541",EPSG_4542:"EPSG:4542",EPSG_4543:"EPSG:4543",EPSG_4544:"EPSG:4544",EPSG_4545:"EPSG:4545",EPSG_4546:"EPSG:4546",EPSG_4547:"EPSG:4547",EPSG_4548:"EPSG:4548",EPSG_4549:"EPSG:4549",EPSG_4550:"EPSG:4550",EPSG_4551:"EPSG:4551",EPSG_4552:"EPSG:4552",EPSG_4553:"EPSG:4553",EPSG_4554:"EPSG:4554",EPSG_3857:"EPSG:3857",EPSG_3395:"EPSG:3395"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Common").Coordinates=u,e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Common").Direction=Object.freeze({Horizontal:"Horizontal",Vertical:"Vertical"}),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Authentication").AuthenticationConfig=function(){return{APIHost:d.APIHost,viewToken:null,enableStorage:!1}};class p extends class{constructor(e){this.indexedDB=window.indexedDB||window.webkitIndexedDB||window.mozIndexedDB||window.msIndexedDB,this.indexedDB||console.log("IndexedDB not supported"),this._db=null,this._opt=e}open(e,t){const i=e||this._opt.name,o=t||this._opt.version||1,n=this.indexedDB.open(i,o);return new Promise(((e,t)=>{n.onsuccess=t=>{this._db=n.result,e(this._db)},n.onupgradeneeded=e=>{let t=this._db=e.target.result;(this._opt.storeList||[]).forEach((e=>!t.objectStoreNames.contains(e)&&t.createObjectStore(e)))},n.onerror=e=>{t(e)}}))}getDB(){return new Promise(((e,t)=>{this._db?e(this._db):this.open().then(e).catch(t)}))}addObject(e,t,i){return new Promise(((o,n)=>{this.getDB().then((s=>{const r=s.transaction(e,"readwrite");r.objectStore(e).put(t,i).onsuccess=e=>{o(e.target.result)},r.onerror=e=>{n(e)}})).catch(n)}))}getObject(e,t){return new Promise(((i,o)=>{this.getDB().then((n=>{const s=n.transaction(e,"readonly");s.objectStore(e).get(t).onsuccess=e=>{let t=e.target.result;t?i(t):o(e)},s.onerror=e=>{o(e)}})).catch(o)}))}deleteObject(e,t){return new Promise(((i,o)=>{this.getDB().then((n=>{const s=n.transaction(e,"readwrite");s.objectStore(e).delete(t).onsuccess=e=>{i(e.target.result)},s.onerror=e=>{o(e)}})).catch(o)}))}clearStore(e){return new Promise(((t,i)=>{this.getDB().then((o=>{const n=o.transaction(e,"readwrite");n.objectStore(e).clear().onsuccess=e=>{t(e.target.result)},n.onerror=e=>{i(e)}})).catch(i)}))}deleteDB(e){return new Promise((t=>{this.indexedDB.deleteDatabase(e),t()}))}getAllKeys(e){return new Promise(((t,i)=>{this.getDB().then((o=>{const n=o.transaction(e,"readonly");n.objectStore(e).getAllKeys().onsuccess=e=>t(e.target.result),n.onerror=i})).catch(i)}))}getAll(e){return new Promise(((t,i)=>{this.getDB().then((o=>{const n=o.transaction(e,"readonly");n.objectStore(e).getAll().onsuccess=e=>t(e.target.result),n.onerror=i})).catch(i)}))}}{constructor(){super({name:"Bf_Loader",version:1,storeList:["d","t"]})}getDatabagInfo(e,t){return new Promise(((i,o)=>{t?this.getObject("d",e).then((e=>this.addTemp(e,t).then((()=>i(e))).catch(o))).catch(o):this.getObject("d",e).then(i).catch(o)}))}addDatabagInfo(e,t){return new Promise(((i,o)=>{const n=e.modelId,s=()=>Promise.all([this.addObject("d",e,n),this.addTemp(e,t)]).then(i).catch(o);this.getDatabagInfo(n).then((t=>{t.databagId!==e.databagId&&this.deleteDB(`Bf_${data.databagId}`),s()})).catch((()=>{s()}))}))}deleteDatabagInfo(e){return new Promise(((t,i)=>{this.deleteObject("d",e).then(t).catch(i)}))}addTemp(e,t){return new Promise(((i,o)=>{this.clearStore("t").then((()=>{this.addObject("t",e,t).then(i).catch(o)})).catch(o)}))}getTemp(e){return new Promise(((t,i)=>{this.getObject("t",e).then(t).catch(i)}))}deleteStorageByModelId(e){return new Promise((t=>{this.getDatabagInfo(e).then((i=>{let o="gisView"===i.renderType?`Bg_${i.modelId}`:`Bf_${i.databagId}`;Promise.allSettled([this.deleteDB(o),this.deleteDatabagInfo(e)]).then(t)})).catch(t)}))}getStoredModelIds(){return this.getAllKeys("d")}getStoredModelInfo(){return new Promise(((e,t)=>{this.getAll("d").then((t=>{let i=t.map((e=>{let{modelId:t,name:i,renderType:o}=e;return{modelId:t,name:i,type:o}}));e(i)})).catch(t)}))}}!function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Authentication");e.Web;let i=e.Web.Lang.Utility.HttpRequest;var o=function(e){this.config=e};o.prototype.authenticate=function(e,t){let o=this,n=o.config;const s=()=>{const s=o.config.securityApi;let r=`${n.APIHost}/inside/databag`,a="post",l=n.viewToken;s||(r=`${r}?viewToken=${n.viewToken}`,a="get",l=void 0),i.ajax({url:r,type:a,data:l,headers:{"Content-type":"text/plain;charset=UTF-8"},async:!0,success:function(i){var s=JSON.parse(i);"success"==s.code?(s.data.viewToken=n.viewToken,o.data=s.data,e&&e(s.data)):t&&t(s)},failure:e=>{var i=JSON.parse(e);t&&t(i)}})};n.enableStorage?(new p).getTemp(n.viewToken).then((t=>{t.viewToken=n.viewToken,o.data=t,e&&e(t)})).catch(s):s()},t.AuthenticationManager=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data").MetaDataManagerConfig=function(){return{APIHost:d.APIHost,resourceHost:d.resourceHost,viewToken:null,modelId:null,modelType:"singleModel",dataEnvType:d.dataEnvType||"BIMFACE"}};var A,m,w,C,f=window.CLOUD=window.CLOUD||{};!function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data");var i=e.Web.Lang.Utility.HttpRequest.promiseJSONRequest,o=e.Web.Lang.Utility.HttpRequest.ajax,n={getAreas:function(e){var t=`${e.relativeUrl}/data/spaces.json`;return i(t)},getMepSystem:function(e,t){if("integrateModel"==t.modelType)var o=`${t.relativeUrl}/metadata/${e}/mepsystem.json`;else o=`${t.relativeUrl}/metadata/mepsystem.json`;return i(o,"noCode")},getTreeOldData:function(e){if("singleModel"==e.modelType)var t=`${e.relativeUrl}/data/tree.json`;else t=`${e.relativeUrl}/data/specialtyTree.json`;return i(t)},getTreeNewData:function(e){var t=`${e.relativeUrl}/data/tree.json`;return i(t)},getObjectData:function(t,i){return new Promise((function(o,n){if(i._objectData)o(i._objectData);else{let n=new e.Bimface.Data.ObjectPropertyManager(`${t.relativeUrl}/property`);n.load((function(){i._objectData=n,o(i._objectData)}))}}))},getMaterialProperty:function(e,t){var o=t.split(".");if("singleModel"==e.modelType)var n=`${e.relativeUrl}/metadata/materialmap.json`;else n=`${e.relativeUrl}/metadata/${o[0]}/materialmap.json`;return i(n,"noCode")},getMaterialPropertyItem:function(e,t,o){var n=t.split("."),s="singleModel"==e.modelType?`${e.relativeUrl}/metadata/materials/${o}.json`:`${e.relativeUrl}/metadata/${n[0]}/materials/${o}.json`;return i(s,"noCode")},getAreaProperty:function(e,t){var o=e.split("_");if("singleModel"==t.modelType)var n=`${t.relativeUrl}/metadata/areas.json`;else n=`${t.relativeUrl}/metadata/${o[0]}/areas.json`;return i(n,"noCode")},getRoomProperty:function(e,t){var o=e.split("_");if("singleModel"==t.modelType)var n=`${t.relativeUrl}/metadata/rooms.json`;else n=`${t.relativeUrl}/metadata/${o[0]}/rooms.json`;return i(n,"noCode")},getFiles:function(e){var t=`${e.relativeUrl}/data/files.json`;return i(t)},getDrawingsheets:function(e,t){var o=`${e.relativeUrl}/metadata/drawings.json`;return i(o,"noCode")},getMapInfo:function(e){this._opt;var t={},i=[];this._helper;"integrateModel"==e.modelType?(t.Grids=[],o({url:`${e.relativeUrl}/data/files.json`,async:!1,success:function(i){JSON.parse(i).data.forEach((i=>{o({url:`${e.relativeUrl}/metadata/${i.fileId}/axisgrids/grids.json.gz`,async:!1,success:function(e){var i=f.AxisGridManager.adaptGridData(JSON.parse(e));t.Grids.push(...i.grids)}})}))}})):o({url:`${e.relativeUrl}/metadata/axisgrids/grids.json.gz`,async:!1,success:function(e){var i=f.AxisGridManager.adaptGridData(JSON.parse(e));t.Grids=i.grids}}),o({async:!1,url:`${e.relativeUrl}/metadata/levels.json`,success:function(e){t.Levels=JSON.parse(e).levels}}),o({async:!1,url:`${e.relativeUrl}/resource/v3/maps/output.json`,dataType:"text",success:function(t){var o=JSON.parse(t);for(var n in o){var s=o[n];null==s.id&&(s.id=n),s.path=`${e.relativeUrl}/resource/v3/maps/${s.id}.png`,s.name=n,i.push(s)}}});let n=t.Levels;if(n){let e=e=>{let t=!1;return i.some((i=>(t=i.id.toString()===e.toString(),t))),t};for(let t=0;t<n.length;t++)e(n[t].id)||(n.splice(t,1),t--)}return{axisGrid:t,floors:i}},getMapInfoAsync:function(e){return new Promise(((t,o)=>{let n={Grids:[]},s=[];const r=i=>{for(var o in i){var r=i[o];null==r.id&&(r.id=o),r.path=`${e.relativeUrl}/resource/v3/maps/${r.id}.png`,r.name=o,s.push(r)}let a=n.Levels;if(a){let e=e=>{let t=!1;return s.some((i=>(t=i.id.toString()===e.toString(),t))),t};for(let t=0;t<a.length;t++)e(a[t].id)||(a.splice(t,1),t--)}t({axisGrid:n,floors:s})};"integrateModel"!=e.modelType?Promise.allSettled([i(`${e.relativeUrl}/metadata/axisgrids/grids.json.gz`,"noCode"),i(`${e.relativeUrl}/metadata/levels.json`,"noCode"),i(`${e.relativeUrl}/resource/v3/maps/output.json`,"noCode")]).then((e=>{let[t,i,o]=e;var s=f.AxisGridManager.adaptGridData(t.value);n.Grids=s.grids,n.Levels=i.value.levels,r(o.value)})).catch(o):i(`${e.relativeUrl}/data/files.json`,"noCode").then((t=>{Promise.allSettled([i(`${e.relativeUrl}/metadata/levels.json`,"noCode"),i(`${e.relativeUrl}/resource/v3/maps/output.json`,"noCode"),...t.data.map((t=>i(`${e.relativeUrl}/metadata/${t.fileId}/axisgrids/grids.json.gz`,"noCode")))]).then((e=>{let[t,i,...o]=e;o.forEach((e=>{if(e.value){var t=f.AxisGridManager.adaptGridData(e.value);n.Grids.push(...t.grids)}})),n.Levels=t.value.levels,r(i.value)})).catch(o)}))}))},getLevels:function(e,t){let o=`${t.relativeUrl}/metadata/levels.json`;return e&&(o=`${t.relativeUrl}/metadata/${e}/levels.json`),i(o,"noCode")},getFloors:function(e){let t=`${e.relativeUrl}/data/spaces.json`;return i(t,"noCode")},getViews:function(e){var t={data:null,resourceHost:"./"};return o({url:`${e.relativeUrl}/metadata/views.json`,async:!1,success:function(e){t.data=e}}),t},getViewsById:function(e){var t={data:null,resourceHost:"./"};return o({url:`${e.relativeUrl}/metadata/${e.fileId}/views.json`,async:!1,success:function(e){t.data=e}}),t},getViewData:function(e){let t=`${e.relativeUrl}/metadata/viewStates/${e.viewId}.json`;return i(t,"noCode")},getRooms:function(e){let t=`${e.resourceHost}/${e.databagId}/metadata/rooms.json`;return i(t,"noCode")},getRoomBoundary:function(e,t){let o=`${t.resourceHost}/${t.databagId}/metadata/roomsboundary/${e}.json`;return i(o,"noCode")},getAllDrawingsheets:function(e){var t=`${e.relativeUrl}/metadata/drawings.json`;return i(t,"noCode")},decodeElementId:function(e,t){if(/^[0-9]*\.*[0-9]*$/.test(t))return Promise.resolve(t);var i=t.split("."),o=i[0];return this.getFiles(e).then((function(e){for(let t of e)for(let e of t.linkedBy)if(e==o)return t.fileId+"."+i[1]})).then((function(e){return e}))},getCategoryVisibility:function(e){var t=`${e.relativeUrl}/metadata/categoryVisibility.json`;return i(t,"noCode")},getText:function(e){var t=`${e.relativeUrl}/metadata/text.json`;return i(t,"noCode")},getSegmentGroups:function(e){var t=`${e.APIHost}/data/v2/integrations/${e.modelId}/segmentGroups?view_token=${e.viewToken}`;return i(t,"noCode")},getSegmentFromGroups:function(e,t){var o=`${e.APIHost}/data/v2/integrations/${e.modelId}/segmentGroups/${t}/segments?view_token=${e.viewToken}`;return i(o,"noCode")},getSegmentTree:function(e){var t=`${e.APIHost}/data/v2/integrations/${e.modelId}/segmentTree?view_token=${e.viewToken}`;return i(t,"noCode")},getSegmentById:function(e,t){var o=`${e.APIHost}/data/v2/integrations/${e.modelId}/segments/${t}?view_token=${e.viewToken}`;return i(o,"noCode")},getSegmentElementIds:function(e,t){var o=`${e.APIHost}/data/v2/integrations/${e.modelId}/segments/${t}/elementIds?view_token=${e.viewToken}`;return i(o,"noCode")},getPartialElementsMetadata:function(e,t){var o=`${e.relativeUrlWithoutDatabagId}/${t}/metadata/partial_elements_metadata.json`;return i(o,"noCode")},getPartialElementsMetadataFile:function(e,t){return`${e.relativeUrlWithoutDatabagId}/${t}/metadata/partial_elements_metadata.json`},getDatabagResource:function(e,t){return`${e.relativeUrlWithoutDatabagId}/${t}/resource/v3/model`},getModelGroup:function(e,t){var o=`${e.relativeUrl}/metadata/modelSetsTree.json`;return i(o,"noCode")},getManifest:function(e){var t=`${e.relativeUrl}/manifest.json`;return i(t,"noCode")},getNestedComponents:function(e){var t=`${e.relativeUrl}/metadata/nestedComponents.json`;return i(t,"noCode")},getObjectMap:function(e){var t=`${e.relativeUrl}/metadata/objectMap.json.gz`;return i(t,"noCode")},getWalkthrough:function(e){var t=`${e.relativeUrl}/data_ext/walkthrough.json`;return i(t,"noCode")},getProjectInfo:function(e){var t=`${e.relativeUrl}/metadata/project.json`;return i(t,"noCode")},getModelInfo:function(e){var t=`${e.relativeUrl}/resource/v3/model/config.json`;return i(t,"noCode")},getBimtileInfo:function(e,t){return i(`${e}/resource/v3/model/${t}`,"noCode")},getFeatureStyle:function(e){var t=`${e.relativeUrl}/resource/v3/model/featureStyle.json`;return i(t,"noCode")},getDimensions:function(e,t){let o=`${t.relativeUrl}/metadata/ModelDimensions.json`;return"integrateModel"==t.modelType&&(o=`${t.relativeUrl}/metadata/${e}/ModelDimensions.json`),i(o,"noCode")}};t.OfflineDataProdiver=n}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data.OfflineDataProdiver");function o(e){this._config=e}o.prototype={getComponentProperty:function(e,t,o){var n=this;if(!e)return console.warn("elementId must not be empty!."),void(o&&o());var s=null;i.getObjectData(this._config,this).then((function(t){return s=t,i.decodeElementId(n._config,e)})).then((function(e){var i=s.getBoundingBox(e),o=s.getElementProperties(e);let n={};for(var r of o[0].items)n[r.key]=r.value;t({boundingBox:i,elementId:n.ID,familyGuid:"",guid:n.GUID,name:n.familyType,properties:o})}))},getMaterialProperty:function(e,t,o){var n=this;i.decodeElementId(n._config,e).then((function(e){i.getMaterialProperty(n._config,e).then((function(s){var r=e.split("."),a=[];if(s[r="singleModel"==n._config.modelType?r[0]:r[1]]){for(var l of s[r])a.push(i.getMaterialPropertyItem(n._config,e,l));Promise.all(a).then((e=>{t&&t(e)}))}else o&&o(s)}))}))},getAreas:function(e,t){i.getAreas(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getMepSystem:function(e,t,o){var n=this;i.getMepSystem(e,n._config).then((function(e){t&&t(e,n._config.modelType)})).catch((function(e){o&&o(e)}))},getTreeOldData:function(e,t){var o=this;i.getTreeOldData(o._config).then((function(t){e&&e(t,o._config.modelType,"old")})).catch((function(e){t&&t(e)}))},getTreeNewData:function(e,t){var o=this;i.getTreeNewData(o._config).then((function(t){var i=!0,n=e=>{"familyType"===e.type?e.items&&0!==e.items.length||(i=!1):e.items&&e.items.length>0&&n(e.items[0])};t&&t.length>0&&n(t[0]),e&&e(t,o._config.modelType,i?void 0:"old")})).catch((function(e){t&&t(e)}))},getRoomProperty:function(e,t,o){var n=this;i.getRoomProperty(e,this._config).then((function(o){var s="singleModel"==n._config.modelType?e:e.split("_")[1];for(var r of o)if(r.id==s)return void i.getObjectData(n._config,n).then((function(i){e="singleModel"==n._config.modelType?e:`${e.split("_")[0]}.${e.split("_")[1]}`;var o=i.getElementProperties(e);o.splice(0,1),r.properties=o,t&&t(r)}))}))},getAreaProperty:function(e,t,o){var n=this;i.getAreaProperty(e,this._config).then((function(o){var s="singleModel"==n._config.modelType?e:e.split("_")[1];for(var r of o.areas)r.id==s&&i.getObjectData(n._config,n).then((function(i){e="singleModel"==n._config.modelType?e:`${e.split("_")[0]}.${e.split("_")[1]}`;var o=i.getElementProperties(e);o.splice(0,1),r.properties=o,t&&t(r)}))}))},getModelGroup:function(e,t){i.getModelGroup(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getFiles:function(e,t){i.getFiles(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getLinkGraph:function(e,t){i.getFiles(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getDrawingsheets(e,t,o,n){var s=this;i.getDrawingsheets(this._config,e).then((function(e){o&&o(e,s._config.modelType,s._config.dataEnvType)}))},getFloors:function(e,t){var o=this;i.getFloors(this._config).then((function(t){for(let e of t.data)e.miniMap=`${o._config.databagId}/resource/v3/maps/${e.name}.png`;e&&e(t.data)}))},getElementByConditions:function(e,t,o){var n=this;i.getObjectData(this._config,n).then((function(i){o&&o(i.getElementByConditions(e,t,n._config))}))},getMapInfo:function(e){var t=i.getMapInfo(this._config);e&&e(t)},getMapInfoAsync:function(e,t){i.getMapInfoAsync(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getLevels:function(e,t,o){i.getLevels(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getViews:function(e){var t=i.getViews(this._config);e&&e(t)},getViewsById:function(e,t){var o=this._config;o.fileId=e;var n=i.getViewsById(o);t&&t(n)},getViewData:function(e,t){var o=Object.assign({},this._config);o.viewId=e,i.getViewData(o).then((function(e){"[object Function]"===Object.prototype.toString.call(t)&&t(e)})).catch((function(e){"[object Function]"===Object.prototype.toString.call(failure)&&failure(e)}))},getRooms:function(e,t){i.getRooms(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getRoomBoundary:function(e,t,o){i.getRoomBoundary(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getAllDrawingsheets:function(e,t,o,n){var s=this;i.getAllDrawingsheets(this._config).then((function(e){o&&o(e,s._config.modelType)})).catch((function(e){o&&o({drawingList:[]},s._config.modelType)}))},getCategoryVisibility:function(e,t){i.getCategoryVisibility(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getText:function(e,t){i.getText(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getSegmentGroups:function(e,t){i.getSegmentGroups(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getSegmentFromGroups:function(e,t,o){i.getSegmentFromGroups(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getSegmentTree:function(e,t){i.getSegmentTree(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getSegmentById:function(e,t,o){i.getSegmentById(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getSegmentElementIds:function(e,t,o){i.getSegmentElementIds(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getPartialElementsMetadata:function(e,t,o){i.getPartialElementsMetadata(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getPartialElementsMetadataFile:function(e){return i.getPartialElementsMetadataFile(this._config,e)},getDatabagResource:function(e){return i.getDatabagResource(this._config,e)},getManifest:function(e,t){i.getManifest(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getNestedComponents:function(e,t){i.getNestedComponents(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getObjectMap:function(e,t){i.getObjectMap(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getWalkthrough:function(e,t){i.getWalkthrough(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getProjectInfo:function(e,t){var o=this;i.getProjectInfo(o._config).then((function(t){e&&e(t,o._config.modelType)})).catch((function(e){t&&t(e)}))},getModelInfo:function(e,t){i.getModelInfo(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getBimtileInfo:function(e,t,o,n){const s=`${this._config.relativeUrlWithoutDatabagId}/${e}`;i.getBimtileInfo(s,t).then((function(e){o&&o(e)})).catch((function(e){n&&n(e)}))},getFeatureStyle:function(e,t){i.getFeatureStyle(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getDimensions:function(e,t,o){i.getDimensions(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))}},t.OfflineDataManager=o}(),A=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),m=(t,i)=>e.Web.Lang.Utility.HttpRequest.promiseJSONRequest(t,i,f.EnableStorage),w=e.Web.Lang.Utility.HttpRequest.ajax,C={getMepSystem:function(e,t){if("integrateModel"==t.modelType)var i=`${t.resourceHost}/${t.databagId}/metadata/${e}/mepsystem.json`;else i=`${t.resourceHost}/${t.databagId}/metadata/mepsystem.json`;return m(i,"noCode")},getTreeNewData:function(e){var t=`${e.resourceHost}/${e.databagId}/data/tree.json`;return m(t)},getTreeOldData:function(e){if("singleModel"==e.modelType)var t=`${e.APIHost}/data/v2/files/${e.modelId}/tree?v=2.0&view_token=${e.viewToken}`;else t=`${e.APIHost}/data/v2/integrations/${e.modelId}/tree?view_token=${e.viewToken}&treeType=specialty`;return m(t)},getDrawingList:function(e){return e=e,{fromSingleModel:function(t,i){var o=`${e.APIHost}/data/v2/files/${t}/drawingsheets?elementId=${i}&view_token=${e.viewToken}`;return m(o)},fromIntegrateModel:function(t,i,o){var n=`${e.APIHost}/data/v2/integrations/${t}/drawingsheets?fileIdHash=${i}&elementId=${o}&view_token=${e.viewToken}`;return m(n)}}},getAreas:function(e){if("singleModel"==e.modelType)var t=`${e.APIHost}/data/v2/files/${e.modelId}/floors?includeRoom=true&includeArea=true&view_token=${e.viewToken}`;else t=`${e.APIHost}/data/v2/integrations/${e.modelId}/floors?includeRoom=true&includeArea=true&view_token=${e.viewToken}`;return m(t)},getRoomProperty:function(e,t){if("singleModel"==t.modelType)var i=`${t.APIHost}/data/v2/files/${t.modelId}/rooms/${e}?view_token=${t.viewToken}`;else i=`${t.APIHost}/data/v2/integrations/${t.modelId}/rooms/${e}?view_token=${t.viewToken}`;return m(i)},getAreaProperty:function(e,t){if("singleModel"==t.modelType)var i=`${t.APIHost}/data/v2/files/${t.modelId}/areas/${e}?view_token=${t.viewToken}`;else i=`${t.APIHost}/data/v2/integrations/${t.modelId}/areas/${e}?view_token=${t.viewToken}`;return m(i)},getObjectData:function(e,t){if("singleModel"==e.modelType)var i=`${e.APIHost}/data/v2/files/${e.modelId}/elements/${t}?view_token=${e.viewToken}`;else if("integrateModel"==e.modelType){var o=t.split(".");i=1==o.length?`${e.APIHost}/data/v2/integrations/${e.modelId}/elements/${t}?view_token=${e.viewToken}`:`${e.APIHost}/data/v2/integrations/${e.modelId}/files/${o[0]}/elements/${o[1]}?view_token=${e.viewToken}`}else i=`${e.APIHost}/data/v2/sections/${e.modelId}/elements/${t}?view_token=${e.viewToken}`;return m(i)},getFamilyData:function(e,t){let i=`${e.APIHost}/data/v2/rfaFiles/${e.modelId}/familyTypes/${t}?view_token=${e.viewToken}`;return m(i)},getEditedObjectData:function(e,t){if("singleModel"==e.modelType)var i=`${e.APIHost}/data/v2/files/${e.modelId}/elements/${t}?includeOverrides=true&view_token=${e.viewToken}`;else{var o=t.split(".");i=1==o.length?`${e.APIHost}/data/v2/integrations/${e.modelId}/elements/${t}?includeOverrides=true&view_token=${e.viewToken}`:`${e.APIHost}/data/v2/integrations/${e.modelId}/files/${o[0]}/elements/${o[1]}?includeOverrides=true&view_token=${e.viewToken}`}return m(i)},getFiles:function(e){var t=`${e.APIHost}/data/v2/integrations/${e.modelId}/files?includeDrawingSheet=true&view_token=${e.viewToken}`;return m(t)},getMaterialOverride:function(e,t,i){t=null==t?i.viewToken:t,e=null==e?i.modelId:e;var o=`${i.APIHost}/data/v2/materialoverridesets/${e}?materialFormat=FULL_INSTANCE_JSON&sort=true&view_token=${t}&compact=true`;return m(o)},getLinkGraph:function(e){var t=`${e.APIHost}/data/v2/integrations/${e.modelId}/linkGraph?view_token=${e.viewToken}`;return m(t)},getMaterialProperty:function(e,t){if(t){var i=t.split(".");if("singleModel"==e.modelType)var o=`${e.APIHost}/data/v2/files/${e.modelId}/elements/${i[0]}/materials?view_token=${e.viewToken}`;else o="integrateModel"==e.modelType?`${e.APIHost}/data/v2/integrations/${e.modelId}/files/${i[0]}/elements/${i[1]}/materials?view_token=${e.viewToken}`:`${e.APIHost}/data/v2/sections/${e.modelId}/elements/${t}/materials?view_token=${e.viewToken}`;return m(o)}failure&&failure({})},getDrawingsheets:function(e,t){var i=`${e.APIHost}/data/v2/files/${t}/drawingsheets?fileId=${t}&view_token=${e.viewToken}`;return m(i)},getAllDrawingsheets:function(e,t){var i=`${e.resourceHost}/${e.integrateDrawings&&e.integrateDrawings.databagId||e.databagId}/metadata/drawings.json`;return m(i,"noCode")},getLinksJson:function(e,t){var i=`${e.resourceHost}/${e.databagId}/metadata/links.json`;return m(i,"noCode")},getFloors:function(e){if("singleModel"==e.modelType)var t=`${e.APIHost}/data/v2/files/${e.modelId}/floors?view_token=${e.viewToken}`;else t=`${e.APIHost}/data/v2/integrations/${e.modelId}/floors?view_token=${e.viewToken}`;return m(t)},getElementByConditions:function(e,t,i){var o="";for(let e in i)o+=`&${e}=${i[e]}`;if("singleModel"==e.modelType)var n=`${e.APIHost}/data/element/id?fileId=${t}${o}&view_token=${e.viewToken}`;else n=`${e.APIHost}/data/v2/integrations/${t}/elementIds?view_token=${e.viewToken}${o}`;return m(n)},getComponentsByConditions:function(e,t,i,o,n){var s={targetIds:[String(t)],targetType:"integrateModel"===e.modelType?"integration":"file",query:{boolOr:[]}};for(let e=0;e<i.length;e++){let t=i[e],o={boolAnd:[]};for(let e in t)o.boolAnd.push({match:{["levelName"===e?"floor":e]:t[e]}});1==o.boolAnd.length&&o.boolAnd.push(o.boolAnd[0]),s.query.boolOr.push(o)}1==s.query.boolOr.length&&s.query.boolOr.push(s.query.boolOr[0]);var r=`${e.APIHost}/data/v2/query/elementIds?view_token=${e.viewToken}`;return m({url:r,type:"post",data:JSON.stringify(s),headers:{"Content-Type":"application/json"}})},getMaterialJson:function(e,t,i){return m({url:`https://apigate.glodon.com/ggpassets/materiallibrary/libraries/${t}/materials?materialIds=${i}&instance=true`,type:"get",data:null,headers:{Authorization:"Bearer "+e,"Content-Type":"application/json",engine:"COMMON"}})},getTextureJson:function(e,t,i){return m({url:`https://apigate.glodon.com/ggpassets/materiallibrary/libraries/${t}/resources/${i}`,type:"get",data:null,headers:{Authorization:"Bearer "+e,"Content-Type":"application/json",engine:"GGP"}})},getMapInfo:function(e){this._opt;var t={},i=[];this._helper,"integrateModel"==e.modelType?(t.Grids=[],w({url:`${e.APIHost}/data/v2/integrations/${e.modelId}/files?includeDrawingSheet=true&view_token=${e.viewToken}`,async:!1,success:function(i){JSON.parse(i).data.forEach((i=>{w({url:`${e.resourceHost}/${e.databagId}/metadata/${i.fileId}/axisgrids/grids.json.gz`,async:!1,success:function(e){var i=f.AxisGridManager.adaptGridData(JSON.parse(e));t.Grids.push(...i.grids)}})}))}})):w({url:`${e.resourceHost}/${e.databagId}/metadata/axisgrids/grids.json.gz`,async:!1,success:function(e){var i=f.AxisGridManager.adaptGridData(JSON.parse(e));t.Grids=i.grids}}),w({async:!1,url:`${e.resourceHost}/${e.databagId}/metadata/levels.json`,success:function(e){t.Levels=JSON.parse(e).levels}}),w({async:!1,url:`${e.resourceHost}/${e.databagId}/resource/model/maps/output.json`,dataType:"text",success:function(t){var o=JSON.parse(t);for(var n in o){var s=o[n];null==s.id&&(s.id=n),s.path=`${e.resourceHost}/${e.databagId}/resource/model/maps/${s.id}.png`,s.name=n,i.push(s)}}});let o=t.Levels;if(o){let e=e=>{let t=!1;return i.some((i=>(t=i.id.toString()===e.toString(),t))),t};for(let t=0;t<o.length;t++)e(o[t].id)||(o.splice(t,1),t--)}return{axisGrid:t,floors:i}},getMapInfoAsync:function(e){return new Promise(((t,i)=>{let o={Grids:[]},n=[];const s=i=>{for(var s in i){var r=i[s];null==r.id&&(r.id=s),r.path=`${e.resourceHost}/${e.databagId}/resource/model/maps/${r.id}.png`,r.name=s,n.push(r)}let a=o.Levels;if(a){let e=e=>{let t=!1;return n.some((i=>(t=i.id.toString()===e.toString(),t))),t};for(let t=0;t<a.length;t++)e(a[t].id)||(a.splice(t,1),t--)}t({axisGrid:o,floors:n})};"integrateModel"!=e.modelType?Promise.allSettled([m(`${e.resourceHost}/${e.databagId}/metadata/axisgrids/grids.json.gz`,"noCode"),m(`${e.resourceHost}/${e.databagId}/metadata/levels.json`,"noCode"),m(`${e.resourceHost}/${e.databagId}/resource/model/maps/output.json`,"noCode")]).then((e=>{let[t,i,n]=e;var r=f.AxisGridManager.adaptGridData(t.value);o.Grids=r.grids,o.Levels=i.value.levels,s(n.value)})).catch(i):m(`${e.APIHost}/data/v2/integrations/${e.modelId}/files?includeDrawingSheet=true&view_token=${e.viewToken}`,"noCode").then((t=>{Promise.allSettled([m(`${e.resourceHost}/${e.databagId}/metadata/levels.json`,"noCode"),m(`${e.resourceHost}/${e.databagId}/resource/model/maps/output.json`,"noCode"),...t.data.map((t=>m(`${e.resourceHost}/${e.databagId}/metadata/${t.fileId}/axisgrids/grids.json.gz`,"noCode")))]).then((e=>{let[t,i,...n]=e;n.forEach((e=>{if(e.value){var t=f.AxisGridManager.adaptGridData(e.value);o.Grids.push(...t.grids)}})),o.Levels=t.value.levels,s(i.value)})).catch(i)}))}))},getLevels:function(e,t){let i=`${t.resourceHost}/${t.databagId}/metadata/levels.json`;return e&&(i=`${t.resourceHost}/${t.databagId}/metadata/${e}/levels.json`),m(i,"noCode")},getViews:function(e){var t={data:null,resourceHost:e.resourceHost};return w({url:`${e.resourceHost}/${e.databagId}/metadata/views.json`,async:!1,success:function(e){t.data=e}}),t},getViewsById:function(e){var t={data:null,resourceHost:e.resourceHost};return w({url:`${e.resourceHost}/${e.databagId}/metadata/${e.fileId}/views.json`,async:!1,success:function(e){t.data=e}}),t},getViewData:function(e){let t=`${e.resourceHost}/${e.databagId}/metadata/viewStates/${e.viewId}.json`;return m(t,"noCode")},getRooms:function(e){let t=`${e.resourceHost}/${e.databagId}/metadata/rooms.json`;return m(t,"noCode")},getRoomBoundary:function(e,t){let i=`${t.resourceHost}/${t.databagId}/metadata/roomsboundary/${e}.json`;return m(i,"noCode")},getCategoryVisibility:function(e){var t=`${e.resourceHost}/${e.databagId}/metadata/categoryVisibility.json`;return m(t,"noCode")},getText:function(e){var t=`${e.resourceHost}/${e.databagId}/metadata/text.json`;return m(t,"noCode")},getScheduleList:function(e){var t=`${e.resourceHost}/${e.databagId}/metadata/schedule.json`;return m(t,"noCode")},getScheduleById:function(e,t){var i=`${t.resourceHost}/${t.databagId}/metadata/schedule/${e}.txt`;return m(i,"noCode")},getSegmentGroups:function(e){var t=`${e.APIHost}/data/v2/integrations/${e.modelId}/segmentGroups?view_token=${e.viewToken}`;return m(t,"noCode")},getSegmentFromGroups:function(e,t){var i=`${e.APIHost}/data/v2/integrations/${e.modelId}/segmentGroups/${t}/segments?view_token=${e.viewToken}`;return m(i,"noCode")},getSegmentTree:function(e){var t=`${e.APIHost}/data/v2/integrations/${e.modelId}/segmentTree?view_token=${e.viewToken}`;return m(t,"noCode")},getSegmentById:function(e,t){var i=`${e.APIHost}/data/v2/integrations/${e.modelId}/segments/${t}?view_token=${e.viewToken}`;return m(i,"noCode")},getSegmentElementIds:function(e,t){var i=`${e.APIHost}/data/v2/integrations/${e.modelId}/segments/${t}/elementIds?view_token=${e.viewToken}`;return m(i,"noCode")},getPartialElementsMetadata:function(e,t){var i=`${e.resourceHost}/${t}/metadata/partial_elements_metadata.json`;return m(i,"noCode")},getPartialElementsMetadataFile:function(e,t){return`${e.resourceHost}/${t}/metadata/partial_elements_metadata.json`},getDatabagResource:function(e,t){return`${e.resourceHost}/${t}/resource/v3/model`},getModelGroup:function(e,t){var i=`${e.resourceHost}/${e.databagId}/metadata/modelSetsTree.json`;return m(i,"noCode")},getManifest:function(e){var t=`${e.resourceHost}/${e.databagId}/manifest.json`;return m(t,"noCode")},getNestedComponents:function(e){var t=`${e.relativeUrl}/metadata/nestedComponents.json`;return m(t,"noCode")},getObjectMap:function(e){var t=`${e.relativeUrl}/metadata/objectMap.json.gz`;return m(t,"noCode")},getWalkthrough:function(e){var t=`${e.relativeUrl}/data_ext/walkthrough.json`;return m(t,"noCode")},getProjectInfo:function(e){var t=`${e.resourceHost}/${e.databagId}/metadata/project.json`;return m(t,"noCode")},getModelInfo:function(e){var t=`${e.relativeUrl}/resource/v3/model/config.json`;return m(t,"noCode")},getBimtileInfo:function(e,t){return m(`${e}/resource/v3/model/${t}`,"noCode")},getFeatureStyle:function(e){var t=`${e.relativeUrl}/resource/v3/model/featureStyle.json`;return m(t,"noCode")},getDimensions:function(e,t){let i=`${t.relativeUrl}/metadata/ModelDimensions.json`;return"integrateModel"==t.modelType&&(i=`${t.relativeUrl}/metadata/${e}/ModelDimensions.json`),m(i,"noCode")}},A.OnlineDataProdiver=C,function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data.OnlineDataProdiver");function o(e){this._config=e}o.prototype={getOfflineDataManager(){return this._offlineDatamanager=this._offlineDatamanager||new t.OfflineDataManager(this._config),this._offlineDatamanager},getComponentProperty:function(e,t,o){const n=this;if(!e)return console.warn("elementId must not be empty!."),void(o&&o());i.getObjectData(this._config,e).then((function(e){t&&t(e)})).catch((function(i){f.EnableStorage?n.getOfflineDataManager().getComponentProperty(e,t,o):o&&o(i)}))},getFamilyProperty:function(e,t,o){if(!e)return console.warn("familyTypeId must not be empty!."),void(o&&o());i.getFamilyData(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getComponentOverriddenProperty:function(e,t,o){if(!e)return console.warn("elementId must not be empty!."),void(o&&o());i.getEditedObjectData(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getMaterialProperty:function(e,t,o){var n=this;i.getMaterialProperty(this._config,e).then((function(e){t&&t(e)})).catch((function(i){f.EnableStorage?n.getOfflineDataManager().getMaterialProperty(e,t,o):o&&o(i)}))},getTreeOldData:function(e,t){var o=this;i.getTreeOldData(o._config).then((function(t){e&&e(t,o._config.modelType,"old")})).catch((function(e){t&&t(e)}))},getTreeNewData:function(e,t){var o=this;i.getTreeNewData(o._config).then((function(t){e&&e(t,o._config.modelType)})).catch((function(e){t&&t(e)}))},getMepSystem:function(e,t,o){var n=this;i.getMepSystem(e,n._config).then((function(e){t&&t(e,n._config.modelType)})).catch((function(e){o&&o(e)}))},getAreas:function(e,t){i.getAreas(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getRoomProperty:function(e,t,o){i.getRoomProperty(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getDrawingList:function(e,t,o,n){var s=this._config.modelType;if("integrateModel"==s){var r=t.split(".")[0],a=t.split(".")[1];i.getDrawingList(this._config).fromIntegrateModel(e,r,a).then((function(e){o&&o(e)})).catch((function(e){n&&n(e)}))}else"singleModel"==s&&i.getDrawingList(this._config).fromSingleModel(e,t).then((function(e){o&&o(e)})).catch((function(e){n&&n(e)}))},getModelGroup:function(e,t){i.getModelGroup(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getAreaProperty:function(e,t,o){i.getAreaProperty(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getFiles:function(e,t){i.getFiles(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getMaterialOverride:function(e,t,o,n){i.getMaterialOverride(e,t,this._config).then((function(e){o&&o(e)})).catch((function(e){n&&n(e)}))},getLinkGraph:function(e,t){i.getLinkGraph(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getDrawingsheets(e,t,o,n){var s=this;e=e||s._config.modelId,i.getDrawingsheets(this._config,e).then((function(e){o&&o(e,s._config.modelType)})).catch((function(e){n&&n(e)}))},getAllDrawingsheets(e,t,o,n){var s=this;e=e||s._config.modelId,i.getAllDrawingsheets(this._config,e).then((function(e){o&&o(e,s._config.modelType)})).catch((function(e){n&&n(e)}))},getLinksJson(e,t,o,n){var s=this;e=e||s._config.modelId,i.getLinksJson(this._config,e).then((function(e){o&&o(e,s._config.modelType)})).catch((function(e){n&&n(e)}))},getFloors(e,t){i.getFloors(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getElementByConditions(e,t,o,n){i.getElementByConditions(this._config,e,t).then((function(e){o&&o(e)})).catch((function(e){n&&n(e)}))},getComponentsByConditions(e,t,o,n){i.getComponentsByConditions(this._config,e,t).then((function(e){o&&o(e&&e[0].elementIds)})).catch((function(e){n&&n(e)}))},getMaterialJson(e,t,o,n,s){i.getMaterialJson(e,t,o).then((function(e){n&&n(e)})).catch((function(e){s&&s(e)}))},getTextureJson:function(e,t,o,n,s){i.getTextureJson(e,t,o).then((function(e){n&&n(e)})).catch((function(e){s&&s(e)}))},getMapInfo:function(e){var t=i.getMapInfo(this._config);e&&e(t)},getMapInfoAsync:function(e,t){i.getMapInfoAsync(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getLevels:function(e,t,o){i.getLevels(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getViews:function(e){var t=i.getViews(this._config);e&&e(t)},getViewsById:function(e,t){var o=this._config;o.fileId=e;var n=i.getViewsById(o);t&&t(n)},getViewData:function(e,t,o){var n=Object.assign({},this._config);n.viewId=e,i.getViewData(n).then((function(e){"[object Function]"===Object.prototype.toString.call(t)&&t(e)})).catch((function(e){"[object Function]"===Object.prototype.toString.call(o)&&o(e)}))},getRooms:function(e,t){i.getRooms(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getRoomBoundary:function(e,t,o){i.getRoomBoundary(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getCategoryVisibility:function(e,t){i.getCategoryVisibility(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getText:function(e,t){i.getText(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getScheduleList:function(e,t){i.getScheduleList(this._config).then((function(t){e&&e(t.scheduleList)})).catch((function(e){t&&t(e)}))},getScheduleById:function(e,t,o){i.getScheduleById(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getSegmentGroups:function(e,t){i.getSegmentGroups(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getSegmentFromGroups:function(e,t,o){i.getSegmentFromGroups(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getSegmentTree:function(e,t){i.getSegmentTree(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getSegmentById:function(e,t,o){i.getSegmentById(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getSegmentElementIds:function(e,t,o){i.getSegmentElementIds(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getPartialElementsMetadata:function(e,t,o){i.getPartialElementsMetadata(this._config,e).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))},getPartialElementsMetadataFile:function(e){return i.getPartialElementsMetadataFile(this._config,e)},getDatabagResource:function(e){return i.getDatabagResource(this._config,e)},getDatabagResource:function(e){return i.getDatabagResource(this._config,e)},getManifest:function(e,t){i.getManifest(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getNestedComponents:function(e,t){i.getNestedComponents(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getObjectMap:function(e,t){i.getObjectMap(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getWalkthrough:function(e,t){i.getWalkthrough(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getProjectInfo:function(e,t){var o=this;i.getProjectInfo(o._config).then((function(t){e&&e(t,o._config.modelType)})).catch((function(e){t&&t(e)}))},getModelInfo:function(e,t){i.getModelInfo(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getBimtileInfo:function(e,t,o,n){const s=`${this._config.relativeUrlWithoutDatabagId}/${e}`;i.getBimtileInfo(s,t).then((function(e){o&&o(e)})).catch((function(e){n&&n(e)}))},getFeatureStyle:function(e,t){i.getFeatureStyle(this._config).then((function(t){e&&e(t)})).catch((function(e){t&&t(e)}))},getDimensions:function(e,t,o){i.getDimensions(e,this._config).then((function(e){t&&t(e)})).catch((function(e){o&&o(e)}))}},t.OnlineDataManager=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),i=(e.Web.Lang.Utility.HttpRequest,function(e){if(this._config=e,this._objectData=null,this._cache={},"Local"==e.dataEnvType?this.dataManager=new t.OfflineDataManager(e):this.dataManager=new t.OnlineDataManager(e),!e.viewToken)return!1});i.prototype={getComponentProperty:function(e,t,i){this.dataManager.getComponentProperty(e,t,i)},getFamilyProperty:function(e,t,i){this.dataManager.getFamilyProperty(e,t,i)},getComponentOverriddenProperty:function(e,t,i){this.dataManager.getComponentOverriddenProperty(e,t,i)},getDrawingList:function(e,t,i,o){this.dataManager.getDrawingList(e,t,i,o)},getTreeOldData:function(e,t){this.dataManager.getTreeOldData(e,t)},getTreeNewData:function(e,t){this.dataManager.getTreeNewData(e,t)},getMepSystem:function(e,t,i){this.dataManager.getMepSystem(e,t,i)},getModeTree:function(e,t){console.warn("This function is deprecated. Please use getTreeOldData instead."),this.getTreeOldData(e,t)},getFloors:function(e,t){this.dataManager.getFloors(e,t)},getAreas:function(e,t){this.dataManager.getAreas(e,t)},getAreaProperty:function(e,t,i){this.dataManager.getAreaProperty(e,t,i)},getModelGroup:function(e,t){this.dataManager.getModelGroup(e,t)},getMaterialProperty:function(e,t,i){this.dataManager.getMaterialProperty(e,t,i)},getRoomProperty:function(e,t,i){this.dataManager.getRoomProperty(e,t,i)},getFiles:function(e,t){this.dataManager.getFiles(e,t)},getMaterialOverride:function(e,t,i,o){this.dataManager.getMaterialOverride(e,t,i,o)},getLinkGraph:function(e,t){this.dataManager.getLinkGraph(e,t)},getDrawingsheets:function(e,t,i,o){this.dataManager.getDrawingsheets(e,t,i,o)},getElementByConditions:function(e,t,i,o){this.dataManager.getElementByConditions(e,t,i,o)},getComponentsByConditions:function(e,t,i,o){this.dataManager.getComponentsByConditions(e,t,i,o)},getMaterialJson(e,t,i,o,n){this.dataManager.getMaterialJson(e,t,i,o,n)},getTextureJson:function(e,t,i,o,n){this.dataManager.getTextureJson(e,t,i,o,n)},getAllDrawingsheets:function(e,t,i,o){this.dataManager.getAllDrawingsheets(e,t,i,o)},getLinksJson:function(e,t,i,o){this.dataManager.getLinksJson(e,t,i,o)},getMapInfo:function(e){this.dataManager.getMapInfo(e)},getMapInfoAsync:function(e,t){this.dataManager.getMapInfoAsync(e,t)},getCategoryVisibility:function(e,t){this.dataManager.getCategoryVisibility(e,t)},getText:function(e,t){this.dataManager.getText(e,t)},getScheduleList:function(e,t){this.dataManager.getScheduleList(e,t)},getScheduleById:function(e,t,i){this.dataManager.getScheduleById(e,t,i)},getSegmentGroups:function(e,t){this.dataManager.getSegmentGroups(e,t)},getSegmentFromGroups:function(e,t,i){this.dataManager.getSegmentFromGroups(e,t,i)},getSegmentTree:function(e,t){this.dataManager.getSegmentTree(e,t)},getSegmentById:function(e,t,i){this.dataManager.getSegmentById(e,t,i)},getSegmentElementIds:function(e,t,i){this.dataManager.getSegmentElementIds(e,t,i)},getPartialElementsMetadata:function(e,t,i){this.dataManager.getPartialElementsMetadata(e,t,i)},getPartialElementsMetadataFile:function(e){return this.dataManager.getPartialElementsMetadataFile(e)},getDatabagResource:function(e){return this.dataManager.getDatabagResource(e)},getManifest:function(e,t){return this.dataManager.getManifest(e,t)},getNestedComponents:function(e){return this.dataManager.getNestedComponents(e)},getObjectMap:function(e){return this.dataManager.getObjectMap(e)},getWalkthrough:function(e){return this.dataManager.getWalkthrough(e)},getViews:function(e){return this.dataManager.getViews(e)},getViewData:function(e,t,i){return this.dataManager.getViewData(e,t,i)},getProjectInfo:function(e,t){this.dataManager.getProjectInfo(e,t)},getModelInfo:function(e,t){return this.dataManager.getModelInfo(e,t)},getBimtileInfo:function(e,t,i,o){return this.dataManager.getBimtileInfo(e,t,i,o)},getFeatureStyle:function(e,t){return this.dataManager.getFeatureStyle(e,t)},getDimensions:function(e,t,i){return this.dataManager.getDimensions(e,t,i)}},t.MetaDataManager=i}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data").FamilyDataManagerConfig=function(){return{resourceHost:d.resourceHost,databagId:null}},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),i=e.Web.Lang.Utility.HttpRequest,o=function(e){if(!e.databagId)return!1;this.__config=e};o.prototype.getFamilyTypes=function(e,t){let o,n=this.__config;o="Local"==n.dataEnvType?`./${n.databagId}/metadata/familyInfo.json`:`${n.resourceHost}/${n.databagId}/metadata/familyInfo.json`,i.ajax({url:o,success:function(t){var i=(t=JSON.parse(t)).Types||t.types;for(let e=0,t=i.length;e<t;e++)i[e].id=i[e].Id||i[e].id,i[e].name=i[e].Name||i[e].name,delete i[e].Id,delete i[e].Name;e&&e(i)},failure:e=>{var i=JSON.parse(e);t&&t(i)}})},t.FamilyDataManager=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data").IBLManagerConfig=function(){return{resourceHost:d.staticHost}},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),i=e.Web.Lang.Utility.HttpRequest,o=function(e){this.__config=e};o.prototype.getIBLConfig=function(e,t){let o,n=this.__config;if("Local"==n.dataEnvType)return!1;o=`${n.resourceHost}/resources/IBL/IBLConfig.json`,i.ajax({url:o,success:function(t){var i=JSON.parse(t);e&&e(i)},failure:e=>{var i=JSON.parse(e);t&&t(i)}})},t.IBLManager=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),i=(e.Web.Lang.Utility.HttpRequest,{version:1,EnumObjectTableIndex:{OTI_OBJECTS_VALUES:0,OTI_PROPERTY_SCHEMAS:1,OTI_ELEMENT_PROPERTIES:2,OTI_FAMILY_PROPERTIES:3,OTI_FAMILIES:4,OTI_ELEMENTS:5,OTI_BOUNDING_BOX:6,OTI_ELEMENTS_CLASS:7}}),o=function(e){this.url=e,this.objectsDB=[]};o.prototype={load:function(e){var t=this,i=["Values.json","Schemas.json","ElementProperties.json","FamilyTypeProperties.json","Families.json","Elements.json","BoundingBox.json"],o=i.length;i.forEach(((i,n)=>{const s=t.url+"/"+i+CLOUD.GlobalData.ZipResourcePostfix;CLOUD.Storage.IndexedDBHelper.loadWithStorage("InfoData",s,(()=>new Promise(((e,t)=>{(new THREE.FileLoader).load(s,e,void 0,t)}))),(t=>{this.objectsDB[n]=JSON.parse(t),0==(o-=1)&&e()}))}))},getFamilyTypeProperties:function(e){var t=this.objectsDB[i.EnumObjectTableIndex.OTI_FAMILIES][e];if(void 0===t)return null;for(var o=this.objectsDB[i.EnumObjectTableIndex.OTI_OBJECTS_VALUES],n=this.objectsDB[i.EnumObjectTableIndex.OTI_FAMILY_PROPERTIES],s=this.objectsDB[i.EnumObjectTableIndex.OTI_PROPERTY_SCHEMAS],r=0,a=0,l=0,h={},c=[],d=0,g=0,u=t[2],p=t[1];g<u;++g){a=4*n[r=2*(p+g)],l=n[r+1];var A=h[d=s[a]];void 0===A&&(A=[],h[d]=A,c.push(d)),A.push({key:o[s[a+1]],unit:o[s[a+3]],valueType:s[a+2],value:o[l]})}for(var m=[],w=(g=0,c.length);g<w;++g)d=c[g],m.push({group:o[d],items:h[d]});return m},getElementProperties:function(e){if(null==e)return null;var t=this.objectsDB[i.EnumObjectTableIndex.OTI_ELEMENTS][e];if(void 0===t)return null;for(var o=this.objectsDB[i.EnumObjectTableIndex.OTI_OBJECTS_VALUES],n=this.objectsDB[i.EnumObjectTableIndex.OTI_ELEMENT_PROPERTIES],s=this.objectsDB[i.EnumObjectTableIndex.OTI_PROPERTY_SCHEMAS],r=0,a=0,l=0,h={},c=[],d=0,g=0,u=t[2],p=t[1];g<u;++g){a=4*n[r=2*(p+g)],l=n[r+1];var A=h[d=s[a]];void 0===A&&(A=[],h[d]=A,c.push(d)),A.push({key:o[s[a+1]],unit:o[s[a+3]],valueType:s[a+2],value:o[l]})}for(var m=[],w=(g=0,c.length);g<w;++g)d=c[g],m.push({group:o[d],items:h[d]});var C=this.getFamilyTypeProperties(t[3]);if(!C)return m;var f={},E=[];for(var B of m=C.concat(m))if(f[B.group]){var I=[].concat.apply(f[B.group].items,B.items),y=[];for(var S of I){var M=!0;for(var v of y)S.key==v.key&&(M=!1);M&&y.push(S)}f[B.group]={group:f[B.group].group,items:y}}else f[B.group]=B;for(var B in f)"基本属性"==f[B].group?E.unshift(f[B]):E.push(f[B]);return E},getElementByConditions:function(e,t,o){var n=this.objectsDB[i.EnumObjectTableIndex.OTI_ELEMENTS_CLASS],s=Object.keys(t),r=[],a=[],l={},h={min:{x:null,y:null,z:null},max:{x:null,y:null,z:null}},c=[];for(let e of s)c.push({typeIndex:this._getGroupsKey(e,t[e],n),typeValue:t[e]});for(let e=0;e<n.groups.length;e+=3){let t=!0;for(let i of c){let o=n.groups[e][i.typeIndex];if(n.values[o]!=i.typeValue){t=!1;break}}if(t)if("singleModel"==o.modelType)r=r.concat(n.groups[e+1][""]);else{var d=n.groups[e+1],g=n.groups[e+2];for(var u in d)for(var p of d[u])a.push({fileId:u,elementId:p});(h.min.x>g[0]||null==h.min.x)&&(h.min.x=g[0]),(h.min.y>g[1]||null==h.min.y)&&(h.min.y=g[1]),(h.min.z>g[2]||null==h.min.z)&&(h.min.z=g[2]),(h.max.x<g[3]||null==h.max.x)&&(h.max.x=g[3]),(h.max.y<g[4]||null==h.max.y)&&(h.max.y=g[4]),(h.max.z<g[5]||null==h.max.z)&&(h.max.z=g[5])}}return"singleModel"==o.modelType?r:0==a.length?[]:(l.elements=a,l.boundingBox=h,l)},_getGroupsKey:function(e,t,i){var o=0;for(let t=0;t<i.keys.length;t++)if(i.keys[t]==e){o=t;break}return o},getBoundingBox:function(e){if(null==e)return null;var t=this.objectsDB[i.EnumObjectTableIndex.OTI_BOUNDING_BOX],o="";try{o={min:{x:t[e][0],y:t[e][1],z:t[e][2]},max:{x:t[e][3],y:t[e][4],z:t[e][5]}}}catch(e){console.log("no boundingBox Data"),o=""}return o}},t.ObjectPropertyManager=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data").FileManagerConfig=function(){return{APIHost:d.APIHost,resourceHost:d.resourceHost,viewToken:null,modelId:null,modelType:"singleModel",dataEnvType:d.dataEnvType||"BIMFACE"}},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Data"),i=e.Web.Lang.Utility.HttpRequest,o=function(e){this.__config=e};o.prototype.getViewToken=function(e,t,o){let n,s=this.__config;if("singleModel"==s.modelType)return!1;"Local"!=s.dataEnvType?(n=`${s.APIHost}/data/v2/integrations/${s.modelId}/files/${e}/viewToken?view_token=${s.viewToken}`,i.ajax({url:n,type:"post",success:function(e){var i=JSON.parse(e);t&&t(i.data)},failure:e=>{var t=JSON.parse(e);o&&o(t)}})):t&&t()},t.FileManager=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=e.Web.Lang.Utility.ClientHelper.isWebGLAvailable(),n=(Object.freeze({TranslucentOthers:"",HideOthers:""}),function(){let t=new e.Web.Lang.EventManager;this.viewerType="Viewer",this._defaultUnit=void 0,this.getEventManager=function(){return t}});n.prototype.destroy=function(){this.getEventManager=null},n.prototype.init=function(){},n.prototype.getViewerType=function(e){return this.viewerType},n.prototype.addView=function(t,i,n){if(!o)return;let s=this,r=e.Bimface.Authentication.AuthenticationManager,a=(s._opt,new e.Bimface.Authentication.AuthenticationConfig);a.viewToken=t,a.APIHost=this._opt.APIHost,a.enableStorage=this.enableStorage,a.securityApi=this._opt.securityApi,(this.authenticate=new r(a)).authenticate((function(e){"bimView"==e.renderType&&("pdf-transfer"!==e.workerType?e.renderType="3DView":e.renderType="pdfView"),s.loadViewCore(e,i,n)}),(function(t){var i=e.Bimface.Viewer.Viewer3DEvent;s.getEventManager().fireEvent(i.Error,t)}))},n.prototype.loadViewCore=function(){},n.prototype.addEventListener=function(e,t,i){this.getEventManager().addEvent(e,t,i)},n.prototype.removeEventListener=function(e,t){this.getEventManager().removeEvent(e,t)},n.prototype.enableFullScreen=function(t){var i=this._opt.domElement,o=this;t?e.Web.Lang.Utility.FullScreen.fullScreen(i):e.Web.Lang.Utility.FullScreen.exitFullScreen(),setTimeout((function(){o.resize()}),200)},n.prototype._loadNotSuportPromptPage=function(e){let t=i.create("div","bf-waring-container"),o=i.create("div","bf-waring"),n=i.create("span","bf-waring-icon"),s=i.create("span","bf-waring-text");s.innerText=BimfaceLanguage.bf_browser_notSupported,o.appendChild(n),o.appendChild(s),t.appendChild(o);let r=i.create("div","bf-suggestion");r.innerText=BimfaceLanguage.bf_browser_suggestion,t.appendChild(r);let a=i.create("div","bf-logo");t.appendChild(a),e.appendChild(t)},n.prototype.getUnit=function(){return"m"===this._defaultUnit?e.Bimface.Common.Units.LengthUnits.Meter:e.Bimface.Common.Units.LengthUnits.Millimeter},t.Viewer=n}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").ImageRenderConfig=function(){return{domElement:null,unit:512,currentScale:1,position:new e.Web.Geometry.Point3d(0,0,0),delay:100,navigationMode:"Pan"}},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer"),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom")),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),e.Bimface.Viewer.Viewer2DEvent,function(t){let o=new e.Web.Lang.EventManager;var n=t.domElement,s=i.create("div","bf-image"),r=i.create("div","bf-image-scene"),a=i.create("div","bf-image-view");this._eventManager=o,r.appendChild(a),s.appendChild(r),n.appendChild(s),this._scene={width:n.offsetWidth,height:n.offsetHeight},this._navigationMode=t.navigationMode,this._domElement=n,this._imageView=a,this._imageScene=r,this._container=s,this._position=t.position,this._maxLevel=1,this._currentScale=t.currentScale,this._currentLevel=this.scaleToLevel(t.currentScale),this._opt=t,this._zooming,this._moving,this.bindEvent(),this.bindMobileEvent()});o.prototype={addEventListener:function(e,t){this._eventManager.addEvent(e,t)},removeEventListener:function(e,t){this._eventManager.removeEvent(e,t)},getDomElement:function(){return this._container},bindEvent:function(){var e,t,i,o,n=this,s=this._container,r=!1;s.addEventListener("mousedown",(function(i){i.preventDefault();var s=n._navigationMode;r=!0,e=n.getScale(),o=(new Date).getTime(),t=n.getClientPosition(i),"RectZoom"==s&&n.drawRect(t)})),s.addEventListener("mousemove",(function(o){if(o.preventDefault(),!r||window.hasDragBoxPanel)return!1;var s=n._navigationMode,a={x:(i=n.getClientPosition(o)).x-t.x,y:i.y-t.y};if("Pan"==s)n.move(a),t=i;else if("Zoom"==s){var l=i.y-t.y;Math.abs(l)>10&&n.setScale(e+l/200+e/10,t)}else n.drawRect(t,a)})),document.addEventListener("mouseup",(function(e){if(e.preventDefault(),"RectZoom"==n._navigationMode){var s,a=n._scene,l=n.getScale(),h={x:(i=n.getClientPosition(e)).x-t.x,y:i.y-t.y},c={x:(i.x+t.x)/2,y:(i.y+t.y)/2};s=a.width/a.height>h.x/h.y?a.height/h.y:a.width/h.x,n.setScale(s*l,c),n._imageScene.removeChild(n._rect),n._rect=null}else{if((new Date).getTime()-o<300){var d=n.getClientPosition(e),g=n.clientToWorld(d);n._eventManager.fireEvent("Clicked",{worldPosition:g,clientPosition:d})}}r=!1,t=i=l=null})),s.addEventListener("mousewheel",(function(e){e.preventDefault();var t=e.wheelDelta&&(e.wheelDelta>0?1:-1)||e.detail&&(e.detail>0?-1:1),i=n.getScale(),o=i+t*i/20,s=(n._container.getBoundingClientRect(),n.getClientPosition(e));n.setScale(o,s)})),s.addEventListener("DOMMouseScroll",(function(e){e.preventDefault();var t=e.wheelDelta&&(e.wheelDelta>0?1:-1)||e.detail&&(e.detail>0?-1:1),i=n.getScale(),o=i+t*i/20,s=(n._container.getBoundingClientRect(),n.getClientPosition(e));n.setScale(o,s)}))},bindMobileEvent:function(){var e,t,i,o,n=this,s=n._container;window.addEventListener("resize",(function(){n.resize()})),s.addEventListener("touchstart",(function(o){o.preventDefault(),(o=n.getMobileEvent(o)).isMulti?(e=n.getScale(),i=o.distance,t=o.point[0]):t=o.point})),s.addEventListener("touchend",(function(n){e=t=i=o=null})),s.addEventListener("touchmove",(function(s){if((s=n.getMobileEvent(s)).isMulti){o=s.distance;var r=e*o/i;n.setScale(r)}else{var a=s.point,l={x:a.x-t.x,y:a.y-t.y};n.move(l),t=a}}))},getMobileEvent:function(e){for(var t=[],i=null,o=0,n=(e=e.originalEvent||e).touches.length;o<n;o++)i=e.touches[o],t.push({x:i.pageX,y:i.pageY});return t.length<=1?{isMulti:!1,point:t[0]}:{isMulti:!0,distance:Math.sqrt(Math.pow(t[1].x-t[0].x,2)+Math.pow(t[1].y-t[0].y,2)),point:t}},load:function(e){this._maxLevel=e.file.Attributes.DwgLevel,this._maxScale=Math.pow(2,this._maxLevel-1),this._item=e,this._imageView.innerHTML="",this.setBackgroundImage(`${e.file.Path}/L1/Model_0_0.${e.file.Attributes.DwgExt}`),this.showImagesLevel(this._currentLevel),this.fit()},addModel:function(e){this._maxScale=e.maxScale,this.showImages(e.images),this.fit()},showImagesLevel:function(e){var t=Math.pow(2,e-1),i=this._item,o=[];this._currentLevel=e;for(var n=0;n<t;n++)for(var s=0;s<t;s++){var r=`${i.file.Path}/L${e}/Model_${n}_${s}.${i.file.Attributes.DwgExt}`;o.push({row:n,col:s,src:r,level:e})}this.showImages(o)},fit:function(){var e=this,t=e._opt.unit,i=e._scene,o={x:(t-i.width)/2,y:(t-i.height)/2};e.setScale(1),e.setPosition(o)},resize:function(){var e=this._domElement;this._scene={width:e.offsetWidth,height:e.offsetHeight}},showImages:function(e){if(!e||0==e.length)return!1;this._currentImages=e,this.updateImages()},resizeImages:function(e){var t=this,i=t._opt,o=t._imageView.querySelectorAll(".bf-image-item"),n=o.length;t._backgroundImage&&(t._backgroundImage.style.width=i.unit*e+"px",t._backgroundImage.style.height=i.unit*e+"px",e<t._currentScale&&(t._backgroundImage.style.display="block"));for(var s=0;s<n;s++){var r=o[s],a=r.getAttribute("col"),l=r.getAttribute("row"),h=r.getAttribute("level"),c=e/Math.pow(2,h-1);"image"==r.nodeName?r.width>r.height?r.style.width=t._opt.unit*c+"px":r.style.height=t._opt.unit*c+"px":(r.style.width=t._opt.unit*c+"px",r.style.height=t._opt.unit*c+"px"),r.style.left=a*t._opt.unit*c+"px",r.style.top=l*t._opt.unit*c+"px"}},setBackgroundImage:function(e){var t=i.create("img","bf-image-background"),o=this._imageView,n=this._opt,s=this._currentScale;t.src=e.replace(/[#+? ]/g,(function(e){return escape(e)})),t.style.left=0,t.style.top=0,t.style.width=n.unit*s+"px",t.style.height=n.unit*s+"px",o.appendChild(t),this._backgroundImage=t},updateImages:function(){for(var e=this,t=e._opt,o=e._currentLevel,n=this._currentScale/Math.pow(2,o-1),s=e._imageView,r=s.querySelectorAll(".bf-image-item"),a=e._currentImages,l=e.getShowImages(a),h=l.length,c=0,d=function(t){if(c++,h==c&&r){for(var i=0;i<r.length;i++)try{s.removeChild(r[i])}catch(e){}e._backgroundImage&&(e._backgroundImage.style.display="none")}s.appendChild(t.item.domElement),e.render()},g=function(e){var o=i.create("img","bf-image-item");e.domElement=o,e.type="image",e.src=e.src.replace(/[#+? ]/g,(function(e){return escape(e)})),o.src=e.src,o.setAttribute("col",e.col),o.setAttribute("row",e.row),o.setAttribute("level",e.level),o.onload=function(){o.style.left=e.col*t.unit*n+"px",o.style.top=e.row*t.unit*n+"px",this.width>this.height?this.style.width=t.unit*n+"px":this.style.height=t.unit*n+"px",e.width=this.width,e.height=this.height,d({code:"success",item:e})},o.onabort=o.onerror=function(){var o=i.create("div","bf-image-item");o.setAttribute("col",e.col),o.setAttribute("row",e.row),o.setAttribute("level",e.level),o.style.left=e.col*t.unit*n+"px",o.style.top=e.row*t.unit*n+"px",o.style.width=t.unit*n+"px",o.style.height=t.unit*n+"px",e.domElement=o,e.type="default",d({code:"error",item:e})}},u=0;u<h;u++){g(l[u])}},getImages:function(){return this._currentImages},setScale:function(e,t){var i,o=this,n=o._container,s=o._opt;if(e>o._maxScale?e=o._maxScale:e<1&&(e=1),e==this._currentScale)return!1;t||(t={x:n.offsetWidth/2,y:n.offsetHeight/2}),i=o.clientToWorld(t),o.resizeImages(e),this._currentScale=e;var r=o.worldToClient(i),a={x:r.x-t.x,y:r.y-t.y},l=o.clientToWorld(a);o.setWorldPosition(l),o._zooming&&clearTimeout(o._zooming);var h=o.scaleToLevel(e);o._zooming=setTimeout((function(){h!=o._currentLevel?o.showImagesLevel(h):o.updateImages()}),s.delay),o._eventManager.fireEvent("Zooming",e),o.render()},getScale:function(){return this._currentScale},getCurrentLevel:function(){return this._currentLevel},setPosition:function(e){var t=this,i=this._imageScene.querySelector(".bf-image-view");i.style.left=-e.x+"px",i.style.top=-e.y+"px",this._position=e,clearTimeout(t._update),t._update=setTimeout((function(){t.updateImages(),t._eventManager.fireEvent("Moved",e),t.render()}),t._opt.delay)},setWorldPosition:function(e){this.setPosition({x:e.x/this._maxScale*this._currentScale,y:e.y/this._maxScale*this._currentScale})},getWorldPosition:function(){return this.clientToWorld({x:0,y:0})},clientToWorld:function(e){var t=this._position,i=t.x+e.x,o=t.y+e.y;return{x:i/this._currentScale*this._maxScale,y:o/this._currentScale*this._maxScale}},worldToClient:function(e){var t=this._position,i=e.x*this._currentScale/this._maxScale,o=e.y*this._currentScale/this._maxScale;return{x:i-t.x,y:o-t.y}},move:function(e){console.log("move");var t=this,i=t._position,o={x:i.x-e.x,y:i.y-e.y};t.setPosition(o),t._eventManager.fireEvent("Moving",o),t.render()},getShowImages:function(e){for(var t=this._opt.unit,i=this._position,o=this._currentScale,n=this._currentLevel,s=this._scene,r=o/Math.pow(2,n-1),a=[],l=0,h=e.length;l<h;l++){var c=e[l];(1+c.col)*t*r>i.x&&(1+c.row)*t*r>i.y&&c.col*t*r<i.x+s.width&&c.row*t*r<i.y+s.height&&a.push(c)}return a},scaleToLevel:function(e){var t=this._maxLevel,i=Math.ceil(Math.log(e)/Math.log(2))+1;return i>=t&&(i=t),i},isInViewFrustum:function(e){var t=this._scene,i=this.worldToClient(e);return i.x>0&&i.x<t.width&&i.y>0&&i.y<t.height},setNavigationMode:function(e){this._navigationMode=e},createSnapshotAsync:function(t,o){var n=this,s=i.create("canvas","bf-canvas"),r=s.getContext("2d"),a=n._scene,l=n.getScale(),h=n.getCurrentLevel(),c=n._position,d=n.getShowImages(n._currentImages),g=d.length,u=n._opt.unit,p=l/Math.pow(2,h-1),A=function(t){new e.Web.Graphics.Utility.ImageContainer(t.src).then((function(e){t.isLoad=!0,r.drawImage(e,t.col*u*p-c.x,t.row*u*p-c.y,u*p,u*p),m()}),(function(e){t.isLoad=!0,m()}))},m=function(){if(0==--g){var e=s.toDataURL("image/png");o&&o(e)}};s.setAttribute("width",a.width),s.setAttribute("height",a.height),r.rect(0,0,a.width,a.height),t instanceof e.Web.Graphics.Color?r.fillStyle=t.getRGBA():r.fillStyle="#000",r.fillRect(0,0,a.width,a.height);for(var w=0;w<g;w++)A(d[w])},drawRect:function(e,t){this._rect&&t?(this._rect.style.width=`${t.x}px`,this._rect.style.height=`${t.y}px`):(this._rect=i.create("div","bf-image-rect"),this._rect.style.left=`${e.x}px`,this._rect.style.top=`${e.y}px`,this._imageScene.appendChild(this._rect))},getClientPosition:function(e){var t=this._domElement.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}},render:function(){this._eventManager.fireEvent("Render")}},t.ImageRender=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").Viewer2DConfig=function(){return{domElement:null,resourceHost:d.resourceHost,APIHost:d.APIHost,securityApi:d.securityApi}},function(){let t=Object.freeze({Loaded:"Loaded",MouseClicked:"MouseClicked",ZoomFactorChanged:"ZoomFactorChanged",Rendered:"Rendered",ViewChanged:"ViewChanged",ViewMoving:"ViewMoving",ViewMoved:"ViewMoved",ViewZooming:"ViewZooming",ViewZoomed:"ViewZoomed",DrawingMeasure:"DrawingMeasure",Error:"Error"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").Viewer2DEvent=t}(),function(){let t=Object.freeze({Pan:"Pan",RectZoom:"RectZoom",Zoom:"Zoom"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").NavigationMode2D=t}(),function(){var t="Glodon.Bimface.Viewer.Viewer2D",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),s=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest")),r=e.Bimface.Viewer.Viewer2DEvent,a=function(t){o.Viewer.call(this);var i=t.domElement;this._opt=t,this._scaleLevel=1,this.screenWidth=i.offsetWidth,this.screenHeight=i.offsetHeight,this._viewLoaded=!1;var n=new e.Bimface.Viewer.ImageRenderConfig;n.domElement=i,this._imageRender=new e.Bimface.Viewer.ImageRender(n),this.getDomElement=function(){return this._imageRender.getDomElement()},this.hookImageRender()};n.Type.inheritPrototype(a,o.Viewer),a.prototype=Object.assign({},o.Viewer.prototype,{hookImageRender:function(){var t=this,i=this._imageRender,o=e.Bimface.Viewer.Viewer2DEvent,n=this.getEventManager();i.addEventListener("Zooming",(function(e){n.fireEvent(o.ViewZooming,e)})),i.addEventListener("Moving",(function(e){n.fireEvent(o.ViewMoving,e)})),i.addEventListener("Moved",(function(e){t.render()})),i.addEventListener("Render",(function(e){t.render()})),i.addEventListener("Clicked",(function(e){e.worldPosition.x=e.worldPosition.x/t._scaleLevel,e.worldPosition.y=e.worldPosition.y/t._scaleLevel,n.fireEvent(o.MouseClicked,e)}))},load:function(e){0==this._viewLoaded&&(this._viewLoaded=!0,this.addView(e))},showImage:function(e,t){var i=this,o=this._imageRender,n=new Image;t=t;n.src=e,n.onload=function(){var n=this.width>this.height?this.width:this.height;t=t||n/512,i._scaleLevel=512*t/n,o.addModel({maxScale:t,images:[{row:0,col:0,src:e}]})}},loadViewCore:function(t){var i=this,o=i._opt,n=t.databagId;i._data=t,s.ajax({async:!1,url:`${o.resourceHost}/${t.databagId}/manifest.json`,success:function(t){var s=JSON.parse(t);if(s.Views){for(var a=[],l=0,h=s.Views.length;l<h;l++){var c=s.Views[l],d=c.Representations.getObjectByAttribute("MIME","image/tiles");d.Path=`${o.resourceHost}/${n}/${d.Path}`,a.push({name:c.Name,id:c.ID,file:d})}i._views=a,i.showViewById(a[0].id),i.getEventManager().fireEvent(r.Loaded,i),e.Web.Lang.Utility.MouseMotion.setCursor(i)}}})},showViewById:function(e){if(i.send(t,"showViewById"),this._currentViewId!=e){var o=this._views.getObjectByAttribute("id",e),n=this._imageRender;o&&o!=this._currenItem&&(this._currenItem=o,this._currentViewId=e,n.load(o),this.getEventManager().fireEvent(r.ViewChanged,e))}},getCurrentViewId:function(){return this._currentViewId},home:function(){this._imageRender.fit()},setNavigationMode:function(e){i.send(t,"setNavigationMode"),this._imageRender.setNavigationMode(e)},rectZoom:function(){this._opt.enableZoomRect=!0,this._imageRender.setNavigationMode(e.Bimface.Viewer.NavigationMode2D.RectZoom)},zoomIn:function(){var e=this._imageRender.getScale();this._imageRender.setScale(1.6*e)},zoomOut:function(){var e=this._imageRender.getScale();this._imageRender.setScale(e/1.6)},getWorldPosition:function(){var e=this._imageRender.getWorldPosition();return this.imageToWorld(e)},getViews:function(){return this._views},resize:function(){this._imageRender.resize()},worldToClient:function(e){var t=this.worldToImage(e);return this._imageRender.worldToClient(t)},clientToWorld:function(e){var t=this._imageRender.clientToWorld(e);return this.imageToWorld(t)},isInViewFrustum:function(e){var t=this.worldToImage(e);return this._imageRender.isInViewFrustum(t)},getMaxLevel:function(){return this._imageRender.getMaxLevel()},getCurrentLevel:function(){return this._imageRender.getCurrentLevel()},getZoomScale:function(){return this._imageRender.getScale()},getCurrentState:function(){var e=this._imageRender,t=e._position;return{viewTop:t.x,viewLeft:t.y,level:e.getCurrentLevel(),zoomScale:e.getScale(),viewId:this._currentViewId}},setState:function(e){var t=this,i=t._imageRender;t._currentViewId!=e.viewId&&t.showViewById(e.viewId),i.setScale(e.zoomScale),i.setPosition({x:e.viewTop,y:e.viewLeft})},createSnapshotAsync:function(e,o){i.send(t,"createSnapshotAsync"),this._imageRender.createSnapshotAsync(e,o)},worldToImage:function(e){return{x:e.x*this._scaleLevel,y:e.y*this._scaleLevel}},imageToWorld:function(e){return{x:e.x/this._scaleLevel,y:e.y/this._scaleLevel}},render:function(){var t=e.Bimface.Viewer.Viewer2DEvent;this.getEventManager().fireEvent(t.Rendered)}}),o.Viewer2D=a}();var E=["-2001350","-2001180","-2001160","-2001340","-2001260","-2000180","-2000011","-2000035","-2000170","-2000171","-2000340","-2000100","-2000126","-2000032","-2000120","-2001120","-2000014","-2000996","-2001354","-2001300","-2001330","-2001336","-2001320","-2001327","-2009030","-2001220","-2000023","-2000038","-2000946","-2001390","-2003400"];!function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Common");t.CoordSysUtil=class{constructor(){}LatLonToXY(e,t,i=120){const o=e/180*Math.PI,n=(t-i)/180*Math.PI,s=0*Math.PI,r=6399593.6258,a=.00673949674227,l=.00673949674227,h=r/Math.sqrt(1+l),c=.9949771060858016,d=c-1,g=21152428336119405e-21,u=-1.1086345825495088e-7,p=315/1024*a**4,A=r*(c*s+(d*Math.cos(s)+g*Math.cos(s)**3+u*Math.cos(s)**5+p*Math.cos(s)**7)*Math.sin(s));let m=r*(c*o+(d*Math.cos(o)+g*Math.cos(o)**3+u*Math.cos(o)**5+p*Math.cos(o)**7)*Math.sin(o))+n**2*h/2*Math.sin(o)*Math.cos(o)+n**4*h/24*Math.sin(o)*Math.cos(o)**3*(5-Math.tan(o)**2+9*l+4*l**2)+n**6*h/720*Math.sin(o)*Math.cos(o)**5*(61-58*Math.tan(o)**2+Math.tan(o)**4);const w=n*h*Math.cos(o)+n**3*h/6*Math.cos(o)**3*(1-Math.tan(o)**2+l)+n**5*h/120*Math.cos(o)**5*(5-18*Math.tan(o)**2+Math.tan(o)**4);return m-=A+n**2*h/2*Math.sin(s)*Math.cos(s)+n**4*h/24*Math.sin(s)*Math.cos(s)**3*(5-Math.tan(s)**2+9*l+4*l**2)+n**6*h/720*Math.sin(s)*Math.cos(s)**5*(61-58*Math.tan(s)**2+Math.tan(s)**4),[w,m]}XYToLatLon(e,t,i=120){const o=this.LatLonToXY(1,i+1,i);let n=(e-=5e5)/o[0]+i,s=t/o[1]+0;for(;;){const r=this.LatLonToXY(s,n,i),a=r[0]-e,l=r[1]-t;if(a<100&&l<100)break;n-=a/o[0],s-=l/o[1]}return[s,n]}}}();const B="Glodon.Bimface.Model.Model",I=e.Bimface.Data.StatisticsDataManager.getInstance(),y=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Model"),S=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),e.Web.Lang.Utility.DataUtil);let M=new THREE.Vector3;y.Model=class{constructor(t,i,o,n={},s){i.viewToken=i.viewToken||i.databagId,this.viewToken=i.viewToken,this._viewer=t,this._layer=s,this.viewerType=this._viewer.viewerType,this.isViewerType=e=>this._viewer.viewerType===e,this.executeByViewer=e=>{for(let t in e)this.isViewerType(t)&&"[object Function]"===Object.prototype.toString.call(e[t])&&e[t]()},this.console=this._viewer.console,this._cloudViewer=t.getViewer();const r=t._opt;this._opt=r;let a,l,h=r.databagResource||e.Web.Lang.Utility.ClientHelper.formatURL(`/${i.databagId}/resource/v3/model`),c=r.resourceHost;if(i.shell){let t=r.shellDatabagResource||e.Web.Lang.Utility.ClientHelper.formatURL(`/${i.shell.databagId}/${i.databagId}/resource/v3/model`);i.shell.path&&(t=e.Web.Lang.Utility.ClientHelper.formatURL(`${i.shell.path}/${i.shell.databagId}/${i.databagId}/resource/v3/model`)),a=f.Utils.clone(i.shell,!0),a.databagId=t}if(i.path&&(h=e.Web.Lang.Utility.ClientHelper.formatURL(`${i.path}/${i.databagId}/resource/v3/model`),c=""),!1!==this._opt.enableWireframe&&!1!==n.enableBorderLine?n.enableBorderLine=!0:n.enableBorderLine=!1,!0===this._opt.disableUserData&&(n.disableUserData=!0),this.wireFrameVisibilityOption=n.componentsFrame,n.wireFrameVisibilityOption=n.componentsFrame,"Normal"!=BimfaceLoaderConfig.visualStyle&&i.bake&&"success"==i.bake.status&&(l="/"+i.bake.databagId+"/resource/baking"),this._data=i,this._data.databagResource=h,this.modelId=f.Utils.isDefined(n.modelId)?n.modelId:i.modelId,i.isVirtualModel)return;this.isViewerType("Viewer3D")&&(this.isDefault=!1,this._modelIndex=t._lastModelIndex,t._lastModelIndex+=1,0===t.getModelCount()&&this.setDefault());const d=()=>this._manifest.Metadata&&this._manifest.Metadata.Content&&this._manifest.Metadata.Content.Type.indexOf("bimtile")>=0?"bimtiles":"bmd",g=t=>void 0!==this._opt.unit?this._opt.unit===e.Bimface.Common.Units.LengthUnits.Meter?"m":"mm":this._manifest.Metadata&&this._manifest.Metadata.Unit?this._manifest.Metadata.Unit:"bmd"===t?"mm":"m";t._models[this.modelId]=this;const u=s=>{this._manifest=s;let r=!0;if(this.executeByViewer({Viewer3D:()=>{this.isDefault?(t._defaultModelType=d(),t._defaultUnit=g(t._defaultModelType),t._manifest=Object.assign({},s),this.isShadowDafault()&&(f.GlobalData.EnableShadowMap=!0,this.getCloudViewer().setLightPreset(4))):(t._updateManifest(),d()!==t._defaultModelType&&(this.console.error("Bimtiles and bmd files cannot be loaded in the same viewer."),delete t._models[this.modelId],r=!1))},ViewerGIS:()=>{d()!==t._defaultModelType&&(this.console.error("Adding bmd files is not supported."),this._layer.getParent().remove(this._layer),delete t._models[this.modelId],this.getViewer().fireEvent(e.Bimface.Viewer.ViewerGISEvent.ModelAddFailed,this._layer?this._layer.id:this.modelId),r=!1)}}),r&&(0!==this._modelIndex&&(n.zoomAll=!1),this.getCloudViewer().load({type:o||this.isViewerType("ViewerGIS")?"bimTiles":void 0,modelId:n.modelId,modelFileId:i.modelId,metaData:i.metaData,coordinateSystem:i.coordinateSystem,databagId:h,serverUrl:c,lightmapDatabagId:l,loadConfig:n,shell:a}),"rfa"===s.Metadata.FileType)){const i=this.modelId;t.addEventListener(e.Bimface.Viewer.Viewer3DEvent.ModelAdded,(function(){t.getModel(i)&&t.getModel(i).getFamilyTypes((function(e){e&&e[0]&&t.getModel(i).showFamilyTypeById(e[0].id)}))}))}};if(i.metaData&&i.metaData.asset){let e={Metadata:{}};e.Metadata.Content={},e.Metadata.Content.Type=i.metaData.asset,u(e)}else this.getManifest((e=>{this.setManifestData(e,u)}),(e=>{this.setManifestData(e,u)}));this._modelAddedCallback=t=>{t.modelId&&this.modelId&&t.modelId.toString()===this.modelId.toString()&&(this.onModelLoaded(),this.executeByViewer({Viewer3D:()=>{let t=()=>{this.getViewer().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ModelAdded,this.modelId),0===this._modelIndex?this.getViewer().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ViewAdded,this.getViewer()):this.getViewer().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ViewChanged,this.getViewer()._manifest)};!0===this._opt.disableUserData?requestAnimationFrame((()=>{let e=this.getViewer().getViewer().getModelManager().getModel(this.modelId);let i=0;e._config.count&&e._config.count.element&&(i=1e3*parseInt(e._config.count.element/1e5)),e&&e.loadBusinessResources&&setTimeout((()=>{e.loadBusinessResources(t)}),i),e&&!e.loadBusinessResources&&t()})):t()},ViewerGIS:()=>{this.getViewer().fireEvent(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,this._layer?this._layer.id:this.modelId),this.getViewer().fireEvent(e.Bimface.Viewer.ViewerGISEvent.ViewChanged,this._layer?this._layer.id:this.modelId)}}))},this.getCloudViewer().registerEventListener(f.EVENTS.ON_LOAD_COMPLETE,this._modelAddedCallback)}onModelLoaded(){if(this._loaded=!0,this.setBorderLineWithFilter(this._opt),this.wireFrameVisibilityOption&&this.setWireFrameVisibilityCondition(this.wireFrameVisibilityOption),this._opt.enableExplosion&&this.loadFloorsForExplosion&&this.loadFloorsForExplosion(),"Viewer3D"===this.viewerType){const e=this.getViewer()._data.config;this.isBimtilesModel()&&e&&"true"==e.loadOnDemand&&this.hideAllComponents()}if("ViewerGIS"===this.viewerType&&(!this._layer._config.transformation||"[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]"===JSON.stringify(this._layer._config.transformation))){let e=this._layer._config.config||this.getCloudViewer().getModelManager().getModel(this.modelId)._config,t="EPSG:4490",i=new g,o=!1,n=null;if(S.hasChildProperty(e,"coordinateSystem","projCS","centralMeridian")){const t=e.coordinateSystem.projCS,{name:o}=t;n=`Custom_${o||"自定义"}`,i.defineCustomCoordSys(n,t)}if(n||S.hasChildProperty(e,"coordinateSystem","projCS","epsg")||S.hasChildProperty(e,"coordinateSystem","projCS","EPSG")){let s=e.coordinateSystem.projCS,r=n||`EPSG:${s.epsg||s.EPSG}`,{rotation:a}=s;if(isNaN(a)||0===a||this.setModelRotationZ({x:0,y:0,z:0},a*Math.PI/180),n||Object.values(u).includes(r)){let e,a,l;if(!s.offset||0===s.offset[0]&&0===s.offset[1]){let t=this.getCloudViewer().getModelManager().getModel(this.modelId).getBoundingBoxWorld().getCenter(M);t&&(e=t.x,a=t.y,l=0)}else e=s.offset[0],a=s.offset[1],l=s.offset[2]||0;if(void 0!==e&&void 0!==a){let s=i.translateXY({x:e,y:a},r,t);if(s&&Math.abs(s.lat)<=90&&Math.abs(s.lon)<=180){let e=this.getViewer().latLonToWorld({latLon:s});e.z=l,this.setModelTranslation(e),o=!0,this.console.info(`layer[${this._layer.id}] is transformed by projected coordinate system [${n?n.split("Custom_")[1]:r}]`)}}}}if(!o&&(S.hasChildProperty(e,"coordinateSystem","geogCS","epsg")||S.hasChildProperty(e,"coordinateSystem","geogCS","EPSG"))){let n=e.coordinateSystem.geogCS,s=`EPSG:${n.epsg||n.EPSG}`;if(Object.values(u).includes(s)&&n.latLon){let e=i.translateLatLon({lat:n.latLon[0],lon:n.latLon[1]},s,t),r=this.getViewer().latLonToWorld({latLon:e}),{altitude:a,origin:l}=n;isNaN(a)||0===a||(r.z=a),S.assertType(l,"arr")&&(r.x-=l[0],r.y-=l[1],r.z-=l[2]),this.setModelTranslation(r),o=!0,this.console.info(`layer[${this._layer.id}] is transformed by geographic coordinate system [${s}]`)}}}}isBimtilesModel(){return this.getCloudViewer().getModelManager().getModel(this.modelId)instanceof f.BimTilesModel}getModelContent(){const e=this.getCloudViewer().getModelManager().getModel(this.modelId)._config;return e.metadata&&e.metadata.content}setShellVisibility(e){this.getCloudViewer().getModelManager().setModelShellVisibility(this.modelId,e)}setDefault(){const e=this.getViewer();e.getModels().some((e=>{if(e.isDefault)return e.isDefault=!1,!0})),this.isDefault=!0,e._data=this.getMetaData(),e._defaultModel=this}getMetaData(){return this._data}_getMetaDataManager(){if(this._metaDataManager)return this._metaDataManager;{const t=this.getMetaData();let i=new e.Bimface.Data.MetaDataManagerConfig;return t.integrateDrawings&&"success"==t.integrateDrawings.status&&(i.integrateDrawings=t.integrateDrawings),i.APIHost=this._opt.APIHost,i.resourceHost=this._opt.resourceHost,i.viewToken=t.viewToken,i.databagId=t.databagId,i.modelId=t.modelId,i.modelType=t.modelType,i.dataEnvType=t.dataEnvType||i.dataEnvType,t.path?(i.relativeUrlWithoutDatabagId=e.Web.Lang.Utility.ClientHelper.formatURL(t.path),i.relativeUrl=e.Web.Lang.Utility.ClientHelper.formatURL(t.path+"/"+i.databagId)):(i.relativeUrlWithoutDatabagId=e.Web.Lang.Utility.ClientHelper.formatURL(`${i.resourceHost}`),i.relativeUrl=e.Web.Lang.Utility.ClientHelper.formatURL(`${i.resourceHost}/${i.databagId}`)),this._metaDataManager=new e.Bimface.Data.MetaDataManager(i),this._metaDataManager}}getManifest(e,t){I.send(B,"getManifest"),this._getMetaDataManager().getManifest(e,t)}setManifestData(e,t){const i=this.getMetaData();let o=!1,n=!1,s=!1;i.config&&(n=!!i.config["integrate-with-links"],o=!!i.config.exportSetsTree),s="integrateModel"==i.modelType?i.isSupportDrawing:!(!i.config||"true"!==i.config.exportDrawing),"object"!=typeof e&&(e={}),e.Features||(e.Features={HasComponentProperty:i.isSupportComponentProperty,HasMaterialProperty:i.isSupportMaterialProperty,HasMiniMap:i.isSupportMiniMap,HasComponentStructure:i.isSupportModelTree,HasFileList:"integrateModel"==i.modelType,HasRoom:i.isSupportRoomArea,HasArea:i.isSupportRoomArea,HasDrawing:i.isSupportDrawing&&s,HasMEPSystem:i.workerType&&-1!=i.workerType.indexOf("rvt-"),HasGroup:o,HasAssemble:o,HasLinkRelation:n,HasFamilyTypeList:i.isSupportFamilyTypeList,HasLayout:!0,HasSplitDrawing:!0}),e.Features&&null==e.Features.HasFamilyTypeList&&(e.Features.HasFamilyTypeList=i.isSupportFamilyTypeList),e.Metadata||(e.Metadata={FileType:null}),t&&t(e)}destroy(){const t=this.modelId;this.getCloudViewer().unload(t);const i=this.getViewer();this._modelAddedCallback&&this.getCloudViewer().unregisterEventListener(f.EVENTS.ON_LOAD_COMPLETE,this._modelAddedCallback),this.executeByViewer({Viewer3D:()=>{if(delete i._models[t],i.getModelCount(),0===i.getModelCount())delete i._manifest,i.fireEvent(e.Bimface.Viewer.Viewer3DEvent.RemoveView,0),i._lastModelIndex=0;else{if(this.isDefault){let e=i._lastModelIndex,t=i.getModels()[0];i.getModels().forEach((i=>{i._modelIndex<e&&(e=i._modelIndex,t=i)})),t.setDefault(),i._manifest=Object.assign({},t._manifest)}i._updateManifest(),i.fireEvent(e.Bimface.Viewer.Viewer3DEvent.ViewChanged,i._manifest)}},ViewerGIS:()=>{i.fireEvent(e.Bimface.Viewer.ViewerGISEvent.ModelRemoved,this.modelId),i.fireEvent(e.Bimface.Viewer.ViewerGISEvent.ViewChanged,this.modelId)}})}isShadowDafault(){const e=this._manifest,t=this.getMetaData();let i=!1;if(e.Metadata.FileType){const t=e.Metadata.FileType;i="rfa"==t||"stp"==t||"step"==t||"stl"==t}else i=!(!t.workerType||-1==t.workerType.indexOf("rfa-")&&-1==t.workerType.indexOf("stp-")&&-1==t.workerType.indexOf("omni-"));return i}_isRfa(){const e=this._manifest,t=this.getMetaData();let i=!1;if(e.Metadata.FileType){i="rfa"==e.Metadata.FileType}else i=!(!t.workerType||-1==t.workerType.indexOf("rfa-"));return i}setVisible(e){this.getCloudViewer().showScene(this.modelId,e)}getViewer(){return this._viewer}getCloudViewer(){return this._cloudViewer}setBorderLineWithFilter(e){if(e.wireframeColor&&this.getCloudViewer().setWireframeColor(e.wireframeColor),e.borderLineVisibility)this.setBorderLine(e.borderLineVisibility);else{if(!this._data)return;const e=this._manifest;let t;e&&(e.FileType?t=e.FileType:e.Metadata&&e.Metadata.FileType&&(t=e.Metadata.FileType)),"rvt"===t&&this.setRvtBorderLine()}}setRvtBorderLine(){this.getCloudViewer().getFilter().setConditions(f.EnumConditionType.BORDERLINE,[{categoryId:E}],this.modelId)}setBorderLine(e){this.getCloudViewer().getFilter().setConditions(f.EnumConditionType.BORDERLINE,e,this.modelId)}setWireFrameVisibilityCondition(e){this.getCloudViewer().getFilter().setWireFrameVisibilityCondition(e,this.modelId)}isUserIdExist(e){return this.getCloudViewer().modelManager.isUserIdExist(e,this.modelId)}getMatchIds(e){return this.getCloudViewer().getFilter().getMatchIds(e,this.modelId)}_executeByCondition(e,t){e&&((e=this._parseCondition(e)).all?S.assertType(t.all,"func")&&t.all():(e.objectData&&e.objectData.length>0&&S.assertType(t.objectData,"func")&&t.objectData(e.objectData),e.ids&&e.ids.length>0&&S.assertType(t.ids,"func")&&t.ids(e.ids),e.noObjectData&&e.noObjectData.length>0&&S.assertType(t.noObjectData,"func")&&t.noObjectData(e.noObjectData),e.noIds&&e.noIds.length>0&&S.assertType(t.noIds,"func")&&t.noIds(e.noIds)))}_parseCondition(e){let t;if(S.assertType(e,"str"))t=this._codeToCondition(e);else if(S.assertType(e,"arr")){let i=[],o=[];e.forEach((e=>{S.assertType(e,"obj")?o.push(e):i.push(e)})),t={ids:i,objectData:o}}else S.assertType(e,"obj")&&(t=e);return t}getObjectData(){const e=this.getCloudViewer().getModelManager().getModel(this.modelId);if(e instanceof f.BimTilesModel){if(e.tilesLoader&&e.tilesLoader.tileReader&&e.tilesLoader.tileReader.globalUserdataBuffer)return e.tilesLoader.tileReader.globalUserdataBuffer.getBlobHeader().getKeysList()}else{let t=Object.values(e.getLoader().getDescriptor().mapNodeInfoByUserId);if(t&&t.length>0)for(let e=0;e<t.length;e++){let i=t[e];if(i&&i.length>0)for(let e=0;e<i.length;e++){let t=i[e];if(t&&t.userData)return Object.keys(t.userData)}}}}getComponentContours(e){let t=null;const i=this.getCloudViewer().getFilter();if(e.ids)t=e.ids;else if(e.userData)t=i.getMatchIds(e.userData,this.modelId);else{if(!e.all)return void this.console.warn("Parameter condition is invalid.");t=i.getMatchIds([],this.modelId)}this.getCloudViewer().getModelManager().getModel(this.modelId).calculateClippingContours(t);let o=[];const n=f.FillClipPlaneManager.getInstance(this.getCloudViewer().getScene()).capsIntersectContour;for(const e in n){const t=n[e];for(const e in t){let i={};i.modelId=this.modelId,i.objectId=e,i.contours=[];const n=f.ClipPlaneContourManager.concatContours(t[e].clippingContours),s=f.ClipPlaneContourManager.searchInnerRing(n);let r=[];Object.values(s).map((e=>{e.map((e=>{r.push(e)}))})),n.map(((o,a)=>{let l={},h=(e,t)=>{e.outerRing=[],t.map((t=>{const i={x:t.x,y:t.y,z:t.z};e.outerRing.push(i)}))};if(s[a]){h(l,o);let e=[];s[a].map((t=>{e.push(n[t])})),e.length>0&&(l.innerRing=[]),e.map((e=>{let t=[];e.map((e=>{const i={x:e.x,y:e.y,z:e.z};t.push(i)})),l.innerRing.push(t)}))}else{if(r.indexOf(a)>-1)return;h(l,o)}i.colors=t[e].colors,i.contours.push(l)})),o.push(i)}}return o}getObjectDataById(e){return I.send(B,"getObjectDataById"),this.getCloudViewer().getUserdataByUserId(e,this.modelId)}restoreDefault(){I.send(B,"restoreDefault"),this.activateAllComponents(),this.getViewer().clearAllRooms(),this.clearIsolation(),this.clearSelectedComponents(),this.showAllComponents(),this.opaqueAllComponents()}restoreAllDefault(){I.send(B,"restoreAllDefault"),this.clearOverrideColorComponents(),this.restoreDefault()}getComponentStatus(e){if(this.isUserIdExist(e)){const t=this.getCloudViewer().getFilter(),i=t.isHidden(e,this.modelId),o=t.isFrozen(e,this.modelId);return i?"hidden":o?"translucent":"show"}}isIsolate(){return this.getCloudViewer().getFilter().isIsolate(this.modelId)}isFiltering(){return this.getCloudViewer().getFilter().isFiltering(this.modelId)}isolateComponentsById(e,t){I.send(B,"isolateComponentsById"),this.getCloudViewer().getFilter().addToIsolateList(e,t,this.modelId)}isolateComponentsByObjectData(e,t){I.send(B,"isolateComponentsByObjectData");const i=this.getCloudViewer().getFilter();let o={MakeOthersTranslucent:3,HideOthers:1};i.clearAllIsolateConditions(this.modelId),e&&i.setIsolateConditions(e,o[t],this.modelId)}clearIsolation(){I.send(B,"clearIsolation"),this.getCloudViewer().getFilter().clearIsolation(this.modelId)}isolateByBox(e,t){const i=this.getCloudViewer();this.clearIsolation(),this.getViewer().render();const o=i.getObjectsInBox(e);this.isolateComponentsById(o,t)}setIsolatedComponentColor(e){I.send(B,"setIsolatedComponentColor");const t=this.getCloudViewer().getFilter();let i={color:parseInt(e.getHEX(),16),opacity:e.getAlpha()};t.setFrozonMaterial(i,this.modelId)}setTransparentedComponentColor(e){I.send(B,"setTransparentedComponentColor");const t=this.getCloudViewer().getFilter();let i={color:parseInt(e.getHEX(),16),opacity:e.getAlpha()};t.setFrozonMaterial(i,this.modelId)}restoreIsolatedComponentColor(){I.send(B,"restoreIsolatedComponentColor");this.getCloudViewer().getFilter().setFrozonMaterial({color:void 0,opacity:void 0},this.modelId)}getIsolatedComponentColor(){const t=this.getCloudViewer().getFilter().getFrozonMaterial(this.modelId),i=t.color,o=t.opacity;return new e.Web.Graphics.Color(255*i.r,255*i.g,255*i.b,o)}showComponentsById(e){I.send(B,"showComponentsById"),this.getCloudViewer().getFilter().showByIds(e,this.modelId)}showComponentsByObjectData(e){I.send(B,"showComponentsByObjectData"),this.getCloudViewer().getFilter().showByConditions(e,this.modelId)}showAllComponents(e,t){if("oap-osgb2bimtiles"===this._data.workerType)e&&e(),this.setVisible(!0),t&&t();else{I.send(B,"showAllComponents");const i=this.getCloudViewer();f.GlobalData.LoadMpkOnDemand?i.loadMpkOnDemand(null,e,(e=>{i.getFilter().showAll(this.modelId),i.render(),t&&t()})):i.getFilter().showAll(this.modelId)}}showExclusiveComponentsByObjectData(e,t,i){I.send(B,"showExclusiveComponentsByObjectData");const o=this.getCloudViewer(),n=o.getFilter(),s=e=>{if("all"==e)n.showAll(this.modelId);else if(e instanceof Array&&0==e.length)n.hideAll(this.modelId);else{if(!(e instanceof Array))return void this.console.warn("Parameter conditions is invalid.");n.showScene(this.modelId),n.hideOthersByConditions(e,this.modelId),n.showByConditions(e,this.modelId)}};f.GlobalData.LoadMpkOnDemand?o.loadMpkOnDemand(e,t,(e=>{s(e),o.render(),i&&i()})):s(e)}hideComponentsById(e){I.send(B,"hideComponentsById"),this.getCloudViewer().getFilter().hideByIds(e,this.modelId)}hideComponentsByObjectData(e){I.send(B,"hideComponentsByObjectData"),this.getCloudViewer().getFilter().hideByConditions(e,this.modelId)}hideAllComponents(){"oap-osgb2bimtiles"===this._data.workerType?this.setVisible(!1):(I.send(B,"hideAllComponents"),this.getCloudViewer().getFilter().hideAll(this.modelId))}transparentComponentsById(e){I.send(B,"transparentComponentsById"),this.getCloudViewer().getFilter().makeTranslucentByIds(e,this.modelId)}transparentComponentsByObjectData(e){I.send(B,"transparentComponentsByObjectData"),this.getCloudViewer().getFilter().makeTranslucentByConditions(e,this.modelId)}transparentAllComponents(){I.send(B,"transparentAllComponents"),this.getCloudViewer().getFilter().makeTranslucentOthersByIds([],this.modelId)}opaqueComponentsById(e){I.send(B,"opaqueComponentsById"),this.getCloudViewer().getFilter().opaqueByIds(e,this.modelId)}opaqueComponentsByObjectData(e){I.send(B,"opaqueComponentsByObjectData"),this.getCloudViewer().getFilter().opaqueByConditions(e,this.modelId)}opaqueAllComponents(){I.send(B,"opaqueAllComponents");const e=this.getCloudViewer().getFilter();e.opaqueAll(this.modelId),e.opaqueByIds([],this.modelId)}setComponentsOpacity(e,t){I.send(B,"setComponentsOpacity"),"Translucent"==t?this.transparentComponentsById(e):"Opaque"==t&&this.opaqueComponentsById(e)}addSelectedComponentsById(e){I.send(B,"addSelectedComponentsById"),this.getCloudViewer().addToSelection(e,this.modelId)}setSelectedComponentsById(e){I.send(B,"setSelectedComponentsById"),void 0!==e?this.getCloudViewer().setSelection(e,this.modelId):this.clearSelectedComponents()}addSelectedComponentsByObjectData(e){I.send(B,"addSelectedComponentsByObjectData");const t=this.getCloudViewer().getFilter().getMatchIds(e,this.modelId);this.getCloudViewer().addToSelection(t,this.modelId)}setSelectedComponentsByObjectData(e){I.send(B,"setSelectedComponentsByObjectData");const t=this.getCloudViewer().getFilter().getMatchIds(e,this.modelId);this.getCloudViewer().setSelection(t,this.modelId)}getSelectedComponents(){return I.send(B,"getSelectedComponents"),this.getCloudViewer().getSelection(this.modelId)}removeSelectedId(e){I.send(B,"removeSelectedId"),this.getCloudViewer().removeFromSelection(e,this.modelId)}clearSelectedComponents(){this.getCloudViewer().clearSelection(this.modelId)}zoomToSelectedComponents(e,t,i){I.send(B,"zoomToSelectedComponents"),1===arguments.length&&"[object Function]"===Object.prototype.toString.call(arguments[0])?(e=1,t=arguments[0]):2===arguments.length&&"[object Number]"===Object.prototype.toString.call(arguments[1])?(e=arguments[0],i=arguments[1]):2===arguments.length&&"[object Function]"===Object.prototype.toString.call(arguments[1])?(e=arguments[0],t=arguments[1]):e=e||1,void 0===i&&(i=1e3),this.getCloudViewer().zoomToSelection(e,void 0,"[object Function]"===Object.prototype.toString.call(t)?t:void 0,this.modelId,i)}deactivateComponentsById(e){this.getCloudViewer().getFilter().deactivateByIds(e,this.modelId)}activateComponentsById(e){const t=this.getCloudViewer().getFilter().getInactivatedIdMap(this.modelId);let i=Object.keys(t);const o=e.map(Number);i=i.filter((e=>!o.includes(parseInt(e)))),this.activateAllComponents(),this.deactivateComponentsById(i)}deactivateComponentsByObjectData(e){const t=this.getCloudViewer().getFilter();let i=t.getMatchIds(e,this.modelId);t.deactivateByIds(i,this.modelId)}activateComponentsByObjectData(e){let t=this.getCloudViewer().getFilter().getMatchIds(e,this.modelId);this.activateComponentsById(t)}activateAllComponents(){this.getCloudViewer().getFilter().clearInactivatedIdMap(this.modelId)}addBlinkComponentsById(e,t){this.getCloudViewer().addBlinkComponentsById(e,this.modelId,t)}setBlinkComponentsById(e,t){this.getCloudViewer().setBlinkComponentsById(e,this.modelId,t)}addBlinkComponentsByObjectData(e,t){let i=this.getCloudViewer().getFilter().getMatchIds(e,this.modelId);this.getCloudViewer().addBlinkComponentsById(i,this.modelId,t)}getBlinkComponents(){return this.getCloudViewer().getBlinkComponents(this.modelId)}clearBlinkComponentsById(e){this.getCloudViewer().clearBlinkComponentsById(e,this.modelId)}clearBlinkComponentsByObjectData(e){let t=this.getCloudViewer().getFilter().getMatchIds(e,this.modelId);this.getCloudViewer().clearBlinkComponentsById(t,this.modelId)}clearAllBlinkComponents(){this.getCloudViewer().clearAllBlinkComponents(this.modelId)}setBlinkColor(e){const t={color:parseInt(e.getHEX(),16),opacity:e.getAlpha()};this.getCloudViewer().setBlinkColor(t,this.modelId)}setBlinkIntervalTime(e){this.getCloudViewer().setBlinkIntervalTime(e,this.modelId)}overrideComponentsColorById(e,t){I.send(B,"overrideComponentsColorById");const i=this.getCloudViewer().getFilter(),o={color:parseInt(t.getHEX(),16),opacity:t.getAlpha()};i.addToOverrideListByColor(e,o,this.modelId)}overrideComponentsColorByObjectData(e,t){I.send(B,"overrideComponentsColorByObjectData");const i=this.getCloudViewer().getFilter(),o={color:parseInt(t.getHEX(),16),opacity:t.getAlpha()};i.addToOverrideListByConditions(e,o,this.modelId)}restoreComponentsColorById(e){I.send(B,"restoreComponentsColorById"),this.getCloudViewer().getFilter().addToOverrideListByColor(e,null,this.modelId)}restoreComponentsColorByObjectData(e){I.send(B,"restoreComponentsColorByObjectData"),this.getCloudViewer().getFilter().addToOverrideListByConditions(e,null,this.modelId)}getMaterialsByComponentId(e){if("string"==typeof e)return this.getCloudViewer().getMaterialsByComponentId(this.modelId,e);this.console.warn("Parameter componentId must be type of string.")}overrideComponentsMaterialById(e,t){if(!(e instanceof Array&&t instanceof THREE.Material))return void this.console.warn("Parameter componentIds must be type of Array and material must be type of THREE.Material.");this.getCloudViewer().getFilter().addToOverrideListByMaterialAndId(e,t,this.modelId)}restoreComponentsMaterialById(e){e instanceof Array?this.getCloudViewer().getFilter().addToOverrideListByMaterialAndId(e,null,this.modelId):this.console.warn("Parameter componentIds must be type of Array.")}overrideComponentsOpacityById(e,t){if(I.send(B,"overrideComponentsOpacityById"),"[object Array]"!==Object.prototype.toString.call(e))return;if("[object Number]"!==Object.prototype.toString.call(t))return;t=t>1?1:t<0?0:t,t=Math.floor(10*t)/10;const i={type:"ids",param:e};this.getCloudViewer().getFilter().addToOverrideListByOpacity(i,t,this.modelId)}overrideComponentsOpacityByObjectData(e,t){if(I.send(B,"overrideComponentsOpacityByObjectData"),"[object Array]"!==Object.prototype.toString.call(e))return;if("[object Number]"!==Object.prototype.toString.call(t))return;t=t>1?1:t<0?0:t,t=Math.floor(10*t)/10;const i={type:"conditions",param:e};this.getCloudViewer().getFilter().addToOverrideListByOpacity(i,t,this.modelId)}restoreComponentsOpacityById(e){if(I.send(B,"restoreComponentsOpacityById"),"[object Array]"!==Object.prototype.toString.call(e))return;const t={type:"ids",param:e};this.getCloudViewer().getFilter().removeOverrideListByOpacity(t,this.modelId)}restoreComponentsOpacityByObjectData(e){if(I.send(B,"restoreComponentsOpacityByObjectData"),"[object Array]"!==Object.prototype.toString.call(e))return;const t={type:"conditions",param:e};this.getCloudViewer().getFilter().removeOverrideListByOpacity(t,this.modelId)}clearOverrideColorComponents(){I.send(B,"clearOverrideColorComponents"),this.getCloudViewer().getFilter().clearAllOverrideList(this.modelId)}overrideComponentsFrameColorById(e,t){I.send(B,"overrideComponentsFrameColorById"),this.getCloudViewer().getFilter().addToOverrideListForWireFrameByColor(e,{color:parseInt(t.getHEX(),16),opacity:t.getAlpha()},this.modelId)}restoreComponentsFrameColorById(e){I.send(B,"restoreComponentsFrameColorById"),this.getCloudViewer().getFilter().addToOverrideListForWireFrameByColor(e,null,this.modelId)}overrideComponentsFrameColorByObjectData(e,t){I.send(B,"overrideComponentsFrameColorByObjectData"),this.getCloudViewer().getFilter().addToOverrideListForWireFrameByConditions(e,{color:parseInt(t.getHEX(),16),opacity:t.getAlpha()},this.modelId)}restoreComponentsFrameColorByObjectData(e){I.send(B,"restoreComponentsFrameColorByObjectData"),this.getCloudViewer().getFilter().addToOverrideListForWireFrameByConditions(e,null,this.modelId)}setWireframeColor(e){I.send(B,"setWireframeColor"),this.overrideComponentsFrameColorByObjectData([],e)}restoreWireframeColor(){I.send(B,"restoreWireframeColor"),this.restoreComponentsFrameColorByObjectData([])}overrideAllComponentsColor(e){I.send(B,"overrideAllComponentsColor"),this.overrideComponentsColorByObjectData([],e)}highlightComponentsById(e,t,i){if(!i)return!1;this.getCloudViewer().getFilter().setOverriderByUserIds(i,e,{Red:"red",Orange:"beforeEdit",Yellow:"yellow",Green:"green",Blue:"blue",Black:"black"}[t],this.modelId)}highlightComponentsByObjectData(e,t){const i=this.getCloudViewer().getFilter(),o={Red:"red",Orange:"beforeEdit",Yellow:"yellow",Green:"green",Blue:"blue",Black:"black "};let n=[];for(var s=0,r=e.length;s<r;s++)n.push({condition:e[s],material:o[t]});i.setConditionOverrider(n,this.modelId)}localClippingComponentsById(e){const t={type:"ids",param:e};this.getCloudViewer().getFilter().addToLocalClippingList(t,this.modelId)}localClippingComponentsByObjectData(e){const t={type:"conditions",param:e};this.getCloudViewer().getFilter().addToLocalClippingList(t,this.modelId)}clearLocalClipping(){this.getCloudViewer().getFilter().clearLocalClippingList(this.modelId)}getBoundingBoxById(e){const t=this.getViewer().externalComponentManager;if(t&&t.isUserIdExist(e))return t.getBoundingBoxById(e);if(this.isUserIdExist(e)){let t={};t[e]=!0;let i=this.getCloudViewer().getBoundingBoxByIds(t,this.modelId),o=this.getViewer().sceneToWorld(i.min.clone()),n=this.getViewer().sceneToWorld(i.max.clone()),s=new THREE.Vector3(o.x,o.y,o.z),r=new THREE.Vector3(n.x,n.y,n.z);return(new THREE.Box3).setFromPoints([s,r])}}getBoundingBoxByIds(e){let t,i={x:1/0,y:1/0,z:1/0},o={x:-1/0,y:-1/0,z:-1/0};if(e.forEach((e=>{let n=this.getBoundingBoxById(e);n&&(t=!0,i={x:Math.min(i.x,n.min.x),y:Math.min(i.y,n.min.y),z:Math.min(i.z,n.min.z)},o={x:Math.max(o.x,n.max.x),y:Math.max(o.y,n.max.y),z:Math.max(o.z,n.max.z)})})),t){let e=new THREE.Vector3(i.x,i.y,i.z),t=new THREE.Vector3(o.x,o.y,o.z);return(new THREE.Box3).setFromPoints([e,t])}}getBoundingBoxByModelId(e,t){this.console.obsolete("BimModel.getBoundingBoxByModelId(modeld, callback)","BimModel.getBoundingBox(fileId, callback)");this._data.path||this._opt.resourceHost,this._data.databagId;const i=this._data.modelType;if("singleModel"==i){let i=this.getCloudViewer().modelManager.getModel(e);if(null!=i){let e=i.getBoundingBoxWorld();t&&t(e)}else t&&t(null)}else if("integrateModel"==i){let i=!1;if(this._data.config&&(i="true"==this._data.config["integrate-with-links"]),i){const i=this._getMetaDataManager();let o=(e,t)=>{let i=null;for(let n=0;n<t.length;n++){const s=t[n];if(s.linkPathHash===e)return i={},i.databagId=s.databagId,i.linkTransform=s.linkTransform,i;if(s.links.length>0&&(i=o(e,s.links),null!=i))return i}return i};(()=>new Promise(((e,t)=>{i.getLinkGraph((t=>{e(t)}))})))().then((i=>{let n=o(e,i);if(null!=n){let e=new THREE.Matrix4;""!=n.linkTransform&&e.fromArray(JSON.parse(n.linkTransform)),this.getModelInfo((i=>{let o=i.view,n=(new THREE.Box3).setFromArray(o.bbox);n.applyMatrix4(e),t&&t(n)}),(e=>{t&&t(null)}))}else t&&t(null)}))}else this.getFiles((i=>{let o=null;for(let t=0;t<i.length;t++){const n=i[t];if(n.fileId.toString()===e){o={},o.databagId=n.databagId.toString();break}}let n=this.getCloudViewer().modelManager.getModel(e);null!=o||n?this.getModelInfo((e=>{if(e.metadata&&"bimtiles"==e.metadata.asset)if(o)this.getBimtileInfo(o.databagId,e.metadata.root,(e=>{const i=e.root.boundingVolume;let o=(new THREE.Box3).setFromArray(i);t&&t(o)}),(()=>{t&&t(null)}));else if(n){let e=n.getBoundingBoxWorld();t&&t(e)}else t&&t(null);else{let i=e.view,o=(new THREE.Box3).setFromArray(i.bbox);t&&t(o)}}),(e=>{t&&t(null)})):t&&t(null)}))}}constructNormalBoundingPoints(e,t){const i=t.x,o=t.y,n=t.z,s=e.x,r=e.y,a=e.z;return[[i,o,a],[i,r,a],[i,r,n],[s,o,a],[s,r,a],[s,r,n]]}calculateMaxMInBoundingAfterMatrix(e,t,i){const o=this.constructNormalBoundingPoints(e,t),n=i.elements?t.applyMatrix4(i):t,s=i.elements?e.applyMatrix4(i):e;let r=n.x>s.x?s.x:n.x,a=n.y>s.y?s.y:n.y,l=n.z>s.z?s.z:n.z,h=n.x>s.x?n.x:s.x,c=n.y>s.y?n.y:s.y,d=n.z>s.z?n.z:s.z;for(let e=0;e<6;e++){let t=i.elements?(new THREE.Box3).setFromArray(o[e]).applyMatrix4(i):(new THREE.Box3).setFromArray(o[e]);t.min.x<r&&(r=t.min.x),t.min.y<a&&(a=t.min.y),t.min.z<l&&(l=t.min.z),t.max.x>h&&(h=t.max.x),t.max.y>c&&(c=t.max.y),t.max.z>d&&(d=t.max.z)}return{min:{x:r,y:a,z:l},max:{x:h,y:c,z:d}}}getBoundingBox(e,t){const i=this._data.modelType;let o=this.getCloudViewer().modelManager;if(1==arguments.length&&"function"==typeof e){let t=o.getModel(this.modelId);if(null!=t){const i={originalBoundingBox:t.getRawBoundingBox(),currentBoundingBox:t.getBoundingBoxWorld()};e&&e(i)}else e&&e(null)}else if("singleModel"==i){let i=o.getModel(e);if(null!=i){const e={originalBoundingBox:i.getRawBoundingBox(),currentBoundingBox:i.getBoundingBoxWorld()};2==arguments.length&&t&&t(e)}else t&&t(null)}else if("integrateModel"==i){let i=!1;if(this._data.config&&(i="true"==this._data.config["integrate-with-links"]),i){const i=this._getMetaDataManager();let o=(e,t)=>{let i=null;for(let n=0;n<t.length;n++){const s=t[n];if(s.linkPathHash===e)return i={},i.databagId=s.databagId,i.linkTransform=s.linkTransform,i;if(s.links.length>0&&(i=o(e,s.links),null!=i))return i}return i};(()=>new Promise(((e,t)=>{i.getLinkGraph((t=>{e(t)}))})))().then((i=>{let n=o(e,i);if(null!=n){let e=new THREE.Matrix4;""!=n.linkTransform&&e.fromArray(JSON.parse(n.linkTransform)),this.getModelInfo((i=>{let o=i.view,n=new Object,s=(new THREE.Box3).setFromArray(o.bbox);n.originalBoundingBox=s,n.currentBoundingBox=this.calculateMaxMInBoundingAfterMatrix(s.max,s.min,e),t&&t(n)}),(e=>{t&&t(null)}))}else t&&t(null)}))}else this.getFiles((i=>{let o=null;for(let t=0;t<i.length;t++){const n=i[t];if(n.fileId.toString()===e){o={},o.databagId=n.databagId.toString();break}}let n=this.getCloudViewer().modelManager.getModel(e);if(null!=o)this.getModelInfo((e=>{var i=e.metadata&&"bimtiles"==e.metadata.asset;this.getBimtileInfo(o.databagId,"config.json",(e=>{if(e.metadata&&"bimtiles"==e.metadata.asset)o?this.getBimtileInfo(o.databagId,e.metadata.root,(e=>{const o=e.root.boundingVolume;let n=(new THREE.Box3).setFromArray(i?o:[1e3*o[0],1e3*o[1],1e3*o[2],1e3*o[3],1e3*o[4],1e3*o[5]]),s=(new THREE.Box3).setFromArray(i?o:[1e3*o[0],1e3*o[1],1e3*o[2],1e3*o[3],1e3*o[4],1e3*o[5]]);const r=new THREE.Matrix4;r.elements=this.getModelTransformation();let a=new Object;a.originalBoundingBox=n,a.currentBoundingBox=this.calculateMaxMInBoundingAfterMatrix(s.max,s.min,r),t&&t(a)}),(()=>{t&&t(null)})):t&&t(null);else{let o=e.view,n=(new THREE.Box3).setFromArray(i?[o.bbox[0]/1e3,o.bbox[1]/1e3,o.bbox[2]/1e3,o.bbox[3]/1e3,o.bbox[4]/1e3,o.bbox[5]/1e3]:o.bbox),s=(new THREE.Box3).setFromArray(i?[o.bbox[0]/1e3,o.bbox[1]/1e3,o.bbox[2]/1e3,o.bbox[3]/1e3,o.bbox[4]/1e3,o.bbox[5]/1e3]:o.bbox);const r=new THREE.Matrix4;r.elements=this.getModelTransformation();let a=new Object;a.originalBoundingBox=n,a.currentBoundingBox=this.calculateMaxMInBoundingAfterMatrix(s.max,s.min,r),t&&t(a)}}),(()=>{t&&t(null)}))}));else if(n){const e={originalBoundingBox:n.getRawBoundingBox(),currentBoundingBox:n.getBoundingBoxWorld()};t&&t(e)}else t&&t(null)}))}}getModelTree(e){I.send(B,"getModelTree");const t=this._getMetaDataManager();t.getTreeNewData(e,(function(){t.getTreeOldData(e)}))}getElementByConditions(e,t,i){I.send(B,"getElementByConditions"),this.console.obsolete("Viewer3D.getModel(modelId).getElementByConditions","Viewer3D.getModel(modelId).getComponentsByConditions");this._getMetaDataManager().getElementByConditions(e,t,i)}getComponentsByConditions(e,t,i){I.send(B,"getComponentsByConditions");this._getMetaDataManager().getComponentsByConditions(this.modelId,e,t,i)}getFiles(e){I.send(B,"getFiles");this._getMetaDataManager().getFiles(e)}getDimensions(e,t,i){I.send(B,"getDimensions");this._getMetaDataManager().getDimensions(e,t,i)}getComponentProperty(e,t,i){I.send(B,"getComponentProperty");const o=this._getMetaDataManager(),n=this._data.config,s=this.getCloudViewer();o.getComponentProperty(e,(i=>{let o=!1;if(n&&(o="true"==n["integrate-with-links"]),0==o)t&&t(i);else{const o=s.getComponentInfoByUserId(e);i.boundingBox=o.boundingBox,t&&t(i)}}),i)}getFamilyProperty(e,t,i){I.send(B,"getFamilyProperty");this._getMetaDataManager().getFamilyProperty(e,(e=>{t&&t(e)}),i)}getComponentOverriddenProperty(e,t,i){I.send(B,"getComponentOverriddenProperty");this._getMetaDataManager().getComponentOverriddenProperty(e,t,i)}getMaterialProperty(e,t,i){I.send(B,"getMaterialProperty");this._getMetaDataManager().getMaterialProperty(e,t,i)}getMinimumComponentDistanceById(e,t){if(I.send(B,"getMinimumComponentDistanceById"),this.isUserIdExist(e)&&this.isUserIdExist(t))return this.getCloudViewer().calculateMinDistance(e,t)}getInformation(){I.send(B,"getInformation");const e=this.getCloudViewer(this.modelId);return{elements:e.getNumOfElements(this.modelId),renderables:e.getNumOfRenderables(this.modelId),triangles:e.getNumOfTriangles(this.modelId),vertices:e.getNumOfVertices(this.modelId)}}getIntegrateTranslation(e){I.send(B,"getIntegrateTranslation"),this.getModelInfo((t=>{let i=t.view.translation||null;i&&(i={x:i[0],y:i[1],z:i[2]}),e&&e(i)}),(t=>{e&&e(null)}))}getModelInfo(e,t){I.send(B,"getModelInfo");this._getMetaDataManager().getModelInfo(e,t)}getBimtileInfo(e,t,i,o){I.send(B,"getBimtileInfo");this._getMetaDataManager().getBimtileInfo(e,t,i,o)}_getModelGroup(){const e=this.getCloudViewer();let t="Model|"+this.modelId,i=e.getScene().getObjectGroup(t),o="BimTilesGroup|"+this.modelId,n=e.getScene().getObjectGroup(o);return i||n}_fireWhenModelChanged(){const t=this.getCloudViewer().getScene(),i=this.getModelTransformation();f.AxisGridManager.updateTransformation(t,this.modelId),f.ExtrudeBodyManager.getInstance(this._cloudViewer).updateTransformation&&f.ExtrudeBodyManager.getInstance(this._cloudViewer).updateTransformation(i,this.modelId);let o=e.Bimface.Viewer.Viewer3DEvent.ModelTransformed;const n={modelId:this.modelId,transformation:i};this._layer&&(n.layerId=this._layer.id),this._viewer.getEventManager().fireEvent(o,n),this._viewer.updateSceneBoundingBox(!1)}setModelTranslation(e){if(!e)return void console.log("Parameter translation is required.");let t=this.getCloudViewer(),i=this._getModelGroup();if(!i)return;let o=new THREE.Vector3(e.x,e.y,e.z),n=t.modelManager.getModel(this.modelId);n.translate(o),i.transformMatrix=n.getTransformMatrix(),t.modelManager.updateScene(),t.rendererManager.getPickingEffecter().apply(!0),this.getViewer().render(),this._fireWhenModelChanged()}_setModelRotation(e,t,i){if(!e||!i)return void console.log("Parameter basePoint and rotation is required.");let o=this.getCloudViewer(),n=this._getModelGroup();if(!n)return;let s=new THREE.Vector3(e.x,e.y,e.z),r=o.modelManager.getModel(this.modelId);r.rotateOnBasePoint(s,t,i),n.transformMatrix=r.getTransformMatrix(),o.modelManager.updateScene(),o.rendererManager.getPickingEffecter().apply(!0),this.getViewer().render(),this._fireWhenModelChanged()}setModelRotationX(e,t){let i=new THREE.Vector3(1,0,0);this._setModelRotation(e,i,t)}setModelRotationY(e,t){let i=new THREE.Vector3(0,1,0);this._setModelRotation(e,i,t)}setModelRotationZ(e,t){let i=new THREE.Vector3(0,0,1);this._setModelRotation(e,i,t)}setModelScale(e,t){if(!e||!t)return void console.log("Parameter basePoint and scale is required.");if(0===t)return void console.log("Invalid argument, value of scale must a number except zero.");let i=this.getCloudViewer(),o=this._getModelGroup();if(!o)return;let n="number"==typeof t?new THREE.Vector3(t,t,t):t,s=new THREE.Vector3(e.x,e.y,e.z),r=i.modelManager.getModel(this.modelId);r.scaleOnBasePoint(s,n),o.transformMatrix=r.getTransformMatrix(),i.modelManager.updateScene(),i.rendererManager.getPickingEffecter().apply(!0),this.getViewer().render(),this._fireWhenModelChanged()}getModelTransformation(){const e=this.getCloudViewer().modelManager.getModel(this.modelId);if(!e)return;return e.getTransformMatrix().elements}setModelTransformation(e){if(!e)return void console.log("Parameter modelTransformation is required.");if(["[object Float32Array]","[object Array]"].indexOf(Object.prototype.toString.call(e))<0)return void console.log("Parameter modelTransformation should be a array.");const t=this.getCloudViewer(),i=this._getModelGroup();if(!i)return;const o=(new THREE.Matrix4).fromArray(e);t.modelManager.getModel(this.modelId).setTransformMatrix(o),i.transformMatrix=o,t.modelManager.updateScene();t.rendererManager.getPickingEffecter().apply(!0),this.getViewer().render(),this._fireWhenModelChanged()}getSegmentGroups(e,t){this._getMetaDataManager().getSegmentGroups((t=>{e&&e(t)}),(e=>{t&&t(e)}))}getSegmentFromGroups(e,t,i){this._getMetaDataManager().getSegmentFromGroups(e,(e=>{t&&t(e)}),(e=>{i&&i(e)}))}getSegmentTree(e,t){this._getMetaDataManager().getSegmentTree((t=>{e&&e(t)}),(e=>{t&&t(e)}))}getSegmentById(e,t,i){this._getMetaDataManager().getSegmentById(e,(e=>{t&&t(e)}),(e=>{i&&i(e)}))}getSegmentElementIds(e,t,i){this._getMetaDataManager().getSegmentElementIds(e,(e=>{t&&t(e)}),(e=>{i&&i(e)}))}getPartialElementsMetadata(e,t,i){this._getMetaDataManager().getPartialElementsMetadata(e,(e=>{t&&t(e)}),(e=>{i&&i(e)}))}getPartialElementsMetadataFile(e){return this._getMetaDataManager().getPartialElementsMetadataFile(e)}getDatabagResource(e){return this._getMetaDataManager().getDatabagResource(e)}splitComponentByStretchedPlane(e,t){return this.splitComponentByPlane(e,t)}splitComponentByPlane(t,i){let o=[],n=new f.ExternalObjectConverterGroup,s=new f.ExternalObjectConverterGroup,r=[];const a=(e,t,i,o)=>{if("INFINITE"==o){let o=new THREE.Matrix4;o.copy(i).invert();let n=t.clone().applyMatrix4(o),s=f.GeomUtil.getGeometrySplitByPlane(e.geometry,n),r=e.material,a=new THREE.Mesh(s,r);return a.matrix=e.matrix.clone(),a.matrix.decompose(a.position,a.quaternion,a.scale),a}if("FINITE"==o){let o,n=new THREE.Vector3(t.point.x,t.point.y,t.point.z),s=new THREE.Vector3(t.normal.x,t.normal.y,t.normal.z);o=0!=s.y?new THREE.Vector3(1,-s.x/s.y,0):0!=s.x?new THREE.Vector3(-s.y/s.x,1,0):new THREE.Vector3(1,0,0),o.normalize().multiplyScalar(t.range.width/2);let r=s.clone().cross(o);r.normalize().multiplyScalar(t.range.height/2);const a=(new THREE.Matrix4).copy(i).invert(),l=(new THREE.Matrix3).getNormalMatrix(a);let h={center:n.applyMatrix4(a),normal:s.applyNormalMatrix(l),x:o.applyMatrix3(l),y:r.applyMatrix3(l)},c=f.GeomUtil.getGeometrySplitByFinitePlane(e,h);for(let t=0,i=c.length;t<i;t++){let i=e[t].object.material,o=new THREE.Mesh(c[t][0],i),n=new THREE.Mesh(c[t][1],i);o.matrix=new THREE.Matrix4,o.matrix.decompose(o.position,o.quaternion,o.scale),n.matrix=new THREE.Matrix4,n.matrix.decompose(n.position,n.quaternion,n.scale),c[t]=[o,n]}return c}if("MULTI"==o){let i=new THREE.Vector3(0,0,0);"X"==t.stretch.direction?i.x=1:"Y"==t.stretch.direction?i.y=1:"Z"==t.stretch.direction?i.z=1:console.log("stretch direction should be one of X/Y/Z");const o=e[0].parentMatrix.clone().multiply(e[0].object.matrix.clone().invert());let n={points:t.points.map((e=>new THREE.Vector3(e.x,e.y,e.z).applyMatrix4(o))),stretch:i.applyMatrix4(o)},s=f.GeomUtil.getGeometrySplitByMultiPlane(e,n);for(let t=0,i=s.length;t<i;t++){let i=e[t].object.material,o=new THREE.Mesh(s[t][0],i),n=new THREE.Mesh(s[t][1],i);o.matrix=new THREE.Matrix4,o.matrix.decompose(o.position,o.quaternion,o.scale),n.matrix=new THREE.Matrix4,n.matrix.decompose(n.position,n.quaternion,n.scale),s[t]=[o,n]}return s}console.log("unknow split mode")};let l="FINITE";null!=i.range&&null!=i.range.width&&null!=i.range.height||(l="INFINITE"),i.points&&i.stretch&&(l="MULTI");const h=(e,t)=>{if(e instanceof THREE.Mesh)if("INFINITE"==l){let o=new THREE.Plane;o.setFromNormalAndCoplanarPoint(new THREE.Vector3(i.normal.x,i.normal.y,i.normal.z),new THREE.Vector3(i.point.x,i.point.y,i.point.z));let r=o.clone();r.normal.multiplyScalar(-1),r.constant*=-1,n.add(a(e,o,t,l)),s.add(a(e,r,t,l))}else r.push({object:e,parentMatrix:t});let o=e.children;for(let e=0,i=o.length;e<i;e++){let i=t.clone();i.multiplyMatrices(t,o[e].matrix),h(o[e],i)}};let c;if("Viewer3D"==this.getViewer().viewerType){if(c=this.getViewer().getExternalObjectByName(t),!c){let i=e.Web.Lang.Utility.UUID.createUUID();c=this.getViewer().convertToExternalObject(i,t,!1)}}else{let i=e.Web.Lang.Utility.UUID.createUUID();c=new f.ExternalObjectConverter(this.getCloudViewer()).convertToExternalObject(i,t,!1)}const d=this.getCloudViewer().modelManager.getModel(this.modelId);if(!d)return;const g=d.getTransformMatrix();if(c instanceof Array)for(var u=0;u<c.length;u++){let e=new THREE.Matrix4;e.multiplyMatrices(g,c[u].matrix),h(c[u],e)}else{let e=new THREE.Matrix4;e.multiplyMatrices(g,c.matrix),h(c,e)}if("INFINITE"!=l){a(r,i,g,l).forEach((e=>{n.add(e[0]),s.add(e[1])}))}return n.applyMatrix4(g),s.applyMatrix4(g),n._modelId=this.modelId,s._modelId=this.modelId,o.push(n),o.push(s),o}setGlowEffectById(t,i){I.send(B,"setGlowEffectById");var o=new THREE.Color("#11DAB7"),n="body",s=.3,r=3;null!=i&&(null!=i.type&&(n=i.type),null!=i.color&&i.color instanceof e.Web.Graphics.Color&&(o=new THREE.Color(i.color.red/255,i.color.green/255,i.color.blue/255)),null!=i.intensity&&(s=i.intensity),null!=i.spread&&(r=i.spread)),this.getCloudViewer().setGlowEffectById(this.modelId,t,{color:o,type:n,intensity:s,spread:r,isGis:!0}),this.getViewer().render()}removeGlowEffectById(e){if(I.send(B,"removeGlowEffectById"),null==e||0==e.length)return void console.warn("没有发光效果被删除。");this.getCloudViewer().removeGlowEffectById(this.modelId,e),this.getViewer().render()}clearGlowEffect(){I.send(B,"clearGlowEffect"),this.getCloudViewer().removeGlowEffectById(this.modelId),this.getViewer().render()}},function(){const t="Glodon.Bimface.Model.BimModel",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Model"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest");class s extends e.Bimface.Model.Model{constructor(e,t,i,o,n){super(e,t,i,o,n),this.getIntegratedFileIds()}getFamilyTypes(t){const i=this.getMetaData(),o=new e.Bimface.Data.FamilyDataManagerConfig;o.databagId=i.databagId,o.dataEnvType=i.dataEnvType,o.resourceHost=this._opt.resourceHost;new e.Bimface.Data.FamilyDataManager(o).getFamilyTypes((e=>{t&&t(e)}))}showFamilyTypeById(o){i.send(t,"showFamilyTypeById");var n=e.Bimface.Viewer.IsolateOption;this.isolateComponentsByObjectData([{typeId:o}],n.HideOthers),this.getViewer().getEventManager().fireEvent(e.Bimface.Viewer.Viewer3DEvent.FamilyTypeChanged,o)}showAllAxisGrids(){i.send(t,"showAllAxisGrids"),this.getViewer()._activeAxisGridManager();const e=this._data.path||this._opt.resourceHost,o=this._data.databagId,s=this._data.modelType;let r={};(()=>new Promise(((t,i)=>{"singleModel"==s?(r.default={},n.ajax({async:!0,url:`${e}/${o}/metadata/levels.json`,success:function(e){r.default=JSON.parse(e).levels,t(r)}})):"integrateModel"==s&&this.getFiles((e=>{let i=e.length;e.forEach((e=>{const o=e.fileId.toString();r[o]={},this.getFloorsbyFileId(o,(e=>{r[o]=e,i--,0==i&&t(r)}))}))}))})))().then((t=>{0==t.length&&console.error("get level error");const i="grids.json"+f.GlobalData.ZipResourcePostfix,n=this.getCloudViewer().getScene();for(let s in t){const r=t[s],a=f.AxisGridManager.getInstance(n,this.modelId);for(let t=0;t<r.length;t++){let n=`${e}/${o}/metadata/${s}/axisgrids/${i}`;null!=s&&""!=s.trim()&&"default"!=s||(n=`${e}/${o}/metadata/axisgrids/${i}`);const l=r[t].elevation,h=r[t].id;a.loadAxisGridsByHeight(n,s,l,h,(()=>{this.getViewer().render()}))}}}),(e=>{console.error("error",e)}))}getNearestAxisGrids(e,o,n){i.send(t,"getNearestAxisGrids");let s=!1;if(this._data.config&&(s="true"==this._data.config["integrate-with-links"]),s)return void console.log("We do not supprot link-integrate model now.");let r=this._data.modelType,a=this._data.path||this._opt.resourceHost,l=this._data.databagId,h=new f.AxisGridManager;h.modelTransformation=(new THREE.Matrix4).fromArray(this.getModelTransformation());let c="singleModel"==r;o=c?null:o;let d="grids.json"+f.GlobalData.ZipResourcePostfix,g=`${a}/${l}/metadata/axisgrids/${d}`;0==c&&(g=`${a}/${l}/metadata/${o}/axisgrids/${d}`),(new THREE.FileLoader).load(g,(t=>{let i=f.AxisGridManager.adaptGridData(JSON.parse(t)),s={};for(let e of i.grids)s[e.name]=e.id;this._getMetaDataManager().dataManager.getLevels(o,(t=>{let r=[],a=[];for(let e of t.levels)r.push(e.id.toString()),a.push(e.elevation);let l={dist:Number.MAX_SAFE_INTEGER,intersect:null};h.formatHidedAxisGridIndex(o,i,r);for(let t=0;t<r.length;t++){let n=h.getHidedAxisGridIndex(o,r[t]);h.prepareGridLines(i,null,n),h.calculateIntersections();let s=h.getNearestIntersection(e,a[t]);s.dist<l.dist&&(l=s)}let c=l.intersect.name,d=h.getIntersectLines(c),g=[];g.push({id:s[d[0].name],name:d[0].name,offset:{x:e.x-d[0][0],y:0}}),g.push({id:s[d[1].name],name:d[1].name,offset:{x:0,y:e.y-d[1][1]}}),h.destroy(),h=null,n&&n(g)}),(e=>{console.log(e)}))}))}showAxisGridsByFloor(e,o,s){i.send(t,"showAxisGridsByFloor"),this.getViewer()._activeAxisGridManager();const r=this._data.path||this._opt.resourceHost,a=this._data.databagId,l=this._data.modelType,h="grids.json"+f.GlobalData.ZipResourcePostfix,c=this.getCloudViewer().getScene();let d,g=!1;this._data.config&&(g="true"==this._data.config["integrate-with-links"]);const u=()=>{this.getViewer().render()};1==g?(t=>new Promise(((i,o)=>{var s=`${r}/${a}/metadata/${e}/levels.json`;n.ajax({async:!0,url:s,success:e=>{const o=JSON.parse(e).levels;for(let e=0;e<o.length;e++)if(o[e].id==t){i(o[e]);break}}})})))(o).then((t=>{let i=0;const n=f.AxisGridManager.getInstance(c,this.modelId);if(t.hasOwnProperty("transform")){const i=t.transform.splice(12,3);n.setLinkFloorId(e,o,t.linkId),n.setTranslation(e,o,i[0],i[1],t.elevation)}else i=t.elevation;d=r+"/"+a+"/metadata/"+e+"/axisgrids/"+h,n.loadAxisGridsByHeight(d,e,i,o,(function(){u(),s&&s(),n.setLinkFloorId(null),n.setTranslation(0,0,0)}))})):new Promise((function(t,i){let s;"singleModel"==l?(d=`${r}/${a}/metadata/axisgrids/${h}`,n.ajax({async:!0,url:`${r}/${a}/metadata/levels.json`,success:function(e){const i=JSON.parse(e).levels;for(let e=0;e<i.length;e++)if(i[e].id==o){s=i[e].elevation;break}t(s)}})):"integrateModel"==l&&(d=`${r}/${a}/metadata/${e}/axisgrids/${h}`,n.ajax({async:!0,url:`${r}/${a}/metadata/${e}/levels.json`,success:function(e){const i=JSON.parse(e).levels;for(let e=0;e<i.length;e++)if(i[e].id==o){s=i[e].elevation;break}t(s)}}))})).then((t=>{if(null==t)return void console.error("get height error");const i=f.AxisGridManager.getInstance(c,this.modelId);"singleModel"==l&&(e="default"),i.loadAxisGridsByHeight(d,e,t,o,(()=>{u(),s&&s()}))}))}showAxisGridsByElevation(e,o,n){i.send(t,"showAxisGridsByElevation"),this.getViewer()._activeAxisGridManager();const s=this._data.path||this._opt.resourceHost,r=this._data.databagId,a="grids.json"+f.GlobalData.ZipResourcePostfix;let l=null;const h=this._data.modelType,c=this.getCloudViewer().getScene();if(null==o)return void console.error("get height error");"singleModel"==h?(e="default",l=`${s}/${r}/metadata/axisgrids/${a}`):"integrateModel"==h&&(l=`${s}/${r}/metadata/${e}/axisgrids/${a}`);const d="_"+o;f.AxisGridManager.getInstance(c,this.modelId).loadAxisGridsByHeight(l,e,o,d,(()=>{this.getViewer().render(),n&&n()}))}bringAxisGridsToFront(e){const t=this.getCloudViewer().getScene();f.AxisGridManager.getInstance(t,this.modelId).enableDepthTest(!e),this.getViewer().bIsBringAxisGridsToFront=e}removeAxisGridsByFloor(e,t,i){const o=this.getCloudViewer().getScene(),n=f.AxisGridManager.getInstance(o,this.modelId);"singleModel"==this._data.modelType&&(e="default"),n.unloadAxisGridsByFloor(e,t),this.getViewer().render(),i&&i()}removeAxisGridsByElevation(e,t){const i=this.getCloudViewer().getScene(),o=f.AxisGridManager.getInstance(i,this.modelId);"singleModel"==this._data.modelType&&(e="default");const n="_"+t;o.unloadAxisGridsByFloor(e,n),this.getViewer().render()}getCurrentAxisGridsState(){const t=this.getCloudViewer().getScene(),i=f.AxisGridManager.getInstance(t,this.modelId);let o=i.getAxisGridState();const n=o.gridLineColor,s=o.gridBubbleColor;return"string"==typeof n&&(o.gridLineColor=new e.Web.Graphics.Color(n,1)),"string"==typeof s&&(o.gridBubbleColor=new e.Web.Graphics.Color(s,1)),o.bIsBringToFront=this.getViewer().bIsBringAxisGridsToFront,o.bIsEnableHover=i.getIsEnableHover(),o}setGridBubblesColor(e){const t=this.getCloudViewer().getScene();f.AxisGridManager.getInstance(t,this.modelId).setGridBubblesColor(e),this.getViewer().render()}getGridBubblesColor(){const t=this.getCloudViewer().getScene();let i=f.AxisGridManager.getInstance(t,this.modelId).getGridBubblesColor();return"string"==typeof i&&(i=new e.Web.Graphics.Color(i,1)),i}setGridLinesColor(e){const t=this.getCloudViewer().getScene();f.AxisGridManager.getInstance(t,this.modelId).setGridLinesColor(e),this.getViewer().render()}getGridLinesColor(){const t=this.getCloudViewer().getScene();let i=f.AxisGridManager.getInstance(t,this.modelId).getGridLinesColor();return"string"==typeof i&&(i=new e.Web.Graphics.Color(i,1)),i}setAxisGridsState(t){this.removeAllAxisGrids(),this.getViewer()._activeAxisGridManager(),t.gridLineColor=(new e.Web.Graphics.Color).fromObject(t.gridLineColor),t.gridBubbleColor=(new e.Web.Graphics.Color).fromObject(t.gridBubbleColor);const i=this._data.path||this._opt.resourceHost,o=this._data.databagId,n="grids.json"+f.GlobalData.ZipResourcePostfix,s=this.getCloudViewer().getScene(),r=f.AxisGridManager.getInstance(s,this.modelId),a=()=>{this.getViewer().render()};let l=!1;this._data.config&&(l="true"==this._data.config["integrate-with-links"]);let h=!!t.fileInfos;if(!h||0!=t.fileInfos.length)if("singleModel"==this._data.modelType){const e=`${i}/${o}/metadata/axisgrids/${n}`,s=h?t.fileInfos[0].floorInfos:t.floorInfos;let l=0;for(let i=0;s&&i<s.length;i++){const o=s[i].id,n=s[i].height;r.loadAxisGridsByHeight(e,"default",n,o,(()=>{a&&a(),++l==s.length&&(this.setGridLinesColor(t.gridLineColor),this.setGridBubblesColor(t.gridBubbleColor))}))}}else if(1==l){let e=0,i=0;const o=h?t.fileInfos:Object.keys(t);for(let n of o){let o=n.fileId,s=n.floorInfos;0==h&&(o=n,s=t[o]);for(let n=0;s instanceof Array&&n<s.length;n++){i++;const r=s[n].id;-1==r.indexOf("_")?this.showAxisGridsByFloor(o,r,(()=>{a&&a(),++e==i&&(this.setGridLinesColor(t.gridLineColor),this.setGridBubblesColor(t.gridBubbleColor))})):this.showAxisGridsByElevation(o,s[n].height,(()=>{++e==i&&this.getViewer().render()}))}}}else{let e=0,s=0;const l=h?t.fileInfos:Object.keys(t);for(let c of l){let l=c.fileId,d=c.floorInfos;0==h&&(l=c,d=t[l]);for(let h=0;d instanceof Array&&h<d.length;h++){s++;const c=d[h].id,g=d[h].height,u=`${i}/${o}/metadata/${l}/axisgrids/${n}`;r.loadAxisGridsByHeight(u,l,g,c,(()=>{a&&a(),++e==s&&(this.setGridLinesColor(t.gridLineColor),this.setGridBubblesColor(t.gridBubbleColor))}))}}}}showAxisGrid(e,t,i){const o=this._data.path||this._opt.resourceHost,n=this._data.databagId,s=t+".json"+f.GlobalData.ZipResourcePostfix,r=this.getCloudViewer().getScene();let a=`${o}/${n}/metadata/axisgrids/${s}`;"string"==typeof e&&""!=e.trim()&&(a=`${o}/${n}/metadata/${e}/axisgrids/${s}`);f.AxisGridManager.getInstance(r,this.modelId).loadAxisGrid(a,e,i,void 0,t,(()=>{this.getViewer().render()}))}removeAxisGrid(e,t,i){const o=this.getCloudViewer().getScene();f.AxisGridManager.getInstance(o,this.modelId).unloadAxisGrid(e,t,i),this.getViewer().render()}removeAllAxisGrids(){const e=this.getCloudViewer().getScene();f.AxisGridManager.getInstance(e,this.modelId).unloadAllAxisGrids(),this.getViewer().render()}getAxisGridsIntersection(e,o,n){i.send(t,"getAxisGridsIntersection"),n||"[object Array]"!==Object.prototype.toString.call(o)?e||(e="default"):(n=o,o=e,e="default");const s=this.getCloudViewer().getScene(),r=f.AxisGridManager.getInstance(s,this.modelId);if(!r.mapFileIdGridjson[e])return void this.console.warn("getAxisGridsIntersection - 请先加载对应轴网,再调用接口.");const a=r.getAxisGridsIntersection(e,o,n);return 0===a.length&&this.console.warn("getAxisGridsIntersection - The input axes do not intersect."),a}createRoomByAxisGrids(e,o,n,s,r,a){if(i.send(t,"createRoomByAxisGrids"),"[object Array]"===Object.prototype.toString.call(e)?(a=r,r=s,s=n,n=o,o=e,e="default"):e||(e="default"),"[object Array]"!==Object.prototype.toString.call(n))return void this.console.warn("createRoomByAxisGrids - elevations参数需传入数组形式,包含底标高和顶标高两个数值");n.sort();const l=this.getCloudViewer().getScene(),h=f.AxisGridManager.getInstance(l,this.modelId);if(!h.mapFileIdGridjson[e])return void this.console.warn("createRoomByAxisGrids - 请先加载对应轴网,再调用接口.");const c=h.getPartitionByAxisGrids(e,o);let d=[];if(c&&c.length>0){c.forEach((e=>{d.push([e.x,e.y,n[0]])}));let e=this.getViewer().createBoundary(d);this.getViewer().createRoom(e,n[1]-n[0],s,r,a),this.getViewer().render()}else this.console.warn("createRoomByAxisGrids - 所选轴线未形成闭合区域,或传入了多余轴线.")}getFloorBoundingBoxById(e,o){i.send(t,"getFloorBoundingBoxById");const n=this._getMetaDataManager(),s=t=>{let i=new THREE.Box3;for(let o=0;o<t.floors.length;o++){const n=t.floors[o];if(n.id.toString()===e.toString()){const e=n.BoundingBox.Min,t=n.BoundingBox.Max;i.min=new THREE.Vector3(e.X,e.Y,e.Z),i.max=new THREE.Vector3(t.X,t.Y,t.Z);break}}o&&o(i)};n._cache.mapInfo?s(n._cache.mapInfo):n.getMapInfo((e=>{n._cache.mapInfo=e,s(e)}))}loadFloorsForExplosion(){if(this._isRfa())return;const e=this._getMetaDataManager(),t=this;e.getMapInfo((e=>{let i=e.axisGrid.Levels;if(!i||0==i.length)return;const o=e.floors;let n={};for(let e=0;e<o.length;e++){let t=o[e].BoundingBox;n[o[e].id]=new THREE.Box3(new THREE.Vector3(t.Min.X,t.Min.Y,t.Min.Z),new THREE.Vector3(t.Max.X,t.Max.Y,t.Max.Z))}for(let e=0;e<i.length;e++)i[e].boundingBox=n[i[e].id],i[e].elevation=parseFloat(i[e].elevation);i.sort(((e,t)=>e.elevation-t.elevation)),t.getCloudViewer().setFloorInfos(i,t.modelId),t._opt.floorExplosion=!0}))}getExplosionExtent(){return this.getCloudViewer().getExplosionExtent(this.modelId)}setExplosionExtent(e){const t=this.getCloudViewer();e>3||e<0?console.log("Warning::extent should be in a range of [0,3]"):(0!=this.getFloorExplosionExtent()&&this._opt.floorExplosion&&this.clearFloorExplosion(),t.setExplosionExtent(e,this.modelId))}setFloorExplosion(e,o,n){i.send(t,"bf_c_explosion_floor");const s=this.getCloudViewer();if(null==e)return void console.log("Warning::extent is undefined ");if(e>30||e<0)return void console.log("Warning::extent should be in a range of [0,30]");if(void 0!==n&&(void 0===n.x||void 0===n.y||void 0===n.z))return void console.log("Warning::direction should be undefined or has xyz");let r=new THREE.Vector3(0,0,1);null!=n&&(r.x=n.x,r.y=n.y,r.z=n.z,r.normalize()),0!==this.getExplosionExtent()&&this.setExplosionExtent(0),this._opt.floorExplosion?s.setFloorExplosion(e,o,r,this.modelId):console.log("Warning:: there is no floors information!")}getFloorExplosionExtent(){return this.getCloudViewer().getFloorExplosionExtent(this.modelId)}getFloorExplosionDirection(){return this.getCloudViewer().getFloorExplosionDirection(this.modelId)}getFloorExplosionList(){return this.getCloudViewer().getFloorExplosionList(this.modelId)}clearFloorExplosion(){const e=this.getCloudViewer(),t=e.getFloorExplosionDirection(this.modelId);e.setFloorExplosion(0,void 0,t,this.modelId)}searchText(e,t){if(void 0===e||""===e||!t)return console.error("搜索文本内容和回调函数不能为空");if(this._data.text)this._getTextWord(e,t);else{this._getMetaDataManager().getText((i=>{this._data.text=i.text,this._getTextWord(e,t)}),(e=>{t(e)}))}}_getTextWord(e,t){let i=this._data.text,o=[];for(let t=0;t<i.length;t++){let n=i[t];if(n.content.indexOf(e)>-1){let e=[],t=n.bbox;e.push({max:{x:t[3],y:t[4],z:t[5]},min:{x:t[0],y:t[1],z:t[2]}}),o.push({content:n.content,boundingBox:e})}}t(o)}getIntegratedFileIds(){if(i.send(t,"getIntegratedFileIds"),"rvt-integrate"==this.getMetaData().workerType){this._getMetaDataManager().getFiles((e=>{const t=e;let i={RVT:[],notRVT:[]},o=!0;for(let e=0,n=t.length;e<n;e++){let n=t[e];if(void 0===n.fileType){o=!1;break}let s=n.linkedBy,r="rvt"===n.fileType.toLowerCase()?"RVT":"notRVT";for(let e=0,t=s.length;e<t;e++)i[r].push(s[e])}this.getMetaData().integratedFileIds=o?i:void 0}),(e=>{this.getMetaData().integratedFileIds=void 0,console.error("request data error!")}))}else this.getMetaData().integratedFileIds=void 0}getCategoryVisibility(e,t){this._getMetaDataManager().getCategoryVisibility((t=>{e&&e(t)}),(e=>{t&&t(e)}))}getRoomProperty(e,t){this._getMetaDataManager().getRoomProperty(e,t)}getSetByComponentId(e,t){if(!e)return;e=e.toString();this._getMetaDataManager().getModelGroup((i=>{const o={id:null,name:"",type:"assembly",elements:[]},n=t=>{if(!t||0===t.length)return!1;for(let i=0;i<t.length;i++){const n=t[i].types;for(let t=0;t<n.length;t++){const i=n[t].name,s=n[t].instances;for(let t=0;t<s.length;t++){const n=s[t].id,r=s[t].elements;if(r.indexOf(e)>=0)return o.id=n,o.name=i,o.elements=r,!0}}}return!1};let s=n(i.assemblies);s||(o.type="group",s=n(i.groups)),s&&"[object Function]"===Object.prototype.toString.call(t)&&t(o)}))}getComponentsBySetId(e,t){if(!e)return;this._getMetaDataManager().getModelGroup((i=>{let o=null;const n=t=>{if(!t||0===t.length)return!1;for(let i=0;i<t.length;i++){const n=t[i].types;for(let t=0;t<n.length;t++){const i=n[t].instances;for(let t=0;t<i.length;t++){if(i[t].id.toString()===e.toString())return o=i[t].elements,!0}}}return!1};let s=n(i.assemblies);s||(s=n(i.groups)),s&&"[object Function]"===Object.prototype.toString.call(t)&&t(o)}))}getAreaProperty(e,t){this._getMetaDataManager().getAreaProperty(e,t)}getMapInfo(e){this._getMetaDataManager().getMapInfo(e)}getMapInfoAsync(e,t){this._getMetaDataManager().getMapInfoAsync(e,t)}getLinkGraph(e){this._getMetaDataManager().getLinkGraph(e)}getDrawingsheets(e,o,n){if(i.send(t,"getDrawingsheets"),!e&&""!=e)return;"[object Function]"===Object.prototype.toString.call(e)&&(o=e,e="");this._getMetaDataManager().getDrawingsheets(e,"",o,n)}getAllDrawingsheets(e){i.send(t,"getAllDrawingsheets");this._getMetaDataManager().getAllDrawingsheets("","",e)}getDrawingListbyId(e,o,n){i.send(t,"getDrawingListbyId");this._getMetaDataManager().getDrawingList(e,o,n,(e=>{401==e?console.log("Unauthorized."):403==e?console.log("Forbidden."):404==e&&console.log("Not Found.")}))}getLinksJson(e){this._getMetaDataManager().getLinksJson("","",e)}getModelSet(e,o){i.send(t,"getModelSet");this._getMetaDataManager().getModelGroup(e,o)}getAreas(e,o){i.send(t,"getAreas");this._getMetaDataManager().getAreas(e,o)}getFloors(e){i.send(t,"getFloors");this._getMetaDataManager().getFloors(e)}getProjectInfo(e,o){i.send(t,"getProjectInfo"),this._getMetaDataManager().getProjectInfo(e,o)}getFloorsbyFileId(e,t){const i=this._data.path||this._opt.resourceHost,o=this._data.databagId;n.ajax({async:!0,url:`${i}/${o}/metadata/${e}/levels.json`,success:function(e){var i=JSON.parse(e).levels;t&&t(i)}})}getScheduleList(e){i.send(t,"getScheduleList");this._getMetaDataManager().getScheduleList(e)}getScheduleById(e,o){i.send(t,"getScheduleById");this._getMetaDataManager().getScheduleById(e,o)}getOutlinerInfo(e){const t=this._data.path||this._opt.resourceHost,i=this._data.databagId;n.ajax({async:!0,url:`${t}/${i}/metadata/outliner`+f.GlobalData.ZipResourcePostfix,success:t=>{e&&e(t)}})}getMepSystem(e,o,n){i.send(t,"getMepSystem");this._getMetaDataManager().getMepSystem(e,o,n)}getObjectMap(e){i.send(t,"getObjectMap");this._getMetaDataManager().getObjectMap(e)}getNestedComponents(e){i.send(t,"getNestedComponents"),this._getMetaDataManager().getNestedComponents(e)}get3DViewStates(o){if(i.send(t,"get3DViewStates"),this._viewStates){let e=this.getViewer().getCurrentState();this._viewStates.views.forEach((t=>{t.state.axisGrid=e.axisGrid})),"[object Function]"===Object.prototype.toString.call(o)&&o(this._viewStates)}else{let t,i;const n=()=>{let n=this.getViewer().getCameraStatus(),s=new THREE.Vector3(n.position.x,n.position.y,n.position.z),r=!1,a=new THREE.Vector3(n.target.x,n.target.y,n.target.z).sub(s).length();for(let o in i){const n=i[o];let s=this.getViewer().getCurrentState();if(n.sectionBox){let t=n.sectionBox,i=this.getViewer()._sectionBox;if(!i){var l=new e.Bimface.Plugins.Section.SectionBoxConfig;l.viewer=this.getViewer(),l.id="SectionBox",i=new e.Bimface.Plugins.Section.SectionBox(l),r=!0,s=this.getViewer().getCurrentState()}let o=this.getViewer().worldToScene({x:t.min[0],y:t.max[1],z:t.min[2]}),a=this.getViewer().worldToScene({x:t.max[0],y:t.min[1],z:t.max[2]}),h=s.sectionBoxState.cubeSize,c=s.sectionBoxState.center,d=c.clone().sub(h.clone().multiplyScalar(.5)),g=c.clone().add(h.clone().multiplyScalar(.5));o.set(Math.max(o.x,d.x),Math.max(o.y,d.y),Math.max(o.z,d.z)),a.set(Math.min(a.x,g.x),Math.min(a.y,g.y),Math.min(a.z,g.z));let u=o.clone().add(a).multiplyScalar(.5);s.sectionBoxState.position=u;let p=a.clone().sub(o).clone().divide(h);s.sectionBoxState.scale=p,s.sectionBoxState.planeOffset[0]=a.x-g.x,s.sectionBoxState.planeOffset[1]=o.x-d.x,s.sectionBoxState.planeOffset[2]=a.y-g.y,s.sectionBoxState.planeOffset[3]=o.y-d.y,s.sectionBoxState.planeOffset[4]=a.z-g.z,s.sectionBoxState.planeOffset[5]=o.z-d.z}else s.sectionBoxState=void 0;s.sectionPlaneState=void 0,s.selection=[];const[h]=t.viewList.filter((e=>e.id===o));if(h){const{origin:e,upDirection:t,viewDirection:i,cameraType:o}=h.viewPoint;s.camera.position={x:e[0],y:e[1],z:e[2]},s.camera.target={x:e[0]-i[0]*a,y:e[1]-i[1]*a,z:e[2]-i[2]*a},s.camera.up={x:t[0],y:t[1],z:t[2]};let n=o||h.cameraType;n&&(s.camera.name=n)}let c;for(let e in s.state){s.state[e]={actions:[],isolateAction:null,sceneState:0,version:"1.0"};let t=n.invisibleElements;t&&t.length>0&&s.state[e].actions.push({className:"VisibleIdsFA",flag:!0,ids:t,isVisible:!1});let i=n.overrideElements;if(i&&Object.keys(i).length>0){if(!c){c=[];for(let e in i){let t=i[e],o={className:"OverrideIdsFA",flag:!0,ids:t.ids,material:f.MaterialUtil.createStandardMaterial({color:Number(t.color),opacity:Number(t.opacity||1),transparent:!(Math.abs(t.opacity-1)<.001)})};c.push(o)}}s.state[e].actions=s.state[e].actions.concat(c)}}let d={id:o,name:h.name,state:s};this._viewStates.views.push(d),c=null}r&&this.getViewer()._sectionBox.exit(),"[object Function]"===Object.prototype.toString.call(o)&&o(this._viewStates),r&&this.getViewer().render()};this._viewStates={};const s=this._getMetaDataManager();s.getViews((e=>{t=JSON.parse(e.data);const o=t.exported3DViews;if(o){this._viewStates.primary3DView=t.primary3DView,this._viewStates.views=[],i={};let e=0;o.forEach((t=>{s.getViewData(t,(s=>{i[t]=s,e+=1,e===o.length&&n()}),(t=>{e+=1,e===o.length&&n()}))}))}}))}}loadMaterialOverrideSet(e,t,i,o,n){const s=this.getCloudViewer().modelManager;this._getMetaDataManager().getMaterialOverride(e,t,(e=>{e&&(s.createMaterialOverrideSet(e,n),i&&i())}),(e=>{e="loading materialOverrideSet error:"+e,o&&o(e)}))}applyMaterialOverrideSet(e,t,i,o,n){const s=this.getCloudViewer(),r=new f.MaterialOverriderSet,a=()=>{const e=r.overriders,t=s.getFilter();for(let i=0,o=e.length;i<o;i++){const o=e[i].material,n=e[i].condition;o&&t.addToOverrideListByMaterial(n,o,this.modelId)}s.render(),o&&o()},l=()=>{n&&n()};this._getMetaDataManager().getMaterialOverride(e,t,(e=>{if(!e)return;const t=s.modelManager.getConditions();r.load(e,t,i,a,l)}),(e=>{e="loading materialOverrideSet error:"+e,n&&n(e)}))}changeMaterialOverrideSetMode(e){const t=this.getCloudViewer();t.enableTextureMapping(!e),t.render()}restoreMaterialByMaterialId(e){this.getCloudViewer().restoreMaterialByMaterialId(this.modelId,e)}overrideMaterialByMaterialId(e,t,i,o,n,s){const r=this._getMetaDataManager(),a=this;let l=null;const h=a.getCloudViewer();function c(t){h.overrideMaterialByMaterialId(a.modelId,e,l,t)?n&&n():(console.log("ERROR: there is no material id witch equal to "+e),s&&s())}function d(e){let t=e.url;f.MaterialUtil.loadTexture(t,c,s)}function g(e){if(!(e&&e[0]&&e[0].common&&e[0].common.instance))return console.log("ERROR: there is no material instance!"),void(s&&s());if(l=JSON.parse(e[0].common.instance),!l.diffuse_texture||""==l.diffuse_texture)return console.log("ERROR: there is no diffuse_texture of the material!"),void(s&&s());let o=l.diffuse_texture.texture_file;r.getTextureJson(t,i,o,d,s)}h.loadMaterialIds(a.modelId,(function(){r.getMaterialJson(t,i,o,g,s)}),s)}getAllMaterialIds(e,t){this.getCloudViewer().loadMaterialIds(this.modelId,e,t)}setSelectedNodesByMaterialId(e){this.getCloudViewer().setSelectionByMaterialId(this.modelId,e)}setDetailRatio(e){if(e<.1||e>5)return void this.console.warn("the ratio must in [0.1,5]");const t=this.getCloudViewer().getModelManager().getModel(this.modelId);t.tilesLoader?t.setDetailRatio(e):this.console.warn("the model is not bimtileModel")}getDetailRatio(){const e=this.getCloudViewer().getModelManager().getModel(this.modelId);if(e.tilesLoader)return e.getDetailRatio();console.warn("the model is not bimtileModel")}loadOnDemand(e){if(!Array.isArray(e))return void console.warn("the condition must be Array.");const t=this.getCloudViewer().getModelManager().getModel(this.modelId);t.tilesLoader?t.loadOnDemand(e):this.console.warn("the model is not bimtileModel")}debugShowGeometricError(e){const t=this.getCloudViewer().getModelManager().getModel(this.modelId);t.tilesLoader?t.debugShowGeometricError(e):this.console.warn("the model is not bimtileModel")}getMaxDetailLevel(){return this.getCloudViewer().getModelManager().getModel(this.modelId).getMaxDetailLevel()}setMaxDetailLevel(e){if(!this.isBimtilesModel())return void console.warn("Only bimtiles has visual range");this.getCloudViewer().getModelManager().getModel(this.modelId).setMaxDetailLevel(e)}setVisualRange(e){if(!this.isBimtilesModel())return void console.warn("Only bimtiles has visual range");this.getCloudViewer().getModelManager().getModel(this.modelId).setVisualRange(e)}getVisualRange(){if(!this.isBimtilesModel())return void console.warn("Only bimtiles has visual range");return this.getCloudViewer().getModelManager().getModel(this.modelId).getVisualRange()}getRootGeoErrDistance(){if(!this.isBimtilesModel())return void console.warn("Only bimtiles has visual range");return this.getCloudViewer().getModelManager().getModel(this.modelId).getRootGeoErrDistance()}rayCastVertical(e){if(!this.isBimtilesModel())return void console.warn("Only bimtiles need vertical ray cast");return this.getCloudViewer().getModelManager().getModel(this.modelId).rayCastVertical(e)}overrideComponentsFrameColor(e,t){const i={all:()=>this.overrideComponentsFrameColorByObjectData([],t),objectData:e=>this.overrideComponentsFrameColorByObjectData(e,t),ids:e=>this.overrideComponentsFrameColorById(e,t),noObjectData:e=>this.restoreComponentsFrameColorByObjectData(e),noIds:e=>this.restoreComponentsFrameColorById(e)};this._executeByCondition(e,i)}restoreComponentsFrameColor(e){const t={all:()=>this.restoreComponentsFrameColorByObjectData([]),objectData:e=>this.restoreComponentsFrameColorByObjectData(e),ids:e=>this.restoreComponentsFrameColorById(e)};this._executeByCondition(e,t)}setComponentsFrameVisibility(e){this.wireFrameVisibilityOption=e}getComponentsFrameVisibility(){return this.wireFrameVisibilityOption}restoreComponentsOpacityById(e){super.restoreComponentsOpacityById(e)}restoreComponentsOpacityByObjectData(e){super.restoreComponentsOpacityByObjectData(e)}}o.BimModel=s}();class v{constructor(t){this.viewer=t;let i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom").create("div","bf-rotating-conext");i.style.position="absolute",i.style.left=0,i.style.top=0,i.style.width="100%",i.style.height="100%",this.domContainer=i,this.viewer.getDomElement().appendChild(i),this.rotateCenterSize=[26,26],this.rotateCenter=null,this.initialize()}destroy(){this.domContainer.parentNode&&this.domContainer.parentNode.removeChild(this.domContainer),this.domContainer=null,this.rotateCenter=null,this.rotateCenterSize=null,this.opacityControler=null,this.viewer=null}initialize(){this.rotateCenterId=e.Web.Lang.Utility.UUID.createUUID();let t=this.getRotateCenterHtml();this.domContainer.innerHTML=t,this.setOpacity(0),this.hookEvents(),this.opacityControler=new x}hookEvents(){let e=this.viewer.getViewer();e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_BEGIN,(e=>{this.startPoint=e.startPt})),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ROTATING,(()=>{this.opacityControler.setIsActive(!0),this.opacityControler.increment();let e=this.calcRotatingCenter();e&&this.translate(e.x,e.y);let t=this.opacityControler.getPercentage();this.setOpacity(t)}));let t=[];t.push(CLOUD.EVENTS.ON_EDITOR_END),t.push(CLOUD.EVENTS.ON_TOOL_END);for(const i of t)e.registerEventListener(i,(()=>{this.opacityControler.setIsActive(!1),this.rotateCenter=null,this.fadeOut()}))}fadeOut(){let e=setInterval((()=>{if(!this.opacityControler.getIsActive()){this.opacityControler.resetLastRecordTime(),this.opacityControler.decrement();let t=this.opacityControler.getPercentage();this.setOpacity(t),0===t&&clearInterval(e)}}),25)}calcRotatingCenter(){if(this.rotateCenter)return this.rotateCenter;let e=this.viewer.getViewer().cameraControl.calculatePivot(CLOUD.EditorConfig.RotatePivotMode,this.startPoint);if(!e)return null;let t=this.viewer.sceneToWorld(e),i=this.viewer.worldToClient(t);return i.x-=this.rotateCenterSize[0]/2,i.y-=this.rotateCenterSize[1]/2,this.rotateCenter=i,i}getRotateCenterHtml(){return`<svg id="${this.rotateCenterId}" width="26px" height="26px" version="1.1" transform="translate(150,50)"><defs><path d="M13,0 L13.0010997,2.04948449 C17.7249658,2.51902358 21.481539,6.27589662 21.9506147,10.9998991 L24,11 L24,13 L21.9505155,13.0010997 C21.4810095,17.7246329 17.7246329,21.4810095 13.0010997,21.9505155 L13,24 L11,24 L10.9998991,21.9506147 C6.27589662,21.481539 2.51902358,17.7249658 2.04948449,13.0010997 L0,13 L0,11 L2.04938526,10.9998991 C2.51849404,6.27556368 6.27556368,2.51849404 10.9998991,2.04938526 L11,0 L13,0 Z M12,4 C7.581722,4 4,7.581722 4,12 C4,16.418278 7.581722,20 12,20 C16.418278,20 20,16.418278 20,12 C20,7.581722 16.418278,4 12,4 Z" id="path-1"></path><filter x="-6.2%" y="-6.2%" width="112.5%" height="112.5%" filterUnits="objectBoundingBox" id="filter-2"><feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset><feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur><feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix></filter><circle id="path-3" cx="12" cy="12" r="5"></circle><filter x="-30.0%" y="-30.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-4"><feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset><feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur><feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix></filter></defs><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use><use fill-opacity="0.7" fill="#FFFFFF" xlink:href="#path-1"></use></g><g><use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use><circle stroke="#FFFFFF" stroke-width="1" stroke-linejoin="square" fill="#32D3A6" fill-rule="evenodd" cx="12" cy="12" r="4.5"></circle></g></g></svg>`}translate(e,t){let i=document.getElementById(this.rotateCenterId);!i||isNaN(e)||isNaN(t)||i.setAttribute("transform",`translate(${e},${t})`)}setOpacity(e){let t=document.getElementById(this.rotateCenterId);t&&(t.style.opacity=e)}}class x{constructor(){this.thresholdTimes=200,this.incrementTimes=0,this.lastRecordTime=null,this.isActive=!1}increment(){this.lastRecordTime?(this.incrementTimes+=performance.now()-this.lastRecordTime,this.lastRecordTime=performance.now(),this.incrementTimes>this.thresholdTimes&&(this.incrementTimes=this.thresholdTimes)):this.lastRecordTime=performance.now()}decrement(){this.incrementTimes-=25,this.incrementTimes<0&&(this.incrementTimes=0)}getIsActive(){return this.isActive}setIsActive(e){this.isActive=e}resetLastRecordTime(){this.lastRecordTime=null}getPercentage(){return this.incrementTimes/this.thresholdTimes}}!function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Common");t.Console=class{constructor(){this.consoleType="log",this._enable=!0}formatData(e){return"."!==(e=e.toString())[e.length-1]&&(e+="."),e}setConsoleType(e){["log","warn","error","info"].indexOf(e)>=0&&(this.consoleType=e)}warn(e){this._enable&&console[this.consoleType](`[BIMFACE WARN]: ${this.formatData(e)}`)}info(e){this._enable&&console[this.consoleType](`[BIMFACE INFO]: ${this.formatData(e)}`)}error(e){this._enable&&console[this.consoleType](`[BIMFACE ERROR]: ${this.formatData(e)}`)}obsolete(e,t){if(!this._enable)return;const i=e=>(")"!==(e=e.toString())[e.length-1]&&(e+="()"),e),o=`${e=i(e)} is obsolete, please use ${t=i(t)} instead.`;this.setConsoleType("warn"),this.warn(o)}updateDataSource(e){this._enable&&console.error(`[BIMFACE ERROR]:${e} is not compatible with the data source. Please upgrade the data source and try again.`)}open(){this._enable=!0,this.info("Console opened")}close(){this.info("Console closed"),this._enable=!1}}}(),function(){let t=Object.freeze({ViewAdded:"ViewAdded",ViewLoading:"ViewLoading",Rendered:"Rendered",PureRender:"PureRender",CameraPositionChanged:"CameraPositionChanged",ComponentsSelectionChanged:"ComponentsSelectionChanged",ComponentsHoverChanged:"ComponentsHoverChanged",SelectionChanged:"SelectionChanged",SelectionChangedInModel:"SelectionChangedInModel",MouseClicked:"MouseClicked",MouseDragged:"MouseDragged",MouseDoubleClicked:"MouseDoubleClicked",ContextMenu:"ContextMenu",RectSelection:"RectSelection",Error:"Error",AddView:"AddView",RemoveView:"RemoveView",FamilyTypeChanged:"FamilyTypeChanged",MissingDrawingElement:"MissingDrawingElement",ToolbarHomeClick:"ToolbarHomeClick",DemandLoaded:"DemandLoaded",DemandLoading:"DemandLoading",DemandLoadStart:"DemandLoadStart",ButtonOnToolbarClicked:"ButtonOnToolbarClicked",AxisGridHover:"AxisGridHover",FloorExplosion:"FloorExplosion",Hover:"Hover",MouseMove:"MouseMove",ViewChanged:"ViewChanged",ModelAdded:"ModelAdded",ModelTransformed:"ModelTransformed",ExternalObjectTransformed:"ExternalObjectTransformed"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").Viewer3DEvent=t}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").Viewer3DConfig=function(t){let i=e.Bimface.Viewer.OrbitButton,o=e.Bimface.Viewer.ViewOption,n=e.Web.Lang.Utility.ClientHelper.getIsDesktop(),s="Local"==BimfaceLoaderConfig.dataEnvType?`${BimfaceLoaderConfig.staticHost}Glodon/bimface/resources`:`${BimfaceLoaderConfig.staticHost}/../resources`,r={domElement:null,APIHost:d.APIHost,resourceHost:d.resourceHost,staticResourcesHost:s,securityApi:d.securityApi,initialViewOption:o.Home,homeViewOption:o.Home,enableViewHouse:!0,enableReplaceMaterial:!1,enableSplitComponent:!1,enableExplosion:!1,loadOnDemand:!0,minimumFPS:15,enableOrbit:!0,orbitButton:i.Left,suffix:".gz",loading:!0,MaxMemeorySizeToFullRender:n?1500:500,enableToggleContextMenuDisplay:!0,enableHover:!1,enableMouseMovePick:!1,enableBorderLine:null,enableWireframe:null,wireframeColor:null,borderLineVisibility:null,exposure:0,backgroundColor:[{color:new e.Web.Graphics.Color(246,250,255,1),stop:"10%"},{color:new e.Web.Graphics.Color(214,224,235,1),stop:"70%"}],enableIBLBackground:!1,enableSkyBox:!1,enableConstraintZoom:!0,enableLogarithmicDepthBuffer:!1,loadIBLScene:{IBLSceneOption:"",withBackground:!1},enableShortcutKey:!0,renderMode:"auto",enableStorage:!1,unit:void 0,memoryThreshold:void 0,enableRealisticMiniMap:!1,walkRotationSpeed:n?1:.5};return Object.assign({},r,t)},function(){let t=Object.freeze({HideOthers:"HideOthers",MakeOthersTranslucent:"MakeOthersTranslucent"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").IsolateOption=t}(),function(){let t=Object.freeze({Home:"Home",Top:"Top",Bottom:"Bottom",North:"North",South:"South",West:"West",East:"East",SouthEast:"SouthEast",SouthWest:"SouthWest",NorthEast:"NorthEast",NorthWest:"NorthWest",NorthEastIsometricTop:"NorthEastIsometricTop",NorthWestIsometricTop:"NorthWestIsometricTop",SouthEastIsometricTop:"SouthEastIsometricTop",SouthWestIsometricTop:"SouthWestIsometricTop",NorthEastIsometricBottom:"NorthEastIsometricBottom",NorthWestIsometricBottom:"NorthWestIsometricBottom",SouthEastIsometricBottom:"SouthEastIsometricBottom",SouthWestIsometricBottom:"SouthWestIsometricBottom",NorthTop:"NorthTop",SouthTop:"SouthTop",WestTop:"WestTop",EastTop:"EastTop",NorthBottom:"NorthBottom",SouthBottom:"SouthBottom",WestBottom:"WestBottom",EastBottom:"EastBottom"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").ViewOption=t}(),function(){let t=Object.freeze({Red:"Red",Yellow:"Yellow",Green:"Green",Blue:"Blue",Black:"Black"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").ColorOption=t}(),function(){let t=Object.freeze({Fly:"Fly",Orbit:"Orbit",Select:"Select",Zoom:"Zoom",OrbitWithModelCenter:"OrbitWithModelCenter",PickWithRect:"PickWithRect",ZoomWithRect:"ZoomWithRect",Walk:"Walk",ThirdPerson:"ThirdPerson",ThirdPersonRun:"ThirdPersonRun"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").NavigationMode3D=t}(),function(){let t=Object.freeze({Translucent:"Translucent",Opaque:"Opaque"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").OpacityOption=t}(),function(){let t=Object.freeze({Left:"Left",Right:"Right"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").OrbitButton=t}(),function(){let t=Object.freeze({X:"X",Y:"Y",Z:"Z"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").AxisOption=t}(),function(){let t=Object.freeze({Default:"Default",Rotate:"Rotate"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").SectionBoxMode=t}(),function(){let t=Object.freeze({Up:"Up",Down:"Down",Left:"Left",Right:"Right"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").Direction=t}(),function(){let t=Object.freeze({Gray:"Gray",HarborSunRise:"HarborSunRise",ParkingLot:"ParkingLot",RiverSide:"RiverSide",Sunrise:"Sunrise",SunsetGrass:"SunsetGrass"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").IBLSceneOption=t}(),function(){let t=Object.freeze({Phong:"Phong",IBL:"IBL"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").LightingMode=t}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ExternalObject").loadersConfig=function(){return{"3DS":{loaderName:"TDSLoader",loaderFiles:["TDSLoader.js"]},FBX:{loaderName:"FBXLoader",loaderFiles:["fflate.min.js","FBXLoader.js"]},OBJ:{loaderName:"OBJLoader",loaderFiles:["OBJLoader.js"]},MTL:{loaderName:"MTLLoader",loaderFiles:["MTLLoader.js"]}}},function(){var t="Bimface.Plugins.ExternalObject.ExternalObjectManager",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.HttpRequest,n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ExternalObject");n.ExternalObjectManager=class{constructor(o){if(i.send(t,"bf_c_extObjMng_new"),o._plugins&&o._plugins.externalObjectManager)return o._plugins.externalObjectManager;o._plugins&&(o._plugins.externalObjectManager=this),this._viewer=o,o.externalComponentManager&&!o.externalComponentManager.isDestroyed()||(o.externalComponentManager=new CLOUD.ExternalComponentManager(o.getViewer()),o.externalComponentManager._objects={}),this._manager=o.externalComponentManager,this._objects=this._manager._objects,this.modelId="ExternalComponent";let n=new e.Web.Lang.EventManager;return this.getEventManager=function(){return n},this.urlMap={},o.externalObjectManager=this,this.enableLight=!1,this.console=new e.Web.Common.Console,this}addEventListener(e,t){this.getEventManager().addEvent(e,t)}removeEventListener(e,t){this.getEventManager().removeEvent(e,t)}addObject(e,o,n){return i.send(t,"bf_c_extObjMng_addObj"),console.warn("[BIMFACE WARN]: ExternalObjectManager.addObject(name, object, modelId) is obsolete, please use ExternalObjectManager.loadObject(option, successCallback, failureCallback) instead."),this._addObject(e,o,n)}_addObject(t,i,o,n){if(!this.getObjectIdByName(t)){if(!this.enableLight){let e=i.children.filter((e=>"AmbientLight"!==e.type));i.children=e}var s=e.Web.Lang.Utility.UUID.createUUID();return this._manager.addNode(s,i),this._objects[s]=t,this._viewer.getViewer().render(),"Viewer3D"===this._viewer.getViewerType()&&this._manager.bindModel(s,o||i._modelId||this._viewer.getDefaultModel().modelId,n),s}console.warn(`[ExternalObjectManager.addObject] 已有名为 "${t}" 的ExternalObject,请更换名称后再执行ExternalObjectManager.addObject()`)}_isNameRepeated(e,t){const i=this.urlMap[e].optionList;for(const e of i)if(e.name===t)return!0;return!1}addObjectByUrl(e,t,i,o,n){console.warn("[BIMFACE WARN]: ExternalObjectManager.addObjectByUrl(name, objectUrl, callback, modelId) is obsolete, please use ExternalObjectManager.loadObject(option, successCallback, failureCallback) instead."),this.loadObject({name:e,url:{objectUrl:t.url,mtlUrl:t.mtlUrl},association:{modelId:o}},i,n)}loadObject(t,i,n){const s=t.name,r=t.url,a=r&&r.objectUrl;if(!s||!a&&!t.object)return console.warn("[BIMFACE WARN]: option.name and (option.url.objectUrl or option.object) must not be undefined"),void(n&&n());void 0!==t.enableLight&&(this.enableLight=t.enableLight);const l=t.association&&t.association.modelId,h=t.association&&t.association.objectId;let c=this;function d(){if(CLOUD.Utils.isDefined(t.objectData)){let e=c.getObjectIdByName(s);c.setObjectData(e,t.objectData)}i&&i()}if(CLOUD.Utils.isDefined(t.object)){const e=this._addObject(s,t.object,l,h);if(e)return d(),e;n&&n()}else if(CLOUD.Utils.isDefined(r)){if(this.urlMap[a]&&!0===this.urlMap[a].pending){this.urlMap[a].callbackList.push(d),n&&this.urlMap[a].errorCallbackList.push(n);const e={name:s,modelId:l,bindObjectId:h};if(this._isNameRepeated(a,s))return;return void this.urlMap[a].optionList.push(e)}if(this.urlMap[a]&&!1===this.urlMap[a].pending)return this.cloneWithModelId(this.urlMap[a].originId,s,l,h),void d();this.urlMap[a]={},this.urlMap[a].pending=!0,this.urlMap[a].callbackList=[],this.urlMap[a].callbackList.push(d),this.urlMap[a].errorCallbackList=[],n&&this.urlMap[a].errorCallbackList.push(n);const t={name:s,modelId:l,bindObjectId:h};this.urlMap[a].optionList=[t];new Promise(((t,i)=>{const n=window.BimfaceLoaderConfig.fullStaticHost,a=e.Bimface.Plugins.ExternalObject.loadersConfig();let c=[];for(let e in r){if(void 0===r[e])continue;let t=r[e].split(".").pop().toUpperCase(),i=a[t]&&a[t].loaderFiles;if(void 0===i)return console.warn("File format not supported, currently supported formats: 3DS, FBX, OBJ."),!1;i.forEach((e=>{c.push(`${n}/lib/loaders/${e}`)}))}o.getScripts(c,(()=>{const{objectUrl:e,mtlUrl:o}=r,n=e.split(".").pop().toUpperCase(),c=a[n].loaderName;let d=new THREE[c];if(void 0===o)d.load(e,(i=>{const o=this._addObject(s,i,l,h);this.urlMap[e].originId=o,this.urlMap[e].pending=!1,t()}),(()=>{}),(()=>{i()}));else{(new THREE.MTLLoader).load(o,(o=>{o.preload(),d.setMaterials(o),d.load(e,(i=>{const o=this._addObject(s,i,l,h);this.urlMap[e].originId=o,this.urlMap[e].pending=!1,t()}),(()=>{}),(()=>{i()}))}),(()=>{}),(()=>{i()}))}}))})).then((()=>{this.urlMap[a].callbackList.map(((e,t)=>{const{name:i,modelId:o,bindObjectId:n}=this.urlMap[a].optionList[t];this.cloneWithModelId(this.urlMap[a].originId,i,o,n),e()}))})).catch((()=>{for(let e of this.urlMap[a].errorCallbackList)e();this.urlMap[a]=null}))}}cloneWithModelId(e,t,i,o){let n=this.clone(e,t);"Viewer3D"===this._viewer.getViewerType()&&this._manager.bindModel(n,i||this._viewer.getDefaultModel().modelId,o)}getAssociatedInfo(e){return this._manager.getBindedInfo(e)}clone(t,i){if(!this._objects[t])return void console.warn(`[ExternalObjectManager.clone] 没有id为 "${t}" 的ExternalObject,先执行ExternalObjectManager.addObject()`);if(this.getObjectIdByName(i))return;const o=e.Web.Lang.Utility.UUID.createUUID();return this._manager.cloneNode(t,o),this._objects[o]=i,o}getObjectIdByName(e){for(var t in this._objects)if(this._objects[t]===e)return t}getAllObjectIds(){return Object.keys(this._objects)}removeById(e){if(this._objects[e]){this.clearRelationshipById(e),this.removeGlowEffectById([e]),this._manager.removeNodeById(e),delete this._objects[e];const t=this._getCloneOriginUrlById(e);void 0!==t&&delete this.urlMap[t],this._viewer.getViewer().render()}}removeByIds(e){this.removeGlowEffectById(e);for(var t=0;t<e.length;t++){const i=e[t];if(this.clearRelationshipById(i),!this._objects[i])continue;this._manager.removeNodeById(i),delete this._objects[i];const o=this._getCloneOriginUrlById(i);void 0!==o&&delete this.urlMap[o]}this._viewer.getViewer().render()}clear(){var e=Object.keys(this._objects);e.length>0&&this.removeGlowEffectById(e),this._manager.clearNodes(),this._objects={},this._manager._objects={},this.urlMap={},this.relationshipsMap=null,this._viewer.getViewer().render()}hide(e){if(!CLOUD.Utils.isDefined(e))return;const t=this._manager.getFilter();if(!CLOUD.Utils.isDefined(t))return;if(CLOUD.Utils.isDefined(e.all)&&1==e.all)return void t.hideAll();let i=[];CLOUD.Utils.isDefined(e.objectData)&&(Array.isArray(e.objectData)||(e.objectData=[e.objectData]),i=i.concat(t.getMatchIds(e.objectData))),CLOUD.Utils.isDefined(e.ids)&&(i=i.concat(e.ids)),i=Array.from(new Set(i)),0!==i.length&&t.hideByIds(i)}show(e){if(!CLOUD.Utils.isDefined(e))return;const t=this._manager.getFilter();if(!CLOUD.Utils.isDefined(t))return;if(CLOUD.Utils.isDefined(e.all)&&1==e.all)return void t.showAll();let i=[];CLOUD.Utils.isDefined(e.objectData)&&(Array.isArray(e.objectData)||(e.objectData=[e.objectData]),i=i.concat(t.getMatchIds(e.objectData))),CLOUD.Utils.isDefined(e.ids)&&(i=i.concat(e.ids)),i=Array.from(new Set(i)),0!==i.length&&t.showByIds(i)}select(e){let t=this._viewer.getViewer();if(!CLOUD.Utils.isDefined(e))return;const i=this._manager.getFilter();if(!CLOUD.Utils.isDefined(i))return;if(CLOUD.Utils.isDefined(e.all)&&1==e.all)return t.addToSelection(this.getAllObjectIds(),this.modelId),void t.render();let o=[];CLOUD.Utils.isDefined(e.objectData)&&(Array.isArray(e.objectData)||(e.objectData=[e.objectData]),o=o.concat(i.getMatchIds(e.objectData))),CLOUD.Utils.isDefined(e.ids)&&(o=o.concat(e.ids)),o=Array.from(new Set(o)),0!==o.length&&(t.addToSelection(o,this.modelId),t.render())}removeSelection(e){let t=this._viewer.getViewer();if(!CLOUD.Utils.isDefined(e))return;const i=this._manager.getFilter();if(!CLOUD.Utils.isDefined(i))return;if(CLOUD.Utils.isDefined(e.all)&&1==e.all)return t.clearSelection(),void t.render();let o=[];CLOUD.Utils.isDefined(e.objectData)&&(Array.isArray(e.objectData)||(e.objectData=[e.objectData]),o=o.concat(i.getMatchIds(e.objectData))),CLOUD.Utils.isDefined(e.ids)&&(o=o.concat(e.ids)),o=Array.from(new Set(o)),0!==o.length&&(t.removeFromSelection(o,this.modelId),t.render())}convert(e,t){return!1!==t&&(t=!0),this._viewer.getExternalObjectConverter().convertToExternalObject(e,e,t)}_fireTransformedEvent(t){this.getEventManager().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ExternalObjectTransformed,t,this.getPosition(t)),this._viewer.getViewer().updateGlowEffect(this.modelId,t),this._viewer.updateSceneBoundingBox(!1)}translate(e,t){let i=this.getAllChildrenId(e);i&&i.length>0&&i.forEach((e=>this._manager.setAccumulateTransform(e,t))),this._manager.setAccumulateTransform(e,t),this._viewer.getViewer().render(),this._fireTransformedEvent(e)}rotateOnBasePoint(e,t,i,o){let n=this.getAllChildrenId(e);n&&n.length>0&&n.forEach((e=>this._manager.rotateOnBasePoint(e,t,i,o))),this._manager.rotateOnBasePoint(e,t,i,o),this._viewer.getViewer().render(),this._fireTransformedEvent(e)}scaleOnBasePoint(e,t,i){this._manager.scaleOnBasePoint(e,t,i),this._viewer.getViewer().render(),this._fireTransformedEvent(e)}getBoundingBoxById(e){return this._manager.getBoundingBoxById(e)}_getValid3dParam(e){if("[object Object]"===Object.prototype.toString.call(e)&&e.hasOwnProperty("x")&&e.hasOwnProperty("y")&&e.hasOwnProperty("z"))return new THREE.Vector3(e.x,e.y,e.z)}setPosition(e,t){var i=this._getValid3dParam(t);i&&(this._manager.setTransform(e,i,void 0,void 0,void 0,!0),this._viewer.getViewer().render(),this._fireTransformedEvent(e))}getPosition(e){var t=this._manager.getTransform(e);if(t&&t.position){var i=t.position;return{x:i.x,y:i.y,z:i.z}}}offset(e,t){var i=this._getValid3dParam(t);if(!i)return;let o=this.getAllChildrenId(e);o&&o.length>0&&o.forEach((e=>this._manager.setAccumulateOffset(e,i))),this._manager.setAccumulateOffset(e,i),this._viewer.getViewer().render(),this._fireTransformedEvent(e)}offsetX(e,t){this.offset(e,{x:t,y:0,z:0})}offsetY(e,t){this.offset(e,{x:0,y:t,z:0})}offsetZ(e,t){this.offset(e,{x:0,y:0,z:t})}rotate(e,t){var i=this._getValid3dParam(t);if(!i)return;let o=this.getAllChildrenId(e);o&&o.length>0&&o.forEach((e=>this._manager.setAccumulateTransform(e,void 0,void 0,i))),this._manager.setAccumulateTransform(e,void 0,void 0,i),this._viewer.getViewer().render(),this._fireTransformedEvent(e)}rotateX(e,t){this.rotate(e,{x:t,y:0,z:0})}rotateY(e,t){this.rotate(e,{x:0,y:t,z:0})}rotateZ(e,t){this.rotate(e,{x:0,y:0,z:t})}setRotationX(e,t,i){let o=new THREE.Vector3(1,0,0);this.rotateOnBasePoint(e,t,o,i)}setRotationY(e,t,i){let o=new THREE.Vector3(0,1,0);this.rotateOnBasePoint(e,t,o,i)}setRotationZ(e,t,i){let o=new THREE.Vector3(0,0,1);this.rotateOnBasePoint(e,t,o,i)}scale(e,t){var i=this._getValid3dParam(t);i&&0!==i.x&&0!==i.y&&0!==i.z&&(this._manager.setAccumulateTransform(e,void 0,i),this._viewer.getViewer().render(),this._fireTransformedEvent(e))}scaleX(e,t){this.scale(e,{x:t,y:1,z:1})}scaleY(e,t){this.scale(e,{x:1,y:t,z:1})}scaleZ(e,t){this.scale(e,{x:1,y:1,z:t})}getTransformation(e){if(!this._manager._hasObjectId(e))return;const[t]=this._manager.meshes[e];if(t){return t.matrix.clone().elements}}setTransformation(e,t){if(!this._manager._hasObjectId(e))return;if(["[object Float32Array]","[object Array]"].indexOf(Object.prototype.toString.call(t))<0)return;const i=new THREE.Matrix4;i.fromArray(t),this._manager.applyTransformMatrix(e,i,!0),this._viewer.getViewer().render(),this._fireTransformedEvent(e)}setGlowEffectById(o,n){i.send(t,"setGlowEffectById");var s=new THREE.Color("#11DAB7"),r="body",a=.3,l=3,h=!1;null!=n&&(null!=n.type&&(r=n.type),null!=n.color&&n.color instanceof e.Web.Graphics.Color&&(s=new THREE.Color(n.color.red/255,n.color.green/255,n.color.blue/255)),null!=n.intensity&&(a=n.intensity),null!=n.spread&&(l=n.spread),null!=n.isGis&&(h=n.isGis)),this._viewer.getViewer().setGlowEffectById(this.modelId,o,{color:s,type:r,intensity:a,spread:l,isGis:h}),this._viewer.render()}removeGlowEffectById(e){if(i.send(t,"removeGlowEffectById"),null==e||0==e.length)return void console.warn("没有发光效果被删除。");this._viewer.getViewer().removeGlowEffectById(this.modelId,e),this._viewer.render()}clearGlowEffect(){i.send(t,"clearGlowEffect"),this._viewer.getViewer().removeGlowEffectById(this.modelId),this._viewer.render()}play(e,t=0){this.isAnimatable(e)?this._manager.play(e,t):console.warn("there is no animation in the mesh")}pause(e){this._manager.pause(e)}stop(e){this._manager.stop(e)}isAnimatable(e){return this._manager.isAnimation(e)}getObjectByName(e){const t=this.getAllObjects(),i=this.getObjectIdByName(e);return t.find((e=>e.name===i))}removeByName(e){let t=this.getObjectIdByName(e);this.removeById(t)}getAllObjects(){return this._manager.getAllMeshes()}setObjectData(e,t){if(Array.isArray(t)){let i={};t.forEach((e=>{i=Object.assign({},i,e)})),this._manager.setObjectData(e,i)}else this._manager.setObjectData(e,t)}getObjectData(e){return this._manager.getObjectData(e)}_getCloneOriginUrlById(e){for(const t in this.urlMap)if(this.urlMap[t].originId===e)return t}toLocalPosition(e,t){if(3===arguments.length){console.warn("[BIMFACE WARN]: ExternalObjectManager.toLocalPosition(id, worldPosition, worldVector) is obsolete, please use ExternalObjectManager.toLocalPosition(id, option) instead.");const t=arguments[1],i=arguments[2];if(!this._manager._hasObjectId(e))return;const o=this._manager.getTransform(e),n=(new THREE.Matrix4).compose(o.position,o.rotate,o.scale).clone().invert();let s,r;if(t){s=new THREE.Vector3(t.x,t.y,t.z).applyMatrix4(n).toArray()}if(i){r=new THREE.Vector3(i.x,i.y,i.z).applyMatrix4(n),r=r.normalize().toArray()}return{localPosition:s,localVector:r}}const{worldPosition:i,worldVector:o}=t;if(!this._manager._hasObjectId(e))return;const n=this._manager.getTransform(e),s=(new THREE.Matrix4).compose(n.position,n.rotate,n.scale).clone().invert();let r,a;if(i){r=new THREE.Vector3(i.x,i.y,i.z).applyMatrix4(s),r={x:r.x,y:r.y,z:r.z}}if(o){a=new THREE.Vector4(o.x,o.y,o.z,0).applyMatrix4(s),a.normalize(),a={x:a.x,y:a.y,z:a.z}}return{localPosition:r,localVector:a}}toWorldPosition(e,t){if(3===arguments.length){console.warn("[BIMFACE WARN]: ExternalObjectManager.toWorldPosition(id, localPosition, localVector) is obsolete, please use ExternalObjectManager.toWorldPosition(id, option) instead.");const t=arguments[1],i=arguments[2];if(!this._manager._hasObjectId(e))return;const o=this._manager.getTransform(e),n=(new THREE.Matrix4).compose(o.position,o.rotate,o.scale);let s,r;if(t){s=new THREE.Vector3(t.x,t.y,t.z).applyMatrix4(n).toArray()}if(i){r=new THREE.Vector3(i.x,i.y,i.z).applyMatrix4(n),r=r.normalize().toArray()}return{worldPosition:s,worldVector:r}}const{localPosition:i,localVector:o}=t;if(!this._manager._hasObjectId(e))return;const n=this._manager.getTransform(e),s=(new THREE.Matrix4).compose(n.position,n.rotate,n.scale);let r,a;if(i){r=new THREE.Vector3(i.x,i.y,i.z).applyMatrix4(s),r={x:r.x,y:r.y,z:r.z}}if(o){a=new THREE.Vector4(o.x,o.y,o.z,0).applyMatrix4(s),a.normalize(),a={x:a.x,y:a.y,z:a.z}}return{worldPosition:r,worldVector:a}}setHierarchy(e){return this.temporaryMap=new Map,this.isCorrectRelationships=!0,this.getTemporaryMap(null,e.id,e.children),this.isCorrectRelationships?this.relationshipsMap?this.checkLegal()?(this.combineMap(),!0):(this.console.warn("The hierarchical structure was wrong due to the duplication of objects in different hierarchies."),!1):(this.relationshipsMap=this.temporaryMap,!0):(this.console.warn("The hierarchical structure was wrong due to the duplication of objects in different hierarchies."),!1)}getTemporaryMap(e,t,i){if(!this.isCorrectRelationships)return;let o=[];for(let e=0;e<i.length;e++)if(o.push(i[e].id),i[e].children&&i[e].children.length>0)this.getTemporaryMap(t,i[e].id,i[e].children);else{if(this.temporaryMap.has(i[e].id))return void(this.isCorrectRelationships=!1);this.temporaryMap.set(i[e].id,{father:t,children:[]})}this.temporaryMap.has(t)?this.isCorrectRelationships=!1:this.temporaryMap.set(t,{father:e,children:o})}checkLegal(){let e=!0,t={};return this.relationshipsMap.forEach(((e,i)=>{t[i]=this.getAncestors(i)})),this.temporaryMap.forEach(((i,o)=>{let n=i.children;for(let i=0;i<n.length;i++)if(t[o]&&t[o].indexOf(n[i])>-1)return void(e=!1)})),e}getAncestors(e){let t=[],i=this.relationshipsMap.get(e).father;return i&&(t.push(i),t=[...t,...this.getAncestors(i)]),t}combineMap(){this.relationshipsMap&&this.temporaryMap&&this.temporaryMap.forEach(((e,t)=>{if(this.relationshipsMap.has(t)){let i=e.children;for(let e=0;e<i.length;e++)if(this.relationshipsMap.has(i[e]))if(this.relationshipsMap.get(t).children.indexOf(i[e])>-1);else{if(this.relationshipsMap.get(i[e]).father!==t){if(this.relationshipsMap.get(i[e]).father){let t=this.relationshipsMap.get(this.relationshipsMap.get(i[e]).father).children.indexOf(i[e]);this.relationshipsMap.get(this.relationshipsMap.get(i[e]).father).children.splice(t,1)}this.relationshipsMap.get(i[e]).father=t}this.relationshipsMap.get(t).children.push(i[e])}else this.relationshipsMap.get(t).children.push(i[e])}else{this.relationshipsMap.set(t,e);let i=e.children;for(let e=0;e<i.length;e++)if(this.relationshipsMap.has(i[e])&&this.relationshipsMap.get(i[e]).father!==t){if(this.relationshipsMap.get(i[e]).father){let t=this.relationshipsMap.get(this.relationshipsMap.get(i[e]).father).children.indexOf(i[e]);this.relationshipsMap.get(this.relationshipsMap.get(i[e]).father).children.splice(t,1)}this.relationshipsMap.get(i[e]).father=t}}}))}getAllChildrenId(e){if(!this.relationshipsMap)return[];let t=[];if(this.relationshipsMap.has(e)){let i=this.relationshipsMap.get(e).children;t=[...t,...i];for(let e=0;e<i.length;e++)this.relationshipsMap.get(i[e])&&this.relationshipsMap.get(i[e]).children.length>0&&(t=[...t,...this.getAllChildrenId(i[e])])}return t}clearAllHierarchy(){this.relationshipsMap.clear()}clearHierarchy(e,t){let i=this.relationshipsMap.get(e).children,o=new Set,n=new Set;t.forEach((e=>{-1===i.indexOf(e)?n.add(e):o.add(e)})),n.size>0&&this.console.warn(`The relationships associated with childrenIds "${[...n].join("、")}" were not cleared because the parent-child relationships were not established.`),[...o].forEach((t=>this.clearCurrentIdToAncestorRelationship(e,t)))}clearCurrentIdToAncestorRelationship(e,t){let i=this.relationshipsMap.get(t).father;if(i){let o=this.relationshipsMap.get(i).children.indexOf(t);this.relationshipsMap.get(i).children.splice(o,1),i!=e?this.clearCurrentIdToAncestorRelationship(e,i):0===this.relationshipsMap.get(i).children.length&&null===this.relationshipsMap.get(i).father&&this.relationshipsMap.delete(i)}this.relationshipsMap.get(t).father=null,0===this.relationshipsMap.get(t).children.length&&this.relationshipsMap.delete(t)}clearRelationshipById(e){if(!this.relationshipsMap)return;if(!this.relationshipsMap.has(e))return;let t=this.relationshipsMap.get(e).father;t&&this.clearHierarchy(t,[e]);let i=this.relationshipsMap.get(e).children;i&&i.length>0&&this.clearHierarchy(e,i)}}}(),function(){e.Bimface.Data.StatisticsDataManager.getInstance();let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer");t.ExternalObjectManager=class{constructor(t){return new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t)}}}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer"),i=Object.freeze({Endpoint:"endpoint",Midpoint:"midpoint",Intersection:"intersection",Line:"line",Face:"face"});t.SnapObject=i}(),function(){e.Bimface.Data.StatisticsDataManager.getInstance();let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer");t.SnapMode=class{constructor(){this.snapList={},this.snapConditions=[]}setSnap2DList(e){this.snapList=e}getSnap2DList(){return this.snapList}setSnap3DList(e){this.snapList=e}getSnap3DList(){return this.snapList}setSnapConditions(e){this.snapConditions=e}getSnapConditions(){return this.snapConditions}}}(),void 0===Object.assign&&(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t});let b=Object.freeze({Release:"Release",Debug:"Debug"}),U=Object.freeze({Normal:"Normal",DrawingView:"drawingView"}),D=Object.freeze({BIMFACE:"BIMFACE",Local:"Local"}),R=Object.freeze({zh_CN:"zh_CN",en_GB:"en_GB",sv_SE:"sv_SE"}),V=Object.freeze({Normal:"Normal",Bake:"Bake"});window.BimfaceSDKLoaderConfig=function(){if(window.hostConfig){for(let e in window.hostConfig)d[e]=window.hostConfig[e];d.securityApi=window.hostConfig.securityApi}return{staticHost:`${d.staticHost}/api`,APIHost:d.APIHost,language:"zh_CN",viewToken:null,configuration:b.Release,dataEnvType:d.dataEnvType||"BIMFACE",viewType:U.Normal,visualStyle:V.Bake,version:"",securityApi:d.securityApi}},window.BimfaceEnvOption=D,window.BimfaceLanguageOption=R,window.BimfaceConfigrationOption=b,window.BimfaceViewTypeOption=U;class Q{constructor(e){this.viewer=e,this.console=e.console,this._cloudViewer=e.getViewer(),this._cloudCamera=this._cloudViewer.camera,this._editorConfig={NoZoom:CLOUD.EditorConfig.NoZoom,NoPan:CLOUD.EditorConfig.NoPan,NoRotate:CLOUD.EditorConfig.NoRotate}}getStatus(){const e=this._cloudViewer.getCamera();let t=JSON.parse(e);return t.coordinateSystem="world",t}setStatus(e,t){"object"==typeof e&&(e=JSON.stringify(e)),this._cloudViewer.setCamera(e,!1,t),this._cloudViewer.render()}setCameraType(e,t){const i=this._cloudViewer;if("PerspectiveCamera"==e)null==t?t=45:t<10?t=10:t>120&&(t=120),this._cloudCamera.setFov(t),i.switchToCamera("persp");else if("OrthographicCamera"==e){if(CLOUD.GlobalData.EnableGisMap||CLOUD.GlobalData.EnableLogarithmicDepthBuffer)return void this.console.warn("Can not use OrthographicCamera when EnableLogarithmicDepthBuffer is true");i.switchToCamera("orth")}this._cloudViewer.render()}getCurrentRange(){return this._cloudViewer.cameraControl.getCurrentRangeofCamera()}lockAxis(e,t){"Z"==e?t&&(t[0]>t[1]&&(t=[t[1],t[0]]),t[0]<0||t[1]>Math.PI)?this.console.warn("The value range of 'range' is [0, Math.PI]"):(this._cloudViewer.lockAxisZ(!0,t),this._cloudViewer.render()):this.console.warn("The API supports AxisOption.Z only for now.")}unlockAxis(e){"Z"===e?(this._cloudViewer.lockAxisZ(!1),this._cloudViewer.render()):this.console.warn("The API supports AxisOption.Z only for now.")}setMaximalRange(e){const t=this._cloudViewer.cameraControl;void 0!==e?"number"==typeof e?e<0?this.console.warn("The parameter must be greater than 0."):(t.setMaximalRangeofCamera(e),t.cameraWithinMaximumRange()||(this.console.info("The previous position of camera was beyond the CameraRange, so we reset it."),t.resetCameraToMaximumRange()),this._cloudViewer.render()):this.console.warn("The parameter is not a number."):this.console.warn("The parameter is undefined.")}setObjectOffset(e){if(!CLOUD.Utils.isDefined(e))return void this.console.warn("The parameter offset is undefined.");if("number"!=typeof e)return void this.console.warn("The parameter offset is not a number.");let t=e/1e3;this._cloudViewer.cameraControl.setObjectOffset(t),this._cloudViewer.render()}getObjectOffset(){return 1e3*this._cloudViewer.cameraControl.getObjectOffset()}setZoomSpeed(e){CLOUD.Utils.isDefined(e)?"number"==typeof e?(this._cloudViewer.setZoomSpeed(e),this._cloudViewer.render()):this.console.warn("The parameter zoomSpeed is not a number."):this.console.warn("The parameter zoomSpeed is undefined.")}getZoomSpeed(){return this._cloudViewer.getZoomSpeed()}enableRotate(e=!0){CLOUD.EditorConfig.NoRotate=!e,this._cloudViewer.render()}enablePan(e=!0){CLOUD.EditorConfig.NoPan=!e,this._cloudViewer.render()}enablePitch(e=!0){const t=!e;this._cloudViewer.lockAxisZ(t),this._cloudViewer.render()}enableZoom(e=!0){CLOUD.EditorConfig.NoZoom=!e,this._cloudViewer.render()}setCameraAnimation(t){if(this._animationOption&&this.clearCameraAnimation(),this._animationOption=t,!t.pathAnimation instanceof e.Bimface.Plugins.Animation.PathAnimation)return void this.console.warn("The parameter option.pathAnimation is not type of Glodon.Bimface.Plugins.Animation.PathAnimation.");let i=null==t.distance?5e3:t.distance,o=null==t.angle?0:t.angle;this._animationOption.distance=i,this._animationOption.angle=o,t.pathAnimation._setCameraAnimation(this._cloudCamera,i,o),this._editorConfig.NoZoom=CLOUD.EditorConfig.NoZoom,this._editorConfig.NoPan=CLOUD.EditorConfig.NoPan,this._editorConfig.NoRotate=CLOUD.EditorConfig.NoRotate,CLOUD.EditorConfig.NoZoom=!0,CLOUD.EditorConfig.NoPan=!0,CLOUD.EditorConfig.NoRotate=!0}getCameraAnimation(){return this._animationOption}clearCameraAnimation(){this._animationOption&&(this._animationOption.pathAnimation.camera=null,this._animationOption=null,CLOUD.EditorConfig.NoZoom=this._editorConfig.NoZoom,CLOUD.EditorConfig.NoPan=this._editorConfig.NoPan,CLOUD.EditorConfig.NoRotate=this._editorConfig.NoRotate)}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Camera").Camera3D=Q;let k=new THREE.Vector3;!function(){var t="Glodon.Bimface.Viewer.Viewer3D",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),s=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),r=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),"Please call enableSectionBox before using this method."),a=e.Web.Lang.Utility.ClientHelper.isWebGLAvailable();const l=e.Web.Lang.Utility.DataUtil;let h=function(n){o.Viewer.call(this);let r=e.Web.Lang.Utility.ClientHelper.getIsDesktop();if(this.viewerType="Viewer3D",a){let o=this;n.APIHost=n.APIHost.replace(/\/$/,""),n.resourceHost=n.resourceHost.replace(/\/$/,""),this._beforeInitialize(n),this._opt=n,this._opt.skyBoxType="CloudySky",this._opt.floorExplosion=!1,this._opt.enableBorderLine=null===n.enableWireframe?n.enableBorderLine:n.enableWireframe,this._colorOverridedMap={},this._colorOverridedList=[],this._models={},this._manifest={},this._lastModelIndex=0,this._defaultModelType=void 0,this._defaultUnit=void 0,this._renderingMode=0,this.console=new e.Web.Common.Console,this._plugins={},this.enableStorage=n.enableStorage,this.enableStorage&&(this.storageManager=new f.Storage.StorageManager);const a={setupEarth:n.enableEarth,staticResourcesHost:n.staticResourcesHost,initialGeoCoordinates:n.initialGeoCoordinates,gisMode:!1,enableStorage:n.enableStorage,maxMemoryUsage:n.memoryThreshold};let h=new f.Viewer(a);switch(this.customedHomeview=null,this.defaultHomeview=null,this.bViewHouseIsLoaded=n.enableViewHouse,this.bIsViewHouseVisible=!1,this.bIsCursorEnabled=!0,n.renderMode){case"fullVolume":this._renderingMode=1;break;case"incremental":this._renderingMode=2;break;default:this._renderingMode=0}let c=f.GlobalData;c.EnableLoadOnDemand=!0===n.loadOnDemand,c.Instance=!n.enableReplaceMaterial,c.EnableSplitComponent=n.enableSplitComponent,c.EnableExplosion=n.enableExplosion,c.EnableLogarithmicDepthBuffer=n.enableLogarithmicDepthBuffer,c.ConstraintZoom=n.enableConstraintZoom,c.BorderLineDelayLoaded=!1===n.enableBorderLine||!1===n.enableWireframe,c.PickingEffect=!1!==n.pickingEffect,c.Renderer=this._renderingMode,c.EnableLodDemDom=!0===n.enableLodDemDom,c.SceneUnit=n.unit,void 0!==n.enableInstanceSharedMesh&&(c.InstanceSharedMeshEnabled=n.enableInstanceSharedMesh),void 0!==n.instanceSharedMeshThreshold&&(c.InstanceSharedMeshThreshold=n.instanceSharedMeshThreshold),void 0!==n.instanceAsyncProcessing&&(c.InstanceAsyncProcessing=n.instanceAsyncProcessing),void 0!==n.instanceAsyncProcessingStep&&(c.InstanceAsyncProcessingStep=n.instanceAsyncProcessingStep),void 0!==n.BatchAsyncProcessingFrequency&&(c.BatchAsyncProcessingFrequency=n.BatchAsyncProcessingFrequency),e.Web.Lang.Utility.ClientHelper.getIsMac()&&e.Web.Lang.Utility.ClientHelper.getIsChrome()&&(c.ForcedUseWebgl1=!0),this.enableShortcutKey(n.enableShortcutKey);var l=s.create("div","bf-view");n.domElement.appendChild(l),h.init(l),this.view={},this.snap=null,this.bIsBringAxisGridsToFront=!1,this.bIsActiveAxisGridManager=!1,this.bIsEnableSelectionChanged=!0,this.mapCustomizedRoom={},this._effectMode=n.effectMode?n.effectMode:"performance",h.setDeviceMobile&&h.setDeviceMobile(!r),null!=h&&(h.cameraControl.enableLimitWorldScalar(!1),this.maximalRangeofCamera=h.cameraControl.getMaximalRangeofCamera()),this.getViewer=function(){return h},this.getDomElement=function(){return l},this.hookContextMenu(l),this.hookCloudViewerEvents(),this._config(n),this.setBackgroundColors(n.backgroundColor),this.camera3D=new Q(this),this.resizeWindow=function(){o.resize()},window.addEventListener("resize",this.resizeWindow),this.getLightManager=function(){return this.lightManager},this.setNavigationMode(e.Bimface.Viewer.NavigationMode3D.PickWithRect),r?(console.log("client: desktop"),this.mouseRotating=new v(this)):console.log("client: mobile"),o.addEventListener(e.Bimface.Viewer.Viewer3DEvent.ViewAdded,(function(){var n=new e.Bimface.Light.LightManagerConfig;n.viewer=o,o.lightManager=new e.Bimface.Light.LightManager(n);var s=o.getViewer(),r=s.getNumOfElements(),a=s.getNumOfTriangles();let l,h=o._data.modelType;l="singleMode"==h?"model":h;let c={eventId:"加载",loadModel:"expert",type:l,elements:r,triangles:a};i.send(t,"ViewAdded",c)}))}else this._loadNotSuportPromptPage(n.domElement)};n.Type.inheritPrototype(h,o.Viewer),h.prototype=Object.assign({},o.Viewer.prototype,{hookContextMenu:function(t){var i,o,n,s=this,r=!0;this.onTouchstart=function(a){let l=a.touches[0];r=!1,i=[l.pageX,l.pageY],n&&clearTimeout(n),n=setTimeout((function(){if(!r){o=o||i;var n=t.getBoundingClientRect(),a={clientPosition:{x:o[0]-n.left,y:o[1]-n.top},containerBox:{width:n.width,height:n.height}};Math.abs(i[0]-o[0])<5&&Math.abs(i[1]-o[1])<5&&s._opt.enableToggleContextMenuDisplay&&s.getEventManager().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ContextMenu,a),r=!0}}),1e3)},this.onTouchmove=function(e){let t=e.touches[0];o=[t.pageX,t.pageY]},this.onTouchend=function(){o=null,r=!0},t.addEventListener("touchstart",this.onTouchstart),t.addEventListener("touchend",this.onTouchend),t.addEventListener("touchmove",this.onTouchmove)},destroy:function(){i.send(t,"destroy"),o.Viewer.prototype.destroy.call(this),this.mouseRotating&&(this.mouseRotating.destroy(),this.mouseRotating=null),this.lightManager&&(this.lightManager.destroy(),this.lightManager=null),this.getModels().forEach((e=>{e.destroy()})),this.getViewer().removeAllCallbacks(),this._viewHouse&&(this._viewHouse.destroy(),this._viewHouse=null),this.getViewer().destroy(),window.removeEventListener("resize",this.resizeWindow);var e=this.getDomElement();e&&(e.removeEventListener("mousedown",this.onMouseDown),e.removeEventListener("mouseup",this.onMouseUp)),e.parentNode&&e.parentNode.removeChild(e),this._opt=null,this._colorOverridedMap=null,this._colorOverridedList=null,this._data=null,this._models=null,this._defaultModel=null,this.customedHomeview=null,this.defaultHomeview=null,this.view=null,this.snap=null,this._manifest=null},hookCloudViewerEvents:function(){let t=this,i=t._opt,o=this.getViewer(),n=this.getEventManager(),r=e.Bimface.Viewer.Viewer3DEvent,a=s.create("div","bf-loading"),l=s.create("div","bf-loading-gif"),h=s.create("div","bf-loading-progress"),c=!1,d=0,g=s.create("div","bf-rect-selcetion"),u=null;const p=2;let A=function(e){let t;const i="Component",o="ExternalComponent",n="Room",s="Map";switch(e){case f.PICKABLETYPE.ExternalComponent:t=o;break;case f.PICKABLETYPE.Room:t=n;break;case f.PICKABLETYPE.Map:t=s;break;default:t=i}return t};f.GlobalData.EnableDemolishByDClick=!0,h.innerText="0%",a.appendChild(l),a.appendChild(h),o.registerEventListener(f.EVENTS.ON_LOAD_START_NO_PROGRESS,(()=>{this._opt.loading&&(d++,a.parentElement||this._opt.domElement.appendChild(a),h.style.display="none")})),o.registerEventListener(f.EVENTS.ON_LOAD_START,(function(){i.loading&&(d++,i.domElement.appendChild(a))})),o.registerEventListener(f.EVENTS.ON_AXIS_GRID_HOVER,(function(e){n.fireEvent(r.AxisGridHover,e)})),o.registerEventListener(f.EVENTS.ON_FLOOR_EXPLOSION,(function(e){void 0===t.floorData&&(t.floorData={}),t.floorData[e.modelId]=e.floorInfos,n.fireEvent(r.FloorExplosion,e)}));var m={Home:0,Top:1,Bottom:2,North:3,South:4,West:5,East:6,SouthEast:7,SouthWest:8,NorthEast:9,NorthWest:10};let w=!1;o.registerEventListener(f.EVENTS.ON_LOAD_COMPLETE,(function(n){var s=t._opt;i.enableViewHouse&&t.showViewHouse(),d--,i.loading&&0==d&&(h.innerText="0%",i.domElement.removeChild(a));var r=t.getInformation();null===i.enableBorderLine||void 0===i.enableBorderLine?r.elements>8e4&&r.triangles>2e7?(t.enableWireframe(!1),t.setMinimumFPS(30)):(t.enableWireframe(!0),t.setMinimumFPS(8)):t.enableWireframe(i.enableBorderLine);let l=e.Web.Lang.Utility.ClientHelper.getIsDesktop();l&&!f.GlobalData.IncrementRender||t.enableWireframe(!1),t.setExposureShift(i.exposure),!l&&r.triangles>5e6&&(f.GlobalData.maxObjectNumInPool=2e3),!0===s.cancelHomeView||w||(o.setInitialView(m[s.initialViewOption]),o.setHomeView(m[s.homeViewOption])),w=!0,t.defaultHomeview=t.getCameraStatus(),s.enableIBLBackground&&s.loadIBLScene.IBLSceneOption&&t.loadIBLScene(s.loadIBLScene.IBLSceneOption,s.loadIBLScene.withBackground),o.enableTextureMapping(!0),e.Web.Lang.Utility.MouseMotion.setCursor(t)})),o.registerEventListener(f.EVENTS.ON_LOAD_PROGRESS,(function(e){var t=e.progress,i=Math.round(t.loaded/t.total*100);t.progress=i,h.innerText=i+"%",n.fireEvent(r.ViewLoading,t)})),o.registerEventListener(f.EVENTS.ON_LOAD_EMPTY_SCENE,(function(){d--,i.loading&&0==d&&i.domElement.removeChild(a),n.fireEvent(r.Error,{code:"EmptyData",message:"this view is empty."})})),o.registerEventListener(f.EVENTS.ON_DEMAND_LOAD_START,(function(){i.loading&&(d++,i.domElement.appendChild(a)),n.fireEvent(r.DemandLoadStart)})),o.registerEventListener(f.EVENTS.ON_DEMAND_LOAD_PROGRESS,(function(e){var t=e.progress,i=Math.round(t.loaded/t.total*100);t.progress=i,h.innerText=i+"%",n.fireEvent(r.DemandLoading,t)})),o.registerEventListener(f.EVENTS.ON_DEMAND_LOAD_COMPLETE,(function(e){d--,i.loading&&0==d&&(h.innerText="0%",i.domElement.removeChild(a)),o.setInitialView(m[i.initialViewOption]),o.setHomeView(m[i.homeViewOption]),n.fireEvent(r.DemandLoaded,e.data)})),o.registerEventListener(f.EVENTS.ON_EDITOR_UPDATEUI,(function(e){!function(e,t){e.visible?("pickByRect"===t?e.dir?g.setCss({left:`${e.left}px`,top:`${e.top}px`,width:`${e.width}px`,height:`${e.height}px`,background:"rgba(185,255,235,0.3)",border:"2px solid rgba(0,130,94,1)"}):g.setCss({left:`${e.left}px`,top:`${e.top}px`,width:`${e.width}px`,height:`${e.height}px`,background:"rgba(185,255,235,0.3)",border:"2px dashed rgba(0,130,94,1)"}):g.setCss({left:`${e.left}px`,top:`${e.top}px`,width:`${e.width}px`,height:`${e.height}px`,background:"rgba(136,136,136,0.2)",border:"solid #888888 1px"}),i.domElement.firstElementChild.appendChild(g),c=!0):(c&&(i.domElement.firstElementChild.removeChild(g),c=!1,n.fireEvent(r.RectSelection,{end:!0})),n.fireEvent(r.RectSelection,e))}(e.data,e.editor)})),o.registerEventListener(f.EVENTS.ON_CLICK_PICK,(function(i){!function(e){if(!(0==t.bIsEnableSelectionChanged||e.intersectInfo&&e.intersectInfo.objectType==f.PICKABLETYPE.Marker3d)){var i=null,o=null,s=e.doubleClick?2:1;if(o=e.event.button==p?"RightClick":e.doubleClick?"DoubleClick":"Click",e.intersectInfo){if(i={objectId:e.intersectInfo.selectedObjectId,modelId:e.intersectInfo.modelId,fileId:e.intersectInfo.fileId,elementId:e.intersectInfo.selectedObjectId,boundingBox:e.intersectInfo.worldBoundingBox,click:s,screenPosition:{x:e.event.clientX,y:e.event.clientY},worldPosition:e.intersectInfo.worldPosition,clientPosition:e.canvasPos,eventType:o,objectType:A(e.intersectInfo.objectType)},e.intersectInfo.objectType==f.PICKABLETYPE.Room&&(i.boundaryPoints=e.intersectInfo.boundaryPoints),e.intersectInfo.selectedObjectId&&"string"==typeof e.intersectInfo.selectedObjectId){var a=e.intersectInfo.selectedObjectId.split(".");a.length>1&&(i.elementId=a[1],i.integrateId=i.fileId,i.fileId=a[0])}}else i={click:s,screenPosition:{x:e.event.clientX,y:e.event.clientY},clientPosition:e.canvasPos,eventType:o,objectType:""};if(e.event.altKey&&console.log(i),e.doubleClick)n.fireEvent(r.MouseDoubleClicked,i),n.fireEvent(r.ComponentsSelectionChanged,i);else{if(e.event.button===THREE.MOUSE.LEFT&&(n.fireEvent(r.ComponentsSelectionChanged,i),null!=t.snap)){const e=t.snap.context;let o=e.pickPoint,n=e.hoverPosition,s={type:"Panel"===e.hoverObjectType?"Plane":e.hoverObjectType,worldPosition:o,clientPosition:{x:n.x,y:n.y}};i.snapPoint=s}i.normal=e.intersectInfo?e.intersectInfo.normal:null,n.fireEvent(r.MouseClicked,i)}}}(i),function(i){if(t._opt.enableToggleContextMenuDisplay&&t.bIsEnableSelectionChanged){var o={};if(i.event.button==p){var n=t.getDomElement().getBoundingClientRect(),s={x:i.event.clientX-n.left,y:i.event.clientY-n.top},r={width:n.width,height:n.height};o.clientPosition=s,o.containerBox=r,o.objectType=i.intersectInfo?A(i.intersectInfo.objectType):"",t.getEventManager().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ContextMenu,o)}}}(i)})),o.registerEventListener(f.EVENTS.ON_HOVER_PICK,(function(e){!function(e){var t=null,i="Hover";if(e.intersectInfo){if(t={objectId:e.intersectInfo.selectedObjectId,modelId:e.intersectInfo.modelId,fileId:e.intersectInfo.fileId,elementId:e.intersectInfo.selectedObjectId,boundingBox:e.intersectInfo.worldBoundingBox,screenPosition:{x:e.event.clientX,y:e.event.clientY},worldPosition:e.intersectInfo.worldPosition,clientPosition:e.canvasPos,eventType:i,objectType:A(e.intersectInfo.objectType)},e.intersectInfo.selectedObjectId&&"string"==typeof e.intersectInfo.selectedObjectId){var o=e.intersectInfo.selectedObjectId.split(".");o.length>1&&(t.elementId=o[1],t.integrateId=t.fileId,t.fileId=o[0])}}else u=null,t={screenPosition:{x:e.event.clientX,y:e.event.clientY},clientPosition:e.canvasPos,eventType:i};n.fireEvent(r.ComponentsHoverChanged,t),t.objectId&&u!=t.objectId&&(n.fireEvent(r.Hover,t),u=t.objectId)}(e)})),o.registerEventListener(f.EVENTS.ON_MOUSE_MOVE_PICK,(e=>{!function(e){if(!e.intersectInfo)return;const t=e.intersectInfo;var i={};if(void 0!==t.selectedObjectId&&(i.objectId=t.selectedObjectId),void 0!==t.modelId&&(i.modelId=t.modelId),void 0!==t.selectedObjectId&&(i.elementId=t.selectedObjectId),void 0!==t.worldBoundingBox&&(i.boundingBox=t.worldBoundingBox),void 0!==t.worldPosition&&(i.worldPosition=t.worldPosition),void 0!==t.objectType&&(i.objectType=A(e.intersectInfo.objectType)),void 0!==t.fileId&&(i.fileId=t.fileId),i.eventType="MouseMove",i.screenPosition={x:e.event.clientX,y:e.event.clientY},i.clientPosition=e.canvasPos,t.selectedObjectId&&"string"==typeof t.selectedObjectId){var o=t.selectedObjectId.split(".");o.length>1&&(i.elementId=o[1],i.integrateId=i.fileId,i.fileId=o[0])}n.fireEvent(r.MouseMove,i)}(e)})),o.registerEventListener(f.EVENTS.ON_SELECTION_CHANGED,(function(i){let o=[];for(let e in i.selectionList)o=o.concat(i.selectionList[e]);n.fireEvent(e.Bimface.Viewer.Viewer3DEvent.SelectionChanged,o),n.fireEvent(e.Bimface.Viewer.Viewer3DEvent.SelectionChangedInModel,i.selectionList,t._opt.domElement)})),o.addCallbacks("render",(function(){n.fireEvent(e.Bimface.Viewer.Viewer3DEvent.Rendered)})),o.registerEventListener(f.EVENTS.ON_MOUSE_DRAGGED,(function(t){n.fireEvent(e.Bimface.Viewer.Viewer3DEvent.MouseDragged,t)})),o.registerEventListener(f.EVENTS.ON_HOVER_SNAP,(function(e){t.snap.snapByPoint(e)})),t.addEventListener(r.ButtonOnToolbarClicked,(function(e){"Measure"==e.id&&e.isChecked&&null!=t.snap&&t.enableSnap(!1)})),t.addEventListener(r.MouseDoubleClicked,(function(e){t.zoomToSelectedComponents()})),o.registerEventListener(f.EVENTS.ON_CAMERA_CHANGED_AND_RENDERED,(function(i){n.fireEvent(e.Bimface.Viewer.Viewer3DEvent.PureRender,i),n.fireEvent(e.Bimface.Viewer.Viewer3DEvent.CameraPositionChanged,t.getCameraStatus())}))},_enableSelectionChanged(e){this.bIsEnableSelectionChanged=e},_viewerMethodToModelMethod(e,o,n){return i.send(t,e),!1!==n&&this.getModelCount()>1&&this.console.obsolete("Viewer3D."+e,"Viewer3D.getModel(modelId)."+e),this.getDefaultModel()[e](...o)},_viewerMethodWithIdsToModelMethod(e,o){i.send(t,e);const n=o[0];if("[object Array]"===Object.prototype.toString.call(n)){const t=this.getViewer().modelManager.modelCollection.getById("ExtrudeBodyManager"),i=this.getViewer().modelManager.modelCollection.getById("ExternalComponent");let s=[],r=[],a=[];if(n.forEach((e=>{t&&t._hasObjectId(e)?s.push(e):i&&i._hasObjectId(e)?r.push(e):a.push(e)})),s.length>0){const t=this._getExtrudeBodyModel();t&&(o[0]=s,t[e](...o))}if(r.length>0){const t=this._getExternalComponentModel();t&&(o[0]=r,t[e](...o))}a.length>0&&(o[0]=a,this._viewerMethodToModelMethod(e,o))}},_getExtrudeBodyModel(){if(!this._extrudeBodyModel){if(this.getViewer().modelManager.modelCollection.getById("ExtrudeBodyManager")){const t={modelId:"ExtrudeBodyManager",isVirtualModel:!0};this._extrudeBodyModel=new e.Bimface.Model.Model(this,t)}}return this._extrudeBodyModel},_getExternalComponentModel(){if(!this._externalComponentModel){if(this.getViewer().modelManager.modelCollection.getById("ExternalComponent")){const t={modelId:"ExternalComponent",isVirtualModel:!0};this._externalComponentModel=new e.Bimface.Model.Model(this,t)}}return this._externalComponentModel},_viewerMethodToVirtualModelMethod(e,t){const i=this._getExtrudeBodyModel();i&&i[e](...t);const o=this._getExternalComponentModel();o&&o[e](...t)},isolateComponentsById:function(e,t){return this._viewerMethodWithIdsToModelMethod("isolateComponentsById",arguments)},isolateComponentsByObjectData:function(e,t){return this._viewerMethodToModelMethod("isolateComponentsByObjectData",arguments)},isolateByBox:function(e,t){return this._viewerMethodToModelMethod("isolateByBox",arguments)},isolateModel:function(e,t){l.assertType(e,"arr")&&this.getModels().forEach((i=>{i.clearIsolation(),e.indexOf(i.modelId)<0&&e.indexOf(i.modelId.toString())<0&&i.isolateComponentsById([void 0],t)}))},clearModelIsolation:function(){this.getModels().forEach((e=>{e.clearIsolation()}))},clearIsolation:function(){return this._viewerMethodToVirtualModelMethod("clearIsolation",arguments),this._viewerMethodToModelMethod("clearIsolation",arguments,!1)},showComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("showComponentsById",arguments)},setShellVisibility:function(e,o){i.send(t,"setShellVisibility"),this.getModels().some((t=>{if(t.viewToken===e)return t.setShellVisibility(o),!0}))},showComponents:function(e){this.showComponentsById(e)},showComponentsByObjectData:function(e){return this._showExternalComponentByObjDate(e),this._viewerMethodToModelMethod("showComponentsByObjectData",arguments)},_showExternalComponentByObjDate(e){if(!f.Utils.isDefined(e))return;Array.isArray(e)||(e=[e]);const t=this._getExternalComponentModel();if(f.Utils.isDefined(t)){let i=t.getMatchIds(e);if(!f.Utils.isDefined(i))return;t.showComponentsById(i)}},hideComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("hideComponentsById",arguments)},hideComponents:function(e){this.hideComponentsById(e)},hideComponentsByObjectData:function(e){return this._hideExternalComponentByObjDate(e),this._viewerMethodToModelMethod("hideComponentsByObjectData",arguments)},_hideExternalComponentByObjDate(e){if(!f.Utils.isDefined(e))return;Array.isArray(e)||(e=[e]);const t=this._getExternalComponentModel();if(f.Utils.isDefined(t)){let i=t.getMatchIds(e);if(!f.Utils.isDefined(i))return;t.hideComponentsById(i)}},showAllComponents:function(e,t){return this._viewerMethodToVirtualModelMethod("showAllComponents",arguments),this._viewerMethodToModelMethod("showAllComponents",arguments,!1)},hideAllComponents:function(){return this._viewerMethodToVirtualModelMethod("hideAllComponents",arguments),this._viewerMethodToModelMethod("hideAllComponents",arguments,!1)},showExclusiveComponentsByObjectData:function(e,t,i){return this._viewerMethodToModelMethod("showExclusiveComponentsByObjectData",arguments)},transparentComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("transparentComponentsById",arguments)},transparentComponentsByObjectData:function(e){return this._viewerMethodToModelMethod("transparentComponentsByObjectData",arguments)},transparentAllComponents:function(){return this._viewerMethodToVirtualModelMethod("transparentAllComponents",arguments),this._viewerMethodToModelMethod("transparentAllComponents",arguments,!1)},opaqueComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("opaqueComponentsById",arguments)},opaqueComponentsByObjectData:function(e){return this._viewerMethodToModelMethod("opaqueComponentsByObjectData",arguments)},opaqueAllComponents:function(){return this._viewerMethodToVirtualModelMethod("opaqueAllComponents",arguments),this._viewerMethodToModelMethod("opaqueAllComponents",arguments,!1)},setIsolatedComponentColor:function(e){return this._viewerMethodToModelMethod("setIsolatedComponentColor",arguments)},restoreIsolatedComponentColor:function(){return this._viewerMethodToModelMethod("restoreIsolatedComponentColor",arguments)},getIsolatedComponentColor:function(){return this._viewerMethodToModelMethod("getIsolatedComponentColor",arguments)},setComponentsOpacity:function(e,t){return this._viewerMethodWithIdsToModelMethod("setComponentsOpacity",arguments)},addSelectedComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("addSelectedComponentsById",arguments)},setSelectedComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("setSelectedComponentsById",arguments)},addSelectedComponentsByObjectData:function(e){return this._viewerMethodToModelMethod("addSelectedComponentsByObjectData",arguments)},setSelectedComponentsByObjectData:function(e){return this._viewerMethodToModelMethod("setSelectedComponentsByObjectData",arguments)},getObjectDataById:function(e){return this._viewerMethodToModelMethod("getObjectDataById",arguments)},getSelectedComponents:function(){let e=new Set,t=this._getExternalComponentModel(),i=this.getModels(),o={},n=i.length>1,s=this._getExtrudeBodyModel(),r=[];const a=(t,i)=>{if(t){const s=t.getSelectedComponents();let a=[];if(s.forEach((t=>{if(n)if("external"===i){if(t.indexOf("-")>-1){let e=this.getExternalObjectManager().getAssociatedInfo(t);e&&(!o[e.modelId]&&(o[e.modelId]=[t])||o[e.modelId].push(t))}}else if("room"===i){const e=this.getViewer();let i=f.ExtrudeBodyManager.getInstance(e).getBindedModelId(t);i?!o[i]&&(o[i]=[t])||o[i].push(t):r.push(t)}else a.push(t);else e.add(t)})),n){if(t.modelId){a=o[t.modelId]&&a.concat(o[t.modelId])||a;let i={ModelId:t.modelId,Ids:a};a.length&&e.add(i)}"room"===i&&r.length>0&&e.add({ids:r})}}};return a(t,"external"),a(s,"room"),i.forEach((e=>{a(e)})),[...e]},removeSelectedId:function(e){return this._viewerMethodWithIdsToModelMethod("removeSelectedId",arguments)},setCollisionByCondition:function(e){this.getViewer().cameraControl.collisionManager.setCondition(e)},getCollisionByCondition:function(){return this.getViewer().cameraControl.collisionManager.getCondition()},clearSelectedComponents:function(){return this._viewerMethodToVirtualModelMethod("clearSelectedComponents",arguments),this._viewerMethodToModelMethod("clearSelectedComponents",arguments,!1)},enableBlinkComponents:function(e){this.getViewer().enableBlinkComponents(e)},addBlinkComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("addBlinkComponentsById",arguments)},setBlinkComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("setBlinkComponentsById",arguments)},getBlinkComponents:function(){let e=new Set;const t=t=>{if(t){t.getBlinkComponents().forEach((t=>{e.add(t)}))}};return t(this._getExtrudeBodyModel()),t(this._getExternalComponentModel()),t(this.getDefaultModel()),[...e]},clearBlinkComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("clearBlinkComponentsById",arguments)},clearAllBlinkComponents:function(){return this._viewerMethodToVirtualModelMethod("clearAllBlinkComponents",arguments),this._viewerMethodToModelMethod("clearAllBlinkComponents",arguments,!1)},setBlinkColor:function(e){return this._viewerMethodToVirtualModelMethod("setBlinkColor",arguments),this._viewerMethodToModelMethod("setBlinkColor",arguments,!1)},setBlinkIntervalTime:function(e){return this._viewerMethodToVirtualModelMethod("setBlinkIntervalTime",arguments),this._viewerMethodToModelMethod("setBlinkIntervalTime",arguments,!1)},overrideComponentsColorById:function(e,t){return this._viewerMethodWithIdsToModelMethod("overrideComponentsColorById",arguments)},applyMaterialOverrideSet(e,t,i,o,n){return this._viewerMethodToModelMethod("applyMaterialOverrideSet",arguments,!1)},overrideComponentsColorByObjectData:function(e,t){return this._viewerMethodToModelMethod("overrideComponentsColorByObjectData",arguments)},restoreComponentsColorById:function(e){return this._viewerMethodWithIdsToModelMethod("restoreComponentsColorById",arguments)},restoreComponentsColorByObjectData:function(e){return this._viewerMethodToModelMethod("restoreComponentsColorByObjectData",arguments)},overrideComponentsOpacityById:function(e,t){return this._viewerMethodWithIdsToModelMethod("overrideComponentsOpacityById",arguments)},overrideComponentsOpacityByObjectData:function(e,t){return this._viewerMethodToModelMethod("overrideComponentsOpacityByObjectData",arguments)},restoreComponentsOpacityById:function(e){return this._viewerMethodWithIdsToModelMethod("restoreComponentsOpacityById",arguments)},restoreComponentsOpacityByObjectData:function(e){return this._viewerMethodWithIdsToModelMethod("restoreComponentsOpacityByObjectData",arguments)},clearOverrideColorComponents:function(){return this._viewerMethodToVirtualModelMethod("clearOverrideColorComponents",arguments),this._viewerMethodToModelMethod("clearOverrideColorComponents",arguments,!1)},restoreDefault:function(){return this._viewerMethodToVirtualModelMethod("restoreDefault",arguments),this._viewerMethodToModelMethod("restoreDefault",arguments,!1)},restoreAllDefault:function(){return this._viewerMethodToVirtualModelMethod("restoreAllDefault",arguments),this._viewerMethodToModelMethod("restoreAllDefault",arguments,!1)},zoomIn:function(){this.getViewer().zoomIn()},recordCustomHomeview:function(e){this.customedHomeview=e},recordCustomedHomeview:function(e){this.console.obsolete("Viewer3D.recordCustomedHomeview","Viewer3D.recordCustomHomeview"),this.recordCustomHomeview(e)},getCustomHomeview:function(){return this.customedHomeview},getCustomedHomeview:function(){return this.console.obsolete("Viewer3D.getCustomedHomeview","Viewer3D.getCustomHomeview"),this.getCustomHomeview()},getDefaultHomeview:function(){if(this._opt.floorExplosion){var e=this.getViewer(),t=this.getCameraStatus(),i=this.getCameraAnimation();e.setHomeView(e.getHomeView()),this.defaultHomeview=this.getCameraStatus(),this.setCameraAnimation(!1),this.setCameraStatus(t),this.setCameraAnimation(i)}return this.defaultHomeview},getViewHouseIsLoaded:function(){return this.bViewHouseIsLoaded},zoomOut:function(){this.getViewer().zoomOut()},setCameraAnimation:function(e){i.send(t,"setCameraAnimation"),this.getViewer().setTransitionAnimationState(e)},getCameraAnimation:function(){return this.getViewer().getTransitionAnimationState()},toggleContextMenuDisplay:function(e){i.send(t,"toggleContextMenuDisplay"),this._opt.enableToggleContextMenuDisplay=void 0!==e?e:!this._opt.enableToggleContextMenuDisplay},render:function(){var e=this.getViewer();e.modelManager.setRenderStateChanged(!0),e.render()},enableTranslate:function(e){i.send(t,"enableTranslate"),f.EditorConfig.NoPan=null!=e&&!e},isEnableTranslate:function(){return i.send(t,"isEnableTranslate"),!1===f.EditorConfig.NoPan},enableScale:function(e){i.send(t,"enableScale"),f.EditorConfig.NoZoom=null!=e&&!e},isEnableScale:function(){return i.send(t,"isEnableScale"),!1===f.EditorConfig.NoZoom},enableOrbit:function(e){i.send(t,"enableOrbit"),f.EditorConfig.NoRotate=null!=e&&!e},isEnableOrbit:function(){return i.send(t,"isEnableOrbit"),!1===f.EditorConfig.NoRotate},setMinimumFPS:function(e){if(i.send(t,"setMinimumFPS"),"number"!=typeof e)return!1;e=e>60?60:e<4?4:e,this.getViewer().limitFrameRate(e)},getMinimumFPS:function(){return i.send(t,"getMinimumFPS"),this.getViewer().minimumFPS},setEffectMode(e){switch(this.console.obsolete("Viewer3D.setEffectMode","Viewer3D.setMinimumFPS"),e){case"performance":this.setMinimumFPS(8),this.enableWireframe(!0);break;case"fluency":this.setMinimumFPS(30),this.enableWireframe(!1);break;default:e="performance"}this._effectMode=e,this.render()},getEffectMode(){return this.console.obsolete("Viewer3D.getEffectMode","Viewer3D.getMinimumFPS"),this._effectMode},setFlySpeedRate:function(e){if(i.send(t,"setFlySpeedRate"),null==e&&(e=1),"number"!=typeof e)return!1;e=e>25?25:e<=0?0:e;!0===this.getViewer().modelManager.isMeterUnit()&&(e*=.001),this.getViewer().setWalkSpeedRate(2*e)},enableGravity:function(e){i.send(t,"enableGravity"),f.GlobalData.WalkingWithGravity=!!e},setRotationCenter:function(e){i.send(t,"setRotationCenter");let o=this.getViewer();null==e&&(e=o.getBoundingBoxWorld().getCenter(k)),o.setRotationCenter(this.worldToScene(e))},clearRotationCenter:function(){i.send(t,"clearRotationCenter"),this.getViewer().clearRotationCenter()},enableHitDetection:function(e){i.send(t,"enableHitDetection"),this.getViewer().enableHitDetection(e)},exitWalk:function(){i.send(t,"exitWalk");var e=document.querySelector(".gld-bf-firstperson.bf-checked");e&&e.click()},setView:function(e,o){i.send(t,"setView");var n=f.EnumStandardView,s={Home:n.ISO,Top:n.Top,Bottom:n.Bottom,North:n.Back,South:n.Front,West:n.Left,East:n.Right,SouthEast:n.SouthEast,SouthWest:n.SouthWest,NorthEast:n.NorthEast,NorthWest:n.NorthWest,NorthEastIsometricTop:n.RoofNorthEast,NorthWestIsometricTop:n.RoofNorthWest,SouthEastIsometricTop:n.RoofSouthEast,SouthWestIsometricTop:n.RoofSouthWest,NorthEastIsometricBottom:n.BottomNorthEast,NorthWestIsometricBottom:n.BottomNorthWest,SouthEastIsometricBottom:n.BottomSouthEast,SouthWestIsometricBottom:n.BottomSouthWest,NorthTop:n.RoofBack,SouthTop:n.RoofFront,WestTop:n.RoofLeft,EastTop:n.RoofRight,NorthBottom:n.BottomBack,SouthBottom:n.BottomFront,WestBottom:n.BottomLeft,EastBottom:n.BottomRight};this.exitWalk(),this.getViewer().setStandardView(s[e],null,null,o)},zoomToSelectedComponents:function(e,o,n){i.send(t,"zoomToSelectedComponents"),1===arguments.length&&"[object Function]"===Object.prototype.toString.call(arguments[0])?(e=1,o=arguments[0]):2===arguments.length&&"[object Number]"===Object.prototype.toString.call(arguments[1])?(e=arguments[0],n=arguments[1]):2===arguments.length&&"[object Function]"===Object.prototype.toString.call(arguments[1])?(e=arguments[0],o=arguments[1]):e=e||1,void 0===n&&(n=1e3),this.getViewer().zoomToSelection(e,void 0,"[object Function]"===Object.prototype.toString.call(o)?o:void 0,void 0,n)},zoomToBoundingBox:function(e,o,n,s){if(i.send(t,"zoomToBoundingBox"),1===arguments.length)e=arguments[0];else if(2===arguments.length&&"[object Number]"===Object.prototype.toString.call(arguments[1]))e=arguments[0],arguments[1]>100?(n=1,s=arguments[1]):(n=arguments[1],s=1e3);else if(2===arguments.length&&"[object Function]"===Object.prototype.toString.call(arguments[1]))n=arguments[0],o=arguments[1],n=1,s=1e3;else if(3===arguments.length){for(let e=0;e<arguments.length;e++){const t=arguments[e];"[object Function]"===Object.prototype.toString.call(t)?o=t:"[object Number]"===Object.prototype.toString.call(t)&&(t>100?s=t:n=t)}e=arguments[0],void 0===s&&(s=1e3),void 0===n&&(n=.5)}if(e&&e.min&&e.max){var r=[[e.min.x,e.min.y,e.min.z],[e.max.x,e.max.y,e.max.z]];this.getViewer().zoomToBBox(f.Utils.computeBBox(r),n,void 0,"[object Function]"===Object.prototype.toString.call(o)?o:void 0,s)}},setNavigationMode:function(e,o){i.send(t,"setNavigationMode");var n=this.getViewer();switch(e){case"Fly":n.setEditorMode(f.EditorMode.FLY);break;case"Orbit":n.setEditorMode(f.EditorMode.ORBIT);break;case"Zoom":n.setEditorMode(f.EditorMode.ZOOM);break;case"OrbitWithModelCenter":n.setEditorMode(f.EditorMode.PICK),n.setPointRotateMode(f.RotatePivotMode.CENTER);break;case"Select":n.setPointRotateMode(f.RotatePivotMode.SELECTION),n.setEditorMode(f.EditorMode.PICK);break;case"PickWithRect":n.setPointRotateMode(f.RotatePivotMode.SELECTION),n.setEditorMode(f.EditorMode.PICK),this.enablePickRect(!0),this.enableZoomRect(!1);break;case"ZoomWithRect":this.enableZoomRect(!0),this.enablePickRect(!1);break;case"Walk":n.setEditorMode(f.EditorMode.WALK);let e=o&&null!=o.walkRotationSpeed?o.walkRotationSpeed:this._opt.walkRotationSpeed;f.GlobalData.WalkRotationSpeed=Math.max(Math.min(e,5),.2),this.enablePickRect(!1),this.enableZoomRect(!1);break;case"ThirdPerson":n.setEditorMode(f.EditorMode.THIRDPERSONWALK),this._prepareThirdPerson(n.getCurrentEditor(),!1,o&&o.position);break;case"ThirdPersonRun":n.setEditorMode(f.EditorMode.THIRDPERSONWALK),this._prepareThirdPerson(n.getCurrentEditor(),!0,o&&o.position)}},_prepareThirdPerson:function(t,i,o){if(t.object)return void t.prepare(i,o);let n=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(this);var s=this._data;const r=`${s.dataEnvType==D.Local?s.sdkPath:d.staticHost}/resources/ExternalObject/ThirdPerson/Avatar/Standard.FBX`,a="thirdPerson",l=this;n.loadObject({name:a,url:{objectUrl:r}},(function(){const e=n.getObjectIdByName(a);let s=l.getExternalComponentManager().getNodeById(e);t.setThirdPerson(s,e,n._manager,i,o)}))},getBoundingBoxById:function(e){const t=this.getViewer().modelManager.modelCollection.getById("ExtrudeBodyManager"),i=this.getViewer().modelManager.modelCollection.getById("ExternalComponent");if(t&&t._hasObjectId(e)){const t=this._getExtrudeBodyModel();if(t)return t.getBoundingBoxById(e)}else if(i&&i._hasObjectId(e)){const t=this._getExternalComponentModel();if(t)return t.getBoundingBoxById(e)}return this._viewerMethodToModelMethod("getBoundingBoxById",arguments)},enableZoomRect:function(e){i.send(t,"enableZoomRect");var o=this.getViewer();this._opt.enableZoomRect=e,e?o.editorManager.enableTool(o,f.EditToolMode.ZOOM_BY_RECT):o.editorManager.disableTool(f.EditToolMode.ZOOM_BY_RECT)},enablePickRect:function(e){var t=this.getViewer();e?t.editorManager.enableTool(t,f.EditToolMode.PICK_BY_RECT):t.editorManager.disableTool(f.EditToolMode.PICK_BY_RECT)},setOrbitButton:function(e){i.send(t,"setOrbitButton");this._opt.orbitButton=e,this._opt.leftHandedMouseSetup="Left"==e,this.getViewer().setOrbitButton({Left:"left",Right:"right"}[e])},setUseLeftHandedInput:function(e){i.send(t,"setUseLeftHandedInput"),this._opt.leftHandedMouseSetup=e,this.getViewer().setOrbitButton(e?"left":"right")},getUseLeftHandedInput:function(){return void 0===this._opt.leftHandedMouseSetup||this._opt.leftHandedMouseSetup},setReverseWheelDirection:function(e){i.send(t,"setReverseWheelDirection"),this.getViewer().setReverseWheelDirection(e)},enableHover:function(e){i.send(t,"enableHover"),this._opt.enableHover=e,this.getViewer().enableHover(e)},setDampingFactor:function(e){i.send(t,"setDampingFactor"),this.getViewer().setDampingFactor(e)},enableDamping:function(e){i.send(t,"enableDamping"),this.getViewer().enableDamping(e)},enableMouseMovePick:function(e){i.send(t,"enableMouseMovePick"),this._opt.enableMouseMovePick=e,this.getViewer().enableMouseMovePick(e)},getCameraStatus:function(){i.send(t,"getCameraStatus");return this.camera3D.getStatus()},setCameraStatus:function(e,o){i.send(t,"setCameraStatus"),this.camera3D.setStatus(e,o)},setCameraType:function(e,o){i.send(t,"setCameraType"),this.camera3D.setCameraType(e,o)},highlightComponentsById:function(e,t,i){return this._viewerMethodToModelMethod("highlightComponentsById",arguments)},highlightComponentsByObjectData:function(e,t){return this._viewerMethodToModelMethod("highlightComponentsByObjectData",arguments)},loadViewCore:function(t,i,o){if(t&&t.renderVersion!=t.renderVersion)return console.log("this model can not be added."),!1;new e.Bimface.Model.BimModel(this,t,i,o);var n=e.Bimface.Data.StatisticsDataManager.getInstance();n.modelType=t.modelType,n.modelId=t.modelId;const s=this._opt;s.enableSkyBox&&this.setSkyBoxType(s.skyBoxType),o&&!1===o.zoomAll&&(s.cancelHomeView=!0),this.fireEvent(e.Bimface.Viewer.Viewer3DEvent.AddView,this.getModelCount())},fireEvent(e,t){this.getEventManager&&this.getEventManager().fireEvent(e,t)},getModels(){return Object.values(this._models)},getAllModels(){let e=[];return this.getModels().forEach((t=>{let i=t.getMetaData();e.push({modelId:i.modelId,modelName:i.name})})),e},getModel(e){return e?this._models[e]:this.getDefaultModel()},getDefaultModel(){return this._defaultModel},getModelCount(){return this.getModels().length},loadMaterialOverrideSet:function(e,t,i,o,n){return this._viewerMethodToModelMethod("loadMaterialOverrideSet",arguments,!1)},changeMaterialOverrideSetMode:function(e){return this._viewerMethodToModelMethod("changeMaterialOverrideSetMode",arguments,!1)},loadModel:function(e){e.componentsFrame&&(void 0===e.componentsFrame.isVisible&&(e.componentsFrame.isVisible=!0),void 0===e.componentsFrame.condition&&(e.componentsFrame.condition={all:!0})),this.addView(e.viewToken,this.viewerType,{modelId:e.modelId,componentsFrame:e.componentsFrame})},addModel:function(t,i,o){const n=this.getDefaultModel()?this.getDefaultModel().getMetaData():void 0;if(!a||n&&n.renderVersion!=t.renderVersion)return console.log("this model can not be added."),!1;new e.Bimface.Model.BimModel(this,t,i,o);this.fireEvent(e.Bimface.Viewer.Viewer3DEvent.AddView,this.getModelCount())},removeView:function(e){let o;i.send(t,"removeView"),this.getModels().some((t=>{if(t.getMetaData().viewToken===e)return o=t,!0})),o&&o.destroy()},removeModel:function(e){i.send(t,"removeModel");let o=this.getModel(e);o&&o.destroy()},showView:function(e){i.send(t,"showView"),this.setModelVisible(e,!0)},hideView:function(e){i.send(t,"hideView"),this.setModelVisible(e,!1)},setModelVisible(e,t){this.getModels().some((i=>{if(i.viewToken===e)return i.setVisible(t),!0}))},worldToScene:function(e){return this.getViewer().worldToDrawing(e)},sceneToWorld:function(e){return this.getViewer().drawingToWorld(e)},resize:function(e,t){var i=this._opt.domElement,o=e||i.clientWidth,n=t||i.clientHeight;this.getViewer().resize(o,n)},setBackgroundColor:function(o,n){if(i.send(t,"setBackgroundColor"),n)this.setBackgroundColors([{color:o,stop:"0%"},{color:n,stop:"100%"}],"180deg");else{let t=e.Web.Graphics.Color,i={Black:new t(0,0,0,1),Blue:new t(0,0,189,1),Green:new t(0,255,0,1),Red:new t(255,0,0,1),Yellow:new t(250,189,5,1)},n=this._opt.domElement;"string"==typeof o&&(o=i[o]),this._opt.backgroundColor=[o],n.style.background=o.getRGBA()}},setBackgroundColors:function(e,t){var i=this._opt.domElement,o=(t=t||"0deg",[]);if(e&&e.length>0){1==e.length&&this.setBackgroundColor(e[0].color||e[0]),this.backgroundColor=e;for(var n=0;n<e.length;n++){var s=e[n].color.getRGBA()+" "+e[n].stop;o.push(s)}var r=`${t}, ${o.join(",")}`;i.style.background=`linear-gradient(${r})`}},getCurrentState:function(){var e,t,i,o=this.getViewer().getFilter().saveState(),n=this.getCameraStatus(),s=this.getDefaultModel().getSelectedComponents(),r=this.getDefaultModel().getCurrentAxisGridsState();this.getModelCount()>1&&(e={},this.getModels().forEach((t=>{e[t.modelId]={};let i=e[t.modelId];i.selection=t.getSelectedComponents(),i.axisGrid=t.getCurrentAxisGridsState()}))),this._sectionBox&&(t=this._sectionBox.getState()),this._sectionPlane&&(i=this._sectionPlane.getState());const a={state:JSON.parse(o),camera:n,selection:s,axisGrid:r,sectionBoxState:t,sectionPlaneState:i};return e&&(a.models=e),a},setState:function(o,n){i.send(t,"setState"),"string"==typeof o&&(o=JSON.parse(o));var s=this.getViewer();if(o.models)for(let e in o.models){const t=o.models[e],i=this.getModel(e);if(i&&(t.selection&&t.selection.length>0?i.setSelectedComponentsById(t.selection):i.clearSelectedComponents(),t.axisGrid)){Object.keys(t.axisGrid).length>0&&i.setAxisGridsState(t.axisGrid)}}else if(o.selection&&o.selection.length>0?this.getDefaultModel().setSelectedComponentsById(o.selection):this.getDefaultModel().clearSelectedComponents(),o.axisGrid){Object.keys(o.axisGrid).length>0&&this.getDefaultModel().setAxisGridsState(o.axisGrid)}if(s.getFilter().loadState(JSON.stringify(o.state)),o.sectionBoxState){var r;if(this._sectionBox)r=this._sectionBox;else(l=new e.Bimface.Plugins.Section.SectionBoxConfig).viewer=this,l.id="SectionBox",r=new e.Bimface.Plugins.Section.SectionBox(l);r.setState(o.sectionBoxState)}else this._sectionBox&&(this._sectionBox.reset(),this._sectionBox.hideBox());if(o.sectionPlaneState){var a,l;if(this._sectionPlane)a=this._sectionPlane;else(l=new e.Bimface.Plugins.Section.SectionPlaneConfig).viewer=this,l.id="SectionPlane",a=new e.Bimface.Plugins.Section.SectionPlane(l);a.setState(o.sectionPlaneState)}else this._sectionPlane&&(this._sectionPlane.setProgress(0),this._sectionPlane.hidePlane());var h=this;this.setCameraStatus(o.camera,(function(){n&&n(),0==h.getCameraAnimation()&&h.render()}))},createSnapshot:function(e){return console.warn("This function is deprecated. Please use createSnapshotAsync instead."),this.getViewer().canvas2image(e)},createSnapshotAsync:function(e,o){i.send(t,"createSnapshotAsync");var n=this;n.getViewer().getRenderBufferScreenShot(e.getRGBA(),(function(e){o&&o(e),n.render()}))},section:function(){console.log("This function is deprecated. Please use enableSectionBox instead.")},enableSectionBox:function(){var e=this,t=this.getViewer();t.editorManager.enableTool(t,f.EditToolMode.CLIP_BY_BOX),e._sectionTool=new f.ClipPlaneService(t),e._sectionTool.toggle(!0,!0),e._sectionTool.setVisible(!0),e._isSection=!0,this.render()},disableSectionBox:function(){this.getViewer().editorManager.disableTool(f.EditToolMode.CLIP_BY_BOX),this._isSection=!1,this.render()},resetSectionBox:function(){this._isSection?(this.showSectionBox(),this.setSectionBoxMode(),this._sectionTool.reset("Rotate")):console.log(r)},setSectionBoxMode:function(e){this._isSection?"Rotate"==e?this._sectionTool.setRotatable(!0):this._sectionTool.setRotatable(!1):console.log(r)},showSectionBox:function(){this._isSection?(this._sectionTool.setVisible(!0),this.render()):console.log(r)},hideSectionBox:function(){this._isSection?(this._sectionTool.setVisible(!1),this.render()):console.log(r)},setSectionBox:function(e){var t=this.getViewer(),i=f.ClipPlaneManager.getInstance(t.getScene()),o=t.worldToDrawing(e.min),n=t.worldToDrawing(e.max);this.enableSectionBox(),i.setSectionBox(o,n),this.hideSectionBox()},getSectionBoxState:function(){if(this._isSection)return this._sectionTool.saveState();console.log(r)},setSectionBoxState:function(e){this._isSection?this._sectionTool.loadState(e):console.log(r)},getFamilyTypes:function(e){return this._viewerMethodToModelMethod("getFamilyTypes",arguments)},showFamilyTypeById:function(e){return this._viewerMethodToModelMethod("showFamilyTypeById",arguments)},getModelTree:function(e){return this._viewerMethodToModelMethod("getModelTree",arguments)},getScheduleList:function(e){return this._viewerMethodToModelMethod("getScheduleList",arguments)},getScheduleById:function(e,t){return this._viewerMethodToModelMethod("getScheduleById",arguments)},getElementByConditions:function(e,t,i){return this.console.obsolete("Viewer3D.getElementByConditions","Viewer3D.getModel(modelId).getComponentsByConditions"),this._viewerMethodToModelMethod("getElementByConditions",arguments)},getModeTree:function(e){return this.console.warn("Viewer3D.getModeTree() is deprecated. Please use Viewer3D.getModel(modelId).getModelTree() instead."),this._viewerMethodToModelMethod("getModelTree",arguments,!1)},getFloors:function(e){return this._viewerMethodToModelMethod("getFloors",arguments)},createAreaInfo:function(e,t){return this.console.obsolete("Viewer3D.createAreaInfo","Viewer3D.createBoundary"),this.createBoundary(t)},createBoundary:function(e,o){i.send(t,"createBoundary");var n=this.getViewer();return 1===arguments.length?n.createAreaInfo("",arguments[0]):arguments.length>1?n.createAreaInfoWithHoles("",arguments[0],arguments[1]):void 0},getAreas:function(e,t){return this._viewerMethodToModelMethod("getAreas",arguments)},getComponentProperty:function(e,t,i){return this._viewerMethodToModelMethod("getComponentProperty",arguments)},getComponentOverriddenProperty:function(e,t,i){return this._viewerMethodToModelMethod("getComponentOverriddenProperty",arguments)},getModelGroup:function(e,t){this.console.obsolete("Viewer3D.getModelGroup","Viewer3D.getModel(modelId).getModelSet"),this.getDefaultModel().getModelSet(e,t)},getModelSet:function(e,t){return this._viewerMethodToModelMethod("getModelSet",arguments)},getSetByComponentId:function(e,t){return this._viewerMethodToModelMethod("getSetByComponentId",arguments)},getComponentsBySetId(e,t){return this._viewerMethodToModelMethod("getComponentsBySetId",arguments)},getAreaProperty:function(e,t){return this._viewerMethodToModelMethod("getAreaProperty",arguments)},getMaterialProperty:function(e,t,i){return this._viewerMethodToModelMethod("getMaterialProperty",arguments)},getRoomProperty:function(e,t){return this._viewerMethodToModelMethod("getRoomProperty",arguments)},getFiles:function(e){return this._viewerMethodToModelMethod("getFiles",arguments)},getLinkGraph:function(e){return this._viewerMethodToModelMethod("getLinkGraph",arguments)},getDrawingsheets:function(e,t){return this._viewerMethodToModelMethod("getDrawingsheets",arguments)},getAllDrawingsheets:function(e){return this._viewerMethodToModelMethod("getAllDrawingsheets",arguments)},getLinksJson:function(e){return this._viewerMethodToModelMethod("getLinksJson",arguments)},getMapInfo:function(e){return this._viewerMethodToModelMethod("getMapInfo",arguments)},showViewHouse:function(){i.send(t,"showViewHouse");var o=this;if(o._viewHouse)o._viewHouse.enableViewHouse(!0);else{this.bViewHouseIsLoaded=!0;var n=o._opt,s=e.Bimface.Plugins.ViewHouseConfig();s.domElement=n.domElement,s.viewer=o,o._viewHouse=new e.Bimface.Plugins.ViewHouse(s)}this.bIsViewHouseVisible=!0},hideViewHouse:function(){i.send(t,"hideViewHouse"),this._viewHouse&&(this._viewHouse.enableViewHouse(!1),this.bIsViewHouseVisible=!1)},_getViewHouseVisibility:function(){return this.bIsViewHouseVisible},_getIsCursorEnabled:function(){return this.bIsCursorEnabled},_enableCursor:function(e){this.bIsCursorEnabled=e},startAutoRotate:function(e,o){i.send(t,"startAutoRotate");let n=this.getCameraStatus();n.up={x:0,y:0,z:1},this.getViewer().setCamera(JSON.stringify(n),!1,void 0,!0);var s=this,r=this.getViewer();if(0==e)return void s.stopAutoRotate();s._animationFrameHandle&&s.stopAutoRotate();let a=r.getRotationCenter(),l=r.cameraControl.calculatePivot(f.RotatePivotMode.CENTER,null);void 0!==o?l=this.worldToScene(o):a&&(l=a),function t(){f.Utils.isDefined(o)||f.Utils.isDefined(a)||(l=r.cameraControl.calculatePivot(f.RotatePivotMode.CENTER,null));r.rotateByAxis(e,"x",l),r.render(),s._animationFrameHandle=requestAnimationFrame(t)}()},stopAutoRotate:function(){i.send(t,"stopAutoRotate"),this._animationFrameHandle&&cancelAnimationFrame(this._animationFrameHandle)},_getModelGroup(e,t){let i="Model|"+t,o=e.getScene().getObjectGroup(i),n="BimTilesGroup|"+t,s=e.getScene().getObjectGroup(n);return o||s},setModelTranslation:function(e,o){const n=this.getModel(e);if(n){const e="setModelTranslation";return i.send(t,e),this.getModelCount()>1&&this.console.obsolete("Viewer3D."+e,"Viewer3D.getModel(modelId)."+e),n[e](o)}},setModelRotationZ:function(e,o,n){const s=this.getModel(e);if(s){const e="setModelRotationZ";return i.send(t,e),this.getModelCount()>1&&this.console.obsolete("Viewer3D."+e,"Viewer3D.getModel(modelId)."+e),s[e](o,n)}},setModelScale:function(e,o,n){const s=this.getModel(e);if(s){const e="setModelScale";return i.send(t,e),this.getModelCount()>1&&this.console.obsolete("Viewer3D."+e,"Viewer3D.getModel(modelId)."+e),s[e](o,n)}},getModelTransformation:function(e){if(!e)return void console.log("Parameter modelId is required.");return this.getViewer().modelManager.getModel(e).getTransformMatrix().elements},setModelTransformation:function(e,t){if(!e||!t)return void console.log("Parameter modelId and modelTransformation is required.");if(["[object Float32Array]","[object Array]"].indexOf(Object.prototype.toString.call(t))<0)return void console.log("Parameter modelTransformation should be a array.");let i=this.getViewer(),o=this._getModelGroup(i,e);if(!o)return;let n=(new THREE.Matrix4).fromArray(t);i.modelManager.getModel(e).setTransformMatrix(n),o.transformMatrix=n,i.modelManager.updateScene(),i.rendererManager.getPickingEffecter().apply(!0),this.render()},getModelBoundaryPoints:function(e){if(!e)return console.log("Parameter modelId is required."),null;return this.getViewer().getModelManager().getModel(e).getBoundaryPoints()},disableComponentsSelectionById:function(e){console.log("the method deprecated.")},enableComponentsSelectionById:function(e){console.log("the method deprecated.")},isIsolate:function(){return this._viewerMethodToModelMethod("isIsolate",arguments)},isFiltering:function(){return this._viewerMethodToModelMethod("isFiltering",arguments)},worldToClient:function(e){return this.getViewer().worldToCanvas(e)},clientToWorld:function(e){return this.getViewer().canvasToWorld(e)},pickByPoint:function(e){var t=this.getViewer().pickByPoint(e);if(t)return{objectId:t.meshId,boundingBox:t.worldBoundingBox,worldPosition:t.worldPosition,clientPosition:t.clientPosition}},hitTest:function(e){return console.warn("This function is deprecated. Please use pickByPoint instead."),this.pickByPoint(callback)},isInViewFrustum:function(e){return this.getViewer().insideCamera(e)},lockAxis:function(e,t){this.camera3D.lockAxis(e,t)},unlockAxis:function(e){this.camera3D.unlockAxis(e)},enableMouseHoverHighlight:function(){this.getViewer().enableHover(!0)},disableMouseHoverHighlight:function(){this.getViewer().enableHover(!1)},setOverallLightIntensity:function(e){this.getViewer().setLightIntensityFactor(e)},getOverallLightIntensity:function(e){return f.GlobalData.LightIntensityFactor},moveTo:function(e){var t=f.MoveDirection;t={Up:f.MoveDirection.UP,Down:f.MoveDirection.DOWN,Left:f.MoveDirection.LEFT,Right:f.MoveDirection.RIGHT,Forward:f.MoveDirection.FORWARD,Back:f.MoveDirection.BACK};this.getViewer().moveTo(t[e])},getInformation:function(){i.send(t,"getInformation");var e=this.getViewer();return{elements:e.getNumOfElements(),renderables:e.getNumOfRenderables(),triangles:e.getNumOfTriangles(),vertices:e.getNumOfVertices()}},getComponentsByClientCoordinates:function(e){var t=this.getViewer().getObjectsByClientCoordinates(e);t.sort((function(e,t){return e.distance-t.distance}));var i=[];for(let e=0;e<t.length;e++){const n=t[e];var o=n.userId||n.object.name;-1==i.indexOf(o)&&i.push(o)}return i},setBorderLineEnabled:function(e){this.console.obsolete("Viewer3D.setBorderLineEnabled","Viewer3D.enableWireframe"),this.enableWireframe(e)},setLightingMode:function(o){i.send(t,"setLightingMode");var n=this.getViewer().IBLManager;o==e.Bimface.Viewer.LightingMode.IBL?this._opt.enableIBLBackground=!0:(this._opt.enableIBLBackground=!1,n.enableIBL(!1))},getLightingMode:function(){return this._opt.enableIBLBackground&&e.Bimface.Viewer.LightingMode.IBL||e.Bimface.Viewer.LightingMode.Phong},loadIBLScene:function(e,o){i.send(t,"loadIBLScene");var n=this,s=this.getViewer().IBLManager,r=this._data,a=r.dataEnvType==D.Local?r.sdkPath:d.staticHost;this._opt.enableIBLBackground&&(s.enableIBL(!0),this._getIBLConfig((function(t){var i=t;i[e]&&(n._opt.loadIBLScene=e,i[e].url=i[e].url.replace(d.staticHost,""),s.loadIBLMaps(`${a}/${i[e].url}`,i[e].isHDR,o,i[e].uniforms),o&&s.setSkyBoxType(e))})))},enableIBLBackground:function(e){i.send(t,"enableIBLBackground");var o=this.getViewer().IBLManager;if(e&&this._opt.enableIBLBackground){var n=this._opt.loadIBLScene;if(n==o.getSkyBoxType())o.addSkyBox(!0);else{var s="resources/IBL/Pics/"+this._opt.loadIBLScene,r=this._data,a=r.dataEnvType==D.Local?r.sdkPath:d.staticHost;o.loadSkyBox(`${a}/${s}`,!0),o.setSkyBoxType(n)}this._opt.IBLSkyBox=!0}else this._opt.IBLSkyBox=!1,o.removeSkyBox()},enableSkyBox:function(e){if(this.console.obsolete("Viewer3D.enableSkyBox","Glodon.Bimface.Plugins.SkyBox.SkyBoxManager.enableSkyBox"),this._opt.enableSkyBox=e,!this._opt.IBLSkyBox){var t=this.getViewer().IBLManager;e?this.setSkyBoxType(this._opt.skyBoxType):this._opt.skyBoxType==t.getSkyBoxType()&&t.removeSkyBox()}},addSkyBox(e){const t=JSON.parse(e),i=t.right,o=t.left,n=t.top,s=t.buttom,r=t.front,a=t.back;i&&o&&n&&s&&r&&a?this._opt.skyBoxUrls=[i,o,n,s,r,a]:this.console.warn('the input url is invalid,should be \'{"front": "front.jpg", "back":"back.jpg", "left":"left.jpg", "right":"right.jpg", "top":"top.jpg", "buttom":"bottom.jpg"}\'')},setSkyBoxType:function(e){if(this.console.obsolete("Viewer3D.setSkyBoxType","Glodon.Bimface.Plugins.SkyBox.SkyBoxManager.setStyle"),!this._opt.enableSkyBox)return;if("CloudySky"!==e&&!this._opt.skyBoxUrls)return void this.console.warn("Customized skyBox must addSkyBox first");this._opt.skyBoxType=e;const t=this.getViewer().IBLManager;let i=[];const o=this._data;switch(e){case"CloudySky":let e="resources/SkyBox/Pics/"+this._opt.skyBoxType;const t=o.dataEnvType==D.Local?o.sdkPath:d.staticHost,s=["posx.jpg","negx.jpg","posy.jpg","negy.jpg","posz.jpg","negz.jpg"];for(var n=0;n<6;++n)i.push(`${t}/${e}/EnvMap_${s[n]}`);break;default:i=this._opt.skyBoxUrls}t.loadSkyBox(i,!1),t.setSkyBoxType(this._opt.skyBoxType)},getSkyBoxType:function(){return this.console.obsolete("Viewer3D.getSkyBoxType","Glodon.Bimface.Plugins.SkyBox.SkyBoxManager.getStyle"),this._opt.skyBoxType},getViewToken:function(e,t){this._getFileManager().getViewToken(e,t)},resizePool:function(e){this.getViewer().resizePool(e)},_getMetaDataManager:function(){return this.getDefaultModel()._getMetaDataManager()},_getFileManager:function(){if(this._FileManager)return this._FileManager;var t=new e.Bimface.Data.FileManagerConfig,i=this._data;return t.APIHost=this._opt.APIHost,t.viewToken=i.viewToken,t.databagId=i.databagId,t.modelId=i.modelId,t.modelType=i.modelType,t.dataEnvType=i.dataEnvType,this._FileManager=new e.Bimface.Data.FileManager(t),this._FileManager},setArea:function(e,o,n){i.send(t,"setArea"),this.clearAllRooms(),this.createRoom(e,o,n)},createRoomByOffset:function(e,o,n,s,r){if(i.send(t,"createRoomByOffset"),o&&o.length>=2)var a=o[0],l=o[1]-o[0];var h=(e="string"==typeof e?e=JSON.parse(e):e).clone?e.clone():JSON.parse(JSON.stringify(e));if(h.loops&&h.loops.length>0)for(var c=h.loops[0],d=c.length,g=0;g<d;++g)for(var u=c[g].length,p=0;p<u;++p)c[g][p].z+=a;else h.offsetZ+=a;this.createRoom(h,l,n,s,r)},clearArea:function(){this.console.obsolete("Viewer3D.clearArea","Viewer3D.clearAllRooms"),this.clearAllRooms()},clearAllRooms:function(){i.send(t,"clearAllRooms");var e=this.getViewer();f.ExtrudeBodyManager.getInstance(e).clearNodes(),this.mapCustomizedRoom={}},addArea:function(e,t,i,o,n){return this.console.obsolete("Viewer3D.addArea","Viewer3D.createRoom"),this.createRoom(e,t,i,o,n)},getCustomizedRoom:function(){return this.mapCustomizedRoom},createRoom:function(o,n,s,r,a){i.send(t,"createRoom");s=s||e.Web.Lang.Utility.UUID.createUUID(),r=r||new e.Web.Graphics.Color(50,138,240,.4),a=a||new e.Web.Graphics.Color(50,138,240,1);var l=this.getViewer(),h=f.ExtrudeBodyManager.getInstance(l),c=h.createMaterial({color:parseInt(r.getHEX(),16),transparent:!0,opacity:r.getAlpha()}),d=h.createMaterial({color:parseInt(a.getHEX(),16),opacity:a.getAlpha()});let g,u;if("string"==typeof o&&(o=JSON.parse(o)),o instanceof Array){if(o.length>1)g=(o=this.createBoundary(o[0],o[1]))[1];else{if(!(o.length>0))return;o=this.createBoundary(o[0])}if(u=o[0],!o)return void console.warn("The custom room data is not standard")}return h.addNode(s,o,n,c,d),this.mapCustomizedRoom[s]={boundary:o,offset:[o.offsetZ||0,(o.offsetZ||0)+n],height:n,innerBoundary:g,outerBoundary:u,faceColor:r,frameColor:a},h.bindModel(s,this.getDefaultModel().modelId),this.updateSceneBoundingBox(!1),s},showAreasById:function(e){this.console.obsolete("Viewer3D.showAreasById","Viewer3D.showRoomsById"),this.showRoomsById(e)},showRoomsById:function(e){i.send(t,"showRoomsById");var o=this.getViewer(),n=f.ExtrudeBodyManager.getInstance(o);if(e&&e.length>0)for(var s=0;s<e.length;s++)n.setNodeVisibleById(e[s],!0)},hideAreasById:function(e){this.console.obsolete("Viewer3D.hideAreasById","Viewer3D.hideRoomsById"),this.hideRoomsById(e)},hideRoomsById:function(e){i.send(t,"hideRoomsById");var o=this.getViewer(),n=f.ExtrudeBodyManager.getInstance(o);if(e&&e.length>0)for(var s=0;s<e.length;s++)n.setNodeVisibleById(e[s],!1)},showAllAreas:function(){this.console.obsolete("Viewer3D.showAllAreas","Viewer3D.showAllRooms"),this.showAllRooms()},showAllRooms:function(){i.send(t,"showAllRooms");var e=this.getViewer();f.ExtrudeBodyManager.getInstance(e).showAllNodes()},hideAllAreas:function(){this.console.obsolete("Viewer3D.hideAllAreas","Viewer3D.hideAllRooms"),this.hideAllRooms()},hideAllRooms:function(){i.send(t,"hideAllRooms");var e=this.getViewer();f.ExtrudeBodyManager.getInstance(e).hideAllNodes()},setAreasColorById:function(e,t){this.console.obsolete("Viewer3D.setAreasColorById","Viewer3D.setRoomsColorById"),this.setRoomsColorById(e,t)},setRoomsColorById:function(e,o){i.send(t,"setRoomsColorById");var n=this.getViewer(),s=this.getCustomizedRoom(),r=f.ExtrudeBodyManager.getInstance(n);if(e&&e.length>0)for(var a=0;a<e.length;a++){if(r.setNodeColorById(e[a],o),e[a]in s)s[e[a]].faceColor=o}},getAreaColorById:function(e){return this.console.obsolete("Viewer3D.getAreaColorById","Viewer3D.getRoomColorById"),this.getRoomColorById(e)},getRoomColorById:function(t){var i=this.getViewer(),o=f.ExtrudeBodyManager.getInstance(i).getNodeColorById(t);return new e.Web.Graphics.Color(o.red,o.green,o.blue,o.alpha)},setAreasFrameColorById:function(e,t){this.console.obsolete("Viewer3D.setAreasFrameColorById","Viewer3D.setRoomsFrameColorById"),this.setRoomsFrameColorById(e,t)},setRoomsFrameColorById:function(e,o){i.send(t,"setRoomsFrameColorById");var n=this.getViewer(),s=this.getCustomizedRoom(),r=f.ExtrudeBodyManager.getInstance(n);if(e&&e.length>0)for(var a=0;a<e.length;a++){if(r.setWireframeColorById(e[a],o),e[a]in s)s[e[a]].frameColor=o}},getAreaFrameColorById:function(e){return this.console.obsolete("Viewer3D.getAreaFrameColorById","Viewer3D.getRoomFrameColorById"),this.getRoomFrameColorById(e)},getRoomFrameColorById:function(t){var i=this.getViewer(),o=f.ExtrudeBodyManager.getInstance(i).getWireframeColorById(t);return new e.Web.Graphics.Color(o.red,o.green,o.blue,o.alpha)},clearAreasById:function(e){this.console.obsolete("Viewer3D.clearAreasById","Viewer3D.clearRoomsById"),this.clearRoomsById(e)},clearRoomsById:function(e){i.send(t,"clearRoomsById");var o=this.getViewer(),n=f.ExtrudeBodyManager.getInstance(o);if(e&&e.length>0)for(var s=0;s<e.length;s++)n.removeNodeById(e[s]),delete this.mapCustomizedRoom[e[s]]},bindRoomByModelId:function(e,o){if(i.send(t,"associateRoomByModelId"),!o||!this.getModel(o))return void this.console.warn(`Invalid modelId [${o}]`);const n=this.getViewer(),s=f.ExtrudeBodyManager.getInstance(n);if(!s.getNode(e))return void this.console.warn(`Invalid roomId [${e}]`);let r=s.getBindedModelId(e);r&&s.unbindModel(e,r),s.bindModel(e,o)},deactivateComponentsById:function(e){return this._viewerMethodWithIdsToModelMethod("deactivateComponentsById",arguments)},deactivateComponentsByObjectData:function(e){return this._viewerMethodToModelMethod("deactivateComponentsByObjectData",arguments)},activateAllComponents:function(){return this._viewerMethodToVirtualModelMethod("activateAllComponents",arguments),this._viewerMethodToModelMethod("activateAllComponents",arguments,!1)},getLineSelectRange:function(){return this.getViewer().getLineSelectRange()},setLineSelectRange:function(e){this.getViewer().setLineSelectRange(e)},getExternalComponentManager:function(){return this.externalComponentManager&&!this.externalComponentManager.isDestroyed()||(this.externalComponentManager=new f.ExternalComponentManager(this.getViewer()),this.externalComponentManager._objects={}),this.externalComponentManager},getExternalObjectManager:function(){return this.externalObjectManager||(this.externalObjectManager=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(this)),this.externalObjectManager},addExternalObject(o,n,s,r){i.send(t,"addExternalObject");o=o||e.Web.Lang.Utility.UUID.createUUID();var a=this.getExternalComponentManager();a._objects[o]?console.warn(`[Viewer3D.addExternalObject] 已有名为 "${o}" 的ExternalObject,请更换名称后再执行Viewer3D.addExternalObject()`):(a._objects[o]=o,a.addNode(o,n,s,r),this.getViewer().render())},addExternalObjects(o,n,s){i.send(t,"addExternalObjects");for(var r=this.getExternalComponentManager(),a=0;a<o.length;a++){var l=e.Web.Lang.Utility.UUID.createUUID();r._objects[l]=l,r.addNode(l,o[a],n,s)}this.getViewer().render()},removeExternalObjectByName(e){i.send(t,"removeExternalObjectByName");var o=this.getExternalComponentManager();delete o._objects[e],o.removeNodeById(e),this.getViewer().render()},clearExternalObjects(){i.send(t,"clearExternalObjects");var e=this.getExternalComponentManager();e._objects={},e.clearNodes(),this.getViewer().render()},getExternalObjectByName(e){return i.send(t,"getExternalObjectByName"),this.getExternalComponentManager().getNodeById(e)},getAllExternalObjects(){return i.send(t,"getAllExternalObjects"),Object.values(this.getExternalComponentManager().getAllNodes())},getDrawingListbyId:function(e,t,i){return this._viewerMethodToModelMethod("getDrawingListbyId",arguments)},getWireframeColor:function(){var t=this.getViewer().getWireframeColor();return new e.Web.Graphics.Color(255*t.r,255*t.g,255*t.b,t.opacity)},setWireframeColor:function(e){return i.send(t,"setWireframeColor"),this.getViewer().setWireframeColor(e)},restoreWireframeColor:function(){i.send(t,"restoreWireframeColor"),this.getViewer().restoreWireframeColor()},setExposureShift:function(e){i.send(t,"setExposureShift");var o=this.getViewer();e>1&&(e=1),e<-1&&(e=-1),this._opt.exposure=e,o.setExposureShift(e)},isSupportSSAO:function(){return this.getViewer().isSupportSSAO()},enableSSAO:function(e){return i.send(t,"enableSSAO"),this.getViewer().enableSSAO(e)},_getIBLConfig:function(t){var i=this,o=i._data;if(i._IBLConfig)t&&t(i._IBLConfig);else{var n=new e.Bimface.Data.IBLManagerConfig;o.dataEnvType==D.Local&&(n.resourceHost=o.sdkPath),new e.Bimface.Data.IBLManager(n).getIBLConfig((function(e){i._IBLConfig=e,t&&t(e)}))}},_beforeInitialize:function(e){f.GlobalData.LimitFrameTime=1e3/e.minimumFPS,f.GlobalData.EnableDemolishByDClick=!1,f.GlobalData.DisableRotation=e.rotation,f.GlobalData.UseMpkWorker=!1,f.GlobalData.ZipResourcePostfix=e.suffix,f.GlobalData.LightIntensityFactor=1.2,f.GlobalData.Hover=e.enableHover,f.GlobalData.MouseMovePick=e.enableMouseMovePick,f.GlobalData.MaxMemeorySizeToFullRender=e.MaxMemeorySizeToFullRender},_config:function(e){this.getViewer().setOrbitButton({Left:"left",Right:"right"}[e.orbitButton])},setRvtBorderLine:function(){this.getViewer().getFilter().setConditions(f.EnumConditionType.BORDERLINE,[{categoryId:E}],modelId)},setBorderLine:function(e){this.getViewer().getFilter().setConditions(f.EnumConditionType.BORDERLINE,e,modelId)},getWorldBox:function(e,t){var i=this.getViewer().getScene().getBoundingBoxWorld();return e&&(i.min.z=e),t&&(i.max.z=t),i},getFloorsbyFileId:function(e,t){return this._viewerMethodToModelMethod("getFloorsbyFileId",arguments)},showAllAxisGrids:function(){return this._viewerMethodToModelMethod("showAllAxisGrids",arguments)},getNearestAxisGrids:function(e,t,i){return this._viewerMethodToModelMethod("getNearestAxisGrids",arguments)},showAxisGridsByFloor:function(e,t,i){return this._viewerMethodToModelMethod("showAxisGridsByFloor",arguments)},showAxisGridsByElevation:function(e,t,i){return this._viewerMethodToModelMethod("showAxisGridsByElevation",arguments)},bringAxisGridsToFront:function(e){return this._viewerMethodToModelMethod("bringAxisGridsToFront",arguments)},removeAxisGridsByFloor:function(e,t,i){return this._viewerMethodToModelMethod("removeAxisGridsByFloor",arguments)},removeAxisGridsByElevation:function(e,t){return this._viewerMethodToModelMethod("removeAxisGridsByElevation",arguments)},getCurrentAxisGridsState:function(){return this._viewerMethodToModelMethod("getCurrentAxisGridsState",arguments)},setGridBubblesColor:function(e){return this._viewerMethodToModelMethod("setGridBubblesColor",arguments)},getGridBubblesColor:function(){return this._viewerMethodToModelMethod("getGridBubblesColor",arguments)},setGridLinesColor:function(e){return this._viewerMethodToModelMethod("setGridLinesColor",arguments)},getGridLinesColor:function(){return this._viewerMethodToModelMethod("getGridLinesColor",arguments)},enableAxisGridsHover:function(e){const t=this.getViewer().getScene();f.AxisGridManager.setEnableHover(t,e)},setAxisGridsState:function(e){return this._viewerMethodToModelMethod("setAxisGridsState",arguments)},_activeAxisGridManager:function(){if(!this.bIsActiveAxisGridManager){var t=new e.Bimface.Plugins.AxisGrid.AxisGridManagerConfig;t.viewer=this;new e.Bimface.Plugins.AxisGrid.AxisGridManager(t);this.bIsActiveAxisGridManager=!0}},showAxisGrid:function(e,t,i){return this._viewerMethodToModelMethod("showAxisGrid",arguments)},removeAxisGrid:function(e,t,i){return this._viewerMethodToModelMethod("removeAxisGrid",arguments)},removeAllAxisGrids:function(){return this._viewerMethodToModelMethod("removeAllAxisGrids",arguments)},addPlane:function(e,o,n,s){i.send(t,"addPlane");var r=this.getViewer();r.addPlane.apply(r,arguments)},clearPlane:function(){this.getViewer().clearPlane()},getFloorBoundingBoxById:function(e,t){return this._viewerMethodToModelMethod("getFloorBoundingBoxById",arguments)},getComponentStatus:function(e){return this._viewerMethodToModelMethod("getComponentStatus",arguments)},getMinimumDistanceByIds:function(e,o){return i.send(t,"getMinimumDistanceByIds"),this.console.obsolete("Viewer3D.getMinimumDistanceByIds","Viewer3D.getMinimumComponentDistanceById"),this.getMinimumComponentDistanceById(e,o)},getMinimumComponentDistanceById:function(e,o){return i.send(t,"getMinimumComponentDistanceById"),this.getViewer().calculateMinDistance(e,o)},isEnableToggleContextMenuDisplay:function(){return this._opt.enableToggleContextMenuDisplay},isEnableHover:function(){return this._opt.enableHover},isEnableMouseMovePick:function(){return this._opt.enableMouseMovePick},isEnableBorderLine:function(){return this.console.obsolete("Viewer3D.isEnableBorderLine","Viewer3D.isWireframeEnabled"),this.isWireframeEnabled()},getExposureShift:function(){return this._opt.exposure},getBackgroundColor:function(){return this._opt.backgroundColor},isEnableIBLBackground:function(){return this._opt.enableIBLBackground},getLoadIBLScene:function(){return this._opt.loadIBLScene},getCategoryVisibility:function(e,t){return this._viewerMethodToModelMethod("getCategoryVisibility",arguments)},getSegmentGroups:function(e,t){return this._viewerMethodToModelMethod("getSegmentGroups",arguments,!1)},getSegmentFromGroups:function(e,t,i){return this._viewerMethodToModelMethod("getSegmentFromGroups",arguments,!1)},getSegmentTree:function(e,t){return this._viewerMethodToModelMethod("getSegmentTree",arguments,!1)},getSegmentById:function(e,t,i){return this._viewerMethodToModelMethod("getSegmentById",arguments,!1)},getSegmentElementIds:function(e,t,i){return this._viewerMethodToModelMethod("getSegmentElementIds",arguments,!1)},getPartialElementsMetadata:function(e,t,i){return this._viewerMethodToModelMethod("getPartialElementsMetadata",arguments,!1)},getPartialElementsMetadataFile:function(e){return this._viewerMethodToModelMethod("getPartialElementsMetadataFile",arguments,!1)},getDatabagResource:function(e){return this._viewerMethodToModelMethod("getDatabagResource",arguments,!1)},getSegmentManager:function(){return this.segmentManager||(this.getDefaultModel().isBimtilesModel()?this.segmentManager=new f.BimtilesSegmentManager(this.getViewer()):this.segmentManager=new f.SegmentManager(this.getViewer())),this.segmentManager},getExternalObjectConverter:function(){return this.externalObjectConverter||(this.externalObjectConverter=new f.ExternalObjectConverter(this.getViewer())),this.externalObjectConverter},convertToExternalObject(e,o,n){return i.send(t,"convertToExternalObject"),this.getExternalObjectConverter().convertToExternalObject(e,o,n)},splitComponentByPlane(e,t){return this._viewerMethodToModelMethod("splitComponentByPlane",arguments)},splitComponentByStretchedPlane(e,t){return this._viewerMethodToModelMethod("splitComponentByPlane",arguments)},getExplosionExtent(){return this._viewerMethodToModelMethod("getExplosionExtent",arguments,!1)},loadFloorsForExplosion(){return this._viewerMethodToModelMethod("loadFloorsForExplosion",arguments,!1)},setExplosionExtent(e){return this._viewerMethodToModelMethod("setExplosionExtent",arguments,!1)},setFloorExplosion(e,t,i){return this._viewerMethodToModelMethod("setFloorExplosion",arguments,!1)},getFloorExplosionExtent(){return this._viewerMethodToModelMethod("getFloorExplosionExtent",arguments,!1)},getFloorExplosionDirection(){return this._viewerMethodToModelMethod("getFloorExplosionDirection",arguments,!1)},getFloorExplosionList(){return this._viewerMethodToModelMethod("getFloorExplosionList",arguments,!1)},clearFloorExplosion(){return this._viewerMethodToModelMethod("clearFloorExplosion",arguments,!1)},enableShadow(e){this.console.obsolete("Viewer3D.enableShadow","Glodon.Bimface.Light.DirectionalLight.enableShadow"),this.getViewer().enableShadow(e)},updateShadow(){this.console.obsolete("Viewer3D.updateShadow","Glodon.Bimface.Light.DirectionalLight.update"),this.getViewer().updateShadowMap()},setSnapMode(e){i.send(t,"setSnapMode"),this.snapMode=e},enableSnap(o){if(i.send(t,"enableSnap"),this.getViewer().enableSnap(o),!1===o&&null!=this.snap)this.snap.destroy(),this.snap=null;else if(!0===o&&null==this.snap){var n=new e.Bimface.Plugins.Snap.SnapConfig;n.viewer=this,n.snapMode=this.snapMode,this.snap=new e.Bimface.Plugins.Snap.Snap(n)}},getOutlinerInfo:function(e){return this._viewerMethodToModelMethod("getOutlinerInfo",arguments)},getMepSystem:function(e,t,i){return this._viewerMethodToModelMethod("getMepSystem",arguments)},setBorderLineWithFilter:function(e){return this._viewerMethodToModelMethod("setBorderLineWithFilter",arguments)},_updateManifest(){const e=["HasComponentProperty","HasMaterialProperty","HasMiniMap","HasComponentStructure","HasFileList","HasRoom","HasArea","HasDrawing","HasMEPSystem","HasGroup","HasAssemble","HasLinkRelation","HasFamilyTypeList","HasLayout","HasSplitDrawing"];let t={};this.getModels().forEach((i=>{const o=i._manifest;o&&e.forEach((e=>{t[e]||(t[e]=o.Features[e])}))})),this.getModelCount()>1&&(t.HasFileList=!0),this._manifest.Features=t},setMaximalRangeofCamera:function(e){this.camera3D.setMaximalRange(e)},getCurrentRangeofCamera:function(){return this.camera3D.getCurrentRange()},updateSceneBoundingBox:function(e=!0){const t=f.ExtrudeBodyManager.getInstance(this.getViewer()).getBoundingBox(),i=this.getExternalComponentManager(),o=this.getViewer(),n=o.getScene(),s=i.meshes;var r=o.modelManager.boundingBox.clone();for(var a in t.isEmpty()||(r.expandByPoint(t.min),r.expandByPoint(t.max)),s)for(var l=0;l<s[a].length;l++){var h=s[a][l].box;r.min.x=Math.min(r.min.x,h.min.x),r.min.y=Math.min(r.min.y,h.min.y),r.min.z=Math.min(r.min.z,h.min.z),r.max.x=Math.max(r.max.x,h.max.x),r.max.y=Math.max(r.max.y,h.max.y),r.max.z=Math.max(r.max.z,h.max.z)}n.setBoundingBoxWorld(r),e&&this.zoomToBoundingBox(r)},enableShortcutKey:function(e){f.EditorConfig.NoKey=!e},overrideComponentsFrameColorById:function(e,t){return this.console.obsolete("Viewer3D.overrideComponentsFrameColorById","Viewer3D.getModel(modelId).overrideComponentsFrameColor"),this._viewerMethodWithIdsToModelMethod("overrideComponentsFrameColorById",arguments)},restoreComponentsFrameColorById:function(e){return this.console.obsolete("Viewer3D.restoreComponentsFrameColorById","Viewer3D.getModel(modelId).restoreComponentsFrameColor"),this._viewerMethodWithIdsToModelMethod("restoreComponentsFrameColorById",arguments)},overrideComponentsFrameColorByObjectData:function(e,t){return this.console.obsolete("Viewer3D.overrideComponentsFrameColorByObjectData","Viewer3D.getModel(modelId).overrideComponentsFrameColor"),this._viewerMethodToModelMethod("overrideComponentsFrameColorByObjectData",arguments)},restoreComponentsFrameColorByObjectData:function(e){return this.console.obsolete("Viewer3D.restoreComponentsFrameColorByObjectData","Viewer3D.getModel(modelId).restoreComponentsFrameColor"),this._viewerMethodToModelMethod("restoreComponentsFrameColorByObjectData",arguments)},getNestedComponents:function(e){return this._viewerMethodToModelMethod("getNestedComponents",arguments)},getAxisGridsIntersection:function(e,t,i){return this._viewerMethodToModelMethod("getAxisGridsIntersection",arguments)},createRoomByAxisGrids:function(e,t,i,o,n,s){return this._viewerMethodToModelMethod("createRoomByAxisGrids",arguments)},enableGlowEffect:function(e){i.send(t,"enableGlowEffect"),f.GlobalData.EnableGlow=e,this.render()},setGlowEffectById:function(e,t){this._viewerMethodWithIdsToModelMethod("setGlowEffectById",arguments)},removeGlowEffectById:function(e){this._viewerMethodWithIdsToModelMethod("removeGlowEffectById",arguments)},clearGlowEffect:function(){this._viewerMethodToModelMethod("clearGlowEffect",arguments);const e=this._getExternalComponentModel();e&&e.clearGlowEffect()},enableSSAOEffect:function(e){i.send(t,"enableSSAOEffect"),f.GlobalData.SSAO=e,this.render()},enableSnowEffect:function(e){i.send(t,"enableSnowEffect"),f.GlobalData.EnableSnowPass=e,this.render()},setSnowEffectOpts:function(e){i.send(t,"setSnowEffectOpts"),this.getViewer().snowOpt(e)},getSnowEffectOpts:function(){return i.send(t,"getSnowEffectOpts"),this.getViewer().snowOpt()},enableFogEffect:function(e){i.send(t,"enableFogEffect"),f.GlobalData.EnableFogPass=e,this.render()},setFogEffectOpts:function(o){i.send(t,"setFogEffectOpts");var n=this.getViewer(),s={darkness:o.darkness,lightAttenuation:o.lightAttenuation,visualDistance:o.visualDistance,fogHeight:o.fogHeight};null!=o&&null!=o.fogColor&&(o.fogColor instanceof e.Web.Graphics.Color?s.fogColor=new THREE.Color(o.fogColor.red/255,o.fogColor.green/255,o.fogColor.blue/255):s.fogColor=new THREE.Color(o.fogColor)),n.fogOpt(s),this.render()},getFogEffectOpts:function(){return i.send(t,"getFogEffectOpts"),this.getViewer().fogOpt()},get3DViewStates:function(e){return this._viewerMethodToModelMethod("get3DViewStates",arguments)},getProjectInfo:function(e,o,n){this.console.obsolete("Viewer3D.getProjectInfo","Viewer3D.getModel(modelId).getProjectInfo"),i.send(t,"getProjectInfo"),this._getMetaDataManager(n).getProjectInfo(e,o)},getComponentsByRaycaster(e,t,i){return i||(i=[]),this.getViewer().getComponentsByRaycaster(e,t,i)},enableFullScreen(e){o.Viewer.prototype.enableFullScreen.call(this,e)},closeBimfaceConsole(){this.console.close()},openBimfaceConsole(){this.console.open()},getObjectPosition(){let e=this.getViewer().getCurrentEditor();return e.getObjectPosition?e.getObjectPosition():null},_storeData(t){return new Promise(((i,o)=>{if(!(t instanceof Array))return void o();let n=(t=t.filter((e=>-1===e.indexOf("resource/v3/model")))).map((t=>e.Web.Lang.Utility.HttpRequest.promiseJSONRequest(`${this._opt.resourceHost}/${/\/\/.*?\/(.+?)(\?.+)?$/.exec(t)[1]}`,"noCode",!0)));Promise.allSettled(n).then(i)}))},enableContactShadow(e){if(!0===e)return f.ContactShadow.createInstance(this.getViewer()),void this.render();f.ContactShadow.destroyInstance(),this.render()},isContactShadowEnabled:()=>null!==f.ContactShadow.getInstance(),setContactShadow(e){if(!this.isContactShadowEnabled())return void this.console.warn("enableContactShadow before");const t=f.ContactShadow.getInstance();if(e&&e.color){const i=new THREE.Color(e.color.red/255,e.color.green/255,e.color.blue/255);t.setColor(i)}e&&void 0!==e.blur&&t.setBlur(e.blur),e&&void 0!==e.height&&t.setHeight(e.height),this.render()},getContactShadow(){if(!this.isContactShadowEnabled())return void this.console.warn("enableContactShadow before");const t=f.ContactShadow.getInstance(),i=t.getColor();return{color:new e.Web.Graphics.Color(parseInt(255*i.r),parseInt(255*i.g),parseInt(255*i.b),1),blur:t.getBlur(),height:t.getHeight()}},updateContactShadow(){this.isContactShadowEnabled()?(f.ContactShadow.getInstance().update(),this.render()):this.console.warn("enableContactShadow before")},enableWireframe(e){i.send(t,"enableWireframe");var o=this.getViewer();this._opt.enableBorderLine=e,e?o.setDrawingStyle(f.DrawingStyle.SHADINGWITHLINE):o.setDrawingStyle(f.DrawingStyle.SHADING)},isWireframeEnabled:function(){return this._opt.enableBorderLine},getCamera(){return this.camera3D},getUnit(){return"m"===this._defaultUnit?e.Bimface.Common.Units.LengthUnits.Meter:e.Bimface.Common.Units.LengthUnits.Millimeter}}),o.Viewer3D=h}();e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").ViewerGISConfig=class{constructor(){let t=e.Bimface.Viewer.OrbitButton,i="Local"==BimfaceLoaderConfig.dataEnvType?`${BimfaceLoaderConfig.staticHost}Glodon/bimface/resources`:`${BimfaceLoaderConfig.staticHost}/../resources`;const o={domElement:null,resourceHost:d.resourceHost,staticHost:d.staticHost+"/api/Glodon",APIHost:d.APIHost,staticResourcesHost:i,securityApi:d.securityApi,sdkUrl:null,staticPath:"/api/Glodon",basePoint:null,homeView:null,orbitButton:t.Left,loading:!1,backgroundColor:{direction:Math.PI,colors:[{color:new e.Web.Graphics.Color(88,103,133,1),stop:"0%"},{color:new e.Web.Graphics.Color(229,234,242,1),stop:"100%"}]},enableExplosion:!1,enableLogarithmicDepthBuffer:!0,enableCompassControl:!0,enableScaleBar:!0,enableInfoBar:!0,enableCreditBar:!0,enableStorage:!0,loadIBLScene:{IBLSceneOption:"",withBackground:!1},memoryThreshold:void 0,enableWireframe:null,wireframeColor:null,enableAutoRaiseCamera:!0};for(let e in o)this[e]=o[e]}},function(){let t=Object.freeze({Rendered:"Rendered",CameraPositionChanged:"CameraPositionChanged",SceneAdded:"SceneAdded",SceneLoading:"SceneLoading",Error:"Error",ModelAdded:"ModelAdded",ModelRemoved:"ModelRemoved",LayerAdded:"LayerAdded",ViewChanged:"ViewChanged",MouseClicked:"MouseClicked",MouseClickedWithoutMap:"MouseClickedWithoutMap",MouseHover:"MouseHover",MouseMove:"MouseMove",EarthAnimationCompleted:"EarthAnimationCompleted",MouseDraged:"MouseDraged",MouseDoubleClicked:"MouseDoubleClicked",ContextMenu:"ContextMenu",SelectionChanged:"SelectionChanged",ComponentsHoverChanged:"ComponentsHoverChanged",ComponentsSelectionChanged:"ComponentsSelectionChanged",RectSelection:"RectSelection",ModelTransformed:"ModelTransformed",FloorExplosion:"FloorExplosion",ModelAddFailed:"ModelAddFailed",ModelInitedWithoutLoad:"ModelInitedWithoutLoad",AllModelInited:"AllModelInited"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer").ViewerGISEvent=t}();class F{constructor(e){this._root=e}query(e){return e=this.parseCondition(e),this.getObjectsByCondition(e)}execute(e,t,i){this.query(e).forEach((e=>{"[object Function]"===Object.prototype.toString.call(e[t])&&(i?e[t](...i):e[t]())}))}getObjectsByCondition(e){if(!e)return;let t=[];const i=o=>{let n;for(let t in e){let i,s,r=e[t];switch(t){case"id":case"name":case"typeName":i=t,s=!0;case"noId":case"noName":case"noTypeName":i=i||{noId:"id",noName:"name",noTypeName:"typeName"}[t],s=s||!1,n=o[i]===r?s:!s;break;case"ids":case"names":case"typeNames":i=/(.*)s/.exec(t)[1],s=!0;case"noIds":case"noNames":case"noTypeNames":if(i=i||{noIds:"id",noNames:"name",noTypeNames:"typeName"}[t],s=s||!1,"[object Array]"!==Object.prototype.toString.call(r))return;n=r.indexOf(o[i])>=0?s:!s}if(!n)break}n&&t.push(o),o.children&&o.children.length>0&&o.children.forEach((e=>{i(e)}))};return i(this._root),t}parseCondition(e){let t;return"[object String]"===Object.prototype.toString.call(e)?t=this.codeTocondition(e):"[object Array]"===Object.prototype.toString.call(e)?t=this.codeTocondition(e.join(" ")):"[object Object]"===Object.prototype.toString.call(e)&&(t=e),t}codeTocondition(e){let t={};if("[object String]"===Object.prototype.toString.call(e)){e.split(" ").forEach((e=>{if(0===e.length)return;const i={id:"noId",typeName:"noTypeName",name:"noName",property:"noProperty",userData:"noUserData",ids:"noIds",typeNames:"noTypeNames",names:"noNames",properties:"noProperties"};let o={id:"id",typeName:"typeName",name:"name",property:"property",userData:"userData",ids:"ids",typeNames:"typeNames",names:"names",properties:"properties"};"!"===e[0]&&(e=/!(.*)/.exec(e)[1],o=i),(e=>{const i=(e,i)=>{const n=o[e],s=o["property"===e?"properties":e+"s"];if(t[s])t[s].push(i);else if(t[n]){let e=[t[n],i];delete t[n],t[s]=e}else t[n]=i};switch(e[0]){case"#":i("id",/#(.*)/.exec(e)[1]);break;case".":i("typeName",/\.(.*)/.exec(e)[1]);break;case"(":let t=/\((.*?)\)(.*)/.exec(e);if(t){const[e,o,n]=t;i(o,n)}default:i("name",e)}})(e)}))}return t}}class T{constructor(t){const i=e.Web.Lang.Utility.DataUtil;this._getDataUtil=()=>i,this.id=i.assertType(t.id,"str")||i.assertType(t.id,"num")?t.id.toString():e.Web.Lang.Utility.UUID.createUUID(),this.name=t.name,this.typeName=t.typeName,this.userData=t.userData,this.isVisible=!1!==t.isVisible,t.viewer&&(this.getViewer=()=>t.viewer),this.children=[];const o=new F(this);this.getOperationManager=()=>o}getId(){return this.id}getName(){return this.name}setName(e){this.name=e}getParent(){return this.parent}getContents(){return this.children}show(e){this.getOperationManager().execute(e,"show")}hide(e){this.getOperationManager().execute(e,"hide")}query(e){return this.getOperationManager().query(e)}add(e,t){this.children.push(e),e.parent=this,this.isVisible||(e.isVisible=this.isVisible),e.getViewer||(e.getViewer=()=>this.getViewer()),e.init&&e.init()}remove(e){if(e instanceof T){const t=e;t.destroy&&t.destroy();const i=this.children.indexOf(t);i>=0&&this.children.splice(i,1)}else this.getOperationManager().execute(e,"remove")}}class P extends T{constructor(e){super(e)}updateParentsVisible(){const e=t=>{let i=!1;t.children.some((e=>i=e.isVisible)),t.isVisible=i,t.parent&&e(t.parent)};this.parent&&e(this.parent)}show(){this.isVisible=!0,this.updateParentsVisible()}hide(){this.isVisible=!1,this.updateParentsVisible()}}var L=e.Bimface.Data.StatisticsDataManager.getInstance();class K extends P{constructor(e){L.send("Glodon.Bimface.Layer.GroupLayer","bf_c_groupLayer_new"),e.typeName="GroupLayer",super(e)}show(){this.children.forEach((e=>{e.show()})),super.show()}hide(){this.children.forEach((e=>{e.hide()})),super.hide()}destroy(){this.children.forEach((e=>{e.destroy()}))}addLayer(e){this.add(e)}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").GroupLayer=K;class G extends P{constructor(e){e.children=null,super(e),this.priority=e.priority,this.elementManager={}}}class q{static getTileSource(e){e.provider=q.parseProvider(e);const{credit:t,url:i,text:o,link:n,copyright:s,provider:r,key:a,parameters:l}=e;if(t===Glodon.Bimface.Common.Credit.Custom)return{credit:t,url:i,text:o,link:n,copyright:s,provider:r,key:a,parameters:l};{let e=this.TileSources[t]||this.TileSources[Glodon.Bimface.Common.Credit.None];return e=Object.assign({},e,{url:i,provider:r,key:a,parameters:l}),e}}static parseProviderByMapUrl(e){return void 0===e||e.indexOf("is.autonavi.com/appmaptile")>-1||e.indexOf("google.cn/vt")>-1||e.indexOf("google.com/vt")>-1||e.indexOf("microsoft.com")>-1||e.indexOf("microsoft.cn")>-1||e.indexOf("tile.openstreetmap.org")>-1||e.indexOf("map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile")>-1?"UrlTemplate":!0===/tianditu.gov.cn.*wmts/.test(e)?"WebMapTileServiceTDU":e.indexOf("tiles.virtualearth.net")>-1?"TileMapBingMapService":e.indexOf("map.gtimg.com/sateTiles")>-1?"TileMapTencentMapService":e.indexOf("bdimg.com")>-1?"BdMapService":"SpecificMapService"}static parseProvider(e){let t;const i=e.mapUrl||e.url;t=void 0===e.provider?q.parseProviderByMapUrl(i):q.parseProviderByProtocol(e.provider);const o=q.fixRequestByProvider(i,t,e.parameters);return e.mapUrl=o,e.url=o,t}static parseProviderByProtocol(e){switch(e){case"BingMap":return"TileMapBingMapService";case"Tianditu":return"WebMapTileServiceTDU";case"TMS":return"TileMapService";case"Tencent":return"TileMapTencentMapService";case"WMS":return"WebMapService";case"WMTS":return"WebMapTileService";case"BaiDu":return"BdMapService";case"GoogleTile":default:return"UrlTemplate"}}static fixRequestByProvider(e,t,i){let o=e;switch(t){case"WebMapTileServiceTDU":if(!/tianditu.gov.cn.*wmts.*{x}/.test(e)){const t=e.indexOf("wmts?"),i=t+5,n=t-6,s=e.slice(n,n+3);o=e.slice(0,i)+"SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&STYLE=default&TILEMATRIXSET=w"+`&LAYER=${s}&FORMAT=tiles&TILEMATRIX={z}&TILEROW={x}&TILECOL={y}&`+e.slice(i)}break;case"TileMapBingMapService":e.indexOf("tiles.virtualearth.net")>-1&&(o="https://ecn.t0.tiles.virtualearth.net/tiles/a{x}.jpeg?n=z&g=9791");break;case"TileMapTencentMapService":e.indexOf("map.gtimg.com/sateTiles")>-1&&(o="https://p0.map.gtimg.com/sateTiles/{z}/{sx}/{sy}/{x}_{y}.jpg?version=400");break;case"WebMapService":o=e+"?service=WMS&request=GetMap&width=256&height=256&srs=EPSG%3A4326"+`&transparent=${i.transparent}`+`&format=${i.format}`+`&version=${i.version}`+`&styles=${i.styles}`+`&layers=${i.layers}`;break;case"WebMapTileService":(-1===e.indexOf("{x}")||-1===e.indexOf("{y}")&&-1===e.indexOf("{z}"))&&(o=e+"?service=WMTS&request=GetTile"+`&format=${i.format}`+`&tilematrixset=${i.tileMatrixSet}`+`&version=${i.version}`+`&style=${i.style}`+`&layer=${i.layer}&TILEMATRIX={z}&TILEROW={x}&TILECOL={y}`)}return o}static verifyKey(e){return new Promise(((t,i)=>{const o={TileMapTencentMapService:{url:"https://apikey.map.qq.com/mkey/index.php/mkey/check?key={key}&pid=127.0.0.1&channel=0",mkeycb:e=>{e.info&&0===e.info.error&&t(),i(),window.mkeycb=void 0}},TileMapBingMapService:{url:"https://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?jsonp=callbackFunction&key={key}&uriScheme=http",callbackFunction:e=>{"ValidCredentials"===e.authenticationResultCode&&t(),i(),window.callbackFunction=void 0}},BdMapService:{url:"http://api.map.baidu.com/?qt=verify&v=3.0&type=webgl&ak={key}&callback=mkeycb",mkeycb:e=>{e&&0===e.error&&t(),i(),window.mkeycb=void 0}}},n=e.provider;let s=o[n]&&o[n].url;if(s)if(e.key){let t=Glodon.Web.Lang.Utility.HttpRequest;s=s.replace("{key}",e.key),window.callbackFunction=o[n].callbackFunction,window.mkeycb=o[n].mkeycb,t.getScript(s)}else i();else t()}))}}function H(e="google",t){e=e.toLowerCase();const i={google:22,openstreetmap:18,arcgis:19,autonavi:19,virtualearth:21};let o;if(Object.keys(i).some((t=>{if(e.indexOf(t)>=0)return o=i[t],!0})),o&&o<t){(new Glodon.Web.Common.Console).warn("The value set is out of the range supported by the map service.")}}q.TileSources=Object.freeze({Google:{credit:Glodon.Bimface.Common.Credit.Google,text:"服务条款",link:"https://www.google.cn/intl/zh-CN_CN/help/terms_maps/",copyright:"©2021 Google"},OSM:{credit:Glodon.Bimface.Common.Credit.OSM,text:"OpenStreetMap",link:"https://www.openstreetmap.org/copyright",copyright:"©OpenStreetMap contributors"},Amap:{credit:Glodon.Bimface.Common.Credit.Amap,text:"服务条款",link:"http://map.amap.com/doc/serviceitem.html",copyright:"©2021 高德软件"},ArcGIS:{credit:Glodon.Bimface.Common.Credit.ArcGIS,text:"服务条款",link:"https://doc.arcgis.com/zh-cn/arcgis-online/reference/terms-of-use.htm",copyright:"©2021 Esri"},Tianditu:{credit:Glodon.Bimface.Common.Credit.Tianditu,text:"服务条款",link:"http://www.tianditu.gov.cn/about/contact.html?type=2",copyright:"©天地图"},BingMap:{credit:Glodon.Bimface.Common.Credit.BingMap,text:"服务条款",link:"https://www.microsoft.com/zh-cn/servicesagreement/default.aspx",copyright:"©2021 Microsoft"},Tencent:{credit:Glodon.Bimface.Common.Credit.Tencent,text:"服务协议",link:"https://ugc.map.qq.com/AppBox/Landlord/serveagreement.html",copyright:"©2021 Tencent"},None:{credit:Glodon.Bimface.Common.Credit.None,text:"",link:"",copyright:""}});var Y=e.Bimface.Data.StatisticsDataManager.getInstance();class j extends G{constructor(e){Y.send("Glodon.Bimface.Layer.TileLayer","bf_c_tileLayer_new"),e.typeName="TileLayer",e.priority=e.priority||1,e.castShadow=!!f.Utils.isDefined(e.castShadow)&&e.castShadow,e.receiveShadow=!f.Utils.isDefined(e.receiveShadow)||e.receiveShadow,"https:"===window.location.protocol&&(e.url=e.url.replace("http:","https:")),super(e),this._config=e,this.mapStyle={},this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow}init(){const t=this._config;let i=this.getViewer().getLayerManager().baseMap;if(i&&i.tileManager){this._isBaseMap=!1,this.tileManager=i.tileManager,this.tileManager=this.getViewer().getLayerManager().baseMap.tileManager;let e={url:t.url};return e.imageryProviderType=q.parseProvider(e),void(this._imageryId=this.tileManager.addImageryLayer(e))}this._isBaseMap=!0,this.getViewer().getLayerManager().baseMap=this;const o=this.getViewer().getViewer();this.loadMap(),this.getViewer()._camera&&this.getViewer()._camera.init(),this.tileSource=q.getTileSource({credit:t.credit,url:t.url});const n=()=>{this.isVisible||this.hide(),this.initSetting(),this.getViewer().fireEvent(e.Bimface.Viewer.ViewerGISEvent.SceneAdded),o.unregisterEventListener(f.EVENTS.ON_MAP_LOAD_ALL,n)};o.registerEventListener(f.EVENTS.ON_MAP_LOAD_ALL,n)}initSetting(){let e=this._config.style,t=this._config.shadow;e&&f.Utils.isDefined(e.opacity)&&this.setOpacity(e.opacity),t&&f.Utils.isDefined(t.receiveShadow)&&this.enableReceiveShadow(t.receiveShadow)}loadMap(){const t=this._config;t.baseLatLon=t.baseLatLon||this.getViewer()._config.baseLatLon;var i=new e.Bimface.Plugins.TileMap.MapConfig;t.url&&(i.mapUrl=t.url),i.viewer=this.getViewer(),i.modelAltitude=0,i.basePoint={x:0,y:0},i.useTerrain=t.useTerrain||!1,i.provider=t.provider,i.terrainOnlineConfig=t.terrainOnlineConfig,i.maxTerrainLevel=14,i.sectionable=t.sectionable,i.maxLevel=t.maxLevel,t.terrainPath&&(i.terrainPath=t.terrainPath),i.modelRotationZ=0*Math.PI/180,i.modelPosition=[t.baseLatLon.lon,t.baseLatLon.lat],i.mapUrl||(i.mapUrl="https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={x}&TILECOL={y}&tk=9fe0f60cd462f38c726d9a12565e4524"),i.imageryProviderType=q.parseProvider(i);let o={};o.loadConfig=i,o.loadConfig.castShadow=this.castShadow,o.loadConfig.receiveShadow=this.receiveShadow;const n=this.getViewer().getViewer();this.model=n.modelManager.createDemModel(o,!0),this.tileManager=this.model.tileManager,this._imageryId=this.tileManager.getBaseLayerId()}destroy(){this._isBaseMap||(this.tileManager&&this.tileManager.removeImageryLayer(this._imageryId),this.tileManager=null)}show(){this.tileManager.show(this._imageryId),super.show()}hide(){this.tileManager.hide(this._imageryId),super.hide()}useTerrain(e){this.tileManager.applyTerrain(e)}isUseTerrain(){return this.tileManager.isUseTerrain()}setTerrain(e,t){return this.tileManager.setTerrain(e,t)}getTerrain(){return{url:this.tileManager.getTerrain()}}setOpacity(e){e=f.Utils.isDefined(e)?e:1,"[object Number]"===Object.prototype.toString.call(e)&&this.tileManager.setOpacity(e>1?1:e<0?0:e,this._imageryId)}getSource(){return this.tileSource}setSource(e){const t=this.getViewer();this.tileSource=q.getTileSource(e),t._creditWidget.update(this.tileSource),this._imageryId=this.tileManager.setMapUrl(this.tileSource.url,this.tileSource.provider),t.render()}updateCredit(e){const t=this.getViewer(),i=q.TileSources[e];t._creditWidget.update(i)}getStyle(){return this.mapStyle}setStyle(t){if(t=t||{},this.mapStyle=Object.assign({},t),t.template)switch(t.template){case e.Bimface.Common.ImageStyle.DarkBlue:t.color=new THREE.Vector4(2/255,30/255,88/255,1);break;case e.Bimface.Common.ImageStyle.DarkGreen:t.color=new THREE.Vector4(3/255,63/255,44/255,1);break;case e.Bimface.Common.ImageStyle.CustomColor:if(!t.color)return void console.warn("color is needed when template == Glodon.Bimface.Common.ImageStyle.CustomColor.");t.color=new THREE.Vector4(t.color.red/255,t.color.green/255,t.color.blue/255,t.color.alpha)}if(f.Utils.isDefined(t.brightness)&&(t.brightness+=1,t.brightness=Math.min(Math.max(t.brightness,0),2)),f.Utils.isDefined(t.contrast)){var i=t.contrast+=1;i=Math.min(Math.max(i,0),2),t.contrast=i>1?1+Math.pow(i-1,2):i}f.Utils.isDefined(t.saturation)&&(t.saturation+=1,t.saturation=Math.min(Math.max(t.saturation,0),2)),this.tileManager.setStyle(t,this._imageryId),this.getViewer().render()}restoreStyle(){this.mapStyle={},this.tileManager.setStyle(this.mapStyle,this._imageryId),this.getViewer().render()}setMaxLevel(e){e&&this._getDataUtil().assertType(e,"num")&&(H(this._config.url,e),this.tileManager&&this.tileManager.setMaxLevel(e,this._imageryId))}getMaxLevel(){return this.tileManager.getMaxLevel(this._imageryId)}enableCastShadow(e){e!=this.castShadow&&this.model&&(this.model.setCastShadow(e),this.castShadow=e)}isCastShadowEnabled(){return this.castShadow}enableReceiveShadow(e){this.model&&(this.model.setReceiveShadow(e),this.receiveShadow=e)}isReceiveShadowEnabled(){return this.receiveShadow}getId(){return super.getId()}getModelId(){return f.ObjectGroupType.TILEGROUP}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").TileLayer=j;var N=e.Bimface.Data.StatisticsDataManager.getInstance();class W extends G{constructor(e){N.send("Glodon.Bimface.Layer.TerrainLayer","bf_c_terrainLayer_new"),e.typeName="TerrainLayer",e.priority=e.priority||1,super(e),this.baseMap=e.baseMap}show(){this.baseMap.useTerrain(!0),super.show(),this.getViewer()._autoRaiseCamera()}hide(){this.baseMap.useTerrain(!1),super.hide()}getId(){return super.getId()}setSource(e,t){if(this.baseMap.isUseTerrain())return this.source=e,this.baseMap.setTerrain(e,t);console.warn("open the terrain firstly")}getSource(){return void 0===this.source?this.baseMap.getTerrain():this.source}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").TerrainLayer=W,function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Model"),i=e.Web.Lang.Utility.DataUtil;class o extends e.Bimface.Model.Model{constructor(t,i,o,n,s){super(t,i,o,n,s),this._container={};let r=new e.Bimface.Plugins.Marker3D.Marker3DContainerConfig;r.viewer=this.getViewer(),r.type="ShpPoint",r.layerId=this._layer.id,this._container.marker3DContainer=new e.Bimface.Plugins.Marker3D.Marker3DContainer(r),this.getCloudViewer().registerEventListener(CLOUD.EVENTS.ON_LOAD_COMPLETE,(e=>{e.modelId&&this.modelId&&e.modelId.toString()===this.modelId.toString()&&(this.cloudModel=this.getCloudViewer().getModelManager().getModel(this.modelId),this.cloudModel.getAllFeature&&(this.points=this.cloudModel.getAllFeature(),this.setStyleByFeatureStyle()))}))}setStyleById(t,o){if(this.points)if(i.assertType(t,"arr"))t.forEach((e=>this.setStyleById(e,o)));else{this._container.marker3DContainer.removeItemById(t);let i,n,s=this.getPositionById(t);if(!s)return;if("dot"===(o=o||{type:"dot",color:new e.Web.Graphics.Color(50,211,166,1),pixelSize:8,outlineColor:new e.Web.Graphics.Color(255,255,255,1),outlineWidth:2}).type){let e=document.createElement("canvas"),t=2;n=t*(o.pixelSize+o.outlineWidth);let s=n/2;e.width=n,e.height=n;let r=e.getContext("2d");r.beginPath(),r.arc(s,s,s,0,2*Math.PI),r.fillStyle=`#${o.outlineColor.getHEX()}`,r.fill(),r.beginPath(),r.arc(s,s,t*o.pixelSize/2,0,2*Math.PI),r.fillStyle=`#${o.color.getHEX()}`,r.fill(),i=e.toDataURL(),n/=t}else{if("img"!==o.type)return;i=o.src,n=o.size}let r={id:t,worldPosition:s,src:i,size:n};this._addMarker3D(r)}}setStyleByObjectData(e,t){i.assertType(e,"arr")&&(e.length>0?this.setStyleById(this.getMatchIds(e),t):this.setStyleById(this.points.map((e=>e.id)),t))}setStyleByFeatureStyle(){if(!this.points)return;this._container.marker3DContainer.clear();this._getMetaDataManager().getFeatureStyle((e=>{let t;if(e&&e.data&&e.data.length>0&&e.data.some((e=>{if("point"===e.type)return t=e.style,!0})),!t)return;let i=t.symbol,o=i.items,n=t.label.field;const s="https://static-test.bimface.com/resources/Icon/FuZhouProject/PointIcon/",r=(e,t,i)=>{e.forEach((e=>{let o=this.getPositionById(e.id),s={id:e.id,worldPosition:o,src:t,size:i};if(n){let t=e.properties&&e.properties[n];t&&(s.tooltip=t)}this._addMarker3D(s)}))};if(i.field)o.forEach((e=>{let t=`${s}${e.iconType}.png`,o=e.iconSize||24,n=this.getPointsByProperty(i.field,e.value);r(n,t,o)}));else{let[e]=o;if(e){let t=`${s}${e.iconType}.png`,i=e.iconSize||24;r(this.points,t,i)}}}))}destroy(){this.cloudModel&&this.cloudModel.destroy(),this.points=null,this._container=null}_addMarker3D(t){let i=new e.Bimface.Plugins.Marker3D.Marker3DConfig;i.tooltipStyle={color:"#fff",backgroundColor:"#20262f",padding:"8px",opacity:.8};for(let e in t)i[e]=t[e];let o=new e.Bimface.Plugins.Marker3D.Marker3D(i);this._container.marker3DContainer.addItem(o)}containerCall(e,...t){for(let i in this._container)this._container[i][e](...t)}getPointsByProperty(e,t){return this.cloudModel.select({key:e,value:t})}setVisible(e){e?this.containerCall("showAllItems"):this.containerCall("hideAllItems"),this.cloudModel.setVisible&&this.cloudModel.setVisible(e)}hideAllComponents(){this.setVisible(!1)}showAllComponents(){this.setVisible(!0)}showComponentsById(e){i.assertType(e,"arr")&&this.containerCall("showItemsById",e)}hideComponentsById(e){i.assertType(e,"arr")&&this.containerCall("hideItemsById",e)}getMatchIds(e){const t=e=>{if(i.assertType(e,"obj"))return this.points.filter((t=>{for(let i in e)if(t.properties[i]!==e[i])return!1;return!0}))};if(i.assertType(e,"arr")){let i=[];return e.forEach((e=>{t(e).forEach((e=>{i.indexOf(e.id)<0&&i.push(e.id)}))})),i}}getObjectData(){if(this.points&&this.points.length>0)return Object.keys(this.points[0].properties)}showComponentsByObjectData(e){i.assertType(e,"arr")&&(e.length>0?this.showComponentsById(this.getMatchIds(e)):this.setVisible(!0))}hideComponentsByObjectData(e){i.assertType(e,"arr")&&(e.length>0?this.hideComponentsById(this.getMatchIds(e)):this.setVisible(!1))}getPositionById(e){let[t]=this.points.filter((t=>t.id===e));if(t){let{x:e,y:i}=t.geometry;return this.getViewer().latLonToWorld({latLon:{lat:i,lon:e}})}}getPropertiesById(e){let[t]=this.points.filter((t=>t.id===e));return t?t.properties:void 0}_executeMarkers(e){i.assertType(e,"func")&&this._container.marker3DContainer.getAllItems().forEach((t=>e(t)))}onClick(e){this._executeMarkers((t=>{t.onClick((()=>e({id:t.getId(),layerId:this._layer.id})))}))}onHover(e){this._executeMarkers((t=>{t.onHover((()=>e({id:t.getId(),layerId:this._layer.id})))}))}onDoubleClick(e){this._executeMarkers((t=>{t.onDoubleClick((()=>e({id:t.getId(),layerId:this._layer.id})))}))}onRightClick(e){this._executeMarkers((t=>{t.onRightClick((()=>e({id:t.getId(),layerId:this._layer.id})))}))}}t.PointModel=o}();class O{}O.xmlns="http://www.w3.org/2000/svg",O.makeCircle=function(e){var t=document.createElementNS(O.xmlns,"circle");return t.style.fill=e.color,t.setAttribute("r",e.radius+""),t.setAttribute("stroke","#FFFFFF"),t.setAttribute("stroke-width",e.strokeWidth),t.setAttribute("transform","translate("+e.position.x+","+e.position.y+")"),t},O.makeConcentricCircle=function(e){var t=document.createElementNS(O.xmlns,"g"),i=document.createElementNS(O.xmlns,"circle");i.style.fill=e.color,i.setAttribute("r",e.innerRadius+""),i.setAttribute("stroke","#FFFFFF"),i.setAttribute("stroke-width",e.innerStrokeWidth),i.setAttribute("transform","translate("+e.position.x+","+e.position.y+")");var o=i.cloneNode();return o.setAttribute("r",e.outerRadius+""),o.setAttribute("stroke-width",e.outerStrokeWidth||0),t.appendChild(o),t.appendChild(i),t},O.makeLine=function(e){var t=document.createElementNS(O.xmlns,"line");return t.setAttribute("stroke",e.color),t.setAttribute("stroke-width",e.lineWidth),t.setAttribute("x1",e.start.x+""),t.setAttribute("y1",e.start.y+""),t.setAttribute("x2",e.end.x+""),t.setAttribute("y2",e.end.y+""),t},O.makeDashLine=function(e){let t=O.makeLine(e);return t.setAttribute("stroke-dasharray",e.dashArray||"10 8"),t},O.makePath=function(e){var t=document.createElementNS(O.xmlns,"path");let i=e.info;return t.setAttribute("d",`M ${i.pointA.x} ${i.pointA.y} A ${e.arcRadius} ${e.arcRadius} 0 0 ${i.direction} ${i.pointB.x} ${i.pointB.y}`),t.setAttribute("fill","rgba(0,0,0,0)"),t.setAttribute("stroke",e.color),t.setAttribute("stroke-width",e.lineWidth),t},O.makePolyline=function(e){var t=document.createElementNS(O.xmlns,"polyline");return t.setAttribute("stroke",e.color),t.setAttribute("stroke-width",e.width),t.style.fill=e.fillColor||"none",t.style.opacity=e.opacity||1,t.setAttribute("points",e.points),t},O.makePolygon=function(e){var t=document.createElementNS(O.xmlns,"polygon");return t.setAttribute("stroke",e.color),t.setAttribute("stroke-width",e.width),t.style.fill=e.fillColor||"none",t.setAttribute("points",e.points),t},O.calcPolylinePoints=function(e){for(var t="",i=0;i<e.length;i++)t+=e[i].x+","+e[i].y+" ";return t},O.makeRectangle=function(e){var t=document.createElementNS(O.xmlns,"rect");return t.setAttribute("stroke-width",2),t.setAttribute("x",e.x),t.setAttribute("y",e.y),t.setAttribute("width",e.width),t.setAttribute("height",e.height),t.setAttribute("rx",e.radius),t.style.fill=e.fillColor||"none",t.setAttribute("fill-opacity",e.fillOpacity||1),t.setAttribute("stroke",e.strokeColor||"none"),t},O.makeMarker=function(e){var t=document.createElementNS(this.xmlns,"marker");t.setAttribute("id",e.id),t.setAttribute("viewBox","0 0 10 10"),t.setAttribute("refX","5"),t.setAttribute("refY","5"),t.setAttribute("markerWidth",e.markerWidth||"6"),t.setAttribute("markerHeight",e.markerHeight||"6"),t.setAttribute("orient","auto-start-reverse");var i=document.createElementNS(this.xmlns,"path");i.setAttribute("d","M 0 0 L 10 5 L 0 10 z"),i.style.fill=e.color,t.appendChild(i);let o=O.makeDefs();return o.appendChild(t),o},O.makeText=function(e){var t=document.createElementNS(O.xmlns,"text");t.setAttribute("x",e.x),t.setAttribute("y",e.y),t.setAttribute("fill",e.color||"#000"),t.setAttribute("font-size",e.fontsize);var i=e.content?e.content.split("\n"):[""];if(i.length>1)for(let n=0;n<i.length;n++){var o=document.createElementNS(O.xmlns,"tspan");o.setAttribute("x",e.x),o.setAttribute("y",e.y+30*n),o.textContent=i[n],t.appendChild(o)}else t.textContent=i[0];return t},O.makeDefs=function(){return document.createElementNS(this.xmlns,"defs")},O.measureText=function(e,t='14px "Microsoft YaHei'){var i=document.createElement("canvas").getContext("2d");return i.font=t,i.measureText(e).width},O.distanceToSegment=function(e,t,i){var n=t.distanceToSquared(i);if(0==n)return e.distanceTo(t);var s=((e.x-t.x)*(i.x-t.x)+(e.y-t.y)*(i.y-t.y))/n;s=Math.max(0,Math.min(1,s));let r=new o;return r.x=t.x+s*(i.x-t.x),r.y=t.y+s*(i.y-t.y),e.distanceTo(r)},O.isPointInPolygon=function(e,t){let i=0,o=t.length;for(let n=0;n<o;n++){let s=t[n],r=t[(n+1)%o];s.y!=r.y&&(e.y<Math.min(s.y,r.y)||e.y>=Math.max(s.y,r.y)||(e.y-s.y)*(r.x-s.x)/(r.y-s.y)+s.x>e.x&&i++)}return i%2==1},O.isPointInTriangle=function(e,t){const{a:i,b:o,c:n}=t;let s=o.clone().sub(i),r=n.clone().sub(i),a=e.clone().sub(i),l=s.clone().cross(r),h=s.clone().cross(a);return l.dot(h)>=0},O.calcSpatialArea=function(e){let t=new THREE.Vector3,i=new THREE.Vector3;const o=e.length;if(o<3)return 0;let n=0,s=new THREE.Triangle;for(let r=2;r<o;r++){let o=s.clone().set(e[r-1],e[r],e[0]),a=o.getArea();if(r>2){let n=s.getNormal(t),l=o.getNormal(i),h=n.angleTo(l);if((Math.abs(h-3.1415)<2e-4||Math.abs(h)<2e-4)&&(s.containsPoint(e[r])||o.containsPoint(e[r-2]))){let e=s.getArea();a=Math.abs(a-e)-e}}n+=a,s.copy(o)}return n},O.calcProjectedArea=function(e){let t=[];return e.forEach((e=>{let i=e.clone();i.z=0,t.push(i)})),this.calcSpatialArea(t)},O.cutFillAnalysis=null,O.calcSurfaceArea=function(e,t){let i=0;if(e.length<3||!t)return this.console.warn("Parameter points or viewer is invalid."),i;let o=t.getViewer(),n=e.map((e=>o.worldToDrawing(e)));return O.cutFillAnalysis?O.cutFillAnalysis.effectOpt({boundary:n}):O.cutFillAnalysis=new CLOUD.CutFillMeasure({boundary:n,viewer:t}),i=O.cutFillAnalysis.getTotalSuperficialArea(),i},function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Model"),i=e.Web.Lang.Utility.DataUtil;t.LineModel=class{constructor(e,t,i){this.modelId=`${t.modelId}-line`,this.viewer=e,this.cloudViewer=e.getViewer(),this.cloudModel=null,this.dataManager=t.model._getMetaDataManager().dataManager,this.types={polygon:!0},this.loaded=!1,this.lineHeight=i.lineHeight,this.managerVisible=!1,this.cloudViewer.getModelManager().createLineModel({databagId:t.databagId,serverUrl:t.model._opt.resourceHost,rootPath:"metadata/Points.json.gz",modelId:this.modelId,loadConfig:i}),this.cloudViewer.registerEventListener(CLOUD.EVENTS.ON_LOAD_COMPLETE,(e=>{e.modelId&&this.modelId&&e.modelId.toString()===this.modelId.toString()&&(this.cloudModel=this.cloudViewer.getModelManager().getModel(this.modelId),this.features=this.cloudModel.getAllFeature(),this.setStyleByFeatureStyle(),this.viewer.render())}))}destroy(){const e=this.modelId;this.features=null,this.cloudViewer.unload(e)}setVisible(e){this.cloudModel&&this.cloudModel.setVisible(e)}setOutlineVisible(e){this.managerVisible=e,this.cloudModel&&this.cloudModel.setVisible(e)}getOutlineVisible(){return this.managerVisible}setStyleByFeatureStyle(){this.features&&this.dataManager.getFeatureStyle((e=>{if(e&&e.data){if(0===e.data.length){const e={color:new THREE.Color(0,0,0),opacity:1,lineWidth:1,useLineWidth:!1};let t={};for(const e in this.features){this.features[e].geometry.map((i=>{let o=[];i.map((e=>{const t=this.viewer.latLonToWorld({latLon:{lon:e.x,lat:e.y}});o.push(t.x,t.y,this.lineHeight)})),t[e]=o}))}return this.cloudModel.createLineMesh(t,e),this.loaded=!0,this.setVisible(!1),void this.viewer.render()}e.data.some((e=>{if(void 0===this.types[e.type])return;const t=this.features;e.style.items.map((e=>{const i=e.outlineColor,o=this._getLineMaterialColor(i),n=i[3],s=e.outlineWidth,r={color:o,opacity:n,lineWidth:s,useLineWidth:!1},a=e.ids;if(!a)return;let l={};a.map((e=>{const o=t[e];this.features[e].originLineWidth=s,this.features[e].originOutlineColor=i,o.lineWidth=s,o.outlineColor=i;o.geometry.map((t=>{let i=[];t.map((e=>{const t=this.viewer.latLonToWorld({latLon:{lon:e.x,lat:e.y}});i.push(t.x,t.y,this.lineHeight)})),l[e]=i})),o.geometry.length=0})),this.cloudModel.createLineMesh(l,r)}))})),this.loaded=!0,this.setVisible(!1),this.viewer.render()}}),(e=>{console.log(e)}))}_getLineMaterialColor(e){return new THREE.Color(e[0]/255,e[1]/255,e[2]/255)}_classifyIdsByStyle(e,t){let i={};e.map((e=>{let o=this.features[e];if(!o)return;t&&t.color&&(o.outlineColor=[t.color.red,t.color.green,t.color.blue,t.color.alpha]),t&&t.width&&(o.lineWidth=t.width);const n=void 0===t?o.originOutlineColor.toString():o.outlineColor.toString(),s=o.originLineWidth.toString();void 0===i[n]&&(i[n]={}),void 0===i[n][s]?i[n][s]=[e]:i[n][s].push(e)}));let o=[];for(const e in i)for(const n in i[e]){const s=i[e][n];o.push({ids:s,color:void 0===t?this.features[s[0]].originOutlineColor:this.features[s[0]].outlineColor,width:void 0===t?this.features[s[0]].originLineWidth:this.features[s[0]].lineWidth})}return this.styleIdMap=null,o}setStyleByIds(e,t){if(!this.features)return;if(!t.color&&!t.width)return void console.warn("color or lineWidth must in style");let i=this._classifyIdsByStyle(e,t);i.map((e=>{const t=e.ids,i=e.color,o=e.width,n={color:this._getLineMaterialColor(i),opacity:i[3],lineWidth:o};this.cloudModel.updateMaterialByFeatureIds(t,n)})),i.length=0,this.viewer.render()}getMatchIds(e){const t=e=>{if(i.assertType(e,"obj"))return Object.values(this.features).filter((t=>{for(let i in e)if(t.properties[i]!==e[i])return!1;return!0}))};let o=[];return e.forEach((e=>{t(e).forEach((e=>{o.indexOf(e.id)<0&&o.push(e.id)}))})),o}getObjectData(){if(this.features&&this.features.length>0)return Object.keys(this.features[0].properties)}setStyleByObjectData(e,t){if(i.assertType(e,"arr"))if(e.length>0)this.setStyleByIds(this.getMatchIds(e),t);else{const e=Object.keys(this.features);this.setStyleByIds(e,t)}else console.warn("conditions must be array")}restoreStyleByIds(e){if(!this.features)return;let t=this._classifyIdsByStyle(e);t.map((e=>{const t=e.ids,i=e.color,o=e.width,n={color:this._getLineMaterialColor(i),opacity:i[3],lineWidth:o};this.cloudModel.updateMaterialByFeatureIds(t,n),t.map((e=>{let t=this.features[e];t.outlineColor=t.originOutlineColor,t.lineWidth=t.originLineWidth}))})),t.length=0,this.viewer.render()}restoreStyleByObjectData(e){if(i.assertType(e,"arr"))if(e.length>0)this.restoreStyleByIds(this.getMatchIds(e));else{const e=Object.keys(this.features);this.restoreStyleByIds(e)}else console.warn("conditions must be array")}getAreaById(e){if(void 0===e||!this.features)return;let t=this.features[e],i=0;return t._meshList.forEach((e=>{if(e.geometry&&e.geometry.attributes&&e.geometry.attributes.position){let t=e.geometry.attributes.position,o=[];for(let e=0;e<t.count;e++)o.push((new THREE.Vector3).fromBufferAttribute(t,e));i+=O.calcSpatialArea(o)}})),i}}}();class J extends G{constructor(t){t.typeName=t.typeName;const i=e.Web.Lang.Utility.DataUtil;t.id=i.assertType(t.id,"str")||i.assertType(t.id,"num")?t.id:t.modelId,t.priority=t.priority||3,t.isVisible=null==t.isVisible||t.isVisible,t.enableBorderLine=!!t.enableBorderLine||!(!t.style||!0!==t.style.wireframe),t.maxDetailLevel=i.assertType(t.maxDetailLevel,"num")?t.maxDetailLevel:void 0,t.visualRange=t.visualRange,t.disableUserData=!0===t.disableUserData,t.metaData=t.metaData,t.coordinateSystem=t.coordinateSystem,t.castShadow=!!t.castShadow,t.receiveShadow=!!t.receiveShadow,!0===t.enableBorderLine&&(t.wireFrameVisibilityOption=!0),super(t),this._config=t,this.modelId=t.modelId,this.customId=t.customId,this.loaded=!1!==t.isVisible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.presetWireFrameVisible=t.enableBorderLine}init(){const t=this._config;if(!t.viewToken&&!t.modelId&&!t.databagId)return(new e.Web.Common.Console).warn("Invalid Layer Config"),void this.getParent().remove(this);this.loadStatus="inited",!1!==this.loaded?this.loadModel(t):this.getViewer().fireEvent(e.Bimface.Viewer.ViewerGISEvent.ModelInitedWithoutLoad,this.layerId)}destroy(t=!0){if("destroyed"!==this.loadStatus&&(this.loadStatus="destroyed",this._modelAddedCallback&&this.getViewer().removeEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,this._modelAddedCallback),this.model&&this.model.destroy(),this.model=void 0,t&&this.getParent())){let e=[],t=this.getParent();for(;t;)e.push(t.id),t=t.getParent();e.reverse().splice(0,2);let i=this.getViewer()._config.resources;if(e.length>0)for(;e.length>0;){let[t]=i.filter((t=>t.id===e[0]));if(!t||!t.children){i=void 0;break}i=t.children,e.splice(0,1)}if(i){let[e]=i.filter((e=>e.id===this.id));if(e){let t=i.indexOf(e);i.splice(t,1)}}this.getParent()&&this.getParent().remove(this)}}getMetaDataByViewToken(t,i,o){const n=this.getViewer();let s=e.Bimface.Authentication.AuthenticationManager,r=new e.Bimface.Authentication.AuthenticationConfig;r.viewToken=t,r.APIHost=n._opt.APIHost,new s(r).authenticate(i,o)}initSetting(){const e=this._config,t=e.shadow,i=e.style,o=e.maxDetailLevel;e.visualRange;t&&CLOUD.Utils.isDefined(t.castShadow)&&this.enableCastShadow(t.castShadow),t&&CLOUD.Utils.isDefined(t.receiveShadow)&&this.enableReceiveShadow(t.receiveShadow),i&&CLOUD.Utils.isDefined(i.opacity)&&this.setOpacity(i.opacity),o&&CLOUD.Utils.isDefined(o)&&this.setMaxDetailLevel(o),i&&i.enableVisualRange&&CLOUD.Utils.isDefined(i.visualRange)&&this.setVisualRange(i.visualRange)}_onLayerLoaded(){this.loadStatus="loaded",this.getViewer()._getLayerLoadedHandlerList().forEach((e=>"loaded"===e.status&&e.handler&&e.handler(this))),this.getViewer().fireEvent(e.Bimface.Viewer.ViewerGISEvent.LayerAdded,{layerId:this.id,layerName:this.name,layerType:this.typeName,modelId:this.modelId})}loadModel(t){const i="bimTiles",o=this._getModelLoadConfig(t.transformation);null!=t.layerVersion&&(this.layerVersion=t.layerVersion),this.loadStatus="loading";const n=t=>{this.databagId=t.databagId,this.modelId=t.modelId,this.modelType=t.modelType,this.isVisible=null==t.isVisible||t.isVisible,"point"!==this._config.featureType?(t.customId&&(o.modelId=t.customId),this.model=new e.Bimface.Model.BimModel(this.getViewer(),t,i,o,this),this._modelAddedCallback=t=>{if(this.getId()===t){if(this.model.setVisible(this.isVisible),this.initSetting(),this.loadStatus="rendered","shp"===this.model.getModelContent()){let t={lineHeight:0,transformMatrix:new THREE.Matrix4};const i=this.getTransformation();if(t.lineHeight=i[14],1===i[0]&&1===i[5]&&1===i[10]){const e=Math.cos(THREE.Math.degToRad(this.getViewer().getBasePoint().lat)),o=(new THREE.Matrix4).makeScale(e,e,e);t.transformMatrix.fromArray(i).multiply(o),this.setTransformation(t.transformMatrix.elements)}this.lineModel=new e.Bimface.Model.LineModel(this.getViewer(),this,t)}this.getViewer()._getLayerLoadedHandlerList().forEach((e=>"rendered"===e.status&&e.handler&&e.handler(this))),this._config.disableUserData||this._onLayerLoaded()}},this.getViewer().addEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,this._modelAddedCallback)):this.model=new e.Bimface.Model.PointModel(this.getViewer(),t,i,o,this)},s=e=>(t.customId?this.customId=e.customId=t.customId:this.getViewer().getModels().map((e=>e.modelId.toString())).indexOf(e.modelId.toString())>=0?this.customId=e.customId=this.id:this.customId=void 0,e);if(this.viewToken=t.viewToken,t.databagId){const e={databagId:t.databagId,metaData:t.config&&t.config.metadata,coordinateSystem:t.config&&t.coordinateSystem,modelId:t.modelId,modelType:t.modelType,viewToken:t.viewToken||this.getViewer()._data.viewToken,isVisible:this.isVisible||t.isVisible,name:t.name,renderType:"3DView",renderVersion:"3.0"};s(e),t.config&&t.config.metadata&&"point"===t.config.metadata.FeatureType&&(this._config.featureType=t.config.metadata.FeatureType),n(e)}else t.viewToken&&this.getMetaDataByViewToken(this.viewToken,(e=>{s(e),e=Object.assign({},e,{isVisible:t.isVisible}),n(e)}),(t=>{this.getViewer().getEventManager().fireEvent(e.Bimface.Viewer.ViewerGISEvent.Error,t),console.log(t)}))}_getModelLoadConfig(e){let t={zoomAll:!1,enableBorderLine:!!this._config.enableBorderLine||!(!this._config.style||!0!==this._config.style.wireframe),maxDetailLevel:this._config.maxDetailLevel,visualRange:this._config.visualRange,onDemand:this._config.onDemand,condition:this._config.condition,wireFrameVisibilityOption:this._config.componentsFrame,disableUserData:this._config.disableUserData,castShadow:!!this._config.castShadow,receiveShadow:!!this._config.receiveShadow};return e&&16===e.length&&(t.transformMatrix=(new THREE.Matrix4).fromArray(e)),t}debugShowGeometricError(e){let t=this.getViewer().getViewer().getModelManager().getModel(this.modelId);t&&t.debugShowGeometricError(e)}getRootGeoErrDistance(){return this.model&&this.model.getRootGeoErrDistance()}getCoordinateSystem(e){this.model._getMetaDataManager().getModelInfo((t=>{t.coordinateSystem&&e(t.coordinateSystem),t.coordinateSystems&&e(t.coordinateSystems)}),(t=>{e(t)}))}getManifest(e){this.model._getMetaDataManager().getManifest((t=>{e(t)}),(t=>{e(t)}))}getCurrentVersion(){return this.layerVersion}update(e){this.destroy(!1);let t={transformation:null,isVisible:!0};e.viewToken||e.databagId?Object.assign(t,e):Object.assign(t,this._config,e),this._config=t,this.loadModel(t)}getBoundingBox(){return this._getModel().getBoundingBoxWorld()}show(){super.show(),"loading"!==this.loadStatus&&(this.lineModel&&!0===this.lineModel.loaded&&this.lineModel.getOutlineVisible()&&this.lineModel.setVisible(this.isVisible),!0!==this.loaded?(this.loaded=!0,this.init()):this.model.setVisible(this.isVisible))}hide(){this.model&&this.model.setVisible(!1),this.lineModel&&this.lineModel.setVisible(!1),super.hide()}getTransformation(){return this.model.getModelTransformation()}setTransformation(e){this.model.setModelTransformation(e)}setTranslation(e){this.model.setModelTranslation(e)}setRotationZ(e,t){this.model.setModelRotationZ(e,t)}setScale(e,t){this.model.setModelScale(e,t)}getBoundaryPoints(){return this._getModel().getBoundaryPoints()}setOpacity(e){e=CLOUD.Utils.isDefined(e)?e:1;let t=Math.min(e,1);t=Math.max(t,0),this._config.opacity=t;let i=this._getModel();i&&i.materialManager&&i.materialManager.setMaterialsOpacity(t)}setExposureCompensation(e){if(isNaN(e))return void console.warn("the exposure compensation input is not a number");if(e<-1||e>1)return void console.warn("the exposure compensation must in [-1, 1]");let t=this._getModel();t&&t.materialManager&&t.setExposureShift(e)}getExposureCompensation(){let e=this._getModel();if(e&&e.materialManager)return e.getExposureShift()}getCategory(){return this._config.category}setCategory(e){this._config.category=Object.assign({},this._config.category,e)}enableCastShadow(e){let t=this._getModel();t&&(t.setCastShadow(e),this.castShadow=e)}isCastShadowEnabled(){return this.castShadow}enableReceiveShadow(e){let t=this._getModel();t&&(t.setReceiveShadow(e),this.receiveShadow=e)}isReceiveShadowEnabled(){return this.receiveShadow}loadBusinessResources(e){if(this._businessResourcesLoaded||!this._config.disableUserData)return;this._businessResourcesLoaded=!0;const t=()=>{this._onLayerLoaded(),e&&e()};requestAnimationFrame((()=>{let e=this._getModel();e&&e.loadBusinessResources&&e.loadBusinessResources(t)}))}getObjectData(){return this.model.getObjectData()}getMaxDetailLevel(){return this.model?this.model.getMaxDetailLevel():this._config.maxDetailLevel}setMaxDetailLevel(e){this._config.maxDetailLevel=e,"point"!==this._config.featureType&&this.model&&this.model.setMaxDetailLevel(e)}setVisualRange(e){this._config.visualRange=e,this.model&&this.model.setVisualRange(e)}getVisualRange(){return this._config.visualRange}setGeometryErrorRatio(e){null!=this.model&&this.model.setDetailRatio(e)}getGeometryErrorRatio(){if(null!=this.model)return this.model.getDetailRatio()}getOpacity(){return this._config.opacity}getId(){return super.getId()}getExplosionExtent(){return 0}getModelId(){return this.customId||this.modelId}_getModel(){return this.getViewer().getViewer().getModelManager().getModel(this.getModelId())}}class Z extends T{constructor(e,t){super({id:e,name:e,typeName:e,userData:e}),this._layer=t}}class z extends Z{constructor(e){super("RoomManager",e)}}class X extends Z{constructor(e,t){super(e,t)}_executeByCondition(e,t){if(!e)return;const i=this._getDataUtil();(e=this._parseCondition(e)).all?i.assertType(t.all,"func")&&t.all():(e.objectData&&e.objectData.length>0&&i.assertType(t.objectData,"func")&&t.objectData(e.objectData),e.ids&&e.ids.length>0&&i.assertType(t.ids,"func")&&t.ids(e.ids),e.noObjectData&&e.noObjectData.length>0&&i.assertType(t.noObjectData,"func")&&t.noObjectData(e.noObjectData),e.noIds&&e.noIds.length>0&&i.assertType(t.noIds,"func")&&t.noIds(e.noIds))}_parseCondition(e){let t;const i=this._getDataUtil();if(i.assertType(e,"str"))t=this._codeToCondition(e);else if(i.assertType(e,"arr")){let o=[],n=[];e.forEach((e=>{i.assertType(e,"obj")?n.push(e):o.push(e)})),t={ids:o,objectData:n}}else i.assertType(e,"obj")&&(t=e);return t}_codeToCondition(e){let t=[],i=[],o=[],n=[];if(this._getDataUtil().assertType(e,"str")){e.split(" ").forEach((e=>{if(0===e.length)return;const s={ids:i,objectData:n};let r={ids:t,objectData:o};"!"===e[0]&&(e=/!(.*)/.exec(e)[1],r=s),(e=>{switch(e[0]){case"#":const t=/#(.*)/.exec(e)[1];r.ids.push(t);break;case"(":let i=/\((.*?)\)(.*)/.exec(e);if(i){const[e,t,o]=i;let n={};n[t]=o,r.objectData.push(n)}}})(e)}))}return{ids:t,noIds:i,objectData:o,noObjectData:n}}getBoundingBox(e){const t=this._layer.model;let i,o=[],n=!1;const s={all:()=>{n=!0},objectData:e=>{o=o.concat(t.getMatchIds(e))},ids:e=>{o=o.concat(e)}};return this._executeByCondition(e,s),i=n?this._layer.getBoundingBox():t.getBoundingBoxByIds(o),i}show(e){const t=this._layer.model,i={all:()=>t.showAllComponents(),objectData:e=>t.showComponentsByObjectData(e),ids:e=>t.showComponentsById(e),noObjectData:e=>t.hideComponentsByObjectData(e),noIds:e=>t.hideComponentsById(e)};this._executeByCondition(e,i)}hide(e){const t=this._layer.model,i={all:()=>t.hideAllComponents(),objectData:e=>t.hideComponentsByObjectData(e),ids:e=>t.hideComponentsById(e),noObjectData:e=>t.showComponentsByObjectData(e),noIds:e=>t.showComponentsById(e)};this._executeByCondition(e,i)}select(e){const t=this._layer.model,i={all:()=>t.addSelectedComponentsByObjectData([]),objectData:e=>t.addSelectedComponentsByObjectData(e),ids:e=>t.addSelectedComponentsById(e),noObjectData:e=>{},noIds:e=>t.removeSelectedId(e)};this._executeByCondition(e,i)}clearSelection(){this._layer.model.clearSelectedComponents()}clearSelected(){this.clearSelection()}overrideColor(e,t){const i=this._layer.model,o={all:()=>i.overrideComponentsColorByObjectData([],t),objectData:e=>i.overrideComponentsColorByObjectData(e,t),ids:e=>i.overrideComponentsColorById(e,t),noObjectData:e=>i.restoreComponentsColorByObjectData(e),noIds:e=>i.restoreComponentsColorById(e)};this._executeByCondition(e,o)}restoreColor(e){const t=this._layer.model,i={all:()=>t.restoreComponentsColorByObjectData([]),objectData:e=>t.restoreComponentsColorByObjectData(e),ids:e=>t.restoreComponentsColorById(e)};this._executeByCondition(e,i)}overrideFrameColor(e,t){const i=this._layer.model,o={all:()=>i.overrideComponentsFrameColorByObjectData([],t),objectData:e=>i.overrideComponentsFrameColorByObjectData(e,t),ids:e=>i.overrideComponentsFrameColorById(e,t),noObjectData:e=>i.restoreComponentsFrameColorByObjectData(e),noIds:e=>i.restoreComponentsFrameColorById(e)};this._executeByCondition(e,o)}restoreFrameColor(e){const t=this._layer.model,i={all:()=>t.restoreComponentsFrameColorByObjectData([]),objectData:e=>t.restoreComponentsFrameColorByObjectData(e),ids:e=>t.restoreComponentsFrameColorById(e)};this._executeByCondition(e,i)}blink(e,t,i,o){const n=this._layer.model;n.getCloudViewer().enableBlinkComponents(!0);const s={ids:e=>n.addBlinkComponentsById(e,{color:t,interval:i,times:o}),objectData:e=>n.addBlinkComponentsByObjectData(e,{color:t,interval:i,times:o})};this._executeByCondition(e,s)}clearAllBlinkComponents(){this._layer.model.clearAllBlinkComponents()}clearBlinkComponents(e){const t=this._layer.model,i={ids:e=>t.clearBlinkComponentsById(e),objectData:e=>t.clearBlinkComponentsByObjectData(e)};this._executeByCondition(e,i)}isolate(e){const t=this._layer.model,i={objectData:e=>t.isolateComponentsByObjectData(e),ids:e=>t.isolateComponentsById(e)};this._executeByCondition(e,i)}clearIsolation(){this._layer.model.clearIsolation()}setGlowEffectById(e,t){this._layer.model.setGlowEffectById(e,t)}removeGlowEffectById(e){this._layer.model.removeGlowEffectById(e)}clearGlowEffect(){this._layer.model.clearGlowEffect()}setStyle(e,t){const i=this._layer.model;let o=[];const n={all:()=>{o=o.concat(i.getMatchIds([]))},objectData:e=>{o=o.concat(i.getMatchIds(e))},ids:e=>{o=o.concat(e)}};this._executeByCondition(e,n);let s={color:parseInt(t.color.getHEX(),16)};const r=((e,t)=>{const o=i.getCloudViewer().domElement;e.viewportSize=new THREE.Vector2(o.offsetWidth,o.offsetHeight);let n=null;switch(t.fillType){default:case"color":n="fullFill";break;case"grid":switch(t.direction){default:case 0:case 2:n="orthogonalCrossLine";break;case 1:case 3:n="skewCrossLine"}break;case"stripe":switch(t.direction){default:case 0:n="horizontalLine";break;case 1:n="rightDiagonalLine";break;case 2:n="verticalLine";break;case 3:n="leftDiagonalLine"}}return n})(s,t);s.fillMap=CLOUD.MaterialUtil.loadFillMap(r,2);const a=CLOUD.MaterialUtil.createStandardMaterial(s,!1);a.name=`${t.color.getRGB()}${t.fillType}${t.direction}${t.width}`,i.overrideComponentsMaterialById(o,a)}restoreStyle(e){const t=this._layer.model;let i=[];const o={all:()=>{i=i.concat(t.getMatchIds([]))},objectData:e=>{i=i.concat(t.getMatchIds(e))},ids:e=>{i=i.concat(e)}};this._executeByCondition(e,o),t.restoreComponentsMaterialById(i)}getObjectDataById(e){if(this._layer&&"loaded"===this._layer.loadStatus)return this._layer.model.getObjectDataById(e)}}class _ extends X{constructor(e){super("ComponentManager",e)}isolate(e,t){const i=this._layer.model,o={ids:this._getDataUtil().assertType(e.ids,"arr")?[...e.ids]:[],objectData:this._getDataUtil().assertType(e.objectData,"arr")&&e.objectData.length>0?[...e.objectData]:void 0,all:e.all};o.objectData&&(o.ids=o.ids.concat(i.getMatchIds(o.objectData)));const n={all:()=>i.clearIsolation(),ids:e=>i.isolateComponentsById(e,t)};this._executeByCondition(o,n)}clearIsolation(){this.isolate({all:!0})}overrideOpacity(e,t){const i=this._layer.model,o={all:()=>i.overrideComponentsOpacityByObjectData([],t),objectData:e=>i.overrideComponentsOpacityByObjectData(e,t),ids:e=>i.overrideComponentsOpacityById(e,t),noObjectData:e=>i.overrideComponentsOpacityByObjectData(e,1),noIds:e=>i.overrideComponentsOpacityById(e,1)};this._executeByCondition(e,o)}restoreOpacity(e){const t=this._layer.model,i={all:()=>t.restoreComponentsOpacityByObjectData([]),objectData:e=>t.restoreComponentsOpacityByObjectData(e),ids:e=>t.restoreComponentsOpacityById(e)};this._executeByCondition(e,i)}transparent(e){const t=this._layer.model;t.opaqueAllComponents();const i={all:()=>t.transparentComponentsByObjectData([]),objectData:e=>t.transparentComponentsByObjectData(e),ids:e=>t.transparentComponentsById(e),noObjectData:e=>t.opaqueComponentsByObjectData(e),noIds:e=>t.opaqueComponentsById(e)};this._executeByCondition(e,i)}deactivate(e){const t=this._layer.model;t.activateAllComponents();const i={all:()=>t.deactivateComponentsByObjectData([]),ids:e=>t.deactivateComponentsById(e),objectData:e=>t.deactivateComponentsByObjectData(e)};this._executeByCondition(e,i)}setFrameVisibility(e){this.wireFrameVisibilityOption=e}getFrameVisibility(){return this.wireFrameVisibilityOption}overrideFrameColor(e,t){const i=this._layer.model,o={all:()=>i.overrideComponentsFrameColorByObjectData([],t),objectData:e=>i.overrideComponentsFrameColorByObjectData(e,t),ids:e=>i.overrideComponentsFrameColorById(e,t),noObjectData:e=>i.restoreComponentsFrameColorByObjectData(e),noIds:e=>i.restoreComponentsFrameColorById(e)};this._executeByCondition(e,o)}restoreFrameColor(e){const t=this._layer.model,i={all:()=>t.restoreComponentsFrameColorByObjectData([]),objectData:e=>t.restoreComponentsFrameColorByObjectData(e),ids:e=>t.restoreComponentsFrameColorById(e)};this._executeByCondition(e,i)}splitComponentByStretchedPlane(e,t){return this._layer.model.splitComponentByStretchedPlane(e,t)}splitComponentByPlane(e,t){return this._layer.model.splitComponentByPlane(e,t)}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.ElementManager").ComponentManager=_;class ${constructor(e){this.model=e.model,this.metaDataManager=this.model&&this.model._getMetaDataManager()}getCoordinateSystem(e){this.metaDataManager||layer.model._getMetaDataManager(),this.metaDataManager&&this.metaDataManager.getModelInfo((t=>{t.coordinateSystem&&e(t.coordinateSystem),t.coordinateSystems&&e(t.coordinateSystems)}),(t=>{e(t)}))}getManifest(e){this.metaDataManager||layer.model._getMetaDataManager(),this.metaDataManager&&this.metaDataManager.getManifest((t=>{e(t)}),(t=>{e(t)}))}getFloors(e){this.metaDataManager||layer.model._getMetaDataManager(),this.metaDataManager&&this.metaDataManager.getFloors((t=>{e(t)}),(t=>{e(t)}))}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface").DataManager=$;const ee=e.Bimface.Data.StatisticsDataManager.getInstance();class te extends J{constructor(e){ee.send("Glodon.Bimface.Layer.BIMLayer","bf_c_bimLayer_new"),e.typeName="BIMLayer",e.castShadow=!!CLOUD.Utils.isDefined(e.castShadow)&&e.castShadow,e.receiveShadow=!CLOUD.Utils.isDefined(e.receiveShadow)||e.receiveShadow,super(e)}init(){super.init(),this.elementManager.componentManager=new _(this),this.elementManager.roomManager=new z(this),this.getComponentManager=()=>this.elementManager.componentManager,this.getRoomManager=()=>this.elementManager.roomManager,this.dataManager=new $(this),this.getDataManager=()=>this.dataManager}getFloors(e){this.getDataManager().getFloors(e)}getFloorExplosionList(){return this.getViewer().getViewer().getFloorExplosionList(this.modelId)}getFloorExplosionDirection(){return this.getViewer().getViewer().getFloorExplosionDirection(this.modelId)}getFloorExplosionExtent(){return this.getViewer().getViewer().getFloorExplosionExtent(this.modelId)}setFloorExplosion(e,t,i){this.model.setFloorExplosion(e,t,i)}clearFloorExplosion(){this.model.clearFloorExplosion()}setWireframeVisible(e){this.presetWireFrameVisible=e,this._setWireframeVisibleByViewer(e)}_setWireframeVisibleByViewer(e){let t=this.getViewer().getViewer().getModelManager().getModel(this.modelId);t&&t.materialManager&&t.setBorderLineVisible(e)}isWireframeVisible(){let e=this.getViewer().getViewer().getModelManager().getModel(this.modelId);if(e&&e.materialManager)return e.isBorderLineVisible()}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").BIMLayer=te;class ie extends X{constructor(e,t){super(e,t)}getFeatureTypeName(){return this.typeName}getObjectDataById(e){return super.getObjectDataById(e)}setGlowEffectById(e,t){super.setGlowEffectById(e,t)}removeGlowEffectById(e){super.removeGlowEffectById(e)}clearGlowEffect(){super.clearGlowEffect()}}class oe extends ie{constructor(e){super("PolygonFeatureManager",e)}setOutlineStyle(e,t){const i=this._layer.lineModel;if(!i||!i.loaded)return void console.warn("No outline or not loaded");const o={all:()=>i.setStyleByObjectData([],t),objectData:e=>i.setStyleByObjectData(e,t),ids:e=>i.setStyleByIds(e,t)};this._executeByCondition(e,o)}restoreOutlineStyle(e){const t=this._layer.lineModel;if(!t||!t.loaded)return void console.warn("No outline");const i={all:()=>t.restoreStyleByObjectData([]),objectData:e=>t.restoreStyleByObjectData(e),ids:e=>t.restoreStyleByIds(e)};this._executeByCondition(e,i)}getArea(e){if(void 0===e)return;const t=this._layer.lineModel;if(t&&t.loaded)return t.getAreaById(e);console.warn("No outline or not loaded")}setStyle(e,t){super.setStyle(e,t)}restoreStyle(e){super.restoreStyle(e)}setOutlineVisible(e){const t=this._layer.lineModel;t&&t.loaded&&t.setOutlineVisible(e)}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.ElementManager").PolygonFeatureManager=oe;class ne extends ie{constructor(e){super("LineFeatureManager",e)}show(e){return super.show(e)}hide(e){return super.hide(e)}overrideColor(e,t){return super.overrideColor(e,t)}restoreColor(e){return super.restoreColor(e)}overrideFrameColor(e,t){return super.overrideFrameColor(e,t)}restoreFrameColor(e){return super.restoreFrameColor(e)}blink(e,t,i,o){super.blink(e,t,i,o)}clearAllBlinkComponents(){super.clearAllBlinkComponents()}clearBlinkComponents(e){super.clearBlinkComponents(e)}getBoundingBox(e){return super.getBoundingBox(e)}select(e){return super.select(e)}clearSelectedFeatures(){return super.clearSelected()}}class se extends ie{constructor(e){super("PointFeatureManager",e)}show(e){return super.show(e)}hide(e){return super.hide(e)}getIds(e){const t=this._layer.model;if(!t)return;let i=[];const o={all:()=>i=t.points.map((e=>e.id)),objectData:e=>i=t.getMatchIds(e)};return this._executeByCondition(e,o),i}getPosition(e){return this._layer.model.getPositionById(e)}getProperty(e){return this._layer.model.getPropertiesById(e)}setStyle(e,t){const i=this._layer.model,o={all:()=>i.setStyleByObjectData([],t),objectData:e=>i.setStyleByObjectData(e,t),ids:e=>i.setStyleById(e,t)};this._executeByCondition(e,o)}}var re=e.Bimface.Data.StatisticsDataManager.getInstance();class ae extends J{constructor(e){re.send("Glodon.Bimface.Layer.FeatureLayer","bf_c_featureLayer_new"),e.typeName="FeatureLayer",e.castShadow=!!CLOUD.Utils.isDefined(e.castShadow)&&e.castShadow,e.receiveShadow=!CLOUD.Utils.isDefined(e.receiveShadow)||e.receiveShadow,super(e)}init(){super.init(),this.elementManager.polygonFeatureManager=new oe(this),this.getPolygonFeatureManager=()=>this.elementManager.polygonFeatureManager,this.elementManager.lineFeatureManager=new ne(this),this.getLineFeatureManager=()=>this.elementManager.lineFeatureManager,this.elementManager.pointFeatureManager=new se(this),this.getPointFeatureManager=()=>this.elementManager.pointFeatureManager,this.dataManager=new $(this),this.getDataManager=()=>this.dataManager}getLegend(e,t){if(!this.model)return;this.model._getMetaDataManager().getFeatureStyle(e,t)}initSetting(){super.initSetting();const t=this._config.style;if(t&&CLOUD.Utils.isDefined(t.color)){let i=new e.Web.Graphics.Color(t.color);CLOUD.Utils.isDefined(t.opacity)&&(i.alpha=t.opacity),this.getPolygonFeatureManager().overrideColor({all:!0},i)}}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").FeatureLayer=ae;class le extends J{constructor(t){e.Bimface.Data.StatisticsDataManager.getInstance().send("Glodon.Bimface.Layer.TilesetLayer","bf_c_tilesetLayer_new"),t.typeName="TilesetLayer",t.castShadow=!!CLOUD.Utils.isDefined(t.castShadow)&&t.castShadow,t.receiveShadow=!CLOUD.Utils.isDefined(t.receiveShadow)||t.receiveShadow,super(t)}init(){super.init(),this.dataManager=new $(this),this.getDataManager=()=>this.dataManager}isVisible(){return this.isVisible}getOpacity(){return this._config.opacity}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").TilesetLayer=le;e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").ExternalObjectLayer=class extends G{constructor(t={}){e.Bimface.Data.StatisticsDataManager.getInstance().send("Bimface.Layer.ExternalObjectLayer","bf_c_extObjLayer_new"),t.name=t.name||"外部构件",t.typeName="ExternalObjectLayer",t.priority=t.priority||5,null==t.isVisible&&(t.isVisible=!0),super(t)}_createExternalObjectManager(){var t=this;t._externalObjectManager=new e.Bimface.ElementManager.ExternalObjectManager(t.getViewer(),t.getId())}_hasObjectId(e){return null!=this._externalObjectManager&&-1!==this._externalObjectManager.getAllObjectIds().indexOf(e)}getModelId(){return"ExternalComponent"}getId(){return this.id}getExternalObjectManager(){var e=this;return null==e._externalObjectManager&&null!=e.getViewer()&&(e._createExternalObjectManager(),e.isVisible?e.show():e.hide()),e._externalObjectManager}hide(){const e={ids:this.getExternalObjectManager().getAllObjectIds()};this.getExternalObjectManager().hide(e)}show(){const e={ids:this.getExternalObjectManager().getAllObjectIds()};this.getExternalObjectManager().show(e)}};class he{constructor(t,i,o){this.viewer3D=t,this.worldPosition=!0===o?null:i,this.clientPosition=!0===o?i:null,this.svgElement=null,this.xmlns="http://www.w3.org/2000/svg",this.glodonColor="#11DAB7",this.gridHighlightColor="#FF7F00",this.observer=function(){},this.entityType="EntityPreviewPoint",this.id=e.Web.Lang.Utility.UUID.createUUID(),this.state="Finished",this.index=0,this.attachLine=null,this.worldHeight=this.worldPosition.z,this.initialize()}initialize(){this.worldPosition?this.clientPosition=this.viewer3D.worldToClient(this.worldPosition):this.worldPosition=this.viewer3D.clientToWorld(this.clientPosition);let e=document.createElementNS(this.xmlns,"circle");e.setAttribute("r",5),e.setAttribute("style","stroke: "+this.glodonColor+"; stroke-width: 1; fill: #ffffff"),e.setAttribute("transform","translate("+this.clientPosition.x+","+this.clientPosition.y+")"),this.svgElement=e,this.originPosition=this.clientPosition,this.originWorldPosition=this.worldPosition,this.lastWorldPosition=this.worldPosition}setObserver(e){this.observer=e}setAttachLine(e,t){this.attachLine=e,this.index=t}cancled(){this.state="Finished",this.clientPosition=this.originPosition,this.worldPosition=this.originWorldPosition,this.unSelected(),this.update(!0)}finished(e){this.state="Finished",this.originPosition=this.clientPosition,this.unSelected()}processing(t,i){if(this.state="Processing",i)this.worldPosition=t;else{let i=this.viewer3D.getViewer().pickToPoint(t,5);null!=i?"Line"===i.type&&(i.pickLine instanceof e.Bimface.Plugins.Geometry.SplineCurve||i.pickLine instanceof e.Bimface.Plugins.Entity.PreviewLine)?(this.worldPosition=i.pickPoint,this.worldPosition.z=this.worldHeight):(this.worldPosition=this.viewer3D.sceneToWorld(i.pickPoint),this.worldPosition.z=this.worldHeight):(this.worldPosition=this.viewer3D.sceneToWorld(t),this.worldPosition.z=this.worldHeight)}this.update(!0)}hightlight(){this.svgElement.style.stroke=this.gridHighlightColor}cancelHightlight(){this.svgElement.style.stroke=this.glodonColor}show(){this.svgElement.style.display="block"}hide(){this.svgElement.style.display="none"}selected(){this.svgElement.setAttribute("r",10),this.cancelHightlight()}unSelected(){this.svgElement.setAttribute("r",5)}distanceTo(e){let t=e.x-this.clientPosition.x,i=e.y-this.clientPosition.y;return Math.sqrt(t*t+i*i)}detach(){this.svgElement.parentNode.removeChild(this.svgElement)}update(e){this.clientPosition=this.viewer3D.worldToClient(this.worldPosition),this.svgElement.setAttribute("transform","translate("+this.clientPosition.x+","+this.clientPosition.y+")"),this.attachLine.updatePoint(this)}isEqualWith(e){return e.id==this.id}getWorldPosition(){let e=this.worldPosition;return[e.x,e.y,e.z]}getClientPosition(){return new THREE.Vector2(this.clientPosition.x,this.clientPosition.y)}setClientPosition(e){this.clientPosition.x=e.x,this.clientPosition.y=e.y}getSvgElement(){return this.svgElement}clear(){this.detach()}delete(){this.attachLine.deletePoint(this),this.detach()}}class ce extends f.MeshLine{constructor(t,i,o,n,s){super(),this.entityType="EntityPreviewLine",this.points=void 0!==t?t:[],this.color=void 0!==i?i:new e.Web.Graphics.Color("#32D3A6"),this.width=void 0!==o?o:1,this.style=void 0!==n?n:{lineType:"Continuous",lineStyle:null},this.curveType=void 0!==s?s:"spline",this.divisions=100,this.curve=null,this.points.length>2&&(this.createCurve(),this.startPoint=this.points[0],this.endPoint=this.points[this.points.length-1]),this.material.linewidth=this.width,this.material.resolution=new THREE.Vector2(window.innerWidth,window.innerHeight),this.previewPoints=new Map,this.highlightColor="#FF7F00",this._viewer=null}createFromEntity(e){e&&(this.points=e.getPoints(),this.color=e.color,this.width=e.width,this.curveType=e.type,this.id,e.id,this.createCurve(),this.startPoint=this.points[0],this.endPoint=this.points[this.points.length-1],this.material.linewidth=this.width,this._viewer=e.viewer)}setColor(t){!t instanceof e.Web.Graphics.Color?console.log("ERROR: color is not instance of Glodon.Web.Graphics.Color"):(this.color=t,this.material.color.setRGB(t.red/255,t.green/255,t.blue/255),this.material.opacity=t.alpha,t.alpha<1||this.material.map?this.material.transparent=!0:this.material.transparent=!1,this.renderOrder=f.GlobalData.IncrementRender?100:-1)}hightlight(){let t=new e.Web.Graphics.Color(this.highlightColor,1);this.material.color.setRGB(t.red/255,t.green/255,t.blue/255)}cancelHightlight(){this.material.color.setRGB(this.color.red/255,this.color.green/255,this.color.blue/255)}setPreviewPoint(e){null!=e.index&&null!=e.id&&this.previewPoints.set(e.id,e.index)}finished(e){}cancled(){}processing(e){}deletePoint(e){let t=this.previewPoints.get(e.id);this.points.splice(t,1),this.previewPoints.delete(e.id),this.updateIndexInPreviewPoints(t,!0)}addPoint(e){if(this._viewer){let t=new he(this._viewer,e),i=this.insertPointIndex(e);return i>=0?(this.updateIndexInPreviewPoints(i,!1),t.setAttachLine(this,i),t):null}return null}insertPointIndex(e){let t=this.positionPoints.length,i=new THREE.Box2,o=new THREE.Vector2(e.x,e.y),n=-1;for(let s=0;s<t-1;s++){let t=new THREE.Vector2(this.positionPoints[s].x,this.positionPoints[s].y),r=new THREE.Vector2(this.positionPoints[s+1].x,this.positionPoints[s+1].y);if("polyline"===this.curveType){if(this.pointOnSegment(o,t,r)){for(let t=0;t<this.ctlPointIndexInPosition.length;t++){let i=this.ctlPointIndexInPosition[t];if(s<=i.pos){this.points.splice(i.index,0,e),n=i.index;break}}break}}else if(i.makeEmpty(),i.expandByPoint(t),i.expandByPoint(r),i.containsPoint(o)){for(let t=0;t<this.ctlPointIndexInPosition.length;t++){let i=this.ctlPointIndexInPosition[t];if(s<=i.pos){this.points.splice(i.index,0,e),n=i.index;break}}break}}return i=null,n}pointOnSegment(e,t,i){return!!(f.Math.equalsEpsilon((e.x-t.x)*(i.y-t.y),(i.x-t.x)*(e.y-t.y),.1)&&f.Math.lessThanOrEquals(Math.min(t.x,i.x),e.x,.1)&&f.Math.lessThanOrEquals(e.x,Math.max(t.x,i.x),.1)&&f.Math.lessThanOrEquals(Math.min(t.y,i.y),e.y,.1)&&f.Math.lessThanOrEquals(e.y,Math.max(t.y,i.y),.1))}checkPointContains(e,t,i){return!!(f.Math.lessThanOrEquals(Math.min(t.x,i.x),e.x,.1)&&f.Math.lessThanOrEquals(e.x,Math.max(t.x,i.x),.1)&&f.Math.lessThanOrEquals(Math.min(t.y,i.y),e.y,.1)&&f.Math.lessThanOrEquals(e.y,Math.max(t.y,i.y),.1))}updateIndexInPreviewPoints(e,t){this.previewPoints.forEach(((i,o)=>{i>=e&&(t?(i-=1)<=0&&(i=0):i+=1)}))}updatePoint(e){this.points[e.index]=e.worldPosition,this.updateGeo()}createCurve(){var e=this.points;if(e.length<2)return;for(var t=[],i=0,o=e.length;i<o;i++)t.push(new THREE.Vector3(e[i].x,e[i].y,e[i].z));this.curve=new THREE.CatmullRomCurve3(t),this.curve.tension="polyline"==this.curveType?0:.5,this.curve.curveType="catmullrom";let n=10*e.length,s=[];this.positionPoints=[],this.ctlPointIndexInPosition=[];let r=new Map,a=new THREE.Box2,l=this.curve.getPoints(n),h=-1;for(let e=0;e<this.points.length-1;e++){let t=new THREE.Vector2(this.points[e].x,this.points[e].y),i=new THREE.Vector2(this.points[e+1].x,this.points[e+1].y);h=-1,a.makeEmpty(),a.expandByPoint(t),a.expandByPoint(i);for(let o=0;o<l.length;o++){if(0===e&&(s.push(l[o].x,l[o].y,l[o].z),this.positionPoints.push(l[o])),null!=r.get(o))continue;let n=new THREE.Vector2(l[o].x,l[o].y);"polyline"===this.curveType?this.checkPointContains(n,t,i)&&(r.set(o,""),h=o):a.containsPoint(n)&&(r.set(o,""),h=o)}-1!=h&&this.ctlPointIndexInPosition.push({pos:h,index:e+1})}a=null,r=null,this.geometry.setPositions(s),this.material.totalSize=this.geometry.totalSize,this.setColor(this.color)}updateGeo(){this.geometry.dispose(),this.material.dispose(),this.curve=null,this.createCurve()}dispose(){this.geometry.dispose(),this.material.dispose(),this.points=[],this.curve=null,this.geometry=null,this.material=null,this.color=null,this.width=null,this.style=null,this.startPoint=null,this.endPoint=null}clear(){this.dispose()}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Entity").PreviewLine=ce;var de=function(e,t,i){void 0===t&&(console.warn('THREE.TransformControls: The second parameter "domElement" is now mandatory.'),t=document);let o=e,n=i.getViewer().getScene();this.sceneMatrix=(new THREE.Matrix4).getInverse(n.getMatrixGlobal()),this.viewer=i,THREE.Object3D.call(this),this.visible=!1,this.domElement=t;var s=new ge;this.add(s);var r=new ue;this.add(r);var a=this;Y("camera",o),Y("object",void 0),Y("enabled",!0),Y("axis",null),Y("mode","translate"),Y("translationSnap",null),Y("rotationSnap",null),Y("scaleSnap",null),Y("space","world"),Y("size",1),Y("dragging",!1),Y("showX",!0),Y("showY",!0),Y("showZ",!0);var l={type:"change"},h={type:"mouseDown"},c={type:"mouseUp",mode:a.mode},d={type:"objectChange"},g=new THREE.Raycaster;function u(e,t,i){for(var o=t.intersectObject(e,!0),n=0;n<o.length;n++)if(o[n].object.visible||i)return o[n];return!1}var p=new THREE.Vector3,A=new THREE.Vector3,m=new THREE.Quaternion,w={X:new THREE.Vector3(1,0,0),Y:new THREE.Vector3(0,1,0),Z:new THREE.Vector3(0,0,1)},C=new THREE.Vector3,f=new THREE.Vector3,E=new THREE.Vector3,B=new THREE.Vector3,I=new THREE.Vector3,y=new THREE.Vector3,S=0,M=new THREE.Vector3,v=new THREE.Quaternion,x=new THREE.Vector3,b=new THREE.Vector3,U=new THREE.Quaternion,D=new THREE.Quaternion,R=new THREE.Vector3,V=new THREE.Vector3,Q=new THREE.Quaternion,k=new THREE.Vector3,F=new THREE.Vector3,T=new THREE.Quaternion,P=new THREE.Quaternion,L=new THREE.Vector3,K=new THREE.Vector3,G=new THREE.Vector3,q=new THREE.Quaternion,H=new THREE.Vector3;function Y(e,t){var i=t;Object.defineProperty(a,e,{get:function(){return void 0!==i?i:t},set:function(t){i!==t&&(i=t,r[e]=t,s[e]=t,a.dispatchEvent({type:e+"-changed",value:t}),a.dispatchEvent(l))}}),a[e]=t,r[e]=t,s[e]=t}function j(e){if(a.domElement.ownerDocument.pointerLockElement)return{x:0,y:0,button:e.button};var i=e.changedTouches?e.changedTouches[0]:e,o=t.getBoundingClientRect();return{x:(i.clientX-o.left)/o.width*2-1,y:-(i.clientY-o.top)/o.height*2+1,button:e.button}}function N(e){if(a.enabled)switch(e.pointerType){case"mouse":case"pen":a.pointerHover(j(e))}}function W(e){a.enabled&&(a.domElement.style.touchAction="none",a.domElement.ownerDocument.addEventListener("pointermove",O),a.pointerHover(j(e)),a.pointerDown(j(e)))}function O(e){a.enabled&&a.pointerMove(j(e))}function J(e){a.enabled&&(a.domElement.style.touchAction="",a.domElement.ownerDocument.removeEventListener("pointermove",O),a.pointerUp(j(e)))}Y("worldPosition",F),Y("worldPositionStart",V),Y("worldQuaternion",T),Y("worldQuaternionStart",Q),Y("cameraPosition",M),Y("cameraQuaternion",v),Y("pointStart",C),Y("pointEnd",f),Y("rotationAxis",B),Y("rotationAngle",S),Y("eye",K),t.addEventListener("pointerdown",W),t.addEventListener("pointermove",N),a.domElement.ownerDocument.addEventListener("pointerup",J),this.dispose=function(){t.removeEventListener("pointerdown",W),t.removeEventListener("pointermove",N),a.domElement.ownerDocument.removeEventListener("pointermove",O),a.domElement.ownerDocument.removeEventListener("pointerup",J),this.traverse((function(e){e.geometry&&e.geometry.dispose(),e.material&&e.material.dispose()}))},this.attach=function(e){return this.object=e,this.visible=!1,this.updateMatrixWorld(),this},this.detach=function(){return this.object=void 0,this.visible=!1,this.axis=null,this},this.updateMatrixWorld=function(){void 0!==this.object&&(this.object.updateMatrixWorld(),null===this.object.parent?console.error("TransformControls: The attached 3D object must be a part of the scene graph."):this.object.parent.matrix.decompose(b,U,R),this.object.matrix.decompose(F,T,L),D.copy(U).inverse(),P.copy(T).inverse()),this.camera.matrixWorld.multiply(this.sceneMatrix),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(M,v,x),K.copy(M).sub(F).normalize(),THREE.Object3D.prototype.updateMatrixWorld.call(this)},this.pointerHover=function(e){void 0!==this.object&&!0!==this.dragging&&(this.axis="XYZ")},this.setRay=function(e,t){t instanceof CLOUD.CombinedCamera?t.isPerspective?(g.ray.origin.copy(t.position),g.ray.direction.set(e.x,e.y,.5).unproject(t).sub(t.position).normalize()):(g.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t),g.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld)):t instanceof THREE.PerspectiveCamera?(g.ray.origin.copy(t.position),g.ray.direction.set(e.x,e.y,.5).unproject(t).sub(t.position).normalize()):t instanceof THREE.OrthographicCamera?(g.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t),g.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld)):console.error("CLOUD.Raycaster: Unsupported camera type.")},this.pointerDown=function(e){if(void 0!==this.object&&!0!==this.dragging&&0===e.button&&null!==this.axis){this.setRay(e,this.camera);var t=u(r,g,!0);if(t){var i=this.space;if("scale"===this.mode?i="local":"E"!==this.axis&&"XYZE"!==this.axis&&"XYZ"!==this.axis||(i="world"),"local"===i&&"rotate"===this.mode){var o=this.rotationSnap;"X"===this.axis&&o&&(this.object.rotation.x=Math.round(this.object.rotation.x/o)*o),"Y"===this.axis&&o&&(this.object.rotation.y=Math.round(this.object.rotation.y/o)*o),"Z"===this.axis&&o&&(this.object.rotation.z=Math.round(this.object.rotation.z/o)*o)}this.object.updateMatrixWorld(),this.object.parent.updateMatrixWorld(),G.copy(this.object.position),q.copy(this.object.quaternion),H.copy(this.object.scale),this.object.matrix.decompose(V,Q,k),C.copy(t.point).sub(V)}this.dragging=!0,h.mode=this.mode,this.dispatchEvent(h)}},this.pointerMove=function(e){var t=this.axis,i=this.mode,o=this.object,n=this.space;if("scale"===i?n="local":"E"!==t&&"XYZE"!==t&&"XYZ"!==t||(n="world"),void 0!==o&&null!==t&&!1!==this.dragging&&-1===e.button){this.setRay(e,this.camera);var s=u(r,g,!0);if(s){if(f.copy(s.point).sub(V),"translate"===i)E.copy(f).sub(C),"local"===n&&"XYZ"!==t&&E.applyQuaternion(P),-1===t.indexOf("X")&&(E.x=0),-1===t.indexOf("Y")&&(E.y=0),-1===t.indexOf("Z")&&(E.z=0),"local"===n&&"XYZ"!==t?E.applyQuaternion(q).divide(R):E.applyQuaternion(D).divide(R),o.position.copy(E).add(G),this.translationSnap&&("local"===n&&(o.position.applyQuaternion(m.copy(q).inverse()),-1!==t.search("X")&&(o.position.x=Math.round(o.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(o.position.y=Math.round(o.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(o.position.z=Math.round(o.position.z/this.translationSnap)*this.translationSnap),o.position.applyQuaternion(q)),"world"===n&&(o.parent&&o.position.add(p.setFromMatrixPosition(o.parent.matrixWorld)),-1!==t.search("X")&&(o.position.x=Math.round(o.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(o.position.y=Math.round(o.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(o.position.z=Math.round(o.position.z/this.translationSnap)*this.translationSnap),o.parent&&o.position.sub(p.setFromMatrixPosition(o.parent.matrixWorld))));else if("scale"===i){if(-1!==t.search("XYZ")){var a=f.length()/C.length();f.dot(C)<0&&(a*=-1),A.set(a,a,a)}else p.copy(C),A.copy(f),p.applyQuaternion(P),A.applyQuaternion(P),A.divide(p),-1===t.search("X")&&(A.x=1),-1===t.search("Y")&&(A.y=1),-1===t.search("Z")&&(A.z=1);o.scale.copy(H).multiply(A),this.scaleSnap&&(-1!==t.search("X")&&(o.scale.x=Math.round(o.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Y")&&(o.scale.y=Math.round(o.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Z")&&(o.scale.z=Math.round(o.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if("rotate"===i){E.copy(f).sub(C);var h=20/F.distanceTo(p.setFromMatrixPosition(this.camera.matrixWorld));"E"===t?(B.copy(K),S=f.angleTo(C),I.copy(C).normalize(),y.copy(f).normalize(),S*=y.cross(I).dot(K)<0?1:-1):"XYZE"===t?(B.copy(E).cross(K).normalize(),S=E.dot(p.copy(B).cross(this.eye))*h):"X"!==t&&"Y"!==t&&"Z"!==t||(B.copy(w[t]),p.copy(w[t]),"local"===n&&p.applyQuaternion(T),S=E.dot(p.cross(K).normalize())*h),this.rotationSnap&&(S=Math.round(S/this.rotationSnap)*this.rotationSnap),this.rotationAngle=S,"local"===n&&"E"!==t&&"XYZE"!==t?(o.quaternion.copy(q),o.quaternion.multiply(m.setFromAxisAngle(B,S)).normalize()):(B.applyQuaternion(D),o.quaternion.copy(m.setFromAxisAngle(B,S)),o.quaternion.multiply(q).normalize())}this.dispatchEvent(l),this.dispatchEvent(d)}}},this.pointerUp=function(e){0===e.button&&(this.dragging&&null!==this.axis&&(c.mode=this.mode,this.dispatchEvent(c)),this.dragging=!1,this.axis=null)},this.getMode=function(){return a.mode},this.setMode=function(e){a.mode=e},this.setTranslationSnap=function(e){a.translationSnap=e},this.setRotationSnap=function(e){a.rotationSnap=e},this.setScaleSnap=function(e){a.scaleSnap=e},this.setSize=function(e){a.size=e},this.setSpace=function(e){a.space=e},this.update=function(){console.warn("THREE.TransformControls: update function has no more functionality and therefore has been deprecated.")}};de.prototype=Object.assign(Object.create(THREE.Object3D.prototype),{constructor:de,isTransformControls:!0});var ge=function(){THREE.Object3D.call(this),this.type="TransformControlsGizmo";var e=new THREE.MeshBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,side:THREE.DoubleSide,fog:!1,toneMapped:!1}),t=new THREE.LineBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,linewidth:1,fog:!1,toneMapped:!1}),i=e.clone();i.opacity=.15;var o=e.clone();o.opacity=.33;var n=e.clone();n.color.set(16711680);var s=e.clone();s.color.set(65280);var r=e.clone();r.color.set(255);var a=e.clone();a.opacity=.25;var l=a.clone();l.color.set(16776960);var h=a.clone();h.color.set(65535);var c=a.clone();c.color.set(16711935),e.clone().color.set(16776960);var d=t.clone();d.color.set(16711680);var g=t.clone();g.color.set(65280);var u=t.clone();u.color.set(255);var p=t.clone();p.color.set(65535);var A=t.clone();A.color.set(16711935);var m=t.clone();m.color.set(16776960);var w=t.clone();w.color.set(7895160);var C=m.clone();C.opacity=.25;var f=new THREE.CylinderGeometry(0,.05,.2,12,1,!1),E=new THREE.BoxGeometry(.125,.125,.125),B=new THREE.BufferGeometry;B.addAttribute("position",new THREE.Float32BufferAttribute([0,0,0,1,0,0],3));var I,y=function(e,t){for(var i=new THREE.BufferGeometry,o=[],n=0;n<=64*t;++n)o.push(0,Math.cos(n/32*Math.PI)*e,Math.sin(n/32*Math.PI)*e);return i.addAttribute("position",new THREE.Float32BufferAttribute(o,3)),i},S={X:[[new THREE.Mesh(f,n),[1,0,0],[0,0,-Math.PI/2],null,"fwd"],[new THREE.Mesh(f,n),[1,0,0],[0,0,Math.PI/2],null,"bwd"],[new THREE.Line(B,d)]],Y:[[new THREE.Mesh(f,s),[0,1,0],null,null,"fwd"],[new THREE.Mesh(f,s),[0,1,0],[Math.PI,0,0],null,"bwd"],[new THREE.Line(B,g),null,[0,0,Math.PI/2]]],Z:[[new THREE.Mesh(f,r),[0,0,1],[Math.PI/2,0,0],null,"fwd"],[new THREE.Mesh(f,r),[0,0,1],[-Math.PI/2,0,0],null,"bwd"],[new THREE.Line(B,u),null,[0,-Math.PI/2,0]]],XYZ:[[new THREE.Mesh(new THREE.OctahedronGeometry(.1,0),a.clone()),[0,0,0],[0,0,0]]],XY:[[new THREE.Mesh(new THREE.PlaneGeometry(.295,.295),l.clone()),[.15,.15,0]],[new THREE.Line(B,m),[.18,.3,0],null,[.125,1,1]],[new THREE.Line(B,m),[.3,.18,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new THREE.Mesh(new THREE.PlaneGeometry(.295,.295),h.clone()),[0,.15,.15],[0,Math.PI/2,0]],[new THREE.Line(B,p),[0,.18,.3],[0,0,Math.PI/2],[.125,1,1]],[new THREE.Line(B,p),[0,.3,.18],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new THREE.Mesh(new THREE.PlaneGeometry(.295,.295),c.clone()),[.15,0,.15],[-Math.PI/2,0,0]],[new THREE.Line(B,A),[.18,0,.3],null,[.125,1,1]],[new THREE.Line(B,A),[.3,0,.18],[0,-Math.PI/2,0],[.125,1,1]]]},M={X:[[new THREE.Mesh(new THREE.CylinderGeometry(.2,0,1,4,1,!1),i),[.6,0,0],[0,0,-Math.PI/2]]],Y:[[new THREE.Mesh(new THREE.CylinderGeometry(.2,0,1,4,1,!1),i),[0,.6,0]]],Z:[[new THREE.Mesh(new THREE.CylinderGeometry(.2,0,1,4,1,!1),i),[0,0,.6],[Math.PI/2,0,0]]],XYZ:[[new THREE.Mesh(new THREE.OctahedronGeometry(.2,0),i)]],XY:[[new THREE.Mesh(new THREE.PlaneGeometry(.4,.4),i),[.2,.2,0]]],YZ:[[new THREE.Mesh(new THREE.PlaneGeometry(.4,.4),i),[0,.2,.2],[0,Math.PI/2,0]]],XZ:[[new THREE.Mesh(new THREE.PlaneGeometry(.4,.4),i),[.2,0,.2],[-Math.PI/2,0,0]]]},v={START:[[new THREE.Mesh(new THREE.OctahedronGeometry(.01,2),o),null,null,null,"helper"]],END:[[new THREE.Mesh(new THREE.OctahedronGeometry(.01,2),o),null,null,null,"helper"]],DELTA:[[new THREE.Line((I=new THREE.BufferGeometry,I.addAttribute("position",new THREE.Float32BufferAttribute([0,0,0,1,1,1],3)),I),o),null,null,null,"helper"]],X:[[new THREE.Line(B,o.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new THREE.Line(B,o.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new THREE.Line(B,o.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},x={X:[[new THREE.Line(y(1,.5),d)],[new THREE.Mesh(new THREE.OctahedronGeometry(.04,0),n),[0,0,.99],null,[1,3,1]]],Y:[[new THREE.Line(y(1,.5),g),null,[0,0,-Math.PI/2]],[new THREE.Mesh(new THREE.OctahedronGeometry(.04,0),s),[0,0,.99],null,[3,1,1]]],Z:[[new THREE.Line(y(1,.5),u),null,[0,Math.PI/2,0]],[new THREE.Mesh(new THREE.OctahedronGeometry(.04,0),r),[.99,0,0],null,[1,3,1]]],E:[[new THREE.Line(y(1.25,1),C),null,[0,Math.PI/2,0]],[new THREE.Mesh(new THREE.CylinderGeometry(.03,0,.15,4,1,!1),C),[1.17,0,0],[0,0,-Math.PI/2],[1,1,.001]],[new THREE.Mesh(new THREE.CylinderGeometry(.03,0,.15,4,1,!1),C),[-1.17,0,0],[0,0,Math.PI/2],[1,1,.001]],[new THREE.Mesh(new THREE.CylinderGeometry(.03,0,.15,4,1,!1),C),[0,-1.17,0],[Math.PI,0,0],[1,1,.001]],[new THREE.Mesh(new THREE.CylinderGeometry(.03,0,.15,4,1,!1),C),[0,1.17,0],[0,0,0],[1,1,.001]]],XYZE:[[new THREE.Line(y(1,1),w),null,[0,Math.PI/2,0]]]},b={AXIS:[[new THREE.Line(B,o.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]]},U={X:[[new THREE.Mesh(new THREE.TorusGeometry(1,.1,4,24),i),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new THREE.Mesh(new THREE.TorusGeometry(1,.1,4,24),i),[0,0,0],[Math.PI/2,0,0]]],Z:[[new THREE.Mesh(new THREE.TorusGeometry(1,.1,4,24),i),[0,0,0],[0,0,-Math.PI/2]]],E:[[new THREE.Mesh(new THREE.TorusGeometry(1.25,.1,2,24),i)]],XYZE:[[new THREE.Mesh(new THREE.SphereGeometry(.7,10,8),i)]]},D={X:[[new THREE.Mesh(E,n),[.8,0,0],[0,0,-Math.PI/2]],[new THREE.Line(B,d),null,null,[.8,1,1]]],Y:[[new THREE.Mesh(E,s),[0,.8,0]],[new THREE.Line(B,g),null,[0,0,Math.PI/2],[.8,1,1]]],Z:[[new THREE.Mesh(E,r),[0,0,.8],[Math.PI/2,0,0]],[new THREE.Line(B,u),null,[0,-Math.PI/2,0],[.8,1,1]]],XY:[[new THREE.Mesh(E,l),[.85,.85,0],null,[2,2,.2]],[new THREE.Line(B,m),[.855,.98,0],null,[.125,1,1]],[new THREE.Line(B,m),[.98,.855,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new THREE.Mesh(E,h),[0,.85,.85],null,[.2,2,2]],[new THREE.Line(B,p),[0,.855,.98],[0,0,Math.PI/2],[.125,1,1]],[new THREE.Line(B,p),[0,.98,.855],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new THREE.Mesh(E,c),[.85,0,.85],null,[2,.2,2]],[new THREE.Line(B,A),[.855,0,.98],null,[.125,1,1]],[new THREE.Line(B,A),[.98,0,.855],[0,-Math.PI/2,0],[.125,1,1]]],XYZX:[[new THREE.Mesh(new THREE.BoxGeometry(.125,.125,.125),a.clone()),[1.1,0,0]]],XYZY:[[new THREE.Mesh(new THREE.BoxGeometry(.125,.125,.125),a.clone()),[0,1.1,0]]],XYZZ:[[new THREE.Mesh(new THREE.BoxGeometry(.125,.125,.125),a.clone()),[0,0,1.1]]]},R={X:[[new THREE.Mesh(new THREE.CylinderGeometry(.2,0,.8,4,1,!1),i),[.5,0,0],[0,0,-Math.PI/2]]],Y:[[new THREE.Mesh(new THREE.CylinderGeometry(.2,0,.8,4,1,!1),i),[0,.5,0]]],Z:[[new THREE.Mesh(new THREE.CylinderGeometry(.2,0,.8,4,1,!1),i),[0,0,.5],[Math.PI/2,0,0]]],XY:[[new THREE.Mesh(E,i),[.85,.85,0],null,[3,3,.2]]],YZ:[[new THREE.Mesh(E,i),[0,.85,.85],null,[.2,3,3]]],XZ:[[new THREE.Mesh(E,i),[.85,0,.85],null,[3,.2,3]]],XYZX:[[new THREE.Mesh(new THREE.BoxGeometry(.2,.2,.2),i),[1.1,0,0]]],XYZY:[[new THREE.Mesh(new THREE.BoxGeometry(.2,.2,.2),i),[0,1.1,0]]],XYZZ:[[new THREE.Mesh(new THREE.BoxGeometry(.2,.2,.2),i),[0,0,1.1]]]},V={X:[[new THREE.Line(B,o.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new THREE.Line(B,o.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new THREE.Line(B,o.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},Q=function(e){var t=new THREE.Object3D;for(var i in e)for(var o=e[i].length;o--;){var n=e[i][o][0].clone(),s=e[i][o][1],r=e[i][o][2],a=e[i][o][3],l=e[i][o][4];n.name=i,n.tag=l,s&&n.position.set(s[0],s[1],s[2]),r&&n.rotation.set(r[0],r[1],r[2]),a&&n.scale.set(a[0],a[1],a[2]),n.updateMatrix();var h=n.geometry.clone();h.applyMatrix(n.matrix),n.geometry=h,n.renderOrder=1/0,n.position.set(0,0,0),n.rotation.set(0,0,0),n.scale.set(1,1,1),t.add(n)}return t},k=new THREE.Vector3(0,0,0),F=new THREE.Euler,T=new THREE.Vector3(0,1,0),P=new THREE.Vector3(0,0,0),L=new THREE.Matrix4,K=new THREE.Quaternion,G=new THREE.Quaternion,q=new THREE.Quaternion,H=new THREE.Vector3(1,0,0),Y=new THREE.Vector3(0,1,0),j=new THREE.Vector3(0,0,1);this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=Q(S)),this.add(this.gizmo.rotate=Q(x)),this.add(this.gizmo.scale=Q(D)),this.add(this.picker.translate=Q(M)),this.add(this.picker.rotate=Q(U)),this.add(this.picker.scale=Q(R)),this.add(this.helper.translate=Q(v)),this.add(this.helper.rotate=Q(b)),this.add(this.helper.scale=Q(V)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1,this.updateMatrixWorld=function(){var e=this.space;"scale"===this.mode&&(e="local");var t="local"===e?this.worldQuaternion:q;this.gizmo.translate.visible="translate"===this.mode,this.gizmo.rotate.visible="rotate"===this.mode,this.gizmo.scale.visible="scale"===this.mode,this.helper.translate.visible="translate"===this.mode,this.helper.rotate.visible="rotate"===this.mode,this.helper.scale.visible="scale"===this.mode;var i=[];i=(i=(i=i.concat(this.picker[this.mode].children)).concat(this.gizmo[this.mode].children)).concat(this.helper[this.mode].children);for(var o=0;o<i.length;o++){var n,s=i[o];if(s.visible=!0,s.rotation.set(0,0,0),s.position.copy(this.worldPosition),n=this.camera.isOrthographicCamera?(this.camera.top-this.camera.bottom)/this.camera.zoom:this.worldPosition.distanceTo(this.cameraPosition)*Math.min(1.9*Math.tan(Math.PI*this.camera.fov/360)/this.camera.zoom,7),s.scale.set(1,1,1).multiplyScalar(n*this.size/7),"helper"!==s.tag){if(s.quaternion.copy(t),"translate"===this.mode||"scale"===this.mode){var r=.99;"X"!==s.name&&"XYZX"!==s.name||Math.abs(T.copy(H).applyQuaternion(t).dot(this.eye))>r&&(s.scale.set(1e-10,1e-10,1e-10),s.visible=!1),"Y"!==s.name&&"XYZY"!==s.name||Math.abs(T.copy(Y).applyQuaternion(t).dot(this.eye))>r&&(s.scale.set(1e-10,1e-10,1e-10),s.visible=!1),"Z"!==s.name&&"XYZZ"!==s.name||Math.abs(T.copy(j).applyQuaternion(t).dot(this.eye))>r&&(s.scale.set(1e-10,1e-10,1e-10),s.visible=!1),"XY"===s.name&&Math.abs(T.copy(j).applyQuaternion(t).dot(this.eye))<.2&&(s.scale.set(1e-10,1e-10,1e-10),s.visible=!1),"YZ"===s.name&&Math.abs(T.copy(H).applyQuaternion(t).dot(this.eye))<.2&&(s.scale.set(1e-10,1e-10,1e-10),s.visible=!1),"XZ"===s.name&&Math.abs(T.copy(Y).applyQuaternion(t).dot(this.eye))<.2&&(s.scale.set(1e-10,1e-10,1e-10),s.visible=!1),-1!==s.name.search("X")&&(T.copy(H).applyQuaternion(t).dot(this.eye)<0?"fwd"===s.tag?s.visible=!1:s.scale.x*=-1:"bwd"===s.tag&&(s.visible=!1)),-1!==s.name.search("Y")&&(T.copy(Y).applyQuaternion(t).dot(this.eye)<0?"fwd"===s.tag?s.visible=!1:s.scale.y*=-1:"bwd"===s.tag&&(s.visible=!1)),-1!==s.name.search("Z")&&(T.copy(j).applyQuaternion(t).dot(this.eye)<0?"fwd"===s.tag?s.visible=!1:s.scale.z*=-1:"bwd"===s.tag&&(s.visible=!1))}else"rotate"===this.mode&&(G.copy(t),T.copy(this.eye).applyQuaternion(K.copy(t).inverse()),-1!==s.name.search("E")&&s.quaternion.setFromRotationMatrix(L.lookAt(this.eye,P,Y)),"X"===s.name&&(K.setFromAxisAngle(H,Math.atan2(-T.y,T.z)),K.multiplyQuaternions(G,K),s.quaternion.copy(K)),"Y"===s.name&&(K.setFromAxisAngle(Y,Math.atan2(T.x,T.z)),K.multiplyQuaternions(G,K),s.quaternion.copy(K)),"Z"===s.name&&(K.setFromAxisAngle(j,Math.atan2(T.y,T.x)),K.multiplyQuaternions(G,K),s.quaternion.copy(K)));s.visible=s.visible&&(-1===s.name.indexOf("X")||this.showX),s.visible=s.visible&&(-1===s.name.indexOf("Y")||this.showY),s.visible=s.visible&&(-1===s.name.indexOf("Z")||this.showZ),s.visible=s.visible&&(-1===s.name.indexOf("E")||this.showX&&this.showY&&this.showZ),s.material._opacity=s.material._opacity||s.material.opacity,s.material._color=s.material._color||s.material.color.clone(),s.material.color.copy(s.material._color),s.material.opacity=s.material._opacity,this.enabled?this.axis&&(s.name===this.axis||this.axis.split("").some((function(e){return s.name===e}))?(s.material.opacity=1,s.material.color.lerp(new THREE.Color(1,1,1),.5)):(s.material.opacity*=.25,s.material.color.lerp(new THREE.Color(1,1,1),.5))):(s.material.opacity*=.5,s.material.color.lerp(new THREE.Color(1,1,1),.5))}else s.visible=!1,"AXIS"===s.name?(s.position.copy(this.worldPositionStart),s.visible=!!this.axis,"X"===this.axis&&(K.setFromEuler(F.set(0,0,0)),s.quaternion.copy(t).multiply(K),Math.abs(T.copy(H).applyQuaternion(t).dot(this.eye))>.9&&(s.visible=!1)),"Y"===this.axis&&(K.setFromEuler(F.set(0,0,Math.PI/2)),s.quaternion.copy(t).multiply(K),Math.abs(T.copy(Y).applyQuaternion(t).dot(this.eye))>.9&&(s.visible=!1)),"Z"===this.axis&&(K.setFromEuler(F.set(0,Math.PI/2,0)),s.quaternion.copy(t).multiply(K),Math.abs(T.copy(j).applyQuaternion(t).dot(this.eye))>.9&&(s.visible=!1)),"XYZE"===this.axis&&(K.setFromEuler(F.set(0,Math.PI/2,0)),T.copy(this.rotationAxis),s.quaternion.setFromRotationMatrix(L.lookAt(P,T,Y)),s.quaternion.multiply(K),s.visible=this.dragging),"E"===this.axis&&(s.visible=!1)):"START"===s.name?(s.position.copy(this.worldPositionStart),s.visible=this.dragging):"END"===s.name?(s.position.copy(this.worldPosition),s.visible=this.dragging):"DELTA"===s.name?(s.position.copy(this.worldPositionStart),s.quaternion.copy(this.worldQuaternionStart),k.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),k.applyQuaternion(this.worldQuaternionStart.clone().inverse()),s.scale.copy(k),s.visible=this.dragging):(s.quaternion.copy(t),this.dragging?s.position.copy(this.worldPositionStart):s.position.copy(this.worldPosition),this.axis&&(s.visible=-1!==this.axis.search(s.name)))}THREE.Object3D.prototype.updateMatrixWorld.call(this)}};ge.prototype=Object.assign(Object.create(THREE.Object3D.prototype),{constructor:ge,isTransformControlsGizmo:!0});var ue=function(){THREE.Mesh.call(this,new THREE.PlaneGeometry(1e5,1e5,2,2),new THREE.MeshBasicMaterial({visible:!1,wireframe:!0,side:THREE.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1})),this.type="TransformControlsPlane";var e=new THREE.Vector3(1,0,0),t=new THREE.Vector3(0,1,0),i=new THREE.Vector3(0,0,1),o=new THREE.Vector3,n=new THREE.Vector3,s=new THREE.Vector3,r=new THREE.Matrix4,a=new THREE.Quaternion;this.updateMatrixWorld=function(){var l=this.space;switch(this.position.copy(this.worldPosition),"scale"===this.mode&&(l="local"),e.set(1,0,0).applyQuaternion("local"===l?this.worldQuaternion:a),t.set(0,1,0).applyQuaternion("local"===l?this.worldQuaternion:a),i.set(0,0,1).applyQuaternion("local"===l?this.worldQuaternion:a),s.copy(t),this.mode){case"translate":case"scale":switch(this.axis){case"X":s.copy(this.eye).cross(e),n.copy(e).cross(s);break;case"Y":s.copy(this.eye).cross(t),n.copy(t).cross(s);break;case"Z":s.copy(this.eye).cross(i),n.copy(i).cross(s);break;case"XY":n.copy(i);break;case"YZ":n.copy(e);break;case"XZ":s.copy(i),n.copy(t);break;case"XYZ":case"E":n.set(0,0,0)}break;case"rotate":default:n.set(0,0,0)}0===n.length()?this.quaternion.copy(this.cameraQuaternion):(r.lookAt(o.set(0,0,0),n,s),this.quaternion.setFromRotationMatrix(r)),THREE.Object3D.prototype.updateMatrixWorld.call(this)}};ue.prototype=Object.assign(Object.create(THREE.Mesh.prototype),{constructor:ue,isTransformControlsPlane:!0}),function(){e.Bimface.Data.StatisticsDataManager.getInstance();var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Entity"),o="point",n="line",s="plane";i.EntityEditor=class{constructor(t){void 0!==t.viewer?(this.viewer=t.viewer,this.entityInfo=t.entity,this.currentLayerId=this.entityInfo?this.entityInfo.layerId:null,this.currentEntityId=this.entityInfo?this.entityInfo.entityId:null,this.currentEntity=null,this.currentLayer=null,this.points=new Map,this.lines=new Map,this.planes=new Map,this.externalObjectManager=new e.Bimface.Viewer.ExternalObjectManager(this.viewer),this.customEntityLayer=new e.Bimface.Layer.EntityLayer({name:"CustomEntity"}),this.SNAPTOLERANCE=5,this.deleteMode=!1,this.tmpGeometry=new THREE.BoxGeometry(1,1,1),this.visualPoints=new Map,this.viewer.getViewer().camera&&(this.camera=this.viewer.getViewer().camera)):console.warn("Need param:viewer In Constructing EntityEditor")}getCurrentEntity(){this.currentLayerId&&this.currentEntityId&&(this.currentLayer=this.viewer.getLayerManager().getLayer(this.currentLayerId),this.currentEntity=this.currentLayer.getEntityById(this.currentEntityId),this._drawPreviewLine(this.currentEntity))}edit(){this._init(),this.getCurrentEntity()}exit(){this.externalObjectManager.removeByName("TransformControls"),this.transformControl.dispose(),this.transformControl=null,this.domContainer&&(this.domContainer.style.cursor=""),this.saveCurrentEntity(),this.removeDomEventListeners(),this.destroySvgContainer(),this.entityInfo=null,this.currentLayerId=null,this.currentEntityId=null,this.currentEntity=null,this.currentLayer=null}setEntity(e){this.saveCurrentEntity(),this.entityInfo=e,this.currentLayerId=this.entityInfo.layerId,this.currentEntityId=this.entityInfo.entityId,this.getCurrentEntity()}saveCurrentEntity(){this.currentEntity&&this.currentEntity.updateGeo(this.lines.values().next().value.points),this.clearPreview()}clearPreview(){for(const e of this.points.values())e.clear();this.points.clear();for(const e of this.lines.values()){e.clear();let t=this.externalObjectManager.getObjectIdByName(`${e.id}`);this.externalObjectManager.removeById(t)}this.lines.clear();for(const e of this.planes.values())e.clear();this.planes.clear();for(const e of this.visualPoints){let t=this.externalObjectManager.getObjectIdByName(`${e[0]}`);this.externalObjectManager.removeById(t)}this.visualPoints.clear()}getEntity(){return this.entityInfo}_init(){this.domContainer=t.create("div","bf-EditorEditor-conext"),this.domContainer.style.position="absolute",this.domContainer.style.left=0,this.domContainer.style.top=0,this.domContainer.style.width="100%",this.domContainer.style.height="100%",this.svgContainer=t.createNS("svg","bf-EditorEditor-svg"),this.svgContainer.style.width="100%",this.svgContainer.style.height="100%",this.domContainer.appendChild(this.svgContainer),this.viewer.getDomElement().appendChild(this.domContainer),this.addDomEventListeners(),this.transformControl=new de(this.camera,this.viewer.getDomElement(),this.viewer),this.externalObjectManager._addObject("TransformControls",this.transformControl)}_makePreview(){this._drawAllPreviewEntities()}_drawAllPreviewEntities(){this.viewer.getLayerManager().getLayerByType("EntityLayer").forEach((e=>{e.getAllEntities().forEach(((e,t)=>{switch(e.type){case"polyline":case"spline":this._drawPreviewLine(e);break;case"polygon":this._drawPreviewPlane(e)}}))}))}_drawPreviewLine(e){let t=e.getPoints(),i=new ce;i.createFromEntity(e);let o=0;t.forEach((e=>{let t=new he(this.viewer,e);this.svgContainer.appendChild(t.getSvgElement()),t.setAttachLine(i,o),this.points.set(t.id,t),this.addVisualPoint(t.id,t.worldPosition),i.setPreviewPoint({index:o,id:t.id}),o++})),this.lines.set(e.id,i),this.externalObjectManager._addObject(`${i.id}`,i),e.destroyGeo()}_drawPreviewPoint(e){}_drawPreviewPlane(e){}addDomEventListeners(){this.onMouseDownBinded=this.onMouseDown.bind(this),this.onMouseMoveBinded=this.onMouseMove.bind(this),this.onMouseUpBinded=this.onMouseUp.bind(this),this.onMouseDoubleClickBinded=this.onMouseDoubleClick.bind(this),this.onWindowResizeBinded=this.onWindowResize.bind(this),this.update=this.update.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.onKeyUp=this.onKeyUp.bind(this);let e=this.svgContainer;e.addEventListener("mousemove",this.onMouseMoveBinded,!1),e.addEventListener("mousedown",this.onMouseDownBinded,!1),document.addEventListener("mouseup",this.onMouseUpBinded,!1),e.addEventListener("dblclick",this.onMouseDoubleClickBinded,!1),window.addEventListener("resize",this.onWindowResizeBinded,!1),this.viewer.addEventListener("Rendered",this.update,!1),document.addEventListener("keydown",this.onKeyDown),document.addEventListener("keyup",this.onKeyUp)}removeDomEventListeners(){let e=this.svgContainer;e.removeEventListener("mousemove",this.onMouseMoveBinded),e.removeEventListener("mousedown",this.onMouseDownBinded),document.removeEventListener("mouseup",this.onMouseUpBinded),e.removeEventListener("dblclick",this.onMouseDoubleClickBinded),window.removeEventListener("resize",this.onWindowResizeBinded),this.viewer.removeEventListener("Rendered",this.update),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("keyup",this.onKeyUp)}destroySvgContainer(){this.domContainer.removeChild(this.svgContainer),this.svgContainer=null,this.viewer.getDomElement().removeChild(this.domContainer),this.domContainer=null}onKeyDown(e){switch(e.keyCode){case 46:this.deleteMode=!0}}onKeyUp(e){switch(e.keyCode){case 46:this.deleteMode=!1}}onMouseDown(t){if(t.button===THREE.MOUSE.LEFT){let i={x:t.clientX,y:t.clientY};if(this.currentSnap);else{let t=this.getSnap(i);if(t)switch(this._tmpSnap=null,t.type){case o:this.deleteMode?(t.snap.delete(),this.points.delete(t.snap.id),this.removeVisualPoint(t.snap.id),this.points.size<2?(this.clearPreview(),this.currentLayer.removeEntity(this.currentEntity.id),this.currentEntity=null):(this.updateIndexInPreviewPoints(t.snap.index,!0),this.saveCurrentEntity(),this._drawPreviewLine(this.currentEntity)),this.deleteMode=!1):(t.snap.selected(),t.state="Processing",this.currentSnap=t,this.viewer.enableOrbit(!1));break;case n:if(t.snap instanceof e.Bimface.Plugins.Geometry.SplineCurve)this.setEntity({layerId:t.snap.layerId,entityId:t.snap.entityId});else{this.currentSnap=t;let e=t.snap.addPoint(t.snapPoint);e&&(this.svgContainer.appendChild(e.getSvgElement()),this.points.set(e.id,e),this.addVisualPoint(e.id,e.worldPosition),t.snap.setPreviewPoint({index:e.index,id:e.id}),t.snap.updateGeo(),this.saveCurrentEntity(),this._drawPreviewLine(this.currentEntity)),this.viewer.enableOrbit(!1)}}this.viewer.render()}}}onMouseMove(e){let t={x:e.clientX,y:e.clientY};if(this.currentSnap&&"Processing"===this.currentSnap.state){let e=this.getCurrentVisualPointPosition(this.currentSnap.snap.id);e?this.currentSnap.snap.processing(e,!0):this.currentSnap.snap.processing(t,!1)}else{this._tmpSnap&&(this._tmpSnap.cancelHightlight(),this._tmpSnap=null),this.transformControl.detach();let e=this.getSnap(t);if(e){switch(e.type){case o:this.domContainer.style.cursor="",this.attachVisualPoint(e.snap.id);break;case n:this.domContainer.style.cursor=`url(${l})10 10,auto`}this._tmpSnap=e.snap,this._tmpSnap.hightlight()}else this.domContainer.style.cursor=`url(${l})10 10,auto`}this.viewer.render()}onMouseUp(e){if(e.button===THREE.MOUSE.LEFT){let t={x:e.clientX,y:e.clientY};this.currentSnap&&(this.currentSnap.snap.finished(t),this.viewer.enableOrbit(!0),this.currentSnap=null,this.transformControl.detach())}else e.button===THREE.MOUSE.RIGHT&&this.currentSnap&&this.currentSnap.snap.cancled()}onMouseDoubleClick(e){e.preventDefault(),e.stopPropagation()}onWindowResize(){this.update()}update(){this.points.forEach(((e,t)=>{e.update()}))}clear(){this.points.forEach(((e,t)=>{e.clear()}))}getSnap(e){let t=null;return t=this.snapPoint(e),t?{type:o,snap:t}:(t=this.snapLine(e),t?{type:n,snap:t.line,snapPoint:t.snapPoint}:(t=this.snapPlane(e),t?{type:s,snap:t}:t))}snapPoint(e){let t=null;for(const i of this.points.values())i.distanceTo(e)<=this.SNAPTOLERANCE&&(t=i);return t}snapLine(t){let i=null,o=this.viewer.getViewer().pickToPoint(t,50);return null!=o&&o.pickLine&&(o.pickLine instanceof e.Bimface.Plugins.Geometry.SplineCurve||o.pickLine instanceof ce)&&(i={line:o.pickLine,snapPoint:o.pickPoint}),i}snapPlane(e){}distanceTo(e,t){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)}updateIndexInPreviewPoints(e,t){this.points.forEach(((i,o)=>{i.index>=e&&(t?(i.index-=1,i.index<=0&&(i.index=0)):i.index+=1)}))}addVisualPoint(e,t){let i=new THREE.MeshBasicMaterial({color:65280,visible:!1,opacity:.1}),o=new THREE.Mesh(this.tmpGeometry,i);this.visualPoints.set(e,o),o.position.copy(t),this.externalObjectManager._addObject(`${e}`,o)}removeVisualPoint(e){this.transformControl.detach(),this.visualPoints.delete(e);let t=this.externalObjectManager.getObjectIdByName(`${e}`);this.externalObjectManager.removeById(t)}attachVisualPoint(e){let t=this.visualPoints.get(e);t!=this.transformControl.object&&t&&this.transformControl.attach(t)}getCurrentVisualPointPosition(e){return this.transformControl.object?this.transformControl.object.position:null}}}();class pe{constructor(t){this.id=e.Web.Lang.Utility.UUID.createUUID(),this.color=new e.Web.Graphics.Color("#32D3A6"),this.type="",this.attributes={},this.viewer=t,this.externalObjectManager=new e.Bimface.Viewer.ExternalObjectManager(this.viewer),this.layerId=""}getId(){return this.id}show(){}hide(){}genGeometry(){}updateGeometry(){}destroy(){}}!function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Geometry");class o extends CLOUD.MeshLine{constructor(i,o,n,s,r){super(),t.send("Bimface.Plugins.Geometry.SplineCurve","bf_c_geometry_newSpline");let a={};i instanceof Array?(a.points=i,a.color=o,a.width=n,a.style=s,a.type=r):a=i,null==i||i&&i.length<2?console.log("ERROR::points must be not empty or only one"):(this.viewer=a.viewer,this.points=void 0!==a.points?a.points:[],this.color=void 0!==a.color?a.color:new e.Web.Graphics.Color("#32D3A6"),this.width=void 0!==a.width?a.width:1,this.style=void 0!==a.style?a.style:{lineType:"Continuous",lineStyle:null},this.curveType=void 0!==a.type?a.type:"spline",this.divisions=100,this._clampMode="Space",this.curve=null,this.createCurve(),this.createGroundCurve({points:this.points,color:this.color,width:this.width,style:this.style,type:this.curveType}),this.groundCurve.visible=!1,this.startPoint=this.points[0],this.endPoint=this.points[this.points.length-1],this.material.linewidth=this.width,this.material.resolution=new THREE.Vector2(window.innerWidth,window.innerHeight),this.setColor(this.color),this.setStyle(this.style),this.highlightColor="#FF7F00",this.addEventListener("removed",(function(){this.groundCurve.onRemoved()})),this.addEventListener("added",(function(){this.groundCurve.onAdded()})),this._widthType="DisplayWidth")}createCurve(){for(var e=this.points,t=[],i=0,o=e.length;i<o;i++)t.push(new THREE.Vector3(e[i].x,e[i].y,e[i].z));this.curve=new THREE.CatmullRomCurve3(t),this.curve.tension=0,this.curve.curveType="polyline"==this.curveType?"catmullrom":"centripetal",this.length=this.curve.getLength();var n=Math.ceil(this.length/1e3);this.divisions=n<this.divisions?this.divisions:n;for(var s=[],r=(i=0,this.divisions);i<=r;i++){var a=this.curve.getPointAt(i/r);s.push(a.x,a.y,a.z)}this.geometry.setPositions(s),this.material.totalSize=this.geometry.totalSize,this.curvePositions=s}clone(){var t=this.points.copyWithin(0),i=new e.Web.Graphics.Color(this.color.red,this.color.green,this.color.blue,this.color.alpha),o=this.width,n="Continuous"==this.style.lineType?{lineType:this.style.lineType,lineStyle:this.lineStyle}:{lineType:this.style.lineType,lineStyle:{dashLength:this.style.lineStyle.dashLength,gapLength:this.style.lineStyle.gapLength}},s=new this.constructor(t,i,o,n);return this.material&&(s.material=this.material.clone()),s}dispose(){this.geometry.dispose(),this.material.dispose(),this.points=[],this.curve=null,this.geometry=null,this.material=null,this.color=null,this.width=null,this.style=null,this.startPoint=null,this.endPoint=null,this.groundCurve.dispose()}getPointByLength(e){if(e<0||e>this.length||!this.curve)return null;var t=e/this.length,i=this.curve.getPointAt(t);return{x:i.x,y:i.y,z:i.z}}getPointByParameter(e){if(length<0||length>1||!this.curve)return null;var t=this.curve.getPointAt(e);return{x:t.x,y:t.y,z:t.z}}getTangentByLength(e){if(e<0||e>this.length||!this.curve)return null;var t=e/this.length,i=this.curve.getTangentAt(t);return{x:i.x,y:i.y,z:i.z}}getTangentByParameter(e){if(length<0||length>1||!this.curve)return null;var t=this.curve.getTangentAt(e);return{x:t.x,y:t.y,z:t.z}}setColor(t){!t instanceof e.Web.Graphics.Color?console.log("ERROR: color is not instance of Glodon.Web.Graphics.Color"):(this.color=t,this.material.color.setRGB(t.red/255,t.green/255,t.blue/255),this.material.opacity=t.alpha,t.alpha<1||this.material.map?this.material.transparent=!0:this.material.transparent=!1,this.renderOrder=CLOUD.GlobalData.IncrementRender?100:-1,this.groundCurve.setColor(t))}getColor(){return this.color}setWidth(e){this.width=e,this.material.linewidth=e,this.groundCurve.setWidth(e)}getWidth(){return this.width}setStyle(e){if(this.style=e,"Continuous"==e.lineType)this.material.dashArray=0,this.material.dashRatio=0;else{var t=e.lineStyle.dashLength,i=e.lineStyle.gapLength;this.material.dashArray=(t+i)/this.material.totalSize,this.material.dashRatio=t/(t+i)}this.material.needsUpdate=!0,this.groundCurve.setStyle(e)}getStyle(){return this.style}setType(e){if(this.curveType!=e&&("polyline"==e||"spline"==e)){this.curveType=e,this.curve.curveType="polyline"==e?"catmullrom":"centripetal",this.length=this.curve.getLength();for(var t=[],i=0,o=this.divisions;i<=o;i++){var n=this.curve.getPointAt(i/o);t.push(n.x,n.y,n.z)}this.geometry.setPositions(t),this.curvePositions=t,this.groundCurve.setType(e)}}getType(){return this.curveType}getPoints(){return this.points}projectToGround(e){this.visible=!e,this.groundCurve.visible=e,e?(this._clampMode="Both",this._updateClampMode(0)):this._clampMode="Space"}clampMode(e){if(!e)return;var t=CLOUD.Utils.isDefined(e.mode)?e.mode:"Space",i="Space"!=t;switch(this.visible=!i,this.groundCurve.visible=i,this._clampMode=t,this._clampMode){case"Both":this._updateClampMode(0);break;case"Ground":this._updateClampMode(1);break;case"Model":this._updateClampMode(2)}const o=e.layerIds;this._setVisibleLayerIds(o)}_setVisibleLayerIds(e){let t={};if(!(e instanceof Array))return void CLOUD.GroundPrimitiveManager.getInstance().setInVisibleModelIdMap(t);if(!this.viewer||"ViewerGIS"!==this.viewer.viewerType)return console.warn("option.layerIds only support ViewerGIS"),t={all:!1},void CLOUD.GroundPrimitiveManager.getInstance().setInVisibleModelIdMap(t);this.viewer.getLayerManager().query(".BIMLayer .FeatureLayer .TilesetLayer").forEach((i=>{if(e.indexOf(i.id)>-1)return;const o=i.getModelId();t[o]=!0})),CLOUD.GroundPrimitiveManager.getInstance().setInVisibleModelIdMap(t)}_updateClampMode(e){this.groundCurve.setClampMode(e)}setMap(e,t){if(e.src){var i=null==e.offset?[0,0]:[0,e.offset],o=null==e.scale?[1,1]:[1,e.scale];if(this.src!=e.src){this.src=e.src;var n=new THREE.Texture,s=this;(new TEST.CryptoResourceLoader).loadURL(e.src,(r=>{var a=new Blob([r],{type:"jpeg"});let l=new Image;l.onload=function(){n.image=CLOUD.MaterialUtil.ensurePowerOfTwo(l),n.needsUpdate=!0,n.offset.fromArray(i),n.repeat.fromArray(o),n.wrapS=THREE.RepeatWrapping,n.wrapT=THREE.RepeatWrapping,s.material.enableColorOverride=null!=e.enableColorOverride&&e.enableColorOverride,s.material.transparent=!0,s.material.depthWrite=!1,s.material.map=n,s.material.needsUpdate=!0,t&&t(n)},l.onerror=e=>{console.log(e),onError&&onError(e)},l.src=URL.createObjectURL(a)}),null,(e=>{console.log(e),onError&&onError(e)}))}else{var r=this.material.map;r&&(r.offset.fromArray(i),r.repeat.fromArray(o),this.material.map=r,this.material.enableColorOverride=null!=e.enableColorOverride&&e.enableColorOverride,this.material.needsUpdate=!0,t&&t(r))}}}stretch(e,t){function i(e,t,i,o){const n=i-e,s=o-t,r=n*n+s*s;return Math.sqrt(r)}const o=null==e?.5:e,n=null==t?.5:t,s=this.points;var r=[],a=0;for(let e=1;e<s.length;e++){let t=s[e-1],w=s[e];var l=t.x+(w.x-t.x)*n,h=t.y+(w.y-t.y)*n,c=i(t.x,t.y,w.x,w.y),d=t.z+c*o,g=new THREE.Vector3(l,h,d),u=new THREE.QuadraticBezierCurve3(t,g,w),p=10*Math.floor(Math.log(c)/Math.LN10)+10;a+=p;for(var A=0;A<p;A++){var m=A/p;r.push(u.getPointAt(m))}r.push(u.getPointAt(1))}this.curve=new THREE.CatmullRomCurve3(r),this.length=this.curve.getLength(),this.divisions=a;for(var w=[],C=0,f=a;C<f;C++){var E=this.curve.getPointAt(C/f);w.push(E.x,E.y,E.z)}this.geometry.setPositions(w),this.curvePositions=w}setEntityId(e,t){this.entityId=t,this.layerId=e}hightlight(){let t=new e.Web.Graphics.Color(this.highlightColor,1);this.material.color.setRGB(t.red/255,t.green/255,t.blue/255)}cancelHightlight(){this.material.color.setRGB(this.color.red/255,this.color.green/255,this.color.blue/255)}setWidthType(e){this._widthType==e||"DisplayWidth"!=e&&"ActualWidth"!=e||(this._widthType=e,this.material.sizeAttenuation="DisplayWidth"!=e,this.material.needsUpdate=!0)}getWidthType(){return this._widthType}show(){this.material.visible=!0}hide(){this.material.visible=!1}getBox(){let e=this.geometry.boundingBox;return e||(this.geometry.computeBoundingBox(),e=this.geometry.boundingBox),e}}i.SplineCurve=o}(),function(){e.Bimface.Data.StatisticsDataManager.getInstance();const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Entity");t.CurveEntity=class extends pe{constructor(e){super(e),this.lineType="solid",this._points=[],this._curve=null,this._name="Spline_"+this.id,this.width=2}getBox(){if(this._curve)return this._curve.getBox()}show(){this._curve&&this._curve.show(),this.viewer.render()}hide(){this._curve&&this._curve.hide(),this.viewer.render()}projectToGround(e){this._curve&&(this._curve.projectToGround(e),this.viewer.render())}setLayerId(e){this.layerId=e,this._curve&&this._curve.setEntityId(this.layerId,this.id)}getPoints(){return this._points}genGeometry(t){!t||!t.points||t.points.length<2?console.log("ERROR::CurveEntity points must be not empty or only one"):(this._points=t.points,this.type=t.type.toLowerCase(),this._curve=new e.Bimface.Plugins.Geometry.SplineCurve({points:this._points,type:t.type}),this.setLineType(t.lineType),this.setColor(t.color),this.setWidth(t.width),this.setAttributes(t.attributes),this.externalObjectManager&&this.externalObjectManager._addObject(this._name,this._curve))}setType(e){this.type=e.toLowerCase(),this._curve&&(this._curve.setType(this.type),this.viewer.render())}setLineType(e){if(this._curve){let t;switch(e){case"solid":t={lineType:"Continuous",lineStyle:null};break;case"dash":t={lineType:"Dashed",lineStyle:{dashLength:10,gapLength:10}};break;default:t={lineType:"Continuous",lineStyle:null}}this.lineType=e,this._curve.setStyle(t),this.viewer.render()}}setAttributes(e){this.attributes=e}getAttributes(){return this.attributes}setColor(t){if(this._curve){if("string"==typeof t||!t instanceof e.Web.Graphics.Color){let i=new e.Web.Graphics.Color(t,1);this._curve.setColor(i),this.color=i}else this._curve.setColor(t),this.color=t;this.viewer.render()}}setWidth(e){this._curve&&(this._curve.setWidth(e),this.width=e,this.viewer.render())}updateGeo(t){this._points=t,this._curve=new e.Bimface.Plugins.Geometry.SplineCurve({points:this._points,type:this.type}),this.setLineType(this.lineType),this.setColor(this.color),this.setWidth(this.width),this.setAttributes(this.attributes),this.externalObjectManager&&this.externalObjectManager._addObject(this._name,this._curve),this._curve&&this._curve.setEntityId(this.layerId,this.id)}destroy(){this.points=[],this._curve&&this._curve.dispose(),this._curve=null;let e=this.externalObjectManager.getObjectIdByName(this._name);this.externalObjectManager.removeById(e)}destroyGeo(){this._curve&&this._curve.dispose(),this._curve=null;let e=this.externalObjectManager.getObjectIdByName(this._name);this.externalObjectManager.removeById(e)}}}(),function(){e.Bimface.Data.StatisticsDataManager.getInstance();var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Geometry");class i extends THREE.BufferGeometry{constructor(e){super(),this.points=e,this.handlePoints=[],this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.invalid=!1,this._createPlaneGeometry()}_createPlaneGeometry(){var e=this;e.points.length;if(e._RemoveDuplicatePoints(e.points))this.invalid=!0;else{if(e.handlePoints.length<3)return console.warn("Failed to create plane, the number of the points must be more than three."),void(this.invalid=!0);if(3==e.handlePoints.length&&0==i.area(e.handlePoints[0],e.handlePoints[1],e.handlePoints[2]))return console.warn("Failed to create plane, points are collinear."),void(this.invalid=!0);if(i.checkIntersect(e.handlePoints))return console.warn("Failed to create plane, the plane border is self-intersecting."),void(this.invalid=!0);e.handlePoints.push(new THREE.Vector2(e.points[0].x,e.points[0].y));var t=new THREE.Shape(e.handlePoints),o=new THREE.ShapeBufferGeometry(t),n=new Float32Array(e._updateUv(o));o.setAttribute("uv",new THREE.BufferAttribute(n,2)),this.attributes=o.attributes,this.groups=o.groups,this.index=o.index}}_updateUv(e){for(var t=this,i=[],o=e.attributes.position.array,n=0;n<o.length;n+=3){var s=o[n],r=o[n+1],a=(s-t.minX)/(t.maxX-t.minX),l=(r-t.minY)/(t.maxY-t.minY);i.push(a),i.push(l)}return i}_RemoveDuplicatePoints(e){var t=this,i=new THREE.Vector2(e[0].x,e[0].y);t.handlePoints.push(i),t.minX=i.x,t.maxX=i.x,t.minY=i.y,t.maxY=i.y;for(var o=1;o<e.length;o++){var n=!1;if(null==e[o].x||null==e[o].y||null==e[o].z)return console.log("Failed to create plane, the format of plane is not right, please follow [{x:,y:,z:},...]"),!0;for(var s=0;s<t.handlePoints.length;s++)if(e[o].x==t.handlePoints[s].x&&e[o].y==t.handlePoints[s].y){n=!0;break}if(!1===n){i=new THREE.Vector2(e[o].x,e[o].y);t.handlePoints.push(i),t.minX>i.x&&(t.minX=i.x),t.minY>i.y&&(t.minY=i.y),t.maxX<i.x&&(t.maxX=i.x),t.maxY<i.y&&(t.maxY=i.y)}}return!1}static checkIntersect(e){for(var t,o,n,s,r=e.length,a=0;a<r;a++){t=e[a],o=e[a==r-1?0:a+1];for(var l=a+2;l<r;l++)if((0!=a||l!=r-1)&&(n=e[l],s=e[l==r-1?0:l+1],i.intersectSegments(t,o,n,s)))return!0}return!1}static area(e,t,i){return(t.x-e.x)*(i.y-e.y)-(i.x-e.x)*(t.y-e.y)}static collinearIntersectCheck(e,t,i,o){return!(Math.min(e.x,t.x)<=i.x&&i.x<=Math.max(e.x,t.x)&&Math.min(e.y,t.y)<=i.y&&i.y<=Math.max(e.y,t.y))&&!(Math.min(e.x,t.x)<=o.x&&o.x<=Math.max(e.x,t.x)&&Math.min(e.y,t.y)<=o.y&&o.y<=Math.max(e.y,t.y))}static intersectSegments(e,t,o,n){var s=i.area(e,t,o)*i.area(e,t,n),r=i.area(o,n,e)*i.area(o,n,t);return!(s>0)&&(!(r>0)&&(0!=s||0!=r||!i.collinearIntersectCheck(e,t,o,n)))}}t.PlaneBufferGeometry=i}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Geometry");class o extends THREE.Group{constructor(i){if(t.send("Bimface.Plugins.Geometry.Plane","bf_c_plane_newPlane"),super(),i){if(this.isEntityPlane=null!=i.isEntityPlane&&i.isEntityPlane,this.points=null,this.height=0,2==arguments.length){var o=arguments[0],n=arguments[1];this.points=[],this.height=(o.z+n.z)/2,this.points.push(new THREE.Vector3(o.x,o.y)),this.points.push(new THREE.Vector3(n.x,o.y)),this.points.push(new THREE.Vector3(n.x,n.y)),this.points.push(new THREE.Vector3(o.x,n.y))}else if(i instanceof Array){var s=i;if(s.length<3)return void console.log("Glodon.Bimface.Plugins.Geometry.Plane points.length must >= 3.");this.points=s,this.height=s[0].z}else if("rectangle"==i.type){if(2!=i.points.length)return void console.log("Glodon.Bimface.Plugins.Geometry.Plane rectangle points.length must be 2.");o=i.points[0],n=i.points[1];this.points=[],this.height=(o.z+n.z)/2,this.points.push(new THREE.Vector3(o.x,o.y)),this.points.push(new THREE.Vector3(n.x,o.y)),this.points.push(new THREE.Vector3(n.x,n.y)),this.points.push(new THREE.Vector3(o.x,n.y))}else if("polygon"==i.type){if(i.points.length<3)return void console.log("Glodon.Bimface.Plugins.Geometry.Plane polygon points.length must >= 3.");this.points=i.points,this.height=i.points[0].z}else{if("circle"!=i.type)return void console.log("Glodon.Bimface.Plugins.Geometry.Plane opt type must be rectangle or polygon or circle.");if(!i.center||!i.radius)return void console.log("Glodon.Bimface.Plugins.Geometry.Plane circle need center and radius.");var r=new THREE.Vector3(i.center.x,i.center.y,i.center.z);this.points=[],this.height=r.z;for(var a=new THREE.Vector3,l=new THREE.Vector3(0,0,1),h=0;h<36;h++){a.set(1,0,0),a.applyAxisAngle(l,h*Math.PI*2/36);var c=new THREE.Vector3;c.copy(r),c.addScaledVector(a,i.radius),this.points.push(c)}}this._opt=i,this.mapUrl=null,this.color=new e.Web.Graphics.Color(50,138,240,.5),this.borderColor=new e.Web.Graphics.Color(50,138,240,1),this.borderWidth=2,this.useBorder=!0,this.groundPlane=null,this.groundBorderLine=null,this.mapTransparent=!1,this.handlePoints=[],this._createPlane()||(this.type="invalidPlane"),this.addEventListener("removed",(function(){this.groundPlane&&this.groundPlane.onRemoved(),this.groundBorderLine&&this.groundBorderLine.onRemoved()})),this.addEventListener("added",(function(){this.groundPlane&&this.groundPlane.onAdded(),this.groundBorderLine&&this.groundBorderLine.onAdded()}))}}_createPlane(){var t=new e.Bimface.Plugins.Geometry.PlaneBufferGeometry(this.points);if(t.invalid)return!1;this.handlePoints=t.handlePoints;var i=this._createMeshMaterial(),o=new THREE.Mesh(t,i);return o.position.copy(new THREE.Vector3(0,0,this.height)),this.isEntityPlane&&(o.renderOrder=1),this.add(o),this._opt.onlyPlane||(this.groundPlane=CLOUD.GroundPrimitiveManager.getInstance().createGroundPolygon({color:this.color,points:this.handlePoints}),this.groundPlane.visible=!1),1==this.useBorder&&(this.add(this._createBorderLine()),this._opt.onlyPlane||(this.groundBorderLine=CLOUD.GroundPrimitiveManager.getInstance().createGroundCurve({points:this.handlePoints,color:this.borderColor,width:2,style:"Continuous",type:"polyline"}),this.groundBorderLine.visible=!1)),!0}clone(){var t=new e.Web.Graphics.Color(this.color.red,this.color.green,this.color.blue,this.color.alpha),i=new e.Web.Graphics.Color(this.borderColor.red,this.borderColor.green,this.borderColor.blue,this.borderColor.alpha),o=this.mapUrl,n=this.useBorder,s=new this.constructor(this._opt);return s.setColor(t),s.setBorderColor(i),s.setBorderWidth(this.borderWidth),null!=o&&s.setMap(o),s.useBorder=n,0==n&&s.clearBorder(),s}setBorderColor(t){if(!t instanceof e.Web.Graphics.Color)console.log("ERROR: color is not instance of Glodon.Web.Graphics.Color");else{this.borderColor=t;var i=this.children[1];null!=i&&i.material.color.setRGB(this.borderColor.red/255,this.borderColor.green/255,this.borderColor.blue/255),this.groundBorderLine&&this.groundBorderLine.setColor(this.borderColor)}}getBorderColor(){return this.borderColor}setBorderWidth(e){if(Number(e)){this.borderWidth=Number(e);var t=this.children[1];null!=t&&(t.material.linewidth=this.borderWidth),this.groundBorderLine&&this.groundBorderLine.setWidth(this.borderWidth)}else console.warn("Parameter width is invalid.")}getBorderWidth(){return this.borderWidth}setColor(t){if(!t instanceof e.Web.Graphics.Color)console.log("ERROR: color is not instance of Glodon.Web.Graphics.Color");else{this.color=t;var i=this.children[0];null!=i&&(i.material.map=null,i.material.alphaMap=null,i.material.needsUpdate=!0,i.material.color.setRGB(this.color.red/255,this.color.green/255,this.color.blue/255),i.material.opacity=this.color.alpha,i.material.transparent=this.color.alpha<1),this.groundPlane&&this.groundPlane.setColor(this.color)}}getColor(){return this.color}setMap(e,t,i){let o=!0;void 0===o&&"[object Boolean]"===Object.prototype.toString.call(i)&&(o=i,i=void 0);const n=()=>{var o=this;o.mapUrl=e;var n=o.children[0];if(null!=n){var s=new THREE.TextureLoader;s.setCrossOrigin("anonymous"),s.load(o.mapUrl,(e=>{e.encoding=THREE.GammaEncoding,n.material.map=e,!0===this.mapTransparent&&(n.material.alphaMap=e),this.setOpacity(i),n.material.needsUpdate=!0,t&&t(n)}))}};if(!1===o){let t=new Image;t.src=e,t.onload=()=>{const e=t.width,i=t.height,o=e/i,s=Math.abs(this.points[1].x-this.points[0].x),r=Math.abs(this.points[2].y-this.points[0].y),a=s/r;let l=0,h=0,c=0;this.points.forEach((e=>{l+=e.x,h+=e.y,c+=e.z})),l*=1/this.points.length,h*=1/this.points.length,c*=1/this.points.length;const d=new THREE.Vector3(l,h,c);if(o>a){const t=i*s/e/r;this.children.forEach((e=>{e.scale.setY(t),e.position.sub(d).multiply(new THREE.Vector3(1,t,1)).add(d),e.updateMatrixWorld()}))}else if(o<a){const t=e*r/i/s;this.children.forEach((e=>{e.scale.setX(t),e.position.sub(d).multiply(new THREE.Vector3(t,1,1)).add(d),e.updateMatrixWorld()}))}n()}}else n()}enableTransparent(e){this.mapTransparent=e}setOpacity(e){if(void 0===e&&(e=1),"[object Number]"===Object.prototype.toString.call(e)){e>1&&(e=1),e<0&&(e=0);var t=this.children[0];null!=t&&(t.material.needsUpdate=!0,t.material.opacity=e,t.material.transparent=!!this.mapTransparent||!(Math.abs(e-1)<.001)),this.groundPlane&&this.groundPlane.setOpacity(e)}}setBorderOpacity(e){if(void 0===e&&(e=1),"[object Number]"===Object.prototype.toString.call(e)){e>=1&&(e=this.isEntityPlane?.99:1),e<0&&(e=0);var t=this.children[1];null!=t&&(t.material.needsUpdate=!0,t.material.opacity=e,t.material.transparent=!!this.mapTransparent||!(Math.abs(e-1)<.001)),this.groundBorderLine&&this.groundBorderLine.setOpacity(e)}}clearBorder(){this.useBorder=!1;var e=this.children[1];this.remove(e),this.groundBorderLine&&(this.groundBorderLine.visible=!1)}clearPlane(){var e=this.children[0];this.remove(e),this.groundPlane&&(this.groundPlane.visible=!1)}projectToGround(e){var t=this.children[0];this.groundPlane&&t&&(t.visible=!e,this.groundPlane.visible=e);var i=this.children[1];this.groundBorderLine&&i&&this.useBorder&&(i.visible=!e,this.groundBorderLine.visible=e)}dispose(){this.points=null,this.min=null,this.max=null,this.points=null,this.height=null,this.mapUrl=null,this.color=null,this.borderColor=null,this.useBorder=null,this.handlePoints=null;var e=this.children[0],t=this.children[1];e&&this.remove(e),t&&this.remove(t),this.groundPlane&&this.groundPlane.dispose(),this.groundBorderLine&&this.groundBorderLine.dispose()}updateGroundPlane(){if(this.groundPlane&&this.groundPlane.geometry.updateGeometry({points:this.points}),this.groundBorderLine){let t=new e.Bimface.Plugins.Geometry.PlaneBufferGeometry(this.points);t.invalid||(this.handlePoints=t.handlePoints,this.groundBorderLine.geometry.updateGeometry({points:this.handlePoints}))}}_createMeshMaterial(){var e=this,t=new THREE.Color(e.color.red/255,e.color.green/255,e.color.blue/255),i=new CLOUD.CloudStandardMaterial({color:t,side:THREE.DoubleSide,depthWrite:!this.isEntityPlane});return i.opacity=e.color.alpha,i.transparent=e.color.alpha<1,i}_createBorderLine(){var e,t=this;if(t.isEntityPlane){var i=new THREE.LineGeometry;let r=[];for(var o=0;o<t.handlePoints.length;o++){var n=new THREE.Vector3(t.handlePoints[o].x,t.handlePoints[o].y,t.height);r.push(n.x),r.push(n.y),r.push(n.z)}i.setPositions(r);var s=t._createLineMaterial();(e=new THREE.Line2(i,s)).renderOrder=10}else{const i=new THREE.BufferGeometry;let n=[];for(o=0;o<t.handlePoints.length;o++)n.push(t.handlePoints[o].x,t.handlePoints[o].y,t.height);i.setAttribute("position",new THREE.Float32BufferAttribute(n,3));const s=t._createLineMaterial();e=new THREE.Line(i,s)}return e}_createLineMaterial(){var e=this,t=new THREE.Color(e.borderColor.red/255,e.borderColor.green/255,e.borderColor.blue/255),i=new THREE.LineMaterial({color:t,linewidth:2,dashed:!1,depthWrite:!this.isEntityPlane});return i.resolution.set(window.innerWidth,window.innerHeight),i.opacity=null==e.borderColor?1:e.borderColor.alpha,i.transparent=null!=e.borderColor&&e.borderColor.alpha<1,i}show(){this.children.forEach((e=>{e.material.visible=!0}))}hide(){this.children.forEach((e=>{e.material.visible=!1}))}getBox(){let e,t=this.children[0],i=null;return t&&(i=t.geometry),i&&(e=i.boundingBox,e||(i.computeBoundingBox(),e=i.boundingBox)),e}setEntityId(e,t){this.entityId=t,this.layerId=e}}i.Plane=o}(),function(){e.Bimface.Data.StatisticsDataManager.getInstance();const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Entity");t.PolygonEntity=class extends pe{constructor(e){super(e),this.lineType="solid",this._points=[],this._polygon=null,this._name="Polygon_"+this.id}setLayerId(e){this.layerId=e,this._polygon&&this._polygon.setEntityId(this.layerId,this.id)}getBox(){if(this._polygon)return this._polygon.getBox()}show(){this._polygon&&this._polygon.show(),this.viewer.render()}hide(){this._polygon&&this._polygon.hide(),this.viewer.render()}setBorderColor(t){if(this._polygon){if("string"==typeof t||!t instanceof e.Web.Graphics.Color){let i=new e.Web.Graphics.Color(t,1);this._polygon.setBorderColor(i)}else this._polygon.setBorderColor(t);this.viewer.render()}}getBorderColor(){if(this._polygon)return this._polygon.getBorderColor()}setBorderWidth(e){this._polygon&&(this._polygon.setBorderWidth(e),this.viewer.render())}getBorderWidth(){this._polygon&&this._polygon.getBorderWidth()}setOpacity(e){this._polygon&&(this._polygon.setOpacity(e),this.viewer.render())}setBorderOpacity(e){this._polygon&&(this._polygon.setBorderOpacity(e),this.viewer.render())}clearBorder(){this._polygon&&(this._polygon.clearBorder(),this.viewer.render())}clearPlane(){this._polygon&&(this._polygon.clearPlane(),this.viewer.render())}projectToGround(e){this._polygon&&(this._polygon.projectToGround(e),this.viewer.render())}getPoints(){return this._points}genGeometry(t){if(!t||!t.points||t.points.length<2)return void console.log("ERROR::CurveEntity points must be not empty or only one");this._points=t.points,this.type=t.type.toLowerCase();let i={type:"polygon",points:this._points,isEntityPlane:!0};this._polygon=new e.Bimface.Plugins.Geometry.Plane(i),this._polygon&&(t.outline?(t.outlineWidth&&this._polygon.setBorderWidth(t.outlineWidth),t.outlineColor&&this.setBorderColor(t.outlineColor),t.outlineOpacity&&this.setBorderOpacity(t.outlineOpacity)):this.clearBorder(),t.fill?(t.color&&this.setColor(t.color),t.opacity&&this._polygon.setOpacity(t.opacity)):this.clearPlane(),this.setAttributes(t.attributes),this.externalObjectManager&&this.externalObjectManager._addObject(this._name,this._polygon))}setAttributes(e){this.attributes=e}setColor(t){if(this._polygon){if("string"==typeof t||!t instanceof e.Web.Graphics.Color){let i=new e.Web.Graphics.Color(t,1);this._polygon.setColor(i)}else this._polygon.setColor(t);this.viewer.render()}}getColor(){if(this._polygon)return this._polygon.getColor()}destroy(){this.points=[],this._polygon&&this._polygon.dispose(),this._polygon=null;let e=this.externalObjectManager.getObjectIdByName(this._name);this.externalObjectManager.removeById(e)}}}();var Ae=e.Bimface.Data.StatisticsDataManager.getInstance();e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").EntityLayer=class extends P{constructor(e){Ae.send("Glodon.Bimface.Layer.EntityLayer","bf_c_entityLayer_new"),e.name=e.name?e.name:"EntityLayer_Default",e.typeName="EntityLayer",e.priority=e.priority||5,super(e),this._entities=new Map,this.viewer=null,this.range=null,this.adjustCamera=this.adjustCamera.bind(this)}init(){this.viewer=this.getViewer(),this.addEvent()}addEvent(){this.viewer&&this.viewer.getEventManager().addEvent(e.Bimface.Viewer.ViewerGISEvent.CameraPositionChanged,this.adjustCamera)}removeEvent(){this.viewer&&this.viewer.getEventManager().removeEvent(e.Bimface.Viewer.ViewerGISEvent.CameraPositionChanged,this.adjustCamera)}adjustCamera(e){this.range&&this._entities.forEach((t=>{let i=t.getBox();if(i){let o=new THREE.Vector3(e.position.x,e.position.y,e.position.z);this.checkVisiable(i,o)?t.show():t.hide()}}))}checkVisiable(e,t){let i=Math.abs(e.distanceToPoint(t));return i<=this.range.max&&i>=this.range.min}setVisualRange(e){e&&(this.range=e)}getVisualRange(){return this.range}getId(){return this.id}show(){this._entities.forEach((e=>{e.show()}))}hide(){this._entities.forEach((e=>{e.hide()}))}addEntity(e){e&&(this._entities.set(e.id,e),e.setLayerId(this.id))}removeEntity(e){let t=this.getEntityById(e);t&&t.destroy(),this._entities.delete(e)}getEntityById(e){return this._entities.get(e)}getAllEntities(){return this._entities}destroy(){this._entities.forEach((e=>{e.destroy()})),this._entities.clear(),this.removeEvent()}parseGeoJson(e){let t=JSON.parse(e);if(!t||void 0===t.properties.type)return void console.log("Input geojson should be not empty!");if(!this.getViewer)return void console.warn("Please add EntityLayer into LayerManager first!");this.viewer=this.getViewer();let i=null;switch(t.properties.type){case"Polyline":case"Spline":i=this._createCurveEntity(t);break;case"polygon":i=this._createPolygonEntity(t)}i&&this.addEntity(i)}_createCurveEntity(t){let i=t.properties.style&&t.properties.style.color?t.properties.style.color:"#32D3A6",o=t.properties.style&&t.properties.style.width?t.properties.style.width:1,n=t.properties.style&&t.properties.style.lineType?t.properties.style.lineType:"solid",s=t.properties.attributes,r=[];if(t.geometry&&t.geometry.coordinates)for(let e=0;e<t.geometry.coordinates.length;e++){let i,o=t.geometry.coordinates[e];o.length<=1||(2===o.length?i={x:o[0],y:o[1]}:o.length>=3&&(i={x:o[0],y:o[1],z:o[2]}),r.push(i))}let a=null;a={type:t.properties.type.toLowerCase(),lineType:n,color:i,width:o,points:r,attributes:s};let l=new e.Bimface.Plugins.Entity.CurveEntity(this.viewer);return l.genGeometry(a),l}_createPolygonEntity(t){let i=t.properties.style&&t.properties.style.color?t.properties.style.color:"#32D3A6",o=t.properties.style&&t.properties.style.opacity?t.properties.style.opacity:1,n=!t.properties.style||!t.properties.style.outline||t.properties.style.outline,s=t.properties.style&&t.properties.style.outlineWidth?t.properties.style.outlineWidth:1,r=!t.properties.style||!t.properties.style.fill||t.properties.style.fill,a=t.properties.style&&t.properties.style.fillType?t.properties.style.fillType:"color",l=t.properties.style&&t.properties.style.outlineColor?t.properties.style.outlineColor:"#ffffff",h=t.properties.style&&t.properties.style.outlineOpacity?t.properties.style.outlineOpacity:1,c=t.properties.attributes;if(!n&&!r)return null;let d=[],g=[];if(t.geometry&&t.geometry.coordinates){let e,i=t.geometry.coordinates.length;if(!(i>0))return null;e=t.geometry.coordinates[0];for(let t=0;t<e.length;t++){let i,o=e[t];o.length<=1||(2===o.length?i={x:o[0],y:o[1]}:o.length>=3&&(i={x:o[0],y:o[1],z:o[2]}),d.push(i))}if(i>1)for(let e=1;e<t.geometry.coordinates.length;e++){let i=t.geometry.coordinates[e],o=[];for(let e=0;e<i.length;e++){let t,n=i[e];n.length<=1||(2===n.length?t={x:n[0],y:n[1]}:n.length>=3&&(t={x:n[0],y:n[1],z:n[2]}),o.push(t))}o.length>0&&g.push(o)}}let u=new e.Bimface.Plugins.Entity.PolygonEntity(this.viewer),p=null;return p={type:t.properties.type,opacity:o,color:i,outline:n,outlineWidth:s,fill:r,fillType:a,outlineColor:l,outlineOpacity:h,points:d,innerPoints:g,attributes:c},u.genGeometry(p),u}};class me{constructor(e){this.getLayerManager=()=>e,this.getViewer=e.getViewer,this._allModelInited=!1}buildLayers(t){let i,o,n,s={},r=[];const a=t=>{switch(t.typeName){case"GroupLayer":const l=new K(t);t.parent.add(l),t.children&&t.children.length>0&&t.children.forEach((e=>{e.parent=l,a(e)}));break;case"TileLayer":s.id=t.id,s.provider=t.provider,s.name=t.name,s.credit=t.credit,s.style=t.style,s.shadow=t.shadow,s.maxLevel=t.maxLevel,s.isVisible=!1!==t.isVisible,s.sectionable=!0===t.sectionable,this._isValidUrl(t.url)&&(s.url=t.url),i=t.parent;break;case"TerrainLayer":this._isValidUrl(t.url)?(s.useTerrain=!1!==t.isVisible,s.terrainPath=t.url,s.terrainViewToken=t.viewToken,s.modelId=t.modelId,s.databagId=t.databagId,s.terrainViewToken=t.viewToken,o=t.parent,n={id:t.id,name:t.name,isVisible:t.isVisible}):(s.useTerrain=!1!==t.isVisible,s.terrainPath=e.Bimface.Plugins.TileMap.Tile.getTerrainRootPath(this.getViewer()._opt.resourceHost),o=t.parent,n={id:t.id,name:t.name,isVisible:t.isVisible});break;case"BIMLayer":case"FeatureLayer":case"TilesetLayer":(t.viewToken||t.modelId&&t.databagId)&&(t.style&&t.style.color?t.disableUserData=!1:t.isVisible&&(t.disableUserData=!0),r.push(t))}};if("[object Array]"===Object.prototype.toString.call(t)){t={id:"root",name:"root",typeName:"GroupLayer",children:t}}if(t.parent=this.getLayerManager(),a(t),s.databagId)this.loadTerrainConfig(s.databagId,s,(()=>{this.startLoad(i,s,n,o,r)}));else if(s.terrainViewToken){const t=this.getViewer();let a=e.Bimface.Authentication.AuthenticationManager,l=new e.Bimface.Authentication.AuthenticationConfig;l.viewToken=s.terrainViewToken,l.APIHost=t._opt.APIHost,(this.authenticate=new a(l)).authenticate((e=>{this.loadTerrainConfig(e.databagId,s,(()=>{this.startLoad(i,s,n,o,r)}))}),(e=>{console.log("the invalid terrain viewtoken"),s.useTerrain=!1,this.startLoad(i,s,void 0,o,r)}))}else this.startLoad(i,s,n,o,r)}loadTerrainConfig(e,t,i){const o=this.getViewer(),n=`${o._opt.resourceHost}/${e}/resource/v3/model/config.json`;t.terrainPath=`${o._opt.resourceHost}/${e}/resource/v3/model/terrain/`;let s=new THREE.FileLoader;s.setResponseType("json"),s.load(n,(e=>{t.terrainOnlineConfig=e.metadata,i&&i()}))}startLoad(t,i,o,n,s){t&&(this.getLayerManager().baseMap=new j(i),t&&t.add(this.getLayerManager().baseMap)),o&&(o.baseMap=this.getLayerManager().baseMap,this.getLayerManager().terrainLayer=new W(o),n.add(this.getLayerManager().terrainLayer)),this.getViewer().addEventListener(e.Bimface.Viewer.ViewerGISEvent.SceneAdded,(()=>{if(s.length>0){let t;const i=()=>{if(s.length>0){let e=this.getViewer().getViewer().getCamera();e!==t&&this.sortModel(s),t=e;const[i]=s.splice(0,1);let o=null;switch(i.typeName){case"BIMLayer":o=new te(i);break;case"FeatureLayer":o=new ae(i);break;case"TilesetLayer":o=new le(i);break;default:o=new te(i)}i.parent.add(o)}else this.getLayerManager().query(".BIMLayer .FeatureLayer .TilesetLayer").forEach((e=>e.isVisible&&e.loadBusinessResources())),this.getViewer().removeEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,i),this.getViewer().removeEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelInitedWithoutLoad,i),this.getViewer().removeEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAddFailed,i),this.getViewer().getViewer().modelManager.removeEventListener(CLOUD.EVENTS.ON_LOAD_INVALID_SCENE,i),this._allModelInited=!0,this.getViewer().fireEvent(e.Bimface.Viewer.ViewerGISEvent.AllModelInited)};this.getViewer().addEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,i),this.getViewer().addEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelInitedWithoutLoad,i),this.getViewer().addEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAddFailed,i),this.getViewer().getViewer().modelManager.addEventListener(CLOUD.EVENTS.ON_LOAD_INVALID_SCENE,i),i()}}))}sortModel(e,t){t=t||{},e.forEach((e=>{if(!e.box3&&e.boundingBox&&e.boundingBox.min&&e.boundingBox.max){let{x:t,y:i,z:o}=this.getViewer().worldToScene(e.boundingBox.min),{x:n,y:s,z:r}=this.getViewer().worldToScene(e.boundingBox.max);e.box3=new THREE.Box3(new THREE.Vector3(t,i,o),new THREE.Vector3(n,s,r))}})),e.sort(((e,i)=>{let o=e.isVisible,n=i.isVisible;if(!1!==t.visible&&o!==n)return o?-1:1;if(!1===t.visible||o){if(!1!==t.priority){let t=e.priority||3,o=i.priority||3;if(t!==o)return t-o}if(!1!==t.boundingBox){if(!i.box3)return-1;if(!e.box3)return 1;let t=this.getViewer().getViewer().camera.frustum;if(!t.intersectsBox(i.box3))return-1;if(!t.intersectsBox(e.box3))return 1;let o=this.getViewer().getViewer().camera.position.clone();return e.box3.distanceToPoint(o)-i.box3.distanceToPoint(o)}}}))}loadLayer(t,i=!1){if(this._allModelInited){if(t instanceof Array){let o=[];if(t.forEach((e=>{let t=this.getLayerManager().getLayer(e);t&&(t.loaded?i&&t.show():(t._config.disableUserData=!0,o.push(t._config)))})),o.length>0){this.sortModel(o,{visible:!1});let t=o.length,n=0,s=o.map((e=>e.id));const r=a=>{s.includes(a)&&(n++,i||this.getLayerManager().getLayer(a).hide()),n===t&&(o.forEach((e=>this.getLayerManager().getLayer(e.id).loadBusinessResources())),this.getViewer().removeEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,r))};this.getViewer().addEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,r),o.forEach((e=>this.getLayerManager().getLayer(e.id).show()))}}}else this.getViewer().addEventListener(e.Bimface.Viewer.ViewerGISEvent.AllModelInited,(()=>this.loadLayer(t)))}showLayers(e){this.loadLayer(e,!0)}_isValidUrl(e){return!!e&&/(https?):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/.test(e)}}class we extends T{constructor(e){super({id:"LayerManager",name:"LayerManager",typeName:"LayerManager",userData:"LayerManager",viewer:e});let t=new me(this);this.getLoadManager=()=>t}getLayerConfigsObject(){let e=[],t=this.getViewer()._config.resources;if(t){let i=this.getRootLayer(),o={id:i.id,name:i.name,typeName:i.typeName,isVisible:i.isVisible,children:t};e.push(o)}const i=(e,t)=>{const{id:o,name:n,typeName:s,isVisible:r}=e;let a={id:o,name:n,typeName:s,isVisible:r,parentId:e.parent?e.parent.id:""};if("GroupLayer"!=s&&(a.priority=e.priority),"BIMLayer"===s||"FeatureLayer"===s){if("destroyed"===e.loadStatus)return;if(a.modelId=e.modelId,a.modelType=e.modelType,e.viewToken&&(a.viewToken=e.viewToken),e.databagId&&(a.databagId=e.databagId),e.model){let t=e.model.getModelTransformation();a.transformation=t?[...t]:void 0}}if(t instanceof Array){let[e]=t.filter((e=>e.id===a.id));if(e){for(let t in a)a.hasOwnProperty(t)&&void 0!==a[t]&&(e[t]=a[t]);a=e}else t.push(a)}e.children.length>0&&(a.children=a.children||[],e.children.forEach((e=>{i(e,a.children)})))};return i(this.getRootLayer(),e),1===e.length?e[0]:e.length>1?e:void 0}buildLayers(e){return this.getLoadManager().buildLayers(e)}showLayers(e){return this.getLoadManager().showLayers(e)}getRootLayer(){if(0===this.children.length){const e=new K({id:"root",name:"root"});this.add(e)}return this.children[0]}getLayer(e){const[t]=this.query(`#${e}`);return t}getLayerByType(e){return this.query({typeName:e})}addLayer(e,t){(this.getLayer(t)||this.getRootLayer()).add(e)}removeLayer(e){const t=this.getLayer(e);t&&t.parent.remove(t)}removeLayerByCondition(e){this.query(e).forEach((e=>{e.parent.remove(e)}))}moveLayer(e,t){const i=this.getLayer(e),o=this.getLayer(t);i&&o&&(i.parent.children.splice(i.parent.children.indexOf(i),1),o.children.push(i),i.parent=o)}zoomToLayer(e,t){const i=this.getLayer(e);if(i&&i.model){let e=i.model.modelId,o=this.getViewer().getViewer().getModelManager().modelCollection.getById(e).getBoundingBoxWorld(),n={};n.boundingBox=o,n.margin=.5,n.duration=1e3,this.getViewer().zoomToBoundingBox(n,this._getDataUtil().assertType(t,"func")?t:void 0)}if(i&&"ExternalObjectLayer"===i.typeName){let e=i.getExternalObjectManager().getBoundingBoxWorld();if(e.isEmpty())return;let o={};o.boundingBox=e,o.margin=.5,o.duration=1e3,this.getViewer().zoomToBoundingBox(o,this._getDataUtil().assertType(t,"func")?t:void 0)}}setLayerPriority(e,t){let i=this.getLayer(e);i&&(i.priority=t)}getLayerPriority(e){let t=this.getLayer(e);if(t)return t.priority}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Layer").LayerManager=we;class Ce{constructor(t){this._viewer=t;const i=e.Web.Lang.Utility.DataUtil;this.dataUtil=i,this._panFactor=5}init(){if(!this._viewer.getLayerManager().baseMap)return;const e=this.getCloudViewer().cameraControl;e.maxPitch=Math.PI/2,e.minPitch=-Math.PI/2;const t=this._viewer._config,i=t.homeView.position;let o=this._viewer.getLayerManager().baseMap?this._viewer.getLayerManager().baseMap.tileManager.lonLat2Mercator(i.lon,i.lat):{x:0,y:-1113.1366825229488};o.z=i.alt;const n=t.homeView.orientation,s=n.yaw;let r=n.pitch;r>=Math.PI/2&&(r=Math.PI/2-Math.PI/1e3),r<=-Math.PI/2&&(r=Math.PI/1e3-Math.PI/2),this.setCameraFromYawPitch({position:o,yaw:s,pitch:r},!0),this.defaultHomeview=this.getCameraStatus()}setCameraFromYawPitch(e,t){const i=this.getCameraStatus();let o=e.yaw;o>2*Math.PI&&(o-=2*Math.PI);let n=e.pitch;n>Math.PI&&(n-=2*Math.PI),n<-Math.PI&&(n+=2*Math.PI);let s=e.position;if(null!=this.cameraMinimumElevation&&e.isDownDirection&&i.position.z<this.cameraMinimumElevation)return;let r=e.target;const a=new THREE.Vector2(0,1).rotateAround(new THREE.Vector2(0,0),o),l=Math.tan(n),h=new THREE.Vector3(a.x,a.y,l);h.normalize();const c=e.distance||1e3,d=h.multiplyScalar(c);if(s)!0===s&&(s=new THREE.Vector3(i.position.x,i.position.y,i.position.z)),i.position=s,i.target=s.clone().add(d);else if(r)if(!0===r&&(r=new THREE.Vector3(i.target.x,i.target.y,i.target.z)),i.position.z>0&&r.z<0||i.position.z<0&&r.z>0){s=new THREE.Vector3(i.position.x,i.position.y,i.position.z);const e=new THREE.Line3(s,r),t=new THREE.Plane(new THREE.Vector3(0,0,1),0),o=new THREE.Vector3;t.intersectLine(e,o);const n=o.clone().sub(s).length()/e.distance(),a=1-n;i.target=o.clone().add(d.clone().multiplyScalar(a)),i.position=o.clone().sub(d.clone().multiplyScalar(n))}else i.position=r.clone().sub(d),i.target=r;i.up={x:0,y:0,z:1},this.setCameraStatus(i,void 0,t)}getYawPitch(){const e=this.getCameraStatus(),t=new THREE.Vector3(e.target.x,e.target.y,e.target.z),i=new THREE.Vector3(e.position.x,e.position.y,e.position.z),o=t.clone().sub(i),n=this.getCloudViewer().camera.realUp.y>0?1:-1,s=new THREE.Vector2(o.x*n,o.y*n),r=new THREE.Vector2(0,1);let a=s.angle()-r.angle();a<0&&(a+=2*Math.PI);let l=new THREE.Vector2(Math.sqrt(o.x*o.x+o.y*o.y)*n,o.z).angle();return l>Math.PI&&(l-=2*Math.PI),{yaw:a,pitch:l}}panInDirection(e){const t=this.getCameraStatus(),i=new THREE.Vector3(t.target.x,t.target.y,t.target.z),o=new THREE.Vector3(t.position.x,t.position.y,t.position.z),n=i.clone().sub(o);n.z=0,n.normalize();let s=e?this._panFactor:-1*this._panFactor;n.multiplyScalar(s),i.add(n),o.add(n),t.target=i,t.position=o,t.up={x:0,y:0,z:1},this.setCameraStatus(t,void 0,!0)}panInLat(e){const t=this.getCameraStatus(),i=new THREE.Vector3(t.target.x,t.target.y,t.target.z),o=new THREE.Vector3(t.position.x,t.position.y,t.position.z),n=new THREE.Vector3(1,0,0);let s=e?this._panFactor:-1*this._panFactor;n.multiplyScalar(s),i.add(n),o.add(n),t.target=i,t.position=o,t.up={x:0,y:0,z:1},this.setCameraStatus(t,void 0,!0)}getCloudViewer(){return this._viewer.getViewer()}getCameraStatus(){const e=JSON.parse(this.getCloudViewer().getCamera());return e.coordinateSystem="world",e}setCameraStatus(e,t,i){"object"==typeof e&&(e=JSON.stringify(e)),this.getCloudViewer().setCamera(e,!1,t,i)}recordCustomHomeview(e){this.customedHomeview=e}getCustomHomeview(){return this.customedHomeview}getDefaultHomeview(){return this.defaultHomeview}getHomeView(){return this.getCustomHomeview()||this.getDefaultHomeview()}setHomeView(e){this.recordCustomHomeview(e)}startAutoRotate(e,t){const i=this.getCloudViewer();if(0==e)return void this.stopAutoRotate();this._animationFrameHandle&&this.stopAutoRotate();let o=i.getRotationCenter(),n=i.cameraControl.calculatePivot(f.RotatePivotMode.CENTER,null);void 0!==t?n=this._viewer.worldToScene(t):o&&(n=o);const s=()=>{i.rotateByAxis(e,"x",n),i.render(),this._animationFrameHandle=requestAnimationFrame(s)};s()}stopAutoRotate(){this._animationFrameHandle&&cancelAnimationFrame(this._animationFrameHandle)}zoomIn(){this.getCloudViewer().zoomIn(.01)}zoomOut(){this.getCloudViewer().zoomOut(.01)}zoomToBoundingBox(e,t){let i=e.boundingBox,o=null!=e.margin?e.margin:.5,n=null!=e.duration?e.duration:1e3;if(!i||!i.min||!i.max)return;const s=[[i.min.x,i.min.y,i.min.z],[i.max.x,i.max.y,i.max.z]];this.getCloudViewer().zoomToBBox(f.Utils.computeBBox(s),o,void 0,"[object Function]"===Object.prototype.toString.call(t)?t:void 0,n)}setCameraMinimumElevation(e){this.getCloudViewer().setCameraMinimumElevation(e),this.cameraMinimumElevation=e}}class fe{constructor(e){this.viewer=e,this._camera=new Ce(e),this.console=e.console,this._editorConfig={NoZoom:CLOUD.EditorConfig.NoZoom,NoPan:CLOUD.EditorConfig.NoPan,NoRotate:CLOUD.EditorConfig.NoRotate}}convertStatus(e,t){if(!(e&&t&&c.assertType(e,"obj")&&c.assertType(t,"str")))return void this.console.warn("invalid params in convertStatus(status, mode)");const{aspect:i,near:o,far:n,zoom:s,version:r}=e,a={aspect:i,near:o,far:n,zoom:s,version:r};if("LatLon"===t){if(!c.hasProperties(e.position,"x","y","z")||!c.hasProperties(e.target,"x","y","z"))return void this.console.warn("invalid params in convertStatus(status, mode)");const t=new THREE.Vector3(e.target.x,e.target.y,e.target.z),i=new THREE.Vector3(e.position.x,e.position.y,e.position.z),o=t.clone().sub(i),n=e.up.y>0?1:-1,s=new THREE.Vector2(o.x*n,o.y*n),r=new THREE.Vector2(0,1);let l=s.angle()-r.angle();l<0&&(l+=2*Math.PI);let h=new THREE.Vector2(Math.sqrt(o.x*o.x+o.y*o.y)*n,o.z).angle();h>Math.PI&&(h-=2*Math.PI),a.orientation={pitch:h,yaw:l,roll:0};const{lat:d,lon:g}=this.viewer.worldToLatLon(i);a.position={lat:d,lon:g,alt:i.z},a.coordinateSystem="CGCS-2000"}else if("World"===t){if(!c.hasProperties(e.position,"lat","lon","alt")||!c.hasProperties(e.orientation,"pitch","yaw","roll"))return void this.console.warn("invalid params in convertStatus(status, mode)");const{lat:t,lon:i,alt:o}=e.position;a.position=this.viewer.latLonToWorld({latLon:{lat:t,lon:i}}),a.position.z=o;const n=new THREE.Vector3(a.position.x,a.position.y,a.position.z);let{yaw:s,pitch:r}=e.orientation;s>2*Math.PI&&(s-=2*Math.PI),r>Math.PI&&(r-=2*Math.PI),r<-Math.PI&&(r+=2*Math.PI);const l=new THREE.Vector2(0,1).rotateAround(new THREE.Vector2(0,0),s),h=Math.tan(r),d=new THREE.Vector3(l.x,l.y,h);d.normalize();const g=n.clone().add(d.clone().multiplyScalar(1e3));a.target={x:g.x,y:g.y,z:g.z},a.up={x:0,y:0,z:1},a.coordinateSystem="world"}return a}getStatus(){return this._camera.getCameraStatus()}getStatusWorld(e){let t=Object.assign({},e);if("CGCS-2000"===e.coordinateSystem&&(t=this.convertStatus(e,"World")),"world"===t.coordinateSystem)return t}setStatus(e){let t=this.getStatusWorld(e);t&&this._camera.setCameraStatus(t)}getHomeView(){return this._camera.getHomeView()}setHomeView(e){let t=this.getStatusWorld(e);t&&this._camera.setHomeView(t)}restoreHomeView(){this.setHomeView(this._camera.getDefaultHomeview())}home(){this.setStatus(this.getHomeView())}getMinimumElevation(){return this._camera.cameraMinimumElevation}setMinimumElevation(e){this._camera.setCameraMinimumElevation(e)}startAutoRotate(e,t){this._camera.startAutoRotate(e,t)}stopAutoRotate(){this._camera.stopAutoRotate()}zoomIn(){this._camera.zoomIn()}zoomOut(){this._camera.zoomOut()}zoomToBoundingBox(e,t){let i=new Object;i.boundingBox=e,i.margin=t,this._camera.zoomToBoundingBox(i)}setCameraAnimation(t){if(this._animationOption&&this.clearCameraAnimation(),this._animationOption=t,!t.pathAnimation instanceof e.Bimface.Plugins.Animation.PathAnimation)return void this.console.warn("The parameter option.pathAnimation is not type of Glodon.Bimface.Plugins.Animation.PathAnimation.");let i=null==t.distance?5:t.distance,o=null==t.angle?0:t.angle;this._animationOption.distance=i,this._animationOption.angle=o;let n=viewer.getViewer().camera;t.pathAnimation._setCameraAnimation(n,i,o),this._editorConfig.NoZoom=CLOUD.EditorConfig.NoZoom,this._editorConfig.NoPan=CLOUD.EditorConfig.NoPan,this._editorConfig.NoRotate=CLOUD.EditorConfig.NoRotate,CLOUD.EditorConfig.NoZoom=!0,CLOUD.EditorConfig.NoPan=!0,CLOUD.EditorConfig.NoRotate=!0}getCameraAnimation(){return this._animationOption}clearCameraAnimation(){this._animationOption&&(this._animationOption.pathAnimation.camera=null,this._animationOption=null,CLOUD.EditorConfig.NoZoom=this._editorConfig.NoZoom,CLOUD.EditorConfig.NoPan=this._editorConfig.NoPan,CLOUD.EditorConfig.NoRotate=this._editorConfig.NoRotate)}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Camera").CameraGIS=fe,function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Viewer"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o="Glodon.Bimface.Viewer.ViewerGIS",n=e.Bimface.Data.StatisticsDataManager.getInstance(),s=e.Web.Lang.Utility.DataUtil;class r extends t.Viewer{constructor(t){n.send(o,"bf_c_viewerGIS_new"),super(),this.viewerType="ViewerGIS",this._opt=t,this._data={},this._beforeInitialize(t),this.console=new e.Web.Common.Console,this._models={},this._defaultModelType="bimtiles",this._defaultUnit="m",this._plugins={},this._layerLoadedHandlerList=[],this.enableStorage=t.enableStorage;const s={setupEarth:t.enableEarth,staticResourcesHost:t.staticResourcesHost,initialGeoCoordinates:t.initialGeoCoordinates,enableStorage:t.enableStorage,maxMemoryUsage:t.memoryThreshold,gisMode:!0},r=new f.Viewer(s),a=i.create("div","bf-view");t.domElement.appendChild(a),r.init(a);r.setOrbitButton({Left:"left",Right:"right"}[t.orbitButton]),this.setBackgroundColors(t.backgroundColor),t.enableSkyBox&&this.setSkyBoxType(t.skyBoxType);const l=new we(this),h=e.Web.Lang.Utility.ClientHelper.getIsDesktop();r.setDeviceMobile&&r.setDeviceMobile(!h),this.getViewer=()=>r,t.enableIBLBackground&&t.loadIBLScene.IBLSceneOption&&this.loadIBLScene(t.loadIBLScene.IBLSceneOption,t.loadIBLScene.withBackground),this.getLayerManager=()=>l,this.getDomElement=()=>a,this.resizeWindow=()=>{this.resize()},window.addEventListener("resize",this.resizeWindow),this.mouseRotating=new v(this),this.hookContextMenu(a),this.hookCloudViewerEvents();const c=()=>{n.modelType="scene",n.modelId=this._config.id,this._config.baseLatLon=this._opt.basePoint||this._config.baseLatLon||{lat:30.94136274453108,lon:120.77426794742208},this.enuMatrix=this._getEnuMatrix(),this._config.homeView=this._opt.homeView||this._config.homeView||{position:{lon:120.77426794742208,lat:30.93136274453108,alt:1e3},orientation:{yaw:0,pitch:-Math.PI/2,roll:0}},this._config.renderingSettings=this._config.renderingSettings||{};let e=this._config.resources=this._config.resources||[];if(this.enableStorage){let t=[];const i=e=>{e.forEach((e=>{e.databagId&&t.push(e.databagId),e.children&&i(e.children)}))};i(e),this.storageManager=new f.Storage.SceneStorageManager({sceneId:this._data.modelId,databagIdList:t})}l.buildLayers(e);const t=new fe(this);this.getCamera=()=>t,this._camera=t._camera,this._opt.enableEarth&&!this.getViewer().isEarthComplete()?this.getViewer().registerEventListener(f.EVENTS.ON_EARTH_ANIMATION_COMPLETE,(()=>{this._camera.init()})):this._camera.init()};this.addModel=this.loadViewCore=(e,t,i)=>{this._data=e,this._config=e.sceneJsonInfo,c()},this.addScene=i=>{if(this.fireEvent(e.Bimface.Viewer.ViewerGISEvent.SceneLoading),t.configUrl){const e=new THREE.FileLoader;e.setResponseType("json"),e.load(t.configUrl,(e=>{this._config=e,c()}),void 0,(e=>{console.error(`Load ${url} failed, ${e}`)}))}else t.config?(this._config=t.config,c()):i?this.addView(i):(this._config={},c());this.getLightManager=function(){return this.lightManager},this.addEventListener(e.Bimface.Viewer.ViewerGISEvent.SceneAdded,(()=>{var t=new e.Bimface.Light.LightManagerConfig;t.viewer=this,this.lightManager=new e.Bimface.Light.LightManager(t);let i=this.lightManager.getCSMLight();if(i.enableShadow(!0),i.setDirectionByCondition({lat:31,lon:120},new Date("2021-03-23T10:00:00+08:00")),this._opt.enableCompassControl){const t=new e.Bimface.Plugins.NorthArrowConfig;t.domElement=this.getDomElement(),t.viewer=this,this._northArrow=new e.Bimface.Plugins.NorthArrow(t)}if(this._opt.enableScaleBar){const t=new e.Bimface.Plugins.ScaleBarConfig;t.domElement=this.getDomElement(),t.viewer=this,this._opt.enableInfoBar&&(t.bottom=45),this._scaleWidget=new e.Bimface.Plugins.ScaleBar(t),this.getScaleBar=()=>this._scaleWidget}if(this._opt.enableInfoBar){const t=new e.Bimface.Plugins.InfoBarConfig;t.domElement=this.getDomElement(),t.viewer=this,this._infobarWidget=new e.Bimface.Plugins.InfoBar(t),this.getInfoBar=()=>this._infobarWidget}if(this._opt.enableCreditBar){const t=new e.Bimface.Plugins.CreditConfig;t.domElement=this.getDomElement(),t.viewer=this,this._creditWidget=new e.Bimface.Plugins.Credit(t);const i=Object.assign({},e.Bimface.Common.Credit,{OSM:"openstreetmap",Amap:"appmaptile",BingMap:"virtualearth"});let o=this.getLayerManager().baseMap,n=o.getSource(),s=n.url.toLowerCase();for(let e in i)s.indexOf(i[e].toLowerCase())>-1&&(n.credit=e,o.setSource(n))}}))}}hookContextMenu(t){let i,o,n,s=!0;this.onTouchstart=r=>{let a=r.touches[0];s=!1,i=[a.pageX,a.pageY],n&&clearTimeout(n),n=setTimeout((()=>{if(s)return;o=o||i;let n=t.getBoundingClientRect(),r={clientPosition:{x:o[0]-n.left,y:o[1]-n.top},containerBox:{width:n.width,height:n.height}};Math.abs(i[0]-o[0])<5&&Math.abs(i[1]-o[1])<5&&this._opt.enableToggleContextMenuDisplay&&this.getEventManager().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ContextMenu,r),s=!0}),1e3)},this.onTouchmove=e=>{let t=e.touches[0];o=[t.pageX,t.pageY]},this.onTouchend=()=>{o=null,s=!0},t.addEventListener("touchstart",this.onTouchstart),t.addEventListener("touchend",this.onTouchend),t.addEventListener("touchmove",this.onTouchmove)}hookCloudViewerEvents(){const t=this.getViewer(),o=this.getEventManager(),n=e.Bimface.Viewer.ViewerGISEvent;let s=i.create("div","bf-loading"),r=i.create("div","bf-loading-gif"),a=i.create("div","bf-loading-progress"),l=!1,h=0,c=i.create("div","bf-rect-selcetion"),d=null;const g=2,u=e=>{if(0==this.bIsEnableSelectionChanged||e.intersectInfo&&e.intersectInfo.objectType==f.PICKABLETYPE.Marker3d)return;let t=null,i=null,s=null,r=e.doubleClick?2:1;if(s=e.event.button==g?"RightClick":e.doubleClick?"DoubleClick":"Click",e.intersectInfo){const o=t=>({objectId:t.selectedObjectId,modelId:t.modelId,fileId:null,elementId:t.selectedObjectId,boundingBox:t.worldBoundingBox,click:r,screenPosition:{x:e.event.clientX,y:e.event.clientY},worldPosition:t.worldPosition,clientPosition:e.canvasPos,eventType:s,objectType:p(t.objectType)});if(t=o(e.intersectInfo),e.intersectInfo.objectType==f.PICKABLETYPE.Room&&(t.boundaryPoints=e.intersectInfo.boundaryPoints),e.intersectInfo.selectedObjectId&&"string"==typeof e.intersectInfo.selectedObjectId){var a=e.intersectInfo.selectedObjectId.split(".");a.length>1&&(t.elementId=a[1],t.fileId=a[0])}if("Map"===t.objectType){const e=this.getLayerManager().baseMap;t.layerId=e.getId(),t.layerType=e.typeName}else if("Component"===t.objectType&&t.modelId){const e=this._models[t.modelId]._layer;t.layerId=e.getId(),t.modelId=e.modelId,t.layerType=e.typeName}else if("ExternalComponent"===t.objectType){const e=this.getLayerManager().getLayerByType("ExternalObjectLayer");for(let i=0;i<e.length;i++){const o=e[i];if(o._hasObjectId(t.elementId)){t.layerId=o.getId(),t.layerType=o.typeName;break}}}if(e.intersectInfoWithoutMap){if(i=o(e.intersectInfoWithoutMap),i&&"Component"===i.objectType&&i.modelId){const e=this._models[i.modelId]._layer;i.layerId=e.getId(),i.modelId=e.modelId,i.layerType=e.typeName}}else i="Map"!==t.objectType?t:null}else t={click:r,screenPosition:{x:e.event.clientX,y:e.event.clientY},clientPosition:e.canvasPos,eventType:s,objectType:""};if(e.event.altKey&&console.log(t),e.doubleClick)this.zoomToSelectedComponents(),o.fireEvent(n.MouseDoubleClicked,t),o.fireEvent(n.ComponentsSelectionChanged,t);else{if(e.event.button===THREE.MOUSE.LEFT){o.fireEvent(n.ComponentsSelectionChanged,t);let e=this.getViewer().pickToPoint(t.clientPosition,5);if(null!=this.snap&&null!=e){let i=this.sceneToWorld(e.pickPoint),o=this.worldToClient(i),n={type:null,worldPosition:i,clientPosition:{x:o.x,y:o.y}};t.snapPoint=n}}t.normal=e.intersectInfo?e.intersectInfo.normal:null,o.fireEvent(n.MouseClicked,t),i&&o.fireEvent(n.MouseClickedWithoutMap,i)}},p=e=>{let t;const i="Component",o="ExternalComponent",n="Room",s="Map";switch(e){case f.PICKABLETYPE.ExternalComponent:t=o;break;case f.PICKABLETYPE.Room:t=n;break;case f.PICKABLETYPE.Map:t=s;break;default:t=i}return t},A=t=>{if(this._opt.enableToggleContextMenuDisplay&&this.bIsEnableSelectionChanged){var i={};if(t.event.button==g){var o=this.getDomElement().getBoundingClientRect(),n={x:t.event.clientX-o.left,y:t.event.clientY-o.top},s={width:o.width,height:o.height};i.clientPosition=n,i.containerBox=s,i.objectType=t.intersectInfo?p(t.intersectInfo.objectType):"",this.getEventManager().fireEvent(e.Bimface.Viewer.Viewer3DEvent.ContextMenu,i)}}},m=(e,t)=>{e.visible?("pickByRect"===t?e.dir?c.setCss({left:`${e.left}px`,top:`${e.top}px`,width:`${e.width}px`,height:`${e.height}px`,background:"rgba(185,255,235,0.3)",border:"2px solid rgba(0,130,94,1)"}):c.setCss({left:`${e.left}px`,top:`${e.top}px`,width:`${e.width}px`,height:`${e.height}px`,background:"rgba(185,255,235,0.3)",border:"2px dashed rgba(0,130,94,1)"}):c.setCss({left:`${e.left}px`,top:`${e.top}px`,width:`${e.width}px`,height:`${e.height}px`,background:"rgba(136,136,136,0.2)",border:"solid #888888 1px"}),this._opt.domElement.firstElementChild.appendChild(c),l=!0):(l&&(this._opt.domElement.firstElementChild.removeChild(c),l=!1,o.fireEvent(n.RectSelection,{end:!0})),o.fireEvent(n.RectSelection,e))};f.GlobalData.EnableDemolishByDClick=!0,a.innerText="0%",s.appendChild(r),s.appendChild(a),this._opt.loading&&this._opt.domElement.appendChild(s),this._opt.enableEarth&&!t.isEarthComplete()&&this.getViewer().registerEventListener(f.EVENTS.ON_EARTH_ANIMATION_COMPLETE,(()=>{o.fireEvent(n.EarthAnimationCompleted)})),t.registerEventListener(f.EVENTS.ON_MAP_LOAD_ALL,(()=>{s.parentElement&&0===h&&this._opt.domElement.removeChild(s)})),t.registerEventListener(f.EVENTS.ON_LOAD_START_NO_PROGRESS,(()=>{this._opt.loading&&(h++,s.parentElement||this._opt.domElement.appendChild(s),a.style.display="none")})),t.registerEventListener(f.EVENTS.ON_LOAD_START,(()=>{this._opt.loading&&(h++,s.parentElement||this._opt.domElement.appendChild(s))})),t.registerEventListener(f.EVENTS.ON_LOAD_PROGRESS,(e=>{let t=e.progress,i=Math.round(t.loaded/t.total*100);t.progress=i,a.innerText=i+"%",o.fireEvent(n.SceneLoading,t)})),t.registerEventListener(f.EVENTS.ON_LOAD_EMPTY_SCENE,(()=>{h--,this._opt.loading&&0==h&&s.parentElement&&this._opt.domElement.removeChild(s),o.fireEvent(n.Error,{code:"EmptyData",message:"this view is empty."})})),t.registerEventListener(f.EVENTS.ON_LOAD_COMPLETE,(i=>{h--,this._opt.loading&&0==h&&s.parentElement&&i.modelId&&(a.innerText="0%",this._opt.domElement.removeChild(s)),t.enableTextureMapping(!0),e.Web.Lang.Utility.MouseMotion.setCursor(this)})),t.addCallbacks("render",(()=>{o.fireEvent(e.Bimface.Viewer.ViewerGISEvent.Rendered)})),t.registerEventListener(f.EVENTS.ON_EDITOR_UPDATEUI,(e=>{m(e.data,e.editor)})),t.registerEventListener(f.EVENTS.ON_CLICK_PICK,(e=>{u(e),A(e)})),t.registerEventListener(f.EVENTS.ON_HOVER_PICK,(e=>{(e=>{let t=null,i="Hover";if(e.intersectInfo){if(t={objectId:e.intersectInfo.selectedObjectId,modelId:e.intersectInfo.modelId,fileId:null,elementId:e.intersectInfo.selectedObjectId,boundingBox:e.intersectInfo.worldBoundingBox,screenPosition:{x:e.event.clientX,y:e.event.clientY},worldPosition:e.intersectInfo.worldPosition,clientPosition:e.canvasPos,eventType:i,objectType:p(e.intersectInfo.objectType)},e.intersectInfo.selectedObjectId&&"string"==typeof e.intersectInfo.selectedObjectId){var s=e.intersectInfo.selectedObjectId.split(".");s.length>1&&(t.elementId=s[1],t.fileId=s[0])}}else d=null,t={screenPosition:{x:e.event.clientX,y:e.event.clientY},clientPosition:e.canvasPos,eventType:i};o.fireEvent(n.ComponentsHoverChanged,t),t.objectId&&d!=t.objectId&&(o.fireEvent(n.MouseHover,t),d=t.objectId)})(e)})),t.registerEventListener(f.EVENTS.ON_MOUSE_MOVE_PICK,(e=>{(e=>{if(!e.intersectInfo)return;const t=e.intersectInfo;var i={};if(void 0!==t.selectedObjectId&&(i.objectId=t.selectedObjectId),void 0!==t.modelId&&(i.modelId=t.modelId),void 0!==t.selectedObjectId&&(i.elementId=t.selectedObjectId),void 0!==t.worldBoundingBox&&(i.boundingBox=t.worldBoundingBox),void 0!==t.worldPosition&&(i.worldPosition=t.worldPosition),void 0!==t.objectType&&(i.objectType=p(e.intersectInfo.objectType)),i.eventType="MouseMove",i.screenPosition={x:e.event.clientX,y:e.event.clientY},i.clientPosition=e.canvasPos,t.selectedObjectId&&"string"==typeof t.selectedObjectId){var s=t.selectedObjectId.split(".");s.length>1&&(i.elementId=s[1],i.fileId=s[0])}o.fireEvent(n.MouseMove,i)})(e)})),t.registerEventListener(f.EVENTS.ON_SELECTION_CHANGED,(t=>{o.fireEvent(e.Bimface.Viewer.ViewerGISEvent.SelectionChanged,t.selectionList)})),t.registerEventListener(f.EVENTS.ON_MOUSE_DRAGGED,(t=>{o.fireEvent(e.Bimface.Viewer.ViewerGISEvent.MouseDragged,t)})),t.registerEventListener(f.EVENTS.ON_FLOOR_EXPLOSION,(function(t){void 0===this.floorData&&(this.floorData={}),this.floorData[t.modelId]=t.floorInfos,o.fireEvent(e.Bimface.Viewer.ViewerGISEvent.FloorExplosion,t)})),t.registerEventListener(f.EVENTS.ON_CAMERA_CHANGED_AND_RENDERED,(t=>{o.fireEvent(e.Bimface.Viewer.ViewerGISEvent.CameraPositionChanged,this.getCameraStatus())})),this._opt.wireframeColor&&this.setWireframeColor(this._opt.wireframeColor)}getModel(e){if(e)return this._models[e]}getModels(){return Object.values(this._models)}destroy(){n.send(o,"destroy"),t.Viewer.prototype.destroy.call(this),this._northArrow&&this._northArrow.destroy(),this._scaleWidget&&this._scaleWidget.destroy(),this._creditWidget&&this._creditWidget.destroy(),this._infobarWidget&&this._infobarWidget.destroy(),this.mouseRotating&&(this.mouseRotating.destroy(),this.mouseRotating=null),this.lightManager&&(this.lightManager.destroy(),this.lightManager=null),this.getViewer().destroy(),window.removeEventListener("resize",this.resizeWindow);var e=this.getDomElement();e.parentNode&&e.parentNode.removeChild(e)}resize(e,t){var i=this._opt.domElement,o=e||i.clientWidth,n=t||i.clientHeight;this.getViewer().resize(o,n)}fireEvent(e,t){this.getEventManager().fireEvent(e,t)}_beforeInitialize(e){f.GlobalData.LimitFrameTime=1e3/e.minimumFPS,f.GlobalData.EnableDemolishByDClick=!1,f.GlobalData.DisableRotation=e.rotation,f.GlobalData.UseMpkWorker=!1,f.GlobalData.ZipResourcePostfix=e.suffix,f.GlobalData.LightIntensityFactor=1.2,f.GlobalData.Hover=e.enableHover,f.GlobalData.MouseMovePick=e.enableMouseMovePick,f.GlobalData.MaxMemeorySizeToFullRender=e.MaxMemeorySizeToFullRender,f.GlobalData.EnableLoadOnDemand=!0===e.loadOnDemand,f.GlobalData.Instance=!e.enableReplaceMaterial,f.GlobalData.EnableSplitComponent=e.enableSplitComponent,f.GlobalData.EnableExplosion=e.enableExplosion,f.GlobalData.EnableLogarithmicDepthBuffer=e.enableLogarithmicDepthBuffer,f.GlobalData.ConstraintZoom=e.enableConstraintZoom,f.GlobalData.BorderLineDelayLoaded=!1===e.enableBorderLine,f.GlobalData.PickingEffect=!1!==e.pickingEffect}render(){const e=this.getViewer();e.modelManager.setRenderStateChanged(!0),e.render()}getBasePoint(){if(this._config&&this._config.baseLatLon)return this._config.baseLatLon}getCameraStatus(){return this._camera.getCameraStatus()}setCameraStatus(e,t){this._camera.setCameraStatus(e,t)}setCameraMinimumElevation(e){this._camera.setCameraMinimumElevation(e),null!=e?this._northArrow.setLimitPitch(0,null):this._northArrow.setLimitPitch(null,null)}setBackgroundColors(e){const t=this._opt.domElement,i=e.colors,o=void 0===e.direction?"180deg":e.direction*(180/Math.PI)+"deg",n=[];if(i)if(1==i.length)t.style.background=i[0].color.getRGBA();else{i[0].stop=i[0].stop||"0%",i[1].stop=i[1].stop||"100%";for(let e=0;e<i.length;e++){const t=i[e].color.getRGBA()+" "+i[e].stop;n.push(t)}const e=`${o}, ${n.join(",")}`;t.style.background=`linear-gradient(${e})`}this._opt.backgroundColor=e}getBackgroundColors(){return this._opt.backgroundColor}getHomeView(){return this._camera.getCustomHomeview()||this._camera.getDefaultHomeview()}setHomeView(e){this._camera.setHomeView(e)}worldToScene(e){return this.getViewer().worldToDrawing(e)}sceneToWorld(e){return this.getViewer().drawingToWorld(e)}worldToClient(e){return this.getViewer().worldToCanvas(e)}clientToWorld(e){return this.getViewer().clientToWorld(e)}zoomIn(){this.getViewer().zoomIn()}zoomOut(){this.getViewer().zoomOut()}createSnapshot(e){n.send(o,"createSnapshot"),this.getViewer().getRenderBufferScreenShot(void 0,(t=>{"[object Function]"==Object.prototype.toString.call(e)&&e(t),this.render()}))}startAutoRotate(e,t){this._camera.startAutoRotate(e,t)}stopAutoRotate(){this._camera.stopAutoRotate()}zoomToBoundingBox(e,t){this._camera.zoomToBoundingBox(e,t)}enableZoomRect(e){const t=this.getViewer();this._opt.enableZoomRect=e,e?t.editorManager.enableTool(t,f.EditToolMode.ZOOM_BY_RECT):t.editorManager.disableTool(f.EditToolMode.ZOOM_BY_RECT)}enablePickRect(e){const t=this.getViewer();e?t.editorManager.enableTool(t,f.EditToolMode.PICK_BY_RECT):t.editorManager.disableTool(f.EditToolMode.PICK_BY_RECT)}enableMouseMovePick(e){n.send(o,"enableMouseMovePick"),this._opt.enableMouseMovePick=e,this.getViewer().enableMouseMovePick(e)}zoomToSelectedComponents(){}worldToLatLon(e){if(s.assertType(e,"obj")&&s.assertParamsType(e.x,e.y,e.z,"num")&&this.getLayerManager().baseMap&&this.getLayerManager().baseMap.tileManager){const t=this.getLayerManager().baseMap.tileManager.worldPositionToLngLat(e);return{lat:t.y,lon:t.x}}}latLonToWorld(e){if(!s.assertType(e,"obj")||!s.assertType(e.latLon,"obj")||!s.assertParamsType(e.latLon.lat,e.latLon.lon,"num"))return;const t=e.latLon,i=this.getLayerManager().baseMap;if(!i||!i.tileManager)return;const o=i.tileManager.lngLatToWorldPosition([t.lon,t.lat]),n=void 0===e.layerId||e.layerId===this.getLayerManager().terrainLayer.id;if(void 0===o.z&&(o.z=0),!0===n)return o;const r=this.getLayerManager().getLayer(e.layerId);if(!r)return void console.warn("The layerId is invalid");const a=r.model&&r.model.rayCastVertical(o);return void 0===a&&console.warn("[BIMFACE WARNING]:The latitude and longitude are out of the data range."),a}enableGlowEffect(e){n.send(o,"enableGlowEffect"),f.GlobalData.EnableGlow=e,this.render()}showNorthArrow(){this._northArrow&&this._northArrow.show()}hideNorthArrow(){this._northArrow&&this._northArrow.hide()}isInViewFrustum(e){return this.getViewer().insideCamera(e)}setDampingFactor(e){this.getViewer().setDampingFactor(e)}enableDamping(e){this.getViewer().enableDamping(e)}isolateLayerByIds(e,t){s.assertType(e,"arr")&&this.getLayerManager()&&(this._executeDirectlyOrLayerLoaded((i=>{e.indexOf(i.id)<0&&e.indexOf(i.id.toString())<0&&i.model.isolateComponentsById([void 0],t),this.render()}),"isolateLayerByIds","loaded"),this.render())}clearIsolation(){let e=this.getLayerManager().query(".BIMLayer .FeatureLayer");for(let t=0;t<e.length;t++){const i=e[t];if(i){let e=i.model;null!=e&&e.clearIsolation()}}this.render()}cloneModel(e,t){return this.getViewer().cloneModel(e,t)}enableFullScreen(e){super.enableFullScreen(e)}setLightingMode(t){var i=this.getViewer().IBLManager;t==e.Bimface.Viewer.LightingMode.IBL?this._opt.enableIBLBackground=!0:(this._opt.enableIBLBackground=!1,i.enableIBL(!1))}getLightingMode(){return this._opt.enableIBLBackground&&e.Bimface.Viewer.LightingMode.IBL||e.Bimface.Viewer.LightingMode.Phong}loadIBLScene(e,t){var i=this,o=this.getViewer().IBLManager,n=this._data,s=n.dataEnvType==D.Local?n.sdkPath:d.staticHost;this._opt.enableIBLBackground&&(o.enableIBL(!0),this._getIBLConfig((function(n){var r=n;r[e]&&(i._opt.loadIBLScene=e,r[e].url=r[e].url.replace(d.staticHost,""),o.loadIBLMaps(`${s}/${r[e].url}`,r[e].isHDR,t,r[e].uniforms),t&&o.setSkyBoxType(e))})))}_getIBLConfig(t){var i=this,o=i._data;if(i._IBLConfig)t&&t(i._IBLConfig);else{var n=new e.Bimface.Data.IBLManagerConfig;o.dataEnvType==D.Local&&(n.resourceHost=o.sdkPath),new e.Bimface.Data.IBLManager(n).getIBLConfig((function(e){i._IBLConfig=e,t&&t(e)}))}}enableIBLBackground(e){var t=this.getViewer().IBLManager;if(e&&this._opt.enableIBLBackground){var i=this._opt.loadIBLScene;if(i==t.getSkyBoxType())t.addSkyBox(!0);else{var o="resources/IBL/Pics/"+this._opt.loadIBLScene,n=this._data,s=n.dataEnvType==D.Local?n.sdkPath:d.staticHost;t.loadSkyBox(`${s}/${o}`,!0),t.setSkyBoxType(i)}this._opt.IBLSkyBox=!0}else this._opt.IBLSkyBox=!1,t.removeSkyBox()}enableOrbit(e){f.EditorConfig.NoRotate=null!=e&&!e}_addLayerLoadedHandler(e,t,i="loaded"){s.assertType(e,"func")&&s.assertType(t,"str")&&(this._removeLayerLoadedHandler(t),this._layerLoadedHandlerList.push({handler:e,name:t,status:i}))}_removeLayerLoadedHandler(e){for(let t=0;t<this._layerLoadedHandlerList.length;t++){if(this._layerLoadedHandlerList[t].name===e)return void this._layerLoadedHandlerList.splice(t,1)}}_getLayerLoadedHandlerList(){return this._layerLoadedHandlerList}_executeDirectlyOrLayerLoaded(e,t,i){this._addLayerLoadedHandler(e,t,i),this.getLayerManager()&&this.getLayerManager().query(".BIMLayer .FeatureLayer .TilesetLayer").forEach((t=>{("rendered"===i&&["rendered","loaded"].includes(t.loadStatus)||"loaded"===i&&t.loadStatus===i)&&e(t)}))}setExposureCompensation(e){s.assertType(e,"num")&&(e>1&&(e=1),e<-1&&(e=-1),this._executeDirectlyOrLayerLoaded((t=>{t.setExposureCompensation(e)}),"setExposureCompensation","rendered"))}getExposureCompensation(){let e=[];if(this.getLayerManager()){const t=this.getLayerManager().getRootLayer().children;t.length>0&&t.forEach((t=>{t.getExposureCompensation&&e.push({id:t.id,exposureCompensation:t.getExposureCompensation()})}),"getExposureCompensation","rendered")}return e}enableWireframe(e){n.send(o,"enableWireframe"),this._opt.enableWireframe=e;this.getLayerManager().query(".BIMLayer").forEach((t=>{t.presetWireFrameVisible&&t._setWireframeVisibleByViewer(e)}))}isWireframeEnabled(){return this._opt.enableWireframe}setWireframeColor(e){return this.getViewer().setWireframeColor(e)}getWireframeColor(){const t=this.getViewer().getWireframeColor();return new e.Web.Graphics.Color(255*t.r,255*t.g,255*t.b,t.opacity)}restoreWireframeColor(){this.getViewer().restoreWireframeColor()}_autoRaiseCamera(){if(this._opt.enableAutoRaiseCamera){let e,t=this.getCamera(),i=t.getStatus();const o=i.position.z;if("world"===i.coordinateSystem){const t=new THREE.Vector3(i.position.x,i.position.y,i.position.z);e=this.worldToLatLon(t)}else"CGCS-2000"===i.coordinateSystem&&(e={lat:i.position.x,lon:i.position.y});const n=this.getLayerManager().baseMap;if(!n||!n.tileManager)return;n.tileManager.lngLatToWorldPosition([e.lon,e.lat],(function(e){const n=e.z;o<n&&(i.position.z=n+(i.position.z>0?i.position.z:10),t.setStatus(i))}))}}getExternalComponentManager(){return this.externalComponentManager&&!this.externalComponentManager.isDestroyed()||(this.externalComponentManager=new f.ExternalComponentManager(this.getViewer()),this.externalComponentManager._objects={}),this.externalComponentManager}getExternalObjectManager(){return this.externalObjectManager||(this.externalObjectManager=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(this)),this.externalObjectManager}getComponentsByRaycaster(e,t,i){i||(i=[]);let o={};this.getLayerManager().query(".BIMLayer .FeatureLayer .TilesetLayer").forEach((e=>{const t=e.getModelId();o[t]=e.id}));let n=!1;const s=this.getLayerManager().terrainLayer.id;0===i.length&&(n=!0);let r=[];for(const e of i){if(!e.layerId)continue;if(e.layerId===s){1===Object.keys(e).length&&(n=!0);continue}let t={};const i=this.getLayerManager().getLayer(e.layerId);if(!i||!0===i._isBaseMap)continue;const o=i.getModelId().toString();t.modelId=o,e.objectIds?t.userId=e.objectIds:e.objectData&&(t.objectData=e.objectData),r.push(t)}let a=!1;0===r.length&&0!==i.length&&(a=!0);const l=this.getViewer().getComponentsByRaycasterConditions(e,t,r);let h=[];return l.map((e=>{if(e.modelId&&(e.layerId=o[e.modelId],delete e.modelId),!0===e.isMap){if(!1===n)return;e.layerId=s,delete e.id,delete e.isMap,delete e.modelId}e.id&&(e.objectId=e.id,delete e.id),!0===a&&e.layerId!==s||h.push(e)})),h}_getEnuMatrix(){let{baseLatLon:e}=this._config,t=f.Tile.TileMath.fromDegrees(e.lon,e.lat,0),i=f.GIS.Transforms.eastNorthUpToFixedFrame(t);return i.invert(),i}updateSceneBoundingBox(){}}t.ViewerGIS=r}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").MiniMapConfig=function(){return{name:"defaultMap",domElement:null,width:240,height:240,viewer:null,axis:!1,host:d.resourceHost,onCameraChanged:null,inMoveOnAxisGrid:null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest")),o=function(e){var t=this,i=e;if(t._opt=i,!i.domElement)return console.log("domElement must not be empty."),!1;if(!i.viewer)return console.log("viewer is not defined."),!1;var o=i.viewer.getViewer();t._helper=new f.Extensions.MiniMapHelper(i.viewer.getViewer());o.addCallbacks("render",(function(){t._helper.renderMiniMap()})),t.init()};o.prototype={init:function(){var e=this,t=e._opt,o={},n=[];e._helper;i.ajax({url:`${t.host}/${t.viewer._data.databagId}/metadata/grids.json`,async:!1,success:function(e){for(var t=JSON.parse(e),i=[],n=0,s=t.grids.length;n<s;n++){var r=t.grids[n];r.start.X=r.start.x,r.start.Y=r.start.y,r.start.Z=r.start.z,r.end.X=r.end.x,r.end.Y=r.end.y,r.end.Z=r.end.z,i.push(r)}o.Grids=i}}),i.ajax({async:!1,url:`${t.host}/${t.viewer._data.databagId}/metadata/levels.json`,success:function(e){o.Levels=JSON.parse(e).levels}}),i.ajax({async:!1,url:`${t.host}/${t.viewer._data.databagId}/resource/model/maps/output.json`,dataType:"text",success:function(e){var i=JSON.parse(e);for(var o in i){var s=i[o];null==s.id&&(s.id=o),s.path=`${t.host}/${t.viewer._data.databagId}/resource/model/maps/${s.id}.png`,s.name=o,n.push(s)}}}),e._floors=n,e.createMap(o,n)},createMap:function(e,t){var i=this._helper,o=this._opt;i.createMiniMap(o.name,o.domElement,o.width,o.height,{left:0,bottom:0,outling:"none",position:"relative"},o.onCameraChanged,o.inMoveOnAxisGrid),e.Grids&&e.Levels&&i.setAxisGridData(o.name,e),t.length>0&&(i.setAllFloorPlaneData(o.name,t),i.setFloorPlaneId(o.name,t[0].name)),i.generateAxisGrid(o.name),i.generateFloorPlane(o.name,!1),i.showAxisGrid(o.name,o.axis),i.getMiniMap(o.name).setMapClickCallback((function(){}))},getFloors:function(){return this._floors},showAxisGrid:function(){this._helper.showAxisGrid(this._opt.name,!0)},hideAxisGrid:function(){this._helper.showAxisGrid(this._opt.name,!1)},showFloorById:function(e){var t=this,i=t._opt.name;t._helper.setFloorPlaneData(i,e),t._helper.generateFloorPlane(i,!0)},resize:function(e,t){this._helper.resize(this._opt.name,e,t)},onClick:function(e,t){var i=this._opt,o=(e=e||"default",this._helper.getMiniMap(i.name));o.setMapClickMode(e),o.setMapClickCallback((function(e){t&&"function"==typeof t&&t(e)}))},toLocation:function(e,t){var i=this._opt;this._helper.getMiniMap(i.name).toLocation(e,t)},imageCoord2WordCoord:function(e,t){var i=this._opt;return this._helper.getMiniMap(i.name).imageCoord2WordCoord({x:e,x:t})}},t.MiniMap=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Map").MapConfig=function(){return{id:"defaultMap",name:"defaultMap",domElement:null,viewer:null,width:240,height:240,isShowGrid:!1,navigationMode:"Default",resourceHost:d.resourceHost,loadAsync:!1}},function(){let t=Object.freeze({ViewerCameraChanged:"ViewerCameraChanged",MouseClicked:"MouseClicked",MouseHoveredGrid:"MouseHoveredGrid",SelectionChanged:"SelectionChanged",SelectionMoved:"SelectionMoved",SelectionEditor:"SelectionEditor",FloorPlaneChanged:"FloorPlaneChanged",Zoom:"Zoom"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Map").MapEvents=t}(),function(){let t=Object.freeze({Default:"Default",Static:"Static"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Map").MapNavigationMode=t}(); |
|
/*! ***************************************************************************** |
|
Copyright (c) Microsoft Corporation. |
|
|
|
Permission to use, copy, modify, and/or distribute this software for any |
|
purpose with or without fee is hereby granted. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH |
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, |
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR |
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
|
PERFORMANCE OF THIS SOFTWARE. |
|
***************************************************************************** */ |
|
var Ee=function(e,t){return(Ee=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function Be(e,t){function i(){this.constructor=e}Ee(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var Ie,ye=function(){function e(){this.xmlns="http://www.w3.org/2000/svg",this.material=null,this.svgNode=null,this.children=[],this.glodonColor="#11DAB7",this.position=new THREE.Vector2}return e.prototype.add=function(e){this.children.push(e)},e.prototype.getSvgNode=function(){return this.svgNode},e.prototype.abtainRenderables=function(e){e.appendChild(this.svgNode)},e.prototype.isMatch=function(e){return this.name==e},e.prototype.highlight=function(){this.svgNode.setAttribute("style","stroke:"+this.glodonColor)},e.prototype.cancelHighlight=function(){this.svgNode.setAttribute("style","stroke:"+this.material.color.getStyle())},e.prototype.locate=function(e,t){this.position.set(e,t),this.move(0,0)},e.prototype.move=function(e,t){var i=this.position.x+e,o=this.position.y+t;this.svgNode.setAttribute("transform","translate("+i+","+o+")")},e}(),Se=function(){function e(){this._boxSize=new THREE.Vector2,this._boxCenter=new THREE.Vector2,this._intersect=new THREE.Vector3}return e.prototype.cross=function(e,t,i,o){return(t.x-e.x)*(o.y-i.y)-(t.y-e.y)*(o.x-i.x)},e.prototype.getArea=function(e,t,i){return this.cross(e,t,e,i)},e.prototype.getAbsArea=function(e,t,i){return Math.abs(this.getArea(e,t,i))},e.prototype.getInterPoint=function(e,t,i,o){var n=this.getAbsArea(e,t,i),s=this.getAbsArea(e,t,o);return new THREE.Vector2((o.x*n+i.x*s)/(n+s),(o.y*n+i.y*s)/(n+s))},e.prototype.isAngleGreaterThanPi=function(e,t,i){var o=new THREE.Vector3;return o.crossVectors(e,t),!(o.dot(i)>=0)},e.prototype.normalizedPointToScreen=function(e,t){e.x=e.x*t.width,e.y=-e.y*t.height},e.prototype.screenToNormalizedPoint=function(e,t){e.x=e.x/t.width,e.y=-e.y/t.height},e.prototype.normalizedPointToWorld=function(e,t){t.getSize(this._boxSize),e.x=.5*(e.x+1)*this._boxSize.x+t.min.x,e.y=.5*(e.y+1)*this._boxSize.y+t.min.y},e.prototype.worldToNormalizedPoint=function(e,t){t.getSize(this._boxSize),e.x=(e.x-t.min.x)/this._boxSize.x*2-1,e.y=(e.y-t.min.y)/this._boxSize.y*2-1},e.prototype.toWorldPoint=function(e,t,i,o){e.x<0&&(e.x=0),e.x>t&&(e.x=t),e.y<0&&(e.y=0),e.y>i&&(e.y=i),e.x=e.x/t*2-1,e.y=-e.y/i*2+1,this.normalizedPointToWorld(e,o)},e.prototype.getCuttingBoxOnCanvas=function(e,t,i,o){var n=new THREE.Box3,s=new THREE.Vector2(e.x,e.y),r=new THREE.Vector2(t.x,t.y);this.toWorldPoint(s,i[0],i[1],o),this.toWorldPoint(r,i[0],i[1],o);var a=[];return a.push(new THREE.Vector3(s.x,s.y)),a.push(new THREE.Vector3(s.x,s.y)),a.push(new THREE.Vector3(s.x,r.y)),a.push(new THREE.Vector3(s.x,r.y)),a.push(new THREE.Vector3(r.x,r.y)),a.push(new THREE.Vector3(r.x,r.y)),a.push(new THREE.Vector3(r.x,s.y)),a.push(new THREE.Vector3(r.x,s.y)),n.setFromPoints(a),{min:{x:n.min.x,y:n.min.y,z:0},max:{x:n.max.x,y:n.max.y,z:0}}},e.prototype.canvasPointToClient=function(e,t){var i=t.mapContainer;if(!i||!t.floorPlaneBox)return null;var o=this.getContainerOffsetToClient(i);if(0===o.width||0===o.height)return null;var n=new THREE.Vector2;return n.x=e.x+o.left,n.y=e.y+o.top,n},e.prototype.getMainSceneMatrix=function(e){return e.getScene().getMatrixGlobal()},e.prototype.transformWorldPoint=function(e,t){var i=this.getMainSceneMatrix(e);t.applyMatrix4(i)},e.prototype.expandBbox=function(e,t){var i=e.getCenter(this._boxCenter);e.getSize(this._boxSize);var o=new THREE.Vector2,n=t,s=this._boxSize.x/this._boxSize.y,r=this._boxSize.x,a=this._boxSize.y;s>n?a=r/n:s<n&&(r=a*n),o.set(r,a),e.setFromCenterAndSize(i,o)},e.prototype.containsPointInMainScene=function(e,t){var i=e.getScene().getBoundingBoxWorld();return!!i&&i.containsPoint(t)},e.prototype.isMouseOverCanvas=function(e,t,i){if(e){var o=this.getContainerOffsetToClient(e),n=new THREE.Vector2;if(n.x=i.x-o.left,n.y=i.y-o.top,0===o.width||0===o.height)return!1;var s={width:t[0],height:t[0]};if(n.x>0&&n.x<s.width&&n.y>0&&n.y<s.height)return!0}return!1},e.prototype.normalizePoint=function(e,t,i){var o=new THREE.Vector2;if(e){var n=this.getContainerOffsetToClient(e),s=new THREE.Vector2;s.x=i.x-n.left,s.y=i.y-n.top;var r={width:t[0],height:t[1]};if(s.x>0&&s.x<r.width&&s.y>0&&s.y<r.height)return o.x=s.x/r.width*2-1,o.y=-s.y/r.height*2+1,new THREE.Vector2(o.x,o.y)}return null},e.getIntersectionByPoint=function(e,t,i){void 0===i&&(i=3);for(var o=null,n=i*i,s=0,r=e.length;s<r;s++){var a=e[s].intersectionPoint;if(a)if(a.distanceToSquared(t)<n){o=e[s];break}}return o},e.prototype.flyToPointWithParallelEye=function(e,t){e.cameraControl.flyToPointWithParallelEye(t)},e.prototype.getIntersectionToMinDistance=function(e,t){if(e.length<1)return null;for(var i=0,o=0,n=0,s=e.length;n<s;n++){var r=e[n];if(r.intersectionPoint){var a=new THREE.Vector2(r.intersectionPoint.x,r.intersectionPoint.y).distanceToSquared(t);0==i?i=a:i>a&&(i=a,o=n)}}return e[o]},e.prototype.getAxisGridInfoByNormalizedPoint=function(e,t){var i=t.clone(),o=e.naviData.getAxisGridBox2D();this.normalizedPointToWorld(i,o);var n=t.clone(),s={width:e.svgHalfWidth,height:e.svgHalfHeight};this.normalizedPointToScreen(n,s);var r=this.getIntersectionToMinDistance(e.naviData.getAxisGridIntersectionPoints(),n);if(r&&r.intersectionPoint){var a=new THREE.Vector2(r.intersectionPoint.x,r.intersectionPoint.y);this.screenToNormalizedPoint(a,s),this.normalizedPointToWorld(a,o);var l=Math.round(i.x-a.x),h=Math.round(i.y-a.y);return{position:i,abcName:r.abcName,numeralName:r.numeralName,offsetX:l,offsetY:h}}return{position:new THREE.Vector3,abcName:"",numeralName:"",offsetX:"",offsetY:""}},e.prototype.getAxisGridInfoByPoint=function(e,t){var i=this.getMainSceneMatrix(e.viewer),o=new THREE.Matrix4;o.copy(i).invert();var n=t.clone();n.applyMatrix4(o);var s=n.clone(),r={width:e.svgHalfWidth,height:e.svgHalfHeight},a=e.naviData.getAxisGridBox2D();this.worldToNormalizedPoint(s,a),this.normalizedPointToScreen(s,r);var l=this.getIntersectionToMinDistance(e.naviData.getAxisGridIntersectionPoints(),s);if(l&&l.intersectionPoint){var h=new THREE.Vector2(l.intersectionPoint.x,l.intersectionPoint.y);this.screenToNormalizedPoint(h,r),this.normalizedPointToWorld(h,a);var c=Math.round(n.x-h.x),d=Math.round(n.y-h.y);return{position:n,abcName:l.abcName,numeralName:l.numeralName,offsetX:c,offsetY:d}}return{position:new THREE.Vector3,abcName:"",numeralName:"",offsetX:"",offsetY:""}},e.prototype.calculateEdgePositionCameraOutBounds=function(e,t,i){var o=function(e,t){for(var i=!1,o=0,n=e.length;o<n;o++)if(this.isEqualBetweenPoints(t,e[o],this.epsilon)){i=!0;break}return i},n=i.clone();if(n.min.x-=.5,n.min.y-=.5,n.max.x+=.5,n.max.y+=.5,!n.containsPoint(e)){var s=[],r=new THREE.Vector3(e.x,e.y,0),a=new THREE.Ray(r,t),l=new THREE.Vector3(i.min.x,i.min.y,0),h=new THREE.Vector3(-1,0,0),c=new THREE.Plane;if(c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&s.push(this._intersect),l.set(i.max.x,i.max.y,0),h.set(-1,0,0),c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&s.push(this._intersect),l.set(i.min.x,i.min.y,0),h.set(0,1,0),c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&(o(this._intersect,s)||s.push(this._intersect)),l.set(i.max.x,i.max.y,0),h.set(0,1,0),c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&(o(this._intersect,s)||s.push(this._intersect)),2!=s.length)return null;var d=s[0],g=s[1].clone().sub(d).normalize();return this.isEqualBetweenPoints(g,t,1e-5)?s[0]:s[1]}return null},e.prototype.getContainerOffsetToClient=function(e){var t,i;if(e!=document){var o=(i=e).getBoundingClientRect?function(e){var t=e.getBoundingClientRect(),i=document.body,o=document.documentElement,n=o.clientTop||i.clientTop,s=o.clientLeft||i.clientLeft,r=t.top-n,a=t.left-s;return{top:Math.round(r),left:Math.round(a)}}(i):function(e){for(var t=0,i=0;e;)t+=e.offsetTop,i+=e.offsetLeft,e=e.offsetParent;var o=document.body,n=document.documentElement;return{top:t-=window.pageYOffset||n.scrollTop||o.scrollTop,left:i-=window.pageXOffset||n.scrollLeft||o.scrollLeft}}(i);t={width:e.offsetWidth,height:e.offsetHeight,left:o.left,top:o.top}}else t={width:window.innerWidth,height:window.innerHeight,left:0,top:0};return t},e.prototype.isEqualBetweenPoints=function(e,t,i){i=i||1e-4;var o=e.x-t.x,n=e.y-t.y;return!(Math.sqrt(o*o+n*n)>i)},e}(),Me=function(e){function t(t,i,o,n){var s=e.call(this)||this;return s.start=t,s.end=i,s.material=o,s.name=n,s.build(),s}return Be(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"line");e.setAttribute("x1",this.start.x),e.setAttribute("y1",this.start.y),e.setAttribute("x2",this.end.x),e.setAttribute("y2",this.end.y);var t=this.material;t instanceof THREE.LineBasicMaterial&&e.setAttribute("style","fill: none; stroke: "+t.color.getStyle()+"; stroke-width: "+t.linewidth+"; stroke-opacity: "+t.opacity+"; stroke-linecap: "+t.linecap+"; stroke-linejoin: "+t.linejoin),this.svgNode=e},t}(ye),ve=function(e){function t(t,i,o){var n=e.call(this)||this;return n.arcPoints=t,n.material=i,n.name=o,n.build(),n}return Be(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"polyline");e.setAttribute("points",this.arcPoints.map((function(e){return e.x+","+e.y})).join(" "));var t=this.material;t instanceof THREE.LineBasicMaterial&&e.setAttribute("style","fill: none; stroke: "+t.color.getStyle()+"; stroke-width: "+t.linewidth+"; stroke-opacity: "+t.opacity+"; stroke-linecap: "+t.linecap+"; stroke-linejoin: "+t.linejoin),this.svgNode=e},t}(ye),xe=function(e){function t(t,i){var o=e.call(this)||this;return o.center=t,o.literal=i,o.fontSize=8,o.textColor=new THREE.Color(.6,.6,.6),o.build(),o}return Be(t,e),t.prototype.build=function(){var e=this.center.x,t=this.center.y;if("NaN"!=e.toString()&&"NaN"!=t.toString()){var i=document.createElementNS(this.xmlns,"text");i.setAttribute("style","font-size:"+this.fontSize+"px; fill: none; stroke: "+this.textColor.getStyle()+"; stroke-width: 1"),i.innerHTML=this.literal,i.textContent=this.literal;i.getBoundingClientRect();var o=e-3.5,n=t+2.8;this.svgNode=i,this.locate(o,n)}},t}(ye),be=function(e){function t(t,i){var o=e.call(this)||this;return o.name=i,o.labelPoints=t,o.build(),o}return Be(t,e),t.prototype.build=function(){var e=this;this.labelPoints.forEach((function(t){e.add(new xe(t,e.name))}))},t.prototype.abtainRenderables=function(e){for(var t=0;t<this.children.length;t++){this.children[t].abtainRenderables(e)}},t.prototype.move=function(e,t){this.children.forEach((function(i){i.move(e,t)}))},t}(ye),Ue=function(e){function t(t,i,o,n){var s=e.call(this)||this;return s.intersections=[],s.lineElements=[],s.horizLineElements=[],s.verticalLineElements=[],s.width=i[0],s.height=i[1],s.bIsShowAxisGrid=o,s.multiplyZoomFactor=n,s.algorithm=new Se,s.materialGrid=new THREE.LineBasicMaterial({color:10066329,linewidth:.5}),s.children=[],s.resourceGrids=t,s.boundingBox=new THREE.Box2,s.realBoundingBox=new THREE.Box2,s.clipBox2D=new THREE.Box2(new THREE.Vector2(-s.width/2,-s.height/2),new THREE.Vector2(s.width/2,s.height/2)),s.axisGridNumberInterval=3,s.scratchVector=new THREE.Vector3,s.boxSize=new THREE.Vector2,s.isValid()&&s.build(),s}return Be(t,e),t.prototype.build=function(){var e=this,t=this.getAxisGridBox(),i={width:this.width/2,height:this.height/2},o=function(o){var n=new THREE.Vector2(o.x,o.y);return e.algorithm.worldToNormalizedPoint(n,t),e.algorithm.normalizedPointToScreen(n,i),n},n=this.materialGrid;this.resourceGrids.forEach((function(t){var i=t.name,s=t.geometry,r=t.label;s.forEach((function(t){if("Line"===t.lineType){var s=t.startPoint,r=t.endPoint,a=o(s),l=o(r),h=l.clone().sub(a).normalize();e.add(new Me(a,l,n,i)),Math.abs(h.x)>=Math.abs(h.y)?e.horizLineElements.push({name:i,v1:a,v2:l,material:n}):e.verticalLineElements.push({name:i,v1:a,v2:l,material:n})}else if("Arc"===t.lineType){var c=t.points.map(o);e.add(new ve(c,n,i))}}));var a=r.positions.map(o);e.add(new be(a,i))})),this.lineElements.push(this.horizLineElements),this.lineElements.push(this.verticalLineElements),this.calculateIntersections()},t.prototype.calculateAxisGridBox=function(e,t,i){var o=this;this.boundingBox.makeEmpty(),this.resourceGrids.forEach((function(e){e.geometry.forEach((function(e){if("Line"===e.lineType){var t=e.startPoint,i=e.endPoint,n=new THREE.Vector2(t.x,t.y),s=new THREE.Vector2(i.x,i.y);e.points=[n,s]}else if("Arc"===e.lineType){var r=window.CLOUD.AxisGridManager.getArcGridPoints(e);e.points=r}e.points.forEach((function(e){return o.boundingBox.expandByPoint(e)}))}))})),this.realBoundingBox=this.boundingBox.clone();var n=this.boundingBox.getCenter(this.scratchVector);this.boundingBox.getSize(this.boxSize);var s=new THREE.Vector2,r=e/t,a=this.boxSize.x/this.boxSize.y,l=this.boxSize.x,h=this.boxSize.y,c=4*(i+4)*this.multiplyZoomFactor;a>r?(this.bIsShowAxisGrid&&(l=this.boxSize.x*e/(e-c)),h=l/r):a<r&&(this.bIsShowAxisGrid&&(h=this.boxSize.y*t/(t-c)),l=h*r),s.set(l,h),this.boundingBox.setFromCenterAndSize(n,s)},t.prototype.getAxisGridBox=function(e){return this.isValid()&&this.calculateAxisGridBox(this.width,this.height,10),e?this.realBoundingBox:this.boundingBox},t.prototype.isEmpty=function(){return this.boundingBox.getSize(this.boxSize),0==this.boxSize.length()},t.prototype.isValid=function(){return!!this.resourceGrids},t.prototype.calculateIntersections=function(){for(var e,t,i,o,n,s,r,a,l=this.horizLineElements.length,h=this.verticalLineElements.length,c=0;c<l;c++){o=(e=this.horizLineElements[c]).name,n=e.v1.clone(),s=e.v2.clone();for(var d=0;d<h;d++){i=(t=this.verticalLineElements[d]).name,r=t.v1.clone(),a=t.v2.clone();var g=!1;r.x<=Math.max(n.x,s.x)&&r.x>=Math.min(n.x,s.x)&&n.y<=Math.max(r.y,a.y)&&n.y>=Math.min(r.y,a.y)&&(g=!0);var u=null;g&&(u=this.algorithm.getInterPoint(n,s,r,a)),this.intersections.push({intersectionPoint:u,horizLine:[n.clone(),s.clone()],verticalLine:[r.clone(),a.clone()],abcName:o,numeralName:i})}}},t.prototype.getIntersections=function(){return this.intersections},t.prototype.abtainRenderables=function(e){for(var t=0;t<this.children.length;t++){this.children[t].abtainRenderables(e)}},t.prototype.getGridLineByName=function(e){for(var t=this.children,i=0;i<t.length;i++){var o=t[i];if(o instanceof Me&&o.isMatch(e))return o}},t.prototype.move=function(e,t){this.children.forEach((function(i){i.move(e,t)}))},t}(ye),De=function(e){function t(t,i,o){var n=e.call(this)||this;return n.imageUrl=t,n.width=i[0],n.height=i[1],n.offsetX=i[2],n.offsetY=i[3],n.isFlip=o,n.build(),n}return Be(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"image");e.href.baseVal=this.imageUrl,e.setAttribute("herf",this.imageUrl),e.setAttribute("preserveAspectRatio","none"),e.setAttribute("width",this.width+""),e.setAttribute("height",this.height+""),e.setAttribute("x",-.5*this.width+""),e.setAttribute("y",-.5*this.height+""),this.isFlip&&e.setAttribute("transform","scale(-1,1)"),this.svgNode=e,this.locate(this.offsetX,this.offsetY)},t.prototype.move=function(e,t){var i=this.position.x+e,o=this.position.y+t;return this.isFlip?this.svgNode.setAttribute("transform","translate("+i+", "+o+")\n scale("+"-1,1)"):this.svgNode.setAttribute("transform","translate("+i+","+o+")"),{x:i,y:o}},t}(ye);!function(e){e.Default="Editor",e.PICK_Editor="Pick",e.RECTPICK_Editor="RectPick",e.PAN_Editor="Pan",e.Zoom_Editor="Zoom"}(Ie||(Ie={}));var Re,Ve,Qe=function(){function e(){this.bIsMouseDown=!1,this.name=Ie.Default}return e.prototype.onMouseDown=function(e){},e.prototype.onMouseMove=function(e){},e.prototype.onMouseUp=function(e){},e.prototype.onMouseWheel=function(e){},e.prototype.getName=function(){return this.name},e}();!function(e){e[e.RECTPICK_MOUSE_DOWN=1e3]="RECTPICK_MOUSE_DOWN",e[e.RECTPICK_MOUSE_MOVE=1001]="RECTPICK_MOUSE_MOVE",e[e.RECTPICK_MOUSE_UP=1002]="RECTPICK_MOUSE_UP",e[e.PICK_MOUSE_DOWN=2e3]="PICK_MOUSE_DOWN",e[e.PICK_MOUSE_MOVE=2001]="PICK_MOUSE_MOVE",e[e.PICK_MOUSE_UP=2002]="PICK_MOUSE_UP",e[e.Floor_Plane_Changed=3e3]="Floor_Plane_Changed",e[e.Floor_Plane_Changed_For_Panel=3001]="Floor_Plane_Changed_For_Panel",e[e.Resize=4e3]="Resize",e[e.Camera_Height_Changed=5e3]="Camera_Height_Changed",e[e.ZOOM_MOUSE_WHEEL=6e3]="ZOOM_MOUSE_WHEEL",e[e.PAN_MOUSE_MOVE=7e3]="PAN_MOUSE_MOVE",e[e.Minimap_Rect_Changed=8e3]="Minimap_Rect_Changed",e[e.Minimap_Rect_Destroyed=8001]="Minimap_Rect_Destroyed"}(Re||(Re={})),function(e){e[e.Left=0]="Left",e[e.Middle=1]="Middle",e[e.Right=2]="Right"}(Ve||(Ve={}));var ke,Fe=function(){function e(){this.eventDispatcher=new THREE.EventDispatcher}return e.prototype.addEventListener=function(e,t){this.eventDispatcher.addEventListener(e,t)},e.prototype.hasEventListener=function(e){this.eventDispatcher.hasEventListener(e)},e.prototype.removeEventListener=function(e,t){this.eventDispatcher.removeEventListener(e,t)},e.prototype.dispatchEvent=function(e){this.eventDispatcher.dispatchEvent(e)},e}();!function(e){e.Min="Min",e.Max="Max"}(ke||(ke={}));var Te=function(e){function t(t,i){var o=e.call(this)||this;return o.totalZoomFactors=[],o.zoomFactors=[],o.lastZoomFactor=1,o.currentIdx=0,o.name=Ie.Zoom_Editor,o.eventManager=i,o.vfData=t.getData(),o.vfViewer=t,o}return Be(t,e),t.prototype.onMouseWheel=function(e){var t=(e.deltaY||-e.wheelDelta||e.detail)<0,i=-1;if(t?this.currentIdx<this.zoomFactors.length-1&&(this.currentIdx++,i=this.zoomFactors[this.currentIdx]):this.currentIdx>0&&(this.currentIdx--,i=this.zoomFactors[this.currentIdx]),!(i<0||this.lastZoomFactor==i)){this.lastZoomFactor=i,1==i&&Pe.clear();var o=this.vfData.getOriginSize(),n=new THREE.Vector2(e.offsetX-o[0]/2,e.offsetY-o[1]/2),s=this.zoomFactors[this.currentIdx],r=0,a=0;if(t){var l=s/(g=this.zoomFactors[this.currentIdx-1]),h=[],c=this.vfData.getCorner("Virtual","LB");c[0]-=n.x,c[1]-=n.y,h.push(c[0]*l+n.x),h.push(c[1]*l+n.y),this.vfData.setZoomFactor(s);var d=this.vfData.getCorner("Virtual","LB");this.vfData.setZoomFactor(g),r=h[0]-d[0],a=h[1]-d[1]}else{var g=this.zoomFactors[this.currentIdx+1],u=this.boundsChecking(s,g,n);r=u[0],a+=u[1]}Pe.panOffsetX+=r,Pe.panOffsetY+=a,Pe.panOffsetXForCamera+=r,Pe.panOffsetYForCamera+=a,this.vfData.setZoomFactor(i),this.vfViewer.destroy(),this.vfData.destroy(),this.vfData.build(),this.vfViewer.update(),this.vfData.updateMovement(),this.updateZoomAndPan(),this.eventManager.dispatchEvent({type:Re.ZOOM_MOUSE_WHEEL,data:{offsetX:Pe.panOffsetX,offsetY:Pe.panOffsetY,zoomFactor:i}})}},t.prototype.boundsChecking=function(e,t,i){var o=e/t,n=this.vfData.getCorner("Virtual","LB"),s=this.vfData.getCorner("Virtual","LT"),r=this.vfData.getCorner("Virtual","RT"),a=this.vfData.getCorner("Virtual","RB"),l=[0,0],h=(n[0]-i.x)*o+i.x,c=(n[1]-i.y)*o+i.y;this.vfData.setZoomFactor(e);var d=this.vfData.getCorner("Virtual","LB");this.vfData.setZoomFactor(t),l[0]=h-d[0],l[1]=c-d[1];var g=0,u=0,p=this.vfData.getCorner("Origin","LB");h>p[0]&&(l[0]+=p[0]-h,g++),c<p[1]&&(l[1]+=p[1]-c,u++),h=(s[0]-i.x)*o+i.x,c=(s[1]-i.y)*o+i.y;var A=this.vfData.getCorner("Origin","LT");h>A[0]&&0==g&&(l[0]+=A[0]-h,g++),c>A[1]&&0==u&&(l[1]+=A[1]-c,u++),h=(r[0]-i.x)*o+i.x,c=(r[1]-i.y)*o+i.y;var m=this.vfData.getCorner("Origin","RT");h<m[0]&&0==g&&(l[0]+=m[0]-h,g++),c>m[1]&&0==u&&(l[1]+=m[1]-c,u++),h=(a[0]-i.x)*o+i.x,c=(a[1]-i.y)*o+i.y;var w=this.vfData.getCorner("Origin","RB");return h<w[0]&&0==g&&(l[0]+=w[0]-h,g++),c<w[1]&&0==u&&(l[1]+=w[1]-c,u++),l},t.prototype.enableMode=function(e){if(e==ke.Min)this.zoomFactors=this.totalZoomFactors;else if(e==ke.Max){this.zoomFactors=this.totalZoomFactors.slice(1,this.totalZoomFactors.length);for(var t=1;t<this.zoomFactors.length;t++)this.zoomFactors[t]/=this.zoomFactors[0];this.zoomFactors[0]=1}this.currentIdx=0},t.prototype.setZoomFactors=function(e){this.totalZoomFactors=e,this.zoomFactors=e},t.prototype.setZoonIndex=function(e){this.currentIdx=e},t.prototype.getZoonIndex=function(){return this.currentIdx},t.prototype.updateZoomAndPan=function(){var e=this.vfData.getCorner("Origin","LT"),i=this.vfData.getCorner("Virtual","LT");t.offsetXForZoomAndPan=e[0]-i[0],t.offsetYForZoomAndPan=e[1]-i[1]},t.clear=function(){t.offsetXForZoomAndPan=0,t.offsetYForZoomAndPan=0},t.offsetXForZoomAndPan=0,t.offsetYForZoomAndPan=0,t}(Qe),Pe=function(e){function t(i,o){var n=e.call(this)||this;return n.name=Ie.PAN_Editor,n.eventManager=o,n.vfData=i.getData(),n.bIsMouseDown=!1,n.mouseDownPos=new THREE.Vector2,t.panOffsetX=0,t.panOffsetY=0,n}return Be(t,e),t.prototype.onMouseDown=function(e){this.bIsMouseDown=!0,this.mouseDownPos.setX(e.clientX),this.mouseDownPos.setY(e.clientY)},t.prototype.onMouseMove=function(e){if(0!=this.bIsMouseDown&&1!=this.vfData.getZoomFactor()){var i=e.clientX-this.mouseDownPos.x,o=e.clientY-this.mouseDownPos.y,n=this.boundsChecking(i,o);i=n[0],o=n[1],t.panOffsetX+=i,t.panOffsetY+=o,t.panOffsetXForCamera+=i,t.panOffsetYForCamera+=o,this.vfData.updateMovement(),this.updateZoomAndPan(),this.mouseDownPos.setX(e.clientX),this.mouseDownPos.setY(e.clientY)}},t.prototype.onMouseUp=function(e){if(0!=this.bIsMouseDown&&1!=this.vfData.getZoomFactor()){var i=e.clientX-this.mouseDownPos.x,o=e.clientY-this.mouseDownPos.y,n=this.boundsChecking(i,o);i=n[0],o=n[1],t.panOffsetX+=i,t.panOffsetY+=o,t.panOffsetXForCamera+=i,t.panOffsetYForCamera+=o,this.vfData.updateMovement(),this.updateZoomAndPan(),this.eventManager.dispatchEvent({type:Re.PAN_MOUSE_MOVE,data:{offsetX:t.panOffsetX,offsetY:t.panOffsetY,zoomFactor:this.vfData.getZoomFactor()}}),this.bIsMouseDown=!1}},t.prototype.boundsChecking=function(e,t){var i=this.vfData.getCorner("Origin","LB"),o=this.vfData.getCorner("Virtual","LB"),n=this.vfData.getCorner("Origin","RT"),s=this.vfData.getCorner("Virtual","RT");if(e>0)(r=i[0]-o[0])<=e&&(e=r);else if(e<0){var r;(r=n[0]-s[0])>=e&&(e=r)}if(t<0)(a=i[1]-o[1])>=t&&(t=a);else if(t>0){var a;(a=n[1]-s[1])<=t&&(t=a)}return[e,t]},t.prototype.updateZoomAndPan=function(){var e=this.vfData.getCorner("Origin","LT"),t=this.vfData.getCorner("Virtual","LT");Te.offsetXForZoomAndPan=e[0]-t[0],Te.offsetYForZoomAndPan=e[1]-t[1]},t.clear=function(){t.panOffsetX=0,t.panOffsetY=0,t.panOffsetXForCamera=0,t.panOffsetYForCamera=0},t}(Qe),Le=function(e){function t(){var t=e.call(this)||this;return t.cameraCircleNode=null,t.cameraArrowNode=null,t.rotateAngle=0,t.panelSize=[298,198],t.build(),t}return Be(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"g");e.setAttribute("fill","none"),e.setAttribute("fill-rule","evenodd"),e.setAttribute("stroke-width","1");var t=document.createElementNS(this.xmlns,"circle");t.setAttribute("r","4.5"),t.setAttribute("stroke","#FFFFFF"),t.setAttribute("fill","#32D3A6"),this.cameraCircleNode=t;var i=document.createElementNS(this.xmlns,"path");i.setAttribute("d","M5.94925387,0 C18.4132389,0 28.6581001,9.50119823 29.8362478,21.6560048 L5.94925387,25 Z"),i.setAttribute("fill","url(#radialGradient-1)"),i.setAttribute("transform","translate(13,-21)rotate(50)"),this.cameraArrowNode=i;var o=document.createElementNS(this.xmlns,"defs"),n=document.createElementNS(this.xmlns,"radialGradient"),s=document.createElementNS(this.xmlns,"stop"),r=document.createElementNS(this.xmlns,"stop");n.setAttribute("cx","0%"),n.setAttribute("cy","100%"),n.setAttribute("fx","0%"),n.setAttribute("fy","100%"),n.setAttribute("r","104.321936%"),n.setAttribute("id","radialGradient-1"),s.setAttribute("stop-color","#36D4A8"),s.setAttribute("offset","0%"),r.setAttribute("stop-color","#36D4A8"),r.setAttribute("offset","100%"),r.setAttribute("stop-opacity","0"),o.append(n),n.append(s),n.append(r),e.appendChild(o),e.appendChild(t),e.appendChild(i),this.svgNode=e},t.prototype.setCircleAttribute=function(e,t){this.cameraCircleNode.setAttribute(e,t)},t.prototype.setArrowAttribute=function(e,t){this.cameraArrowNode.setAttribute(e,t)},t.prototype.rotate=function(e){e&&(this.rotateAngle=e);var t=this.svgNode.getAttribute("transform");t+="rotate("+this.rotateAngle+")",this.svgNode.setAttribute("transform",t)},t.prototype.setOffsetAndRotate=function(e,t,i){var o=this.setOffsetBoundary(e,t);this.locate(o.X,o.Y),this.rotate(i),Pe.panOffsetXForCamera=0,Pe.panOffsetYForCamera=0},t.prototype.move=function(e,t){var i=this.position.x+e,o=this.position.y+t,n=this.setOffsetBoundary(i,o);this.svgNode.setAttribute("transform","translate("+n.X+","+n.Y+")")},t.prototype.setOpacity=function(e){this.svgNode.setAttribute("opacity",e)},t.prototype.setCameraArrowOpacity=function(e){this.cameraArrowNode.setAttribute("opacity",e)},t.prototype.setCameraCircleOpacity=function(e){this.cameraCircleNode.setAttribute("opacity",e)},t.prototype.setBigCamera=function(){this.cameraCircleNode.setAttribute("r","4.5"),this.cameraArrowNode.setAttribute("transform","translate(13,-21)rotate(50)")},t.prototype.setSmallCamera=function(){this.cameraCircleNode.setAttribute("r","2"),this.cameraArrowNode.setAttribute("transform","translate(20,-21)rotate(50)")},t.prototype.setPanelSize=function(e){this.panelSize=e},t.prototype.setOffsetBoundary=function(e,t){var i=this.panelSize[0]/2-6,o=-this.panelSize[0]/2+6,n=this.panelSize[1]/2-6,s=-this.panelSize[1]/2+6;return e>=i||e<=o||t>=n||t<=s?this.setSmallCamera():this.setBigCamera(),e>i&&(e=i),e<o&&(e=o),t>n&&(t=n),t<s&&(t=s),{X:e,Y:t}},t}(ye),Ke=function(){function e(e){this.resourceGrids=e,this.floorPlaneBox=new THREE.Box2}return e.prototype.get=function(){return this.resourceGrids},e}(),Ge=function(){function e(e){this.resourceLevels=e,this.elevations=[],this.offsetForPlane=235,this.createElevationsInOrder()}return e.prototype.createElevationsInOrder=function(){var e=this.resourceLevels;for(var t in e)null!=e[t].elevation&&this.elevations.push(e[t].elevation);this.elevations.sort((function(e,t){return e-t})),this.elevations[this.elevations.length-1]-this.elevations[0]<this.offsetForPlane&&(this.offsetForPlane/=1e3)},e.prototype.getMinMaxElevations=function(e){var t=[0,0],i=this.resourceLevels;for(var o in i)if(i[o].name==e){t[0]=i[o].elevation-this.offsetForPlane;break}for(var n=0;n<this.elevations.length;n++)if(this.elevations[n]-t[0]-this.offsetForPlane>1e-6){t[1]=this.elevations[n],t[1]-=this.offsetForPlane;break}return t},e.prototype.getElevation=function(e){for(var t=this.resourceLevels,i=0;i<t.length;i++){var o=t[i];if(o.id==e)return o.elevation}},e.prototype.getElevationsInOrder=function(){return this.elevations},e.prototype.getLevelIdByElevation=function(e){for(var t=this.resourceLevels,i=0;i<t.length;i++){var o=t[i];if(o.elevation==e)return o.id}},e}(),qe=function(){function e(e){this.resourcePlanes=e}return e.prototype.find=function(e){for(var t=0;t<this.resourcePlanes.length;t++){var i=this.resourcePlanes[t];if(i.id==e)return i}},e.prototype.getFloorPlaneBox=function(e){var t=this.find(e);return t?t.boundingBox||t.BoundingBox:void 0},e.prototype.getUrl=function(e){var t=this.find(e);return t?t.path||t.Path:void 0},e.prototype.getElevation=function(e){var t=this.find(e);return t?t.Elevation:void 0},e.prototype.getName=function(e){var t=this.find(e);return t?t.name||t.Name:void 0},e}(),He=function(e){function t(t,i){var o=e.call(this)||this;return o.radius=t,o.material=i,o.build(),o}return Be(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"circle");e.setAttribute("r",this.radius+""),e.setAttribute("fill",this.glodonColor),e.setAttribute("style","fill: none; stroke: "+this.glodonColor),e.setAttribute("opacity","0"),this.svgNode=e},t.prototype.highlight=function(){this.svgNode.setAttribute("style","stroke:"+this.glodonColor),this.svgNode.setAttribute("opacity","1")},t.prototype.cancelHighlight=function(){this.svgNode.setAttribute("style","stroke:rgb(153,153,153)"),this.svgNode.setAttribute("opacity","0")},t.prototype.setOffset=function(e,t){this.svgNode.setAttribute("transform","translate("+e+","+t+")")},t}(ye),Ye=function(e){function t(){var t=e.call(this)||this;return t.tipNodeBackgroundColor="#fff",t.tipNodeColor="#000",t.initialize(),t.build(),t}return Be(t,e),t.prototype.initialize=function(){var e=".cloud-tip:after { box-sizing: border-box;display: inline;font-size: 10px;width: 100%;line-height: 1;color: "+this.tipNodeBackgroundColor+";content: '\\25BC';position: absolute;text-align: center;margin: -4px 0 0 0;top: 100%;left: 0;}";this.loadStyleString(e)},t.prototype.loadStyleString=function(e){var t=document.createElement("style");t.type="text/css",t.appendChild(document.createTextNode(e)),document.getElementsByTagName("head")[0].appendChild(t)},t.prototype.build=function(){var e=document.createElement("div");e.className="cloud-tip",e.style.position="absolute",e.style.opacity="0",e.style.background=this.tipNodeBackgroundColor,e.style.color=this.tipNodeColor,e.style.padding="0 8px 0 8px",e.style.borderRadius="2px",e.style.fontSize="8px",e.style.zIndex="10",this.svgNode=e},t.prototype.show=function(){this.svgNode.style.opacity=1,this.svgNode.className="cloud-tip"},t.prototype.hide=function(){this.svgNode.style.opacity=0,this.svgNode.className=""},t.prototype.setContent=function(e){this.svgNode.innerHTML=e},t.prototype.setOffset=function(e,t){var i=this.svgNode.getBoundingClientRect();this.svgNode.style.left=e[0]/2+t[0]-.5*i.width+"px",this.svgNode.style.top=e[1]/2+t[1]-i.height-12+"px"},t}(ye),je=function(){function e(){this.zoomFactor=1,this.bboxLengthStages=[15e4,3e5],this.zoomFactors1=[1,7/4,2.5,10/3],this.zoomFactors2=[1,7/4,2.5,14/3,65/12,20/3],this.zoomFactors3=[1,7/4,2.5,10/3,14/3,65/12,20/3,49/6,10],this.needFlip=!1,this.floorPlaneId=null,this.drawableItems=[],this.width=298,this.height=198,this.bIsShowAxisGrid=!1,this.bIsShowCameraNode=!0,this.bIsShowFloorPlane=!0,this.floorPlaneBox=new THREE.Box3,this.axisGridNode=null,this.cameraNode=null,this.floorPlaneNode=null,this.algorithm=new Se,this.glodonColor="#11DAB7",this.scratchVector=new THREE.Vector2,this.scratchVector_2=new THREE.Vector2,this.scratchVector_3=new THREE.Vector2,this.scratchVector_4=new THREE.Vector2,this.axisGridBoxSize=new THREE.Vector2,this.floorPlaneBox2DSize=new THREE.Vector2}return e.prototype.setAxisGrids=function(e){this.dataAxisGrid=new Ke(e.Grids),this.dataLevels=new Ge(e.Levels)},e.prototype.setPlanes=function(e){this.dataFloorPlanes=new qe(e)},e.prototype.setFloorPlaneId=function(e){this.floorPlaneId=e,this.build()},e.prototype.setFlip=function(e){this.needFlip=e},e.prototype.getFloorPlaneId=function(){return this.floorPlaneId},e.prototype.getFloorPlaneBox=function(){var e=this.dataFloorPlanes.getFloorPlaneBox(this.floorPlaneId),t=this.dataFloorPlanes.getName(this.floorPlaneId),i=this.dataLevels.getMinMaxElevations(t);return e&&(this.floorPlaneBox.min=new THREE.Vector3(e.Min.X||e.Min.x,e.Min.Y||e.Min.y,i[0]),this.floorPlaneBox.max=new THREE.Vector3(e.Max.X||e.Max.x,e.Max.Y||e.Max.y,i[1])),this.floorPlaneBox},e.prototype.setSize=function(e,t){this.width=e,this.height=t},e.prototype.getSize=function(){return[this.width*this.zoomFactor,this.height*this.zoomFactor]},e.prototype.getOriginSize=function(){return[this.width,this.height]},e.prototype.getGlodonColor=function(){return this.glodonColor},e.prototype.build=function(){var e=!!this.dataAxisGrid&&this.dataAxisGrid.get();if(this.axisGridNode=new Ue(e,this.getSize(),this.bIsShowAxisGrid,this.getZoomFactor()),this.axisGridNode.isEmpty()&&(this.bIsShowAxisGrid=!1),this.bIsShowAxisGrid&&this.drawableItems.push(this.axisGridNode),this.buildFloorPlane(),this.bIsShowCameraNode){this.cameraNode=new Le;var t=this.getOriginSize();this.cameraNode.setPanelSize(t),this.drawableItems.push(this.cameraNode)}this.intersectPoint=new He(3),this.drawableItems.push(this.intersectPoint),this.tipNode=new Ye,this.drawableItems.push(this.tipNode)},e.prototype.buildFloorPlane=function(){if(this.bIsShowFloorPlane){var e=this.getFloorPlaneBox();this.getAxisGridBox2D().containsBox(e)||console.warn("the bounding-box of axis-grid is not contains the bounding-box of floor-plane!");var t=this.getFloorPlaneParams();this.floorPlaneNode=new De(this.dataFloorPlanes.getUrl(this.floorPlaneId),t,this.needFlip),this.drawableItems.push(this.floorPlaneNode)}},e.prototype.getFloorPlaneParams=function(){var e=this.getFloorPlaneBox(),t=this.getAxisGridBox2D(),i=new THREE.Box2(new THREE.Vector2(e.min.x,e.min.y),new THREE.Vector2(e.max.x,e.max.y)),o=this.getSize()[0],n=o/this.getSize()[1];t.getSize(this.axisGridBoxSize),this.axisGridBoxSize.x/this.axisGridBoxSize.y!=n&&(this.algorithm.expandBbox(t,n),t.getSize(this.axisGridBoxSize));var s=[],r=o/this.axisGridBoxSize.x;i.getSize(this.floorPlaneBox2DSize);var a=this.floorPlaneBox2DSize.x*r,l=this.floorPlaneBox2DSize.y*r;s.push(a,l);var h=i.getCenter(this.scratchVector).clone().sub(t.getCenter(this.scratchVector_2));return h.x*=r,h.y*=-r,s.push(h.x,h.y),s},e.prototype.updateFloorPlane=function(e){for(var t=this.dataLevels.getElevationsInOrder(),i=this.getElevationById(),o=void 0,n=void 0,s=0;s<t.length;s++){if((r=t[s])>e){n=r;break}}for(s=t.length-1;s>=0;s--){var r;if((r=t[s])<e){o=r;break}}if(null==o){var a=this.dataLevels.getLevelIdByElevation(n);return this.floorPlaneId=a,!0}if(null==n){a=this.dataLevels.getLevelIdByElevation(o);return this.floorPlaneId=a,!0}if(i>=o&&i<n)return!1;a=this.dataLevels.getLevelIdByElevation(o);return this.floorPlaneId=a,!0},e.prototype.getDataFloorPlanes=function(){return this.dataFloorPlanes},e.prototype.getAxisGridBox2D=function(e){var t=this.axisGridNode.getAxisGridBox(e);if(0==t.getSize(this.axisGridBoxSize).length()){var i=this.getFloorPlaneBox();if(e)return i;var o=(new THREE.Box2).set(new THREE.Vector2(i.min.x,i.min.y),new THREE.Vector2(i.max.x,i.max.y)),n=o.getCenter(this.scratchVector);o.getSize(this.scratchVector_4);var s=new THREE.Vector2,r=this.width/this.height,a=this.scratchVector_4.x/this.scratchVector_4.y,l=this.scratchVector_4.x,h=this.scratchVector_4.y;return a>r?h=l/r:a<r&&(l=h*r),s.set(l,h),o.setFromCenterAndSize(n,s),o}return t},e.prototype.getDrawableItems=function(){return this.drawableItems},e.prototype.destroy=function(){this.drawableItems=[]},e.prototype.setIsShowAxisGrid=function(e){this.bIsShowAxisGrid=e},e.prototype.getCameraNode=function(){for(var e=this.drawableItems,t=0;t<e.length;t++){var i=e[t];if(i instanceof Le)return i}},e.prototype.getElevationById=function(){return this.dataLevels.getElevation(this.floorPlaneId)},e.prototype.updateMovement=function(){this.getFloorPlaneNode().move(Pe.panOffsetX,Pe.panOffsetY);var e=this.getAxisGridNode();e&&e.move(Pe.panOffsetX,Pe.panOffsetY);var t=this.getCameraNode();t.move(Pe.panOffsetXForCamera,Pe.panOffsetYForCamera),t.rotate()},e.prototype.getCorner=function(e,t){var i=[],o=[];"Origin"==e?(i=[0,0],o=this.getOriginSize()):"Virtual"==e&&(i=[Pe.panOffsetX,Pe.panOffsetY],o=this.getSize());var n=0,s=0;switch(t){case"LB":n=i[0]-o[0]/2,s=i[1]+o[1]/2;break;case"LT":n=i[0]-o[0]/2,s=i[1]-o[1]/2;break;case"RT":n=i[0]+o[0]/2,s=i[1]-o[1]/2;break;case"RB":n=i[0]+o[0]/2,s=i[1]+o[1]/2;break;default:console.log("CornerName is wrong.")}return[n,s]},e.prototype.getIntersections=function(){return this.axisGridNode.getIntersections()},e.prototype.getGridLineByName=function(e){return this.axisGridNode.getGridLineByName(e)},e.prototype.getTipNode=function(){return this.tipNode},e.prototype.getFloorPlaneNode=function(){return this.floorPlaneNode},e.prototype.getAxisGridNode=function(){return 0==this.bIsShowAxisGrid?null:this.axisGridNode},e.prototype.getIntersectPoint=function(){return this.intersectPoint},e.prototype.setZoomFactor=function(e){this.zoomFactor=e},e.prototype.getZoomFactor=function(){return this.zoomFactor},e.prototype.getProperZoomFactors=function(){this.getAxisGridBox2D(!0).getSize(this.scratchVector_3);var e=Math.max(this.scratchVector_3.x,this.scratchVector_3.y);return e<=this.bboxLengthStages[0]?this.zoomFactors1:e<=this.bboxLengthStages[1]?this.zoomFactors2:this.zoomFactors3},e}(),Ne=function(){function e(e,t,i){this.viewer=e,this.domContainer=t,this.viewerFloorData=i,this.width=298,this.height=198,this.manHeight=e._manHeight,this.algorithm=new Se,this.eventManager=null,this.currentFloorName=null,this.bBoxCenter=new THREE.Vector2,this.projectedCameraPosition=new THREE.Vector3,this.projectedTargetPosition=new THREE.Vector3,this.sceneMatrixInverse=new THREE.Matrix4,this.initialize()}return e.prototype.initialize=function(){var e="http://www.w3.org/2000/svg";this.drawableContainer=document.createElementNS(e,"svg"),this.drawableContainer.setAttribute("width",this.width+""),this.drawableContainer.setAttribute("height",this.height+""),this.drawableContainer.setAttribute("viewBox",-this.width/2+" "+-this.height/2+" "+this.width+" "+this.height),this.drawableContainer.style.position="absolute",this.auxContainer=document.createElementNS(e,"svg"),this.auxContainer.setAttribute("width",this.width+""),this.auxContainer.setAttribute("height",this.height+""),this.auxContainer.setAttribute("viewBox",-this.width/2+" "+-this.height/2+" "+this.width+" "+this.height),this.auxContainer.style.position="absolute",this.mapContainer=document.createElement("div"),this.mapContainer.style.left="0px",this.mapContainer.style.bottom="0px",this.mapContainer.style.position="relative",this.mapContainer.outling="none",this.mapContainer.appendChild(this.drawableContainer),this.mapContainer.appendChild(this.auxContainer),this.domContainer.appendChild(this.mapContainer),this.cameraHeightChangedCallbackBinded=this.cameraHeightChangedCallback.bind(this)},e.prototype.cameraHeightChangedCallback=function(e){var t=e.cameraPosition,i=this.viewer.getScene().getMatrixGlobal();this.sceneMatrixInverse.copy(i).invert();var o=t.clone().applyMatrix4(this.sceneMatrixInverse);if(this.viewerFloorData.getAxisGridBox2D().containsPoint(new THREE.Vector2(o.x,o.y))&&this.viewerFloorData.updateFloorPlane(o.z)){var n=this.viewerFloorData.getDataFloorPlanes().getName(this.viewerFloorData.getFloorPlaneId());n&&this.currentFloorName!=n&&(this.currentFloorName=n,this.eventManager.dispatchEvent({type:Re.Camera_Height_Changed,id:this.viewerFloorData.getFloorPlaneId()}),console.log("Current floor plane is "+n))}},e.prototype.getMapContainer=function(){return this.drawableContainer},e.prototype.getDomContainer=function(){return this.mapContainer},e.prototype.getAuxContainer=function(){return this.auxContainer},e.prototype.getViewer=function(){return this.viewer},e.prototype.getData=function(){return this.viewerFloorData},e.prototype.setSize=function(e,t){this.mapContainer.style.width=e+"px",this.mapContainer.style.height=t+"px",this.drawableContainer.setAttribute("width",e+""),this.drawableContainer.setAttribute("height",t+""),this.drawableContainer.setAttribute("viewBox",-e/2+" "+-t/2+" "+e+" "+t),this.auxContainer.setAttribute("width",e+""),this.auxContainer.setAttribute("height",t+""),this.auxContainer.setAttribute("viewBox",-e/2+" "+-t/2+" "+e+" "+t),this.destroy(),this.viewerFloorData.destroy(),this.viewerFloorData.build(),this.update(),this.eventManager.dispatchEvent({type:Re.Resize,size:{width:e,height:t}})},e.prototype.destroy=function(){for(var e=this.drawableContainer;e.children.length>0;){var t=e.children[0];e.removeChild(t)}this.mapContainer.removeChild(e);var i=this.getData().getTipNode();i&&null!=i.getSvgNode().parentNode&&this.mapContainer.removeChild(i.getSvgNode())},e.prototype.updateCameraNode=function(){var e=this.viewer,t=e.camera,i=e.cameraControl;if(t&&i){var o=t.position,n=t.target,s=this.algorithm.getMainSceneMatrix(e),r=new THREE.Matrix4;r.copy(s).invert();var a=this.viewerFloorData.getFloorPlaneBox();a.getCenter(this.bBoxCenter);var l=new THREE.Vector3(a.min.x,a.min.y,this.bBoxCenter.z).applyMatrix4(s),h=new THREE.Vector3(a.min.x,a.max.y,this.bBoxCenter.z).applyMatrix4(s),c=new THREE.Vector3(a.max.x,a.min.y,this.bBoxCenter.z).applyMatrix4(s),d=new THREE.Plane;d.setFromCoplanarPoints(l,h,c),d.projectPoint(o,this.projectedCameraPosition),this.projectedCameraPosition.applyMatrix4(r),d.projectPoint(n,this.projectedTargetPosition),this.projectedTargetPosition.applyMatrix4(r);var g=this.projectedTargetPosition.clone().sub(this.projectedCameraPosition);g.z=0,g.normalize();var u=o.clone();u.applyMatrix4(r);var p=u.clone(),A=this.viewerFloorData.getSize(),m={width:A[0]/2,height:A[1]/2},w=this.viewerFloorData.getAxisGridBox2D();this.algorithm.worldToNormalizedPoint(p,w),this.algorithm.normalizedPointToScreen(p,m);var C=this.viewerFloorData.getCameraNode();if(C.setOpacity("1.0"),g.length()<1e-5)C.setCameraArrowOpacity("0.0"),C.setOffsetAndRotate(p.x+Pe.panOffsetX,p.y+Pe.panOffsetY,0);else{var f=new THREE.Vector3(0,0,1),E=new THREE.Vector3(1,0,0),B=this.algorithm.isAngleGreaterThanPi(E,g,f),I=THREE.Math.radToDeg(E.angleTo(g));B||(I*=-1),C.setBigCamera(),C.setOffsetAndRotate(p.x+Pe.panOffsetX,p.y+Pe.panOffsetY,I),C.setCameraArrowOpacity("1.0")}}},e.prototype.update=function(e){for(var t=this.viewerFloorData.getDrawableItems(),i=0;i<t.length;i++){var o=t[i];o instanceof Ye?this.mapContainer.appendChild(o.getSvgNode()):o.abtainRenderables(this.drawableContainer)}this.updateCameraNode();var n=this.mapContainer.firstChild;n?this.mapContainer.insertBefore(this.drawableContainer,n):this.mapContainer.appendChild(this.drawableContainer)},e.prototype.setEventManager=function(e){this.eventManager=e},e.prototype.getEventManager=function(){return this.eventManager},e.prototype.registerCameraHeightChanged=function(e){this.viewer.registerEventListener(e,this.cameraHeightChangedCallbackBinded)},e.prototype.getManHeight=function(){return this.manHeight},e}(),We=function(){function e(e){this.viewerFloorData=e}return e.prototype.hightlight=function(e,t,i){var o=this.viewerFloorData.getOriginSize();this.intersectPoint=this.viewerFloorData.getIntersectPoint();var n=[e.intersectionPoint.x+t,e.intersectionPoint.y+i];this.intersectPoint.setOffset(n[0],n[1]),this.abcGridLine=this.viewerFloorData.getGridLineByName(e.abcName),this.numeralGridLine=this.viewerFloorData.getGridLineByName(e.numeralName),this.intersectPoint.highlight(),this.abcGridLine.highlight(),this.numeralGridLine.highlight(),this.tipNode=this.viewerFloorData.getTipNode(),this.tipNode.setContent(e.numeralName+"-"+e.abcName),this.tipNode.setOffset(o,n),this.tipNode.show()},e.prototype.cancelHightlight=function(){this.intersectPoint&&(this.intersectPoint.cancelHighlight(),this.abcGridLine.cancelHighlight(),this.numeralGridLine.cancelHighlight(),this.tipNode.hide(),this.intersectPoint=null,this.abcGridLine=null,this.numeralGridLine=null,this.tipNode=null)},e}(),Oe=function(e){function t(t,i){var o=e.call(this)||this;return o.name=Ie.PICK_Editor,o.vfViewer=t,o.vfData=t.getData(),o.algorithm=new Se,o.highlightControl=new We(o.vfData),o.cameraProjectedPosZ=t.getManHeight(),o.mapClickMode="default",o.lastMousePoint=new THREE.Vector2,o.eventManager=i,o.bIsEnableHover=!0,o}return Be(t,e),t.prototype.onMouseDown=function(e){this.bIsMouseDown=!0,this.lastMousePoint.setX(e.clientX),this.lastMousePoint.setY(e.clientY)},t.prototype.onMouseMove=function(e){if(0!=this.bIsEnableHover||!this.bIsMouseDown){var t=new THREE.Vector2(e.clientX,e.clientY);t.x+=Te.offsetXForZoomAndPan,t.y+=+Te.offsetYForZoomAndPan;var i=this.vfViewer.getMapContainer(),o=this.vfData.getSize();if(this.algorithm.isMouseOverCanvas(i,o,t)){var n=this.algorithm.normalizePoint(i,o,t),s=new THREE.Vector2(n.x,n.y),r=null;this.bIsAllowNear?(this.algorithm.normalizedPointToScreen(s,{width:o[0]/2,height:o[1]/2}),r=this.algorithm.getIntersectionToMinDistance(this.vfData.getIntersections(),s)):r=this.getIntersectionByNormalizedPoint(s),this.highlightControl.cancelHightlight(),r&&this.highlightControl.hightlight(r,Pe.panOffsetX,Pe.panOffsetY)}}},t.prototype.onMouseUp=function(e){this.bIsMouseDown=!1,this.lastMousePoint.x===e.clientX&&this.lastMousePoint.y===e.clientY&&this.locateByClientPoint(e.clientX+Te.offsetXForZoomAndPan,e.clientY+Te.offsetYForZoomAndPan)},t.prototype.setIsAllowNear=function(e){this.bIsAllowNear=e},t.prototype.getIntersectionByNormalizedPoint=function(e){for(var t=null,i=this.vfData.getIntersections(),o=0,n=i.length;o<n;o++){var s=i[o].intersectionPoint;if(s){var r=new THREE.Vector2(e.x,e.y),a=this.vfData.getSize();if(this.algorithm.normalizedPointToScreen(r,{width:a[0]/2,height:a[1]/2}),s.distanceToSquared(r)<9){t=i[o];break}}}return t},t.prototype.locateByClientPoint=function(e,t){var i=new THREE.Vector2(e,t),o=new THREE.Vector3,n=this.vfViewer.getMapContainer(),s=this.vfData.getSize(),r=this.algorithm.normalizePoint(n,s,i);if(null!=r){var a=this.vfData.getAxisGridBox2D();this.algorithm.normalizedPointToWorld(r,a);var l=this.algorithm.normalizePoint(n,s,i);this.algorithm.normalizedPointToScreen(l,{width:s[0]/2,height:s[1]/2});var h=this.algorithm.getIntersectionToMinDistance(this.vfData.getIntersections(),l);if(h&&h.intersectionPoint){var c=new THREE.Vector2(h.intersectionPoint.x,h.intersectionPoint.y);if(l.sub(c).lengthSq()<9){var d=c.clone(),g={width:s[0]/2,height:s[1]/2};this.algorithm.screenToNormalizedPoint(d,g),this.algorithm.normalizedPointToWorld(d,a),o.set(d.x,d.y,this.cameraProjectedPosZ)}else o.set(r.x,r.y,this.cameraProjectedPosZ)}else o.set(r.x,r.y,this.cameraProjectedPosZ);var u=o.clone(),p=this.vfData.getElevationById();return"string"==typeof p&&(p=parseFloat(p)),u.z+=p,"default"==this.mapClickMode?(this.eventManager.dispatchEvent({type:Re.PICK_MOUSE_UP,data:u}),this.algorithm.transformWorldPoint(this.vfViewer.getViewer(),u),this.algorithm.flyToPointWithParallelEye(this.vfViewer.getViewer(),u)):"static"==this.mapClickMode&&this.eventManager.dispatchEvent({type:Re.PICK_MOUSE_UP,data:u}),!0}console.warn("Click point out of boundary.")},t.prototype.setClickMode=function(e){this.mapClickMode=e},t}(Qe),Je=function(){function e(e){this.vfViewer=e,this.vfData=e.getData(),this.svgRect=null,this.rectForMinimapId="RectForMinimap",this.bEditMode=!1,this.bPanMode=!1,this.bMouseDown=!1,this.rectangle=[],this.currentGripId=-1,this.lastHighlightGripId=-1,this.bFirstMouseClick=!0,this.lastMousePoint=new THREE.Vector2,this.lastMousePointToRectMin=new THREE.Vector2,this.lastMousePointToRectMax=new THREE.Vector2,this.pointOnBorder=[],this.eventManager=e.getEventManager(),this.panOffset=[0,0],this.zoomFactor=1;var t=this;this.eventManager.addEventListener(Re.ZOOM_MOUSE_WHEEL,(function(e){var i=e.data;t.zoomAndPan(i.offsetX,i.offsetY,i.zoomFactor)})),this.eventManager.addEventListener(Re.PAN_MOUSE_MOVE,(function(e){var i=e.data;t.zoomAndPan(i.offsetX,i.offsetY,i.zoomFactor)}))}return e.prototype.getMouseClickState=function(){return this.bFirstMouseClick},e.prototype.setMouseClickState=function(e){this.bFirstMouseClick=!!e},e.prototype.getCurrentGripId=function(){return this.currentGripId},e.prototype.setCurrentGripId=function(e){this.currentGripId=e},e.prototype.getRectangleInfo=function(){var e=Math.abs(this.rectangle[2]-this.rectangle[0]),t=Math.abs(this.rectangle[3]-this.rectangle[1]);return{x:this.rectangle[0],y:this.rectangle[1],width:e,height:t}},e.prototype.setLastMousePoint=function(e,t){this.lastMousePoint.x=e,this.lastMousePoint.y=t},e.prototype.equalWithLastPoint=function(e,t){return this.lastMousePoint.x===e&&this.lastMousePoint.y===t},e.prototype.getRectangle=function(){return this.rectangle},e.prototype.addPointToRectangle=function(e,t){"number"==typeof e&&this.rectangle.push(e),"number"==typeof t&&this.rectangle.push(t)},e.prototype.pointsCount=function(){return this.rectangle.length/2},e.prototype.pointValidation=function(e,t){var i=this.vfViewer.getDomContainer().getBoundingClientRect();(e<0||t<0||e>i.width||t>i.height)&&(e=this.pointOnBorder[0],t=this.pointOnBorder[1]),e<this.rectangle[0]?(this.rectangle.push(this.rectangle[0]),this.rectangle[0]=e):this.rectangle.push(e),t<this.rectangle[1]?(this.rectangle.push(this.rectangle[1]),this.rectangle[1]=t):this.rectangle.push(t)},e.prototype.getMouseState=function(){return this.bMouseDown},e.prototype.setMouseState=function(e){this.bMouseDown=!!e},e.prototype.getEditMode=function(){return this.bEditMode},e.prototype.setEditMode=function(e){this.bEditMode=!!e},e.prototype.getPanMode=function(){return this.bPanMode},e.prototype.setPanMode=function(e){this.bPanMode=!!e},e.prototype.createSvgElement=function(e){var t=document.createElementNS("http://www.w3.org/2000/svg",e);return t.setAttribute("pointer-events","inherit"),t},e.prototype.createSvgRect=function(e){this.svgRect||(this.svgRect=this.createSvgElement("rect"),this.svgRect.setAttribute("id",this.rectForMinimapId),this.svgRect.setAttribute("stroke-width",2),this.svgRect.style.position="absolute",this.svgRect.style.fillOpacity="0.4",this.svgRect.style.fill=this.vfData.getGlodonColor(),this.svgRect.style.display="block",this.svgRect.style.stroke=this.vfData.getGlodonColor(),this.svgRect.style.strokeWidth="2");var t=Math.abs(e.x-this.rectangle[0]),i=Math.abs(e.y-this.rectangle[1]),o=this.vfViewer.getAuxContainer(),n=o.clientWidth,s=o.clientHeight,r=["translate(",e.x-n/2,",",e.y-s/2,") ","rotate(",0,") "].join("");this.svgRect.setAttribute("transform",r),this.svgRect.setAttribute("width",t+""),this.svgRect.setAttribute("height",i+""),o.appendChild(this.svgRect)},e.prototype.updateSvgRect=function(e){this.pointOnBorder=[],this.pointOnBorder.push(e.x,e.y);var t=Math.abs(e.x-this.rectangle[0]),i=Math.abs(e.y-this.rectangle[1]),o={x:this.rectangle[0],y:this.rectangle[1]};if(e.x<o.x||e.y<o.y){e.x<o.x&&(o.x=e.x),e.y<o.y&&(o.y=e.y);var n=this.vfData.getOriginSize(),s=["translate(",o.x-n[0]/2,",",o.y-n[1]/2,") ","rotate(",0,") "].join("");this.svgRect.setAttribute("transform",s)}this.svgRect.setAttribute("width",t+""),this.svgRect.setAttribute("height",i+"")},e.prototype.resetSvgRect=function(){var e=Math.abs(this.rectangle[0]-this.rectangle[2]),t=Math.abs(this.rectangle[1]-this.rectangle[3]);this.svgRect.setAttribute("width",e+""),this.svgRect.setAttribute("height",t+"");var i=this.vfViewer.getAuxContainer(),o=i.clientWidth,n=i.clientHeight,s=["translate(",this.rectangle[0]-o/2,",",this.rectangle[1]-n/2,") ","rotate(",0,") "].join("");this.svgRect.setAttribute("transform",s),this.eventManager.dispatchEvent({type:Re.Minimap_Rect_Changed,rectInfo:this.getRectangleInfo()})},e.prototype.clearRectangle=function(){this.rectangle=[]},e.prototype.adjustRectangle=function(e,t,i){if(t[0]>=i[0])switch(e){case 0:case 1:case 2:t[0]=i[0];break;case 4:case 5:case 6:i[0]=t[0]}if(t[1]>=i[1])switch(e){case 2:case 3:case 4:i[1]=t[1];break;case 6:case 7:case 0:t[1]=i[1]}return t.concat(i)},e.prototype.gripDragging=function(e,t){var i=this.rectangle,o=t.x-e.x,n=t.y-e.y,s=[i[0],i[1]],r=[i[2],i[3]];switch(this.currentGripId){case 0:s[0]+=o,s[1]+=n;break;case 1:s[0]+=o;break;case 2:s[0]+=o,r[1]+=n;break;case 3:r[1]+=n;break;case 4:r[0]+=o,r[1]+=n;break;case 5:r[0]+=o;break;case 6:s[1]+=n,r[0]+=o;break;case 7:s[1]+=n;break;default:console.log("default grip id."+this.currentGripId)}var a=this.vfData.getOriginSize();r[0]=r[0]>a[0]?a[0]:r[0],r[1]=r[1]>a[1]?a[1]:r[1],this.rectangle=this.adjustRectangle(this.currentGripId,s,r)},e.prototype.hightlightGrip=function(e){var t={x:e.offsetX,y:e.offsetY},i=this.hitGrips(t);i!=this.lastHighlightGripId&&(this.currentGripId<0&&this.lastHighlightGripId>=0&&(document.getElementById(this.rectForMinimapId+"-"+this.lastHighlightGripId).style.stroke=this.vfData.getGlodonColor()));(this.currentGripId>=0||i>=0)&&(this.currentGripId>=0&&(i=this.currentGripId),document.getElementById(this.rectForMinimapId+"-"+i).style.stroke="#f5a623",this.currentGripId<0&&(this.lastHighlightGripId=i))},e.prototype.drawGrips=function(){for(var e=this.getGrips(),t=0;t<e.length;t+=2){if(!((t/2-1)%2)){var i=this.createSegmentGrip(t/2,this.vfData.getGlodonColor());this.currentGripId==t/2&&(i=this.createSegmentGrip(t/2,"#FF9D0B")),this.vfViewer.getAuxContainer().appendChild(i)}}for(t=0;t<e.length;t+=2){if(!!((t/2-1)%2)){i=this.createGrip(t/2,this.vfData.getGlodonColor());this.currentGripId==t/2&&(i=this.createGrip(t/2,"#FF9D0B")),this.vfViewer.getAuxContainer().appendChild(i)}}},e.prototype.createSegmentGrip=function(e,t){var i=this.getGrips(),o=this.rectForMinimapId+"-"+e,n=document.getElementById(o);n&&n.parentNode.removeChild(n);var s=this.createSvgElement("line"),r=this.vfViewer.getAuxContainer().clientWidth,a=this.vfViewer.getAuxContainer().clientHeight,l=(e-1)%(i.length/2),h=(e+1)%(i.length/2),c=String(i[2*l]-r/2),d=String(i[2*l+1]-a/2),g=String(i[2*h]-r/2),u=String(i[2*h+1]-a/2);return s.setAttribute("id",o),s.setAttribute("x1",c),s.setAttribute("y1",d),s.setAttribute("x2",g),s.setAttribute("y2",u),s.setAttribute("style","fill: none; stroke: "+(t||"#4784cb")+"; stroke-width: 2; fill: #ffffff; display: block; position: absolute"),s},e.prototype.createGrip=function(e,t){var i=this.getGrips(),o=this.rectForMinimapId+"-"+e,n=document.getElementById(o);n&&n.parentNode.removeChild(n);var s=this.createSvgElement("circle"),r=this.vfViewer.getAuxContainer().clientWidth,a=this.vfViewer.getAuxContainer().clientHeight,l=["translate(",i[2*e]-r/2,",",i[2*e+1]-a/2,") ","rotate(",0,") "].join("");return s.setAttribute("id",o),s.setAttribute("transform",l),s.setAttribute("r","3"),s.setAttribute("style","fill: none; stroke: "+(t||"#4784cb")+"; stroke-width: 1; fill: #ffffff; display: block; position: absolute"),s},e.prototype.removeGrips=function(){for(var e=0;e<8;e++){var t=document.getElementById(this.rectForMinimapId+"-"+e);t&&t.parentNode.removeChild(t)}},e.prototype.removeSvgRect=function(){var e=document.getElementById(this.rectForMinimapId);e&&e.parentNode.removeChild(e)},e.prototype.destroyAll=function(){this.removeGrips(),this.removeSvgRect(),this.clearRectangle(),this.eventManager.dispatchEvent({type:Re.Minimap_Rect_Destroyed})},e.prototype.getGrips=function(){var e={x:this.rectangle[0],y:this.rectangle[1]},t={x:this.rectangle[2],y:this.rectangle[3]},i={x:(e.x+t.x)/2,y:(e.y+t.y)/2},o=[];return o.push(e.x,e.y),o.push(e.x,i.y),o.push(e.x,t.y),o.push(i.x,t.y),o.push(t.x,t.y),o.push(t.x,i.y),o.push(t.x,e.y),o.push(i.x,e.y),o},e.prototype.hitGrips=function(e){for(var t=this.getGrips(),i=0;i<t.length;i+=2){var o=!1;if(!((i/2-1)%2)){var n=(i/2-1)%(t.length/2),s=(i/2+1)%(t.length/2),r=t[2*n],a=t[2*n+1],l=t[2*s],h=t[2*s+1];o=this.isPointInSegment(e.x,e.y,r,a,l,h,3)}else{var c=[t[i],t[i+1]];o=this.isPointInCircle(e,c,6)}if(o)return i/2}return-1},e.prototype.isPointInCircle=function(e,t,i){var o=e.x-t[0],n=e.y-t[1];return Math.sqrt(o*o+n*n)<=i},e.prototype.isPointInSegment=function(e,t,i,o,n,s,r){r=r||0;var a=(n-i)*(e-i)+(s-o)*(t-o);if(a<=0)return Math.sqrt((e-i)*(e-i)+(t-o)*(t-o))<=r;var l=(n-i)*(n-i)+(s-o)*(s-o);if(a>=l)return Math.sqrt((e-n)*(e-n)+(t-s)*(t-s))<=r;var h=a/l,c=i+(n-i)*h,d=o+(s-o)*h;return Math.sqrt((e-c)*(e-c)+(d-t)*(d-t))<=r},e.prototype.isPointInRectangle=function(e,t){if(this.pointsCount()<2)return!1;var i=this.rectangle,o=i[0]<i[2]?[i[0],i[2]]:[i[2],i[0]],n=o[0],s=o[1],r=(i[1],i[3],[i[1],i[3]]);return n<e&&e<s&&r[0]<t&&t<r[1]},e.prototype.panRectangle=function(e,t){var i=this.rectangle,o=this.vfViewer.getDomContainer().getBoundingClientRect();this.lastMousePointToRectMin.x+e<0?e=-this.lastMousePointToRectMin.x:this.lastMousePointToRectMax.x+e>o.width&&(e=o.width-this.lastMousePointToRectMax.x),this.lastMousePointToRectMin.y+t<0?t=-this.lastMousePointToRectMin.y:this.lastMousePointToRectMax.y+t>o.height&&(t=o.height-this.lastMousePointToRectMax.y),i[0]=this.lastMousePointToRectMin.x+e,i[1]=this.lastMousePointToRectMin.y+t,i[2]=this.lastMousePointToRectMax.x+e,i[3]=this.lastMousePointToRectMax.y+t,this.resetSvgRect(),this.drawGrips()},e.prototype.updateLastMousePointToRect=function(){this.lastMousePointToRectMin.x=this.rectangle[0]-this.lastMousePoint.x,this.lastMousePointToRectMin.y=this.rectangle[1]-this.lastMousePoint.y,this.lastMousePointToRectMax.x=this.rectangle[2]-this.lastMousePoint.x,this.lastMousePointToRectMax.y=this.rectangle[3]-this.lastMousePoint.y},e.prototype.zoomAndPan=function(e,t,i){if(this.pointsCount()<2)return this.panOffset=[e,t],void(this.zoomFactor=i);for(var o=this.vfViewer.getDomContainer().getBoundingClientRect(),n=o.width,s=o.height,r=new THREE.Vector2(.5*n,.5*s),a=0;a<=this.rectangle.length/2;a+=2){var l=new THREE.Vector2(this.rectangle[a]-this.panOffset[0],this.rectangle[a+1]-this.panOffset[1]).clone().sub(r);l.divideScalar(this.zoomFactor),this.rectangle[a]=l.x+r.x,this.rectangle[a+1]=l.y+r.y;var h=new THREE.Vector2(this.rectangle[a],this.rectangle[a+1]).clone().sub(r);h.multiplyScalar(i),this.rectangle[a]=r.x+h.x+e,this.rectangle[a+1]=r.y+h.y+t}this.panOffset=[e,t],this.zoomFactor=i,this.resetSvgRect(),this.drawGrips()},e}(),Ze=function(e){function t(t,i){var o=e.call(this)||this;return o.name=Ie.RECTPICK_Editor,o.eventManager=i,o.viewerFloorData=t.getData(),o.naviAction=new Je(t),o.vfViewer=t,o.algorithm=new Se,o}return Be(t,e),t.prototype.onMouseDown=function(e){this.naviAction.setMouseState(!0);var t=this.adjustEvent(e);if(this.naviAction.setLastMousePoint(t.clientX,t.clientY),0==this.naviAction.pointsCount()){var i={x:t.offsetX,y:t.offsetY};this.naviAction.addPointToRectangle(i.x,i.y),this.naviAction.createSvgRect(i)}if(2==this.naviAction.pointsCount()){var o={x:e.offsetX,y:e.offsetY},n=this.naviAction.hitGrips(o),s=this.naviAction.isPointInRectangle(o.x,o.y);n>=0?this.naviAction.setEditMode(!0):s&&(this.naviAction.updateLastMousePointToRect(),this.naviAction.setPanMode(!0))}this.eventManager.dispatchEvent({type:Re.RECTPICK_MOUSE_DOWN})},t.prototype.onMouseMove=function(e){if(2==this.naviAction.pointsCount()&&this.naviAction.hightlightGrip(e),this.naviAction.getMouseState()){var t=this.vfViewer.getDomContainer().getBoundingClientRect(),i=e.clientX-t.left,o=e.clientY-t.top;if(this.naviAction.pointsCount()<2&&this.naviAction.updateSvgRect({x:i,y:o}),this.naviAction.getEditMode()){var n={x:i,y:o},s=this.naviAction.hitGrips(n);if(this.naviAction.getMouseClickState())return this.firstPos=n,this.naviAction.setMouseClickState(!1),void(s>=0&&this.naviAction.setCurrentGripId(s));var r=n;this.naviAction.getCurrentGripId()>=0&&(this.naviAction.gripDragging(this.firstPos,r),this.naviAction.resetSvgRect(),this.naviAction.removeGrips(),this.naviAction.drawGrips()),this.firstPos=r}this.naviAction.getPanMode()&&this.naviAction.panRectangle(e.clientX,e.clientY)}},t.prototype.onMouseUp=function(e){if(this.naviAction.setMouseState(!1),this.naviAction.setMouseClickState(!0),this.naviAction.setCurrentGripId(-1),this.naviAction.setPanMode(!1),this.naviAction.equalWithLastPoint(e.clientX,e.clientY))1==this.naviAction.pointsCount()&&this.naviAction.clearRectangle();else{if(1==this.naviAction.pointsCount()){var t=this.adjustEvent(e),i=this.vfViewer.getDomContainer().getBoundingClientRect(),o=t.clientX-i.left,n=t.clientY-i.top;this.naviAction.pointValidation(o,n),this.naviAction.resetSvgRect(),this.naviAction.drawGrips()}this.naviAction.setEditMode(!1)}},t.prototype.clear=function(){this.naviAction.destroyAll()},t.prototype.getBoundingBoxIsolate=function(){var e=this.naviAction.getRectangle(),t={x:e[0]+Te.offsetXForZoomAndPan,y:e[1]+Te.offsetYForZoomAndPan},i={x:e[2]+Te.offsetXForZoomAndPan,y:e[3]+Te.offsetYForZoomAndPan},o=this.algorithm.getCuttingBoxOnCanvas(t,i,this.viewerFloorData.getSize(),this.viewerFloorData.getAxisGridBox2D()),n=this.viewerFloorData.getFloorPlaneBox();return o.min.z=n.min.z,o.max.z=n.max.z,o},t.prototype.getIntersectionByNormalizedPoint=function(e,t){var i=this.vfViewer.getData().getIntersections(),o=new THREE.Vector2(e.x,e.y);return this.algorithm.normalizedPointToScreen(o,{width:t[0]/2,height:t[1]/2}),Se.getIntersectionByPoint(i,o)},t.prototype.adjustEvent=function(e){var t={offsetX:e.offsetX,offsetY:e.offsetY,clientX:e.clientX,clientY:e.clientY},i=new THREE.Vector2(t.clientX,t.clientY);i.x+=Te.offsetXForZoomAndPan,i.y+=Te.offsetYForZoomAndPan;var o=this.vfViewer.getMapContainer(),n=this.vfViewer.getData().getSize(),s=this.algorithm.normalizePoint(o,n,i),r=this.getIntersectionByNormalizedPoint(s,n);if(r){var a=this.vfViewer.getDomContainer().getBoundingClientRect();t.clientX=r.intersectionPoint.x-Te.offsetXForZoomAndPan,t.offsetX=t.clientX+n[0]/2,t.clientX=t.offsetX+a.left,t.clientY=r.intersectionPoint.y-Te.offsetYForZoomAndPan,t.offsetY=t.clientY+n[1]/2,t.clientY=t.offsetY+a.top}return t},t}(Qe),ze=function(){function e(e,t,i){this.eventManager=new Fe,this.mapContainer=e,this.viewerFloorData=t,this.vfViewer=i,this.vfViewer.setEventManager(this.eventManager),this.activeEditors=[],this.bIsEnablePickHover=!1,this.initialize()}return e.prototype.initialize=function(){this.onContextmenuBinded=this.onContextmenu.bind(this),this.onMouseDownBinded=this.onMouseDown.bind(this),this.onMouseUpBinded=this.onMouseUp.bind(this),this.onMouseMoveBinded=this.onMouseMove.bind(this),this.onMouseWheelBinded=this.onMouseWheel.bind(this),this.addDomEventListeners(),this.enableEditor(Ie.PICK_Editor),this.enableEditor(Ie.PAN_Editor),this.enableEditor(Ie.Zoom_Editor)},e.prototype.addDomEventListeners=function(){var e=this.mapContainer;e.addEventListener("contextmenu",this.onContextmenuBinded,!1),e.addEventListener("mousemove",this.onMouseMoveBinded,!1),e.addEventListener("mousedown",this.onMouseDownBinded,!1),e.addEventListener("mousewheel",this.onMouseWheelBinded,!1),document.addEventListener("mouseup",this.onMouseUpBinded,!1)},e.prototype.removeDomEventListeners=function(){var e=this.mapContainer;e.removeEventListener("contextmenu",this.onContextmenuBinded,!1),e.removeEventListener("mousemove",this.onMouseMoveBinded,!1),e.removeEventListener("mousedown",this.onMouseDownBinded,!1),document.removeEventListener("mouseup",this.onMouseUpBinded,!1)},e.prototype.onMouseDown=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++){var o=t[i];o.getName()==Ie.PICK_Editor&&e.button!=Ve.Left||(o.getName()==Ie.RECTPICK_Editor&&e.button!=Ve.Left||o.getName()==Ie.PAN_Editor&&e.button==Ve.Left||o.onMouseDown(e))}},e.prototype.onMouseMove=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++){var o=t[i];o.getName()==Ie.PICK_Editor&&0==this.bIsEnablePickHover||o.onMouseMove(e)}},e.prototype.onMouseUp=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++){var o=t[i];o.getName()==Ie.PICK_Editor&&e.button!=Ve.Left||(o.getName()==Ie.RECTPICK_Editor&&e.button!=Ve.Left||o.getName()==Ie.PAN_Editor&&e.button==Ve.Left||o.onMouseUp(e))}},e.prototype.onMouseWheel=function(e){var t=this.find(Ie.Zoom_Editor);t&&t.onMouseWheel(e)},e.prototype.onContextmenu=function(e){e.preventDefault()},e.prototype.addEventListener=function(e,t){this.eventManager.addEventListener(e,t)},e.prototype.clearRectPick=function(){var e=this.find(Ie.RECTPICK_Editor);e instanceof Ze&&e.clear()},e.prototype.clearZoomAndPan=function(){Pe.clear(),Te.clear(),this.viewerFloorData.setZoomFactor(1);var e=this.find(Ie.Zoom_Editor);e instanceof Te&&e.setZoonIndex(0)},e.prototype.getBoundingBoxIsolate=function(){var e=this.find(Ie.RECTPICK_Editor);if(e instanceof Ze)return e.getBoundingBoxIsolate()},e.prototype.setMapClickMode=function(e){var t=this.find(Ie.PICK_Editor);t instanceof Oe&&t.setClickMode(e)},e.prototype.find=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++)if(t[i].getName()===e)return t[i]},e.prototype.enableEditor=function(e){if(!this.find(e)){var t=this.activeEditors;switch(e){case Ie.PICK_Editor:t.push(new Oe(this.vfViewer,this.eventManager));break;case Ie.RECTPICK_Editor:t.push(new Ze(this.vfViewer,this.eventManager));break;case Ie.PAN_Editor:t.push(new Pe(this.vfViewer,this.eventManager));break;case Ie.Zoom_Editor:t.push(new Te(this.vfViewer,this.eventManager))}}},e.prototype.getEventManager=function(){return this.eventManager},e.prototype.disableEditor=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++)t[i].getName()===e&&t.splice(i,1)},e.prototype.enablePickHover=function(e){this.bIsEnablePickHover=e},e.prototype.setZoomMode=function(e){var t=this.find(Ie.Zoom_Editor);t instanceof Te&&t.enableMode(e)},e.prototype.setZoomFactors=function(e){var t=this.find(Ie.Zoom_Editor);t instanceof Te&&t.setZoomFactors(e)},e}(),Xe=function(){function e(e,t){this.vfData=new je,this.vfView=new Ne(e,t,this.vfData),this.bIsEnableFloorPlaneChangedEvent=!0;var i=this.getMapContainer();this.vfEditor=new ze(i,this.vfData,this.vfView),THREE.vf=this}return e.prototype.setAxisGridData=function(e){this.vfData.setAxisGrids(e)},e.prototype.setPlanes=function(e){this.vfData.setPlanes(e)},e.prototype.setFloorPlaneId=function(e){this.vfData.setFloorPlaneId(e);var t=this.vfData.getProperZoomFactors();this.vfEditor.setZoomFactors(t),Pe.clear(),this.bIsEnableFloorPlaneChangedEvent&&this.vfEditor.getEventManager().dispatchEvent({type:Re.Floor_Plane_Changed,elevation:this.vfData.getElevationById()}),this.vfEditor.getEventManager().dispatchEvent({type:Re.Floor_Plane_Changed_For_Panel,name:this.getFloorPlaneName()})},e.prototype.getEventManager=function(){return this.vfEditor.getEventManager()},e.prototype.enableFloorPlaneChangedEvent=function(e){this.bIsEnableFloorPlaneChangedEvent=e},e.prototype.setSize=function(e,t){this.vfData.setSize(e,t)},e.prototype.setFlip=function(e){this.vfData.setFlip(e)},e.prototype.resize=function(e,t,i){this.vfEditor.clearZoomAndPan(),this.vfData.setIsShowAxisGrid(i),this.vfData.setSize(e,t),this.vfView.setSize(e,t),i?(this.vfEditor.setZoomMode(ke.Max),this.vfEditor.enableEditor(Ie.RECTPICK_Editor),this.vfEditor.enablePickHover(!0)):(this.clearRectPick(),this.vfEditor.setZoomMode(ke.Min),this.vfEditor.disableEditor(Ie.RECTPICK_Editor),this.vfEditor.enablePickHover(!1)),this.vfData.getTipNode().hide()},e.prototype.destroy=function(){this.vfView.destroy(),this.vfData.destroy(),this.clearRectPick()},e.prototype.rebuildData=function(){this.vfData.build()},e.prototype.renderCameraNode=function(){this.vfView.updateCameraNode()},e.prototype.addEventListener=function(e,t){this.vfEditor.addEventListener(e,t)},e.prototype.clearRectPick=function(){this.vfEditor.clearRectPick()},e.prototype.clearZoomAndPan=function(){this.vfEditor.clearZoomAndPan(),this.vfView.destroy(),this.vfData.destroy(),this.vfData.build(),this.vfView.update()},e.prototype.getBoundingBoxIsolate=function(){return this.vfEditor.getBoundingBoxIsolate()},e.prototype.getFloorPlaneName=function(){return this.vfData.getDataFloorPlanes().getName(this.vfData.getFloorPlaneId())},e.prototype.getAxisGridBox2D=function(){return this.vfData.getAxisGridBox2D()},e.prototype.setMapClickMode=function(e){this.vfEditor.setMapClickMode(e)},e.prototype.getMapContainer=function(){return this.vfView.getDomContainer()},e.prototype.render=function(){this.vfView.update()},e.prototype.getPanOffset=function(){return{x:Pe.panOffsetX,y:Pe.panOffsetY}},e.prototype.registerCameraHeightChanged=function(e){this.vfView.registerCameraHeightChanged(e)},e}();!function(){var t="Bimface.Plugins.Section.SectionPlane",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Map"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),s=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),function(t){var i=this,o=t;if(this.defaultFloorPlane="F01",i._opt=o,i.id=t.id,!o.domElement)return console.log("domElement must not be empty."),!1;if(!o.viewer)return console.log("viewer is not defined."),!1;let n=new e.Web.Lang.EventManager;this.getEventManager=function(){return n},this.EventType={RECTPICK_MOUSE_MOVE:1001,RECTPICK_MOUSE_UP:1002,PICK_MOUSE_UP:2002,Floor_Plane_Changed:3e3,Floor_Plane_Changed_For_Panel:3001,Camera_Height_Changed:5e3,ZOOM_MOUSE_WHEEL:6e3,Minimap_Rect_Changed:8e3,Minimap_Rect_Destroyed:8001},i._floors=[],i._axisGrids={},i._hasFloor=void 0===o.hasFloor||o.hasFloor,i._mapHeader=o.mapHeader,i._mapEvents=e.Bimface.Plugins.Map.MapEvents;var s=o.viewer.getViewer();const r=s.getBoundingBoxWorld(),a=r.max.z-r.min.z,l=o.viewer.getUnit()===e.Bimface.Common.Units.LengthUnits.Meter;i._manHeight=i._hasFloor?l?1.75:1750:Math.min(l?1:1e3,a/20),i._refreshHeight=Math.min(l?3:3e3,a/10),s._manHeight=i._manHeight,i.viewerFloor=new Xe(s,o.domElement),i.viewerFloor.registerCameraHeightChanged(f.EVENTS.ON_CAMERA_HEIGHT_CHANGED),i._helper=this,i._useEngineMap=o.viewer._opt.enableRealisticMiniMap,i.renderCB=function(){i._inited&&i.viewerFloor.renderCameraNode()},s.addCallbacks("render",i.renderCB),i.init()});s.prototype={addEventListener:function(e,t){this.getEventManager().addEvent(e,t)},removeEventListener:function(e,t){this.getEventManager().removeEvent(e,t)},init:function(){i.send(t,"init");const o=this._opt.viewer;let s=[],r=[],a=[];if(this._hasFloor){const t=()=>{this._axisGrids={Grids:r,Levels:a},this._floors=s,(this._axisGrids.Grids||this._axisGrids.Levels)&&this.viewerFloor.setAxisGridData(this._axisGrids),this.viewerFloor.setPlanes(this._floors);var t=new e.Bimface.UI.Select.SelectConfig;t.className="bf-select bf-select-map";var i=this.getDefaultFloorPlane(),o=this._floors.getObjectByAttribute("name",i);0!=o&&(t.default=o.id),t.options=this._floors,t.element=this._mapHeader,t.prefix=BimfaceLanguage.bf_panel_map_level;var n=this,l=new e.Bimface.UI.Select.Select(t);l.addEventListener("Change",(function(e){n.showFloorById(e.id)})),this.addEventListener(this._mapEvents.FloorPlaneChanged,(function(e){l._currentElement.innerText=BimfaceLanguage.bf_panel_map_level+e})),this.createMap()};let i=0;const n=o.getModels().length;o.getModels().forEach((e=>{e["getMapInfo"+(this._opt.loadAsync?"Async":"")]((e=>{s=[...e.floors,...s],r=e.axisGrid.Grids?[...e.axisGrid.Grids,...r]:r,a=e.axisGrid.Levels?[...e.axisGrid.Levels,...a]:a,i++,i===n&&t()}),(()=>{i++,i===n&&t()}))}))}else{var l=n.create("div","bf-map-header-title");this._mapHeader.appendChild(l),this.addEventListener(this._mapEvents.FloorPlaneChanged,(function(t){void 0===t&&(t=0),o.getUnit()===e.Bimface.Common.Units.LengthUnits.Millimeter&&(t/=1e3),l.innerHTML=BimfaceLanguage.bf_panel_map_height+t+"m"})),this.createMap()}},createMap:function(){i.send(t,"createMap");var o=(l=this).getEventManager(),n=e.Bimface.Plugins.Map.MapEvents,s=l._opt;let r=this.EventType;if(this.viewerFloor.addEventListener(r.PICK_MOUSE_UP,(function(e){o.fireEvent(n.MouseClicked,e.data)})),this.viewerFloor.setMapClickMode(s.navigationMode.toLocaleLowerCase()),this.viewerFloor.addEventListener(r.Minimap_Rect_Changed,(function(e){o.fireEvent("MinimapRectChanged",e.rectInfo)})),this.viewerFloor.addEventListener(r.Minimap_Rect_Destroyed,(function(e){o.fireEvent("MinimapRectDestroyed",e)})),this.viewerFloor.addEventListener(r.Camera_Height_Changed,(function(e){l.viewerFloor.enableFloorPlaneChangedEvent(!1),l.showFloorById(e.id),l.viewerFloor.enableFloorPlaneChangedEvent(!0)})),this.viewerFloor.addEventListener(r.Floor_Plane_Changed_For_Panel,(function(e){o.fireEvent("FloorPlaneChanged",e.name)})),this.viewerFloor.addEventListener(r.ZOOM_MOUSE_WHEEL,(function(e){o.fireEvent(n.Zoom,e.data)})),this.viewerFloor.addEventListener(r.Floor_Plane_Changed,(function(e){if(null!=e.elevation){"string"==typeof e.elevation&&(e.elevation=parseFloat(e.elevation));var t=s.viewer.getViewer(),i=t.camera,o=e.elevation,n=s.viewer.sceneToWorld(i.position.clone()),r=new THREE.Vector3(n.x,n.y,o+l._manHeight);const h=t.getBoundingBoxWorld();r.z=Math.min(r.z,h.max.z);var a=s.viewer.worldToScene(r);t.cameraControl.flyToPointWithParallelEye(new THREE.Vector3(a.x,a.y,a.z))}})),l.viewerFloor.enableFloorPlaneChangedEvent(!1),l._hasFloor)if(this._useEngineMap){let t=this;t.viewerFloor.setFlip(!0);let i=s.viewer.getViewer();t.mapManager=new e.Bimface.Plugins.Map.MapManager({viewer:s.viewer});const o=this._axisGrids,n=this._floors;let r={};r.maxPixel=t._opt.maxPixel,r.height=[],r.boundingbox=[],r.useBorder=!1;const a=o.Levels;for(let e=0;e<n.length;e++){const o=a.find((({id:t})=>t==n[e].id));if(o){const s=t.viewerFloor.vfData.getDataFloorPlanes().getFloorPlaneBox(n[e].id);let a=new THREE.Box3(new THREE.Vector3(s.Min.X,s.Min.Y,s.Min.Z),new THREE.Vector3(s.Max.X,s.Max.Y,s.Max.Z));a.applyMatrix4(i.getScene().getMatrixGlobal()),r.boundingbox.push(a),r.height.push(o.elevation)}}let l=e=>{for(let t=0;t<e.length;t++)n[t].path=e[t];if(n.length>0){var i=n.getObjectByAttribute("name",this.defaultFloorPlane);0==i?this.showFloorById(n[0].id):this.showFloorById(i.id)}t.viewerFloor.enableFloorPlaneChangedEvent(!0),t._inited=!0};r.successCallback=l,t.mapManager.removeCreateMapEvent(),t.mapManager.createMapByHeight(r)}else{const e=this._floors;if(e.length>0){var a=e.getObjectByAttribute("name",this.defaultFloorPlane);0==a?this.showFloorById(e[0].id):this.showFloorById(a.id)}l.viewerFloor.enableFloorPlaneChangedEvent(!0),l._inited=!0}else{var l;(l=this).viewerFloor.setFlip(!0);const t=s.viewer,i=t.getViewer().getBoundingBoxWorld(),o={Min:i.min,Max:i.max};l.mapManager=new e.Bimface.Plugins.Map.MapManager({viewer:t});let n=t.getCamera().getStatus().position.z;n=Math.floor(Math.min(Math.max(n,i.min.z),i.max.z));let r=e=>{let n=t.getCamera().getStatus().position.z;n=Math.floor(Math.min(Math.max(n,i.min.z),i.max.z));let s=[];s.push({id:n,name:"top",elevation:n}),s.push({id:i.min.z,name:n.toString(),elevation:i.min.z});let r={Grids:[],Levels:s};l.viewerFloor.setAxisGridData(r);let a=[];a.push({id:n,name:n,path:e,BoundingBox:o}),l._floors=a,l.viewerFloor.setPlanes(a),l.showFloorById(n),l._inited=!0},a={};a.maxPixel=l._opt.maxPixel,a.spacing=l._refreshHeight,a.successCallback=r,l.mapManager.removeCreateMapEvent(),l.mapManager.createMapByCamera(a),t.getViewer().getModelManager().dispatchEvent({type:f.EVENTS.ON_CAMERA_CHANGED_AND_RENDERED})}},setDefaultFloorPlane:function(e){for(var t=this._floors,i=0;i<t.length;i++)if(t[i].name==e){this.viewerFloor;this.getEventManager().fireEvent("FloorPlaneChanged",e);var o=t.getObjectByAttribute("name",e);return helpershowFloorById(o.id),!0}return!1},getFloorList:function(){return this._floors},getDefaultFloorPlane:function(){return this.defaultFloorPlane},getBoundingBox:function(){return this.viewerFloor.getBoundingBoxIsolate()},showFloorById:function(e){this.viewerFloor.setFloorPlaneId(e),this.viewerFloor.destroy(),this.viewerFloor.rebuildData(),this.viewerFloor.render()},resize:function(e,t,i){var o=this._opt.domElement;o.style.width=e+"px",o.style.height=t+"px",this.viewerFloor.resize(e,t,i),this.getEventManager().fireEvent("Resize",{width:e,height:t})},setPlaneChangedCallback:function(e){this.addEventListener("FloorPlaneChanged",(function(t){e&&e(t)}))},setMinimapResizeCallback:function(e){this.addEventListener("Resize",(function(t){e&&e(t)}))},setNavigationMode:function(e){var t=this._opt,i=this.viewerFloor;t.navigationMode=e,i.setMapClickMode(t.navigationMode.toLocaleLowerCase())},clear:function(){this.viewerFloor.clearRectPick()},clearZoomAndPan:function(){this.viewerFloor.clearZoomAndPan();let e=this.EventType;this.viewerFloor.getEventManager().dispatchEvent({type:e.ZOOM_MOUSE_WHEEL,data:{offsetX:0,offsetY:0,zoomFactor:1}})},getMapContainer:function(){return this.viewerFloor.getMapContainer()},getFloorPlaneName:function(){return this.viewerFloor.getFloorPlaneName()},getAxisGridBox2D:function(){return this.viewerFloor.getAxisGridBox2D()},exit:function(){var e=this;e._opt.viewer.getViewer().removeCallbacks("render",e.renderCB),e.clear(),e.mapManager&&e.mapManager.destroy()}},o.Map=s}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.NavigationMap").NavigationMapConfig=function(){return{viewer:null,mapViewer:null,successCallback:null,failureCallback:null,type:"Relevance",mapAnchors:null,modelAnchors:null,url:null,PDFId:void 0,drawingId:void 0,height:0}},function(){let t=Object.freeze({MouseClicked:"MouseClicked",MapChanged:"MapChanged"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.NavigationMap").MapViewerEvent=t}(); |
|
/*! ***************************************************************************** |
|
Copyright (c) Microsoft Corporation. |
|
|
|
Permission to use, copy, modify, and/or distribute this software for any |
|
purpose with or without fee is hereby granted. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH |
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, |
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR |
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
|
PERFORMANCE OF THIS SOFTWARE. |
|
***************************************************************************** */ |
|
var _e=function(e,t){return(_e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function $e(e,t){function i(){this.constructor=e}_e(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var et,tt=function(){function e(){this.xmlns="http://www.w3.org/2000/svg",this.material=null,this.svgNode=null,this.children=[],this.glodonColor="#11DAB7",this.position=new THREE.Vector2}return e.prototype.add=function(e){this.children.push(e)},e.prototype.getSvgNode=function(){return this.svgNode},e.prototype.abtainRenderables=function(e){e.appendChild(this.svgNode)},e.prototype.isMatch=function(e){return this.name==e},e.prototype.highlight=function(){this.svgNode.setAttribute("style","stroke:"+this.glodonColor)},e.prototype.cancelHighlight=function(){this.svgNode.setAttribute("style","stroke:"+this.material.color.getStyle())},e.prototype.locate=function(e,t){this.position.set(e,t),this.move(0,0)},e.prototype.move=function(e,t){var i=this.position.x+e,o=this.position.y+t;this.svgNode.setAttribute("transform","translate("+i+","+o+")")},e}(),it=function(){function e(){this._boxSize=new THREE.Vector2,this._boxCenter=new THREE.Vector2,this._intersect=new THREE.Vector3}return e.prototype.cross=function(e,t,i,o){return(t.x-e.x)*(o.y-i.y)-(t.y-e.y)*(o.x-i.x)},e.prototype.getArea=function(e,t,i){return this.cross(e,t,e,i)},e.prototype.getAbsArea=function(e,t,i){return Math.abs(this.getArea(e,t,i))},e.prototype.getInterPoint=function(e,t,i,o){var n=this.getAbsArea(e,t,i),s=this.getAbsArea(e,t,o);return new THREE.Vector2((o.x*n+i.x*s)/(n+s),(o.y*n+i.y*s)/(n+s))},e.prototype.isAngleGreaterThanPi=function(e,t,i){var o=new THREE.Vector3;return o.crossVectors(e,t),!(o.dot(i)>=0)},e.prototype.normalizedPointToScreen=function(e,t){e.x=e.x*t.width,e.y=-e.y*t.height},e.prototype.screenToNormalizedPoint=function(e,t){e.x=e.x/t.width,e.y=-e.y/t.height},e.prototype.normalizedPointToWorld=function(e,t){t.getSize(this._boxSize),e.x=.5*(e.x+1)*this._boxSize.x+t.min.x,e.y=.5*(e.y+1)*this._boxSize.y+t.min.y},e.prototype.worldToNormalizedPoint=function(e,t){t.getSize(this._boxSize),e.x=(e.x-t.min.x)/this._boxSize.x*2-1,e.y=(e.y-t.min.y)/this._boxSize.y*2-1},e.prototype.toWorldPoint=function(e,t,i,o){e.x<0&&(e.x=0),e.x>t&&(e.x=t),e.y<0&&(e.y=0),e.y>i&&(e.y=i),e.x=e.x/t*2-1,e.y=-e.y/i*2+1,this.normalizedPointToWorld(e,o)},e.prototype.getCuttingBoxOnCanvas=function(e,t,i,o){var n=new THREE.Box3,s=new THREE.Vector2(e.x,e.y),r=new THREE.Vector2(t.x,t.y);this.toWorldPoint(s,i[0],i[1],o),this.toWorldPoint(r,i[0],i[1],o);var a=[];return a.push(new THREE.Vector3(s.x,s.y)),a.push(new THREE.Vector3(s.x,s.y)),a.push(new THREE.Vector3(s.x,r.y)),a.push(new THREE.Vector3(s.x,r.y)),a.push(new THREE.Vector3(r.x,r.y)),a.push(new THREE.Vector3(r.x,r.y)),a.push(new THREE.Vector3(r.x,s.y)),a.push(new THREE.Vector3(r.x,s.y)),n.setFromPoints(a),{min:{x:n.min.x,y:n.min.y,z:0},max:{x:n.max.x,y:n.max.y,z:0}}},e.prototype.canvasPointToClient=function(e,t){var i=t.mapContainer;if(!i||!t.floorPlaneBox)return null;var o=this.getContainerOffsetToClient(i);if(0===o.width||0===o.height)return null;var n=new THREE.Vector2;return n.x=e.x+o.left,n.y=e.y+o.top,n},e.prototype.getMainSceneMatrix=function(e){return e.getScene().getMatrixGlobal()},e.prototype.transformWorldPoint=function(e,t){var i=this.getMainSceneMatrix(e);t.applyMatrix4(i)},e.prototype.expandBbox=function(e,t){var i=e.getCenter(this._boxCenter);e.getSize(this._boxSize);var o=new THREE.Vector2,n=t,s=this._boxSize.x/this._boxSize.y,r=this._boxSize.x,a=this._boxSize.y;s>n?a=r/n:s<n&&(r=a*n),o.set(r,a),e.setFromCenterAndSize(i,o)},e.prototype.containsPointInMainScene=function(e,t){var i=e.getScene().getBoundingBoxWorld();return!!i&&i.containsPoint(t)},e.prototype.isMouseOverCanvas=function(e,t,i){if(e){var o=this.getContainerOffsetToClient(e),n=new THREE.Vector2;if(n.x=i.x-o.left,n.y=i.y-o.top,0===o.width||0===o.height)return!1;var s={width:t[0],height:t[0]};if(n.x>0&&n.x<s.width&&n.y>0&&n.y<s.height)return!0}return!1},e.prototype.normalizePoint=function(e,t,i){var o=new THREE.Vector2;if(e){var n=this.getContainerOffsetToClient(e),s=new THREE.Vector2;s.x=i.x-n.left,s.y=i.y-n.top;var r={width:t[0],height:t[1]};if(s.x>0&&s.x<r.width&&s.y>0&&s.y<r.height)return o.x=s.x/r.width*2-1,o.y=-s.y/r.height*2+1,new THREE.Vector2(o.x,o.y)}return null},e.getIntersectionByPoint=function(e,t,i){void 0===i&&(i=3);for(var o=null,n=i*i,s=0,r=e.length;s<r;s++){var a=e[s].intersectionPoint;if(a)if(a.distanceToSquared(t)<n){o=e[s];break}}return o},e.prototype.flyToPointWithParallelEye=function(e,t){e.cameraControl.flyToPointWithParallelEye(t)},e.prototype.getIntersectionToMinDistance=function(e,t){if(e.length<1)return null;for(var i=0,o=0,n=0,s=e.length;n<s;n++){var r=e[n];if(r.intersectionPoint){var a=new THREE.Vector2(r.intersectionPoint.x,r.intersectionPoint.y).distanceToSquared(t);0==i?i=a:i>a&&(i=a,o=n)}}return e[o]},e.prototype.getAxisGridInfoByNormalizedPoint=function(e,t){var i=t.clone(),o=e.naviData.getAxisGridBox2D();this.normalizedPointToWorld(i,o);var n=t.clone(),s={width:e.svgHalfWidth,height:e.svgHalfHeight};this.normalizedPointToScreen(n,s);var r=this.getIntersectionToMinDistance(e.naviData.getAxisGridIntersectionPoints(),n);if(r&&r.intersectionPoint){var a=new THREE.Vector2(r.intersectionPoint.x,r.intersectionPoint.y);this.screenToNormalizedPoint(a,s),this.normalizedPointToWorld(a,o);var l=Math.round(i.x-a.x),h=Math.round(i.y-a.y);return{position:i,abcName:r.abcName,numeralName:r.numeralName,offsetX:l,offsetY:h}}return{position:new THREE.Vector3,abcName:"",numeralName:"",offsetX:"",offsetY:""}},e.prototype.getAxisGridInfoByPoint=function(e,t){var i=this.getMainSceneMatrix(e.viewer),o=new THREE.Matrix4;o.copy(i).invert();var n=t.clone();n.applyMatrix4(o);var s=n.clone(),r={width:e.svgHalfWidth,height:e.svgHalfHeight},a=e.naviData.getAxisGridBox2D();this.worldToNormalizedPoint(s,a),this.normalizedPointToScreen(s,r);var l=this.getIntersectionToMinDistance(e.naviData.getAxisGridIntersectionPoints(),s);if(l&&l.intersectionPoint){var h=new THREE.Vector2(l.intersectionPoint.x,l.intersectionPoint.y);this.screenToNormalizedPoint(h,r),this.normalizedPointToWorld(h,a);var c=Math.round(n.x-h.x),d=Math.round(n.y-h.y);return{position:n,abcName:l.abcName,numeralName:l.numeralName,offsetX:c,offsetY:d}}return{position:new THREE.Vector3,abcName:"",numeralName:"",offsetX:"",offsetY:""}},e.prototype.calculateEdgePositionCameraOutBounds=function(e,t,i){var o=function(e,t){for(var i=!1,o=0,n=e.length;o<n;o++)if(this.isEqualBetweenPoints(t,e[o],this.epsilon)){i=!0;break}return i},n=i.clone();if(n.min.x-=.5,n.min.y-=.5,n.max.x+=.5,n.max.y+=.5,!n.containsPoint(e)){var s=[],r=new THREE.Vector3(e.x,e.y,0),a=new THREE.Ray(r,t),l=new THREE.Vector3(i.min.x,i.min.y,0),h=new THREE.Vector3(-1,0,0),c=new THREE.Plane;if(c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&s.push(this._intersect),l.set(i.max.x,i.max.y,0),h.set(-1,0,0),c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&s.push(this._intersect),l.set(i.min.x,i.min.y,0),h.set(0,1,0),c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&(o(this._intersect,s)||s.push(this._intersect)),l.set(i.max.x,i.max.y,0),h.set(0,1,0),c.setFromNormalAndCoplanarPoint(h,l),a.intersectPlane(c,this._intersect),this._intersect&&n.containsPoint(this._intersect)&&(o(this._intersect,s)||s.push(this._intersect)),2!=s.length)return null;var d=s[0],g=s[1].clone().sub(d).normalize();return this.isEqualBetweenPoints(g,t,1e-5)?s[0]:s[1]}return null},e.prototype.getContainerOffsetToClient=function(e){var t,i;if(e!=document){var o=(i=e).getBoundingClientRect?function(e){var t=e.getBoundingClientRect(),i=document.body,o=document.documentElement,n=o.clientTop||i.clientTop,s=o.clientLeft||i.clientLeft,r=t.top-n,a=t.left-s;return{top:Math.round(r),left:Math.round(a)}}(i):function(e){for(var t=0,i=0;e;)t+=e.offsetTop,i+=e.offsetLeft,e=e.offsetParent;var o=document.body,n=document.documentElement;return{top:t-=window.pageYOffset||n.scrollTop||o.scrollTop,left:i-=window.pageXOffset||n.scrollLeft||o.scrollLeft}}(i);t={width:e.offsetWidth,height:e.offsetHeight,left:o.left,top:o.top}}else t={width:window.innerWidth,height:window.innerHeight,left:0,top:0};return t},e.prototype.isEqualBetweenPoints=function(e,t,i){i=i||1e-4;var o=e.x-t.x,n=e.y-t.y;return!(Math.sqrt(o*o+n*n)>i)},e}(),ot=function(e){function t(t,i,o,n){var s=e.call(this)||this;return s.start=t,s.end=i,s.material=o,s.name=n,s.build(),s}return $e(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"line");e.setAttribute("x1",this.start.x),e.setAttribute("y1",this.start.y),e.setAttribute("x2",this.end.x),e.setAttribute("y2",this.end.y);var t=this.material;t instanceof THREE.LineBasicMaterial&&e.setAttribute("style","fill: none; stroke: "+t.color.getStyle()+"; stroke-width: "+t.linewidth+"; stroke-opacity: "+t.opacity+"; stroke-linecap: "+t.linecap+"; stroke-linejoin: "+t.linejoin),this.svgNode=e},t}(tt),nt=function(e){function t(t,i,o){var n=e.call(this)||this;return n.arcPoints=t,n.material=i,n.name=o,n.build(),n}return $e(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"polyline");e.setAttribute("points",this.arcPoints.map((function(e){return e.x+","+e.y})).join(" "));var t=this.material;t instanceof THREE.LineBasicMaterial&&e.setAttribute("style","fill: none; stroke: "+t.color.getStyle()+"; stroke-width: "+t.linewidth+"; stroke-opacity: "+t.opacity+"; stroke-linecap: "+t.linecap+"; stroke-linejoin: "+t.linejoin),this.svgNode=e},t}(tt),st=function(e){function t(t,i){var o=e.call(this)||this;return o.center=t,o.literal=i,o.fontSize=8,o.textColor=new THREE.Color(.6,.6,.6),o.build(),o}return $e(t,e),t.prototype.build=function(){var e=this.center.x,t=this.center.y;if("NaN"!=e.toString()&&"NaN"!=t.toString()){var i=document.createElementNS(this.xmlns,"text");i.setAttribute("style","font-size:"+this.fontSize+"px; fill: none; stroke: "+this.textColor.getStyle()+"; stroke-width: 1"),i.innerHTML=this.literal,i.textContent=this.literal;i.getBoundingClientRect();var o=e-3.5,n=t+2.8;this.svgNode=i,this.locate(o,n)}},t}(tt),rt=function(e){function t(t,i){var o=e.call(this)||this;return o.name=i,o.labelPoints=t,o.build(),o}return $e(t,e),t.prototype.build=function(){var e=this;this.labelPoints.forEach((function(t){e.add(new st(t,e.name))}))},t.prototype.abtainRenderables=function(e){for(var t=0;t<this.children.length;t++){this.children[t].abtainRenderables(e)}},t.prototype.move=function(e,t){this.children.forEach((function(i){i.move(e,t)}))},t}(tt),at=function(e){function t(t,i,o,n){var s=e.call(this)||this;return s.intersections=[],s.lineElements=[],s.horizLineElements=[],s.verticalLineElements=[],s.width=i[0],s.height=i[1],s.bIsShowAxisGrid=o,s.multiplyZoomFactor=n,s.algorithm=new it,s.materialGrid=new THREE.LineBasicMaterial({color:10066329,linewidth:.5}),s.children=[],s.resourceGrids=t,s.boundingBox=new THREE.Box2,s.realBoundingBox=new THREE.Box2,s.clipBox2D=new THREE.Box2(new THREE.Vector2(-s.width/2,-s.height/2),new THREE.Vector2(s.width/2,s.height/2)),s.axisGridNumberInterval=3,s.scratchVector=new THREE.Vector3,s.boxSize=new THREE.Vector2,s.isValid()&&s.build(),s}return $e(t,e),t.prototype.build=function(){var e=this,t=this.getAxisGridBox(),i={width:this.width/2,height:this.height/2},o=function(o){var n=new THREE.Vector2(o.x,o.y);return e.algorithm.worldToNormalizedPoint(n,t),e.algorithm.normalizedPointToScreen(n,i),n},n=this.materialGrid;this.resourceGrids.forEach((function(t){var i=t.name,s=t.geometry,r=t.label;s.forEach((function(t){if("Line"===t.lineType){var s=t.startPoint,r=t.endPoint,a=o(s),l=o(r),h=l.clone().sub(a).normalize();e.add(new ot(a,l,n,i)),Math.abs(h.x)>=Math.abs(h.y)?e.horizLineElements.push({name:i,v1:a,v2:l,material:n}):e.verticalLineElements.push({name:i,v1:a,v2:l,material:n})}else if("Arc"===t.lineType){var c=t.points.map(o);e.add(new nt(c,n,i))}}));var a=r.positions.map(o);e.add(new rt(a,i))})),this.lineElements.push(this.horizLineElements),this.lineElements.push(this.verticalLineElements),this.calculateIntersections()},t.prototype.calculateAxisGridBox=function(e,t,i){var o=this;this.boundingBox.makeEmpty(),this.resourceGrids.forEach((function(e){e.geometry.forEach((function(e){if("Line"===e.lineType){var t=e.startPoint,i=e.endPoint,n=new THREE.Vector2(t.x,t.y),s=new THREE.Vector2(i.x,i.y);e.points=[n,s]}else if("Arc"===e.lineType){var r=window.CLOUD.AxisGridManager.getArcGridPoints(e);e.points=r}e.points.forEach((function(e){return o.boundingBox.expandByPoint(e)}))}))})),this.realBoundingBox=this.boundingBox.clone();var n=this.boundingBox.getCenter(this.scratchVector);this.boundingBox.getSize(this.boxSize);var s=new THREE.Vector2,r=e/t,a=this.boxSize.x/this.boxSize.y,l=this.boxSize.x,h=this.boxSize.y,c=4*(i+4)*this.multiplyZoomFactor;a>r?(this.bIsShowAxisGrid&&(l=this.boxSize.x*e/(e-c)),h=l/r):a<r&&(this.bIsShowAxisGrid&&(h=this.boxSize.y*t/(t-c)),l=h*r),s.set(l,h),this.boundingBox.setFromCenterAndSize(n,s)},t.prototype.getAxisGridBox=function(e){return this.isValid()&&this.calculateAxisGridBox(this.width,this.height,10),e?this.realBoundingBox:this.boundingBox},t.prototype.isEmpty=function(){return this.boundingBox.getSize(this.boxSize),0==this.boxSize.length()},t.prototype.isValid=function(){return!!this.resourceGrids},t.prototype.calculateIntersections=function(){for(var e,t,i,o,n,s,r,a,l=this.horizLineElements.length,h=this.verticalLineElements.length,c=0;c<l;c++){o=(e=this.horizLineElements[c]).name,n=e.v1.clone(),s=e.v2.clone();for(var d=0;d<h;d++){i=(t=this.verticalLineElements[d]).name,r=t.v1.clone(),a=t.v2.clone();var g=!1;r.x<=Math.max(n.x,s.x)&&r.x>=Math.min(n.x,s.x)&&n.y<=Math.max(r.y,a.y)&&n.y>=Math.min(r.y,a.y)&&(g=!0);var u=null;g&&(u=this.algorithm.getInterPoint(n,s,r,a)),this.intersections.push({intersectionPoint:u,horizLine:[n.clone(),s.clone()],verticalLine:[r.clone(),a.clone()],abcName:o,numeralName:i})}}},t.prototype.getIntersections=function(){return this.intersections},t.prototype.abtainRenderables=function(e){for(var t=0;t<this.children.length;t++){this.children[t].abtainRenderables(e)}},t.prototype.getGridLineByName=function(e){for(var t=this.children,i=0;i<t.length;i++){var o=t[i];if(o instanceof ot&&o.isMatch(e))return o}},t.prototype.move=function(e,t){this.children.forEach((function(i){i.move(e,t)}))},t}(tt),lt=function(e){function t(t,i,o){var n=e.call(this)||this;return n.imageUrl=t,n.width=i[0],n.height=i[1],n.offsetX=i[2],n.offsetY=i[3],n.isFlip=o,n.build(),n}return $e(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"image");e.href.baseVal=this.imageUrl,e.setAttribute("herf",this.imageUrl),e.setAttribute("preserveAspectRatio","none"),e.setAttribute("width",this.width+""),e.setAttribute("height",this.height+""),e.setAttribute("x",-.5*this.width+""),e.setAttribute("y",-.5*this.height+""),this.isFlip&&e.setAttribute("transform","scale(-1,1)"),this.svgNode=e,this.locate(this.offsetX,this.offsetY)},t.prototype.move=function(e,t){var i=this.position.x+e,o=this.position.y+t;return this.isFlip?this.svgNode.setAttribute("transform","translate("+i+", "+o+")\n scale("+"-1,1)"):this.svgNode.setAttribute("transform","translate("+i+","+o+")"),{x:i,y:o}},t}(tt);!function(e){e.Default="Editor",e.PICK_Editor="Pick",e.RECTPICK_Editor="RectPick",e.PAN_Editor="Pan",e.Zoom_Editor="Zoom"}(et||(et={}));var ht,ct,dt,gt=function(){function e(){this.bIsMouseDown=!1,this.name=et.Default}return e.prototype.onMouseDown=function(e){},e.prototype.onMouseMove=function(e){},e.prototype.onMouseUp=function(e){},e.prototype.onMouseWheel=function(e){},e.prototype.getName=function(){return this.name},e}();!function(e){e[e.RECTPICK_MOUSE_DOWN=1e3]="RECTPICK_MOUSE_DOWN",e[e.RECTPICK_MOUSE_MOVE=1001]="RECTPICK_MOUSE_MOVE",e[e.RECTPICK_MOUSE_UP=1002]="RECTPICK_MOUSE_UP",e[e.PICK_MOUSE_DOWN=2e3]="PICK_MOUSE_DOWN",e[e.PICK_MOUSE_MOVE=2001]="PICK_MOUSE_MOVE",e[e.PICK_MOUSE_UP=2002]="PICK_MOUSE_UP",e[e.Floor_Plane_Changed=3e3]="Floor_Plane_Changed",e[e.Floor_Plane_Changed_For_Panel=3001]="Floor_Plane_Changed_For_Panel",e[e.Resize=4e3]="Resize",e[e.Camera_Height_Changed=5e3]="Camera_Height_Changed",e[e.ZOOM_MOUSE_WHEEL=6e3]="ZOOM_MOUSE_WHEEL",e[e.PAN_MOUSE_MOVE=7e3]="PAN_MOUSE_MOVE",e[e.Minimap_Rect_Changed=8e3]="Minimap_Rect_Changed",e[e.Minimap_Rect_Destroyed=8001]="Minimap_Rect_Destroyed"}(ht||(ht={})),function(e){e[e.Left=0]="Left",e[e.Middle=1]="Middle",e[e.Right=2]="Right"}(ct||(ct={})),function(e){e.Min="Min",e.Max="Max"}(dt||(dt={}));var ut,pt=function(e){function t(t,i){var o=e.call(this)||this;return o.totalZoomFactors=[],o.zoomFactors=[],o.lastZoomFactor=1,o.currentIdx=0,o.name=et.Zoom_Editor,o.eventManager=i,o.vfData=t.getData(),o.vfViewer=t,o}return $e(t,e),t.prototype.onMouseWheel=function(e){var t=(e.deltaY||-e.wheelDelta||e.detail)<0,i=-1;if(t?this.currentIdx<this.zoomFactors.length-1&&(this.currentIdx++,i=this.zoomFactors[this.currentIdx]):this.currentIdx>0&&(this.currentIdx--,i=this.zoomFactors[this.currentIdx]),!(i<0||this.lastZoomFactor==i)){this.lastZoomFactor=i,1==i&&At.clear();var o=this.vfData.getOriginSize(),n=new THREE.Vector2(e.offsetX-o[0]/2,e.offsetY-o[1]/2),s=this.zoomFactors[this.currentIdx],r=0,a=0;if(t){var l=s/(g=this.zoomFactors[this.currentIdx-1]),h=[],c=this.vfData.getCorner("Virtual","LB");c[0]-=n.x,c[1]-=n.y,h.push(c[0]*l+n.x),h.push(c[1]*l+n.y),this.vfData.setZoomFactor(s);var d=this.vfData.getCorner("Virtual","LB");this.vfData.setZoomFactor(g),r=h[0]-d[0],a=h[1]-d[1]}else{var g=this.zoomFactors[this.currentIdx+1],u=this.boundsChecking(s,g,n);r=u[0],a+=u[1]}At.panOffsetX+=r,At.panOffsetY+=a,At.panOffsetXForCamera+=r,At.panOffsetYForCamera+=a,this.vfData.setZoomFactor(i),this.vfViewer.destroy(),this.vfData.destroy(),this.vfData.build(),this.vfViewer.update(),this.vfData.updateMovement(),this.updateZoomAndPan(),this.eventManager.dispatchEvent({type:ht.ZOOM_MOUSE_WHEEL,data:{offsetX:At.panOffsetX,offsetY:At.panOffsetY,zoomFactor:i}})}},t.prototype.boundsChecking=function(e,t,i){var o=e/t,n=this.vfData.getCorner("Virtual","LB"),s=this.vfData.getCorner("Virtual","LT"),r=this.vfData.getCorner("Virtual","RT"),a=this.vfData.getCorner("Virtual","RB"),l=[0,0],h=(n[0]-i.x)*o+i.x,c=(n[1]-i.y)*o+i.y;this.vfData.setZoomFactor(e);var d=this.vfData.getCorner("Virtual","LB");this.vfData.setZoomFactor(t),l[0]=h-d[0],l[1]=c-d[1];var g=0,u=0,p=this.vfData.getCorner("Origin","LB");h>p[0]&&(l[0]+=p[0]-h,g++),c<p[1]&&(l[1]+=p[1]-c,u++),h=(s[0]-i.x)*o+i.x,c=(s[1]-i.y)*o+i.y;var A=this.vfData.getCorner("Origin","LT");h>A[0]&&0==g&&(l[0]+=A[0]-h,g++),c>A[1]&&0==u&&(l[1]+=A[1]-c,u++),h=(r[0]-i.x)*o+i.x,c=(r[1]-i.y)*o+i.y;var m=this.vfData.getCorner("Origin","RT");h<m[0]&&0==g&&(l[0]+=m[0]-h,g++),c>m[1]&&0==u&&(l[1]+=m[1]-c,u++),h=(a[0]-i.x)*o+i.x,c=(a[1]-i.y)*o+i.y;var w=this.vfData.getCorner("Origin","RB");return h<w[0]&&0==g&&(l[0]+=w[0]-h,g++),c<w[1]&&0==u&&(l[1]+=w[1]-c,u++),l},t.prototype.enableMode=function(e){if(e==dt.Min)this.zoomFactors=this.totalZoomFactors;else if(e==dt.Max){this.zoomFactors=this.totalZoomFactors.slice(1,this.totalZoomFactors.length);for(var t=1;t<this.zoomFactors.length;t++)this.zoomFactors[t]/=this.zoomFactors[0];this.zoomFactors[0]=1}this.currentIdx=0},t.prototype.setZoomFactors=function(e){this.totalZoomFactors=e,this.zoomFactors=e},t.prototype.setZoonIndex=function(e){this.currentIdx=e},t.prototype.getZoonIndex=function(){return this.currentIdx},t.prototype.updateZoomAndPan=function(){var e=this.vfData.getCorner("Origin","LT"),i=this.vfData.getCorner("Virtual","LT");t.offsetXForZoomAndPan=e[0]-i[0],t.offsetYForZoomAndPan=e[1]-i[1]},t.clear=function(){t.offsetXForZoomAndPan=0,t.offsetYForZoomAndPan=0},t.offsetXForZoomAndPan=0,t.offsetYForZoomAndPan=0,t}(gt),At=function(e){function t(i,o){var n=e.call(this)||this;return n.name=et.PAN_Editor,n.eventManager=o,n.vfData=i.getData(),n.bIsMouseDown=!1,n.mouseDownPos=new THREE.Vector2,t.panOffsetX=0,t.panOffsetY=0,n}return $e(t,e),t.prototype.onMouseDown=function(e){this.bIsMouseDown=!0,this.mouseDownPos.setX(e.clientX),this.mouseDownPos.setY(e.clientY)},t.prototype.onMouseMove=function(e){if(0!=this.bIsMouseDown&&1!=this.vfData.getZoomFactor()){var i=e.clientX-this.mouseDownPos.x,o=e.clientY-this.mouseDownPos.y,n=this.boundsChecking(i,o);i=n[0],o=n[1],t.panOffsetX+=i,t.panOffsetY+=o,t.panOffsetXForCamera+=i,t.panOffsetYForCamera+=o,this.vfData.updateMovement(),this.updateZoomAndPan(),this.mouseDownPos.setX(e.clientX),this.mouseDownPos.setY(e.clientY)}},t.prototype.onMouseUp=function(e){if(0!=this.bIsMouseDown&&1!=this.vfData.getZoomFactor()){var i=e.clientX-this.mouseDownPos.x,o=e.clientY-this.mouseDownPos.y,n=this.boundsChecking(i,o);i=n[0],o=n[1],t.panOffsetX+=i,t.panOffsetY+=o,t.panOffsetXForCamera+=i,t.panOffsetYForCamera+=o,this.vfData.updateMovement(),this.updateZoomAndPan(),this.eventManager.dispatchEvent({type:ht.PAN_MOUSE_MOVE,data:{offsetX:t.panOffsetX,offsetY:t.panOffsetY,zoomFactor:this.vfData.getZoomFactor()}}),this.bIsMouseDown=!1}},t.prototype.boundsChecking=function(e,t){var i=this.vfData.getCorner("Origin","LB"),o=this.vfData.getCorner("Virtual","LB"),n=this.vfData.getCorner("Origin","RT"),s=this.vfData.getCorner("Virtual","RT");if(e>0)(r=i[0]-o[0])<=e&&(e=r);else if(e<0){var r;(r=n[0]-s[0])>=e&&(e=r)}if(t<0)(a=i[1]-o[1])>=t&&(t=a);else if(t>0){var a;(a=n[1]-s[1])<=t&&(t=a)}return[e,t]},t.prototype.updateZoomAndPan=function(){var e=this.vfData.getCorner("Origin","LT"),t=this.vfData.getCorner("Virtual","LT");pt.offsetXForZoomAndPan=e[0]-t[0],pt.offsetYForZoomAndPan=e[1]-t[1]},t.clear=function(){t.panOffsetX=0,t.panOffsetY=0,t.panOffsetXForCamera=0,t.panOffsetYForCamera=0},t}(gt),mt=function(e){function t(){var t=e.call(this)||this;return t.cameraCircleNode=null,t.cameraArrowNode=null,t.rotateAngle=0,t.panelSize=[298,198],t.build(),t}return $e(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"g");e.setAttribute("fill","none"),e.setAttribute("fill-rule","evenodd"),e.setAttribute("stroke-width","1");var t=document.createElementNS(this.xmlns,"circle");t.setAttribute("r","4.5"),t.setAttribute("stroke","#FFFFFF"),t.setAttribute("fill","#32D3A6"),this.cameraCircleNode=t;var i=document.createElementNS(this.xmlns,"path");i.setAttribute("d","M5.94925387,0 C18.4132389,0 28.6581001,9.50119823 29.8362478,21.6560048 L5.94925387,25 Z"),i.setAttribute("fill","url(#radialGradient-1)"),i.setAttribute("transform","translate(13,-21)rotate(50)"),this.cameraArrowNode=i;var o=document.createElementNS(this.xmlns,"defs"),n=document.createElementNS(this.xmlns,"radialGradient"),s=document.createElementNS(this.xmlns,"stop"),r=document.createElementNS(this.xmlns,"stop");n.setAttribute("cx","0%"),n.setAttribute("cy","100%"),n.setAttribute("fx","0%"),n.setAttribute("fy","100%"),n.setAttribute("r","104.321936%"),n.setAttribute("id","radialGradient-1"),s.setAttribute("stop-color","#36D4A8"),s.setAttribute("offset","0%"),r.setAttribute("stop-color","#36D4A8"),r.setAttribute("offset","100%"),r.setAttribute("stop-opacity","0"),o.append(n),n.append(s),n.append(r),e.appendChild(o),e.appendChild(t),e.appendChild(i),this.svgNode=e},t.prototype.setCircleAttribute=function(e,t){this.cameraCircleNode.setAttribute(e,t)},t.prototype.setArrowAttribute=function(e,t){this.cameraArrowNode.setAttribute(e,t)},t.prototype.rotate=function(e){e&&(this.rotateAngle=e);var t=this.svgNode.getAttribute("transform");t+="rotate("+this.rotateAngle+")",this.svgNode.setAttribute("transform",t)},t.prototype.setOffsetAndRotate=function(e,t,i){var o=this.setOffsetBoundary(e,t);this.locate(o.X,o.Y),this.rotate(i),At.panOffsetXForCamera=0,At.panOffsetYForCamera=0},t.prototype.move=function(e,t){var i=this.position.x+e,o=this.position.y+t,n=this.setOffsetBoundary(i,o);this.svgNode.setAttribute("transform","translate("+n.X+","+n.Y+")")},t.prototype.setOpacity=function(e){this.svgNode.setAttribute("opacity",e)},t.prototype.setCameraArrowOpacity=function(e){this.cameraArrowNode.setAttribute("opacity",e)},t.prototype.setCameraCircleOpacity=function(e){this.cameraCircleNode.setAttribute("opacity",e)},t.prototype.setBigCamera=function(){this.cameraCircleNode.setAttribute("r","4.5"),this.cameraArrowNode.setAttribute("transform","translate(13,-21)rotate(50)")},t.prototype.setSmallCamera=function(){this.cameraCircleNode.setAttribute("r","2"),this.cameraArrowNode.setAttribute("transform","translate(20,-21)rotate(50)")},t.prototype.setPanelSize=function(e){this.panelSize=e},t.prototype.setOffsetBoundary=function(e,t){var i=this.panelSize[0]/2-6,o=-this.panelSize[0]/2+6,n=this.panelSize[1]/2-6,s=-this.panelSize[1]/2+6;return e>=i||e<=o||t>=n||t<=s?this.setSmallCamera():this.setBigCamera(),e>i&&(e=i),e<o&&(e=o),t>n&&(t=n),t<s&&(t=s),{X:e,Y:t}},t}(tt),wt=function(){function e(e){this.resourcePlanes=e}return e.prototype.find=function(e){for(var t=0;t<this.resourcePlanes.length;t++){var i=this.resourcePlanes[t];if(i.id==e)return i}},e.prototype.getFloorPlaneBox=function(e){var t=this.find(e);return t?t.boundingBox||t.BoundingBox:void 0},e.prototype.getUrl=function(e){var t=this.find(e);return t?t.path||t.Path:void 0},e.prototype.getElevation=function(e){var t=this.find(e);return t?t.Elevation:void 0},e.prototype.getName=function(e){var t=this.find(e);return t?t.name||t.Name:void 0},e}(),Ct=function(e){function t(){return e.call(this)||this}return $e(t,e),t.prototype.getCuttingBoxOnCanvas=function(e,t,i,o){var n=new THREE.Box3,s=new THREE.Vector2(e.x,e.y),r=new THREE.Vector2(t.x,t.y);this.toWorldPoint(s,i[0],i[1],o),this.toWorldPoint(r,i[0],i[1],o);var a=[];return a.push(new THREE.Vector3(s.x,s.y)),a.push(new THREE.Vector3(s.x,s.y)),a.push(new THREE.Vector3(s.x,r.y)),a.push(new THREE.Vector3(s.x,r.y)),a.push(new THREE.Vector3(r.x,r.y)),a.push(new THREE.Vector3(r.x,r.y)),a.push(new THREE.Vector3(r.x,s.y)),a.push(new THREE.Vector3(r.x,s.y)),n.setFromPoints(a),{min:{x:n.min.x,y:n.min.y,z:0},max:{x:n.max.x,y:n.max.y,z:0}}},t.prototype.toWorldPoint=function(e,t,i,o){e.x<0&&(e.x=0),e.x>t&&(e.x=t),e.y<0&&(e.y=0),e.y>i&&(e.y=i),e.x=e.x/t*2-1,e.y=-e.y/i*2+1,o.normalizedPointToWorld(e)},t.prototype.normalizePointByZoomFactor=function(e,t,i,o){var n=new THREE.Vector2;if(e){var s=this.getContainerOffsetToClient(e),r=new THREE.Vector2;r.x=i.x-s.left-(e.clientWidth*o-t[0])/2,r.y=i.y-s.top-(e.clientHeight*o-t[1])/2;var a={width:t[0],height:t[1]};if(r.x>0&&r.x<a.width&&r.y>0&&r.y<a.height)return n.x=r.x/a.width*2-1,n.y=-r.y/a.height*2+1,new THREE.Vector2(n.x,n.y)}return null},t}(it),ft=function(){function e(e,t){this.point2D=new THREE.Vector2;var i=e[0],o=e[1],n=t[0],s=t[1],r=o.clone().sub(i).length()/s.clone().sub(n).length();this.rotateAngle=this.calculateRotateAngle(s.x-n.x,n.y-s.y,o.x-i.x,o.y-i.y);var a=(new THREE.Matrix3).translate(-n.x,n.y),l=(new THREE.Matrix3).translate(i.x,i.y),h=(new THREE.Matrix3).rotate(-this.rotateAngle),c=(new THREE.Matrix3).scale(r,r);this.mapToModelMatrix=l.clone().multiply(c).multiply(h).multiply(a);var d=(new THREE.Matrix3).translate(n.x,-n.y),g=(new THREE.Matrix3).translate(-i.x,-i.y),u=(new THREE.Matrix3).rotate(this.rotateAngle),p=(new THREE.Matrix3).scale(1/r,1/r);this.modelToMapMatrix=d.clone().multiply(u).multiply(p).multiply(g)}return e.prototype.calculateRotateAngle=function(e,t,i,o){var n=1e-6,s=Math.acos(-1),r=Math.sqrt(e*e+t*t);t/=r;var a=0,l=(e/=r)*(i/=r=Math.sqrt(i*i+o*o))+t*(o/=r);if(Math.abs(l-1)<=n)a=0;else if(Math.abs(l+1)<=n)a=s;else{a=Math.acos(l),e*o-i*t<0&&(a=2*s-a)}return a},e.prototype.getRotateAngle=function(){return this.rotateAngle},e.prototype.mapToModel=function(e){return new THREE.Vector2(e.x,-e.y).applyMatrix3(this.mapToModelMatrix)},e.prototype.modelToMap=function(e){this.point2D.set(e.x,e.y);var t=this.point2D.clone().applyMatrix3(this.modelToMapMatrix);return t.y=-t.y,t},e}(),Et=function(e){function t(t,i){var o=e.call(this)||this;return o.radius=t,o.material=i,o.build(),o}return $e(t,e),t.prototype.build=function(){var e=document.createElementNS(this.xmlns,"circle");e.setAttribute("r",this.radius+""),e.setAttribute("fill",this.glodonColor),e.setAttribute("style","fill: none; stroke: "+this.glodonColor),e.setAttribute("opacity","0"),this.svgNode=e},t.prototype.highlight=function(){this.svgNode.setAttribute("style","stroke:"+this.glodonColor),this.svgNode.setAttribute("opacity","1")},t.prototype.cancelHighlight=function(){this.svgNode.setAttribute("style","stroke:rgb(153,153,153)"),this.svgNode.setAttribute("opacity","0")},t.prototype.setOffset=function(e,t){this.svgNode.setAttribute("transform","translate("+e+","+t+")")},t}(tt);!function(e){e.Default="Editor",e.PICK_Editor="Pick",e.RECTPICK_Editor="RectPick",e.PAN_Editor="Pan",e.Zoom_Editor="Zoom"}(ut||(ut={}));var Bt,It,yt=function(){function e(){this.bIsMouseDown=!1,this.name=ut.Default}return e.prototype.onMouseDown=function(e){},e.prototype.onMouseMove=function(e){},e.prototype.onMouseUp=function(e){},e.prototype.onMouseWheel=function(e){},e.prototype.getName=function(){return this.name},e.prototype.scale=function(e,t,i){},e}();!function(e){e[e.RECTPICK_MOUSE_DOWN=1e3]="RECTPICK_MOUSE_DOWN",e[e.RECTPICK_MOUSE_MOVE=1001]="RECTPICK_MOUSE_MOVE",e[e.RECTPICK_MOUSE_UP=1002]="RECTPICK_MOUSE_UP",e[e.PICK_MOUSE_DOWN=2e3]="PICK_MOUSE_DOWN",e[e.PICK_MOUSE_MOVE=2001]="PICK_MOUSE_MOVE",e[e.PICK_MOUSE_UP=2002]="PICK_MOUSE_UP",e[e.Floor_Plane_Changed=3e3]="Floor_Plane_Changed",e[e.Floor_Plane_Changed_For_Panel=3001]="Floor_Plane_Changed_For_Panel",e[e.Resize=4e3]="Resize",e[e.Camera_Height_Changed=5e3]="Camera_Height_Changed",e[e.ZOOM_MOUSE_WHEEL=6e3]="ZOOM_MOUSE_WHEEL",e[e.PAN_MOUSE_MOVE=7e3]="PAN_MOUSE_MOVE",e[e.NavigationMapRectChanged=8e3]="NavigationMapRectChanged",e[e.NavigationMapRectDestroyed=8001]="NavigationMapRectDestroyed"}(Bt||(Bt={})),function(e){e[e.Left=0]="Left",e[e.Middle=1]="Middle",e[e.Right=2]="Right"}(It||(It={}));var St,Mt=function(){function e(){this.eventDispatcher=new THREE.EventDispatcher}return e.prototype.addEventListener=function(e,t){this.eventDispatcher.addEventListener(e,t)},e.prototype.hasEventListener=function(e){this.eventDispatcher.hasEventListener(e)},e.prototype.removeEventListener=function(e,t){this.eventDispatcher.removeEventListener(e,t)},e.prototype.dispatchEvent=function(e){this.eventDispatcher.dispatchEvent(e)},e}();!function(e){e.Min="Min",e.Max="Max"}(St||(St={}));var vt=function(e){function t(t,i){var o=e.call(this)||this;return o.totalZoomFactors=[],o.zoomFactors=[],o.lastZoomFactor=1,o.currentIdx=0,o.name=ut.Zoom_Editor,o.eventManager=i,o.nmData=t.getData(),o.nmViewer=t,o}return $e(t,e),t.prototype.scale=function(e,t,i){var o=t>e,n=-1;if(o?this.currentIdx<this.zoomFactors.length-1&&(this.currentIdx++,n=this.zoomFactors[this.currentIdx]):this.currentIdx>0&&(this.currentIdx--,n=this.zoomFactors[this.currentIdx]),!(n<0||this.lastZoomFactor==n)){this.lastZoomFactor=n,1==n&&xt.clear();var s=this.nmData.getOriginSize(),r=new THREE.Vector2(i[0]-s[0]/2,i[1]-s[1]/2),a=this.zoomFactors[this.currentIdx],l=0,h=0;if(o){var c=a/(p=this.zoomFactors[this.currentIdx-1]),d=[],g=this.nmData.getCorner("Virtual","LB");g[0]-=r.x,g[1]-=r.y,d.push(g[0]*c+r.x),d.push(g[1]*c+r.y),this.nmData.setZoomFactor(a);var u=this.nmData.getCorner("Virtual","LB");this.nmData.setZoomFactor(p),l=d[0]-u[0],h=d[1]-u[1]}else{var p=this.zoomFactors[this.currentIdx+1],A=this.boundsChecking(a,p,r);l=A[0],h+=A[1]}xt.panOffsetX+=l,xt.panOffsetY+=h,xt.panOffsetXForCamera+=l,xt.panOffsetYForCamera+=h,this.nmData.setZoomFactor(n),this.nmViewer.destroy(),this.nmData.destroy(),this.nmData.build(),this.nmViewer.update(),this.nmData.updateMovement(),this.updateZoomAndPan(),this.eventManager.dispatchEvent({type:Bt.ZOOM_MOUSE_WHEEL,data:{offsetX:xt.panOffsetX,offsetY:xt.panOffsetY,zoomFactor:n}})}},t.prototype.onMouseWheel=function(e){var t=(e.deltaY||-e.wheelDelta||e.detail)<0,i=-1;if(t?this.currentIdx<this.zoomFactors.length-1&&(this.currentIdx++,i=this.zoomFactors[this.currentIdx]):this.currentIdx>0&&(this.currentIdx--,i=this.zoomFactors[this.currentIdx]),!(i<0||this.lastZoomFactor==i)){this.lastZoomFactor=i,1==i&&xt.clear();var o=this.nmData.getOriginSize(),n=new THREE.Vector2(e.offsetX-o[0]/2,e.offsetY-o[1]/2),s=this.zoomFactors[this.currentIdx],r=0,a=0;if(t){var l=s/(g=this.zoomFactors[this.currentIdx-1]),h=[],c=this.nmData.getCorner("Virtual","LB");c[0]-=n.x,c[1]-=n.y,h.push(c[0]*l+n.x),h.push(c[1]*l+n.y),this.nmData.setZoomFactor(s);var d=this.nmData.getCorner("Virtual","LB");this.nmData.setZoomFactor(g),r=h[0]-d[0],a=h[1]-d[1]}else{var g=this.zoomFactors[this.currentIdx+1],u=this.boundsChecking(s,g,n);r=u[0],a+=u[1]}xt.panOffsetX+=r,xt.panOffsetY+=a,xt.panOffsetXForCamera+=r,xt.panOffsetYForCamera+=a,this.nmData.setZoomFactor(i),this.nmViewer.destroy(),this.nmData.destroy(),this.nmData.build(),this.nmViewer.update(),this.nmData.updateMovement(),this.updateZoomAndPan(),this.eventManager.dispatchEvent({type:Bt.ZOOM_MOUSE_WHEEL,data:{offsetX:xt.panOffsetX,offsetY:xt.panOffsetY,zoomFactor:i}})}},t.prototype.boundsChecking=function(e,t,i){var o=e/t,n=this.nmData.getCorner("Virtual","LB"),s=this.nmData.getCorner("Virtual","LT"),r=this.nmData.getCorner("Virtual","RT"),a=this.nmData.getCorner("Virtual","RB"),l=[0,0],h=(n[0]-i.x)*o+i.x,c=(n[1]-i.y)*o+i.y;this.nmData.setZoomFactor(e);var d=this.nmData.getCorner("Virtual","LB");this.nmData.setZoomFactor(t),l[0]=h-d[0],l[1]=c-d[1];var g=0,u=0,p=this.nmData.getCorner("Origin","LB");h>p[0]&&(l[0]+=p[0]-h,g++),c<p[1]&&(l[1]+=p[1]-c,u++),h=(s[0]-i.x)*o+i.x,c=(s[1]-i.y)*o+i.y;var A=this.nmData.getCorner("Origin","LT");h>A[0]&&0==g&&(l[0]+=A[0]-h,g++),c>A[1]&&0==u&&(l[1]+=A[1]-c,u++),h=(r[0]-i.x)*o+i.x,c=(r[1]-i.y)*o+i.y;var m=this.nmData.getCorner("Origin","RT");h<m[0]&&0==g&&(l[0]+=m[0]-h,g++),c>m[1]&&0==u&&(l[1]+=m[1]-c,u++),h=(a[0]-i.x)*o+i.x,c=(a[1]-i.y)*o+i.y;var w=this.nmData.getCorner("Origin","RB");return h<w[0]&&0==g&&(l[0]+=w[0]-h,g++),c<w[1]&&0==u&&(l[1]+=w[1]-c,u++),l},t.prototype.enableMode=function(e){if(e==St.Min)this.zoomFactors=this.totalZoomFactors;else if(e==St.Max){this.zoomFactors=this.totalZoomFactors.slice(1,this.totalZoomFactors.length);for(var t=1;t<this.zoomFactors.length;t++)this.zoomFactors[t]/=this.zoomFactors[0];this.zoomFactors[0]=1}this.currentIdx=0},t.prototype.setZoomFactors=function(e){this.totalZoomFactors=e,this.zoomFactors=e},t.prototype.setZoonIndex=function(e){this.currentIdx=e},t.prototype.getZoonIndex=function(){return this.currentIdx},t.prototype.updateZoomAndPan=function(){var e=this.nmData.getCorner("Origin","LT"),i=this.nmData.getCorner("Virtual","LT");t.offsetXForZoomAndPan=e[0]-i[0],t.offsetYForZoomAndPan=e[1]-i[1]},t.clear=function(){t.offsetXForZoomAndPan=0,t.offsetYForZoomAndPan=0},t.offsetXForZoomAndPan=0,t.offsetYForZoomAndPan=0,t}(yt),xt=function(e){function t(i,o){var n=e.call(this)||this;return n.name=ut.PAN_Editor,n.eventManager=o,n.nmData=i.getData(),n.bIsMouseDown=!1,n.mouseDownPos=new THREE.Vector2,t.panOffsetX=0,t.panOffsetY=0,n}return $e(t,e),t.prototype.onMouseDown=function(e){this.bIsMouseDown=!0,this.mouseDownPos.setX(e.clientX),this.mouseDownPos.setY(e.clientY)},t.prototype.onMouseMove=function(e){this.bIsMouseDown},t.prototype.onMouseUp=function(e){if(0!=this.bIsMouseDown&&1!=this.nmData.getZoomFactor()){var i=e.clientX-this.mouseDownPos.x,o=e.clientY-this.mouseDownPos.y;if(0!==i||0!==o){var n=this.boundsChecking(i,o);i=n[0],o=n[1],t.panOffsetX+=i,t.panOffsetY+=o,t.panOffsetXForCamera+=i,t.panOffsetYForCamera+=o,this.nmData.updateMovement(),this.updateZoomAndPan(),this.eventManager.dispatchEvent({type:Bt.PAN_MOUSE_MOVE,data:{offsetX:t.panOffsetX,offsetY:t.panOffsetY,zoomFactor:this.nmData.getZoomFactor()}}),this.bIsMouseDown=!1}}},t.prototype.boundsChecking=function(e,t){var i=this.nmData.getCorner("Origin","LB"),o=this.nmData.getCorner("Virtual","LB"),n=this.nmData.getCorner("Origin","RT"),s=this.nmData.getCorner("Virtual","RT");if(e>0)(r=i[0]-o[0])<=e&&(e=r);else if(e<0){var r;(r=n[0]-s[0])>=e&&(e=r)}if(t<0)(a=i[1]-o[1])>=t&&(t=a);else if(t>0){var a;(a=n[1]-s[1])<=t&&(t=a)}return[e,t]},t.prototype.updateZoomAndPan=function(){var e=this.nmData.getCorner("Origin","LT"),t=this.nmData.getCorner("Virtual","LT");vt.offsetXForZoomAndPan=e[0]-t[0],vt.offsetYForZoomAndPan=e[1]-t[1]},t.clear=function(){t.panOffsetX=0,t.panOffsetY=0,t.panOffsetXForCamera=0,t.panOffsetYForCamera=0},t}(yt),bt=function(){function e(){this.zoomFactor=1,this.imageScale=1,this.imageOriginScale=1,this.bboxLengthStages=[15e4,3e5],this.zoomFactors1=[1,7/4,2.5,10/3],this.zoomFactors2=[1,7/4,2.5,14/3,65/12,20/3],this.zoomFactors3=[1,7/4,2.5,10/3,14/3,65/12,20/3,49/6,10],this.url=null,this.drawableItems=[],this.bIsShowAxisGrid=!1,this.bIsShowCameraNode=!0,this.bIsShowFloorPlane=!0,this.floorPlaneBox=new THREE.Box3,this.axisGridNode=null,this.cameraNode=null,this.floorPlaneNode=null,this.algorithm=new Ct,this.glodonColor="#11DAB7",this.axisGridBoxSize=new THREE.Vector2,this.boxCenter=new THREE.Vector2,this.boxSize=new THREE.Vector2,this.boxCenter2=new THREE.Vector2}return e.prototype.setPlanes=function(e){this.dataFloorPlanes=new wt(e)},e.prototype.setUrl=function(e,t){this.url=e,this.isProfile=t,this.build()},e.prototype.setAnchor=function(e){var t=e.modelAnchor,i=e.mapAnchor,o=e.zHeight,n=e.maxHeight;this.modelAnchor=t,this.mapAnchor=i,this.zHeight=o,this.maxHeight=n,this.coordinateTransform=new ft(t,i)},e.prototype.getRotateAngle=function(){return this.coordinateTransform.getRotateAngle()},e.prototype.mapToModel=function(e){var t=this.coordinateTransform.mapToModel(e);return new THREE.Vector3(t.x,t.y,this.zHeight)},e.prototype.modelToMap=function(e){return this.coordinateTransform.modelToMap(e)},e.prototype.worldToNormalizedPoint=function(e){var t=this.modelToMap(e);return e.x=t.x/this.imgSize.width*2-1,e.y=2*(1-t.y/this.imgSize.height)-1,e},e.prototype.normalizedPointToWorld=function(e){var t=new THREE.Vector2;t.x=.5*(e.x+1)*this.imgSize.width,t.y=(1-.5*(e.y+1))*this.imgSize.height;var i=this.mapToModel(t);e.x=i.x,e.y=i.y},e.prototype.clientToModel=function(e){var t=e.x/this.getSize()[0]*this.imgSize.width,i=e.y/this.getSize()[1]*this.imgSize.height,o=new THREE.Vector2(t,i);return this.mapToModel(o)},e.prototype.normalizedPointToScreen=function(e,t){e.x=e.x*t.width,e.y=-e.y*t.height},e.prototype.getUrl=function(){return this.url},e.prototype.getFloorPlaneBox=function(){var e=this.modelAnchor[0],t=this.modelAnchor[1];return e.z=this.zHeight,t.z=this.maxHeight,this.floorPlaneBox.makeEmpty(),this.floorPlaneBox.expandByPoint(e),this.floorPlaneBox.expandByPoint(t),this.floorPlaneBox},e.prototype.setSize=function(e,t){this.width=e,this.height=t},e.prototype.getSize=function(){return[this.width*this.zoomFactor,this.height*this.zoomFactor]},e.prototype.getImageSize=function(){return[this.imgSize.width*this.imageScale*this.zoomFactor,this.imgSize.height*this.imageScale*this.zoomFactor]},e.prototype.saveImageSize=function(e){var t=this.width,i=this.height,o=e.width,n=e.height,s=i/t,r=n/o;this.imageOriginScale=s>=r?t/o:i/n,this.imgSize=e},e.prototype.getOriginSize=function(){return[this.width,this.height]},e.prototype.getGlodonColor=function(){return this.glodonColor},e.prototype.build=function(){if(this.axisGridNode=new at(!1,this.getSize(),this.bIsShowAxisGrid,this.getZoomFactor()),this.buildFloorPlane(),this.bIsShowCameraNode){this.cameraNode=new mt;var e=this.getOriginSize();this.cameraNode.setPanelSize(e),this.drawableItems.push(this.cameraNode)}this.intersectPoint=new Et(3),this.drawableItems.push(this.intersectPoint)},e.prototype.buildFloorPlane=function(){var e=this.getUrl();if(this.bIsShowFloorPlane){var t=this.getFloorPlaneBox();this.getAxisGridBox2D().containsBox(t)||console.warn("the bounding-box of axis-grid is not contains the bounding-box of floor-plane!");var i=this.getFloorPlaneParams2();this.floorPlaneNode=new lt(e,i,this.isProfile),this.drawableItems.push(this.floorPlaneNode)}},e.prototype.getFloorPlaneParams2=function(){var e=this.getSize()[0],t=this.getSize()[1],i=this.imgSize.width,o=this.imgSize.height,n=t/e,s=o/i;this.imageScale=n>=s?e/(i*this.zoomFactor):t/(o*this.zoomFactor);var r=i*this.imageScale*this.zoomFactor,a=o*this.imageScale*this.zoomFactor,l=[];return l.push(r,a),l.push(0,0),l},e.prototype.getFloorPlaneParams=function(){var e=this.getFloorPlaneBox(),t=this.getAxisGridBox2D(),i=new THREE.Box2(new THREE.Vector2(e.min.x,e.min.y),new THREE.Vector2(e.max.x,e.max.y)),o=this.getSize()[0],n=o/this.getSize()[1];t.getSize(this.axisGridBoxSize),this.axisGridBoxSize.x/this.axisGridBoxSize.y!=n&&(this.algorithm.expandBbox(t,n),t.getSize(this.axisGridBoxSize));var s=[],r=o/this.axisGridBoxSize.x;i.getSize(this.boxSize);var a=this.boxSize.x*r,l=this.boxSize.y*r;s.push(a,l),i.getCenter(this.boxCenter),t.getCenter(this.boxCenter2);var h=this.boxCenter.clone().sub(this.boxCenter2);return h.x*=r,h.y*=-r,s.push(h.x,h.y),s},e.prototype.getDataFloorPlanes=function(){return this.dataFloorPlanes},e.prototype.getAxisGridBox2D=function(e){var t=this.axisGridNode.getAxisGridBox(e);if(t.getSize(this.axisGridBoxSize),0==this.axisGridBoxSize.length()){var i=this.getFloorPlaneBox();if(e)return i;var o=(new THREE.Box2).set(new THREE.Vector2(i.min.x,i.min.y),new THREE.Vector2(i.max.x,i.max.y));o.getCenter(this.boxCenter),o.getSize(this.boxSize);var n=new THREE.Vector2,s=this.width/this.height,r=this.boxSize.x/this.boxSize.y,a=this.boxSize.x,l=this.boxSize.y;return r>s?l=a/s:r<s&&(a=l*s),n.set(a,l),o.setFromCenterAndSize(this.boxCenter,n),o}return t},e.prototype.getDrawableItems=function(){return this.drawableItems},e.prototype.destroy=function(){this.drawableItems=[]},e.prototype.setIsShowAxisGrid=function(e){this.bIsShowAxisGrid=e},e.prototype.getCameraNode=function(){for(var e=this.drawableItems,t=0;t<e.length;t++){var i=e[t];if(i instanceof mt)return i}},e.prototype.updateMovement=function(){var e=this.getFloorPlaneNode();this.imgPosition=e.move(xt.panOffsetX,xt.panOffsetY);var t=this.getAxisGridNode();t&&t.move(xt.panOffsetX,xt.panOffsetY);var i=this.getCameraNode();i.move(xt.panOffsetXForCamera,xt.panOffsetYForCamera),i.rotate()},e.prototype.getPicPosition=function(e){var t=this.getFloorPlaneNode(),i=e.x-this.imgPosition.x,o=e.y-this.imgPosition.y;return{x:(i-.5*this.width- -.5*t.width)/t.width*this.imgSize.width,y:(o-.5*this.height- -.5*t.height)/t.height*this.imgSize.height}},e.prototype.getCorner=function(e,t){var i=[],o=[];"Origin"==e?(i=[0,0],o=this.getOriginSize()):"Virtual"==e&&(i=[xt.panOffsetX,xt.panOffsetY],o=this.getSize());var n=0,s=0;switch(t){case"LB":n=i[0]-o[0]/2,s=i[1]+o[1]/2;break;case"LT":n=i[0]-o[0]/2,s=i[1]-o[1]/2;break;case"RT":n=i[0]+o[0]/2,s=i[1]-o[1]/2;break;case"RB":n=i[0]+o[0]/2,s=i[1]+o[1]/2;break;default:console.log("CornerName is wrong.")}return[n,s]},e.prototype.getHeight=function(){return this.zHeight},e.prototype.getIntersections=function(){return this.axisGridNode.getIntersections()},e.prototype.getGridLineByName=function(e){return this.axisGridNode.getGridLineByName(e)},e.prototype.getFloorPlaneNode=function(){return this.floorPlaneNode},e.prototype.getAxisGridNode=function(){return 0==this.bIsShowAxisGrid?null:this.axisGridNode},e.prototype.getIntersectPoint=function(){return this.intersectPoint},e.prototype.setZoomFactor=function(e){this.zoomFactor=e},e.prototype.getZoomFactor=function(){return this.zoomFactor},e.prototype.getProperZoomFactors=function(){this.getAxisGridBox2D(!0).getSize(this.boxSize);var e=Math.max(this.boxSize.x,this.boxSize.y);return e<=this.bboxLengthStages[0]?this.zoomFactors1:e<=this.bboxLengthStages[1]?this.zoomFactors2:this.zoomFactors3},e}(),Ut=function(){function e(e,t,i){this.viewer=e,this.domContainer=t,this.navigationMapData=i,this.width=t.offsetWidth,this.height=t.offsetHeight,this.offsetLeft=t.offsetLeft,this.offsetTop=t.offsetTop,this.algorithm=new Ct,this.eventManager=null,this.bBoxCenter=new THREE.Vector3,this.inverseMatrix=new THREE.Matrix4,this.rotateMatrix=new THREE.Matrix3,this.projectedCameraPosition=new THREE.Vector3,this.projectedTargetPosition=new THREE.Vector3,this.initialize()}return e.prototype.initialize=function(){var e="http://www.w3.org/2000/svg";this.drawableContainer=document.createElementNS(e,"svg"),this.drawableContainer.setAttribute("width",this.width+""),this.drawableContainer.setAttribute("height",this.height+""),this.drawableContainer.setAttribute("viewBox",-this.width/2+" "+-this.height/2+" "+this.width+" "+this.height),this.drawableContainer.style.position="absolute",this.auxContainer=document.createElementNS(e,"svg"),this.auxContainer.setAttribute("width",this.width+""),this.auxContainer.setAttribute("height",this.height+""),this.auxContainer.setAttribute("viewBox",-this.width/2+" "+-this.height/2+" "+this.width+" "+this.height),this.auxContainer.style.position="absolute",this.mapContainer=document.createElement("div"),this.mapContainer.style.left="0px",this.mapContainer.style.bottom="0px",this.mapContainer.style.position="relative",this.mapContainer.outling="none",this.mapContainer.appendChild(this.drawableContainer),this.mapContainer.appendChild(this.auxContainer),this.domContainer.appendChild(this.mapContainer),this.cameraHeightChangedCallbackBinded=this.cameraHeightChangedCallback.bind(this)},e.prototype.cameraHeightChangedCallback=function(e){var t=e.cameraPosition,i=(this.viewer.getScene().getMatrixGlobal(),this.viewer.getScene().getInverseMatrixGlobal()),o=t.clone().applyMatrix4(i);this.navigationMapData.getAxisGridBox2D().containsPoint(new THREE.Vector2(o.x,o.y))},e.prototype.getMapContainer=function(){return this.drawableContainer},e.prototype.getDomContainer=function(){return this.domContainer},e.prototype.getAuxContainer=function(){return this.auxContainer},e.prototype.getViewer=function(){return this.viewer},e.prototype.getData=function(){return this.navigationMapData},e.prototype.setSize=function(e,t){this.mapContainer.style.width=e+"px",this.mapContainer.style.height=t+"px",this.drawableContainer.setAttribute("width",e+""),this.drawableContainer.setAttribute("height",t+""),this.drawableContainer.setAttribute("viewBox",-e/2+" "+-t/2+" "+e+" "+t),this.auxContainer.setAttribute("width",e+""),this.auxContainer.setAttribute("height",t+""),this.auxContainer.setAttribute("viewBox",-e/2+" "+-t/2+" "+e+" "+t),this.destroy(),this.navigationMapData.destroy(),this.navigationMapData.build(),this.update(),this.eventManager.dispatchEvent({type:Bt.Resize,size:{width:e,height:t}})},e.prototype.destroy=function(){for(var e=this.drawableContainer;e.children.length>0;){var t=e.children[0];e.removeChild(t)}this.mapContainer.removeChild(e)},e.prototype.updateCameraNode=function(){var e=this.viewer,t=e.camera,i=e.cameraControl;if(t&&i){var o=t.position,n=t.target,s=this.algorithm.getMainSceneMatrix(e);this.inverseMatrix.copy(s).invert();var r=this.navigationMapData.getFloorPlaneBox();if(isNaN(r.min.z)){var a=o.clone();a.applyMatrix4(this.inverseMatrix),r.min.z=a.z,r.max.z=this.navigationMapData.maxHeight}r.getCenter(this.bBoxCenter);var l=new THREE.Vector3(r.min.x,r.min.y,this.bBoxCenter.z).applyMatrix4(s),h=new THREE.Vector3(r.min.x,r.max.y,this.bBoxCenter.z).applyMatrix4(s),c=new THREE.Vector3(r.max.x,r.min.y,this.bBoxCenter.z).applyMatrix4(s),d=new THREE.Plane;d.setFromCoplanarPoints(l,h,c),d.projectPoint(o,this.projectedCameraPosition),this.projectedCameraPosition.applyMatrix4(this.inverseMatrix),d.projectPoint(n,this.projectedTargetPosition),this.projectedTargetPosition.applyMatrix4(this.inverseMatrix);var g=this.projectedTargetPosition.clone().sub(this.projectedCameraPosition);g.z=0,g.normalize();var u=o.clone();u.applyMatrix4(this.inverseMatrix);var p=u.clone(),A=this.navigationMapData.getCameraNode();if(A){var m=this.navigationMapData.getImageSize(),w={width:m[0]/2,height:m[1]/2};this.navigationMapData.getAxisGridBox2D();if(this.getData().worldToNormalizedPoint(p),this.algorithm.normalizedPointToScreen(p,w),A.setOpacity("1.0"),g.length()<1e-5)A.setCameraArrowOpacity("0.0"),A.setOffsetAndRotate(p.x+xt.panOffsetX,p.y+xt.panOffsetY,0);else{var C=new THREE.Vector3(0,0,1),f=new THREE.Vector3(1,0,0);this.rotateMatrix.identity(),this.rotateMatrix.rotate(this.navigationMapData.getRotateAngle()),g.applyMatrix3(this.rotateMatrix);var E=this.algorithm.isAngleGreaterThanPi(f,g,C),B=THREE.Math.radToDeg(f.angleTo(g));E||(B*=-1),A.setBigCamera(),A.setOffsetAndRotate(p.x+xt.panOffsetX,p.y+xt.panOffsetY,B),A.setCameraArrowOpacity("1.0")}}}},e.prototype.update=function(e){for(var t=this.navigationMapData.getDrawableItems(),i=0;i<t.length;i++){t[i].abtainRenderables(this.drawableContainer)}this.updateCameraNode();var o=this.mapContainer.firstChild;o?this.mapContainer.insertBefore(this.drawableContainer,o):this.mapContainer.appendChild(this.drawableContainer)},e.prototype.setEventManager=function(e){this.eventManager=e},e.prototype.getEventManager=function(){return this.eventManager},e.prototype.registerCameraHeightChanged=function(e){this.viewer.registerEventListener(e,this.cameraHeightChangedCallbackBinded)},e}(),Dt=function(e){function t(t,i){var o=e.call(this)||this;return o.name=ut.PICK_Editor,o.nmViewer=t,o.nmData=t.getData(),o.algorithm=new Ct,o.cameraProjectedPosZ=1750,o.nmViewer.getViewer().modelManager.isMeterUnit()&&(o.cameraProjectedPosZ=o.cameraProjectedPosZ/1e3),o.mapClickMode="default",o.lastMousePoint=new THREE.Vector2,o.eventManager=i,o}return $e(t,e),t.prototype.onMouseDown=function(e){this.bIsMouseDown=!0,this.lastMousePoint.setX(e.clientX),this.lastMousePoint.setY(e.clientY)},t.prototype.onMouseMove=function(e){},t.prototype.onMouseUp=function(e){this.bIsMouseDown=!1,this.lastMousePoint.x===e.clientX&&this.lastMousePoint.y===e.clientY&&this.locateByClientPoint(e.clientX+vt.offsetXForZoomAndPan,e.clientY+vt.offsetYForZoomAndPan,e)},t.prototype.flyToPointWithParallelEye=function(e){var t=this.nmData.clientToModel(e),i=this.nmViewer.getViewer(),o=i.worldToDrawing(t);i.cameraControl.flyToPointWithParallelEye(new THREE.Vector3(o.x,o.y,o.z))},t.prototype.locateByClientPoint=function(e,t,i){var o=new THREE.Vector2(e,t),n=new THREE.Vector3,s=this.nmViewer.getMapContainer(),r=this.nmData.getImageSize(),a=this.nmData.getZoomFactor(),l=this.algorithm.normalizePointByZoomFactor(s,r,o,a);if(null!=l){var h=this.nmData.getAxisGridBox2D();this.nmData.normalizedPointToWorld(l);var c=this.algorithm.normalizePointByZoomFactor(s,r,o,a);this.algorithm.normalizedPointToScreen(c,{width:r[0]/2,height:r[1]/2});var d=this.algorithm.getIntersectionToMinDistance(this.nmData.getIntersections(),c);if(d&&d.intersectionPoint){var g=new THREE.Vector2(d.intersectionPoint.x,d.intersectionPoint.y);if(c.sub(g).lengthSq()<9){var u=g.clone(),p={width:r[0]/2,height:r[1]/2};this.algorithm.screenToNormalizedPoint(u,p),this.algorithm.normalizedPointToWorld(u,h),n.set(u.x,u.y,this.cameraProjectedPosZ)}else n.set(l.x,l.y,this.cameraProjectedPosZ)}else n.set(l.x,l.y,this.cameraProjectedPosZ);var A=n.clone(),m=this.nmData.getHeight();isNaN(m)||(A.z=m),this.nmData.updateMovement();var w=this.algorithm.getContainerOffsetToClient(s),C={x:i.clientX-w.left,y:i.clientY-w.top},f=this.nmData.getPicPosition(C);return this.eventManager.dispatchEvent({type:Bt.PICK_MOUSE_UP,data:{worldPosition:A.clone(),picPosition:f,clientPosition:C,screenPosition:{x:i.clientX,y:i.clientY}}}),this.algorithm.transformWorldPoint(this.nmViewer.getViewer(),A),this.algorithm.flyToPointWithParallelEye(this.nmViewer.getViewer(),A),!0}console.warn("Click point out of boundary.")},t}(yt),Rt=function(){function e(e){this.nmViewer=e,this.nmData=e.getData(),this.svgRect=null,this.rectForMinimapId="RectForMinimap",this.bEditMode=!1,this.bPanMode=!1,this.bMouseDown=!1,this.rectangle=[],this.currentGripId=-1,this.lastHighlightGripId=-1,this.bFirstMouseClick=!0,this.lastMousePoint=new THREE.Vector2,this.lastMousePointToRectMin=new THREE.Vector2,this.lastMousePointToRectMax=new THREE.Vector2,this.pointOnBorder=[],this.eventManager=e.getEventManager(),this.panOffset=[0,0],this.zoomFactor=1;var t=this;this.eventManager.addEventListener(Bt.ZOOM_MOUSE_WHEEL,(function(e){var i=e.data;t.zoomAndPan(i.offsetX,i.offsetY,i.zoomFactor),t.nmViewer.updateCameraNode()})),this.eventManager.addEventListener(Bt.PAN_MOUSE_MOVE,(function(e){var i=e.data;t.zoomAndPan(i.offsetX,i.offsetY,i.zoomFactor),t.nmViewer.updateCameraNode()}))}return e.prototype.getMouseClickState=function(){return this.bFirstMouseClick},e.prototype.setMouseClickState=function(e){this.bFirstMouseClick=!!e},e.prototype.getCurrentGripId=function(){return this.currentGripId},e.prototype.setCurrentGripId=function(e){this.currentGripId=e},e.prototype.getRectangleInfo=function(){var e=Math.abs(this.rectangle[2]-this.rectangle[0]),t=Math.abs(this.rectangle[3]-this.rectangle[1]);return{x:this.rectangle[0],y:this.rectangle[1],width:e,height:t}},e.prototype.setLastMousePoint=function(e,t){this.lastMousePoint.x=e,this.lastMousePoint.y=t},e.prototype.equalWithLastPoint=function(e,t){return this.lastMousePoint.x===e&&this.lastMousePoint.y===t},e.prototype.getRectangle=function(){return this.rectangle},e.prototype.addPointToRectangle=function(e,t){"number"==typeof e&&this.rectangle.push(e),"number"==typeof t&&this.rectangle.push(t)},e.prototype.pointsCount=function(){return this.rectangle.length/2},e.prototype.pointValidation=function(e,t){var i=this.nmViewer.getDomContainer().getBoundingClientRect();(e<0||t<0||e>i.width||t>i.height)&&(e=this.pointOnBorder[0],t=this.pointOnBorder[1]),e<this.rectangle[0]?(this.rectangle.push(this.rectangle[0]),this.rectangle[0]=e):this.rectangle.push(e),t<this.rectangle[1]?(this.rectangle.push(this.rectangle[1]),this.rectangle[1]=t):this.rectangle.push(t)},e.prototype.getMouseState=function(){return this.bMouseDown},e.prototype.setMouseState=function(e){this.bMouseDown=!!e},e.prototype.getEditMode=function(){return this.bEditMode},e.prototype.setEditMode=function(e){this.bEditMode=!!e},e.prototype.getPanMode=function(){return this.bPanMode},e.prototype.setPanMode=function(e){this.bPanMode=!!e},e.prototype.createSvgElement=function(e){var t=document.createElementNS("http://www.w3.org/2000/svg",e);return t.setAttribute("pointer-events","inherit"),t},e.prototype.createSvgRect=function(e){this.svgRect||(this.svgRect=this.createSvgElement("rect"),this.svgRect.setAttribute("id",this.rectForMinimapId),this.svgRect.setAttribute("stroke-width",2),this.svgRect.style.position="absolute",this.svgRect.style.fillOpacity="0.4",this.svgRect.style.fill=this.nmData.getGlodonColor(),this.svgRect.style.display="block",this.svgRect.style.stroke=this.nmData.getGlodonColor(),this.svgRect.style.strokeWidth="2");var t=Math.abs(e.x-this.rectangle[0]),i=Math.abs(e.y-this.rectangle[1]),o=this.nmViewer.getAuxContainer(),n=o.clientWidth,s=o.clientHeight,r=["translate(",e.x-n/2,",",e.y-s/2,") ","rotate(",0,") "].join("");this.svgRect.setAttribute("transform",r),this.svgRect.setAttribute("width",t+""),this.svgRect.setAttribute("height",i+""),o.appendChild(this.svgRect)},e.prototype.updateSvgRect=function(e){this.pointOnBorder=[],this.pointOnBorder.push(e.x,e.y);var t=Math.abs(e.x-this.rectangle[0]),i=Math.abs(e.y-this.rectangle[1]),o={x:this.rectangle[0],y:this.rectangle[1]};if(e.x<o.x||e.y<o.y){e.x<o.x&&(o.x=e.x),e.y<o.y&&(o.y=e.y);var n=this.nmData.getOriginSize(),s=["translate(",o.x-n[0]/2,",",o.y-n[1]/2,") ","rotate(",0,") "].join("");this.svgRect.setAttribute("transform",s)}this.svgRect.setAttribute("width",t+""),this.svgRect.setAttribute("height",i+"")},e.prototype.resetSvgRect=function(){var e=Math.abs(this.rectangle[0]-this.rectangle[2]),t=Math.abs(this.rectangle[1]-this.rectangle[3]);this.svgRect.setAttribute("width",e+""),this.svgRect.setAttribute("height",t+"");var i=this.nmViewer.getAuxContainer(),o=i.clientWidth,n=i.clientHeight,s=["translate(",this.rectangle[0]-o/2,",",this.rectangle[1]-n/2,") ","rotate(",0,") "].join("");this.svgRect.setAttribute("transform",s),this.eventManager.dispatchEvent({type:Bt.NavigationMapRectChanged,rectInfo:this.getRectangleInfo()})},e.prototype.clearRectangle=function(){this.rectangle=[]},e.prototype.adjustRectangle=function(e,t,i){if(t[0]>=i[0])switch(e){case 0:case 1:case 2:t[0]=i[0];break;case 4:case 5:case 6:i[0]=t[0]}if(t[1]>=i[1])switch(e){case 2:case 3:case 4:i[1]=t[1];break;case 6:case 7:case 0:t[1]=i[1]}return t.concat(i)},e.prototype.gripDragging=function(e,t){var i=this.rectangle,o=t.x-e.x,n=t.y-e.y,s=[i[0],i[1]],r=[i[2],i[3]];switch(this.currentGripId){case 0:s[0]+=o,s[1]+=n;break;case 1:s[0]+=o;break;case 2:s[0]+=o,r[1]+=n;break;case 3:r[1]+=n;break;case 4:r[0]+=o,r[1]+=n;break;case 5:r[0]+=o;break;case 6:s[1]+=n,r[0]+=o;break;case 7:s[1]+=n;break;default:console.log("default grip id."+this.currentGripId)}var a=this.nmData.getOriginSize();r[0]=r[0]>a[0]?a[0]:r[0],r[1]=r[1]>a[1]?a[1]:r[1],this.rectangle=this.adjustRectangle(this.currentGripId,s,r)},e.prototype.hightlightGrip=function(e){var t={x:e.offsetX,y:e.offsetY},i=this.hitGrips(t);i!=this.lastHighlightGripId&&(this.currentGripId<0&&this.lastHighlightGripId>=0&&(document.getElementById(this.rectForMinimapId+"-"+this.lastHighlightGripId).style.stroke=this.nmData.getGlodonColor()));(this.currentGripId>=0||i>=0)&&(this.currentGripId>=0&&(i=this.currentGripId),document.getElementById(this.rectForMinimapId+"-"+i).style.stroke="#f5a623",this.currentGripId<0&&(this.lastHighlightGripId=i))},e.prototype.drawGrips=function(){for(var e=this.getGrips(),t=0;t<e.length;t+=2){if(!((t/2-1)%2)){var i=this.createSegmentGrip(t/2,this.nmData.getGlodonColor());this.currentGripId==t/2&&(i=this.createSegmentGrip(t/2,"#FF9D0B")),this.nmViewer.getAuxContainer().appendChild(i)}}for(t=0;t<e.length;t+=2){if(!!((t/2-1)%2)){i=this.createGrip(t/2,this.nmData.getGlodonColor());this.currentGripId==t/2&&(i=this.createGrip(t/2,"#FF9D0B")),this.nmViewer.getAuxContainer().appendChild(i)}}},e.prototype.createSegmentGrip=function(e,t){var i=this.getGrips(),o=this.rectForMinimapId+"-"+e,n=document.getElementById(o);n&&n.parentNode.removeChild(n);var s=this.createSvgElement("line"),r=this.nmViewer.getAuxContainer().clientWidth,a=this.nmViewer.getAuxContainer().clientHeight,l=(e-1)%(i.length/2),h=(e+1)%(i.length/2),c=String(i[2*l]-r/2),d=String(i[2*l+1]-a/2),g=String(i[2*h]-r/2),u=String(i[2*h+1]-a/2);return s.setAttribute("id",o),s.setAttribute("x1",c),s.setAttribute("y1",d),s.setAttribute("x2",g),s.setAttribute("y2",u),s.setAttribute("style","fill: none; stroke: "+(t||"#4784cb")+"; stroke-width: 2; fill: #ffffff; display: block; position: absolute"),s},e.prototype.createGrip=function(e,t){var i=this.getGrips(),o=this.rectForMinimapId+"-"+e,n=document.getElementById(o);n&&n.parentNode.removeChild(n);var s=this.createSvgElement("circle"),r=this.nmViewer.getAuxContainer().clientWidth,a=this.nmViewer.getAuxContainer().clientHeight,l=["translate(",i[2*e]-r/2,",",i[2*e+1]-a/2,") ","rotate(",0,") "].join("");return s.setAttribute("id",o),s.setAttribute("transform",l),s.setAttribute("r","3"),s.setAttribute("style","fill: none; stroke: "+(t||"#4784cb")+"; stroke-width: 1; fill: #ffffff; display: block; position: absolute"),s},e.prototype.removeGrips=function(){for(var e=0;e<8;e++){var t=document.getElementById(this.rectForMinimapId+"-"+e);t&&t.parentNode.removeChild(t)}},e.prototype.removeSvgRect=function(){var e=document.getElementById(this.rectForMinimapId);e&&e.parentNode.removeChild(e)},e.prototype.destroyAll=function(){this.removeGrips(),this.removeSvgRect(),this.clearRectangle(),this.eventManager.dispatchEvent({type:Bt.NavigationMapRectDestroyed})},e.prototype.getGrips=function(){var e={x:this.rectangle[0],y:this.rectangle[1]},t={x:this.rectangle[2],y:this.rectangle[3]},i={x:(e.x+t.x)/2,y:(e.y+t.y)/2},o=[];return o.push(e.x,e.y),o.push(e.x,i.y),o.push(e.x,t.y),o.push(i.x,t.y),o.push(t.x,t.y),o.push(t.x,i.y),o.push(t.x,e.y),o.push(i.x,e.y),o},e.prototype.hitGrips=function(e){for(var t=this.getGrips(),i=0;i<t.length;i+=2){var o=!1;if(!((i/2-1)%2)){var n=(i/2-1)%(t.length/2),s=(i/2+1)%(t.length/2),r=t[2*n],a=t[2*n+1],l=t[2*s],h=t[2*s+1];o=this.isPointInSegment(e.x,e.y,r,a,l,h,3)}else{var c=[t[i],t[i+1]];o=this.isPointInCircle(e,c,6)}if(o)return i/2}return-1},e.prototype.isPointInCircle=function(e,t,i){var o=e.x-t[0],n=e.y-t[1];return Math.sqrt(o*o+n*n)<=i},e.prototype.isPointInSegment=function(e,t,i,o,n,s,r){r=r||0;var a=(n-i)*(e-i)+(s-o)*(t-o);if(a<=0)return Math.sqrt((e-i)*(e-i)+(t-o)*(t-o))<=r;var l=(n-i)*(n-i)+(s-o)*(s-o);if(a>=l)return Math.sqrt((e-n)*(e-n)+(t-s)*(t-s))<=r;var h=a/l,c=i+(n-i)*h,d=o+(s-o)*h;return Math.sqrt((e-c)*(e-c)+(d-t)*(d-t))<=r},e.prototype.isPointInRectangle=function(e,t){if(this.pointsCount()<2)return!1;var i=this.rectangle,o=i[0]<i[2]?[i[0],i[2]]:[i[2],i[0]],n=o[0],s=o[1],r=(i[1],i[3],[i[1],i[3]]);return n<e&&e<s&&r[0]<t&&t<r[1]},e.prototype.panRectangle=function(e,t){var i=this.rectangle,o=this.nmViewer.getDomContainer().getBoundingClientRect();this.lastMousePointToRectMin.x+e<0?e=-this.lastMousePointToRectMin.x:this.lastMousePointToRectMax.x+e>o.width&&(e=o.width-this.lastMousePointToRectMax.x),this.lastMousePointToRectMin.y+t<0?t=-this.lastMousePointToRectMin.y:this.lastMousePointToRectMax.y+t>o.height&&(t=o.height-this.lastMousePointToRectMax.y),i[0]=this.lastMousePointToRectMin.x+e,i[1]=this.lastMousePointToRectMin.y+t,i[2]=this.lastMousePointToRectMax.x+e,i[3]=this.lastMousePointToRectMax.y+t,this.resetSvgRect(),this.drawGrips()},e.prototype.updateLastMousePointToRect=function(){this.lastMousePointToRectMin.x=this.rectangle[0]-this.lastMousePoint.x,this.lastMousePointToRectMin.y=this.rectangle[1]-this.lastMousePoint.y,this.lastMousePointToRectMax.x=this.rectangle[2]-this.lastMousePoint.x,this.lastMousePointToRectMax.y=this.rectangle[3]-this.lastMousePoint.y},e.prototype.zoomAndPan=function(e,t,i){if(this.pointsCount()<2)return this.panOffset=[e,t],void(this.zoomFactor=i);for(var o=this.nmViewer.getDomContainer().getBoundingClientRect(),n=o.width,s=o.height,r=new THREE.Vector2(.5*n,.5*s),a=0;a<=this.rectangle.length/2;a+=2){var l=new THREE.Vector2(this.rectangle[a]-this.panOffset[0],this.rectangle[a+1]-this.panOffset[1]).clone().sub(r);l.divideScalar(this.zoomFactor),this.rectangle[a]=l.x+r.x,this.rectangle[a+1]=l.y+r.y;var h=new THREE.Vector2(this.rectangle[a],this.rectangle[a+1]).clone().sub(r);h.multiplyScalar(i),this.rectangle[a]=r.x+h.x+e,this.rectangle[a+1]=r.y+h.y+t}this.panOffset=[e,t],this.zoomFactor=i,this.resetSvgRect(),this.drawGrips()},e}(),Vt=function(e){function t(t,i){var o=e.call(this)||this;return o.name=ut.RECTPICK_Editor,o.eventManager=i,o.nmData=t.getData(),o.naviAction=new Rt(t),o.nmViewer=t,o.algorithm=new Ct,o}return $e(t,e),t.prototype.onMouseDown=function(e){this.naviAction.setMouseState(!0);var t=this.adjustEvent(e);if(this.naviAction.setLastMousePoint(t.clientX,t.clientY),0==this.naviAction.pointsCount()){var i={x:t.offsetX,y:t.offsetY};this.naviAction.addPointToRectangle(i.x,i.y),this.naviAction.createSvgRect(i)}if(2==this.naviAction.pointsCount()){var o={x:e.offsetX,y:e.offsetY},n=this.naviAction.hitGrips(o),s=this.naviAction.isPointInRectangle(o.x,o.y);n>=0?this.naviAction.setEditMode(!0):s&&(this.naviAction.updateLastMousePointToRect(),this.naviAction.setPanMode(!0))}this.eventManager.dispatchEvent({type:Bt.RECTPICK_MOUSE_DOWN})},t.prototype.onMouseMove=function(e){if(2==this.naviAction.pointsCount()&&this.naviAction.hightlightGrip(e),this.naviAction.getMouseState()){var t=this.nmViewer.getDomContainer().getBoundingClientRect(),i=e.clientX-t.left,o=e.clientY-t.top;if(this.naviAction.pointsCount()<2&&this.naviAction.updateSvgRect({x:i,y:o}),this.naviAction.getEditMode()){var n={x:i,y:o},s=this.naviAction.hitGrips(n);if(this.naviAction.getMouseClickState())return this.firstPos=n,this.naviAction.setMouseClickState(!1),void(s>=0&&this.naviAction.setCurrentGripId(s));var r=n;this.naviAction.getCurrentGripId()>=0&&(this.naviAction.gripDragging(this.firstPos,r),this.naviAction.resetSvgRect(),this.naviAction.removeGrips(),this.naviAction.drawGrips()),this.firstPos=r}this.naviAction.getPanMode()&&this.naviAction.panRectangle(e.clientX,e.clientY)}},t.prototype.onMouseUp=function(e){if(this.naviAction.setMouseState(!1),this.naviAction.setMouseClickState(!0),this.naviAction.setCurrentGripId(-1),this.naviAction.setPanMode(!1),this.naviAction.equalWithLastPoint(e.clientX,e.clientY))1==this.naviAction.pointsCount()&&this.naviAction.clearRectangle();else{if(1==this.naviAction.pointsCount()){var t=this.adjustEvent(e),i=this.nmViewer.getDomContainer().getBoundingClientRect(),o=t.clientX-i.left,n=t.clientY-i.top;this.naviAction.pointValidation(o,n),this.naviAction.resetSvgRect(),this.naviAction.drawGrips()}this.naviAction.setEditMode(!1)}},t.prototype.clear=function(){this.naviAction.destroyAll()},t.prototype.getBoundingBoxIsolate=function(){var e=this.naviAction.getRectangle(),t={x:e[0]+vt.offsetXForZoomAndPan,y:e[1]+vt.offsetYForZoomAndPan},i={x:e[2]+vt.offsetXForZoomAndPan,y:e[3]+vt.offsetYForZoomAndPan},o=this.algorithm.getCuttingBoxOnCanvas(t,i,this.nmData.getSize(),this.nmData),n=this.nmData.getFloorPlaneBox();if(isNaN(n.min.z)){var s=this.nmViewer.getViewer().camera.position,r=this.nmViewer.getViewer().getScene().getInverseMatrixGlobal(),a=s.clone();a.applyMatrix4(r),n.min.z=a.z,n.max.z=this.nmData.maxHeight}return o.min.z=n.min.z,o.max.z=n.max.z,o},t.prototype.getIntersectionByNormalizedPoint=function(e,t){var i=this.nmViewer.getData().getIntersections(),o=new THREE.Vector2(e.x,e.y);return this.algorithm.normalizedPointToScreen(o,{width:t[0]/2,height:t[1]/2}),Ct.getIntersectionByPoint(i,o)},t.prototype.adjustEvent=function(e){var t={offsetX:e.offsetX,offsetY:e.offsetY,clientX:e.clientX,clientY:e.clientY},i=new THREE.Vector2(t.clientX,t.clientY);i.x+=vt.offsetXForZoomAndPan,i.y+=vt.offsetYForZoomAndPan;var o=this.nmViewer.getMapContainer(),n=this.nmViewer.getData().getSize(),s=this.nmData.getZoomFactor(),r=this.algorithm.normalizePointByZoomFactor(o,n,i,s),a=this.getIntersectionByNormalizedPoint(r,n);if(a){var l=this.nmViewer.getDomContainer().getBoundingClientRect();t.clientX=a.intersectionPoint.x-vt.offsetXForZoomAndPan,t.offsetX=t.clientX+n[0]/2,t.clientX=t.offsetX+l.left,t.clientY=a.intersectionPoint.y-vt.offsetYForZoomAndPan,t.offsetY=t.clientY+n[1]/2,t.clientY=t.offsetY+l.top}return t},t}(yt),Qt=function(){function e(e,t,i){this.eventManager=new Mt,this.mapContainer=e,this.navigationMapData=t,this.nmViewer=i,this.touches=[],this.nmViewer.setEventManager(this.eventManager),this.offset=e.getBoundingClientRect(),this.activeEditors=[],this.bIsEnablePickHover=!1,this.initialize()}return e.prototype.initialize=function(){this.onContextmenuBinded=this.onContextmenu.bind(this),this.onTouchStartBinded=this.onTouchStart.bind(this),this.onTouchEndBinded=this.onTouchEnd.bind(this),this.onTouchMoveBinded=this.onTouchMove.bind(this),this.onMouseWheelBinded=this.onMouseWheel.bind(this),this.onMouseUpBinded=this.onMouseUp.bind(this),this.onMouseDownBinded=this.onMouseDown.bind(this),this.onMouseMoveBinded=this.onMouseMove.bind(this),this.addDomEventListeners(),this.enableEditor(ut.PICK_Editor),this.enableEditor(ut.Zoom_Editor),this.enableEditor(ut.PAN_Editor),this.enableEditor(ut.RECTPICK_Editor),this.enablePickHover(!0)},e.prototype.addDomEventListeners=function(){var e=this.mapContainer;e.addEventListener("contextmenu",this.onContextmenuBinded,!1),e.addEventListener("touchmove",this.onTouchMoveBinded,!1),e.addEventListener("touchstart",this.onTouchStartBinded,!1),e.addEventListener("touchend",this.onTouchEndBinded,!1),e.addEventListener("mousewheel",this.onMouseWheelBinded,!1),e.addEventListener("mousedown",this.onMouseDownBinded,!1),e.addEventListener("mousemove",this.onMouseMoveBinded,!1),document.addEventListener("mouseup",this.onMouseUpBinded,!1)},e.prototype.removeDomEventListeners=function(){var e=this.mapContainer;e.removeEventListener("contextmenu",this.onContextmenuBinded,!1),e.removeEventListener("touchmove",this.onTouchMoveBinded,!1),e.removeEventListener("touchstart",this.onTouchStartBinded,!1),e.removeEventListener("touchend",this.onTouchEndBinded,!1),e.removeEventListener("mousewheel",this.onMouseWheelBinded,!1),e.removeEventListener("mousedown",this.onMouseDownBinded,!1),e.removeEventListener("mousemove",this.onMouseMoveBinded,!1),document.removeEventListener("mouseup",this.onMouseUpBinded,!1)},e.prototype.destroy=function(){this.removeDomEventListeners()},e.prototype.enablePickHover=function(e){this.bIsEnablePickHover=e},e.prototype.onTouchStart=function(e){this.touches=this.originTouches=e.touches;var t=this.activeEditors;if(!(this.touches.length>1))for(var i=0;i<t.length;i++){t[i].onMouseDown(this.formatPoint(e.touches[0]))}},e.prototype.onTouchMove=function(e){var t,i,o,n=e.touches;this.activeEditors;1==n.length?this.touches=n:2==n.length&&(t=Math.sqrt(Math.pow(this.touches[0].pageX-this.touches[1].pageX,2)+Math.pow(this.touches[0].pageY-this.touches[1].pageY,2)),i=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2)),o=[(this.originTouches[0].pageX+this.originTouches[1].pageX)/2-this.offset.left,(this.originTouches[0].pageY+this.originTouches[1].pageY)/2-this.offset.top],Math.abs(t-i)>8&&(this.onScale(t,i,o),this.touches=n))},e.prototype.onTouchEnd=function(e){for(var t=e.changedTouches[0],i=[],o=0;o<this.touches.length;o++){var n=this.touches[o];n.clientX==t.clientX&&n.clientY==t.clientY||i.push(n)}this.touches=i;var s=this.activeEditors;if(1==this.touches.length);else if(0==this.touches.length)for(o=0;o<s.length;o++){s[o].onMouseUp(this.formatPoint(t))}},e.prototype.onScale=function(e,t,i){var o=this.find(ut.Zoom_Editor);o&&o.scale(e,t,i)},e.prototype.onMouseWheel=function(e){var t=this.find(ut.Zoom_Editor);t&&t.onMouseWheel(e)},e.prototype.onContextmenu=function(e){e.preventDefault()},e.prototype.clearRectPick=function(){var e=this.find(ut.RECTPICK_Editor);e instanceof Vt&&e.clear()},e.prototype.getBoundingBoxIsolate=function(){var e=this.find(ut.RECTPICK_Editor);if(e instanceof Vt)return e.getBoundingBoxIsolate()},e.prototype.onMouseUp=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++){var o=t[i];o.getName()==ut.PICK_Editor&&e.button!=It.Left||(o.getName()==ut.RECTPICK_Editor&&e.button!=It.Left||o.getName()==ut.PAN_Editor&&e.button==It.Left||o.onMouseUp(e))}},e.prototype.onMouseDown=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++){var o=t[i];o.getName()==ut.PICK_Editor&&e.button!=It.Left||(o.getName()==ut.RECTPICK_Editor&&e.button!=It.Left||o.getName()==ut.PAN_Editor&&e.button==It.Left||o.onMouseDown(e))}},e.prototype.onMouseMove=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++){var o=t[i];o.getName()==ut.PICK_Editor&&0==this.bIsEnablePickHover||o.onMouseMove(e)}},e.prototype.formatPoint=function(e){var t,i={};for(t in e)i[t]=e[t];return i},e.prototype.addEventListener=function(e,t){this.eventManager.addEventListener(e,t)},e.prototype.clearZoomAndPan=function(){xt.clear(),vt.clear(),this.navigationMapData.setZoomFactor(1);var e=this.find(ut.Zoom_Editor);e instanceof vt&&e.setZoonIndex(0)},e.prototype.find=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++)if(t[i].getName()===e)return t[i]},e.prototype.enableEditor=function(e){if(!this.find(e)){var t=this.activeEditors;switch(e){case ut.PICK_Editor:t.push(new Dt(this.nmViewer,this.eventManager));break;case ut.RECTPICK_Editor:t.push(new Vt(this.nmViewer,this.eventManager));break;case ut.PAN_Editor:t.push(new xt(this.nmViewer,this.eventManager));break;case ut.Zoom_Editor:t.push(new vt(this.nmViewer,this.eventManager))}}},e.prototype.getEventManager=function(){return this.eventManager},e.prototype.disableEditor=function(e){for(var t=this.activeEditors,i=0;i<t.length;i++)t[i].getName()===e&&t.splice(i,1)},e.prototype.setZoomMode=function(e){var t=this.find(ut.Zoom_Editor);t instanceof vt&&t.enableMode(e)},e.prototype.setZoomFactors=function(e){var t=this.find(ut.Zoom_Editor);t instanceof vt&&t.setZoomFactors(e)},e}(),kt=function(){function e(e,t,i){this.nmData=new bt,this.nmData.setSize(t.offsetWidth,t.offsetHeight),this.nmView=new Ut(e,t,this.nmData),this.setAnchor(i);var o=this.getMapContainer();this.nmEditor=new Qt(o,this.nmData,this.nmView)}return e.prototype.setAnchor=function(e){this.nmData.setAnchor(e)},e.prototype.saveImageSize=function(e){this.nmData.saveImageSize(e)},e.prototype.setPlanes=function(e){this.nmData.setPlanes(e)},e.prototype.updateUrl=function(e,t){this.nmData.setUrl(e,t);var i=this.nmData.getProperZoomFactors();this.nmEditor.setZoomFactors(i),xt.clear()},e.prototype.getEventManager=function(){return this.nmEditor.getEventManager()},e.prototype.setSize=function(e,t){this.nmData.setSize(e,t)},e.prototype.resize=function(e,t){this.nmEditor.clearZoomAndPan(),this.nmData.setSize(e,t),this.nmView.setSize(e,t),this.nmEditor.setZoomMode(St.Min)},e.prototype.destroy=function(){this.nmEditor.clearZoomAndPan(),this.nmView.destroy(),this.nmData.destroy(),this.clearRectPick()},e.prototype.destroyEditor=function(){this.nmEditor.destroy()},e.prototype.rebuildData=function(){this.nmData.build()},e.prototype.renderCameraNode=function(){this.nmView.updateCameraNode()},e.prototype.addEventListener=function(e,t){this.nmEditor.addEventListener(e,t)},e.prototype.getBoundingBox=function(){return this.nmEditor.getBoundingBoxIsolate()},e.prototype.clearRectPick=function(){this.nmEditor.clearRectPick()},e.prototype.clearZoomAndPan=function(){this.nmEditor.clearZoomAndPan(),this.nmView.destroy(),this.nmData.destroy(),this.nmData.build(),this.nmView.update()},e.prototype.getAxisGridBox2D=function(){return this.nmData.getAxisGridBox2D()},e.prototype.getMapContainer=function(){return this.nmView.getDomContainer()},e.prototype.render=function(){this.nmView.update()},e.prototype.getPanOffset=function(){return{x:xt.panOffsetX,y:xt.panOffsetY}},e.prototype.registerCameraHeightChanged=function(e){this.nmView.registerCameraHeightChanged(e)},e}();!function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.NavigationMap");i.NavigationMap=class{constructor(t){if(!t.viewer||!t.mapViewer)return console.log("viewer is not defined."),!1;t.domElement=t.mapViewer.domElement,this._opt=t,this.id=t.id,this.eventManager=t.mapViewer.eventManager,this.EventType={PICK_MOUSE_UP:2002,Camera_Height_Changed:5e3,ZOOM_MOUSE_WHEEL:6e3,NavigationMap_Rect_Changed:8e3,NavigationMap_Rect_Destroyed:80001};var i=t.viewer.getViewer();switch(this.viewer=i,this.renderCB=()=>{this._initialized&&this.navigationMap.renderCameraNode()},i.addCallbacks("render",this.renderCB),this.maxHeight=i.getBoundingBoxWorld().max.z,this.onClickCallback=t.onClickCallback,this.initConfig=null,this.cloudMapManager=new e.Bimface.Plugins.Map.MapManager({viewer:t.viewer}),t.type){case"Relevance":default:this.associateModel(t);break;case"SetProfile":t.isProfile=!0,this.initConfig=t,this.setProfileHeight(t);break;case"AutoProfile":t.isProfile=!0,this.setProfileAutoHeight(t)}}getEventManager(){return this.eventManager}addEventListener(e,t){this.getEventManager().addEvent(e,t)}removeEventListener(e,t){this.getEventManager().removeEvent(e,t)}init(){t.send("Bimface.Plugins.NavigationMap.NavigationMap","init");const i=this.getEventManager(),o=e.Bimface.Plugins.NavigationMap.MapViewerEvent;let n=this.EventType;this.navigationMap.addEventListener(n.PICK_MOUSE_UP,(e=>{const t=e.data;this.onClickCallback&&this.onClickCallback(e.data),i.fireEvent(o.MouseClicked,t)})),this._initialized=!0,this._opt.successCallback&&this._opt.successCallback(),this.navigationMap.setSize(this.mapContainer.offsetWidth,this.mapContainer.offsetHeight),this.initConfig&&(this.setProfileHeight(this.initConfig),this.initConfig=null),this.navigationMap.addEventListener(this.EventType.NavigationMap_Rect_Changed,(e=>{this.getEventManager().fireEvent("NavigationMapRectChanged",e.rectInfo)})),this.navigationMap.addEventListener(this.EventType.NavigationMap_Rect_Destroyed,(e=>{this.getEventManager().fireEvent("NavigationMapRectDestroyed",e)})),this.addEventListener("NavigationMapRectChanged",(e=>{this._updateToolBarByMinmapRect(e)})),this.addEventListener("NavigationMapRectDestroyed",(e=>{this.toolbar&&this.toolbar.hide()}))}associateModel(e){let{mapAnchors:t,modelAnchors:i,url:o,domElement:n}=e;n&&(this.mapContainer=n);const s=Math.min(i.point1.z,i.point2.z);this.getImageSize(o,(n=>{const r=[new THREE.Vector2(i.point1.x,i.point1.y),new THREE.Vector2(i.point2.x,i.point2.y)],a=[new THREE.Vector2(t.point1.x,t.point1.y),new THREE.Vector2(t.point2.x,t.point2.y)],l=this.maxHeight,h={modelAnchor:r,mapAnchor:a,zHeight:s,maxHeight:l};this._initialized?(this.navigationMap.clearZoomAndPan(),this.navigationMap.setAnchor(h)):(this.navigationMap=new kt(this.viewer,this.mapContainer,h),this.navigationMap.registerCameraHeightChanged(f.EVENTS.ON_CAMERA_HEIGHT_CHANGED),this.init()),this.navigationMap.saveImageSize(n),this.update(o,e.isProfile)}))}setProfileHeight(e,t,i){let o={maxPixel:800};o.height=void 0===e.height?0:e.height;o.successCallback=i=>{const n=this.viewer.getBoundingBoxWorld();let s=n.min,r=n.max;s.z=r.z=o.height;const a={point1:s,point2:r};let l=new THREE.Vector3;n.getSize(l);const h=l.x/l.y;let c=o.maxPixel,d=o.maxPixel;h>1?d/=h:c/=h;const g={modelAnchors:a,mapAnchors:{point1:new THREE.Vector2(0,d),point2:new THREE.Vector2(c,0)},url:i,domElement:e.domElement,isProfile:e.isProfile};this.associateModel(g),t&&t()},this.cloudMapManager.removeCreateMapEvent(),this.cloudMapManager.createMapByHeight(o)}setProfileAutoHeight(e,t,i){let o={maxPixel:800};o.successCallback=i=>{const n=this.viewer.getBoundingBoxWorld();let s=n.min,r=n.max;s.z=r.z=o.height;const a={point1:s,point2:r};let l=new THREE.Vector3;n.getSize(l);const h=l.x/l.y;let c=o.maxPixel,d=o.maxPixel;h>1?d/=h:c/=h;const g={modelAnchors:a,mapAnchors:{point1:new THREE.Vector2(0,d),point2:new THREE.Vector2(c,0)},url:i,domElement:e.domElement,isProfile:e.isProfile};this.associateModel(g),t&&t()},this.cloudMapManager.createMapByCamera(o),this.viewer.modelManager.dispatchEvent({type:f.EVENTS.ON_CAMERA_CHANGED_AND_RENDERED})}getImageSize(e,t){let i=document.createElement("img");i.onload=()=>{t({width:i.width,height:i.height})},i.onerror=()=>{this._opt.failureCallback&&this._opt.failureCallback()},i.src=e}update(e,t){this.navigationMap.updateUrl(e,t),this.navigationMap.destroy(),this.navigationMap.rebuildData(),this.navigationMap.render()}destroy(){this._opt.viewer.getViewer().removeCallbacks("render",this.renderCB),this.cloudMapManager.destroy(),this.navigationMap.destroy(),this.navigationMap.destroyEditor(),this.mapContainer.innerHTML=""}resize(e,t){var i=this._opt.domElement;i.style.width=e+"px",i.style.height=t+"px",this.navigationMap.resize(e,t),this.getEventManager().fireEvent("Resize",{width:e,height:t})}_clearState(){let e=this._opt.viewer,t=e._sectionBox;t&&t.exit(),e.restoreDefault()}_clearSectionBox(){let e=this._opt.viewer._sectionBox;e&&e.reset()}_updateSectionBox(t){let i=this._opt.viewer,o=i._sectionBox;if(!o){let t=new e.Bimface.Plugins.Section.SectionBoxConfig;t.viewer=i,t.id="SectionBox",o=new e.Bimface.Plugins.Section.SectionBox(t)}o.setBox(t),i.zoomToBoundingBox(t),i.render()}_updateToolBarByMinmapRect(t){const i=this._opt.domElement;let o=this._opt.viewer;if(this.toolbar)this.toolbar.show();else{let t=new e.Bimface.UI.Button.ButtonConfig;t.id="mapIsolate",t.title=BimfaceLanguage.bf_panel_map_isolation,t.className="bf-map-button bf-map-isolate";let n=new e.Bimface.UI.Button.Button(t);n.setHtml(BimfaceLanguage.bf_panel_map_isolation),n.setStyle({cursor:"default"}),n.addEventListener("Click",(()=>{this._clearState();const t=this.navigationMap.getBoundingBox();o.isolateByBox(t,e.Bimface.Viewer.IsolateOption.HideOthers),o.zoomToBoundingBox(t),this.navigationMap.clearRectPick(),this.toolbar.hide(),o.render()}));let s=new e.Bimface.UI.Button.ButtonConfig;s.id="mapSection",s.title=BimfaceLanguage.bf_panel_map_section,s.className="bf-map-button bf-map-section";let r=new e.Bimface.UI.Button.Button(s);r.setHtml(BimfaceLanguage.bf_panel_map_section),r.setStyle({cursor:"default"}),r.addEventListener("Click",(()=>{this._clearState();const e=this.navigationMap.getBoundingBox();this._clearSectionBox(),this._updateSectionBox(e),this.navigationMap.clearRectPick(),this.toolbar.hide(),o.render()}));let a=new e.Bimface.UI.Button.ButtonConfig;a.id="mapCancel",a.title=BimfaceLanguage.bf_general_cancel,a.className="bf-map-button bf-map-cancel";let l=new e.Bimface.UI.Button.Button(a);l.setHtml(BimfaceLanguage.bf_general_cancel),l.setStyle({cursor:"default"}),l.addEventListener("Click",(e=>{this.navigationMap.clearRectPick(),this.toolbar.hide()})),l.addEventListener("mousedown",(e=>{e.preventDefault(),e.stopPropagation()}));let h=new e.Bimface.UI.Toolbar.ToolbarConfig;h.className="bf-map-toolbar",this.toolbar=new e.Bimface.UI.Toolbar.Toolbar(h),this.toolbar.addControls([n,r,l]),this.toolbar.element.style.zIndex=11,i.appendChild(this.toolbar.element)}i.offsetWidth;const n=i.offsetHeight,s=this.toolbar.element.offsetWidth,r=this.toolbar.element.offsetHeight;t.x+t.width<s?this.toolbar.element.style.left=t.x+"px":this.toolbar.element.style.left=t.x+t.width-s+"px",n<t.y+t.height+r?this.toolbar.element.style.top=t.y+t.height-r-6+"px":this.toolbar.element.style.top=t.y+t.height+6+"px",(this.toolbar.element.offsetLeft+this.toolbar.element.offsetWidth>this._opt.domElement.offsetWidth||this.toolbar.element.offsetTop+this.toolbar.element.offsetHeight>this._opt.domElement.offsetHeight||this.toolbar.element.offsetLeft<0||this.toolbar.element.offsetTop<0)&&this.toolbar.hide()}}}(),function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.NavigationMap");i.MapViewer=class{constructor(i){t.send("Bimface.Plugins.NavigationMap.MapViewer","bf_c_newMapViewer"),this.domElement=i.domElement,this.eventManager=new e.Web.Lang.EventManager}destroy(){}addEventListener(e,t){this.eventManager.addEvent(e,t)}removeEventListener(e,t){this.eventManager.getEventManager().removeEvent(e,t)}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.NavigationMap").MapViewerConfig=class{constructor(){this.map=null,this.domElement=[]}}; |
|
/*! ***************************************************************************** |
|
Copyright (c) Microsoft Corporation. |
|
|
|
Permission to use, copy, modify, and/or distribute this software for any |
|
purpose with or without fee is hereby granted. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH |
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, |
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR |
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
|
PERFORMANCE OF THIS SOFTWARE. |
|
***************************************************************************** */ |
|
var Ft=function(e,t){return(Ft=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function Tt(e,t){function i(){this.constructor=e}Ft(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var Pt,Lt,Kt=function(){function e(){this.faceDefaultColor=14936556,this.wireframeDefaultColor=13421772,this.faceHighlightColor=12255212,this.wireframeHighlightColor=3330982}return e.prototype.createMesh=function(e){for(var t=new THREE.BufferGeometry,i=e.length-2,o=new Uint32Array(3*i),n=0,s=1;s<=i;s++)o[n++]=0,o[n++]=s,o[n++]=s+1;var r=new THREE.MeshBasicMaterial({color:this.faceDefaultColor,side:THREE.DoubleSide}),a=new Float32Array(3*e.length);t.setAttribute("position",new THREE.BufferAttribute(a,3).copyVector3sArray(e)),t.setIndex(new THREE.BufferAttribute(o,1));var l=new THREE.Mesh(t,r);return l.componentId=this.componentId,l},e.prototype.createWireframe=function(e){for(var t=new THREE.LineGeometry,i=[],o=0;o<e.length;o++){var n=e[o];i.push(n.x,n.y,n.z)}t.setPositions(i);var s=new THREE.LineMaterial({color:this.wireframeDefaultColor,linewidth:1});s.resolution.set(160,160);var r=new THREE.Line2(t,s);return r.componentId=this.componentId,r},e.prototype.getMesh=function(){return this.mesh},e.prototype.getWireframe=function(){return this.wireframeMesh},e.prototype.transparent=function(e){e.material&&(e.material.transparent=!0,e.material.opacity=0)},e.prototype.opaque=function(e){e.material&&(e.material.transparent=!1,e.material.opacity=1)},e.prototype.getId=function(){return this.componentId},e}(),Gt=function(e){function t(t,i,o){var n=e.call(this)||this;return n.highlightWidth=3,n.width=15,n.vertices=t,n.indices=i,n.componentId=o,n.highlightWireframeMesh=null,n.testWireframe=null,n.build(),n}return Tt(t,e),t.prototype.build=function(){var e=this.indices[0],t=this.indices[1],i=this.vertices[e],o=this.vertices[t],n=i.clone().add(o).multiplyScalar(.5).clone().multiplyScalar(-1),s=n.clone().normalize(),r=[],a=o.clone().sub(i).normalize(),l=i.clone().add(a.clone().multiplyScalar(20)),h=i.clone().add(a.clone().multiplyScalar(80)),c=[];if(0!==n.x){var d=n.x>0?this.width:-this.width;c.push((new THREE.Vector3).setX(d).add(s))}if(0!==n.y){var g=n.y>0?this.width:-this.width;c.push((new THREE.Vector3).setY(g).add(s))}if(0!==n.z){var u=n.z>0?this.width:-this.width;c.push((new THREE.Vector3).setZ(u).add(s))}2===c.length&&(r.push(l.clone().add(s)),r.push(l.clone().add(c[0])),r.push(h.clone().add(c[0])),r.push(h.clone().add(s)),r.push(h.clone().add(c[1])),r.push(l.clone().add(c[1]))),this.mesh=this.createMesh(r),this.transparent(this.mesh),this.wireframeMesh=this.createWireframe([l,h]),this.highlightWireframeMesh=this.createHighlightWireframe([l.sub(s),h.sub(s)])},t.prototype.createHighlightWireframe=function(e){for(var t=[],i=0;i<e.length;i++){var o=e[i];t.push(o.x,o.y,o.z)}var n=new THREE.LineGeometry;n.setPositions(t);var s=new THREE.LineMaterial({color:this.wireframeHighlightColor,linewidth:this.highlightWidth,dashed:!1});s.resolution.set(160,160);var r=new THREE.Line2(n,s);return r.computeLineDistances(),r.scale.set(1,1,1),r.visible=!1,r.renderOrder=100,r},t.prototype.getTestWireframe=function(){return this.testWireframe},t.prototype.getHighlightWireframeMesh=function(){return this.highlightWireframeMesh},t.prototype.highlight=function(){this.highlightWireframeMesh.visible=!0,this.highlightWireframeMesh.renderOrder=100},t.prototype.cancelHighlight=function(){this.highlightWireframeMesh.visible=!1},t}(Kt),qt=function(e){function t(t,i){var o=e.call(this)||this;return o.length=20,o.vertex=t,o.cornerFace=null,o.cornerWireframe=null,o.componentId=i,o.cornerVertices=null,o.build(),o}return Tt(t,e),t.prototype.build=function(){var e=[],t=this.vertex.clone(),i=t.clone().multiplyScalar(-1);e.push(t);var o=this.vertex.clone(),n=i.x>0?this.length:-this.length;o.x+=n,e.push(o);var s=this.vertex.clone(),r=i.y>0?this.length:-this.length;s.y+=r,e.push(s);var a=this.vertex.clone(),l=i.z>0?this.length:-this.length;a.z+=l,e.push(a),this.cornerVertices=e,this.mesh=this.createMesh([o,s,a]),this.wireframeMesh=this.createWireframe([o,s,a,o]),this.buildCornerFace(),this.buildCornerWireframe()},t.prototype.highlight=function(){this.wireframeMesh.material.color.setHex(this.wireframeHighlightColor),this.wireframeMesh.renderOrder=100,this.mesh.material.color.setHex(this.faceHighlightColor),this.cornerFace.material.color.setHex(this.faceHighlightColor),this.cornerFace.material.transparent=!0,this.cornerFace.material.opacity=.5,this.cornerWireframe.material.color.setHex(this.wireframeHighlightColor),this.cornerWireframe.visible=!0},t.prototype.cancelHighlight=function(){this.wireframeMesh.material.color.setHex(this.wireframeDefaultColor),this.wireframeMesh.renderOrder=0,this.mesh.material.color.setHex(this.faceDefaultColor),this.transparent(this.cornerFace),this.cornerWireframe.visible=!1},t.prototype.buildCornerFace=function(){if(!this.cornerFace){var e=this.cornerVertices;e.push(e[1]),this.cornerFace=this.createMesh(e),this.transparent(this.cornerFace)}},t.prototype.getCornerFace=function(){return this.cornerFace},t.prototype.getCornerWireframe=function(){return this.cornerWireframe},t.prototype.buildCornerWireframe=function(){if(!this.cornerWireframe){for(var e=[],t=1;t<this.cornerVertices.length;t++){var i=this.cornerVertices[0],o=this.cornerVertices[t];e.push(i,o)}this.cornerWireframe=this.createWireframe(e),this.cornerWireframe.visible=!1}},t}(Kt),Ht=function(e){function t(t,i,o,n){var s=e.call(this)||this;return s.length=60,s.vertices=t,s.indices=i,s.componentId=o,s.vertexUvs=null,s.texture=n,s.highlightMesh=null,s.wireframeMesh=null,s.vertexUvs=[],s.vertexUvs.push(new THREE.Vector2(0,.2)),s.vertexUvs.push(new THREE.Vector2(0,.8)),s.vertexUvs.push(new THREE.Vector2(.2,1)),s.vertexUvs.push(new THREE.Vector2(.8,1)),s.vertexUvs.push(new THREE.Vector2(1,.8)),s.vertexUvs.push(new THREE.Vector2(1,.2)),s.vertexUvs.push(new THREE.Vector2(.8,0)),s.vertexUvs.push(new THREE.Vector2(.2,0)),s.build(),s}return Tt(t,e),t.prototype.build=function(){for(var e=[],t=null,i=null,o=0,n=this.indices.length;o<n;o++){var s=this.indices[o],r=this.indices[o+1];t=this.vertices[s],i=this.vertices[r],o===n-1&&(i=this.vertices[this.indices[0]]);var a=i.clone().sub(t).normalize(),l=t.clone().add(i).multiplyScalar(.5);e.push(l.clone().sub(a.clone().multiplyScalar(this.length/2))),e.push(l.clone().add(a.clone().multiplyScalar(this.length/2)))}this.createTexturedMesh(e);for(var h=new THREE.Box3,c=0;c<this.indices.length;c++){var d=this.indices[c];h.expandByPoint(this.vertices[d])}for(var g=h.getCenter(new THREE.Vector3).normalize(),u=[],p=0;p<e.length;p++){var A=e[p];u.push(A.clone().add(g))}this.highlightMesh=this.createMesh(u),this.highlightMesh.visible=!1,this.highlightMesh.isHighlightMesh=!0,u.push(u[0]),this.wireframeMesh=this.createWireframe(u)},t.prototype.highlight=function(){this.highlightMesh.visible=!0,this.highlightMesh.material.color.setHex(this.faceHighlightColor),this.highlightMesh.material.transparent=!0,this.highlightMesh.material.opacity=.5,this.wireframeMesh.material.color.setHex(this.wireframeHighlightColor)},t.prototype.cancelHighlight=function(){this.highlightMesh.visible=!1,this.wireframeMesh.material.color.setHex(this.wireframeDefaultColor)},t.prototype.createTexturedMesh=function(e){for(var t=e.length-2,i=new Uint32Array(3*t),o=0,n=1;n<=t;n++)i[o++]=0,i[o++]=n,i[o++]=n+1;var s=new THREE.BufferGeometry,r=new Float32Array(3*e.length),a=new Float32Array(2*this.vertexUvs.length);s.setAttribute("position",new THREE.BufferAttribute(r,3).copyVector3sArray(e)),s.setAttribute("uv",new THREE.BufferAttribute(a,2).copyVector2sArray(this.vertexUvs)),s.setIndex(new THREE.BufferAttribute(i,1));var l=new THREE.MeshBasicMaterial({map:this.texture,side:THREE.DoubleSide,transparent:!1});this.mesh=new THREE.Mesh(s,l),this.mesh.componentId=this.componentId},t.prototype.getHighlightMesh=function(){return this.highlightMesh},t.prototype.buildVertexUvs=function(e){var t=[],i=(new THREE.Box3).setFromPoints(e),o=i.min,n=new THREE.Vector2;i.getSize(n);for(var s=0==n.x?"x":0==n.y?"y":"z",r=0;r<e.length;r++){var a=e[r],l=(n.x+n.y+n.z)/2,h=a.clone().sub(o).multiplyScalar(1/l),c=new THREE.Vector2(h.x,h.y);"x"==s?c=new THREE.Vector2(h.y,h.z):"y"==s&&(c=new THREE.Vector2(h.x,h.z)),t.push(c)}return t},t}(Kt),Yt=function(){function e(e,t){this.languageType=e,this.initialize(),this.scene=new THREE.Scene,this.callback=t,this.buildEdges(),this.buildCorners(),this.buildFaces()}return e.prototype.initialize=function(){this.enumViewMode={2673:"Top",4015:"Bottom","0231":"Front",5764:"Back",1375:"Right",4620:"Left",3:"RoofSouthEast",2:"RoofSouthWest",7:"RoofNorthEast",6:"RoofNorthWest",1:"BottomSouthEast",0:"BottomSouthWest",4:"BottomNorthWest",5:"BottomNorthEast",32:"RoofFront",76:"RoofBack",37:"RoofRight",26:"RoofLeft","01":"BottomFront",45:"BottomBack",15:"BottomRight","04":"BottomLeft",13:"SouthEast",20:"SouthWest",57:"NorthEast",64:"NorthWest"},this.length=100,this.vertices=[],this.vertexIds=[],this.edgeIds=[],this.edgeIndices=[],this.faceIds=[],this.faceIndices=[],this.componentList=[],this.texturesLoaded=0;var e=this.length;this.vertices.push(new THREE.Vector3(-e/2,-e/2,e/2)),this.vertices.push(new THREE.Vector3(e/2,-e/2,e/2)),this.vertices.push(new THREE.Vector3(-e/2,e/2,e/2)),this.vertices.push(new THREE.Vector3(e/2,e/2,e/2)),this.vertices.push(new THREE.Vector3(-e/2,-e/2,-e/2)),this.vertices.push(new THREE.Vector3(e/2,-e/2,-e/2)),this.vertices.push(new THREE.Vector3(-e/2,e/2,-e/2)),this.vertices.push(new THREE.Vector3(e/2,e/2,-e/2));for(var t=0;t<8;t++)this.vertexIds.push(t+"");this.edgeIndices.push([0,1],[1,3],[3,2],[2,0]),this.edgeIndices.push([0,4],[1,5],[2,6],[3,7]),this.edgeIndices.push([4,5],[5,7],[7,6],[6,4]);for(t=0;t<12;t++){var i=this.edgeIndices[t];this.edgeIds.push(i[0]+""+i[1])}this.faceIndices.push([0,2,3,1]),this.faceIndices.push([4,0,1,5]),this.faceIndices.push([4,6,2,0]),this.faceIndices.push([2,6,7,3]),this.faceIndices.push([1,3,7,5]),this.faceIndices.push([5,7,6,4]);for(t=0;t<6;t++){var o=this.faceIndices[t];this.faceIds.push(o[0]+""+o[1]+o[2]+o[3])}},e.prototype.buildFaces=function(){for(var e=this.vertices,t=this.faceIndices,i=this.faceIds,o=function(o){var s=window.BimfaceLoaderConfig.fullStaticHost+"/textures/"+n.languageType+"/"+n.enumViewMode[i[o]]+".png",r=new THREE.TextureLoader;r.setCrossOrigin("anonymous");var a=n;r.load(s,(function(n){var s=new Ht(e,t[o],i[o],n);a.componentList.push(s),a.scene.add(s.getMesh()),a.scene.add(s.getWireframe()),a.scene.add(s.getHighlightMesh()),6==++a.texturesLoaded&&a.callback&&a.callback()}))},n=this,s=0;s<6;s++)o(s)},e.prototype.buildEdges=function(){for(var e=this.vertices,t=this.edgeIndices,i=this.edgeIds,o=0;o<12;o++){var n=new Gt(e,t[o],i[o]);this.componentList.push(n),this.scene.add(n.getMesh()),this.scene.add(n.getWireframe()),this.scene.add(n.getHighlightWireframeMesh())}},e.prototype.buildCorners=function(){for(var e=this.vertices,t=this.vertexIds,i=0;i<8;i++){var o=new qt(e[i],t[i]);this.componentList.push(o),this.scene.add(o.getMesh()),this.scene.add(o.getWireframe()),this.scene.add(o.getCornerFace()),this.scene.add(o.getCornerWireframe())}},e.prototype.getComponent=function(e){for(var t=0;t<this.componentList.length;t++){var i=this.componentList[t];if(i.getId()==e)return i}return null},e.prototype.transparentCorners=function(){},e.prototype.opaqueCorners=function(){},e.prototype.getScene=function(){return this.scene},e.prototype.getMeshes=function(){for(var e=[],t=this.scene.children,i=0;i<t.length;i++){var o=t[i];"Mesh"===o.type&&!0!==o.isHighlightMesh&&e.push(o)}return e},e.prototype.destroy=function(){this.scene=null,this.vertices=null,this.vertexIds=null,this.edgeIds=null,this.edgeIndices=null,this.faceIds=null,this.faceIndices=null,this.componentList=null,this.enumViewMode=null},e}(),jt=function(){function e(e,t){this.container=e,this.bimCubeData=t,this.activeCamera=new THREE.OrthographicCamera(-110,110,110,-110,.01,500),this.activeCamera.position.set(0,0,200),this.activeScene,this.initialize(),this.cameraTarget=new THREE.Vector3(0,0,0)}return e.prototype.initialize=function(){var e,t;this.renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0,preserveDrawingBuffer:!0}),this.container.appendChild(this.renderer.domElement),"none"==this.container.style.display?(e=this.container.style.width.replace("px",""),t=this.container.style.height.replace("px","")):(e=this.container.offsetWidth,t=this.container.offsetHeight),this.renderer.setSize(e,t)},e.prototype.switchCameraType=function(e){},e.prototype.getActiveCamera=function(){return this.activeCamera},e.prototype.setActiveScene=function(e){this.activeScene=e},e.prototype.render=function(e){e&&(this.activeCamera.position.copy(new THREE.Vector3(0,0,200).applyQuaternion(e.quaternion)),this.activeCamera.up.copy(e.up),this.activeCamera.lookAt(this.cameraTarget),this.activeCamera.updateMatrixWorld());var t=this.activeScene||this.bimCubeData.getScene();this.renderer.autoClear=!0,this.renderer.render(t,this.activeCamera)},e.prototype.destroy=function(){this.container.removeChild(this.renderer.domElement),this.container=null,this.renderer.dispose(),this.renderer=null,this.activeScene=null,this.bimCubeData=null,this.activeCamera=null},e.enumTypes={PERSPECTIVE:1e3,ORTHOGRAPHIC:1001},e}(),Nt=function(){function e(){this.eventDispatcher=new THREE.EventDispatcher}return e.prototype.addEventListener=function(e,t){this.eventDispatcher.addEventListener(e,t)},e.prototype.hasEventListener=function(e){this.eventDispatcher.hasEventListener(e)},e.prototype.removeEventListener=function(e,t){this.eventDispatcher.removeEventListener(e,t)},e.prototype.dispatchEvent=function(e){this.eventDispatcher.dispatchEvent(e)},e.enumTypes={ON_COMPONENT_HOVER:1e3,ON_COMPONENT_CLICK:1001},e}(),Wt=function(){function e(e,t,i){this.eventManager=new Nt,this.container=e,this.bimCubeData=t,this.bimCubeView=i,this.initialize()}return e.prototype.initialize=function(){this.onMouseDownBinded=this.onMouseDown.bind(this),this.onMouseUpBinded=this.onMouseUp.bind(this),this.onMouseMoveBinded=this.onMouseMove.bind(this);var e=this.container;e.addEventListener("mousemove",this.onMouseMoveBinded,!1),e.addEventListener("mousedown",this.onMouseDownBinded,!1),this.raycaster=new THREE.Raycaster,this.lastHoverComponentId=null,this.bMouseDown=!1,this.mouseDownPos=null,this.doubleClickFlag=!1},e.prototype.onMouseDown=function(e){this.bMouseDown=!0,this.mouseDownPos=new THREE.Vector2(e.offsetX,e.offsetY),window.addEventListener("mouseup",this.onMouseUpBinded,!1)},e.prototype.onMouseMove=function(e){if(!this.bMouseDown){var t={x:e.offsetX,y:e.offsetY},i=this.canvasToNormalized(t),o=this.hitTest(i),n=this.lastHoverComponentId;if(o){if(o!=this.lastHoverComponentId)this.bimCubeData.getComponent(o).highlight(),this.bimCubeView.render(),this.lastHoverComponentId=o}else this.lastHoverComponentId=null;if(n&&o!=n)this.bimCubeData.getComponent(n).cancelHighlight(),this.bimCubeView.render()}},e.prototype.onMouseUp=function(e){if(window.removeEventListener("mouseup",this.onMouseUpBinded),0!=this.bMouseDown){var t=this;if(0==this.doubleClickFlag){this.doubleClickFlag=!0,setTimeout((function(){t.doubleClickFlag=!1}),1e3),this.bMouseDown=!1;var i=new THREE.Vector2(e.offsetX,e.offsetY);if(i.x==this.mouseDownPos.x&&i.y==this.mouseDownPos.y){var o={x:e.offsetX,y:e.offsetY},n=this.canvasToNormalized(o),s=this.hitTest(n);if(s){if(this.lastHoverComponentId)this.bimCubeData.getComponent(this.lastHoverComponentId).cancelHighlight(),this.lastHoverComponentId=null,this.bimCubeView.render();var r={type:Nt.enumTypes.ON_COMPONENT_CLICK,componentId:s,viewType:this.bimCubeData.enumViewMode[s]};this.eventManager.dispatchEvent(r)}}}else this.bMouseDown=!1}},e.prototype.canvasToNormalized=function(e){var t=this.container.offsetWidth,i=this.container.offsetHeight,o={x:0,y:0};return o.x=e.x/t*2-1,o.y=-e.y/i*2+1,o},e.prototype.hitTest=function(e){var t=this.bimCubeView.getActiveCamera();this.raycaster.setFromCamera(e,t);var i=this.bimCubeData.getMeshes(),o=this.raycaster.intersectObjects(i,!0);if(0!=o.length){var n=o[0].object.componentId;if(o.length>=2){var s=o[1].object.componentId;4==n.length&&2==s.length&&o[1].distance<o[0].distance+5&&(n=s)}return n}},e.prototype.addEventListener=function(e,t){this.eventManager.addEventListener(e,t)},e.prototype.destroy=function(){window.removeEventListener("mouseup",this.onMouseUpBinded),this.container.removeEventListener("mousemove",this.onMouseMoveBinded),this.container.removeEventListener("mousedown",this.onMouseDownBinded),this.container=null,this.eventManager=null,this.bimCubeData=null,this.bimCubeView=null,this.onMouseDownBinded=null,this.onMouseUpBinded=null,this.onMouseMoveBinded=null,this.raycaster=null,this.lastHoverComponentId=null,this.mouseDownPos=null},e}(),Ot=function(){function e(e,t,i){this.callback=i,this.functionsUnexecuted=[];var o=this;this.bimCubeData=new Yt(t,(function(){o.bimCubeView=new jt(e,o.bimCubeData),o.bimCubeEditor=new Wt(e,o.bimCubeData,o.bimCubeView),o.callback&&o.callback(),o.applyFunctionsUnexecuted()}))}return e.prototype.applyFunctionsUnexecuted=function(){for(var e=this.functionsUnexecuted,t=0;t<e.length;t++){switch(e[t]){case"show":this.show();break;case"hide":this.hide()}}this.functionsUnexecuted=[]},e.prototype.switchCameraType=function(e){this.bimCubeView.switchCameraType(e)},e.prototype.addEventListener=function(e,t){this.bimCubeEditor.addEventListener(e,t)},e.prototype.show=function(){if(this.bimCubeView){var e=this.bimCubeData.getScene();this.bimCubeView.setActiveScene(e),this.bimCubeView.render()}else this.functionsUnexecuted.push("show")},e.prototype.hide=function(){if(this.bimCubeView){var e=new THREE.Scene;this.bimCubeView.setActiveScene(e),this.bimCubeView.render()}else this.functionsUnexecuted.push("hide")},e.prototype.update=function(e){this.bimCubeView.render(e)},e.prototype.destroy=function(){this.bimCubeData&&this.bimCubeData.destroy(),this.bimCubeData=null,this.bimCubeEditor&&this.bimCubeEditor.destroy(),this.bimCubeEditor=null,this.bimCubeView&&this.bimCubeView.destroy(),this.bimCubeView=null,this.callback=null,this.functionsUnexecuted=null},e}();e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").ViewHouseNavi=class{constructor(e,t){this.viewer=e.getViewer(),this.enumEventTypes={ON_COMPONENT_HOVER:1e3,ON_COMPONENT_CLICK:1001},this.initialize();var i=this;this.bimcube=new Ot(t,BimfaceLanguage.name,(function(){i.hookEvents(),i.bimcube.update(i.viewer.getActiveCameraInfo())}))}initialize(){this.enumViewMode={Home:0,Top:1,Bottom:2,Front:3,Back:4,Right:5,Left:6,SouthEast:7,SouthWest:8,NorthEast:9,NorthWest:10,BottomFront:11,BottomBack:12,BottomRight:13,BottomLeft:14,BottomSouthEast:15,BottomSouthWest:16,BottomNorthEast:17,BottomNorthWest:18,RoofFront:19,RoofBack:20,RoofRight:21,RoofLeft:22,RoofSouthEast:23,RoofSouthWest:24,RoofNorthEast:25,RoofNorthWest:26,TopTurnRight:27,TopTurnBack:28,TopTurnLeft:29,BottomTurnRight:30,BottomTurnBack:31,BottomTurnLeft:32,FrontTurnRight:33,FrontTurnTop:34,FrontTurnLeft:35,RightTurnBack:36,RightTurnTop:37,RightTurnFront:38,BackTurnRight:39,BackTurnTop:40,BackTurnLeft:41,LeftTurnFront:42,LeftTurnTop:43,LeftTurnBack:44}}hookEvents(){var e=this.bimcube,t=this.viewer,i=this.enumViewMode,o=function(){t.render()};e.addEventListener(this.enumEventTypes.ON_COMPONENT_CLICK,(function(e){var n=i[e.viewType];n&&t.setStandardView(n,null,o,o)})),t.addRenderCallback((function(){e.update(t.getActiveCameraInfo())}))}setVisible(e){!0===e?this.bimcube.show():this.bimcube.hide()}getImpl(){return this.bimcube}destroy(){this.viewer=null,this.enumEventTypes=null,this.enumViewMode=null,this.bimcube.destroy(),this.bimcube=null}},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").ViewHouseConfig=function(){return{width:140,height:140,domElement:null,viewer:null}},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Application.UI.Menu").ViewHouseMenu=function(t){var i=this,o=t.viewer;this.viewer=o;var n=t.domElement,s=e.Bimface.UI.Control.ControlEvent,r=e.Bimface.Viewer.Viewer3DEvent,a=o.getDomElement(),l=new e.Bimface.UI.Menu.MenuConfig;l.element=n,this.menu=new e.Bimface.UI.Menu.Menu(l),this.menu.element.style.backgroundColor="#EBEFF1",this.menu.element.style.border="1px solid #D0D6D6";var h=this.menu,c=new e.Bimface.UI.Menu.MenuItemConfig;c.id="home";var d=new e.Bimface.UI.Menu.MenuItem(c);d.setText(BimfaceLanguage.bf_viewHouse_home),d.element.addClass("bf-menu-item1"),o.getEventManager().addEvent(r.ToolbarHomeClick,(function(){i.switchHomeView()})),d.addEventListener(s.Click,(function(){i.switchHomeView(),i.hide()})),this.switchHomeView=function(){var e=o.getCustomHomeview(),t=o.getDefaultHomeview(),i=e||t,n=i.name;"orth"==n&&u.setText(BimfaceLanguage.bf_viewHouse_perspective),"persp"==n&&u.setText(BimfaceLanguage.bf_viewHouse_orthographic),o.setCameraStatus(i,(function(){0==o.getCameraAnimation()&&o.render()}))};var g=new e.Bimface.UI.Menu.MenuItemConfig;g.id="orthographic";var u=new e.Bimface.UI.Menu.MenuItem(g);u.setText(BimfaceLanguage.bf_viewHouse_orthographic),u.element.addClass("bf-menu-item1"),u.addEventListener(s.Click,(function(){i.hide(),u.element.textContent==BimfaceLanguage.bf_viewHouse_orthographic?(o.setCameraType("OrthographicCamera"),o.render(),u.setText(BimfaceLanguage.bf_viewHouse_perspective)):(o.setCameraType("PerspectiveCamera"),o.render(),u.setText(BimfaceLanguage.bf_viewHouse_orthographic))})),this.orthographic=u;var p=new e.Bimface.UI.Menu.MenuItemConfig;p.id="setAsHome";var A=new e.Bimface.UI.Menu.MenuItem(p);A.setText(BimfaceLanguage.bf_viewHouse_setAsHome),A.element.addClass("bf-menu-item1"),A.addEventListener(s.Click,(function(){i.hide();var e=o.getCameraStatus();o.recordCustomHomeview(e)}));var m=new e.Bimface.UI.Menu.MenuItemConfig;m.id="resetHome";var w=new e.Bimface.UI.Menu.MenuItem(m);w.setText(BimfaceLanguage.bf_viewHouse_resetHome),w.element.addClass("bf-menu-item1"),w.addEventListener(s.Click,(function(){i.hide(),o.recordCustomHomeview(null)}));var C=new e.Bimface.UI.Menu.Spacer;C.element.style.backgroundColor="#D0D6D6";var f=new e.Bimface.UI.Menu.Spacer;f.element.style.backgroundColor="#D0D6D6",this.menu.addControl(d),this.menu.addControl(C),this.menu.addControl(u),this.menu.addControl(f),this.menu.addControl(A),this.menu.addControl(w),this.hide=function(){this.menu.element.style.display="none"},this.show=function(){this.menu.element.style.display=""},this.isHide=function(){return"none"==this.menu.element.style.display},this.update=function(){var e=this.viewer.getCameraStatus().name;"orth"==e&&this.orthographic.setText(BimfaceLanguage.bf_viewHouse_perspective),"persp"==e&&this.orthographic.setText(BimfaceLanguage.bf_viewHouse_orthographic)},this.destroy=function(){this.viewer=null,this.menu=null,this.orthographic=null},a.addEventListener("mousedown",(function(e){h&&i.hide()}))},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),function(e){var t=e,o=i.create("div","bf-house");o.style.width=`${t.width}px`,o.style.height=`${t.height}px`,t.domElement.appendChild(o),this._domElement=o,this._opt=t,this.viewer=t.viewer,this.init()});o.prototype={init:function(){var t=this;this.viewHouseNavi=new e.Bimface.Plugins.ViewHouseNavi(this._opt.viewer,this._domElement);var o=i.createNS("svg","bf-home-svg");o.setAttribute("viewBox","0 0 20 20");var n=i.createNS("g","");n.setAttribute("fill","none"),n.setAttribute("fill-rule","evenodd");var s=i.createNS("polygon","");s.setAttribute("fill","#E3E9EC"),s.setAttribute("points","1.207 9.5 3.5 9.5 3.5 16.499 7.501 16.499 7.503 12.5 12.5 12.5 12.5 16.499 16.5 16.499 16.5 9.5 18.793 9.5 10 .707"),o.addEventListener("mouseover",(function(){s.setAttribute("fill","#BAFFEC"),r.setAttribute("fill","#32D3A6")})),o.addEventListener("mouseout",(function(){s.setAttribute("fill","#E3E9EC"),r.setAttribute("fill","#BCC0C2")})),o.addEventListener("mousedown",(function(){t.viewHouseMenu.switchHomeView()}));var r=i.createNS("path","");r.setAttribute("fill","#BCC0C2"),r.setAttribute("d","M10,0 L0,10 L3,10 L3,17 L8,17 L8.003,13.001 L12,13.001 L12,17 L17,17 L17,10 L20,10 L10,0 Z M10,1.414 L17.586,9 L17,9 L16,9 L16,10 L16,16 L13,16 L13,13.001 L13,12 L12,12 L8.003,12 L7.004,12 L7.003,12.999 L7.001,16 L4,16 L4,10 L4,9 L3,9 L2.414,9 L10,1.414 Z"),n.appendChild(s),n.appendChild(r),o.appendChild(n),t._domElement.appendChild(o),this.homeSvg=o;var a=i.createNS("svg","bf-menu-svg");a.setAttribute("viewBox","0 0 20 20"),a.style.position="absolute";var l=i.createNS("g","");l.setAttribute("fill","none"),l.setAttribute("fill-rule","evenodd"),l.setAttribute("transform","translate(3 6)");var h=i.createNS("polygon","");h.setAttribute("fill","#E3E9EC"),h.setAttribute("points","1.207 4.5 6.999 10.292 12.793 4.5");var c=i.createNS("path","");c.setAttribute("fill","#BCC0C2"),c.setAttribute("d","M0.0004,3.9998 L6.9994,10.9998 L13.9994,3.9998 L0.0004,3.9998 Z M2.4144,4.9998 L11.5864,4.9998 L6.9994,9.5858 L2.4144,4.9998 Z");var d=i.createNS("polygon","");d.setAttribute("fill","#E3E9EC"),d.setAttribute("points",".5 2.5 13.5 2.5 13.5 .5 .5 .5");var g=i.createNS("path","");g.setAttribute("fill","#BCC0C2"),g.setAttribute("d","M0,3 L14,3 L14,0 L0,0 L0,3 Z M1,2 L13,2 L13,1 L1,1 L1,2 Z"),a.addEventListener("mouseover",(function(){h.setAttribute("fill","#BAFFEC"),c.setAttribute("fill","#32D3A6"),d.setAttribute("fill","#BAFFEC"),g.setAttribute("fill","#32D3A6")})),a.addEventListener("mouseout",(function(){h.setAttribute("fill","#E3E9EC"),c.setAttribute("fill","#BCC0C2"),d.setAttribute("fill","#E3E9EC"),g.setAttribute("fill","#BCC0C2")})),l.appendChild(h),l.appendChild(c),l.appendChild(d),l.appendChild(g),a.appendChild(l),t._domElement.appendChild(a),this.menuSvg=a;var u=new e.Bimface.Application.UI.Menu.ViewHouseMenu(this._opt);this.viewHouseMenu=u,u.hide(),a.addEventListener("click",(function(e){t.viewer.getDomElement().getBoundingClientRect();u.isHide()?(u.update(),u.show()):u.hide()}))},enableViewHouse:function(e){this.viewHouseNavi.setVisible(e),this._domElement.style.display=!0===e?"block":"none"},getDomElement:function(){return this._domElement},destroy:function(){this.viewHouseNavi.destroy(),this.viewHouseNavi=null,this.viewHouseMenu.destroy(),this.viewHouseMenu=null,this._domElement.removeChild(this.menuSvg),this.menuSvg=null,this._domElement.removeChild(this.homeSvg),this.homeSvg=null,this._domElement=null,this.viewer=null,this._opt=null}},t.ViewHouse=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").AnnotationConfig=function(){return{background:null,domElement:null,viewer:null,style:{"stroke-width":3,"stroke-color":"#ff0000","stroke-opacity":1,"fill-color":"#ff0000","fill-opacity":0,"font-family":"Arial","font-size":16,"font-style":"italic","font-weight":"bold"}}},function(){let t=Object.freeze({Arrow:"Arrow",Rectangle:"Rectangle",Circle:"Circle",Cross:"Cross",Cloud:"Cloud",Text:"Text"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").AnnotationTypeOption=t}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),function(e){this._opt=e,this.init()});i.prototype={init:function(){var e,t=this._opt;if(t.viewer)e=new f.Extensions.AnnotationHelper3D(t.viewer.getViewer());else{if(!t.domElement)return alert("domElement must not be empty."),!1;(e=new f.Extensions.AnnotationHelper2D).setDomContainer(t.domElement)}this._helper=e},begin:function(){var e=this._helper,t=this._opt;e.editAnnotationBegin(t.absBasePoint,t.screenBasePoint,t.zoomFactor)},end:function(){this._helper.editAnnotationEnd()},save:function(){return this._helper.getAnnotationInfoList()},load:function(e){var t=this._helper;this._opt;t.loadAnnotations(e)},createSnapshot:function(e,t){return this._helper.captureAnnotationsScreenSnapshot(e,t)},setType:function(e){this._helper.setAnnotationType({arrow:0,rectangle:1,circle:2,cross:3,cloud:4,text:5}[e.toLocaleLowerCase()])},setStyle:function(e){this._helper.setAnnotationStyle(e)},destroy:function(){this._helper.destroy()}},t.Annotation=i,t.Annotation.Annotation=t.Annotation,t.Annotation.AnnotationConfig=t.AnnotationConfig}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation").AnnotationManagerConfig=function(){return{viewer:null,lineWidth:3,lineColor:new e.Web.Graphics.Color(208,2,27,1),fillColor:new e.Web.Graphics.Color(255,255,255,0),fontFamily:"Arial",fontSize:14,windowAdaption:!1}},function(){let t=Object.freeze({Arrow:"Arrow",Rectangle:"Rectangle",Circle:"Ellips",Ellips:"Ellips",Cross:"Cross",Cloud:"Cloud",CloudRect:"Cloud-rect",Text:"Text",Polyline:"Polyline"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation").AnnotationTypeOption=t}(),Pt=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),(Lt=function(e){}).prototype={init:function(){var e,t=this._opt;e=new f.Extensions.AnnotationHelper3D(t.viewer.getViewer(),t),this._helper=e},startDrawing:function(){var e=this._helper;this._opt,e.editAnnotationBegin(),this.isShowAnnotation=!0},getAnnotationList:function(){return this._helper.getAnnotationInfoList()},setAnnotationList:function(e){e&&0!=e.length?(this._annotationList=e,this._helper.loadAnnotations(e),this.isShowAnnotation=!0):this.clear()},createSnapshot:function(e){this._opt.viewer,this._helper.captureAnnotationsScreenSnapshot("",e)},setState:function(e){var t=this,i=t._opt.viewer;i.setState(e.state),i.render(),setTimeout((function(){t.setAnnotationList(e.annotationList)}),1e3)},updateSvg:function(){var e=this._annotationList,t=this._opt.viewer.getZoomScale();if(!e||0==e.length)return!1;for(var i=0,o=e.length;i<o;i++)e[i].position=this.getSVGPosition(e[i],t),e[i].size.width=e[i].defaultSize.width*t,e[i].size.height=e[i].defaultSize.height*t;this.isShowAnnotation&&this.setAnnotationList(e)},getSVGPosition:function(e,t){var i=this._opt.viewer,o=i.screenWidth/2,n=i.screenHeight/2,s=i.worldToClient(e.worldPosition);return{x:s.x-o,y:n-s.y}},revoke:function(){}},Pt.AnnotationViewer3dManager=Lt,function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation"),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),function(t){var i=e.Bimface.Viewer.Viewer2DEvent,o=t.viewer,n=this;o.addEventListener(i.ViewMoving,(function(e){n.updateSvg()})),o.addEventListener(i.ViewZooming,(function(e){n.updateSvg()}))});i.prototype={init:function(){var e,t=this._opt;(e=new f.Extensions.AnnotationHelper2D(t)).setDomContainer(t.viewer.getDomElement()),this._helper=e},startDrawing:function(){var e=this._helper,t=this._opt;e.editAnnotationBegin();t.viewer.getZoomScale();e.editor.svg.addEventListener("mousewheel",(function(e){e.preventDefault(),e.stopPropagation()})),this.isShowAnnotation=!0},getAnnotationList:function(){var e=this._helper.getAnnotationInfoList();if(e&&e.length>0)for(var t=this._opt.viewer.getZoomScale(),i=0,o=e.length;i<o;i++)e[i].worldPosition=this.getWorldPosition(e[i]),e[i].defaultSize={width:e[i].size.width/t,height:e[i].size.height/t};return e},setAnnotationList:function(e){if(e&&0!=e.length){for(var t=this._opt.viewer.getZoomScale(),i=0,o=e.length;i<o;i++)e[i].position=this.getSVGPosition(e[i],t),e[i].size.width=e[i].defaultSize.width*t,e[i].size.height=e[i].defaultSize.height*t;this._annotationList=e,this._helper.loadAnnotations(e),this.isShowAnnotation=!0}else this.clear()},createSnapshot:function(e){var t=this;t._opt.viewer.createSnapshotAsync("",(function(i){t._helper.captureAnnotationsScreenSnapshot(i,e)}))},setState:function(e){this._opt.viewer.setState(e.state),this.setAnnotationList(e.annotationList)},updateSvg:function(){var e=this._annotationList,t=this._opt.viewer.getZoomScale();if(!e||0==e.length)return!1;for(var i=0,o=e.length;i<o;i++)e[i].position=this.getSVGPosition(e[i],t),e[i].size.width=e[i].defaultSize.width*t,e[i].size.height=e[i].defaultSize.height*t;this.isShowAnnotation&&this.setAnnotationList(e)},getSVGPosition:function(e,t){var i=this._opt.viewer,o=i.screenWidth/2,n=i.screenHeight/2,s=i.worldToClient(e.worldPosition);return{x:s.x-o,y:n-s.y}},revoke:function(){}},t.AnnotationViewer2dManager=i}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation"),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),function(e){this._viewer=e,this.drawingViewer=e.getViewer()});i.prototype={init:function(){var e,t=this._opt;e=this.drawingViewer.mouseEditorMgr,this.type="arrow",this.setLineWidth(t.lineWidth),this.setLineColor(t.lineColor),this.setFillColor(t.fillColor),this.setFontFamily(t.fontFamily),this.setFontSize(t.fontSize),this._helper=e},startDrawing:function(){var e,t=this._helper;this._opt;t.activeEditorByName("markup"),(e=t.getEditor()).setMarkupType(this.type),this.annotationToolbar&&(this.setLineColor({red:208,green:2,blue:27,alpha:1}),this.setLineWidth(2)),this.editor=e,this.isShowAnnotation=!0},endDrawing:function(){this.drawingViewer.markupManager.setFillColor("transparent"),this.clear(),this._helper.activeEditorByName("pick"),this.drawingViewer.update(),this.isShowAnnotation=!1},getAnnotationList:function(){return this.drawingViewer.markupManager.markups},setAnnotationList:function(e){this.drawingViewer.markupManager.markups=e,this.drawingViewer.update()},clear:function(){this.drawingViewer.markupManager.clear(),this.drawingViewer.update()},createSnapshot:function(e){var t=this._viewer.getRootElement();e(this.drawingViewer.snapshot(t.style.background))},resize:function(){this._viewer.resize()},setAnnotationType:function(e){this.type={arrow:"arrow",rectangle:"rectangle","cloud-rect":"cloud-rect",circle:"ellips",cross:"cross",cloud:"cloud",text:"text"}[e.toLocaleLowerCase()],this.editor&&this.editor.setMarkupType(this.type)},setLineWidth:function(e){this.drawingViewer.markupManager.setLineWidth(e)},setLineColor:function(e){this.drawingViewer.markupManager.setColor(`rgba(${e.red},${e.green},${e.blue},${e.alpha})`)},setFillColor:function(e){this.drawingViewer.markupManager.setFillColor(`rgba(${e.red},${e.green},${e.blue},${e.alpha})`)},setFontFamily:function(e){this.drawingViewer.markupManager.setFontFamily(e)},setFontSize:function(e){this.drawingViewer.markupManager.setFontSize(e)},getCurrentState:function(){var e=this._opt.viewer,t=this.getAnnotationList();return{annotationList:this.stringifyAnnotationList(t),state:e.getCurrentState()}},stringifyAnnotationList(e){return this.drawingViewer.markupManager.toString(e)},jsonifyAnnotationList(e){return this.drawingViewer.markupManager.fromString(e)},setState:function(e){var t=this._opt.viewer;if("string"==typeof e.annotationList){var i=this.jsonifyAnnotationList(e.annotationList);this.setAnnotationList(i)}else this.setAnnotationList(e.annotationList);t.setState(e.state)},updateSvg:function(){var e=this._annotationList,t=this._opt.viewer.getZoomScale();if(!e||0==e.length)return!1;for(var i=0,o=e.length;i<o;i++)e[i].position=this.getSVGPosition(e[i],t),e[i].size.width=e[i].defaultSize.width*t,e[i].size.height=e[i].defaultSize.height*t;this.isShowAnnotation&&this.setAnnotationList(e)},getWorldPosition:function(e){var t=this._opt.viewer,i=t.screenWidth/2,o=t.screenHeight/2,n={x:i+e.position.x,y:o-e.position.y};return t.clientToWorld(n)},getSVGPosition:function(e,t){var i=this._opt.viewer,o=i.screenWidth/2,n=i.screenHeight/2,s=i.worldToClient(e.worldPosition);return{x:s.x-o,y:n-s.y}},revoke:function(){}},t.AnnotationDrawingManager=i}(); |
|
/*! ***************************************************************************** |
|
Copyright (c) Microsoft Corporation. |
|
|
|
Permission to use, copy, modify, and/or distribute this software for any |
|
purpose with or without fee is hereby granted. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH |
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, |
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR |
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
|
PERFORMANCE OF THIS SOFTWARE. |
|
***************************************************************************** */ |
|
var Jt=function(e,t){return(Jt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function Zt(e,t){function i(){this.constructor=e}Jt(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var zt,Xt=function(){return(Xt=Object.assign||function(e){for(var t,i=1,o=arguments.length;i<o;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},_t=function(){function e(){}return e.prototype.onDrawing=function(e,t,i,o){this.markup&&(t.strokeStyle=this.markup.strokeStyle,t.lineWidth=this.markup.lineWidth,t.fillStyle=this.markup.fillStyle,this.markup.draw(e,t,i,o))},e.prototype.addMarkup=function(e,t){t.drawEnd=!0,this.markupManager.add(t),"function"==typeof e.itemCompleted&&e.itemCompleted(t)},e.prototype.redraw=function(e){},e.prototype.onExit=function(e){},e.prototype.onMouseMove=function(e,t,i,o){},e}(),$t=function(){function e(){}return e.prototype.getCenter=function(e){var t=e.worldToClientPoint(this.drawPoints[0]),i=e.worldToClientPoint(this.drawPoints[1]);return[(t[0]+i[0])/2,(t[1]+i[1])/2]},e.prototype.setColor=function(e){e&&(this.highLight=e)},e.prototype.getColor=function(){return this.strokeStyle},e}(),ei=function(e){function t(t,i,o,n,s){var r=e.call(this)||this;return r.rotation=n||0,r.markupType="Ellipse",r.drawPoints=t,r.strokeStyle=i,r.lineWidth=o,r.fillStyle=s,r.bNeedHitByBbox=!0,r}return Zt(t,e),t.prototype.draw=function(e,t,i,o){if(!(this.drawPoints.length<2)){var n=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]),s=e.worldToClientPoint([this.drawPoints[1][0],this.drawPoints[1][1],this.drawPoints[1][2]]),r=.5*Math.abs(s[0]-n[0]),a=.5*Math.abs(s[1]-n[1]),l=this.getCenter(e);t.save(),t.translate(l[0],l[1]),t.rotate(this.rotation),t.beginPath(),t.ellipse(0,0,r,a,0,0,2*Math.PI),t.restore(),t.closePath(),this.fillStyle&&t.fill(),t.stroke(),i.ctx.lineWidth=Ri.isMobile?18:this.lineWidth+i.lineWidth,i.ctx.fillStyle=this.fillStyle,i.drawEllips(n,s,l,this.rotation,o,r,a)}},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getGrips=function(e){var t=e.worldToClientPoint(this.drawPoints[0]),i=e.worldToClientPoint(this.drawPoints[1]),o=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=[];return n.push(t[0],t[1]),n.push(t[0],o[1]),n.push(t[0],i[1]),n.push(o[0],i[1]),n.push(i[0],i[1]),n.push(i[0],o[1]),n.push(i[0],t[1]),n.push(o[0],t[1]),n},t}($t);!function(e){e[e.CONTINUE=0]="CONTINUE",e[e.FINISHED=1]="FINISHED",e[e.LelftButton=1]="LelftButton",e[e.RightButton=2]="RightButton",e[e.MiddleButton=4]="MiddleButton",e[e.MouseMode=1]="MouseMode",e[e.TouchMode=2]="TouchMode"}(zt||(zt={}));var ti=zt,ii=function(e){function t(t){var i=e.call(this)||this;return i.markupManager=t,i}return Zt(t,e),t.prototype.begin=function(e,t,i,o){this.startX=t,this.startY=i;var n=e.markupManager.getColor(),s=e.markupManager.getLineWidth(),r=e.markupManager.getFillStyleState()?e.markupManager.getFillColor():void 0;this.markup=new ei([],n,s,0,r)},t.prototype.onEditing=function(e,t,i,o){var n=e.clientToWorldPoint([this.startX,this.startY]),s=e.clientToWorldPoint([t,i]);this.markup.setPoints([n,s]),this.redraw(e)},t.prototype.end=function(e,t,i,o){return this.startX==t&&this.startY==i?(console.log("Ignore single point."),ti.FINISHED):(this.addMarkup(e,this.markup),this.markup=null,ti.FINISHED)},t}(_t),oi=function(e){function t(t,i,o,n,s){var r=e.call(this)||this;return r.rotation=n||0,r.markupType="Rectangle",r.drawPoints=t,r.strokeStyle=i,r.lineWidth=o,r.fillStyle=s,r.bNeedHitByBbox=!0,r}return Zt(t,e),t.prototype.draw=function(e,t,i,o){if(!(this.drawPoints.length<2)){var n=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]),s=e.worldToClientPoint([this.drawPoints[1][0],this.drawPoints[1][1],this.drawPoints[1][2]]),r=this.getCenter(e);t.save(),t.translate(r[0],r[1]),t.rotate(this.rotation),t.beginPath(),t.rect(-.5*(s[0]-n[0]),-.5*(s[1]-n[1]),s[0]-n[0],s[1]-n[1]),t.restore(),t.closePath(),this.fillStyle&&t.fill(),t.stroke(),i.ctx.lineWidth=Ri.isMobile?18:this.lineWidth+i.lineWidth,i.ctx.fillStyle=this.fillStyle,i.drawRect(this,n,s,r,this.rotation,o)}},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getGrips=function(e){var t=e.worldToClientPoint(this.drawPoints[0]),i=e.worldToClientPoint(this.drawPoints[1]),o=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=[];return n.push(t[0],t[1]),n.push(t[0],o[1]),n.push(t[0],i[1]),n.push(o[0],i[1]),n.push(i[0],i[1]),n.push(i[0],o[1]),n.push(i[0],t[1]),n.push(o[0],t[1]),n},t.prototype.getRotateGrips=function(e){var t=e.worldToClientPoint(this.drawPoints[0]),i=e.worldToClientPoint(this.drawPoints[1]);return[[(t[0]+i[0])/2,(t[1]+i[1])/2][0],t[1]-20]},t}($t),ni=zt,si=function(e){function t(t){var i=e.call(this)||this;return i.markupManager=t,i}return Zt(t,e),t.prototype.begin=function(e,t,i,o){this.startX=t,this.startY=i;var n=e.markupManager.getColor(),s=e.markupManager.getLineWidth(),r=e.markupManager.getFillStyleState()?e.markupManager.getFillColor():void 0;this.markup=new oi([],n,s,0,r)},t.prototype.onEditing=function(e,t,i,o){var n=e.clientToWorldPoint([this.startX,this.startY]),s=e.clientToWorldPoint([t,i]);this.markup.setPoints([n,s]),this.redraw(e)},t.prototype.end=function(e,t,i,o){return this.startX==t&&this.startY==i?(console.log("Ignore single point."),ni.FINISHED):(this.addMarkup(e,this.markup),this.markup=null,ni.FINISHED)},t}(_t),ri=function(e){function t(t,i,o,n){var s=e.call(this)||this;return s.rotation=n||0,s.markupType="Arrow",s.drawPoints=t,s.strokeStyle=i,s.lineWidth=o,s.bNeedHitByBbox=!1,s}return Zt(t,e),t.prototype.draw=function(e,t,i,o){if(!(this.drawPoints.length<2)){var n=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]),s=e.worldToClientPoint([this.drawPoints[1][0],this.drawPoints[1][1],this.drawPoints[1][2]]),r=10+this.lineWidth,a=n[0],l=n[1],h=s[0],c=s[1],d=180*Math.atan2(l-c,a-h)/Math.PI,g=(d+30)*Math.PI/180,u=(d-30)*Math.PI/180,p=r*Math.cos(g),A=r*Math.sin(g),m=r*Math.cos(u),w=r*Math.sin(u),C=a-p,f=l-A,E=[(n[0]+s[0])/2,(n[1]+s[1])/2];t.fillStyle=t.strokeStyle,t.beginPath(),C=h+p,f=c+A,t.moveTo(C,f),t.lineTo(h,c),C=h+m,f=c+w,t.lineTo(C,f),t.closePath(),t.fill(),t.beginPath(),t.moveTo(a,l),p=(r-3)*Math.cos(g),A=(r-3)*Math.sin(g);var B=[h+(p+(m=(r-3)*Math.cos(u)))/2,c+(A+(w=(r-3)*Math.sin(u)))/2];t.lineTo(B[0],B[1]),t.stroke(),i.drawArrow(this,a,l,h,c,p,A,m,w,E,this.rotation,o,n,s)}},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getGrips=function(e){var t=e.worldToClientPoint(this.drawPoints[0]),i=e.worldToClientPoint(this.drawPoints[1]);return t.concat(i)},t}($t),ai=zt,li=function(e){function t(t){var i=e.call(this)||this;return i.markupManager=t,i}return Zt(t,e),t.prototype.begin=function(e,t,i,o){this.startX=t,this.startY=i;var n=e.markupManager.getColor(),s=e.markupManager.getLineWidth();this.markup=new ri([],n,s)},t.prototype.onEditing=function(e,t,i,o){var n=e.clientToWorldPoint([this.startX,this.startY]),s=e.clientToWorldPoint([t,i]);this.markup.setPoints([n,s]),this.redraw(e)},t.prototype.end=function(e,t,i,o){return this.startX==t&&this.startY==i?(console.log("Ignore single point."),ai.FINISHED):(this.addMarkup(e,this.markup),this.markup=null,ai.FINISHED)},t}(_t),hi=function(e){function t(t,i,o,n){var s=e.call(this)||this;return s.rotation=n||0,s.markupType="Cross",s.drawPoints=t,s.strokeStyle=i,s.lineWidth=o,s.bNeedHitByBbox=!1,s}return Zt(t,e),t.prototype.draw=function(e,t,i,o){if(!(this.drawPoints.length<2)){var n=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]),s=e.worldToClientPoint([this.drawPoints[1][0],this.drawPoints[1][1],this.drawPoints[1][2]]),r=this.getCenter(e);t.save(),t.translate(r[0],r[1]),t.rotate(this.rotation),t.beginPath(),t.moveTo(-.5*(s[0]-n[0]),-.5*(s[1]-n[1])),t.lineTo(.5*(s[0]-n[0]),.5*(s[1]-n[1])),t.moveTo(-.5*(s[0]-n[0]),.5*(s[1]-n[1])),t.lineTo(.5*(s[0]-n[0]),-.5*(s[1]-n[1])),t.stroke(),t.restore(),i.ctx.lineWidth=Ri.isMobile?18:this.lineWidth+i.lineWidth,i.drawCross(n,s,r,this.rotation,o)}},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getGrips=function(e){var t=e.worldToClientPoint(this.drawPoints[0]),i=e.worldToClientPoint(this.drawPoints[1]),o=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=[];return n.push(t[0],t[1]),n.push(t[0],o[1]),n.push(t[0],i[1]),n.push(o[0],i[1]),n.push(i[0],i[1]),n.push(i[0],o[1]),n.push(i[0],t[1]),n.push(o[0],t[1]),n},t}($t),ci=zt,di=function(e){function t(t){var i=e.call(this)||this;return i.markupManager=t,i}return Zt(t,e),t.prototype.begin=function(e,t,i,o){this.startX=t,this.startY=i;var n=e.markupManager.getColor(),s=e.markupManager.getLineWidth();this.markup=new hi([],n,s)},t.prototype.onEditing=function(e,t,i,o){var n=e.clientToWorldPoint([this.startX,this.startY]),s=e.clientToWorldPoint([t,i]);this.markup.setPoints([n,s]),this.redraw(e)},t.prototype.end=function(e,t,i,o){return this.startX==t&&this.startY==i?(console.log("Ignore single point."),ci.FINISHED):(this.addMarkup(e,this.markup),this.markup=null,ci.FINISHED)},t}(_t),gi=function(){function e(){}return e.distance=function(e,t){var i=t.x-e.x,o=t.y-e.y;return Math.sqrt(i*i+o*o)},e.center=function(e,t){return{x:(t.x+e.x)/2,y:(t.y+e.y)/2}},e.centerByArr=function(e,t){return[(t[0]+e[0])/2,(t[1]+e[1])/2]},e.distanceByArr=function(e,t){var i=t[0]-e[0],o=t[1]-e[1];return Math.sqrt(i*i+o*o)},e.normalize=function(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]);return[e[0]/t,e[1]/t]},e.isPointInBBox=function(e,t,i,o){var n=.5*o[0];if(e<i[0]-n||e>i[0]+n)return!1;var s=.5*o[1];return!(t<i[1]-s||t>i[1]+s)},e.rotateAround=function(e,t,i){var o=[0,0],n=Math.cos(i),s=Math.sin(i),r=e[0]-t[0],a=e[1]-t[1];return o[0]=r*n-a*s+t[0],o[1]=r*s+a*n+t[1],o},e}(),ui=function(e){function t(t,i,o,n,s,r,a){var l=e.call(this)||this;return l.rotation=s||0,l.fillStyle=r||0,l.close=a||!1,l.markupType="Cloud",l.drawPoints=t,l.strokeStyle=i,l.lineWidth=o,l.controlPt=[],l.editPt=null,l.bNeedHitByBbox=!0,l}return Zt(t,e),t.prototype.draw=function(e,t,i,o){if(!(this.drawPoints.length<2)){var n=e.markupManager.getMarkupCenter(e,o);n||(n=[0,0]),t.save(),t.translate(n[0],n[1]),t.rotate(this.rotation),t.beginPath(),i.ctx.save(),i.ctx.translate(n[0],n[1]),i.ctx.rotate(this.rotation),i.ctx.beginPath(),i.ctx.strokeStyle="rgba("+(2*o+2)+",60,60,1)",i.ctx.fillStyle="rgba("+(2*o+2)+",60,255,1)",i.ctx.lineWidth=Ri.isMobile?18:this.lineWidth+i.lineWidth;for(var s=1,r=this.drawPoints.length;s<r;s++){var a=e.worldToClientPoint([this.drawPoints[s-1][0],this.drawPoints[s-1][1],this.drawPoints[s-1][2]]),l=e.worldToClientPoint([this.drawPoints[s][0],this.drawPoints[s][1],this.drawPoints[s][2]]),h=void 0;if(1==s&&(t.moveTo(a[0]-n[0],a[1]-n[1]),i.ctx.moveTo(a[0]-n[0],a[1]-n[1])),this.editPt&&this.editPt[s-1])h=e.worldToClientPoint([this.editPt[s-1][0],this.editPt[s-1][1],this.editPt[s-1][2]]);else if(this.controlPt[s-1]&&s<r-1)h=e.worldToClientPoint([this.controlPt[s-1][0],this.controlPt[s-1][1],this.controlPt[s-1][2]]);else{h=this.getControlPt(a,l);var c=e.clientToWorldPoint(h);c[0]&&c[1]&&(this.controlPt[s-1]=c)}t.quadraticCurveTo(h[0]-n[0],h[1]-n[1],l[0]-n[0],l[1]-n[1]),i.ctx.quadraticCurveTo(h[0]-n[0],h[1]-n[1],l[0]-n[0],l[1]-n[1])}i.ctx.stroke(),this.close&&this.fillStyle&&t.fill(),t.stroke(),t.restore(),i.ctx.restore()}},t.prototype.shouldClose=function(e,t,i){if(this.drawPoints.length<3)return!1;var o=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]);return gi.distanceByArr(o,[t,i])<5?(this.close=!0,!0):(this.close=!1,!1)},t.prototype.getControlPt=function(e,t,i){var o=[(e[0]+t[0])/2,(e[1]+t[1])/2],n=.6*gi.distanceByArr(e,t),s=[t[1]-e[1],e[0]-t[0]];return s=gi.normalize(s),[o[0]+s[0]*n,o[1]+s[1]*n]},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.addPoint=function(e){this.drawPoints.push(e)},t.prototype.getStartPoint=function(){return this.drawPoints[0]},t.prototype.popPoint=function(){this.drawPoints.pop()},t.prototype.isEmpty=function(){return 0==this.drawPoints.length},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getGrips=function(e,t){if(null==t)return this.drawPoints;var i=e.markupManager.getMarkupBbox(e,t),o=[i[0],i[1]],n=[i[2],i[3]],s=[(o[0]+n[0])/2,(o[1]+n[1])/2],r=[];return r.push(o[0],o[1]),r.push(o[0],s[1]),r.push(o[0],n[1]),r.push(s[0],n[1]),r.push(n[0],n[1]),r.push(n[0],s[1]),r.push(n[0],o[1]),r.push(s[0],o[1]),r},t}($t),pi=zt,Ai=function(e){function t(t){var i=e.call(this)||this;return i.markupManager=t,i.bFirstCloudMarkup=!0,i.uncertainty=!1,i}return Zt(t,e),t.prototype.begin=function(e,t,i,o){if(this.bFirstCloudMarkup){if(e.markupManager.hitTest(e,t,i)>-1)return;var n=e.markupManager.getColor(),s=e.markupManager.getLineWidth(),r=e.markupManager.getFillStyleState()?e.markupManager.getFillColor():void 0;this.markup=new ui([],n,s,null,0,r),this.bFirstCloudMarkup=!1}if(this.markup.shouldClose(e,t,i))this.addMarkup(e,this.markup),this.markup=null,this.redraw(e),this.bFirstCloudMarkup=!0;else{var a=e.clientToWorldPoint([t,i]);this.markup.popPoint(),this.markup.addPoint(a)}this.uncertainty=!1},t.prototype.onEditing=function(e,t,i,o){if(!this.bFirstCloudMarkup){var n=void 0;n=this.markup.shouldClose(e,t,i)?this.markup.getStartPoint():e.clientToWorldPoint([t,i]),this.uncertainty&&this.markup.drawPoints.length>1?this.markup.popPoint():this.uncertainty=!0,this.markup.addPoint(n),this.redraw(e)}},t.prototype.onMouseMove=function(e,t,i,o){this.onEditing(e,t,i,o)},t.prototype.end=function(e,t,i,o){if(this.bFirstCloudMarkup)return pi.FINISHED},t.prototype.onMouseRightClick=function(e,t){this.bFirstCloudMarkup||(this.markup.popPoint(),this.markup.drawPoints.length>1&&this.addMarkup(e,this.markup),this.markup.close=!1,this.markup=null,this.redraw(e),this.bFirstCloudMarkup=!0)},t.prototype.onDoubleClick=function(e,t){if(!this.bFirstCloudMarkup){this.markup.popPoint();var i=this.markup.drawPoints.length;i>1&&this.addMarkup(e,this.markup);var o=e.worldToClientPoint([this.markup.drawPoints[i-1][0],this.markup.drawPoints[i-1][1],this.markup.drawPoints[i-1][2]]);gi.distanceByArr(o,[t.x,t.y])<5&&this.markup.popPoint(),this.markup=null,this.redraw(e),this.bFirstCloudMarkup=!0}},t.prototype.getIsEndDrawing=function(){return this.bFirstCloudMarkup},t}(_t),mi=function(e){function t(t,i,o,n,s){var r=e.call(this)||this;return r.rotation=n||0,r.markupType="CloudRect",r.drawPoints=t,r.strokeStyle=i,r.lineWidth=o,r.fillStyle=s,r.baseUnit="30",r.bNeedHitByBbox=!0,r}return Zt(t,e),t.prototype.draw=function(e,t,i,o){if(!(this.drawPoints.length<2)){var n=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]),s=e.worldToClientPoint([this.drawPoints[1][0],this.drawPoints[1][1],this.drawPoints[1][2]]),r=this.getCenter(e),a=s[1]-n[1],l=s[0]-n[0],h=Math.abs(l),c=Math.abs(a),d=h/this.baseUnit,g=c/this.baseUnit,u=parseInt(d),p=parseInt(g),A=0==u?h:h/u,m=0==p?c:c/p;t.save(),t.translate(r[0],r[1]),t.rotate(this.rotation),t.beginPath(),i.ctx.save(),i.ctx.translate(r[0],r[1]),i.ctx.rotate(this.rotation),i.ctx.beginPath();var w=[-h/2,-c/2],C=[h/2,c/2];i.ctx.strokeStyle="rgba("+(2*o+2)+",40,40,1)",i.ctx.lineWidth=Ri.isMobile?18:this.lineWidth+i.lineWidth,t.lineJoin="round",this.drawSide("orientation",A,h,w[0],w[1],t,null,o,i,!0),this.drawSide("portrait",m,c,C[0],w[1],t,null,o,i),this.drawSide("orientation",A,h,C[0],C[1],t,!0,o,i),this.drawSide("portrait",m,c,w[0],C[1],t,!0,o,i),this.fillStyle&&t.fill(),t.stroke(),t.restore(),i.ctx.stroke(),i.ctx.restore()}},t.prototype.drawSide=function(e,t,i,o,n,s,r,a,l,h){var c,d=0,g=0,u=i/t,p=o,A=n;"orientation"==e?d=t:g=t;for(var m=0;m<u;m++){h&&0==m&&s.moveTo(o,n),c=r?[o-d,n-g]:[o+d,n+g],d&&Math.abs(c[0]-p)>i?c[0]=r?p-i:p+i:g&&Math.abs(c[1]-A)>i&&(c[1]=r?A-i:A+i);var w=this.getControlPt([o,n],c);s.quadraticCurveTo(w[0],w[1],c[0],c[1]),l.drawCloudRect(o,n,w,c,a),o=c[0],n=c[1]}},t.prototype.getControlPt=function(e,t,i){var o=[(e[0]+t[0])/2,(e[1]+t[1])/2],n=.5*gi.distanceByArr(e,t),s=[t[1]-e[1],e[0]-t[0]];return s=gi.normalize(s),[o[0]+s[0]*n,o[1]+s[1]*n]},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getGrips=function(e){var t=e.worldToClientPoint(this.drawPoints[0]),i=e.worldToClientPoint(this.drawPoints[1]),o=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=[];return n.push(t[0],t[1]),n.push(t[0],o[1]),n.push(t[0],i[1]),n.push(o[0],i[1]),n.push(i[0],i[1]),n.push(i[0],o[1]),n.push(i[0],t[1]),n.push(o[0],t[1]),n},t}($t),wi=zt,Ci=function(e){function t(t){var i=e.call(this)||this;return i.markupManager=t,i}return Zt(t,e),t.prototype.begin=function(e,t,i,o){this.startX=t,this.startY=i;var n=e.markupManager.getColor(),s=e.markupManager.getLineWidth(),r=e.markupManager.getFillStyleState()?e.markupManager.getFillColor():void 0;this.markup=new mi([],n,s,0,r)},t.prototype.onEditing=function(e,t,i,o){var n=e.clientToWorldPoint([this.startX,this.startY]),s=e.clientToWorldPoint([t,i]);this.markup.setPoints([n,s]),this.redraw(e)},t.prototype.end=function(e,t,i,o){return this.startX==t&&this.startY==i?(console.log("Ignore single point."),wi.FINISHED):(this.addMarkup(e,this.markup),this.markup=null,wi.FINISHED)},t}(_t),fi=function(e){function t(t,i,o,n,s,r,a,l,h){var c=e.call(this)||this;c.rotation=r||0,c.textAreaId=a||null,c.center=l||null,c.markupType="Text",c.drawPoints=h?t:[t],c.pureText=i,c.userText=i,c.strokeStyle=o,c.fontSize=n,c.fontFamily=s;var d=document.createElement("canvas");return c.virtualCtx=d.getContext("2d"),c.bNeedHitByBbox=!1,c}return Zt(t,e),t.prototype.draw=function(e,t,i,o){var n=e.worldToClientPoint(this.drawPoints[0]),s=this.getTextBbox(e),r=[(s[2]+s[0])/2,(s[3]+s[1])/2];this.center&&(r=e.worldToClientPoint(this.center)),t.save(),t.translate(r[0],r[1]),t.rotate(this.rotation),t.beginPath(),i.init(r,this.rotation),t.fillStyle=t.strokeStyle,t.font=this.fontSize+"px "+this.fontFamily,t.zIndex=120,i.ctx.font="bold "+this.fontSize+"px "+this.fontFamily,i.ctx.strokeStyle="rgba("+(2*o+2)+",80,80,1)",i.ctx.fillStyle="rgba("+(2*o+2)+",80,80,1)";for(var a=this.userText.split(/\n/),l=0;l<a.length;l++){t.fillText(a[l],n[0]-r[0],n[1]-r[1]+(l+1)*this.fontSize),i.ctx.fillText(a[l],n[0]-r[0],n[1]-r[1]+(l+1)*this.fontSize);var h=a[l].replace(/[a-z]/g,"aa").replace(/[^\u0000-\u00ff]/g,"aaaa").replace(/[A-Z]/g,"aaa").replace(/[0-9]/g,"aa").length;i.ctx.fillRect(n[0]-r[0],n[1]-r[1]+l*this.fontSize,h*this.fontSize*4/14,20)}t.restore(),i.ctx.restore()},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getId=function(){return this.textAreaId},t.prototype.getUserText=function(){return this.userText},t.prototype.getPureText=function(){return this.pureText},t.prototype.setUserText=function(e){this.userText=e},t.prototype.setPureText=function(e){this.pureText=e},t.prototype.show=function(e){var t=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]),i=document.getElementById(this.textAreaId),o=e.wrapDom.getBoundingClientRect();i.style.left=t[0]+o.left+"px",i.style.top=t[1]+o.top+"px",i.style.fontFamily=this.fontFamily,i.style.fontSize=this.fontSize,i.style.border="4px",i.style.resize="none",i.style.zIndex=100,i.style.display="block",i.value=this.userText},t.prototype.resizeText=function(e){this.virtualCtx.font=this.fontSize+"px "+this.fontFamily;for(var t=(this.pureText||this.userText).split(/\n/),i=e[0],o=0;o<t.length;o++){for(var n="",s=t[o].slice(),r="",a=0,l=0;l<s.length;l++){var h=this.virtualCtx.measureText(s[l]).width;a+=h,n+=s[l],a>i&&n.length>1?(r+="\n"+s[l],a=h,n=s[l]):a==i?(t[o]=s.slice(0,l+1)+"\n"+s.slice(l+1),r+=s[l]+"\n",a=0,n=""):r+=s[l]}t[o]=r}this.userText=t.join("\n")},t.prototype.resizeTextarea=function(){var e=document.getElementById(this.textAreaId);e.value=this.userText;var t=this.userText.split(/\n/),i=0;e.rows=t.length;for(var o=0;o<t.length;o++){var n=t[o].replace(/[^\u0000-\u00ff]/g,"aa").replace(/[A-Z]/g,"aa").length;n>i&&(i=n)}e.cols=i},t.prototype.getTextBbox=function(e){var t,i=this.getTextSize(),o=e.worldToClientPoint(this.drawPoints[0]);return t=this.drawPoints[1]?e.worldToClientPoint(this.drawPoints[1]):[o[0]+i[0],o[1]+i[1]],o.concat(t)},t.prototype.getTextSize=function(){var e=0;this.virtualCtx.font=this.fontSize+"px "+this.fontFamily;for(var t,i=this.userText.split(/\n/),o=0;o<i.length;o++)(t=this.virtualCtx.measureText(i[o])).width>e&&(e=t.width);return[e,i.length*this.fontSize]},t.prototype.getEndPt=function(e){var t=this.getTextBbox(e);return[t[2],t[3]]},t.prototype.getGrips=function(e){var t=e.worldToClientPoint(this.drawPoints[0]);if(this.drawPoints[1]){n=e.worldToClientPoint(this.drawPoints[1]);var i=[(t[0]+n[0])/2,(t[1]+n[1])/2]}else var o=this.getTextBbox(e),n=(i=[(o[2]+o[0])/2,(o[3]+o[1])/2],[o[2],o[3]]);var s=[];return s.push(t[0],t[1]),s.push(t[0],i[1]),s.push(t[0],n[1]),s.push(i[0],n[1]),s.push(n[0],n[1]),s.push(n[0],i[1]),s.push(n[0],t[1]),s.push(i[0],t[1]),s},t}($t),Ei=zt,Bi=function(e){function t(t,i,o){var n=e.call(this)||this;return n.editorMode=-1,n.rotation=i,n.worldPoint=[],n.drawPoints=o,n.markupManager=t,n}return Zt(t,e),t.prototype.begin=function(e,i,o,n){this.startX=i,this.startY=o,this.textAreaId="";var s=!0;null==this.userText&&(s=this.initDom(e)),s&&""==t.lastTextareaId&&(this.createDiv(t.divId),this.insertTextArea2Dom(e),this.addKeyDownListener(e),this.addInputListener(e))},t.prototype.onEditing=function(e,t,i,o){},t.prototype.end=function(e,t,i,o){return Ei.FINISHED},t.prototype.onExit=function(e){""!=t.lastTextareaId&&(this.removeTextAreaInDom(t.lastTextareaId),t.lastTextareaId="")},t.prototype.initDom=function(e){if(""!=t.lastTextareaId){var i=document.getElementById(t.lastTextareaId),o=i.value.trim();if(""==o)this.removeTextAreaInDom(t.lastTextareaId);else{var n=e.wrapDom.getBoundingClientRect(),s=parseInt(i.style.left.split("px")[0]),r=parseInt(i.style.top.split("px")[0]),a=[s-n.left,r-n.top],l=this.drawPoints&&this.drawPoints[0]||this.worldPoint!==[]&&this.worldPoint||e.clientToWorldPoint(a),h=i.style.color,c=e.markupManager.getFontSize(),d=i.style.fontFamily,g=new fi(l,o,h,c,d,this.rotation||0,t.lastTextareaId);this.size&&(g.setPureText(o),this.setPureText(o),g.resizeText(this.size)),this.rotation=0,this.hideTextArea(t.lastTextareaId),this.addMarkup(e,g),g=null,this.redraw(e)}return t.lastTextareaId="",!1}return!0},t.prototype.createDiv=function(e){if(null==document.getElementById(e)){console.log("Create div in dom.");var i=document.createElement("div");i.addEventListener("mousedown",(function(){event.stopImmediatePropagation()})),i.addEventListener("mouseup",(function(){event.stopImmediatePropagation()})),i.addEventListener("mousemove",(function(){event.stopImmediatePropagation()})),i.setAttribute("id",t.divId),i.style.position="absolute",i.style.left="0",i.style.top="0",this.markupManager.viewer.wrapDom.appendChild(i);var o=document.createElement("span");o.id="box",o.style.visibility="hidden",i.appendChild(o);var n=document.createElement("span");o.id="boxEdit",o.style.visibility="hidden",o.style.wordBreak="break-all",o.style.display="inline-block",i.appendChild(n)}},t.prototype.setEditBox=function(e){this.size=e},t.prototype.hideTextArea=function(e){var t=document.getElementById(e);t.blur(),t.style.display="none"},t.prototype.showTextArea=function(e){document.getElementById(e).style.display="block"},t.prototype.setUserText=function(e){this.userText=e},t.prototype.setPureText=function(e){this.pureText=e},t.prototype.addKeyDownListener=function(e){var t=this,i=document.getElementById(this.textAreaId);i&&i.addEventListener("keydown",(function(i){return t.keyDownFunction(e,i)}),!0)},t.prototype.addInputListener=function(e){var t=this,i=document.getElementById(this.textAreaId);i&&(i.addEventListener("input",(function(o){t.resize(i,e)})),i.addEventListener("blur",(function(e){})))},t.prototype.resize=function(e,i){var o=e.value.split(/\n/),n=document.querySelectorAll("#"+t.divId+" span")[0];n.innerText=e.value,n.style.fontSize=i.markupManager.getFontSize()+"px",e.style.width=n.offsetWidth+20+"px",e.rows=o.length},t.prototype.keyDownFunction=function(e,t){var i=document.getElementById(this.textAreaId);13==t.keyCode&&(i.rows=i.rows+1,console.log("Key enter pressed."))},t.prototype.addMouseDownListener=function(){var e=document.getElementById(this.textAreaId);e&&e.addEventListener("click",(function(e){console.log("Mouse click textarea now.")}))},t.prototype.createTextArea=function(e){var t=[this.startX,this.startY];this.worldPoint=e.clientToWorldPoint(t);var i=document.createElement("textArea");i.setAttribute("id",this.textAreaId),i.setAttribute("maxlength",999),i.value=null==this.userText?"":this.userText,i.style.color=e.markupManager.getColor(),i.style.position="fixed",i.style.lineHeight="100%",i.style.width="10px",i.style.paddingLeft="6px",i.style.overflow="hidden",i.style.webkitUserSelect="auto",null!=this.userText?this.resize(i,e):i.rows="1";var o=e.wrapDom.getBoundingClientRect();return i.style.left=t[0]+o.left+"px",i.style.top=t[1]+o.top+"px",i.style.fontFamily=e.markupManager.getFontFamily(),i.style.fontSize=e.markupManager.getFontSize()+"px",i.style.border="1px solid red",i.style.background="transparent",i.style.outline="none",i.style.resize="none",i.style.zIndex=100,i.style.display="block",i},t.prototype.insertTextArea2Dom=function(e){var i=document.getElementById(t.divId),o=i.childElementCount+1;this.textAreaId="textArea_"+o;var n=this.createTextArea(e);this.textArea=n,i.appendChild(n),n.focus(),t.lastTextareaId=this.textAreaId},t.prototype.reposition=function(e){var t=e.worldToClientPoint(this.worldPoint),i=e.wrapDom.getBoundingClientRect();this.textArea.style.left=t[0]+i.left+"px",this.textArea.style.top=t[1]+i.top+"px"},t.prototype.removeTextAreaInDom=function(e){var i=document.getElementById(t.divId),o=document.getElementById(e);try{i.removeChild(o)}catch(e){}},t.lastTextareaId="",t.divId="bf-drawing-textEditor",t}(_t),Ii=function(e){function t(t,i,o,n,s,r){var a=e.call(this)||this;return a.rotation=n||0,a.close=r||!1,a.fillStyle=s,a.markupType="Polyline",a.drawPoints=t,a.strokeStyle=i,a.lineWidth=o,a.editPt=null,a.bNeedHitByBbox=!1,a}return Zt(t,e),t.prototype.draw=function(e,t,i,o){if(!(this.drawPoints.length<2)){var n=e.markupManager.getMarkupCenter(e,o);n||(n=[0,0]),t.save(),t.translate(n[0],n[1]),t.rotate(this.rotation),t.beginPath(),t.lineJoin="round",i.init(n,this.rotation),i.ctx.lineWidth=Ri.isMobile?18:this.lineWidth+i.lineWidth;for(var s=1,r=this.drawPoints.length;s<r;s++){var a=e.worldToClientPoint([this.drawPoints[s-1][0],this.drawPoints[s-1][1],this.drawPoints[s-1][2]]),l=e.worldToClientPoint([this.drawPoints[s][0],this.drawPoints[s][1],this.drawPoints[s][2]]);1==s&&t.moveTo(a[0]-n[0],a[1]-n[1]),t.lineTo(l[0]-n[0],l[1]-n[1]),i.drawPolyline(a,l,n,this.rotation,o)}this.close&&this.fillStyle&&(t.fill(),this.bNeedHitByBbox=!0),t.stroke(),t.restore(),i.ctx.restore()}},t.prototype.shouldClose=function(e,t,i){if(this.drawPoints.length<3)return!1;var o=e.worldToClientPoint([this.drawPoints[0][0],this.drawPoints[0][1],this.drawPoints[0][2]]);return gi.distanceByArr(o,[t,i])<5?(this.close=!0,!0):(this.close=!1,!1)},t.prototype.setPoints=function(e){this.drawPoints=e},t.prototype.addPoint=function(e){this.drawPoints.push(e)},t.prototype.getStartPoint=function(){return this.drawPoints[0]},t.prototype.popPoint=function(){this.drawPoints.pop()},t.prototype.isEmpty=function(){return 0==this.drawPoints.length},t.prototype.getPoints=function(){return this.drawPoints},t.prototype.getGrips=function(e,t){if(null==t)return this.drawPoints;var i=e.markupManager.getMarkupBbox(e,t),o=[i[0],i[1]],n=[i[2],i[3]],s=[(o[0]+n[0])/2,(o[1]+n[1])/2],r=[];return r.push(o[0],o[1]),r.push(o[0],s[1]),r.push(o[0],n[1]),r.push(s[0],n[1]),r.push(n[0],n[1]),r.push(n[0],s[1]),r.push(n[0],o[1]),r.push(s[0],o[1]),r},t}($t),yi=zt,Si=function(e){function t(t){var i=e.call(this)||this;return i.markupManager=t,i.bFirstCloudMarkup=!0,i.uncertainty=!1,i}return Zt(t,e),t.prototype.begin=function(e,t,i,o){if(this.bFirstCloudMarkup){if(e.markupManager.hitTest(e,t,i)>-1)return;var n=e.markupManager.getColor(),s=e.markupManager.getLineWidth(),r=e.markupManager.getFillStyleState()?e.markupManager.getFillColor():void 0;this.markup=new Ii([],n,s,0,r),this.bFirstCloudMarkup=!1}if(this.markup.shouldClose(e,t,i))this.addMarkup(e,this.markup),this.markup=null,this.redraw(e),this.bFirstCloudMarkup=!0;else{var a=e.clientToWorldPoint([t,i]);this.markup.popPoint(),this.markup.addPoint(a)}this.uncertainty=!1},t.prototype.onEditing=function(e,t,i,o){if(!this.bFirstCloudMarkup){var n=void 0;n=this.markup.shouldClose(e,t,i)?this.markup.getStartPoint():e.clientToWorldPoint([t,i]),this.uncertainty&&this.markup.drawPoints.length>1?this.markup.popPoint():this.uncertainty=!0,this.markup.addPoint(n),this.redraw(e)}},t.prototype.onMouseMove=function(e,t,i,o){this.onEditing(e,t,i,o)},t.prototype.end=function(e,t,i,o){if(this.bFirstCloudMarkup)return yi.FINISHED},t.prototype.onMouseRightClick=function(e,t){this.bFirstCloudMarkup||(this.markup.popPoint(),this.markup.drawPoints.length>1&&this.addMarkup(e,this.markup),this.markup=null,this.redraw(e),this.bFirstCloudMarkup=!0)},t.prototype.onDoubleClick=function(e,t){this.bFirstCloudMarkup||(this.markup.popPoint(),this.markup.drawPoints.length>1&&this.addMarkup(e,this.markup),this.markup=null,this.redraw(e),this.bFirstCloudMarkup=!0)},t.prototype.getIsEndDrawing=function(){return this.bFirstCloudMarkup},t}(_t),Mi=zt,vi=function(){function e(e,t,i,o,n){this.canvas=e,this.MarkupVirtualPad=i,this.modelViewer=n,this.ctx=e.getContext("2d"),this.markupManager=t,this.setMarkupType("arrow"),this.curIndex=-1,this.editIndex=-1,this.preEdit=-1,this.inEditMode=!1,this.currentGrip=-1,this.bFirstClick=!0,this.firstPos=[],this.touchPos=[],this.device=o,this.hightLightColor="yellow",this.isEndDrawingForRightClick=!0,new Bi(this.markupManager).createDiv(Bi.divId)}return e.prototype.onDrawing=function(e,t,i){if(this.tool.onDrawing(e,t,this.MarkupVirtualPad,this.curIndex),this.curIndex!=this.highLightId&&this.highLightId>=0){var o=e.markupManager.get(this.highLightId);this.canvas.style.cursor="",this.highLightId=-1}if(this.curIndex>=0){if(!(o=e.markupManager.get(this.curIndex)))return;i&&e.markupManager.hitTest(e,i[0],i[1])==this.curIndex&&e.isEnableAnnotationPick&&(this.canvas.style.cursor="pointer",this.highLightId=this.curIndex)}if(this.editIndex>=0){if(0==e.markupManager.markups.length)return this.editIndex,!1;var n=e.markupManager.getMarkupBbox(e,this.editIndex);if(!n)return;var s=[n[0],n[1]],r=[n[2],n[3]],a=(o=e.markupManager.get(this.editIndex)).getGrips(e,this.editIndex),l=e.markupManager.getMarkupCenter(e,this.editIndex);if(!l)return;t.save(),t.translate(l[0],l[1]),"Arrow"!=o.markupType&&t.rotate(o.rotation),t.beginPath(),t.lineWidth="1",t.strokeStyle="red",t.fillStyle="#ffffff";var h=(o.lineWidth||0)/2;4!=a.length&&(e.operationTypes&&!e.operationTypes.includes("Move")&&(t.strokeStyle="#999999"),t.strokeRect(-.5*(r[0]-s[0])-h,-.5*(r[1]-s[1])-h,r[0]-s[0]+2*h,r[1]-s[1]+2*h),t.strokeStyle="red",e.operationTypes&&!e.operationTypes.includes("Rotate")&&(t.strokeStyle="#ffffff",t.fillStyle="#999999"),t.arc(0,s[1]-l[1]-20,6,0,2*Math.PI,!1),t.fill(),t.stroke(),t.closePath(),t.beginPath(),t.arc(0,s[1]-l[1]-20,3,.5*Math.PI,1.8*Math.PI,!1),t.moveTo(3,s[1]-l[1]-21),t.lineTo(.5,s[1]-l[1]-19.5),t.moveTo(3,s[1]-l[1]-21),t.lineTo(3,s[1]-l[1]-24.5),t.stroke()),t.closePath(),t.strokeStyle="red",t.fillStyle="#ffffff";var c=void 0,d=void 0;if("Arrow"==o.markupType){e.operationTypes&&!e.operationTypes.includes("Stretch")&&(t.strokeStyle="#999999");var g=e.markupManager.getMarkupSize(e,this.editIndex),u=Math.sqrt(g[0]*g[0]+g[1]*g[1]),p=g[0]/u*3,A=g[1]/u*3;t.beginPath(),t.arc(a[0]-l[0]+(a[0]<a[2]?-p/2:p/2),a[1]-l[1]+(a[1]<a[3]?-A/2:A/2),4,0,2*Math.PI,!1),t.fill(),t.stroke(),t.closePath(),t.beginPath(),t.arc(a[2]-l[0]+(a[0]<a[2]?p:-p),a[3]-l[1]+(a[1]<a[3]?A:-A),4,0,2*Math.PI,!1),t.fill(),t.stroke(),t.closePath()}else{e.operationTypes&&!e.operationTypes.includes("Rotate")&&(t.strokeStyle="#999999"),t.moveTo(0,s[1]-l[1]),t.lineTo(0,s[1]-l[1]-15),t.stroke();for(var m=0;m<a.length;m+=2){t.beginPath(),e.operationTypes&&!e.operationTypes.includes("Stretch")?t.strokeStyle="#999999":t.strokeStyle="red";var w=[a[m],a[m+1]];if("Text"==o.markupType)c=1,d=1;else{var C=e.worldToClientPoint(o.drawPoints[0]),f=e.worldToClientPoint(o.drawPoints[1]);c=C[0]<f[0]?1:-1,d=C[1]<f[1]?1:-1}switch(m){case 0:t.arc(w[0]-l[0]-h*c,w[1]-l[1]-h*d,4,0,2*Math.PI,!1);break;case 2:t.arc(w[0]-l[0]-h*c,w[1]-l[1],4,0,2*Math.PI,!1);break;case 4:t.arc(w[0]-l[0]-h*c,w[1]-l[1]+h*d,4,0,2*Math.PI,!1);break;case 6:t.arc(w[0]-l[0],w[1]-l[1]+h*d,4,0,2*Math.PI,!1);break;case 8:t.arc(w[0]-l[0]+h*c,w[1]-l[1]+h*d,4,0,2*Math.PI,!1);break;case 10:t.arc(w[0]-l[0]+h*c,w[1]-l[1],4,0,2*Math.PI,!1);break;case 12:t.arc(w[0]-l[0]+h*c,w[1]-l[1]-h*d,4,0,2*Math.PI,!1);break;case 14:t.arc(w[0]-l[0],w[1]-l[1]-h*d,4,0,2*Math.PI,!1)}t.fill(),t.stroke(),t.closePath()}}t.restore(),this.MarkupVirtualPad.drawEdit(s,r,l,o,a,this.editIndex,p,A,h,[c,d])}},e.prototype.canCreateMarkup=function(e){if(-1==this.curIndex)return!0;var t=e.markupManager.get(this.curIndex);if(!t)return!0;var i=t.getGrips(e);return this.editIndex!=this.curIndex&&0!=i.length&&"Text"!=t.markupType},e.prototype.setMarkupType=function(e){if(!Ri.isMobile||"cloud"!==e&&"polyline"!==e){switch(this.tool&&this.tool.onExit(),this.crtMarkupType=e,this.start=!1,e){case"ellips":this.tool=new ii(this.markupManager);break;case"rectangle":this.tool=new si(this.markupManager);break;case"arrow":this.tool=new li(this.markupManager);break;case"cross":this.tool=new di(this.markupManager);break;case"cloud":this.tool=new Ai(this.markupManager);break;case"cloud-rect":this.tool=new Ci(this.markupManager);break;case"text":this.tool=new Bi(this.markupManager);break;case"polyline":this.tool=new Si(this.markupManager);break;default:console.log("Current type is not supported.")}this.tool.redraw=this.redraw.bind(this),this.tool.type=e}},e.prototype.begin=function(e,t,i,o){if(this.modelViewer&&"ViewerDrawing"===this.modelViewer.viewerType&&this.modelViewer.snapIsEnabled){var n=this.modelViewer._drawingViewer.snapToPoint(t,i),s=this.modelViewer._drawingViewer.toScreenPoint([n.GetPoint()[0],n.GetPoint()[1]]);t=s[0],i=s[1]}else this.modelViewer&&"Viewer3D"===this.modelViewer.viewerType&&this.modelViewer.snap&&(t=this.modelViewer.snap.context.hoverPosition.x,i=this.modelViewer.snap.context.hoverPosition.y);this.curIndex=e.markupManager.hitTest(e,t,i,!0);var r=this.MarkupVirtualPad.isEdge(t,i);if(!e.isEnableAnnotationPick||this.curIndex<0&&this.canCreateMarkup(e)&&!r){if(this.editIndex>-1)return this.editIndex=-1,void this.redraw(e);if(o==Mi.LelftButton){if(this.start=!0,this.textMarkupTool)return this.textMarkupTool.initDom(e),this.textMarkupTool=null,void this.redraw(e);this.tool.begin(e,t,i,o)}this.start&&o==Mi.RightButton&&this.tool.begin(e,t,i,o)}this.bFirstClick=!0;var a=this.editIndex;if(this.preEdit=a,this.curIndex>=0){var l=e.markupManager.get(this.curIndex).markupType;if(Ri.isMobile&&("Cloud"===l||"Polyline"===l))return;if(e.hasOwnProperty("isEnableAnnotationPick")&&!e.isEnableAnnotationPick)return;this.editIndex=this.curIndex,this.inEditMode=!0,this.redraw(e)}else this.editIndex=-1,this.redraw(e);this.editIndex!=a&&e.onSelectChange(this.editIndex)},e.prototype.onEditing=function(e,t,i,o){if(this.start?-1!=this.curIndex&&this.editIndex==this.curIndex||this.tool.onEditing(e,t,i,o):this.tool.onMouseMove(e,t,i,o),this.inEditMode){var n=e.markupManager.hitGrip(e,[t,i],this.editIndex);if(this.bFirstClick){this.firstPos=[t,i],this.bFirstClick=!1,this.currentGrip=n>=0?n:-1;var s=e.markupManager.get(this.editIndex);if(!s)return;return s.originPoints=s.getPoints(),s.originRotation=s.rotation,"Text"==s.markupType&&(this.editIndex==this.preEdit&&s.userText&&s.originUserText&&this.currentGrip<9?s.userText=s.originUserText:-1!=this.currentGrip&&this.currentGrip<9&&(s.originUserText=s.userText)),s.controlPt&&(s.originControlPt=s.controlPt),void(s.editPt&&(s.originEditPt=s.editPt))}var r=[t,i];9==this.currentGrip?e.operationTypes&&e.operationTypes.includes("Rotate")&&(e.markupManager.gripRotate(e,this.editIndex,this.firstPos,r),this.redraw(e,r)):this.currentGrip>=0&&this.currentGrip<9?e.operationTypes&&e.operationTypes.includes("Stretch")&&(e.markupManager.gripDragging(e,this.editIndex,this.currentGrip,this.firstPos,r),this.redraw(e,r)):e.operationTypes&&e.operationTypes.includes("Move")&&(e.markupManager.translatePos(e,this.editIndex,this.firstPos,r),this.redraw(e,r))}else this.bFirstClick=!0,this.currentGrip=-1,this.curIndex=e.markupManager.hitTest(e,t,i),this.redraw(e,[t,i])},e.prototype.end=function(e,t,i,o){if(this.modelViewer&&"ViewerDrawing"===this.modelViewer.viewerType&&this.modelViewer.snapIsEnabled){var n=this.modelViewer._drawingViewer.snapToPoint(t,i),s=this.modelViewer._drawingViewer.toScreenPoint([n.GetPoint()[0],n.GetPoint()[1]]);t=s[0],i=s[1]}else this.modelViewer&&"Viewer3D"===this.modelViewer.viewerType&&this.modelViewer.snap&&(t=this.modelViewer.snap.context.hoverPosition.x,i=this.modelViewer.snap.context.hoverPosition.y);this.onEditing(e,t,i,o),this.start&&(-1!=this.curIndex&&this.editIndex==this.curIndex||Mi.FINISHED==this.tool.end(e,t,i,o)&&(this.start=!1)),this.inEditMode&&(this.inEditMode=!1),this.start=!1},e.prototype.onExit=function(e){this.tool.onExit(e)},e.prototype.onMouseWheel=function(e,t){this.start},e.prototype.onKeyDown=function(e,t){this.editIndex>=0&&("Delete"==t.code||"Backspace"==t.code)&&e.operationTypes&&e.operationTypes.includes("Delete")&&(e.markupManager.remove(this.editIndex),this.curIndex=-1,this.editIndex=-1,this.redraw(e))},e.prototype.onClick=function(e,t){var i=this.formatEventOffset(e,t),o=e.markupManager.hitTest(e,i.x,i.y,!0);if(o>-1){var n=e.markupManager.get(o);if(0==t.button||2==t.button&&this.isEndDrawingForRightClick){var s={click:0==t.button?0:1,clientPosition:{x:t.clientX,y:t.clientY},screenPosition:{x:t.screenX,y:t.screenY},eventType:0==t.button?"Click":"RightClick"};e.onClick(Xt(Xt({},s),n))}}this.isEndDrawingForRightClick=!0},e.prototype.onDoubleClick=function(e,t){var i=this.formatEventOffset(e,t),o=e.markupManager.hitTest(e,i.x,i.y,!0);if(o>-1){var n=e.markupManager.get(o),s={clientPosition:{x:t.clientX,y:t.clientY},screenPosition:{x:t.screenX,y:t.screenY}};e.onDoubleClick(Xt(Xt({},s),n))}e.operationTypes&&e.operationTypes.includes("Edit")&&(this.tool.onDoubleClick&&this.tool.onDoubleClick(e,t),this.editText(e))},e.prototype.onDoubleTouch=function(e,t){e.operationTypes&&e.operationTypes.includes("Edit")&&(this.tool.onDoubleTouch&&this.tool.onDoubleTouch(e,t),this.editText(e))},e.prototype.editText=function(e){if(!(this.curIndex<0||null==this.curIndex)){var t=e.markupManager.get(this.curIndex);if(t){var i=t.getPoints();if("Text"==t.markupType){""!=Bi.lastTextareaId&&(this.textMarkupTool?this.textMarkupTool.initDom(e):this.tool.initDom(e));var o=new Bi(this.markupManager,t.rotation,i),n=e.worldToClientPoint([i[0][0],i[0][1],i[0][2]]);o.setUserText(t.getPureText()),this.tool.rotation=t.rotation,o.begin(e,n[0],n[1],Mi.LelftButton),o.setEditBox(t.getTextSize()),this.device.isMobileApple||this.device.isPc||setTimeout((function(){o.reposition(e)}),500),e.markupManager.remove(this.curIndex),this.highLightId=-1,this.curIndex=-1,this.editIndex=-1,this.textMarkupTool=o,this.redraw(e)}}}},e.prototype.onMouseDown=function(e,t){2==t.button?(e.startX=null,e.startY=null,this.isEndDrawingForRightClick=!0,(this.tool instanceof Si||this.tool instanceof Ai)&&(this.isEndDrawingForRightClick=this.tool.getIsEndDrawing()),this.tool.onMouseRightClick&&this.tool.onMouseRightClick(e,t)):this.begin(e,t.offsetX,t.offsetY,t.buttons)},e.prototype.onMouseMove=function(e,t){var i=this.formatEventOffset(e,t);this.onEditing(e,i.x,i.y,t.buttons)},e.prototype.onMouseUp=function(e,t,i){var o=this.formatEventOffset(e,t);e.markupManager.viewer.alwaysMode&&2==t.button&&(e.markupManager.hitTest(e,o.x,o.y,!0)>-1&&(t.preventDefault(),t.stopPropagation()));return this.end(e,o.x,o.y,t.buttons)},e.prototype.onTouchstart=function(e,t){var i=this.formatEventOffset(e,t);this.begin(e,i.x,i.y,1)},e.prototype.onTouchmove=function(e,t){var i=this.formatEventOffset(e,t);this.touchPos=[i.x,i.y],this.onEditing(e,i.x,i.y,1)},e.prototype.onTouchend=function(e,t){return this.end(e,this.touchPos[0],this.touchPos[1],1)},e.prototype.isPanMode=function(e){return e==Mi.MiddleButton||e==Mi.RightButton},e.prototype.formatEventOffset=function(e,t){var i,o,n=this.canvas.getBoundingClientRect();return Ri.isMobile?(i=t.touches[0].pageX-(n.x||n.left),o=t.touches[0].pageY-(n.y||n.top)):(i=t.clientX-(n.x||n.left),o=t.clientY-(n.y||n.top)),{x:i,y:o}},e.prototype.redraw=function(e,t){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.MarkupVirtualPad.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.MarkupVirtualPad.ctx.fillStyle="rgba(0,0,0,0)",this.MarkupVirtualPad.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.markupManager.draw(e,this.ctx),this.onDrawing(e,this.ctx,t)},e.prototype.getStart=function(){return this.start},e}(),xi=function(){function e(){}return e.markups2string=function(e){return JSON.stringify(e)},e.string2markups=function(e){var t=JSON.parse(e);return this.transform2markups(t)},e.transform2markups=function(e){for(var t=[],i=0;i<e.length;i++){var o=e[i],n=o.drawPoints,s=o.strokeStyle,r=o.lineWidth,a=o.fillStyle,l=o.close,h=o.userText,c=o.fontSize,d=o.rotation,g=o.fontFamily,u=o.textAreaId,p=o.center,A=o.markupId,m=o.controlPt,w=null;switch(o.markupType){case"Ellipse":w=new ei(n,s,r,d,a);break;case"Rectangle":w=new oi(n,s,r,d,a);break;case"Arrow":w=new ri(n,s,r);break;case"Cross":w=new hi(n,s,r,d);break;case"Cloud":w=new ui(n,s,r,m,d,a,l);break;case"CloudRect":w=new mi(n,s,r,d,a);break;case"Text":if(2==n.length&&"number"==typeof n[0]){if(w=new fi(n,h,s,c,g,d,u,p,!0),o.pureText){var C=w.getTextSize();w.resizeText(C)}}else w=new fi(n[0],h,s,c,g,d,u,p);break;case"Polyline":w=new Ii(n,s,r,d,a,l);break;default:console.log("Current type is not supported.")}A&&(w.markupId=A),t.push(w)}return t},e}(),bi=function(){function e(e,t){this.MarkupVirtualPad=e,this.viewer=t,this.markups=[],this.strokeStyle="red",this.lineWidth=3,this.fontSize=14,this.fontFamily="Arial",this.fillStyle="",this.enableFillStyle=!0}return e.prototype.toString=function(e){return xi.markups2string(e||this.markups)},e.prototype.fromString=function(e){return xi.string2markups(e)},e.prototype.add=function(e){e.markupId=Date.now(),this.markups.push(e)},e.prototype.setMarkups=function(e){this.markups=e.slice(),this.viewer.editor.editIndex=-1},e.prototype.clear=function(){this.markups=[],this.viewer.editor.tool.markup&&(this.viewer.editor.tool.markup.setPoints([]),this.viewer.editor.tool.bFirstCloudMarkup=!0)},e.prototype.draw=function(e,t){for(var i=this.markups,o=0,n=i.length;o<n;++o){var s=i[o];t.strokeStyle=s.strokeStyle,t.lineWidth=(Ri.isMobile,s.lineWidth),t.fillStyle=s.fillStyle,t.fontFamily=s.fontFamily,s.highLight&&(t.strokeStyle=s.highLight,s.highLight=null),s.draw(e,t,this.MarkupVirtualPad,o)}},e.prototype.getColor=function(){return this.strokeStyle},e.prototype.setColor=function(e){this.strokeStyle=e},e.prototype.getFillColor=function(){return this.fillStyle},e.prototype.setFillColor=function(e){this.enableFillStyle=!0,e.getRGBA&&(e=e.getRGBA()),this.fillStyle=e},e.prototype.setFillStyleState=function(e){this.enableFillStyle=e},e.prototype.getFillStyleState=function(){return this.enableFillStyle},e.prototype.getLineWidth=function(){return this.lineWidth},e.prototype.setLineWidth=function(e){this.lineWidth=e},e.prototype.getFont=function(){return this.font},e.prototype.getFontSize=function(){return this.fontSize},e.prototype.setFont=function(e){this.font=e},e.prototype.get=function(e){return this.markups[e]},e.prototype.remove=function(e){e<0||this.markups.splice(e,1)},e.prototype.hitTest=function(e,t,i,o){var n=e.isEnableAnnotationPick?this.MarkupVirtualPad.hitTest(t,i):-1;if(null==o||n>=0)return n;n=-1;for(var s=this.markups.length-1;s>=0;s--){var r=this.markups[s];if(0!=r.bNeedHitByBbox&&"rgba(255,255,255,0)"!=r.fillStyle){var a=this.getMarkupBbox(e,s),l=this.getMarkupCenter(e,s),h=gi.rotateAround([t,i],l,-r.rotation);if(1==!(h[0]<a[0]||h[0]>a[2]||h[1]<a[1]||h[1]>a[3])){n=s;break}}}return n},e.prototype.getMarkupBbox=function(e,t){var i=this.markups[t];if(!(t<0)&&i){var o=[Number.MAX_VALUE,Number.MAX_VALUE],n=[-Number.MAX_VALUE,-Number.MAX_VALUE],s=i.getPoints();if("Text"==i.markupType)return i.getTextBbox(e);i.editPt?s=s.concat(i.editPt):i.controlPt&&(s=s.concat(i.controlPt));for(var r=0;r<s.length;r++){var a=e.worldToClientPoint(s[r]);a[0]<o[0]&&(o[0]=a[0]),a[1]<o[1]&&(o[1]=a[1]),a[0]>n[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return o.concat(n)}},e.prototype.getMarkupCenter=function(e,t){var i=this.getMarkupBbox(e,t);if(i)return[(i[0]+i[2])/2,(i[1]+i[3])/2]},e.prototype.setFontSize=function(e){this.fontSize=e},e.prototype.getMarkupSize=function(e,t){var i=this.getMarkupBbox(e,t);return[Math.abs(i[2]-i[0]),Math.abs(i[3]-i[1])]},e.prototype.getFontFamily=function(){return this.fontFamily},e.prototype.setFontFamily=function(e){this.fontFamily=e},e.prototype.translatePos=function(e,t,i,o){var n=this.markups[t];if(n.setPoints(n.originPoints),n.editPt&&(n.editPt=n.originEditPt),n.controlPt&&(n.controlPt=n.originControlPt),this.getMarkupCenter(e,t)){for(var s=o[0]-i[0],r=o[1]-i[1],a=n.originPoints,l=[],h=[],c=0;c<a.length;c++)h[c]=e.worldToClientPoint(a[c]),h[c][0]+=s,h[c][1]+=r,l[c]=e.clientToWorldPoint(h[c]);if(n.setPoints(l),"Cloud"==n.markupType){var d=(n.editPt&&n.originEditPt||n.controlPt&&n.originControlPt).slice();if(d){var g=[];for(c=0;c<d.length;c++)g[c]=e.worldToClientPoint(d[c]),g[c][0]+=s,g[c][1]+=r,d[c]=e.clientToWorldPoint(g[c]);n.editPt?n.editPt=d:n.controlPt=d}}}},e.prototype.isPointInCircle=function(e,t,i){return gi.distanceByArr(e,t)<=i},e.prototype.hitGrip=function(e,t,i){return this.MarkupVirtualPad.hitGrip(t[0],t[1])},e.prototype.getX=function(e,t,i,o){return(o-t)/i+e},e.prototype.getY=function(e,t,i,o){return(o-e)*i+t},e.prototype.gripRotate=function(e,t,i,o){var n=this.markups[t];n.rotation=n.originRotation;var s=this.getMarkupCenter(e,t),r=Math.sqrt(Math.pow(i[0]-s[0],2)+Math.pow(i[1]-s[1],2)),a=Math.sqrt(Math.pow(o[0]-s[0],2)+Math.pow(o[1]-s[1],2)),l=Math.sqrt(Math.pow(o[0]-i[0],2)+Math.pow(o[1]-i[1],2)),h=(l*l-r*r-a*a)/(-2*r*a),c=Math.acos(h),d=(i[1]-s[1])/(i[0]-s[0]),g=this.getY(i[0],i[1],d,o[0]),u=this.getX(i[0],i[1],d,o[1]);i[0]>s[0]&&i[1]<s[1]?o[0]<u&&o[1]<g&&(c=2*Math.PI-c):i[0]>s[0]&&i[1]>s[1]?o[0]>u&&o[1]<g&&(c=2*Math.PI-c):i[0]<s[0]&&i[1]>s[1]?o[0]>u&&o[1]>g&&(c=2*Math.PI-c):i[0]<s[0]&&i[1]<s[1]&&o[0]<u&&o[1]>g&&(c=2*Math.PI-c),n.rotation=n.originRotation+c},e.prototype.rotateTransform=function(e,t,i,o,n){i=-(i%=2*Math.PI);var s,r,a=Math.sin(i),l=Math.cos(i),h=(s=o-e)*a+(r=n-t)*l;return[s=s*l-r*a+e,r=h+t]},e.prototype.gripDragging=function(e,t,i,o,n){var s=this.markups[t],r=s.originPoints;s.setPoints(r),s.originUserText&&(s.userText=s.originUserText);var a=s.getGrips(e,t),l=this.getMarkupSize(e,t),h=l.slice(),c=this.getMarkupCenter(e,t),d=c.slice();if("Arrow"==s.markupType){var g=n[0]-o[0],u=n[1]-o[1],p=e.worldToClientPoint(r[0]),A=e.worldToClientPoint(r[1]);switch(i){case 0:p[0]+=g,p[1]+=u;break;case 4:A[0]+=g,A[1]+=u;break;default:console.log("default grip id."+i)}return p=e.clientToWorldPoint(p),A=e.clientToWorldPoint(A),void s.setPoints([p,A])}var m=this.rotateTransform(o[0],o[1],s.rotation,n[0],n[1]),w=m[0]-o[0],C=m[1]-o[1];switch(i){case 0:d[0]+=.5*w*Math.cos(s.rotation),d[1]+=.5*w*Math.sin(s.rotation),d[0]-=.5*C*Math.sin(s.rotation),d[1]+=.5*C*Math.cos(s.rotation),h[1]-=C,h[0]-=w;break;case 1:d[0]+=.5*w*Math.cos(s.rotation),d[1]+=.5*w*Math.sin(s.rotation),h[0]-=w;break;case 2:d[0]+=.5*w*Math.cos(s.rotation),d[1]+=.5*w*Math.sin(s.rotation),d[0]-=.5*C*Math.sin(s.rotation),d[1]+=.5*C*Math.cos(s.rotation),h[1]+=C,h[0]-=w;break;case 3:d[0]-=.5*C*Math.sin(s.rotation),d[1]+=.5*C*Math.cos(s.rotation),h[1]+=C;break;case 4:d[0]+=.5*w*Math.cos(s.rotation),d[1]+=.5*w*Math.sin(s.rotation),d[0]-=.5*C*Math.sin(s.rotation),d[1]+=.5*C*Math.cos(s.rotation),h[0]+=w,h[1]+=C;break;case 5:d[0]+=.5*w*Math.cos(s.rotation),d[1]+=.5*w*Math.sin(s.rotation),h[0]+=w;break;case 6:d[0]+=.5*w*Math.cos(s.rotation),d[1]+=.5*w*Math.sin(s.rotation),d[0]-=.5*C*Math.sin(s.rotation),d[1]+=.5*C*Math.cos(s.rotation),h[1]-=C,h[0]+=w;break;case 7:d[0]-=.5*C*Math.sin(s.rotation),d[1]+=.5*C*Math.cos(s.rotation),h[1]-=C}if("Cloud"!=s.markupType&&"Polyline"!=s.markupType){var f=[d[0]-.5*h[0],d[1]-.5*h[1]],E=[d[0]+.5*h[0],d[1]+.5*h[1]];"Text"==s.markupType&&s.resizeText(h),f=e.clientToWorldPoint(f),E=e.clientToWorldPoint(E),s.setPoints([f,E])}else this.draggingMultipleGrip(e,s,i,o,n,w,C,a,l,h,c,d)},e.prototype.draggingMultipleGrip=function(e,t,i,o,n,s,r,a,l,h,c,d){var g=t.originPoints.slice(),u=c[0]-l[0]/2,p=c[1]-l[1]/2,A=d[0]-h[0]/2,m=d[1]-h[1]/2,w=function(t){for(var i=0;i<t.length;i++){var o=e.worldToClientPoint(t[i]),n=o[0],s=o[1],r=n-u,a=s-p;o[0]=r/l[0]*h[0]+A,o[1]=a/l[1]*h[1]+m,t[i]=e.clientToWorldPoint(o)}return t},C=w(g);if(t.setPoints(C),"Cloud"==t.markupType){var f=(t.originEditPt||t.originControlPt).slice();t.editPt=w(f)}},e}(),Ui=function(){function e(e,t,i){this.isMobile=i,this.canvas=document.createElement("canvas"),this.viewer=e,this.canvas.id="markupVirtual",this.canvas.width=t.clientWidth,this.canvas.height=t.clientHeight,document.body.appendChild(this.canvas),this.canvas.style.display="none",this.ctx=this.canvas.getContext("2d"),this.lineWidth=Ri.isMobile?18:2}return e.prototype.init=function(e,t){var i=this.ctx;i.save(),i.translate(e[0],e[1]),i.rotate(t),i.beginPath()},e.prototype.drawEdit=function(e,t,i,o,n,s,r,a,l,h){var c=this.ctx;if(c.save(),c.translate(i[0],i[1]),"Arrow"!=o.markupType&&c.rotate(o.rotation),c.beginPath(),c.lineWidth=o.lineWidth+2,c.fillStyle="rgba("+(2*s+2)+",255,255,1)",c.fillRect(-.5*(t[0]-e[0]),-.5*(t[1]-e[1]),t[0]-e[0],t[1]-e[1]),c.fillStyle=c.strokeStyle="rgba("+(2*s+2)+",100,255,1)",c.arc(0,e[1]-i[1]-20,13,0,2*Math.PI,!1),c.fill(),"Arrow"==o.markupType)c.fillStyle=c.strokeStyle="rgba("+(2*s+2)+",110,255,1)",c.beginPath(),c.arc(n[0]-i[0]+(n[0]<n[2]?-r/2:r/2),n[1]-i[1]+(n[1]<n[3]?-a/2:a/2),10,0,2*Math.PI,!1),c.fill(),c.stroke(),c.closePath(),c.fillStyle=c.strokeStyle="rgba("+(2*s+2)+",150,255,1)",c.beginPath(),c.arc(n[2]-i[0]+(n[0]<n[2]?r:-r),n[3]-i[1]+(n[1]<n[3]?a:-a),10,0,2*Math.PI,!1),c.fill(),c.stroke(),c.closePath();else for(var d=h[0],g=h[1],u=0;u<n.length;u+=2){c.fillStyle=c.strokeStyle="rgba("+(2*s+2)+","+(5*u+110)+",255,1)",c.beginPath();var p=[n[u],n[u+1]],A=this.isMobile?6:3;switch(u){case 0:c.arc(p[0]-i[0]-l*d,p[1]-i[1]-l*g,A,0,2*Math.PI,!1);break;case 2:c.arc(p[0]-i[0]-l*d,p[1]-i[1],A,0,2*Math.PI,!1);break;case 4:c.arc(p[0]-i[0]-l*d,p[1]-i[1]+l*g,A,0,2*Math.PI,!1);break;case 6:c.arc(p[0]-i[0],p[1]-i[1]+l*g,A,0,2*Math.PI,!1);break;case 8:c.arc(p[0]-i[0]+l*d,p[1]-i[1]+l*g,A,0,2*Math.PI,!1);break;case 10:c.arc(p[0]-i[0]+l*d,p[1]-i[1],A,0,2*Math.PI,!1);break;case 12:c.arc(p[0]-i[0]+l*d,p[1]-i[1]-l*g,A,0,2*Math.PI,!1);break;case 14:c.arc(p[0]-i[0],p[1]-i[1]-l*g,A,0,2*Math.PI,!1)}c.fill(),c.stroke(),c.closePath()}c.restore()},e.prototype.drawArrow=function(e,t,i,o,n,s,r,a,l,h,c,d,g,u){var p=t-s,A=i-r,m=this.ctx;m.save(),m.lineWidth=Ri.isMobile?18:e.lineWidth+this.lineWidth,m.strokeStyle="rgba("+(2*d+2)+",20,20,1)",m.fillStyle="rgba("+(2*d+2)+",20,255,1)",m.beginPath(),m.moveTo(t,i),m.lineTo(o,n),p=o+s,A=n+r,m.moveTo(p,A),m.lineTo(o,n),p=o+a,A=n+l,m.lineTo(p,A),m.stroke(),m.restore()},e.prototype.drawRect=function(e,t,i,o,n,s){var r=this.ctx;r.save(),r.translate(o[0],o[1]),r.rotate(n),r.beginPath(),r.lineWidth=Ri.isMobile?18:e.lineWidth+this.lineWidth,r.strokeStyle="rgba("+(2*s+2)+",10,10,1)",r.fillStyle="rgba("+(2*s+2)+",10,255,1)",r.rect(-.5*(i[0]-t[0]),-.5*(i[1]-t[1]),i[0]-t[0],i[1]-t[1]),r.closePath(),r.stroke(),r.restore()},e.prototype.drawCross=function(e,t,i,o,n){var s=this.ctx;s.save(),s.translate(i[0],i[1]),s.rotate(o),s.strokeStyle="rgba("+(2*n+2)+",30,30,1)",s.fillStyle="rgba("+(2*n+2)+",30,255,1)",s.beginPath(),s.moveTo(-.5*(t[0]-e[0]),-.5*(t[1]-e[1])),s.lineTo(.5*(t[0]-e[0]),.5*(t[1]-e[1])),s.moveTo(-.5*(t[0]-e[0]),.5*(t[1]-e[1])),s.lineTo(.5*(t[0]-e[0]),-.5*(t[1]-e[1])),s.stroke(),s.restore()},e.prototype.drawCloudRect=function(e,t,i,o,n){var s=this.ctx;s.moveTo(e,t),s.quadraticCurveTo(i[0],i[1],o[0],o[1])},e.prototype.drawEllips=function(e,t,i,o,n,s,r){var a=this.ctx;a.save(),a.strokeStyle="rgba("+(2*n+2)+",50,50,1)",a.fillStyle="rgba("+(2*n+2)+",50,255,1)",a.translate(i[0],i[1]),a.rotate(o),a.beginPath(),a.ellipse(0,0,s,r,0,0,2*Math.PI),a.closePath(),a.stroke(),a.restore()},e.prototype.drawPolyline=function(e,t,i,o,n){var s=this.ctx;s.strokeStyle="rgba("+(2*n+2)+",70,70,1)",s.moveTo(e[0]-i[0],e[1]-i[1]),s.lineTo(t[0]-i[0],t[1]-i[1]),s.stroke()},e.prototype.isEdge=function(e,t){var i=this.ctx.getImageData(e,t,1,1).data,o=i[0],n=i[1],s=i[2],r=i[3];return s==n&&n<100&&s%10==0&&o>=2&&255==r},e.prototype.hitTest=function(e,t){var i=this.ctx.getImageData(e,t,1,1).data,o=i[0],n=i[1],s=i[2],r=i[3];return o+n+s<3?-1:s==n&&n<100&&s%10==0&&o>=2&&255==r||255==s&&n>99?(o-2)/2:void 0},e.prototype.hitGrip=function(e,t){var i=this.ctx.getImageData(e,t,1,1).data,o=i[0],n=i[1],s=i[2];if(o+n+s+i[3]<3)return-1;if(255==s){if(100==n)return 9;if(255==n)return 10;if(n>100)return(n-110)/10}return-1},e}(),Di=zt,Ri=function(){function e(t,i){var o=this;this.getDevice=function(){var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),i=/(?:SymbianOS)/.test(e)||t,o=/(?:Android)/.test(e),n=/(?:Firefox)/.test(e),s=(/(?:Chrome|CriOS)/.test(e),/(?:iPad|PlayBook)/.test(e)||o&&!/(?:Mobile)/.test(e)||n&&/(?:Tablet)/.test(e));return{isPc:!(/(?:iPhone)/.test(e)&&!s||o||i||s),isMobileApple:/(?:iPhone|iPad)/.test(e)}},this.work=!1,this.alwaysMode=!1,this.restoreState=!1,this.firstTouch=0,this.modelViewer=t,this.canvas=document.createElement("canvas"),this.canvas.id="markup",this.canvas.style.zIndex=10,this.canvas.width=i.clientWidth,this.canvas.height=i.clientHeight,this.canvas.style.position="absolute",this.canvas.style.top="0",this.canvas.style.left="0",this.ctx=this.canvas.getContext("2d"),this.wrapDom=i,this.canvas.style.display="none",e.isMobile=!this.getDevice().isPc,i.appendChild(this.canvas),this.bindEvent();var n=this;this.viewer=t.getViewer?t.getViewer():t,this.viewer.wrapDom=i,this.MarkupVirtualPad=new Ui(this.viewer,i,e.isMobile),this.viewer.markupManager=this.markupManager=new bi(this.MarkupVirtualPad,this),this.editor=this.viewer.markupEditor=new vi(this.canvas,this.markupManager,this.MarkupVirtualPad,this.getDevice(),this.modelViewer),this.editor.markupManager=this.viewer.markupManager,this.viewer.onSelectChange=function(e){},this.viewer.onClick=function(e){},this.viewer.itemCompleted=function(e){},this.viewer.onDoubleClick=function(e){},this.viewer.isEnableAnnotationPick=!0,this.viewer.operationTypes=["Delete","Edit","Move","Rotate","Stretch"],this.initOnresize=window.onresize,window.onresize=function(){n.canvas.width=i.clientWidth,n.canvas.height=i.clientHeight,n.MarkupVirtualPad.canvas.width=i.clientWidth,n.MarkupVirtualPad.canvas.height=i.clientHeight,n.modelViewer.resize(),n.update(),"[object Function]"===toString.call(n.initOnresize)&&n.initOnresize()},e.isMobile&&(this.offsetHeight=this.wrapDom.offsetHeight,setInterval((function(){var e=o.wrapDom.offsetHeight;o.offsetHeight!=e&&(o.offsetHeight=e,o.resize())}),500))}return e.prototype.resize=function(){this.editor.tool.reposition&&this.editor.tool.reposition(this.viewer)},e.prototype.getContainerSize=function(){return this.wrapDom.getBoundingClientRect()},e.prototype.hideCanvas=function(){this.canvas.style.display="none"},e.prototype.showCanvas=function(){this.canvas.style.display="block"},e.prototype.startDrawing=function(){this.work=!0,this.alwaysMode=!1,this.showCanvas()},e.prototype.switchMode=function(){},e.prototype.initStyle=function(){var e=this.viewer.markupManager;e.markups=[],e.strokeStyle="red",e.lineWidth=3,e.fontSize=14,e.fontFamily="Arial",e.fillStyle="white",e.enableFillStyle=!1},e.prototype.update=function(){this.editor.redraw(this.viewer)},e.prototype.bindEvent=function(){this.getDevice().isPc?(this.wrapDom.addEventListener("dblclick",this.onDoubleClick.bind(this),!1),this.wrapDom.addEventListener("mousedown",this.onMouseDown.bind(this),!0),this.wrapDom.addEventListener("mouseup",this.onMouseUp.bind(this),!1),this.wrapDom.addEventListener("mousemove",this.onMouseMove.bind(this),!1),this.wrapDom.addEventListener("mousewheel",this.onMouseWheel.bind(this),!1),this.wrapDom.addEventListener("DOMMouseScroll",this.onMouseWheel.bind(this),!1),this.wrapDom.addEventListener("contextmenu",this.oncontextmenu.bind(this),!1)):(this.wrapDom.addEventListener("touchstart",this.onTouchstart.bind(this),!0),this.wrapDom.addEventListener("touchend",this.onTouchend.bind(this),!0),this.wrapDom.addEventListener("touchmove",this.onTouchmove.bind(this),!0)),document.addEventListener("keydown",this.onKeyDown.bind(this)),document.addEventListener("keyup",this.onKeyUp.bind(this))},e.prototype.endDrawing=function(){this.work=!1,this.clearAnnotations(),this.editor.redraw(this.viewer),this.hideCanvas(),this.switchMode(),this.restoreState=!1;var e=document.querySelector("#bf-drawing-textEditor");if(e){var t=e.querySelectorAll("textarea");t.length&&(t[t.length-1].style.display="none",t[t.length-1].value="")}},e.prototype.clearAnnotations=function(){this.markupManager.clear(),this.update()},e.prototype.removeSelectedAnnotation=function(){-1!=this.editor.editIndex&&(this.markupManager.remove(this.editor.editIndex),this.editor.editIndex=-1,this.update())},e.prototype.createSnapshot=function(e){},e.prototype.showAnnotation=function(){},e.prototype.setAnnotationType=function(e){this.editor.setMarkupType(e)},e.prototype.setAnnotationStyle=function(e){e["stroke-color"]&&this.markupManager.setColor(e["stroke-color"]),e["font-size"]&&this.markupManager.setFontSize(e["font-size"]),e["stroke-width"]&&this.markupManager.setLineWidth(e["stroke-width"]),e["fill-color"]&&this.markupManager.setFillColor(e["fill-color"]),e["font-family"]&&this.markupManager.setFontFamily(e["font-family"])},e.prototype.getAnnotationList=function(){return this.markupManager.markups.slice()},e.prototype.setAnnotationList=function(e){var t=e[0];if(!t)return this.clearAnnotations();if(t.drawPoints&&"number"==typeof t.drawPoints[0])for(var i=0;i<e.length;i++){for(var o=e[i].drawPoints,n=[],s=0;s<o.length;s+=2)n.push([o[s],o[s+1]]);e[i].drawPoints=n}t&&t.draw||(e=xi.transform2markups(e)),this.markupManager.setMarkups(e),this.restoreState=!0,this.showCanvas(),this.update()},e.prototype.editAnnotationEnd=function(){this.endDrawing()},e.prototype.getCurrentState=function(){return{annotationList:this.getAnnotationList(),state:this.modelViewer.getCurrentState()}},e.prototype.transform=function(e){return e},e.prototype.setState=function(e){var t=this;this.clearAnnotations(),this.modelViewer.setState(e.state),setTimeout((function(){if("string"==typeof e.annotationList){var i=t.markupManager.fromString(e.annotationList);t.setAnnotationList(i)}else e.annotationList[0].id?t.setAnnotationList(t.transform(e.annotationList)):t.setAnnotationList(e.annotationList)}),1500)},e.prototype.oncontextmenu=function(e){e.preventDefault()},e.prototype.onDoubleClick=function(e){if(clearTimeout(this.clickStore),this.alwaysMode)return e.preventDefault(),void this.editor.onDoubleClick(this.viewer,e);!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),e.preventDefault(),this.editor.onDoubleClick(this.viewer,e)},e.prototype.onMouseDown=function(e){this.mouseDownClientX=e.clientX,this.mouseDownClientY=e.clientY,this.alwaysMode||(!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&e.target==this.canvas&&(e.preventDefault(),e.buttons==Di.LelftButton?(e.stopPropagation(),this.editor.onMouseDown(this.viewer,e)):this.editor.onMouseDown(this.viewer,e)))},e.prototype.onTouchstart=function(e){if(!this.alwaysMode&&"CANVAS"==e.target.tagName.toUpperCase()){var t=Date.now();t-this.firstTouch<500?this.editor.onDoubleTouch(this.viewer,e):(this.firstTouch=t,!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&e.target==this.canvas&&(e.preventDefault(),e.buttons==Di.LelftButton&&e.stopPropagation(),this.editor.onTouchstart(this.viewer,e),this.containerSize=this.getContainerSize()))}},e.prototype.onMouseMove=function(e){this.alwaysMode?this.update():this.work&&("Viewer3D"===this.modelViewer.viewerType&&this.modelViewer.snap||"ViewerDrawing"===this.modelViewer.viewerType&&this.modelViewer.snapIsEnabled||(e.preventDefault(),e.stopPropagation()),this.editor.onMouseMove(this.viewer,e))},e.prototype.onTouchmove=function(e){if(this.alwaysMode||"CANVAS"!=e.target.tagName.toUpperCase())this.update();else if(this.work){var t=e.touches[0],i=this.containerSize,o=i.left,n=i.top,s=i.width,r=i.height;e.preventDefault(),e.stopPropagation(),t.pageX>o&&t.pageX<o+s&&t.pageY>n&&t.pageY<n+r&&this.editor.onTouchmove(this.viewer,e)}},e.prototype.onTouchend=function(e){this.alwaysMode||"CANVAS"!=e.target.tagName.toUpperCase()||(!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&(e.preventDefault(),e.stopPropagation(),this.editor.onTouchend(this.viewer,e)))},e.prototype.onMouseWheel=function(e){this.alwaysMode||(!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&(e.preventDefault(),e.stopPropagation(),this.editor.onMouseWheel(this.viewer,e)))},e.prototype.onMouseUp=function(e){var t=this;clearTimeout(this.clickStore),this.mouseDownClientX!==e.clientX||this.mouseDownClientY!==e.clientY||this.editor.getStart()||(this.clickStore=setTimeout((function(){t.editor.onClick(t.viewer,e)}),500)),this.alwaysMode?this.editor.onMouseUp(this.viewer,e,!0):(!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&(e.preventDefault(),e.stopPropagation(),this.editor.onMouseUp(this.viewer,e,!0)))},e.prototype.onKeyDown=function(e){this.work&&("textarea"!=document.activeElement.tagName.toLowerCase()&&e.stopPropagation(),this.editor.onKeyDown(this.viewer,e))},e.prototype.onKeyUp=function(e){this.work&&"textarea"!=document.activeElement.tagName.toLowerCase()&&(e.preventDefault(),e.stopPropagation())},e}(),Vi=function(e){function t(t,i){var o=e.call(this,t,i)||this;return o.modelViewer.addEventListener("Rendered",(function(){o.update()})),o.viewer.clientToWorldPoint=function(e){return o.viewer.toWorldPoint(e)},o.viewer.worldToClientPoint=function(e){return e?o.viewer.toScreenPoint([e[0],e[1]]):[]},o}return Zt(t,e),t.prototype.getCurrentState=function(){return{annotationList:this.getAnnotationList(),state:JSON.parse(this.modelViewer.getCurrentState())}},t.prototype.startDrawing=function(){this.canvas.style.zIndex=10,this.work=!0,this.alwaysMode=!1,this.showCanvas(),this.switchMode()},t.prototype.onTouchstart=function(e){if(!this.alwaysMode){var t=Date.now();t-this.firstTouch<500?this.editor.onDoubleTouch(this.viewer,e):(this.firstTouch=t,!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&e.target==this.canvas&&e.touches.length<2&&(e.preventDefault(),this.editor.onTouchstart(this.viewer,e),this.containerSize=this.getContainerSize()))}},t.prototype.onTouchmove=function(e){if(this.alwaysMode)this.update();else if(this.work){var t=e.touches[0],i=this.containerSize,o=i.left,n=i.top,s=i.width,r=i.height;e.touches.length<2?(e.preventDefault(),e.stopPropagation(),t.pageX>o&&t.pageX<o+s&&t.pageY>n&&t.pageY<n+r&&this.editor.onTouchmove(this.viewer,e)):this.update()}},t.prototype.showAnnotation=function(){this.alwaysMode=!0,this.canvas.style.zIndex=5,this.editor.editIndex=-1,this.update(),this.showCanvas()},t.prototype.hideAnnotation=function(){this.hideCanvas()},t.prototype.setState=function(e){if("string"!=typeof e.state&&(e.state=JSON.stringify(e.state)),this.modelViewer.setState(e.state),"string"==typeof e.annotationList){var t=this.markupManager.fromString(e.annotationList);this.setAnnotationList(t)}else e.annotationList[0].id?this.setAnnotationList(this.transform(e.annotationList)):this.setAnnotationList(e.annotationList)},t.prototype.onMouseWheel=function(e){this.alwaysMode?this.update():(!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&(e.preventDefault(),this.update(),this.editor.onMouseWheel(this.viewer,e)))},t.prototype.createSnapshot=function(e){var t=this.viewer.snapshotPure(),i=document.createElement("canvas");i.width=this.wrapDom.clientWidth,i.height=this.wrapDom.clientHeight;var o=i.getContext("2d");o.beginPath(),o.fillStyle=this.wrapDom.style.background,o.fillRect(0,0,i.width,i.height),o.drawImage(t,0,0),o.drawImage(this.canvas,0,0),e(i.toDataURL())},t.prototype.switchMode=function(){},t}(Ri),Qi=function(e){function t(t,i){var o=e.call(this,t,i)||this;return o.modelViewer.addEventListener("Rendered",(function(){o.update()})),o.viewer.clientToWorldPoint=function(e){return o.viewer.views[o.modelViewer._defaultViewId].toWorldPoint(e)},o.viewer.worldToClientPoint=function(e){return e?o.viewer.views[o.modelViewer._defaultViewId].toScreenPoint([e[0],e[1]]):[]},o}return Zt(t,e),t.prototype.getCurrentState=function(){return{annotationList:this.getAnnotationList(),state:JSON.parse(this.modelViewer.getCurrentState())}},t.prototype.startDrawing=function(){this.canvas.style.zIndex=10,this.work=!0,this.alwaysMode=!1,this.showCanvas(),this.switchMode()},t.prototype.onTouchstart=function(e){if(!this.alwaysMode){var t=Date.now();t-this.firstTouch<500?this.editor.onDoubleTouch(this.viewer,e):(this.firstTouch=t,!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&e.target==this.canvas&&e.touches.length<2&&(e.preventDefault(),this.editor.onTouchstart(this.viewer,e),this.containerSize=this.getContainerSize()))}},t.prototype.onTouchmove=function(e){if(this.alwaysMode)this.update();else if(this.work){var t=e.touches[0],i=this.containerSize,o=i.left,n=i.top,s=i.width,r=i.height;e.touches.length<2?(e.preventDefault(),e.stopPropagation(),t.pageX>o&&t.pageX<o+s&&t.pageY>n&&t.pageY<n+r&&this.editor.onTouchmove(this.viewer,e)):this.update()}},t.prototype.showAnnotation=function(){this.alwaysMode=!0,this.canvas.style.zIndex=5,this.editor.editIndex=-1,this.update(),this.showCanvas()},t.prototype.hideAnnotation=function(){this.hideCanvas()},t.prototype.setState=function(e){if("string"!=typeof e.state&&(e.state=JSON.stringify(e.state)),this.modelViewer.setState(e.state),"string"==typeof e.annotationList){var t=this.markupManager.fromString(e.annotationList);this.setAnnotationList(t)}else e.annotationList[0].id?this.setAnnotationList(this.transform(e.annotationList)):this.setAnnotationList(e.annotationList)},t.prototype.onMouseWheel=function(e){this.alwaysMode?this.update():(!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&(e.preventDefault(),this.update(),this.editor.onMouseWheel(this.viewer,e)))},t.prototype.createSnapshot=function(e){var t=document.createElement("canvas");t.width=this.canvas.clientWidth,t.height=this.canvas.clientHeight;var i=t.getContext("2d");i.beginPath(),i.drawImage(this.canvas,0,0);var o=this;o.viewer.views[o.modelViewer._defaultViewId].snapshotPure().then((function(i){var n=document.createElement("canvas");n.width=o.wrapDom.clientWidth,n.height=o.wrapDom.clientHeight;var s=n.getContext("2d");s.beginPath(),s.fillStyle=o.wrapDom.style.background,s.fillRect(0,0,n.width,n.height),s.drawImage(i,0,0),s.drawImage(t,0,0),e(n.toDataURL())}))},t.prototype.switchMode=function(){},t}(Ri),ki=function(e){function t(t,i){var o=e.call(this,t,i)||this;return o.cameraControl=o.viewer.cameraControl,o.viewBox={width:1e3,height:1e3},o.viewer.clientToWorldPoint=function(e){var t={x:e[0],y:e[1],z:0},i=o.viewer.canvasToWorld(t);return[i.x,i.y,i.z]},o.viewer.worldToClientPoint=function(e){var t={x:e[0],y:e[1],z:e[2]||0},i=o.viewer.worldToCanvas(t);return[i.x,i.y]},o}return Zt(t,e),t.prototype.bindEvent=function(){this.getDevice().isPc?(this.wrapDom.addEventListener("dblclick",this.onDoubleClick.bind(this),!0),this.wrapDom.addEventListener("mousedown",this.onMouseDown.bind(this),!0),this.wrapDom.addEventListener("mouseup",this.onMouseUp.bind(this),!0),this.wrapDom.addEventListener("mousemove",this.onMouseMove.bind(this),!0),this.wrapDom.addEventListener("mousewheel",this.onMouseWheel.bind(this),!0),this.wrapDom.addEventListener("DOMMouseScroll",this.onMouseWheel.bind(this),!0),this.wrapDom.addEventListener("contextmenu",this.oncontextmenu.bind(this),!0),document.addEventListener("keydown",this.onKeyDown.bind(this),!0),document.addEventListener("keyup",this.onKeyUp.bind(this),!0)):(this.wrapDom.addEventListener("touchstart",this.onTouchstart.bind(this),!0),this.wrapDom.addEventListener("touchend",this.onTouchend.bind(this),!0),this.wrapDom.addEventListener("touchmove",this.onTouchmove.bind(this),!0))},t.prototype.showAnnotation=function(){this.alwaysMode=!0,this.canvas.style.zIndex=5,this.editor.editIndex=-1,this.update(),this.showCanvas()},t.prototype.createSnapshot=function(e){var t=this.wrapDom.querySelector(".bf-view canvas"),i=document.createElement("canvas");i.width=this.wrapDom.clientWidth,i.height=this.wrapDom.clientHeight;var o=i.getContext("2d");o.beginPath();var n=window.devicePixelRatio||1;o.drawImage(t,0,0,i.width*n,i.height*n,0,0,i.width,i.height),o.drawImage(this.canvas,0,0),e(i.toDataURL())},t.prototype.transform=function(e){for(var t=[],i=0;i<e.length;i++){var o,n=e[i],s=n.style,r=s["fill-opacity"];switch(n.shapeType){case 0:var a=this.getArrowPoints(n.size,n.position,-n.rotation);o=new ri(a,s["stroke-color"],s["stroke-width"],n.rotation);break;case 7:o=new mi(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation,r&&s["fill-color"]);break;case 4:var l=this.getCloudPoints(n);(o=new ui(l[0],s["stroke-color"],s["stroke-width"],l[1],n.rotation,r&&s["fill-color"],!0)).close=!0;break;case 1:o=new oi(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation,r&&s["fill-color"]);break;case 2:o=new ei(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation,r&&s["fill-color"]);break;case 3:o=new hi(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation);break;case 5:var h=this.worldToClient({x:n.position.x-.5*n.size.width,y:n.position.y+.5*n.size.height,z:n.position.z}),c=this.worldToClient(n.position),d=this.viewer.clientToWorldPoint([c.x,c.y]);o=new fi(this.viewer.clientToWorldPoint([h.x,h.y]),decodeURIComponent(n.text),s["stroke-color"],s["font-size"],s["font-family"],n.rotation,null,d)}t.push(o)}return t},t.prototype.getCloudPoints=function(e){for(var t=e.size.width/e.originSize.width,i=e.size.height/e.originSize.height,o=(new window.THREE.Matrix4).makeScale(t,i,1),n=(new window.THREE.Matrix4).makeRotationZ(-e.rotation),s=(new window.THREE.Matrix4).makeTranslation(e.position.x,e.position.y,e.position.z).multiply(n).multiply(o),r=e.shapePoints.split(","),a=[],l=[],h=!0,c=1;c<r.length;c+=2){var d=new window.THREE.Vector3,g=this.viewBoxToWorld({x:parseInt(r[c-1]),y:parseInt(r[c])},e.originSize);d.x=g.x,d.y=g.y,d.z=0,d.applyMatrix4(s);var u=this.worldToClient(d),p=this.viewer.clientToWorldPoint([u.x,u.y]);h?a.push(p):l.push(p),h=!h}return[a,l]},t.prototype.viewBoxToWorld=function(e,t){var i=t.width,o=t.height,n=this.viewBox.width,s=this.viewBox.height;return{x:e.x/n*i,y:e.y/s*o}},t.prototype.getDrawPoints=function(e,t){var i=this.worldToClient({x:t.x-.5*e.width,y:t.y-.5*e.height,z:t.z}),o=this.worldToClient({x:t.x+.5*e.width,y:t.y+.5*e.height,z:t.z});return[this.viewer.clientToWorldPoint([i.x,i.y]),this.viewer.clientToWorldPoint([o.x,o.y])]},t.prototype.getArrowPoints=function(e,t,i){var o=this.worldToClient({x:t.x-.5*e.width,y:t.y,z:t.z}),n=this.worldToClient({x:t.x+.5*e.width,y:t.y,z:t.z}),s=this.worldToClient(t);return o=this.markupManager.rotateTransform(s.x,s.y,i,o.x,o.y),n=this.markupManager.rotateTransform(s.x,s.y,i,n.x,n.y),[this.viewer.clientToWorldPoint(o),this.viewer.clientToWorldPoint(n)]},t.prototype.worldToClient=function(e){var t=this.getContainerOffsetToClient(this.wrapDom),i=this.cameraControl.getCamera(),o=new window.THREE.Vector3(e.x,e.y,e.z);return o.applyMatrix4(i.matrixWorld),o.sub(i.position),o.project(i),o.x=Math.floor(.5*(o.x+1)*t.width+.5),o.y=Math.floor(-.5*(o.y-1)*t.height+.5),o.z=0,o},t.prototype.getContainerOffsetToClient=function(e){var t,i;if(e!=document){var o=(i=e).getBoundingClientRect?function(e){var t=e.getBoundingClientRect(),i=document.body,o=document.documentElement,n=o.clientTop||i.clientTop,s=o.clientLeft||i.clientLeft,r=t.top-n,a=t.left-s;return{top:Math.round(r),left:Math.round(a)}}(i):function(e){for(var t=0,i=0;e;)t+=e.offsetTop,i+=e.offsetLeft,e=e.offsetParent;var o=document.body,n=document.documentElement;return{top:t-=window.pageYOffset||n.scrollTop||o.scrollTop,left:i-=window.pageXOffset||n.scrollLeft||o.scrollLeft}}(i);t={width:e.offsetWidth,height:e.offsetHeight,left:o.left,top:o.top}}else t={width:window.innerWidth,height:window.innerHeight,left:0,top:0};return t},t}(Ri),Fi=zt,Ti=function(e){function t(t,i){var o=e.call(this,t,i)||this;return o.absoluteBasePoint=null,o.screenBasePoint=null,o.zoomFactor={x:1,y:1},o.viewBox={width:1e3,height:1e3},o.viewer.clientToWorldPoint=function(e){var t=o.viewer.clientToWorld({x:e[0],y:e[1]});return[t.x,t.y]},o.viewer.worldToClientPoint=function(e){var t=o.viewer.worldToClient({x:e[0],y:e[1]});return[t.x,t.y]},o}return Zt(t,e),t.prototype.onMouseUp=function(e){!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&this.editor.onMouseUp(this.viewer,e)},t.prototype.setState=function(e){if(this.modelViewer.setState(e.state),"string"==typeof e.annotationList){var t=this.markupManager.fromString(e.annotationList);this.setAnnotationList(t)}else e.annotationList[0].id?this.setAnnotationList(this.transform(e.annotationList)):this.setAnnotationList(e.annotationList)},t.prototype.createSnapshot=function(e){var t=this;this.viewer._imageRender.createSnapshotAsync("",(function(i){t.getScreenSnapshot(i,e)}))},t.prototype.getScreenSnapshot=function(e,t){var i=document.createElement("canvas"),o=this.getContainerOffsetToClient(this.wrapDom);i.width=o.width,i.height=o.height;var n,s=i.getContext("2d"),r=this;if(t&&e)return(n=new Image).onload=function(){s.drawImage(n,0,0),s.drawImage(r.canvas,0,0);var e=i.toDataURL("image/png");i=s=null,t(e)},n.src=e,null;e&&((n=new Image).src=e,s.drawImage(n,0,0));s.drawImage(this.canvas,0,0);var a=i.toDataURL("image/png");return i=s=null,a},t.prototype.transform=function(e){for(var t=[],i=0;i<e.length;i++){var o,n=e[i],s=n.style,r=s["fill-opacity"];switch(n.shapeType){case 0:var a=this.getArrowPoints(n.size,n.position,-n.rotation);o=new ri(a,s["stroke-color"],s["stroke-width"],n.rotation);break;case 7:o=new mi(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation,r&&s["fill-color"]);break;case 4:var l=this.getCloudPoints(n);o=new ui(l[0],s["stroke-color"],s["stroke-width"],l[1],n.rotation,r&&s["fill-color"]);break;case 1:o=new oi(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation,r&&s["fill-color"]);break;case 2:o=new ei(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation,r&&s["fill-color"]);break;case 3:o=new hi(this.getDrawPoints(n.size,n.position),s["stroke-color"],s["stroke-width"],n.rotation);break;case 5:var h=this.worldToClient({x:n.position.x-.5*n.size.width,y:n.position.y+.5*n.size.height,z:n.position.z}),c=this.worldToClient(n.position),d=this.viewer.clientToWorldPoint([c.x,c.y]);o=new fi(this.viewer.clientToWorldPoint([h.x,h.y]),decodeURIComponent(n.text),s["stroke-color"],s["font-size"],s["font-family"],n.rotation,null,d)}t.push(o)}return t},t.prototype.getContainerOffsetToClient=function(e){var t,i;if(e!=document){var o=(i=e).getBoundingClientRect?function(e){var t=e.getBoundingClientRect(),i=document.body,o=document.documentElement,n=o.clientTop||i.clientTop,s=o.clientLeft||i.clientLeft,r=t.top-n,a=t.left-s;return{top:Math.round(r),left:Math.round(a)}}(i):function(e){for(var t=0,i=0;e;)t+=e.offsetTop,i+=e.offsetLeft,e=e.offsetParent;var o=document.body,n=document.documentElement;return{top:t-=window.pageYOffset||n.scrollTop||o.scrollTop,left:i-=window.pageXOffset||n.scrollLeft||o.scrollLeft}}(i);t={width:e.offsetWidth,height:e.offsetHeight,left:o.left,top:o.top}}else t={width:window.innerWidth,height:window.innerHeight,left:0,top:0};return t},t.prototype.getCloudPoints=function(e){for(var t=e.size.width/e.originSize.width,i=e.size.height/e.originSize.height,o=(new window.THREE.Matrix4).makeScale(t,i,1),n=(new window.THREE.Matrix4).makeRotationZ(-e.rotation),s=(new window.THREE.Matrix4).makeTranslation(e.position.x,e.position.y,e.position.z).multiply(n).multiply(o),r=e.shapePoints.split(","),a=[],l=[],h=!0,c=1;c<r.length;c+=2){var d=new window.THREE.Vector3,g=this.viewBoxToWorld({x:parseInt(r[c-1]),y:parseInt(r[c])},e.originSize);d.x=g.x,d.y=g.y,d.z=0,d.applyMatrix4(s);var u=this.worldToClient(d),p=this.viewer.clientToWorldPoint([u.x,u.y]);h?a.push(p):l.push(p),h=!h}return[a,l]},t.prototype.worldToClient=function(e){var t=this.getContainerOffsetToClient(this.wrapDom),i=new window.THREE.Vector3,o=this.absoluteBasePoint,n=this.screenBasePoint;return this.absoluteBasePoint||(o={x:0,y:0}),this.screenBasePoint||(n={x:.5*t.width,y:.5*t.height}),i.x=(e.x-o.x)*this.zoomFactor.x+n.x,i.y=(-e.y-o.y)*this.zoomFactor.y+n.y,i.z=0,i},t.prototype.viewBoxToWorld=function(e,t){var i=t.width,o=t.height,n=this.viewBox.width,s=this.viewBox.height;return{x:e.x/n*i,y:e.y/s*o}},t.prototype.getDrawPoints=function(e,t){var i=this.worldToClient({x:t.x-.5*e.width,y:t.y-.5*e.height,z:t.z}),o=this.worldToClient({x:t.x+.5*e.width,y:t.y+.5*e.height,z:t.z});return[this.viewer.clientToWorldPoint([i.x,i.y]),this.viewer.clientToWorldPoint([o.x,o.y])]},t.prototype.getArrowPoints=function(e,t,i){var o=this.worldToClient({x:t.x-.5*e.width,y:t.y,z:t.z}),n=this.worldToClient({x:t.x+.5*e.width,y:t.y,z:t.z}),s=this.worldToClient(t);return o=this.markupManager.rotateTransform(s.x,s.y,i,o.x,o.y),n=this.markupManager.rotateTransform(s.x,s.y,i,n.x,n.y),[this.viewer.clientToWorldPoint(o),this.viewer.clientToWorldPoint(n)]},t.prototype.onMouseDown=function(e){!this.work&&this.restoreState&&(this.restoreState=!1,this.endDrawing()),this.work&&e.target==this.canvas&&(e.preventDefault(),e.buttons==Fi.LelftButton?(e.stopPropagation(),this.editor.onMouseDown(this.viewer,e)):this.editor.onMouseDown(this.viewer,e))},t.prototype.onMouseWheel=function(e){this.work&&(e.preventDefault(),this.update(),this.editor.onMouseWheel(this.viewer,e))},t}(Ri);!function(){var t="Bimface.Plugins.Annotation.AnnotationManager",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation"),n=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),function(t){var i=t.viewer;this._opt=t,this.isShowAnnotation=!1,this.historyQueue=[],e.Bimface.Viewer.Viewer3D&&"Viewer3D"===i.viewerType?this._helper=new ki(i,i._opt.domElement):e.Bimface.Viewer.Viewer2D&&i instanceof e.Bimface.Viewer.Viewer2D?(this.isViewer2D=!0,this._helper=new Ti(i,i._opt.domElement.querySelector(".bf-image"))):e.Bimface.Viewer.ViewerPDF&&i instanceof e.Bimface.Viewer.ViewerPDF?this._helper=new Qi(i,i._opt.domElement.querySelector(".bf-pdf-outer")):this._helper=new Vi(i,i._opt.domElement),this._helper.viewer.onSelectChange=e=>{this.onSelectChange(e)},this._helper.viewer.itemCompleted=e=>{this.itemCompleted(e)},this.init()});n.prototype={init:function(){var e=this._opt;e.lineWidth&&this.setLineWidth(e.lineWidth),e.lineColor&&this.setLineColor(e.lineColor),e.fillColor&&this.setFillColor(e.fillColor),e.fontFamily&&this.setFontFamily(e.fontFamily),e.fontSize&&this.setFontSize(e.fontSize)},exit:function(){this.endDrawing()},onSelectChange(e){},onClick(e){this._helper.viewer.onClick=e},itemCompleted(e){this._helper.viewer.itemCompleted=e},onDoubleClick(e){this._helper.viewer.onDoubleClick=e},enablePick(e){this._helper.viewer.isEnableAnnotationPick=e},setOperationMode(e){"[object Array]"===Object.prototype.toString.call(e)&&(this._helper.viewer.operationTypes=e)},restoreOperationMode(){this._helper.viewer.operationTypes=["Delete","Edit","Move","Rotate","Stretch"]},getAnnotationList:function(){return this._helper.getAnnotationList()},setAnnotationList:function(e){e.length>0&&e[0].id&&(e=this._helper.transform(e)),this._helper.setAnnotationList(e),this._helper.update()},setState:function(e){this._helper.setState(e)},createSnapshot:function(e){this._helper.createSnapshot(e)},startDrawing:function(){this._helper.startDrawing();var e=document.querySelector(".bf-toolbar-select");e&&(e.style.display="none")},endDrawing:function(){i.send(t,"endDrawing"),this._helper.editAnnotationEnd(),this.isShowAnnotation=!1;var e=document.querySelector(".bf-toolbar-select");e&&(e.style.display="block")},clear:function(){i.send(t,"clear"),this._helper.clearAnnotations()},resize:function(){},setAnnotationType:function(e){i.send(t,"setAnnotationType"),this._helper.setAnnotationType(e.toLocaleLowerCase())},setLineWidth:function(e){i.send(t,"setLineWidth"),this._helper.setAnnotationStyle({"stroke-width":e})},setLineColor:function(e){i.send(t,"setLineColor"),this._helper.setAnnotationStyle({"stroke-color":`${e.getRGBA()}`})},setFillColor:function(e){i.send(t,"setFillColor"),this._helper.setAnnotationStyle({"fill-color":`${e.getRGBA()}`})},setFontFamily:function(e){i.send(t,"setFontFamily"),this._helper.setAnnotationStyle({"font-family":e})},setFontSize:function(e){i.send(t,"setFontSize"),this._helper.setAnnotationStyle({"font-size":e})},removeSelectedAnnotation:function(){this._helper.removeSelectedAnnotation()},showAnnotation:function(){this._helper.showAnnotation()},hideAnnotation:function(){this._helper.hideAnnotation()},setStyle:function(e){this._helper.setAnnotationStyle(e)},destroy:function(){this.endDrawing()},getCurrentState:function(){if(this.isViewer2D)var e=this._helper.getCurrentState();else{var t=this._opt.viewer.getViewer();this._opt.windowAdaption&&t.setCameraStateWithFrustum&&t.setCameraStateWithFrustum(!0);e=this._helper.getCurrentState();t.setCameraStateWithFrustum&&t.setCameraStateWithFrustum(!1)}return e},getWorldPosition:function(e){var t=this._opt.viewer,i=t.screenWidth/2,o=t.screenHeight/2,n={x:i+e.position.x,y:o-e.position.y};return t.clientToWorld(n)},inherit:function(e){for(var t in e)this[t]=e[t]},stringifyAnnotationList(e){return this._helper.markupManager.toString(e)},jsonifyAnnotationList(e){return this._helper.markupManager.fromString(e)}},o.AnnotationManager=n}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation").AnnotationToolbarConfig=function(){},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation");let i=Object.freeze({Saved:"Saved",Cancelled:"Cancelled"});t.AnnotationToolbarEvent=i}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Annotation"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),e.Bimface.Plugins.Annotation.AnnotationToolbarEvent),n=function(t){var n=this._eventManager=new e.Web.Lang.EventManager,s=t.viewer,r=e.Bimface.Viewer.ViewerDrawing&&s instanceof e.Bimface.Viewer.ViewerDrawing;this.isDrawing=r;var a=e.Bimface.Viewer.ViewerPDF&&s instanceof e.Bimface.Viewer.ViewerPDF;this.isPDF=a;var l=i.create("div","bf-annotation bf-hide");this.domElement=l;var h=e.Bimface.Plugins.Annotation.AnnotationTypeOption,c=new e.Bimface.Plugins.Annotation.AnnotationManagerConfig,d=c.lineColor;c.viewer=s,c.windowAdaption=t.windowAdaption,c.annotationCallback=t.annotationCallback;var g=new e.Bimface.UI.Toolbar.ToolbarConfig;g.element=l,g.className="bf-toolbar bf-toolbar-annotation";var u=this.annotationToolbar=new e.Bimface.UI.Toolbar.Toolbar(g);this.annotationToolbar=u,r&&(c.annotationToolbar=u);var p=this._annotationManager=new e.Bimface.Plugins.Annotation.AnnotationManager(c);s.getDomElement().appendChild(l),l.addEventListener("mousedown",(function(e){e.stopPropagation()})),l.addEventListener("touchstart",(function(e){e.stopPropagation()})),l.addEventListener("touchmove",(function(e){e.stopPropagation()}));var A=new e.Bimface.UI.Toolbar.ToolbarConfig;A.element=l,A.className="bf-toolbar bf-toolbar-control";var m=new e.Bimface.UI.Toolbar.Toolbar(A),w=new e.Bimface.UI.Button.ButtonConfig;w.className="bf-button gld-bf-narrow ",w.title="箭头",r&&(w.id="arrow"),w.groupName="Annotation";var C=new e.Bimface.UI.Button.SingleButton(w);C.addEventListener("Click",(function(){p.setAnnotationType(h.Arrow),J.show(),ie.hide()})),u.addControl(C);var f=new e.Bimface.UI.Button.ButtonConfig;f.className="bf-button gld-bf-n-cloud",f.title="云线框",f.groupName="Annotation";var E=new e.Bimface.UI.Button.SingleButton(f);E.addEventListener("Click",(function(){p.setAnnotationType(h.CloudRect),J.show(),ie.hide()})),u.addControl(E);var B=new e.Bimface.UI.Button.ButtonConfig;B.className="bf-button gld-bf-ncloud",B.title="云线",B.groupName="Annotation";var I=new e.Bimface.UI.Button.SingleButton(B);I.addEventListener("Click",(function(){p.setAnnotationType(h.Cloud),J.show(),ie.hide()})),u.addControl(I);var y=new e.Bimface.UI.Button.ButtonConfig;y.className="bf-button gld-bf-n-ployline",y.title="折线",y.groupName="Annotation";var S=new e.Bimface.UI.Button.SingleButton(y);S.addEventListener("Click",(function(){p.setAnnotationType(h.Polyline),J.show(),ie.hide()})),u.addControl(S);var M=new e.Bimface.UI.Button.ButtonConfig;M.className="bf-button gld-bf-nrectangle",M.title="矩形",M.groupName="Annotation";var v=new e.Bimface.UI.Button.SingleButton(M);v.addEventListener("Click",(function(){p.setAnnotationType(h.Rectangle),J.show(),ie.hide()})),u.addControl(v);var x=new e.Bimface.UI.Button.ButtonConfig;x.className="bf-button gld-bf-noval",x.title="椭圆",x.groupName="Annotation";var b=new e.Bimface.UI.Button.SingleButton(x);b.addEventListener("Click",(function(){p.setAnnotationType(h.Ellips),J.show(),ie.hide()})),u.addControl(b);var U=new e.Bimface.UI.Button.ButtonConfig;U.className="bf-button gld-bf-mark",U.title="X",U.groupName="Annotation";var D=new e.Bimface.UI.Button.SingleButton(U);D.addEventListener("Click",(function(){p.setAnnotationType(h.Cross),J.show(),ie.hide()})),u.addControl(D);var R=new e.Bimface.UI.Button.ButtonConfig;R.className="bf-button gld-bf-ntext",R.title="文字",R.groupName="Annotation";var V=new e.Bimface.UI.Button.SingleButton(R);V.addEventListener("Click",(function(){p.setAnnotationType(h.Text),J.hide(),ie.show()})),u.addControl(V);var Q=new e.Bimface.UI.Button.ButtonConfig;Q.className="bf-combobox bf-color",Q.title="颜色",r&&(Q.id="color");var k=new e.Bimface.UI.Button.ComboBox(Q),F=new e.Bimface.UI.Button.ButtonConfig;F.className="bf-button bf-color",F.title="红",r&&(F.id="red");var T=new e.Bimface.UI.Button.ComboBoxOptionButton(F);T.color=new e.Web.Graphics.Color(208,2,27,1);var P=i.create("div","bf-color-button");P.setCss({backgroundColor:`#${T.color.getHEX()}`}),T.setHtml(P.outerHTML),k.addControl(T);var L=new e.Bimface.UI.Button.ButtonConfig;L.className="bf-button bf-color",L.title="黄";var K=new e.Bimface.UI.Button.ComboBoxOptionButton(L);K.color=new e.Web.Graphics.Color(245,166,35,1);var G=i.create("div","bf-color-button");G.setCss({backgroundColor:`#${K.color.getHEX()}`}),K.setHtml(G.outerHTML),k.addControl(K);var q=new e.Bimface.UI.Button.ButtonConfig;q.className="bf-button bf-color",q.title="蓝";var H=new e.Bimface.UI.Button.ComboBoxOptionButton(q);H.color=new e.Web.Graphics.Color(74,144,226,1);var Y=i.create("div","bf-color-button");Y.setCss({backgroundColor:`#${H.color.getHEX()}`}),H.setHtml(Y.outerHTML),k.addControl(H);var j=new e.Bimface.UI.Button.ButtonConfig;j.className="bf-button bf-color",j.title="绿";var N=new e.Bimface.UI.Button.ComboBoxOptionButton(j);N.color=new e.Web.Graphics.Color(126,211,33,1);var W=i.create("div","bf-color-button");W.setCss({backgroundColor:`#${N.color.getHEX()}`}),N.setHtml(W.outerHTML),k.addControl(N),u.addControl(k),(O=new e.Bimface.UI.Button.ButtonConfig).className="bf-combobox",O.title="粗细",r&&(O.id="line");var O,J=new e.Bimface.UI.Button.ComboBox(O);(O=new e.Bimface.UI.Button.ButtonConfig).className="bf-button bf-line",O.title="细",r&&(O.id="fine");var Z=new e.Bimface.UI.Button.ComboBoxOptionButton(O);Z.lineWidth=3;var z=i.create("div","bf-line-button");z.setCss({height:`${Z.lineWidth}px`,backgroundColor:`#${d.getHEX()}`,margin:(32-Z.lineWidth)/2+"px 4px"}),Z.element.appendChild(z),J.addControl(Z),O.title="中";var X=new e.Bimface.UI.Button.ComboBoxOptionButton(O);X.lineWidth=6;var _=i.create("div","bf-line-button");_.setCss({height:`${X.lineWidth}px`,backgroundColor:`#${d.getHEX()}`,margin:(32-X.lineWidth)/2+"px 4px"}),X.element.appendChild(_),J.addControl(X),O.title="粗";var $=new e.Bimface.UI.Button.ComboBoxOptionButton(O);$.lineWidth=10;var ee=i.create("div","bf-line-button");ee.setCss({height:`${$.lineWidth}px`,backgroundColor:`#${d.getHEX()}`,margin:(32-$.lineWidth)/2+"px 4px"}),$.element.appendChild(ee),J.addControl($),k.addEventListener("Change",(function(e){p.setLineColor(e.color);(d=e.color).getHEX();z.setCss({height:`${Z.lineWidth}px`,backgroundColor:`#${d.getHEX()}`,margin:(32-Z.lineWidth)/2+"px 4px"}),_.setCss({height:`${X.lineWidth}px`,backgroundColor:`#${d.getHEX()}`,margin:(32-X.lineWidth)/2+"px 4px"}),ee.setCss({height:`${$.lineWidth}px`,backgroundColor:`#${d.getHEX()}`,margin:(32-$.lineWidth)/2+"px 4px"});var t=J.getCurrentControl();J.setSelectedControlById(t.getId())})),J.addEventListener("Change",(function(e){p.setLineWidth(e.lineWidth)})),u.addControl(J);var te=new e.Bimface.UI.Button.ButtonConfig;te.className="bf-combobox bf-font-button",te.title="字号";var ie=new e.Bimface.UI.Button.ComboBox(te),oe=new e.Bimface.UI.Button.ButtonConfig;oe.className="bf-button bf-size",oe.title="14";var ne=new e.Bimface.UI.Button.ComboBoxOptionButton(oe);ne.fontSize=14,ne.setHtml("14"),ie.addControl(ne),oe.title="18";var se=new e.Bimface.UI.Button.ComboBoxOptionButton(oe);se.fontSize=18,se.setHtml("18"),ie.addControl(se),oe.title="24";var re=new e.Bimface.UI.Button.ComboBoxOptionButton(oe);re.fontSize=24,re.setHtml("24"),ie.addControl(re),ie.addEventListener("Change",(function(e){p.setFontSize(e.fontSize)})),ie.hide(),u.addControl(ie);var ae=new e.Bimface.UI.Button.ButtonConfig;ae.className="bf-save",ae.title=BimfaceLanguage.bf_general_save;var le=new e.Bimface.UI.Button.SingleButton(ae);le.setHtml(BimfaceLanguage.bf_general_save),le.addEventListener("Click",(function(){r||a?n.fireEvent(o.Saved,{annotationList:p.getAnnotationList()}):n.fireEvent(o.Saved,{annotationList:p.getAnnotationList(),state:p.getCurrentState()}),p.endDrawing(),l.addClass("bf-hide")})),m.addControl(le);var he=new e.Bimface.UI.Button.ButtonConfig;he.className="bf-cancel",he.title=BimfaceLanguage.bf_general_cancel;var ce=new e.Bimface.UI.Button.SingleButton(he);ce.setHtml(BimfaceLanguage.bf_general_cancel),ce.addEventListener("Click",(function(){p.endDrawing(),n.fireEvent(o.Cancelled),l.addClass("bf-hide")})),m.addControl(ce),this.getEventManager=function(){return n}};n.prototype={getEventManager:function(){return this._eventManager},addEventListener:function(e,t){this.getEventManager().addEvent(e,t)},removeEventListener:function(e,t){this.getEventManager().removeEvent(e,t)},show:function(e,t){this.isDrawing||this.isPDF||this._annotationManager.clear(),this._annotationManager.startDrawing(),this.domElement.removeClass("bf-hide")},getAnnotationManager:function(){return this._annotationManager},exit:function(){this.annotationToolbar.hide(),this.getAnnotationManager().exit()}},t.AnnotationToolbar=n}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").TagConfig=function(){return{viewer:null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest"),function(e){var t=this,i=this._viewer=e.viewer.getViewer();if(this._opt=e,this._renderCallback=function(){t.resize()},e.minimap){this.mapHelper=e.minimap;var o=new f.View2dAdapter(this.mapHelper,i);this.mapHelper.setMinimapResizeCallback((function(e){t._tagHelper.updateGroupName(),t._tagHelper.updateDomContainer(),t._tagHelper.resize(e),t._tagHelper.updateByGroup()})),this.mapHelper.setPlaneChangedCallback((function(){t._tagHelper.updateGroupName(),t._tagHelper.updateByGroup()}))}else{o=new f.View3dAdapter(i);i.addCallbacks("render",this._renderCallback)}this._tagHelper=new f.Extensions.MarkerEditor(o),this._tagHelper.disableInteractions(!0),this.init()});i.prototype={init:function(){this._tagHelper.isInitialized()||this._tagHelper.init()},addTag:function(e,t){if(!e)return!1;var i=!1,o=this.getTags();e.userId=e.objectId,e.worldBoundingBox=e.boundingBox,e.worldPosition||(e.worldPosition={x:(e.worldBoundingBox.min.x+e.worldBoundingBox.max.x)/2,y:(e.worldBoundingBox.min.y+e.worldBoundingBox.max.y)/2,z:(e.worldBoundingBox.min.z+e.worldBoundingBox.max.z)/2});for(var n=0,s=o.length;n<s;n++){if(o[n].userId==e.userId)return i=!0,!1}e.floorList?this._tagHelper.setMarkerGroups(e.floorList):this._tagHelper.setMarkerGroups([]),this._tagHelper.updateGroupName(),i||this._tagHelper.createMarkerByIntersect(e,t.shape,t.image,t.size)},deleteTag:function(e,t){if(t)return this._tagHelper.removeMarkerInGroup(e,t),!1;for(var i=this.getTags(),o=0,n=i.length;o<n;o++){var s=i[o];if(s.userId==e)return this._tagHelper.deleteMarker(s),!1}},destroy:function(){this._viewer.removeCallbacks("render",this._renderCallback),this._tagHelper.markerClickCallback=null,this.unLoadTags(),this._tagHelper.clearMarkers(),this._tagHelper=null},loadTags:function(e){this._tagHelper.loadMarkers(e)},unLoadTags:function(){this._tagHelper.unloadMarkers()},getTags:function(){return this._tagHelper.getMarkerInfoList()},getTagById:function(e){return this._tagHelper.getMarker(e)},zoomToSelectedTag:function(){this._tagHelper.zoomToSelectedMarkers()},resize:function(){this._tagHelper.onResize()},onSelected:function(e){this._tagHelper.setMarkerClickCallback(e)}},t.Tag=i}();class Pi{constructor(){}}Pi.ifExploded=function(e,t,i){let o=Glodon.Bimface.Viewer.ViewerDrawing&&e instanceof Glodon.Bimface.Viewer.ViewerDrawing,n=Glodon.Bimface.Viewer.ViewerDrawingSet&&e instanceof Glodon.Bimface.Viewer.ViewerDrawingSet;if(o||n||t instanceof Glodon.Bimface.Plugins.Drawable.ClusterTag)return t;const s=e.getViewer(),r=s.modelManager.explosionManager;let a=t.modelId;if(i&&t.layerId)a=e.getLayerManager().getLayer(t.layerId).modelId.toString();else{if(i&&!t.layerId)return t;a||(a=e._defaultModel.modelId.toString())}t.modelId=a;const l=e.getModel(a).getFloorExplosionDirection(),h=r.getFloorInfos(a),c=s.modelManager.getModel(a).modelExplosion;let d=()=>{if(h&&r.isExploded(a)){let e=t.worldPosition||t.getOriginalPosition(),i=c.getExplosionTranslationByObjId(t.objectId);const o=r.getExplosionParam(a).explosionExtent;if(!t.objectId&&o>0&&(i=this.getCenterExplosionOffset(s,o,t,!0)),i.length()>0){const o={x:e.x-i.x,y:e.y-i.y,z:e.z-i.z};return t.explosionOffset={x:i.x,y:i.y,z:i.z},t.originalPosition?t.originalPosition=o:t.worldPosition=o,t}if(t.levelName){let i=this.getExplodedOffsetByLevelName(h,t.levelName);if(i){const o={x:e.x-i*l.x,y:e.y-i*l.y,z:e.z-i*l.z};t.explosionOffset={x:i*l.x,y:i*l.y,z:i*l.z},t.originalPosition?t.originalPosition=o:t.worldPosition=o}}else this.setDrawableOffsetByFloorInfos(h,t,l)}return t};if(t._config.objectId){let e=s.getComponentInfoByUserId(t._config.objectId);if(e)return t.levelName=e.userData&&e.userData.levelName,d();{if(i)return t;const e=s.modelManager.getModel("ExtrudeBodyManager");return e&&e.getNode(t._config.objectId)&&(t._isBindRoom=!0),t}}return d()},Pi.getExplodedOffsetByLevelName=function(e,t){for(const i of e)if(i.name===t)return i.explodedHeight-i.elevation;return 0},Pi.setDrawableOffsetByFloorInfos=function(e,t,i){let o=t.worldPosition||t.getOriginalPosition();for(const n of e){const e=n.explodedHeight-n.elevation,s=n.boundingBox;if(o.z-e<s.min.z&&o.z-e>s.max.z)continue;t.levelName=n.name;const r={x:o.x-e*i.x,y:o.y-e*i.y,z:o.z-e*i.z};t.originalPosition?t.originalPosition=r:t.worldPosition=r,t.explosionOffset={x:i.x*e,y:i.y*e,z:i.z*e}}},Pi.attachExplosionOffset=function(e,t,i){if(!i.worldPosition&&!i.position)return;const o=i._config.objectId;let n=null;if(o){n=e.modelManager.getModel(i.modelId).modelExplosion.getExplosionTranslationByObjId(o),i.explosionOffset.x+=n.x,i.explosionOffset.y+=n.y,i.explosionOffset.z+=n.z}else n=this.getCenterExplosionOffset(e,t,i),i.explosionOffset.x=n.x,i.explosionOffset.y=n.y,i.explosionOffset.z=n.z},Pi.getCenterExplosionOffset=function(e,t,i,o){this.scratchVector=new THREE.Vector3,e.getScene().getOriginalBoundingBoxWorld().getCenter(this.scratchVector);const n=(new THREE.Box3).expandByPoint(i.worldPosition||i.getOriginalPosition());return!0===o?CLOUD.Utils.computeAfterExplodeTranslation(this.scratchVector,n,t):CLOUD.Utils.computeExplodeTranslation(this.scratchVector,n,t)},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable").DrawableContainerConfig=function(){return{viewer:null,maxNum:20,affectedBySection:!0,enableRender:!0}},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable").DrawableItemConfig=function(){return{id:null,objectId:null,modelId:null,tooltip:"",tooltipStyle:{},draggable:!1,worldPosition:new e.Web.Geometry.Point3d(0,0,0),angle:0,layerId:void 0}},function(){var o="Bimface.Plugins.Drawable.DrawableItem",n=e.Bimface.Data.StatisticsDataManager.getInstance();let s=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),r=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Common.MouseButton,function(i){this.id=i.id||e.Web.Lang.Utility.UUID.createUUID(),this.layerId=i.layerId,this.modelId=i.modelId,this.objectId=i.objectId,i.worldPosition?this.worldPosition=i.worldPosition:console.log("worldPosition must not be empty."),null!=i.viewerDrawingId&&(this.viewerDrawingId=i.viewerDrawingId),this.config=i,this.angle=i.angle,this.explosionOffset=new t,this.explosionExtent=0});r.prototype={draw:function(e){},onClick:function(e){n.send(o,"onClick"),this._onclick=e},onRightClick:function(e){n.send(o,"onRightClick"),this._onrightclick=e},onEndDrag:function(e){n.send(o,"onEndDrag"),this._onenddrag=e},setTooltip:function(e){n.send(o,"setTooltip"),this.tipElement.querySelector("span").innerText=e},setTooltipStyle:function(e){for(var t in n.send(o,"setTooltipStyle"),e)this.tipElement.style[t]=e[t]},getTooltip:function(){return this.tipElement.querySelector("span").innerText},getTooltipStyle:function(){return this.tipElement.style},getWorldPosition:function(){return this.worldPosition},setWorldPosition:function(e){n.send(o,"setWorldPosition"),this.worldPosition=e},getSize:function(){return{width:this.config.width,height:this.config.height}},hide:function(){n.send(o,"hide"),this._domElement.style.display="none",this.forceHide=!0},show:function(){n.send(o,"show"),this._domElement.style.display="",this.forceHide=!1},updateVisibility:function(){this.isHideByClustering||this.forceHide?this._domElement.style.display="none":this._domElement.style.display="block"},attachExplosionOffset:function(e,o){if(!this.worldPosition)return;let n=this._config.objectId;if(n){let i={};i[n]=!0;let s=e.modelManager.getBoundingBoxByIds(i),r=this.assoiatedComponentBbox,a=s;if(r){let e=a.getCenter().clone();e.sub(r.getCenter().clone()),this.explosionOffset=e,this.explosionExtent>0&&0===o&&(this.worldPosition.x+=e.x,this.worldPosition.y+=e.y,this.worldPosition.z+=e.z,this.explosionExtent=0,this.explosionOffset=new t,this.assoiatedComponentBbox=a.clone())}}else{let t=e.getScene().getOriginalBoundingBoxWorld().getCenter(),n=(new i).expandByPoint(this.worldPosition),s=CLOUD.Utils.computeExplodeTranslation(t,n,o);this.explosionOffset=s}},setInitialExplosionInfo:function(e){if("Viewer3D"!==e.getViewerType()&&"ViewerGIS"!==e.getViewerType())return;let t=null;"Viewer3D"===e.getViewerType()?t=this.modelId?e.getModel(this.modelId):e.getDefaultModel():"ViewerGIS"===e.getViewerType()&&(t=e.getLayerManager().getLayer(this.layerId)||null),this.explosionExtent=null===t?0:t.getExplosionExtent();const i=this._config.objectId;if(!i)return;let o=e.getViewer(),n={};n[i]=!0,o.modelManager.getBoundingBoxByIds(n).isEmpty()&&(this._config.objectId=null,console.log("Cannot find component with Id "+i))},clearExplosionOffset:function(){this.explosionOffset=new t},getCurrentPosition:function(){return{x:this.worldPosition.x+this.explosionOffset.x,y:this.worldPosition.y+this.explosionOffset.y,z:this.worldPosition.z+this.explosionOffset.z}},getId:function(){return this.id}},s.DrawableItem=r}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=function(){this.rootDomElement=i.create("div","bf-drawable-context"),this.clientPosition=null};o.prototype.destroy=function(){this.rootDomElement.parentNode&&this.rootDomElement.parentNode.removeChild(this.rootDomElement)},t.DrawableContext=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),i=new e.Bimface.Plugins.Drawable.DrawableItemConfig;t.ImageConfig=function(){let e={width:32,height:32,viewer:null,opacity:.75,src:null,offsetX:0,offsetY:0,modelId:void 0,layerId:void 0,objectId:void 0};return Object.assign({},i,e)}}(),function(){var t="Bimface.Plugins.Drawable.Image",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),n=e.Bimface.Plugins.Drawable.DrawableItem,s=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),r=function(t){n.call(this,t);let i=this;this.viewer=t.viewer,this._isDragging=!1,this._isViewerGIS=e.Bimface.Viewer.ViewerGIS&&this.viewer instanceof e.Bimface.Viewer.ViewerGIS;let o=s.create("img","bf-drawable-image");var r;o.draggable=!1,o.src=t.src,o.style.width=`${t.width}px`,o.style.height=`${t.height}px`,o.style.opacity=`${t.opacity}`,o.style.transform=`rotate(${t.angle}deg)`,this._config=t,this._domElement=o,this.clientPosition={};t.draggable&&s.drag({element:o,cursor:"pointer",end:function(e){i._isDragging=!1;var t,o=i.viewer,n="Viewer3D"===o.getViewerType(),s={x:e.x-r.x+i.clientPosition.x,y:e.y-r.y+i.clientPosition.y};if(n){var a=o.pickByPoint(s);if(!a||!a.objectId)return void i.update();if(a.objectId){i._config.objectId=a.objectId;let e=o.getViewer().getComponentInfoByUserId(a.objectId);i.levelName=e&&e.userData&&e.userData.levelName,i.setInitialExplosionInfo(o),i.clearExplosionOffset(),i.needForceUpdate=!0}t=a.worldPosition}else if(i._isViewerGIS){let e=o.getDomElement().getBoundingClientRect(),t=o.getViewer().pickByPoint({x:s.x+e.left,y:s.y+e.top});if(!t||!t.meshId)return void i.update();t.meshId&&(i._config.objectId=t.meshId),i.worldPosition=t.worldPosition}else t=o.clientToWorld(s);t?(i.worldPosition=t,i.update(),i._onenddrag&&i._onenddrag(i)):i.update()},start:function(e){r=e},move:function(){i._isDragging=!0}}),o.addEventListener("mouseup",(function(e){var t=e||window.event;"0"==t.button&&i._onclick&&(!i._isDragging||r.x==t.clientX&&r.y==t.clientY)&&i._onclick(i)})),o.addEventListener("mousedown",(function(e){var t=e||window.event;t.stopPropagation(),"2"==t.button&&i._onrightclick?i._onrightclick(i):"1"==t.button&&i._onmiddleclick&&i._onmiddleclick(i)})),o.addEventListener("dblclick",(function(e){(e=e||event).stopPropagation()}))};e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility").Type.inheritPrototype(r,n);!function(e,t){var i=t.prototype;for(var o in e)i[o]=e[o]}({draw:function(e){if(!this._isDragging){var t=this._domElement,i=this._config;this.clientPosition=e.clientPosition,t.style.left=e.clientPosition.x+i.offsetX-i.width/2+"px",t.style.top=e.clientPosition.y+i.offsetY-i.height/2+"px",e.rootDomElement.appendChild(t)}},getWidth:function(){return this._config.width},setWidth:function(e){i.send(t,"setWidth");var o=this._config.width,n=this._domElement,s=(o-e)/2,r=parseInt(n.style.left);this._config.width=e,n.style.width=`${e}px`,n.style.left=`${r+s}px`},getHeight:function(){return this._config.height},setHeight:function(e){i.send(t,"setHeight");var o=this._config.height,n=this._domElement,s=(o-e)/2,r=parseInt(n.style.top);this._config.height=e,n.style.height=`${e}px`,n.style.top=`${r+s}px`},getOpacity:function(){return this._config.opacity},setOpacity:function(e){i.send(t,"setOpacity"),this._config.opacity=e,this._domElement.style.opacity=e},getSrc:function(){return this._config.src},setSrc:function(e){i.send(t,"setSrc"),this._config.src=e,this._domElement.src=e},getOffsetX:function(){return this._config.offsetX},setOffsetX:function(e){i.send(t,"setOffsetX");var o=this._config.offsetX,n=this._domElement,s=e-o,r=parseInt(n.style.left);this._config.offsetX=e,n.style.left=`${r+s}px`},getOffsetY:function(){return this._config.offsetY},setOffsetY:function(e){i.send(t,"setOffsetY");var o=this._config.offsetY,n=this._domElement,s=e-o,r=parseInt(n.style.top);this._config.offsetY=e,n.style.top=`${r+s}px`},getAngle:function(){return this.angle},setAngle:function(e){i.send(t,"setAngle"),this.angle=e,this._domElement.style.transform=`rotate(${e}deg)`}},r),o.Image=r}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),i=new e.Bimface.Plugins.Drawable.DrawableItemConfig;t.CustomItemConfig=function(){let e={width:0,height:0,opacity:.75,content:"",offsetX:0,offsetY:0,viewer:null,modelId:void 0,layerId:void 0,objectId:void 0};return Object.assign({},i,e)}}(),function(){var t="Bimface.Plugins.Drawable.CustomItem",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),s=e.Bimface.Plugins.Drawable.DrawableItem,r=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),a=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility");n.IE11Store={};let l=function(t){s.call(this,t),this._isDragging=!1;let i=this,o=e.Web.Lang.Utility.ClientHelper.getIsDesktop(),n=e.Bimface.Viewer.ViewerDrawing&&t.viewer instanceof e.Bimface.Viewer.ViewerDrawing,a=r.create("div","bf-drawable-text");a.style.width=`${t.width}px`,a.style.height=`${t.height}px`;let l=r.create("div","bf-drawable-contentwrap");var h;a.appendChild(l),this._domElement=a,this.name="customItem",this._contentElement=l,this._config=t,this.clientPosition={},this.setContent(t.content);let c=r.create("div","bf-tooltip");c.style.display="none",c.innerHTML=`<div class="bf-tooltip-content"><div class="bf-tooltip-arrow"></div><div class="bf-tooltip-inner"><span>${t.tooltip}</span></div></div>`,c.style.left=`${t.width}px`,c.style.top=`-${t.height}px`;var d=t.tipCSS;for(var g in d)c.style[g]=d[g];this.tipElement=c,a.appendChild(c);t.draggable&&r.drag({element:a,cursor:"pointer",end:function(t){i._isDragging=!1;var o,s=i.viewer,r=e.Bimface.Viewer.Viewer3D&&"Viewer3D"===s.viewerType,a=e.Bimface.Viewer.ViewerGIS&&s instanceof e.Bimface.Viewer.ViewerGIS,l={x:t.x-h.x+i.clientPosition.x,y:t.y-h.y+i.clientPosition.y};if(r){let e=s.getDomElement().getBoundingClientRect(),t=s.pickByPoint({x:l.x+e.left,y:l.y+e.top});if(!t||!t.objectId)return void i.update();if(t.objectId){i._config.objectId=t.objectId;let e=s.getViewer().getComponentInfoByUserId(t.objectId);i.levelName=e&&e.userData&&e.userData.levelName,i.setInitialExplosionInfo(s),i.clearExplosionOffset(),i.needForceUpdate=!0}o=t.worldPosition}else if(a){let e=s.getDomElement().getBoundingClientRect(),t=s.getViewer().pickByPoint({x:l.x+e.left,y:l.y+e.top});if(!t||!t.meshId)return void i.update();t.meshId&&(i._config.objectId=t.meshId),o=t.worldPosition}else if(n){var c=s.getViewer().toWorldPoint([l.x,l.y]);o={x:c[0],y:c[1]}}else o=s.clientToWorld(l);o?(i.worldPosition=o,i.update(),i._onenddrag&&i._onenddrag(i)):i.update()},start:function(e){h=e},move:function(){i._isDragging=!0}}),a.style.width=`${t.width}px`,a.style.height=`${t.height}px`,a.style.opacity=`${t.opacity}`,a.addEventListener("mouseover",(function(e){i.tipElement&&i.tipElement.querySelector("span").innerText.length>0&&(i.tipElement.style.display="block")})),a.addEventListener("mouseout",(function(e){i.tipElement&&(i.tipElement.style.display="none")})),a.addEventListener("keydown",(function(e){e.stopPropagation()})),o&&a.addEventListener("mouseup",(function(e){var t=e||window.event;"0"==t.button&&i._onclick&&(!i._isDragging||h.x==t.clientX&&h.y==t.clientY)&&i._onclick(i)})),a.addEventListener("mousedown",(function(e){var t=e||window.event;t.stopPropagation(),"2"==t.button&&i._onrightclick?i._onrightclick(i):"1"==t.button&&i._onmiddleclick&&i._onmiddleclick(i)})),a.addEventListener("dblclick",(function(e){(e=e||event).stopPropagation()})),a.addEventListener("touchstart",(function(e){(e||window.event).stopPropagation()})),a.addEventListener("touchmove",(function(e){(e||window.event).stopPropagation()})),!o&&a.addEventListener("touchend",(function(e){var o=e||window.event;o.stopPropagation(),i._onclick&&(!t.draggable||h.x==o.changedTouches[0].clientX&&h.y==o.changedTouches[0].clientY)&&i._onclick(i)}))};a.Type.inheritPrototype(l,s);!function(e,t){var i=t.prototype;for(var o in e)i[o]=e[o]}({draw:function(e){if(!this._isDragging){var t=this._domElement,i=this._config;this.clientPosition=e.clientPosition,t.style.left=e.clientPosition.x+i.offsetX-i.width/2+"px",t.style.top=e.clientPosition.y+i.offsetY-i.height/2+"px",""==t.innerHTML&&(this.dom&&this.domId?t.appendChild(n.IE11Store[this.domId].cloneNode(!0)):this.text&&(t.innerText=this.text)),e.rootDomElement.contains&&e.rootDomElement.contains(t)||e.rootDomElement.appendChild(t)}},getWidth:function(){return this._config.width},setWidth:function(e){i.send(t,"setWidth");var o=this._config.width,n=this._domElement,s=(o-e)/2,r=parseInt(n.style.left);this._config.width=e,n.style.width=`${e}px`,n.style.left=`${r+s}px`},getHeight:function(){return this._config.height},setHeight:function(e){i.send(t,"setHeight");var o=this._config.height,n=this._domElement,s=(o-e)/2,r=parseInt(n.style.top);this._config.height=e,n.style.height=`${e}px`,n.style.top=`${r+s}px`},getOpacity:function(){return this._config.opacity},setOpacity:function(e){i.send(t,"setOpacity"),this._config.opacity=e,this._domElement.style.opacity=e},getContent:function(){return this._config.content||this.text},setContent:function(o){i.send(t,"setContent"),this._contentElement.innerHTML="",o instanceof HTMLElement?(o.draggable=!1,this._config.content=o,this._domElement.content=o,this.dom=o,this.domId||(this.domId=e.Web.Lang.Utility.UUID.createUUID()),n.IE11Store[this.domId]=o.cloneNode(!0),this._contentElement.appendChild(o)):(this._contentElement.innerHTML=o,this.text=o,this._config.content="")},getOffsetX:function(){return this._config.offsetX},setOffsetX:function(e){i.send(t,"setOffsetX");var o=this._config.offsetX,n=this._domElement,s=e-o,r=parseInt(n.style.left);this._config.offsetX=e,n.style.left=`${r+s}px`},getOffsetY:function(){return this._config.offsetY},setOffsetY:function(e){i.send(t,"setOffsetY");var o=this._config.offsetY,n=this._domElement,s=e-o,r=parseInt(n.style.top);this._config.offsetY=e,n.style.top=`${r+s}px`},resetClientPosition:function(e){const t=this._domElement,i=this._config;"Viewer3D"!==this.viewer.viewerType&&"ViewerGIS"!==this.viewer.viewerType||(e=this.viewer.worldToClient(e)),t.style.left=e.x+i.offsetX-i.width/2+"px",t.style.top=e.y+i.offsetY-i.height/2+"px"},getContainer:function(){return this._domElement},setContainerVisible(e){this._domElement.style.display=!0===e?"block":"none"}},l),o.CustomItem=l}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),i=new e.Bimface.Plugins.Drawable.DrawableItemConfig;t.LeadLabelConfig=function(){let e={text:null,viewer:null,containerCss:{boxSizing:"border-box",fontSize:"12px",lineHeight:1.5,borderWidth:"2px",borderStyle:"solid",padding:"5px",borderColor:"#1f93ff",backgroundColor:"#eeeeee",padding:"2px 8px",opacity:.9},lineCss:{width:"1px",color:"#1f93ff"},pointCss:{radius:4,backgroundColor:"#1f93ff",borderColor:"#ffffff",borderStyle:"solid",borderWidth:"1px"},offset:{x:27,y:-47},height:26,width:140,modelId:void 0,layerId:void 0,objectId:void 0};return Object.assign({},i,e)}}(),function(){var t="Bimface.Plugins.Drawable.LeadLabel",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),n=e.Bimface.Plugins.Drawable.DrawableItem,s=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");var r=function(t){n.call(this,t);let i=this,o=e.Web.Lang.Utility.ClientHelper.getIsDesktop(),r=s.create("div","bf-drawable-lead-label"),a=s.create("div","bf-drawable-lead-label-textarea");r.appendChild(a);let l=s.createNS("line","bf-drawable-lead-line"),h=s.createNS("line","bf-drawable-lead-line"),c=s.createNS("circle","bf-drawable-lead-point"),d=s.createNS("g","bf-drawable-group"),g=t.viewer;this._isViewerGIS=e.Bimface.Viewer.ViewerGIS&&g instanceof e.Bimface.Viewer.ViewerGIS,i._text=t.text,this.name="LeadLabel",this.isAssociateComponentHide=!1,r.setCss(t.containerCss),a.innerText=i._text.replace(/\n/g," "),r.style.width=parseFloat(t.width)+"px",r.style.height=parseFloat(t.height)+"px";let u=Math.trunc((t.height-8)/18);var p;a.style.webkitLineClamp=u||1,h.setAttribute("stroke-width",t.lineCss.width),h.style.stroke=t.lineCss.color,l.setAttribute("stroke-width",t.lineCss.width),l.style.stroke=t.lineCss.color,c.setAttribute("r",t.pointCss.radius),c.style.fill=t.pointCss.backgroundColor,c.setAttribute("stroke-width",t.pointCss.borderWidth),c.style.stroke=t.pointCss.borderColor,h.setAttribute("x1",0),h.setAttribute("y1",0-t.offset.y+18),h.setAttribute("x2",t.offset.x),h.setAttribute("y2",18),l.setAttribute("x1",t.offset.x),l.setAttribute("y1",18),l.setAttribute("x2",t.offset.x+23),l.setAttribute("y2",18),c.setAttribute("cx",0),c.setAttribute("cy",18-t.offset.y),this._isDragging=!1;t.draggable&&s.drag({element:r,cursor:"pointer",start:function(e){p=e},move:function(e){i._isDragging=!0;var o=e.x-p.x+i.clientPosition.x,n=e.y-p.y+i.clientPosition.y;d.setAttribute("transform",`translate(${o},${n+t.offset.y-18})`)},end:function(e){i._isDragging=!1;var t="Viewer3D"===g.viewerType,o=g.getDomElement().getBoundingClientRect(),n={x:e.x-p.x+i.clientPosition.x+o.left,y:e.y-p.y+i.clientPosition.y+o.top};if(t){var s=g.pickByPoint(n);if(s){if(i.setWorldPosition(s.worldPosition),i.bindComponentById(s.objectId,s.modelId),s.objectId){i._config.objectId=s.objectId,i._config.modelId=s.modelId;let e=g.getViewer().getComponentInfoByUserId(s.objectId,s.modelId);i.levelName=e&&e.userData&&e.userData.levelName,i.needForceUpdate=!0}i.setInitialExplosionInfo(g),i.clearExplosionOffset()}g.render()}else if(i._isViewerGIS){let e=g.getDomElement().getBoundingClientRect(),t=g.getViewer().pickByPoint({x:n.x+e.left,y:n.y+e.top});if(!t||!t.meshId)return void i.update();t.meshId&&(i._config.objectId=t.meshId),i.worldPosition=t.worldPosition}else{var r=g.clientToWorld(n);r&&i.setWorldPosition(r),g.update()}i._dragEnd&&i._dragEnd()}}),r.addEventListener("mousedown",(function(e){(e=e||event).stopPropagation()})),o&&r.addEventListener("click",(function(e){(e=e||event).stopPropagation(),i._click&&i._click(i)})),!o&&r.addEventListener("touchstart",(function(){(event||window.event).stopPropagation(),i._click&&i._click(i)})),r.addEventListener("contextmenu",(function(e){i._rightClick&&i._rightClick(i)})),r.addEventListener("dblclick",(function(e){(e=e||event).stopPropagation(),i._doubleClick&&i._doubleClick(i)})),r.addEventListener("mouseenter",(function(e){a.innerText=i._text;let t=r.offsetHeight;r.addClass("bf-drawable-show"),a.addClass("bf-drawable-show"),t>r.offsetHeight&&(r.removeClass("bf-drawable-show"),a.removeClass("bf-drawable-show"))})),r.addEventListener("mouseleave",(function(e){a.innerText=i._text.replace(/\n/g," "),r.removeClass("bf-drawable-show"),a.removeClass("bf-drawable-show")})),d.appendChild(h),d.appendChild(l),d.appendChild(c),i._objectId=t.objectId,i._modelId=t.modelId,i._container=r,i._domTextArea=a,i._svgGroup=d,i._config=t,i._offset=t.offset};e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility").Type.inheritPrototype(r,n),r.prototype=Object.assign({},n.prototype,{draw:function(e,t){if(!this._isDragging){var i=this._container,o=this._svgGroup,n=this._offset,r=this._config.viewer,a=this._objectId,l=this._modelId;if(r&&a&&!this._isViewerGIS){var h=r.getModel(l).getComponentStatus(a);if("hidden"==h||"translucent"==h)return this.hide(),void(this.isAssociateComponentHide=!0);this.isAssociateComponentHide&&(this.show(),this.isAssociateComponentHide=!1)}!0!==this.isHideByClustering?(this.clientPosition=e.clientPosition,i.style.left=`${e.clientPosition.x+n.x+23}px`,i.style.top=e.clientPosition.y+n.y-18+"px",o.setAttribute("transform",`translate(${e.clientPosition.x},${e.clientPosition.y+n.y-18})`),e.domContainer||(e.domContainer=s.create("div","bf-drawable-container"),e.rootDomElement.appendChild(e.domContainer)),e.svgContainer||(e.svgContainer=s.createNS("svg","bf-drawable-svg"),e.rootDomElement.appendChild(e.svgContainer)),this.isShow("default"==t),e.rootDomElement.contains&&e.domContainer.contains(i)||(e.domContainer.appendChild(i),e.svgContainer.appendChild(o))):this.hide()}},setDisplayMode:function(e){this.show(),this.displayMode=e,this.isShow()},hide:function(){i.send(t,"hide"),this.forceHide=!0,this._container.style.display="none",this._svgGroup.style.display="none"},show:function(){i.send(t,"show"),this.forceHide=!1,this._container.style.display="",this._svgGroup.style.display=""},onClick:function(e){i.send(t,"onClick"),e&&(this._click=e)},onRightClick:function(e){i.send(t,"onRightClick"),e&&(this._rightClick=e)},onDoubleClick:function(e){e&&(this._doubleClick=e)},onEndDrag:function(e){i.send(t,"onEndDrag"),e&&(this._dragEnd=e)},getText:function(){return this._text},setText:function(e){i.send(t,"setText"),this._domTextArea.innerText=e,this._text=e},getOpacity:function(){return this._container.style.opacity},setOpacity:function(e,o){i.send(t,"setOpacity"),this._container.style.opacity=e},getHeight:function(){return parseFloat(this._container.style.height)},setHeight:function(e){i.send(t,"setHeight"),this._container.style.height=parseFloat(e)+"px";let o=Math.trunc((e-8)/18);this._domTextArea.style.webkitLineClamp=o||1},getWidth:function(){return parseFloat(this._container.style.width)},setWidth:function(e){i.send(t,"setWidth"),this._container.style.width=parseFloat(e)+"px"},getObjectId:function(){return this._objectId},associateComponentById:function(e,t){console.log("[BIMFACE WARN]: LeadLabel.associateComponentById() is obsolete, please use LeadLabel.bindComponentById() instead."),this.bindComponentById(e,t)},bindComponentById:function(e,t){let i=this._config.viewer.getViewer().getComponentInfoByUserId(e);i?(this.levelName=i.userData&&i.userData.levelName,this._objectId=e,this._config.objectId=e,this._modelId=t):console.warn("invalid component id")},clearAssociation:function(){console.log("LeadLabel.clearAssociation() is obsolete, please use LeadLabel.unbind() instead."),this.unbind()},unbind:function(){this._objectId=null,this._modelId=null},isShow:function(e){var t=this._container,i=this._svgGroup;null!=this.displayMode&&(e=1!==this.displayMode),e?(t.removeClass("bf-drawable-mini"),i.removeClass("bf-drawable-mini-svg")):(t.addClass("bf-drawable-mini"),i.addClass("bf-drawable-mini-svg"))},resetClientPosition:function(e){const t=this._container,i=this._config;"Viewer3D"!==i.viewer.viewerType&&"ViewerGIS"!==i.viewer.viewerType||(e=i.viewer.worldToClient(e)),t.style.left=`${e.x+i.offset.x+23}px`,t.style.top=e.y+i.offset.y-18+"px",this._svgGroup.setAttribute("transform",`translate(${e.x},${e.y+i.offset.y-18})`)},setContainerVisible:function(e){!0!==e?this.hide():this.show()}}),o.LeadLabel=r}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),i=new e.Bimface.Plugins.Drawable.DrawableItemConfig;t.MiniTagConfig=function(){return Object.assign({},i,{minimap:null,floorList:[],height:20,width:20,objectId:"",src:"",worldPosition:null,viewer:null})}}(); |
|
/*! ***************************************************************************** |
|
Copyright (c) Microsoft Corporation. |
|
|
|
Permission to use, copy, modify, and/or distribute this software for any |
|
purpose with or without fee is hereby granted. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH |
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, |
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM |
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR |
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
|
PERFORMANCE OF THIS SOFTWARE. |
|
***************************************************************************** */ |
|
var Li=function(e,t){return(Li=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};function Ki(e,t){function i(){this.constructor=e}Li(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var Gi=function(){function e(){}return e.create=function(e,t,i){var o=document.createElement(e);return o.id=t||"",o.style.position="absolute",o.style.width="100%",o.style.top=0,o.style.bottom=0,i&&i.appendChild(o),o},e.remove=function(e){var t=e.parentNode;t&&t.removeChild(e)},e.setPosition=function(e,t){e.position=t,e.style.left=t.x+"px",e.style.top=t.y+"px"},e.setOpacity=function(t,i){"opacity"in t.style?t.style.opacity=i:"filter"in t.style&&e._setOpacityIE(t,i)},e._setOpacityIE=function(e,t){var i=!1,o="DXImageTransform.Microsoft.Alpha";try{i=e.filters.item(o)}catch(e){if(1===t)return}t=Math.round(100*t),i?(i.Enabled=100!==t,i.Opacity=t):e.style.filter+=" progid:"+o+"(opacity="+t+")"},e.splitStr=function(e){return e.trim().split(/\s+/g)},e.getContainerOffsetToClient=function(e){var t,i;if(e!=document){var o=(i=e).getBoundingClientRect?function(e){var t=e.getBoundingClientRect(),i=document.body,o=document.documentElement,n=o.clientTop||i.clientTop,s=o.clientLeft||i.clientLeft,r=t.top-n,a=t.left-s;return{top:Math.round(r),left:Math.round(a)}}(i):function(e){for(var t=0,i=0;e;)t+=e.offsetTop,i+=e.offsetLeft,e=e.offsetParent;var o=document.body,n=document.documentElement;return{top:t-=window.pageYOffset||n.scrollTop||o.scrollTop,left:i-=window.pageXOffset||n.scrollLeft||o.scrollLeft}}(i);t={width:e.offsetWidth,height:e.offsetHeight,left:o.left,top:o.top}}else t={width:window.innerWidth,height:window.innerHeight,left:0,top:0};return t},e.setClassName=function(e,t){var i=document.getElementById(e);i&&(i.className=t)},e.addClassName=function(e,t){var i,o,n,s,r,a=document.getElementById(e);if(a&&(o=a,t&&"string"==typeof t&&(i=t.split(/\s+/),1===o.nodeType)))if(o.className||1!==i.length){for(n=" "+o.className+" ",s=0,r=i.length;s<r;++s)n.indexOf(" "+i[s]+" ")<0&&(n+=i[0]+" ");o.className=n.trim()}else o.className=t},e.removeClassName=function(e,t){var i,o,n,s,r,a=document.getElementById(e);if(a&&(n=a,t&&"string"==typeof t&&(i=(t||"").split(/\s+/),1===n.nodeType&&n.className))){for(o=(" "+n.className+" ").replace("O"," "),s=0,r=i.length;s<r;s++)for(;o.indexOf(" "+i[s]+" ")>=0;)o=o.replace(" "+i[s]+" "," ");n.className=t?o.trim():""}},e.showOrHideElement=function(e,t){var i=document.getElementById(e);i&&(i.style.display=t?"":"none")},e.prototype.getStyleString=function(e){var t=[];for(var i in e){var o=e[i];t.push(i),t.push(":"),t.push(o),t.push("; ")}return t.join("")},e.cloneStyle=function(e){var t={};for(var i in e)t[i]=e[i];return t},e.removeStyleAttribute=function(e,t){Array.isArray(t)||(t=[t]),t.forEach((function(t){t in e&&delete e[t]}))},e.trimRight=function(e){if(0===e.length)return"";for(var t=e.length-1,i=t;i>=0;--i)if(" "!==e.charAt(i)){t=i;break}return e.substr(0,t+1)},e.trimLeft=function(e){if(0===e.length)return"";for(var t=0,i=0;i<e.length;++i)if(" "!==e.charAt(i)){t=i;break}return e.substr(t)},e.matchesSelector=function(e,t){if(e.matches)return e.matches(t);if(e.matchesSelector)return e.matchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.mozMatchesSelector)return e.mozMatchesSelector(t);if(e.oMatchesSelector)return e.oMatchesSelector(t);if(e.querySelectorAll){for(var i=(e.document||e.ownerDocument).querySelectorAll(t),o=0;i[o]&&i[o]!==e;)o++;return!!i[o]}return!1},e.toTranslate3d=function(e,t){return"translate3d("+e+"px,"+t+"px,0)"},e.setCursorStyle=function(e,t){var i;switch(t){case"n":case"s":i="ns-resize";break;case"w":case"e":i="ew-resize";break;case"ne":case"sw":i="nesw-resize";break;case"nw":case"se":i="nwse-resize"}e.style.cursor=i},e.debounce=function(e,t){var i,o=this;return void 0===t&&(t=500),function(){for(var n=[],s=0;s<arguments.length;s++)n[s]=arguments[s];i||e.apply(o,n),clearTimeout(i),i=setTimeout((function(){i=void 0}),t)}},e}(),qi=function(){function e(){this.domContainer=null,this.cameraControl=null,this.scene=null,this.name=""}return e.prototype.getName=function(){return this.name},e.prototype.setDomContainer=function(e){this.domContainer=e},e.prototype.getDomContainer=function(){return this.domContainer},e.prototype.worldToClient=function(e){},e.prototype.clientToWorld=function(e){var t=this.getDomContainerBounds(),i=this.cameraControl.camera,o=new window.THREE.Vector3;o.x=e.x/t.width*2-1,o.y=-e.y/t.height*2+1,o.z=0,o.unproject(i);var n=this.getInverseSceneMatrix();return o.applyMatrix4(n),o},e.prototype.getSceneMatrix=function(){return this.scene.getMatrixGlobal()},e.prototype.getInverseSceneMatrix=function(){var e=this.getSceneMatrix(),t=new window.THREE.Matrix4;return t.copy(e).invert(),t},e.prototype.clientToViewport=function(e){var t=this.getDomContainerBounds(),i=new window.THREE.Vector3;return i.x=e.x/t.width*2-1,i.y=-e.y/t.height*2+1,i.z=0,i},e.prototype.getDomContainerBounds=function(e){return Gi.getContainerOffsetToClient(e||this.domContainer)},e}();window.Glodon.Bimface.Marker={};var Hi=function(e){function t(t){var i=e.call(this)||this;return i.name="VIEW3D",i.domContainer=t.domElement,i.cameraControl=t.cameraControl,i.scene=t.getScene(),i}return Ki(t,e),t.prototype.worldToClient=function(e){var t=this.getDomContainerBounds(),i=this.cameraControl.camera,o=this.getSceneMatrix(),n=new window.THREE.Vector3(e.x,e.y,e.z);return n.applyMatrix4(o),n.project(i),Math.abs(n.z)>1?null:(n.x=Math.round(.5*(n.x+1)*t.width),n.y=Math.round(-.5*(n.y-1)*t.height),n.z=0,n)},t}(qi);window.Glodon.Bimface.Marker.View3dAdapter=Hi;var Yi=function(e){function t(t,i){var o=e.call(this)||this;o.name="VIEW2D",o.minimap=t,o.domContainer=t.getMapContainer(),o.cameraControl=i.cameraControl,o.scene=i.getScene();var n=t.viewerFloor.vfData,s=n.width||298,r=n.height||198;return o.initialDomSize={width:s,height:r},o.currentDomSize={width:s,height:r},o._boxSize=new THREE.Vector2,o}return Ki(t,e),t.prototype.getInitialDomSize=function(){return this.initialDomSize},t.prototype.resize=function(e){this.currentDomSize=e},t.prototype.getDomContainerBounds=function(){return this.currentDomSize},t.prototype.getMinimap=function(){return this.minimap},t.prototype.worldToClient=function(e){var t=new window.THREE.Vector3(e.x,e.y,e.z),i=this.minimap.getAxisGridBox2D();this.worldToNormalizedPoint(t,i);var o=this.getDomContainerBounds(),n={width:o.width/2,height:o.height/2};return this.normalizedPointToScreen(t,n),t.x+=n.width,t.y+=n.height,t},t.prototype.normalizedPointToScreen=function(e,t){e.x=e.x*t.width,e.y=-e.y*t.height},t.prototype.worldToNormalizedPoint=function(e,t){t.getSize(this._boxSize),e.x=(e.x-t.min.x)/this._boxSize.x*2-1,e.y=(e.y-t.min.y)/this._boxSize.y*2-1},t}(qi);window.Glodon.Bimface.Marker.View2dAdapter=Yi;var ji=function(e){function t(t,i){var o=e.call(this)||this;o.name="DRAWING",o.minimap=t,o.domContainer=t.getMapContainer(),o.viewer=i;return o.initialDomSize={width:300,height:240},o.currentDomSize={width:300,height:240},o}return Ki(t,e),t.prototype.getInitialDomSize=function(){return this.initialDomSize},t.prototype.resize=function(e){this.currentDomSize=e},t.prototype.getDomContainerBounds=function(){return this.currentDomSize},t.prototype.getMinimap=function(){return this.minimap},t.prototype.worldToClient=function(e){var t=this.getMinimap().getDrawingContentsBbox(),i=this.getDomContainerBounds(),o=Math.abs(t.max.x-t.min.x),n=Math.abs(t.max.y-t.min.y);return{x:i.height*(e.x-t.min.x)/o+(i.width-i.height)/2,y:i.height*(t.max.y-e.y)/n}},t}(qi);window.Glodon.Bimface.Marker.DrawingdAdapter=ji;var Ni=function(){function e(t,i){this.canUseThree=!!window.THREE,this.id=t,this.editor=i,this.position=this.canUseThree&&new window.THREE.Vector3||{x:0,y:0},this.boundingBox=this.canUseThree&&new window.THREE.Box3||{min:{x:1/0,y:1/0,z:1/0},max:{x:-1/0,y:-1/0,z:-1/0}},this.shape=null,this.style=e.getDefaultStyle(),this.selected=!1,this.highlighted=!1,this.highlightColor="#000088",this.isDisableInteractions=!1,this.ratioW=1,this.ratioH=1,this.keys={BACKSPACE:8,ALT:18,ESC:27,LEFT:37,UP:38,RIGHT:39,BOTTOM:40,DELETE:46,ZERO:48,A:65,D:68,E:69,Q:81,S:83,W:87,PLUS:187,SUB:189},this.onMouseDownBinded=this.onMouseDown.bind(this),this.onKeyUpBinded=this.onKeyUp.bind(this)}return e.prototype.addDomEventListeners=function(){this.shape.addEventListener("mousedown",this.onMouseDownBinded,!0),this.shape.addEventListener("touchstart",this.onMouseDownBinded,!0),window.addEventListener("keyup",this.onKeyUpBinded)},e.prototype.removeDomEventListeners=function(){this.shape.removeEventListener("mousedown",this.onMouseDownBinded,!0),this.shape.removeEventListener("touchstart",this.onMouseDownBinded,!0),window.removeEventListener("keyup",this.onKeyUpBinded)},e.prototype.onMouseDown=function(e){e.preventDefault(),e.stopPropagation(),this.select(e.button)},e.prototype.onKeyUp=function(e){switch(e.keyCode){case this.keys.DELETE:this.editor.deselectMarker(),this.delete()}},e.prototype.createShape=function(){},e.prototype.destroy=function(){this.removeDomEventListeners(),this.deselect(),this.setParent(null)},e.prototype.set=function(e,t,i,o){this.userId=e,this.canUseThree&&this.position.set(t.x,t.y,t.z)||(this.position=t),i&&(this.boundingBox=this.canUseThree?i.clone():i),o&&(this.style=Gi.cloneStyle(o)),this.update()},e.prototype.setRatio=function(e,t){this.ratioW=e,this.ratioH=t},e.prototype.setParent=function(e){var t=this.shape;t&&(t.parentNode&&t.parentNode.removeChild(t),e&&e.appendChild(t))},e.prototype.setStyle=function(e){this.style=Gi.cloneStyle(e),this.update()},e.prototype.select=function(e){this.selected||(this.selected=!0,this.highlight(!0)),this.editor.selectMarker(this,e)},e.prototype.deselect=function(){this.highlight(!1),this.selected=!1},e.prototype.highlight=function(e){this.isDisableInteractions||(this.highlighted=e,this.update())},e.prototype.disableInteractions=function(e){this.isDisableInteractions=e},e.prototype.delete=function(){this.editor.deleteMarker(this)},e.prototype.getClientPosition=function(){return this.editor.getAdapter().worldToClient(this.position)},e.prototype.getBoundingBox=function(){return this.boundingBox},e.prototype.toNewObject=function(){return{id:this.id,userId:this.userId,shapeType:this.shapeType,cx:this.cx,cy:this.cy,position:this.position?Object.assign({},this.position):null,boundingBox:this.boundingBox?Object.assign({},this.boundingBox):null}},e.prototype.show=function(){this.shape.style.display="block"},e.prototype.hide=function(){this.shape.style.display="none"},e.prototype.update=function(){var e=this.style["stroke-width"],t=this.highlighted?this.highlightColor:this.style["stroke-color"],i=this.style["stroke-opacity"],o=this.style["fill-color"],n=this.style["fill-opacity"],s=this.getClientPosition();if(s){var r=s.x,a=s.y;if(2==this.shapeType)var l=["translate(",r-this.pictureSize.width*this.ratioW*.5,",",a-this.pictureSize.height*this.ratioH*.5,") "].join("");else l=["translate(",r,",",a,") "].join("");this.cx=r,this.cy=a,this.shape.setAttribute("transform",l),this.shape.setAttribute("stroke-width",e),this.shape.setAttribute("stroke",t),this.shape.setAttribute("stroke-opacity",i),this.shape.setAttribute("fill",o),this.shape.setAttribute("fill-opacity",n)}else this.shape.style.display="none"},e.shapeTypes={BUBBLE:0,FLAG:1,COMMON:2},e.getDefaultStyle=function(){var e={"stroke-width":2,"stroke-color":"#fffaff","stroke-opacity":1,"fill-color":"#ff2129","fill-opacity":1};return e},e}(),Wi=function(e){function t(t,i){var o=e.call(this,t,i)||this;return o.shapeType=Ni.shapeTypes.BUBBLE,o.createShape(),o.addDomEventListeners(),o}return Ki(t,e),t}(Ni),Oi=function(){function e(){}return e.createSvgElement=function(e){var t=document.createElementNS("http://www.w3.org/2000/svg",e);return t.setAttribute("pointer-events","inherit"),t},e.getRGBAString=function(e,t){return t<=0?"none":["rgba("+parseInt("0x"+e.substr(1,2)),",",parseInt("0x"+e.substr(3,2)),",",parseInt("0x"+e.substr(5,2)),",",t,")"].join("")},e.makeFlag=function(){var e=this.createSvgElement("path");return e.setAttribute("d","M0 0 L0 -20 L15 -13 L4 -6.87 L4 0Z"),e},e.makeBubble=function(){var e=this.createSvgElement("path");return e.setAttribute("d","m0.0035,-19.88544c-3.838253,0 -6.95,2.581968 -6.95,5.766754c0,3.185555 6.95,13.933247 6.95,13.933247s6.95,-10.747692 6.95,-13.933247c0,-3.184786 -3.11082,-5.766754 -6.95,-5.766754z"),e},e.makeCommon=function(e,t){var i=this.createSvgElement("image");return i.href.baseVal=e,i.setAttribute("height",t.height.toString()+"px"),i.setAttribute("width",t.width.toString()+"px"),i},e}(),Ji=function(e){function t(t,i,o,n){var s=e.call(this,t,i)||this;return s.shapeType=Ni.shapeTypes.COMMON,s.pictureSize=n||{width:20,height:20},s.createShape(o),s.addDomEventListeners(),s}return Ki(t,e),t.prototype.createShape=function(e){this.shape=Oi.makeCommon(e,this.pictureSize)},t.prototype.reset=function(){var e=this.pictureSize.width*this.ratioW,t=this.pictureSize.height*this.ratioH;this.shape.setAttribute("width",e.toString()+"px"),this.shape.setAttribute("height",t.toString()+"px")},t}(Ni),Zi=function(e){function t(t,i){var o=e.call(this,t,i)||this;return o.shapeType=Ni.shapeTypes.COMMON,o.createShape(),o.addDomEventListeners(),o}return Ki(t,e),t.prototype.createShape=function(){this.shape=Oi.makeFlag()},t}(Ni),zi=function(){function e(e){this.disableInteractions=function(e){this.isDisableInteractions=e},this.adapter=e,this.markers=[],this.mapGroupMarkers={},this.groups=null,this.selectedMarker=null,this.flagColors={red:"#ff2129",green:"#85af03",yellow:"#fe9829"},this.bubbleColors={red:"#f92a24",green:"#86b507",gray:"#ff9326"},this.nextMarkerId=0,this.initialized=!1,this.markerClickCallback=null,this.markerRightClickCallback=null,this.markersRatioH=1,this.markersRatioW=1}return e.prototype.getAdapter=function(){return this.adapter},e.prototype.updateDomContainer=function(){var e=this.adapter.getDomContainer();this.adapter.setDomContainer(e)},e.prototype.getMarkers=function(){return this.markers},e.prototype.getMarkersByGroupName=function(e){return this.mapGroupMarkers.hasOwnProperty(e)?this.mapGroupMarkers[e]:[]},e.prototype.addMarkerToGroup=function(e,t){this.mapGroupMarkers.hasOwnProperty(t)||(this.mapGroupMarkers[t]=[]),this.mapGroupMarkers[t].push(e)},e.prototype.setMarkerGroups=function(e){this.groups=e},e.prototype.removeMarkerInGroup=function(e,t){for(var i=this.mapGroupMarkers[t],o=0,n=i.length;o<n;o++)if(i[o].userId==e)return i.splice(o,1),void this.updateByGroup()},e.prototype.removeMarker=function(e){for(var t=this.markers,i=0,o=t.length;i<o;i++)if(t[i].userId==e)return t[i].destroy(),void t.splice(i,1)},e.prototype.clearMarkers=function(){this.unloadMarkers(!0),this.markers=[],this.mapGroupMarkers={}},e.prototype.setVisible=function(e,t){var i=this.mapGroupMarkers;for(var o in i){var n=i[o];if(n instanceof Array){var s=n.getObjectByAttribute("id",e);s&&(!0===t?s.show():s.hide())}}},e.prototype.updateByGroup=function(e){var t=e||this.groupName;this.unloadMarkers();var i=this.mapGroupMarkers[t];if(i instanceof Array)for(var o=0,n=i.length;o<n;o++)i[o]&&i[o].setParent(this.svgGroup)},e.prototype.resize=function(e){var t=this.adapter.getInitialDomSize(),i=e.width/t.width,o=e.height/t.height;this.markersRatioH=o,this.markersRatioW=i;var n=this.mapGroupMarkers[this.groupName];if(n instanceof Array){for(var s=0,r=n.length;s<r;s++){var a=n[s];a.setRatio(i,o),a.reset(),a.update()}e.width==t.width&&e.height==t.height||(t=e),this.svg.setAttribute("width",e.width+""),this.svg.setAttribute("height",e.height+"")}},e.prototype.setGroupName=function(e){this.groupName=e},e.prototype.updateGroupName=function(){var e=this.adapter.getMinimap();e&&(this.groupName=e.getFloorPlaneName())},e.prototype.onResize=function(){if(this.svg){var e=this.adapter.getDomContainerBounds();this.svg.setAttribute("width",e.width+""),this.svg.setAttribute("height",e.height+""),this.updateMarkers()}},e.prototype.init=function(){if(!this.svg){var e=this.adapter.getDomContainerBounds(),t=e.width,i=e.height;this.svg=Oi.createSvgElement("svg"),this.svg.style.position="absolute",this.svg.style.display="block",this.svg.style.position="absolute",this.svg.style.display="block",this.svg.style.left="0",this.svg.style.top="0",this.svg.setAttribute("width",t+""),this.svg.setAttribute("height",i+""),this.adapter.getDomContainer().appendChild(this.svg),this.svgGroup=Oi.createSvgElement("g"),this.svg.insertBefore(this.svgGroup,this.svg.firstChild)}this.initialized=!0},e.prototype.uninit=function(){this.initialized=!1,this.svg&&(this.unloadMarkers(),this.svgGroup&&this.svgGroup.parentNode&&this.svgGroup.parentNode.removeChild(this.svgGroup),this.svg.parentNode&&this.svg.parentNode.removeChild(this.svg),this.svgGroup=null,this.svg=null,this.markerClickCallback=null,this.markerRightClickCallback=null)},e.prototype.isInitialized=function(){return this.initialized},e.prototype.generateMarkerId=function(){return++this.nextMarkerId,this.nextMarkerId.toString(10)},e.prototype.clear=function(e){var t=this.markers;if(1==e)for(;t.length;){var i=t[0];this.deleteMarker(i)}var o=this.svgGroup;if(o&&o.childNodes.length>0)for(;o.childNodes.length;)o.removeChild(o.childNodes[0])},e.prototype.addMarker=function(e){var t=this.adapter.getName();if("VIEW3D"!=t&&"DRAWING"!=t||e.setParent(this.svgGroup),this.markers.push(e),this.groups)for(var i=0,o=this.groups.length;i<o;i++)this.addMarkerToGroup(e,this.groups[i]);this.groupName&&this.updateByGroup(this.groupName)},e.prototype.deleteMarker=function(e){if(e){this.removeMarker(e.userId);var t=this.mapGroupMarkers;for(var i in t)this.removeMarkerInGroup(e.userId,i);t&&this.updateByGroup()}},e.prototype.selectMarker=function(e,t){if(!0===this.isDisableInteractions)return this.markerClickCallback&&0==t&&this.markerClickCallback(e.toNewObject()),void(this.markerRightClickCallback&&2==t&&this.markerRightClickCallback(e.toNewObject()));this.selectedMarker!==e?(this.deselectMarker(),this.selectedMarker=e):this.deselectMarker(),this.markerClickCallback&&(this.selectedMarker?this.markerClickCallback(this.selectedMarker.toNewObject()):this.markerClickCallback(null))},e.prototype.deselectMarker=function(){this.selectedMarker&&(this.selectedMarker.deselect(),this.selectedMarker=null)},e.prototype.enableSVGPaint=function(e){e?this.svg&&this.svg.setAttribute("pointer-events","painted"):this.svg&&this.svg.setAttribute("pointer-events","none")},e.prototype.getMarkerColor=function(e,t){var i=this.bubbleColors.red;switch(e<0&&e>1&&(e=0),t>2&&(t-=3),t<0&&t>2&&(t=0),t){case 0:i=0===e?this.bubbleColors.red:this.flagColors.red;break;case 1:i=0===e?this.bubbleColors.green:this.flagColors.green;break;case 2:i=0===e?this.bubbleColors.gray:this.flagColors.yellow}return i},e.prototype.createMarkerByIntersect=function(e,t,i,o){var n={size:o,id:e.id||this.generateMarkerId(),userId:e.userId,position:e.worldPosition||e.object.point,boundingBox:e.worldBoundingBox||e.object&&e.object.boundingBox,shapeType:t,state:i};this.createMarker(n)},e.prototype.createMarker=function(e){if(e){var t=Ni.getDefaultStyle();t["fill-color"]=this.getMarkerColor(e.shapeType,e.state);var i,o=e.id||this.generateMarkerId(),n=Ni.shapeTypes;switch(e.shapeType){case n.BUBBLE:i=new Wi(o,this);break;case n.COMMON:(i=new Ji(o,this,e.state,e.size)).setRatio(this.markersRatioW,this.markersRatioH),i.reset();break;case n.FLAG:default:i=new Zi(o,this)}this.isDisableInteractions&&i.disableInteractions(!0),i.set(e.userId,e.position,e.boundingBox,t),this.addMarker(i)}},e.prototype.getMarkersBoundingBox=function(){if(this.markers.length<1)return null;for(var e=new window.THREE.Box3,t=0,i=this.markers.length;t<i;t++){var o=this.markers[t];o.getBoundingBox()&&e.union(o.getBoundingBox())}return e},e.prototype.getMarkerInfoList=function(){for(var e=[],t=0,i=this.markers.length;t<i;t++){var o=this.markers[t],n=o.userId+"_"+t,s={id:o.id||n,userId:o.userId,shapeType:o.shapeType,position:o.position,boundingBox:o.boundingBox,state:o.state};e.push(s)}return e},e.prototype.loadMarkers=function(e){this.clear();for(var t=0,i=e.length;t<i;t++){var o=e[t],n=o.userId+"_"+t,s=o.id||n,r=o.userId,a=o.shapeType,l=o.state,h=o.position,c=window.THREE?new window.THREE.Box3:{min:{x:1/0,y:1/0,z:1/0},max:{x:-1/0,y:-1/0,z:-1/0}};c.max.x=o.boundingBox.max.x,c.max.y=o.boundingBox.max.y,c.max.z=o.boundingBox.max.z,c.min.x=o.boundingBox.min.x,c.min.y=o.boundingBox.min.y,c.min.z=o.boundingBox.min.z;var d={id:s,userId:r,position:h,boundingBox:c,shapeType:a,state:l};this.createMarker(d)}},e.prototype.loadMarkersFromIntersect=function(e,t,i){this.clear(),this.createMarkerByIntersect(e,t,i)},e.prototype.unloadMarkers=function(e){this.clear(e)},e.prototype.updateMarkers=function(){for(var e=0,t=this.markers.length;e<t;e++){this.markers[e].update()}},e.prototype.getMarker=function(e){for(var t=this.markers,i=t.length,o=0;o<i;++o)if(t[o].userId==e)return t[o];return null},e.prototype.getMarkerByUserId=function(e){for(var t=this.markers,i=t.length,o=0;o<i;++o)if(t[o].userId==e)return t[o];return null},e.prototype.setMarkerClickCallback=function(e){this.markerClickCallback=e},e.prototype.setMarkerRightClickCallback=function(e){this.markerRightClickCallback=e},e.prototype.zoomAndPanMarkerById=function(e,t,i,o){var n=this.mapGroupMarkers,s=this.svg.getAttribute("width"),r=this.svg.getAttribute("height"),a=new THREE.Vector2(.5*s,.5*r);for(var l in n){var h=n[l];if(h instanceof Array){var c=h.getObjectByAttribute("id",e);if(c){var d=c.getClientPosition(),g=c.pictureSize.width*c.ratioW,u=c.pictureSize.height*c.ratioH,p=new THREE.Vector2(d.x,d.y).clone().sub(a);p.multiplyScalar(o);var A="translate("+(a.x+p.x-.5*g+t)+","+(a.y+p.y-.5*u+i)+")";c.shape.setAttribute("transform",A)}}}},e}();!function(){var t="Bimface.Plugins.Drawable.MiniTag",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),n=e.Bimface.Plugins.Drawable.DrawableItem;e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest");let s=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility");var r=function(t){n.call(this,t);var i=this,o=this._viewer=t.viewer.getViewer();if(this.miniTagConfig=t,this._config=t,i.worldPosition=t.worldPosition,this._renderCallback=function(){i.resize()},"ViewerDrawing"==t.viewer.viewerType){this.mapHelper=t.minimap;var s=new e.Bimface.Marker.DrawingdAdapter(this.mapHelper,t.viewer)}else if(t.minimap){this.mapHelper=t.minimap;s=new e.Bimface.Marker.View2dAdapter(this.mapHelper,o);this.mapHelper.setMinimapResizeCallback((function(e){s.resize(e),r._tagHelper.updateGroupName(),r._tagHelper.updateDomContainer(),r._tagHelper.resize(e),r._tagHelper.updateByGroup()})),this.mapHelper.setPlaneChangedCallback((function(){r._tagHelper.updateGroupName(),r._tagHelper.updateByGroup()}));const n={Floor_Plane_Changed_For_Panel:3001,ZOOM_MOUSE_WHEEL:6e3,PAN_MOUSE_MOVE:7e3};this.mapHelper.viewerFloor.addEventListener(n.ZOOM_MOUSE_WHEEL,(function(e){var t=e.data;i.zoomAndPan(t.offsetX,t.offsetY,t.zoomFactor)})),this.mapHelper.viewerFloor.addEventListener(n.PAN_MOUSE_MOVE,(function(e){var t=e.data;i.zoomAndPan(t.offsetX,t.offsetY,t.zoomFactor)})),this.mapHelper.viewerFloor.addEventListener(n.Floor_Plane_Changed_For_Panel,(function(e){var t=i.mapHelper.viewerFloor,o=t.getPanOffset();i.zoomAndPan(o.x,o.y,t.vfData.zoomFactor)}))}else{s=new e.Bimface.Marker.View3dAdapter(o);o.addCallbacks("render",this._renderCallback)}null==r._tagHelper&&(r._tagHelper=new zi(s),r._tagHelper.disableInteractions(!0)),a()},a=function(){r._tagHelper.isInitialized()||r._tagHelper.init()},l=function(e){for(var t=r._tagHelper.getMarkerInfoList(),i=0,o=t.length;i<o;i++){var n=t[i];n.id==e&&r._tagHelper.deleteMarker(n)}};r.clear=function(){r._tagHelper&&r._tagHelper.clearMarkers()},s.Type.inheritPrototype(r,n),r.prototype=Object.assign({},n.prototype,{draw:function(){var e=this.miniTagConfig;!function(e,t){if(!e)return!1;var i=!1,o=r._tagHelper.getMarkerInfoList();e.userId=e.objectId;for(var n=0,s=o.length;n<s;n++)if(o[n].id==e.id)return i=!0,!1;e.floorList?r._tagHelper.setMarkerGroups(e.floorList):r._tagHelper.setMarkerGroups([]),"ViewerDrawing"!=e.config.viewer.viewerType&&r._tagHelper.updateGroupName(),i||r._tagHelper.createMarkerByIntersect(e,t.shape,t.image,t.size)}({id:this.id,config:this._config,objectId:e.objectId,worldPosition:e.worldPosition,floorList:e.floorList},{shape:2,image:e.src,size:{width:e.width,height:e.height}});var t=this.mapHelper.viewerFloor;if(t){var i=t.getPanOffset();this.zoomAndPan(i.x,i.y,t.vfData.zoomFactor)}},show:function(){i.send(t,"show"),r._tagHelper.setVisible(this.id,!0)},hide:function(){i.send(t,"hide"),r._tagHelper.setVisible(this.id,!1)},getFloorList:function(){return this.miniTagConfig.floorList},setFloorList:function(e){i.send(t,"setFloorList"),this.miniTagConfig.floorList=e,l(this.id),this.draw()},getHeight:function(){return this.miniTagConfig.height},setHeight:function(e){i.send(t,"setHeight"),this.miniTagConfig.height=e,l(this.id),this.draw()},getId:function(){return this.id},getObjectId:function(){return this.miniTagConfig.objectId},setObjectId:function(e){i.send(t,"setObjectId");var o=this.miniTagConfig;l(this.id),o.objectId=e,this.draw()},getSrc:function(){return this.miniTagConfig.src},setSrc:function(e){i.send(t,"setSrc"),this.miniTagConfig.src=e,l(this.id),this.draw()},getWidth:function(){return this.miniTagConfig.width},setWidth:function(e){i.send(t,"setWidth"),this.miniTagConfig.width=e,l(this.id),this.draw()},getWorldPosition:function(){return this.miniTagConfig.worldPosition},setWorldPosition:function(e){i.send(t,"setWorldPosition"),this.miniTagConfig.worldPosition=e,l(this.id),this.draw()},onClick:function(e){i.send(t,"onClick"),r._tagHelper.setMarkerClickCallback(e)},onRightClick:function(e){i.send(t,"onRightClick"),r._tagHelper.setMarkerRightClickCallback(e)},onEndDrag:function(e){i.send(t,"onEndDrag")},zoomAndPan:function(e,t,i){r._tagHelper.zoomAndPanMarkerById(this.id,e,t,i)}}),o.MiniTag=r}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),i=new e.Bimface.Plugins.Drawable.DrawableItemConfig;t.ClusterTagConfig=function(){return Object.assign({},i,{width:52,height:57,content:"",src:null,offsetX:0,offsetY:0})}}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),i=e.Bimface.Plugins.Drawable.DrawableItem,o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=function(t){i.call(this,t),this.includedTags=[],this.clusterBbox=null,this.attachFilter=t.attachFilter;let n=o.create("div","bf-drawable-cluster");n.style.position="absolute",n.style.width=`${t.width}px`,n.style.height=`${t.height}px`,n.innerHTML=this.getClusterTagHtml();let s=o.create("div","bf-drawable-cluster-textarea");s.innerText=t.content,n.appendChild(s),this.clusterStyle=e.Bimface.Plugins.Cluster.ClusterStyle.Success,this.forceHide=!1,this._config=t,this._domTextArea=s,this._container=n,this.hookEvents()};e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility").Type.inheritPrototype(n,i);!function(e,t){var i=t.prototype;for(var o in e)i[o]=e[o]}({hookEvents:function(){let e=this._container,t=this;this.isMouseDown=!1,e.addEventListener("mouseup",(function(e){t.isMouseDown=!1})),e.addEventListener("mousemove",(function(e){t.isMouseDown||t.onHoverCallback&&t.onHoverCallback({id:t.id,position:t.worldPosition,includedTags:t.getIncluded(),boundingBox:t.clusterBbox})})),e.addEventListener("mousedown",(function(e){(e||window.event).stopPropagation(),t.isMouseDown=!0,t.onClickCallback&&t.onClickCallback({id:t.id,position:t.worldPosition,includedTags:t.getIncluded(),boundingBox:t.clusterBbox})}))},draw:function(e){var t=this._container,i=this._config;t.style.left=e.clientPosition.x+i.offsetX-i.width/2+"px",t.style.top=e.clientPosition.y+i.offsetY-i.height/2+"px",e.rootDomElement.appendChild(t)},getClusterTagHtml(){let e='<defs><filter x="-23.9%" y="-21.4%" width="147.7%" height="142.9%" filterUnits="objectBoundingBox" id="filter-clustertag"><feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset><feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix> <feMerge><feMergeNode in="shadowMatrixOuter1"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter> </defs>';this.attachFilter||(e="");let t='<svg width="52px" height="57px" version="1.1" transform="translate(0,0)">'+e;return t+=`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="编组" filter="#filter-clustertag" transform="translate(4.000000, 3.000000)"> <path id="${this.id}" d="M43.7259252,22.0045824 C43.7259252,9.85175882 33.9373645,0.000288235294 21.8628598,0.000288235294 C9.78835514,0.000288235294 0.000205607477,9.85175882 0.000205607477,22.0045824 C0.000205607477,29.7679941 3.99803738,36.5872294 10.0313832,40.5039353 L10.0202804,40.5039353 L21.8628598,48.6045824 L33.7058505,40.5039353 L33.6947477,40.5039353 C39.7276822,36.5872294 43.7259252,29.7679941 43.7259252,22.0045824" id="Fill-1" fill="#32D3A6"></path><circle fill="#FFFFFF" cx="22" cy="22" r="16"></circle></g></g></svg>`,t},setScale:function(e){this._container.style.transform=`scale(${e})`},getText:function(){return this._domTextArea.innerText},setText:function(e){this._domTextArea.innerText=e},updateText:function(){let e=this.getIncluded().length;e<=99?this.setText(e.toString()):this.setText("99+")},show:function(){this._container.style.display="block",this.forceHide=!1},hide:function(){this._container.style.display="none",this.forceHide=!0},onClick:function(e){this.onClickCallback=e},onHover:function(e){this.onHoverCallback=e},include:function(e){this.includedTags.push(e)},isInclude:function(e){for(const t of this.includedTags)if(t.getId()===e)return!0;return!1},setBoundingBox:function(e){this.clusterBbox=e},getIncluded:function(){return this.includedTags},getContainer:function(){return this._container},hideIncludedTags:function(){for(const e of this.includedTags)e.isHideByClustering=!0},showIncludedTags:function(){for(const e of this.includedTags)e.isHideByClustering=!1},getCurrentPosition:function(){return{x:this.worldPosition.x,y:this.worldPosition.y,z:this.worldPosition.z}},setStyle:function(e){this.clusterStyle=e;let t=document.getElementById(this.getId());t&&(t.style.fill=e),this._domTextArea.style.color=e},getStyle:function(){return this.clusterStyle},getOpacity:function(){return""===this._container.style.opacity?1:this._container.style.opacity},setOpacity:function(e){this._container.style.opacity=e},resetClientPosition:function(e){const t=this._container,i=this._config;"Viewer3D"!==this.viewer.viewerType&&"ViewerGIS"!==this.viewer.viewerType||(e=this.viewer.worldToClient(e)),t.style.left=e.x+i.offsetX-i.width/2+"px",t.style.top=e.y+i.offsetY-i.height/2+"px"},setContainerVisible(e){this._container.style.display=!0===e?"block":"none"},play:function(e){if(!(this.clusterBbox&&this.clusterBbox.center&&this.includedTags.length>0))return void console.log("clusterBbox");const t=this.clusterBbox.center,i=this.includedTags,o=i.length;for(let e=0;e<o;e++){const t=i[e];t.originClientPosition=t.clientPosition}this.time=500;let n=(new Date).valueOf(),s=n-16;this.progress=0;let r=()=>{this.animationId=requestAnimationFrame(r),this.progress>=1&&(this.curvePos=1,e&&e(),cancelAnimationFrame(this.animationId),this.progress=0),(e=>{for(let n=0;n<o;n++){const o=i[n];let s=o.originClientPosition;s.x=s.x+(t.x-s.x)*e,s.y=s.y+(t.y-s.y)*e,o.resetClientPosition(s)}})(this.progress),n=(new Date).valueOf();const a=n-s;s=n,this.progress+=a/this.time};r()}},n),t.ClusterTag=n}(),function(){var t="Bimface.Plugins.Drawable.DrawableContainer",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Drawable"),n=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Bimface.Plugins.Drawable.ClusterTag);o.DrawableContainer=class{constructor(t){let i=this,o=t.viewer;if(o.drawableContainer)return o.drawableContainer;o.drawableContainer=this;let n=e.Bimface.Viewer.ViewerDrawing&&o instanceof e.Bimface.Viewer.ViewerDrawing,s=e.Bimface.Viewer.Viewer3D&&"Viewer3D"===o.viewerType,r=e.Bimface.Viewer.ViewerDrawingSet&&o instanceof e.Bimface.Viewer.ViewerDrawingSet,a=e.Bimface.Viewer.ViewerGIS&&o instanceof e.Bimface.Viewer.ViewerGIS,l=new e.Web.Lang.EventManager,h=new e.Bimface.Plugins.Drawable.DrawableContext;this.bIsEnableMinitagUpdate=!0,this.boxMap={},i._enableRender=t.enableRender,o.addEventListener("Rendered",(function(e){i.bIsEnableMinitagUpdate=!1,i.update(e),i.bIsEnableMinitagUpdate=!0}));let c=()=>{let t=o.getViewer();t.registerEventListener(CLOUD.EVENTS.ON_EXPLOSION,(i=>{let o=this.getAllItems();for(let n=0,s=o.length;n<s;n++)o[n]instanceof e.Bimface.Plugins.Drawable.MiniTag||Pi.attachExplosionOffset(t,i.extent,o[n])}))};if(n)o.getRootElement().appendChild(h.rootDomElement);else if(r){o.getActiveDrawing().viewerDrawing.getRootElement().appendChild(h.rootDomElement)}else a?(o.getDomElement().appendChild(h.rootDomElement),this.calculateViewerGISExplosionOffset=e=>{const t=o.getViewer(),n=e.modelId,s=e.floorInfos.length,r=t.getFloorExplosionExtent(n),a=t.getFloorExplosionDirection(n);if(0===r)for(const e of i.getAllItems())e.setInitialExplosionInfo(o);const l=e.floorInfos;let h=[];for(var c=0;c<s;c++){let e=l[c],t=l[c+1],i=l[c-1];if(h.push({box:{min:i?e.boundingBox.min.z:-1/0,max:t?t.boundingBox.min.z:1/0},floorName:e.name,explodedOffset:e.explodedHeight-e.elevation}),h.length==s){this.boxMap[n]=h;break}}const d=o.getLayerManager();let g=this._items;for(let e=0,t=g.length;e<t;e++){if(!g[e].getWorldPosition())continue;const t=d.getLayer(g[e].layerId);if(!t||!t.modelId)continue;if(t.modelId.toString()!==n||!g[e].levelName)continue;let i=h.getObjectByAttribute("floorName",g[e].levelName);i&&(g[e].explosionOffset={x:a.x*i.explodedOffset,y:a.y*i.explodedOffset,z:a.z*i.explodedOffset})}},o.addEventListener(e.Bimface.Viewer.ViewerGISEvent.FloorExplosion,(e=>{this.calculateViewerGISExplosionOffset(e)})),c()):(o.getDomElement().appendChild(h.rootDomElement),t.affectedBySection&&(o.addEventListener(e.Bimface.Plugins.Section.SectionBoxEvent.SectionBoxUpdate,(function(e){i.section=e,i.update()})),o.addEventListener(e.Bimface.Plugins.Section.SectionPlaneEvent.SectionPlaneUpdate,(function(e){i.section=e,i.update()}))),this.calculateViewer3dExplosionOffset=e=>{const t=e.modelId,n=e.floorInfos.length,s=o.getDefaultModel().modelId.toString(),r=o.getModel(t).getFloorExplosionExtent(),a=o.getModel(t).getFloorExplosionDirection();if(0===r)for(const e of i.getAllItems())e.setInitialExplosionInfo(o);let l=[];i.floorInfos=e;var h=function(){let e=i._items;for(let o=0,n=e.length;o<n;o++){let n=e[o].getWorldPosition();if(n)if(!0!==e[o]._isBindRoom)if(e[o].levelName){let t=l.getObjectByAttribute("floorName",e[o].levelName);t&&(e[o].explosionOffset={x:a.x*t.explodedOffset,y:a.y*t.explodedOffset,z:a.z*t.explodedOffset})}else if(t!==s)e[o].explosionOffset={x:e[o].explosionOffset.x,y:e[o].explosionOffset.y,z:e[o].explosionOffset.z};else{let t=!0;for(let i=0;i<l.length;i++){const s=l[i];if(s.box.min<n.z&&s.box.max>n.z){e[o].explosionOffset={x:a.x*s.explodedOffset,y:a.y*s.explodedOffset,z:a.z*s.explodedOffset},e[o].levelName=s.floorName,t=!1;break}}t&&(e[o].explosionOffset={x:0,y:0,z:0})}else{const t=i._viewer.getViewer().modelManager.modelCollection.getById("ExtrudeBodyManager").getNode(e[o]._config.objectId),n=t.explodedHeight,s=t.explodedDirection;e[o].explosionOffset={x:s.x*n,y:s.y*n,z:s.z*n}}}};if(n)for(var c=0;c<n;c++){let t=e.floorInfos[c],o=e.floorInfos[c+1],s=e.floorInfos[c-1];l.push({box:{min:s?t.boundingBox.min.z:-1/0,max:o?o.boundingBox.min.z:1/0},floorName:t.name,explodedOffset:t.explodedHeight-t.elevation}),l.length==n&&(h(),i.boxs=l)}},o.addEventListener(e.Bimface.Viewer.Viewer3DEvent.FloorExplosion,(e=>{this.calculateViewer3dExplosionOffset(e)})),c());i._items=[],i._viewer=o,i._context=h,i._isDrawingView=n,i._isDrawingViewSet=r,i._isViewer3D=s,i._isViewerGIS=a,i._areaData={},i.loadAreas=void 0,i.addItemCallback=[],i._maxNum=t.maxNum,i.getEventManager=function(){return l}}addItem(o){i.send(t,"addItem");const n=this._items,s=this._viewer;if(o.viewer=s,o.update=this.update.bind(this),!o.worldPosition)return;if(o instanceof e.Bimface.Plugins.Drawable.MiniTag)n.push(o),this.update();else{let e=Pi.ifExploded(s,o,this._isViewerGIS);e&&("Viewer3D"===this._viewer.getViewerType()&&e.setInitialExplosionInfo(this._viewer),n.push(e),this._enableRender&&this.update())}}getLevelNameById(t,i){if(!this._spatialRelation){let t=new e.Bimface.Plugins.SpatialRelation.RoomConfig;t.viewer=this._viewer;let i=new e.Bimface.Plugins.SpatialRelation.Room(t);this._spatialRelation=i}let o=this._spatialRelation.getBoundaryByRoomId(t);if(o){if(this._levelsInfo)return levelName=function(e,t){let i=e[0][2];for(let e=0;e<t.length;e++)if(Math.abs(i-t[e].elevation)<5)return t[e].name;return!1}(o,this._levelsInfo),levelName;(this._isViewer3D?this._viewer.getDefaultModel():this._viewer).getMapInfo((e=>{this._levelsInfo=e.axisGrid.Levels,this.addItem(i)}))}}removeItemById(e){i.send(t,"removeItemById");let o=this._items.removeObjectByAttribute("id",e);o=o&&o[0];let n=o._domElement||o._container;o&&this._context.rootDomElement.contains(n)&&n.remove(),o._svgGroup&&this._context.svgContainer.contains(o._svgGroup)&&this._context.svgContainer.removeChild(o._svgGroup),this.update()}getItemById(e){return this._items.getObjectByAttribute("id",e)}getAllItems(){return this._items}addItems(e){if(i.send(t,"addItems"),e.length)for(var o=0;o<e.length;o++)e[o].update=this.update.bind(this),e[o].viewer=this._viewer;if("Viewer3D"===this._viewer.getViewerType()||this._isViewerGIS)for(const t of e){let e=Pi.ifExploded(this._viewer,t,this._isViewerGIS);e&&this._items.push(e),t.setInitialExplosionInfo(this._viewer)}else for(const t of e)this._items.push(t);this._enableRender&&this.update()}clear(){i.send(t,"clear"),this._items=[],this._context.rootDomElement.innerHTML="",this._context.domContainer=null,this._context.svgContainer=null,this.update()}update(){let t=this._items,i=this._viewer,o=this._context,n=this._maxNum;var s=document.body.getBoundingClientRect(),r=e.Bimface.Plugins.Drawable.MiniTag;if(this.bIsEnableMinitagUpdate&&r.clear(),this._isDrawingView&&(i=i.getViewer()),this._isDrawingView)for(let n=0,r=t.length;n<r;n++){let r=t[n].getWorldPosition();if(r)if(t[n]instanceof e.Bimface.Plugins.Drawable.ClusterTag){let e=i.toScreenPoint([r.x,r.y]);o.clientPosition={x:e[0],y:e[1]},t[n].draw(o)}else{var a=i.toScreenPoint([r.x,r.y]);if(t[n]._domElement){var l=t[n]._domElement.offsetWidth/2,h=t[n]._domElement.offsetHeight/2;if(t[n].isHideByClustering){t[n]._domElement.style.display="none";continue}if(a[0]<-l||a[0]>s.width+l||a[1]<-h||a[1]>s.height+h){t[n]._domElement.style.display="none";continue}t[n]._domElement.style.display="block",t[n].updateVisibility()}o.clientPosition={x:a[0],y:a[1]},t[n].draw(o)}}else if(this._isDrawingViewSet)for(let n=0,s=t.length;n<s;n++){let s=t[n].getWorldPosition();a=i.getDrawingById(t[n].viewerDrawingId).viewerDrawing.worldToClient(s);if(o.clientPosition=a,t[n]instanceof e.Bimface.Plugins.Drawable.ClusterTag){let e=i.toScreenPoint([s.x,s.y]);o.clientPosition={x:e[0],y:e[1]},t[n].draw(o)}else t[n].updateVisibility(),t[n].draw(o)}else{for(let o=0,n=t.length;o<n;o++){let n=t[o];n.needForceUpdate&&(n=Pi.ifExploded(i,n,this._isViewerGIS),n.needForceUpdate=!1);let s=n.getCurrentPosition();n.clientPosition=i.worldToClient(s);let r=n._container||n._domElement,a=n._svgGroup;if(n instanceof e.Bimface.Plugins.Drawable.MiniTag||i.isInViewFrustum(s)){if(this.section&&!this.section.isIncluded(s)||n.forceHide||n.isHideByClustering&&!0!==n.isInAnimation){r&&(r.style.display="none"),a&&(a.style.display="none");continue}r&&(r.style.display=""),a&&(a.style.display="")}else r&&(r.style.display="none"),a&&(a.style.display="none")}t.sort((function(e,t){return e.clientPosition.z>t.clientPosition.z?1:-1}));for(let i=0;i<t.length;i++){var c="default";i>=n&&(c="mini"),o.clientPosition=t[i].clientPosition,t[i]instanceof e.Bimface.Plugins.Drawable.MiniTag&&0==this.bIsEnableMinitagUpdate||t[i].draw(o,c)}}}exit(){i.send(t,"exit"),this.clear(),this._context.destroy()}hideItemsById(e){i.send(t,"hideItemsById");let o=this;if(e&&e.length>0)for(let t=0;t<e.length;t++){var n=o.getItemById(e[t]);n&&n.hide()}}hideAllItems(){i.send(t,"hideAllItems");let e=this._items;if(e&&e.length>0)for(let t=0;t<e.length;t++)e[t].hide()}showItemsById(e){i.send(t,"showItemsById");let o=this;if(e&&e.length>0)for(let t=0;t<e.length;t++){var n=o.getItemById(e[t]);n&&n.show()}}showAllItems(){i.send(t,"showAllItems");let e=this._items;if(e&&e.length>0)for(let t=0;t<e.length;t++)e[t].show()}removeClusterTags(e){let t=this.getAllItems();for(let i=t.length-1;i>=0;){let o=t[i];if(o instanceof n&&o.clusterItemId===e){t.splice(i--,1);let e=o.getContainer();this._context.rootDomElement.contains(e)&&e.remove()}else i--}}showItemsByLayerId(e){i.send(t,"showItemsByLayerId");let o=this.getAllItems();for(let t=o.length-1;t>=0;t--){let i=o[t];i.layerId==e&&i.show()}}hideItemsByLayerId(e){i.send(t,"hideItemsByLayerId");let o=this.getAllItems();for(let t=o.length-1;t>=0;t--){let i=o[t];i.layerId==e&&i.hide()}}removeItemsByLayerId(e){i.send(t,"removeItemsByLayerId");let o=this.getAllItems();for(let t=o.length-1;t>=0;){let i=o[t];if(i.layerId==e){let e=i._domElement||i._container;i&&this._context.rootDomElement.contains(e)&&e.remove(),i._svgGroup&&i._svgGroup.parentElement.removeChild(i._svgGroup),o.splice(t--,1)}else t--}}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cluster").ClusterContainerConfig=function(){return{viewer:null,enableAnimation:!0}},function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cluster"));i.ClusterContainer=class{constructor(e){t.send("Bimface.Plugins.Cluster","ClusterContainer"),this.viewer=e.viewer,this.isViewer3D="Viewer3D"===e.viewer.getViewerType()||"ViewerGIS"===e.viewer.getViewerType(),this.clusterItems=[],this._lastZoomFactorData=null,this.hookEvents(e.viewer),this.enableAnimation=!1!==e.enableAnimation}hookEvents(e){let t=e.getViewerType();this.isViewer3D?this.hookViewer3DEvents():"ViewerDrawing"===t?this.hookViewerDrawingEvents():this.hookViewerDrawingSetEvents()}hookViewer3DEvents(){var t=this.viewer.getViewer();let i=[];i.push(CLOUD.EVENTS.ON_EDITOR_ZOOM),i.push(CLOUD.EVENTS.ON_EDITOR_PANING),i.push(CLOUD.EVENTS.ON_EDITOR_ROTATING),i.push(CLOUD.EVENTS.ON_EDITOR_WALKING),i.push(CLOUD.EVENTS.ON_CAMERA_ANIMATION_UPDATE);for(const e of i)t.registerEventListener(e,(()=>{this.update()}));t.registerEventListener(CLOUD.EVENTS.ON_EXPLOSION,(()=>{this.update(!0)})),this.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.FloorExplosion,(()=>{for(const e of this.clusterItems)e.meanShift=null;this.update(!0)}))}hookViewerDrawingEvents(){let t=e.Bimface.Viewer.ViewerDrawingEvent;this.viewer.addEventListener(t.ZoomFactorChanged,(e=>{let t=!1;(null===this._lastZoomFactorData||e>=this._lastZoomFactorData)&&(t=!0),this.update(!1,t),this._lastZoomFactorData=e}))}hookViewerDrawingSetEvents(){let t=e.Bimface.Viewer.ViewerDrawingSetEvent;this.viewer.addEventListener(t.ZoomFactorChanged,(e=>{let t=!1;(null===this._lastZoomFactorData||e>=this._lastZoomFactorData)&&(t=!0),this.update(!1,t),this._lastZoomFactorData=e}))}addCluster(e){this.clusterItems.push(e),e.setIsNeedMakingClusterTag(!0)}addClusters(e){for(const t of e)this.addCluster(t)}getClusterById(e){for(const t of this.clusterItems)if(t.getId()===e)return t;return null}getClusters(){return this.clusterItems}removeClustersById(e){let t=this.clusterItems;for(let i=t.length-1;i>=0;){let o=t[i];e.indexOf(o.id)>=0?(o.clearClusterTags(),t.splice(i--,1)):i--}}clear(){for(const e of this.clusterItems)e.clearClusterTags();this.clusterItems=[]}update(e,t){for(const i of this.clusterItems){if(this.isViewer3D){if(0===i.calcClusterLevel()){i.clearClusterTags();continue}}(e||i.isNeedClustering())&&i.clustering(t),i.updateClusterTags(this.enableAnimation)}}enableClusterAnimation(e){this.enableAnimation=e}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cluster").ClusterItemConfig=function(){return{scale:1,tags:[],distance:50,maxLevel:4,style:e.Bimface.Plugins.Cluster.ClusterStyle.Success,minClusterSize:2,viewer:null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cluster");let i=Object.freeze({Danger:"#FF001F",Information:"#1A82FC",Success:"#32D3A6",Warning:"#FF9D0B"});t.ClusterStyle=i}();class Xi{constructor(e){this.viewer3d=e.viewer,this.currentLevel=0,this._maxLevel=e.maxLevel,this._minClusterSize=e.minClusterSize,this._sceneSize=new THREE.Vector3}prepareTagPositions(e){let i=[];for(let o=0;o<e.length;o++){let n=e[o].getCurrentPosition(),s=new t(n.x,n.y,n.z);s.index=o,i.push(s)}return i}calcSearchRange(e){return this.currentLevel=this.calcClusterLevel(e),this.getSearchRangeScalar(this.currentLevel,this.getMaxLevel())*this.getLength(e)[1]}getSearchRangeScalar(e,t){return.5**(t-e)}calcClusterLevel(e){if(!e)return 0;let t=this.getLength(e),i=this.getMaxLevel(),o=20*t[1]/t[2],n=t[0]*o/t[1],s=Math.exp(Math.log(40)/(i-1)),r=-1;for(let e=i;e>=1;e--)if(n>=.5*s**(e-1)){r=e;break}return-1===r&&(r=0),r}getLength(e){let o=this.prepareTagPositions(e),n=this.viewer3d.getCameraStatus().position;n=new t(n.x,n.y,n.z);let s=(new i).setFromPoints(o).getSize().length(),r=n.distanceTo(o[0]);o.forEach((e=>{const t=n.distanceTo(e);r=Math.min(r,t)}));let a=.995*this.getCameraMaxRange(),l=[];return l.push(r),l.push(s),l.push(a),l}getCameraMaxRange(){var e=this.viewer3d.getViewer(),t=e.camera;e.getBoundingBoxWorld().getSize(this._sceneSize);const i=.5*this._sceneSize.length()/Math.tan(THREE.Math.degToRad(.5*t.fov));return e.cameraControl.getMaximalRangeofCamera()*i}setMaxLevel(e){this._maxLevel=e}getMaxLevel(){return this._maxLevel}getMinClusterSize(){return this._minClusterSize}setMinClusterSize(e){this._minClusterSize=e}isLevelChanged(e){return this.calcClusterLevel(e)!==this.currentLevel}cullingByFrustum(e){for(const t of e){this.viewer3d.isInViewFrustum(t.worldPosition)?t.show():t.hide()}}getBoundingbox(e){return e.min=e.bbox.min,e.max=e.bbox.max,e}getCenter(e){return e.center}setDistance(){console.log("ClusterItem3D doesn't support setDistance.")}getDistance(){console.log("ClusterItem3D doesn't support getDistance.")}clustering(e,t){e.clustering(t,!0)}}class _i{constructor(e){this.viewerDrawing=e.viewer,this.searchRange=e.distance,this._minClusterSize=e.minClusterSize}prepareTagPositions(e){let i=[];for(let o=0;o<e.length;o++){let n=e[o].getWorldPosition();n=this.viewerDrawing.worldToClient(n);let s=new t(n.x,n.y,n.z);s.index=o,i.push(s)}return i}calcSearchRange(e){return this.searchRange}isLevelChanged(){return!0}setDistance(e){this.searchRange=e}getDistance(){return this.searchRange}setMaxLevel(e){console.log("Drawing clustering has no maxlevel.")}getMaxLevel(){console.log("Drawing clustering has no maxLevel.")}getMinClusterSize(){return this._minClusterSize}setMinClusterSize(e){this._minClusterSize=e}cullingByFrustum(){}getBoundingbox(e){return e}getCenter(e){let t=e.center;return this.viewerDrawing.clientToWorld(t)}clustering(e,t){e.clustering(t,!1,(e=>{const t=this.viewerDrawing.getViewer(),i=t.width,o=t.height;return!(e.x<0||e.x>i||e.y<0||e.y>o)}))}}class $i{constructor(){}}$i.time=300,$i.Play=function(e){const{clusterTags:t,lastClusterTags:i,clusters:o,lastClusters:n,enableAnimation:s,isZoomIn:r,tags:a,container:l}=e;(()=>{for(const e of t)e.updateText()})();!1===s||null===n||(()=>{const e=o.length;if(e!==n.length)return!1;for(let t=0;t<e;t++)if(o[t].id!==n[t].id)return!1;return!0})()||(!0===r?$i.ZoomInPlay(t,i,o,n,a):$i.ZoomOutPlay(t,i,o,n,a,l))},$i.getCluster=function(e,t){for(const i of e)if(i.id===t)return i},$i.getClusterTag=function(e,t){for(const i of e)if(i.clusterBbox.id===t)return i},$i.getIndices=function(e){let t=[];for(const i of e.points)t.push(i.index);return t},$i.getEndClientPosition=function(e){return e instanceof Glodon.Bimface.Plugins.Marker3D.Marker3D?e.position:"Viewer3D"===e.viewer.viewerType||"ViewerGIS"===e.viewer.viewerType?{x:e.worldPosition.x+e.explosionOffset.x,y:e.worldPosition.y+e.explosionOffset.y,z:e.worldPosition.z+e.explosionOffset.z}:e.clientPosition},$i.ZoomInPlay=function(e,t,i,o,n,s){for(const o of i){if(o.id===o.parent)continue;const i=o.parent,s=$i.getClusterTag(t,i);for(const r of t)if(r.clusterBbox.id===i){const t=$i.getClusterTag(e,o.id),i=r.clusterBbox.center;let a=null;if(t){a=t.clusterBbox.center,$i.CreateZoomAnimation(t,s,i,a,!0);continue}const l=$i.getIndices(o);for(const e of l){let t=n[e];a=$i.getEndClientPosition(t),a&&(t.setContainerVisible(!0),$i.CreateZoomAnimation(t,s,i,a,!0))}}}},$i.CreateZoomAnimation=function(e,t,i,o,n,s){let r=0,a=e.getOpacity(),l=a;t.show(),!0===n&&(r=1,a=0),t.setOpacity(r),e.setOpacity(a);let h=(new Date).valueOf(),c=h-16,d=0,g=()=>{const n=requestAnimationFrame(g);if(d>=1)return d=1,e.resetClientPosition(o),e.setOpacity(l),s&&s(),void cancelAnimationFrame(n);(n=>{const s={x:i.x+(o.x-i.x)*n,y:i.y+(o.y-i.y)*n,z:i.z+(o.z-i.z)*n};t.setOpacity(Math.abs(r-n)),e.setOpacity(l*Math.abs(1-r-n)),e.resetClientPosition(s)})(d),h=(new Date).valueOf();const a=h-c;c=h,d+=a/this.time};g()},$i.ZoomOutPlay=function(e,t,i,o,n,s){for(const r of i){const i=r.children;if(0===i.length)continue;const a=$i.getClusterTag(e,r.id);if(a)for(const e of i){const i=$i.getClusterTag(t,e),l=r.center;let h=null;if(i){h=i.clusterBbox.center,$i.CreateZoomOutAnimation(i,a,h,l,s);continue}const c=$i.getCluster(o,e),d=$i.getIndices(c);for(const e of d){let t=n[e];h=$i.getEndClientPosition(t),h&&$i.CreateItemZoomOutAnimation(t,a,h,l,s)}}}},$i.CreateZoomOutAnimation=function(e,t,i,o,n){const s=e.getContainer();n._context.rootDomElement.appendChild(s),$i.CreateZoomAnimation(e,t,i,o,!1,(()=>{t.show(),s.remove()}))},$i.CreateItemZoomOutAnimation=function(e,t,i,o,n){e.setContainerVisible(!0),e.isInAnimation=!0,$i.CreateZoomAnimation(e,t,i,o,!1,(()=>{t.show(),e.isInAnimation=null,e.setContainerVisible(!1)}))},function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cluster"));class o{constructor(i){t.send("Bimface.Plugins.Cluster","ClusterItem"),this.viewer=i.viewer,this.isViewer3D="Viewer3D"===i.viewer.getViewerType()||"ViewerGIS"===i.viewer.getViewerType(),this.impl=this.isViewer3D?new Xi(i):new _i(i),this.id=e.Web.Lang.Utility.UUID.createUUID(),this.setTags(i.tags),this._isVisible=!0,this.clusterTags=[],this._mapTagIsExist={},this._mapClusterTags={},this.mapDrawableStyle={},this.mapClusterException={},this.onClusterChanged=null,this.clusterStyle=i.style,this.scale=i.scale,this._isNeedClustering=!0,this._isNeedMakingClusterTag=!0,this.meanShift=null,this._lastSearchRange=null,this._lastClusters=null,this._lastClusterTags=null}setScale(e){this.scale=e,this.makeClusterTags()}getScale(){return this.scale}getId(){return this.id}getTags(){return this._tags}addTags(t){for(let i=0;i<t.length;i++){let o=t[i];o instanceof e.Bimface.Plugins.Drawable.MiniTag||!0!==this._mapTagIsExist[o.id]&&(this._tags.push(o),this._mapTagIsExist[o.id]=!0)}this._isNeedClustering=!0,this.meanShift=null}getMinClusterSize(){return this.impl.getMinClusterSize()}setMinClusterSize(e){"number"==typeof e&&e>0?(this.impl.setMinClusterSize(e),this._isNeedClustering=!0):console.log("Invalid param, please input valid param.")}setTags(e){if(0!==e.length){if(this._tags)for(const e of this._tags)e.isHideByClustering=!1;this._tags=[],this._mapTagIsExist={},this.addTags(e)}}removeTagsByIds(e){for(let t=this._tags.length-1;t>=0;){let i=this._tags[t];e.indexOf(i.id)>=0?(this._tags.splice(t--,1),delete this._mapTagIsExist[i.id],i.isHideByClustering=!1):t--}this._isNeedClustering=!0}setDistance(e){this.impl.setDistance(e)}getDistance(){return this.impl.getDistance()}getMaxLevel(){return this.impl.getMaxLevel()}setMaxLevel(e){this.impl.setMaxLevel(e),this._isNeedClustering=!0}onClick(e){this.onClickCallback=e;for(const e of this.clusterTags)e.onClick(this.onClickCallback)}onHover(e){this.onHoverCallback=e;for(const e of this.clusterTags)e.onClick(this.onHoverCallback)}hide(){for(const e of this.clusterTags)e.hide();for(let e=0;e<this._tags.length;e++)this._tags[e].isHideByClustering=!0;this._getContainer().update(),this._isVisible=!1}show(){for(const e of this.clusterTags)e.show();this._isVisible=!0,this.clustering(),this.updateClusterTags()}getClusterTagById(e){for(const t of this.clusterTags)if(t.isInclude(e))return t;return null}getClusterTag(e){let t=this._mapClusterTags[e];return t||(console.log("Can't find a cluster tag whose id is "+e),null)}onClusterChange(e){this.onClusterChanged=e}getStyle(){return this.clusterStyle}setStyle(e){this.clusterStyle=e;for(const t of this.clusterTags)t.setStyle(e)}getStyleById(e){let t=this.getClusterTag(e);return t&&t.getStyle()}setStyleById(e,t){let i=this.getClusterTag(e);return i&&i.setStyle(t)}setException(e,t){[].concat(e).forEach((e=>{this.mapDrawableStyle[e]=t}))}removeException(e){[].concat(e).forEach((e=>{delete this.mapDrawableStyle[e]}))}clearException(){let t=Object.keys(this.mapDrawableStyle),i=e.Bimface.Plugins.Cluster.ClusterStyle.Success;t.forEach((e=>{this.mapDrawableStyle[e]=i}))}_updateMapException(){let e=Object.keys(this.mapDrawableStyle);this.mapClusterException={};let t=this.mapClusterException;for(const i of e){let e=this.getClusterTagById(i);if(!e)continue;let o=e.getId(),n=this.mapDrawableStyle[i];t[o]||(t[o]={}),t[o][n]=!0}}_updateCurrentStyle(){this._updateMapException();for(const e of this.clusterTags){let t=e.getId(),i=this.mapClusterException;if(!i[t]){this.setStyleById(t,this.clusterStyle);continue}let o=this._getStyleInOrder(i[t]);o&&this.setStyleById(t,o)}}_getStyleInOrder(t){let i=e.Bimface.Plugins.Cluster.ClusterStyle,o=[i.Danger,i.Warning,i.Information,i.Success];for(const e of o)if(t[e])return e;return i.Success}clustering(t){if(!1===this._isVisible)return;let i=this.getTags();for(const e of i)e.isHideByClustering=!1;let o=this.impl.calcSearchRange(this.getTags()),n=this.impl.prepareTagPositions(this.getTags());null===this.meanShift&&(this.meanShift=new e.Web.Algorithm.MeanShift(n,o)),this.meanShift.setSearchRange(o),this.meanShift.setPoints(n);let s=!0;null!=this._lastSearchRange&&this._lastSearchRange<o&&(s=!1),this.isZoomIn=void 0!==t?t:s,this.impl.clustering(this.meanShift,this.isZoomIn),this._lastSearchRange=o,this._isNeedClustering=!1,this._isNeedMakingClusterTag=!0}updateClusterTags(e){if(!1!==this._isVisible)if(this.isNeedMakingClusterTag())this.makeClusterTags(e),!1===this._isVisible&&this.hide(),this._isNeedMakingClusterTag=!1,this.onClusterChanged&&this.onClusterChanged();else if(this._isVisible)return this.impl.cullingByFrustum(this.clusterTags),this._getClusterContainer().update(),void this._updateCurrentStyle()}makeClusterTags(e){for(let e=0;e<this._tags.length;e++)this._tags[e].isHideByClustering=!1,!0===this._tags[e].forceHide&&(this._tags[e].forceHide=!1);this.clusterTags=[],this._mapClusterTags={};let t=!1;for(const e of this.meanShift.clusters){let i=this._getIndices(e);if(i.length<this.impl.getMinClusterSize())continue;let n=o.makeClusterTag(this.impl.getCenter(e),t,this.scale);t=!0;for(const t of i){let i=this._tags[t];i&&(i.isHideByClustering=!0,n.include(i),n.setBoundingBox(this.impl.getBoundingbox(e)))}n.clusterItemId=this.id,this.onClickCallback&&n.onClick(this.onClickCallback),this.onHoverCallback&&n.onHover(this.onHoverCallback),this.clusterTags.push(n),this._mapClusterTags[n.getId()]=n}this.impl.cullingByFrustum(this.clusterTags),this._getClusterContainer().removeClusterTags(this.id),this._getClusterContainer().addItems(this.clusterTags),this._updateCurrentStyle(),this._getContainer().update();const i={clusterTags:this.clusterTags,lastClusterTags:this._lastClusterTags,clusters:this.meanShift.clusters,lastClusters:this._lastClusters,enableAnimation:e,isZoomIn:this.isZoomIn,tags:this._tags,container:this.viewer.drawableContainer};$i.Play(i),this._lastClusterTags=this.clusterTags,this._lastClusters=this.meanShift.clusters}clearClusterTags(){if(!this._tags)return;for(let e=0;e<this._tags.length;e++)this._tags[e].isHideByClustering=!1,!0===this._tags[e].forceHide&&(this._tags[e].forceHide=!1);this._getClusterContainer().removeClusterTags(this.id),this._getContainer().update()}calcClusterLevel(){return this.impl.calcClusterLevel(this.getTags())}_getClusterContainer(){let t=this.viewer.drawableContainer;if(!t){var i=new e.Bimface.Plugins.Drawable.DrawableContainerConfig;i.viewer=this.viewer,t=new e.Bimface.Plugins.Drawable.DrawableContainer(i)}return t}isNeedClustering(){return this._isNeedClustering||this.impl.isLevelChanged(this.getTags())}isNeedMakingClusterTag(){return this._isNeedMakingClusterTag}setIsNeedMakingClusterTag(e){this._isNeedMakingClusterTag=e}_getContainer(){return this._tags[0]instanceof e.Bimface.Plugins.Marker3D.Marker3D?this.viewer.marker3DContainer:this.viewer.drawableContainer}_getIndices(e){let t=[];for(const i of e.points)t.push(i.index);return t}}o.makeClusterTag=function(t,i,o){let n=new e.Bimface.Plugins.Drawable.ClusterTagConfig;n.worldPosition=t,n.attachFilter=!i;let s=new e.Bimface.Plugins.Drawable.ClusterTag(n);return s.setScale(o),s},i.ClusterItem=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure").MeasureConfig=function(){return{viewer:null,measureType:e.Bimface.Plugins.Measure.MeasureTypeOption.Distance,color:new e.Web.Graphics.Color(249,157,11,1),hoverColor:new e.Web.Graphics.Color(17,218,183,.2),width:3,radius:25,snapDistance:5,precision:{distance:3,elevation:3,area:3,angle:2,latLon:9},scale:1,units:null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure");let i=Object.freeze({Measuring:"Measuring",Measured:"Measured",Reset:"Reset",MeasureSelected:"MeasureSelected",MeasureUnselected:"MeasureUnselected"});t.MeasureEvent=i}(),function(){let t=Object.freeze({Distance:"Distance",Area:"Area",Angle:"Angle",MinimumDistance:"MinimumDistance",Elevation:"Elevation",Position:"Position",PolylineDistance:"PolylineDistance",TriangleDistance:"TriangleDistance",SpatialArea:"SpatialArea",ProjectedArea:"ProjectedArea",SurfaceArea:"SurfaceArea",GroundlineDistance:"GroundlineDistance",Volume:"Volume",LaserClearDistance:"LaserClearDistance"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure").MeasureTypeOption=t}(),function(){let t=Object.freeze({None:"None",Kilometer:"Kilometer",Meter:"Meter",Centimeter:"Centimeter",Millimeter:"Millimeter"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure").LengthUnits=t}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure").MeasureItemConfig=function(){return{id:null,color:new e.Web.Graphics.Color(255,157,11,1),hoverColor:new e.Web.Graphics.Color(17,218,183,.2),fillColor:new e.Web.Graphics.Color(255,157,11,.2),objectColor:new e.Web.Graphics.Color(17,218,183,.9),width:3,radius:25,viewer:null}};class eo{constructor(e){this.type=e,this.observer=null}initialize(){this.notationSelected=[],this.notationUnselected=[],this.notationSegmentRects=[]}drawAnnotation(e,t){}calcAnnotationStyle(e,t){}select(){this.isInitialized()&&(this.notationUnselected.forEach((e=>{e.style.display="none"})),this.notationSelected.forEach((e=>{e.style.display="block"})))}unselect(){this.isInitialized()&&(this.notationUnselected.forEach((e=>{e.style.display="block"})),this.notationSelected.forEach((e=>{e.style.display="none"})))}dropShadow(e){this.isInitialized()&&this.notationUnselected.forEach((t=>{t.setAttribute("filter",e),t.setAttribute("filter",e)}))}isInitialized(){return!!this.notationUnselected&&!!this.notationSelected}clear(){this.notationSelected=[],this.notationUnselected=[],this.notationSegmentRects=[]}hitTest(e){if(!this.isInitialized())return!1;let t=this.hitTestEpsilon;return this.notationSegmentRects.some((i=>O.distanceToSegment(e,i.start,i.end)<=t))}}class to extends eo{constructor(e){super(e),this.defaultColor="#F99D0B",this.initialize()}initialize(){super.initialize(),this.annotationStyle={height:21,radius:4},this.hitTestEpsilon=this.annotationStyle.height/2}drawAnnotation(e,t,i,n){var s=this.calcAnnotationStyle(t,e),r=O.makeRectangle({x:s.offsetRect.x,y:s.offsetRect.y,width:s.width,height:this.annotationStyle.height,radius:this.annotationStyle.radius,fillColor:n||this.defaultColor});this.notationUnselected.push(r);let a=O.makeRectangle({x:s.offsetRect.x-2,y:s.offsetRect.y-2,width:s.width+4,height:this.annotationStyle.height+4,radius:this.annotationStyle.radius,strokeColor:"#FFFFFF",fillColor:n||this.defaultColor});this.notationSelected.push(a);let l=new o(s.offsetRect.x,s.offsetRect.y+this.annotationStyle.height/2),h=new o(s.offsetRect.x+s.width,l.y);this.notationSegmentRects.push({start:l,end:h});var c=O.makeText({x:s.offsetText.x,y:s.offsetText.y,color:"#FFFFFF",fontsize:14,content:t});return this.svgGroup=[],this.svgGroup.push(r),this.svgGroup.push(a),this.svgGroup.push(c),this.unselect(),this.svgGroup}calcAnnotationStyle(e,t){var i=0,n=new o(t.x,t.y),s=new o(t.x,t.y);return"Elevation"!==this.type&&(i=O.measureText(e),n.x-=i/2,n.y-=this.annotationStyle.height/2,s.x=n.x+5,s.y=n.y+19-3.5),"Elevation"==this.type&&(n.x-=12,n.y-=39,s.x=n.x+5,s.y=n.y+19-3.5,i=O.measureText(e)),{offsetRect:n,offsetText:s,width:i+=10}}}class io extends eo{constructor(e,t){super(e),this.defaultColor=t||"#20262F",this.initialize()}initialize(){super.initialize(),this.annotationStyle={height:this.calcAnnotationHeight(),radius:this.calcAnnotationRadius(),fillOpacity:.85},this.hitTestEpsilon=this.annotationStyle.height/2}drawAnnotation(e,t,i,n){var s=this.calcAnnotationStyle(t,e,n),r=O.makeRectangle({x:s.offsetRect.x,y:s.offsetRect.y,width:s.width,height:this.annotationStyle.height,radius:this.annotationStyle.radius,fillColor:this.defaultColor,fillOpacity:this.annotationStyle.fillOpacity});let a=new o(s.offsetRect.x,s.offsetRect.y+this.annotationStyle.height/2),l=new o(s.offsetRect.x+s.width,a.y);this.notationSegmentRects.push({start:a,end:l});let h=O.makeText({x:s.offsetText.x,y:s.offsetText.y,color:"#FFFFFF",fontsize:14,content:t});this.notationSelected.push(h);let c=O.makeText({x:s.offsetText.x,y:s.offsetText.y,color:"#A4A8AE",fontsize:14,content:t});if(this.notationUnselected.push(c),this.svgGroup=[],this.type==Glodon.Bimface.Plugins.Measure.MeasureTypeOption.Position){var d=O.makeRectangle({x:s.offsetArrow.x,y:s.offsetArrow.y,width:7,height:7,radius:0,fillColor:this.defaultColor,fillOpacity:this.annotationStyle.fillOpacity});d.setAttribute("transform",`rotate(45 ${s.offsetArrow.x} ${s.offsetArrow.y})`),this.svgGroup.push(d)}return this.svgGroup.push(r),this.svgGroup.push(c),this.svgGroup.push(h),this.unselect(),this.svgGroup}calcAnnotationStyle(e,t,i){var n=0,s=this.annotationStyle.height,r=new o(t.x,t.y),a=new o(t.x,t.y),l=new o(t.x,t.y);if(this.type==Glodon.Bimface.Plugins.Measure.MeasureTypeOption.Position){e.split("\n").forEach((e=>{let t=O.measureText(e);n=t>n?t:n})),n+=10,r.x-=n/2+5,r.y-=s+8+10,a.x=r.x+10,a.y=r.y+30-3.5}else n=O.measureText(e),!0===i?r.x+=15:r.x-=n/2,r.y-=this.annotationStyle.height/2,a.x=r.x+5,a.y=r.y+19-3.5;return l.y-=22.5,{offsetRect:r,offsetText:a,offsetArrow:l,width:n+=10}}calcAnnotationHeight(){let e=21;return"Position"==this.type&&(e=100),e}calcAnnotationRadius(){let e=4;return"Position"==this.type&&(e=0),e}}!function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=new e.Web.Graphics.Color(17,218,183,.2),n=function(t){this.id=t.id||e.Web.Lang.Utility.UUID.createUUID(),this.nextMeasurePoint=null,this.measurePoints=[],this.maxPointsNum=2,this.measureResult=null,this.measureParams={precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit},this.measureItemConfig=t,this.viewer=t.viewer;t.color.getRGBA();let n=i.createNS("circle","bf-measure-handle");n.setAttribute("stroke-width",0),n.setAttribute("r",t.width),n.setAttribute("fill",o.getRGB()),n.style.fill=o.getRGB();let s=i.createNS("line","bf-measure-line");s.style.strokeWidth=2,s.style.stroke=o.getRGB();let r=i.createNS("polygon","bf-measure-rect");r.setAttribute("fill",o.getRGBA()),r.setAttribute("stroke",o.getRGB()),r.setAttribute("stroke-width",1);var a=i.createNS("path","bf-measure-foot");a.setAttribute("fill","none"),a.setAttribute("stroke",o.getRGB()),a.setAttribute("stroke-width",2),this.hoverFoot=a,this.hoverPoint=n,this.hoverLine=s,this.hoverPanel=r,this.hoverPanelSize={width:20,height:20},this.defaultColor=`#${t.color.getHEX()}`||"#F99D0B",this.lineWidth="3",this.radius=5,this.strokeWidth=2,this.measureType=t.measureType,this.notation="ViewerGIS"===this.viewer.getViewerType()?new io(this.measureType):new to(this.measureType),this.isReserverd=!1,this.hoverPositionUpdated=!1};n.prototype={stretchOnDirection:function(e,t,i){let o=e.clone().add(t).multiplyScalar(.5),n=t.clone().sub(e).normalize();return[o.clone().sub(n.clone().multiplyScalar(i/2)),o.clone().add(n.clone().multiplyScalar(i/2))]},draw:function(e){},drawLine(e){if(0===e.length)return;let t=O.makeLine({start:e[0],end:e[1],color:this.defaultColor,lineWidth:this.lineWidth});this._svg.appendChild(t)},drawTerminalPoint(e){let t=O.makeCircle({position:e,radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});t.setAttribute("filter",this.filterUrl),this._svg.appendChild(t)},drawNotation(e,t,i){if(0===e.length)return;let o=this.notation.drawAnnotation({x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},t,this.id,i);for(const e of o)this._svg.appendChild(e)},drawCaptureItem:function(e){let t=this.hoverPoint,i=this.hoverLine,o=this.hoverPanel,n=this.hoverPanelSize;switch(e.hoverObjectType){case"Point":t.setAttribute("cx",e.hoverPosition.x),t.setAttribute("cy",e.hoverPosition.y),e.svg.appendChild(t);break;case"Line":if(e.footPoint){let t=e.footPoint.x,i=e.footPoint.y;this.hoverFoot.setAttribute("d",`M ${t},${i-12} v 12 h 12 M ${t},${i-7} h 7 v 7`),e.svg.appendChild(this.hoverFoot)}else i.setAttribute("x1",e.lineStartPoint.x),i.setAttribute("y1",e.lineStartPoint.y),i.setAttribute("x2",e.lineEndPoint.x),i.setAttribute("y2",e.lineEndPoint.y),e.svg.appendChild(i);break;case"Panel":let s=e.clientPts,r=s[0].distanceTo(s[1]),a=s[0].distanceTo(s[3]),l=r/n.width,h=a/n.height;if(1!=l){let e=this.stretchOnDirection(s[0],s[1],n.width),t=this.stretchOnDirection(s[2],s[3],n.width);s=e.concat(t)}if(1!=h){let e=this.stretchOnDirection(s[0],s[3],n.height),t=this.stretchOnDirection(s[1],s[2],n.height);s=[e[0],t[0],t[1],e[1]]}let c="";for(let e=0;e<s.length;e++)c+=s[e].x+",",c+=s[e].y+" ";o.setAttribute("points",c),e.svg.appendChild(o)}},reset:function(){if(this.measurePoints=[],this.nextMeasurePoint=null,this.measureResult=null,this._svg){for(var e=this._svg.childNodes,t=e.length-1;t>-1;t--)this._svg.removeChild(e[t]);this._svg.innerHTML=""}},addPoint:function(e){if(this.measurePoints.length==this.maxPointsNum)this.reset();else if(this.measurePoints.length>0){let t=this.measurePoints.length,i=this.measurePoints[t-1];if(e.x===i.x&&e.y===i.y&&e.z===i.z)return}this.measurePoints.push(e),this.setIsReserverd(!1)},redo:function(){this.measurePoints.length>0&&this.measurePoints.length<this.maxPointsNum?this.measurePoints.pop():this.measurePoints=[]},getPoints:function(){return this.measurePoints},calcLine:function(e,t){let i=[];var o=this.viewer.getViewer(),n=this.viewer.getDomElement().getBoundingClientRect(),s=o.worldPointsToClient(e,t);if(s){e=new THREE.Vector2(s.start.x-n.left,s.start.y-n.top),t=new THREE.Vector2(s.end.x-n.left,s.end.y-n.top);i.push(e,t)}return i},setMeasureParams:function(e){this.measureParams.precision=e.precision,this.measureParams.scale=e.scale,this.measureParams.unit=e.unit,this.measureParams.defaultUnit=e.defaultUnit},setIsReserverd:function(e){this.isReserverd=e},getIsReserverd:function(){return this.isReserverd}},t.MeasureItem=n}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=(new e.Web.Graphics.Color(17,218,183,.2),function(e){i.MeasureItem.call(this,e),this.maxPointsNum=2,this.measurePoints=[];var t=e.color.getRGBA(),n=o.createNS("circle","bf-measure-handle");n.setAttribute("stroke-width",0),n.setAttribute("r",5),n.setAttribute("stroke","#FFFFFF"),n.setAttribute("stroke-width",2),n.setAttribute("fill",t),n.style.fill=t;var s=n.cloneNode(),r=o.createNS("line","bf-measure-line"),a=r.cloneNode();a.style.strokeWidth=2,a.setAttribute("stroke-dasharray","6,4");var l=a.cloneNode(),h=a.cloneNode();r.style.strokeWidth=e.width,r.style.stroke=e.color.getRGBA(),a.style.stroke="#CC021B",l.style.stroke="#7CCF21",h.style.stroke="#4A90E2",r.setAttribute("stroke-width",e.width),this.line=r,this.lineX=a,this.lineY=l,this.lineZ=h,this.startPoint=n,this.endPoint=s});t.Type.inheritPrototype(n,i.MeasureItem);n.prototype=Object.assign(n.prototype,{stretchOnDirection:function(e,t,i){var o=e.clone().add(t).multiplyScalar(.5),n=t.clone().sub(e).normalize();return[o.clone().sub(n.clone().multiplyScalar(i/2)),o.clone().add(n.clone().multiplyScalar(i/2))]},draw:function(e){var t=this.line,i=this.lineX,o=this.lineY,n=this.lineZ,s=this.startPoint,r=this.endPoint;if(this._svg=e.svg,this.drawCaptureItem(e),!this.getIsReserverd())switch(e.clientPoints.length){case 2:var a=e.auxLines[0],l=e.auxLines[1],h=e.auxLines[2];a&&(i.setAttribute("x1",a.start.x),i.setAttribute("y1",a.start.y),i.setAttribute("x2",a.end.x),i.setAttribute("y2",a.end.y),e.svg.appendChild(i)),l&&(o.setAttribute("x1",l.start.x),o.setAttribute("y1",l.start.y),o.setAttribute("x2",l.end.x),o.setAttribute("y2",l.end.y),e.svg.appendChild(o)),h&&(n.setAttribute("x1",h.start.x),n.setAttribute("y1",h.start.y),n.setAttribute("x2",h.end.x),n.setAttribute("y2",h.end.y),e.svg.appendChild(n)),s.setAttribute("cx",e.clientPoints[1].x),s.setAttribute("cy",e.clientPoints[1].y),r.setAttribute("cx",e.clientPoints[0].x),r.setAttribute("cy",e.clientPoints[0].y),t.setAttribute("x1",e.clientPoints[0].x),t.setAttribute("y1",e.clientPoints[0].y),t.setAttribute("x2",e.clientPoints[1].x),t.setAttribute("y2",e.clientPoints[1].y),e.svg.appendChild(s),e.svg.appendChild(r),e.svg.appendChild(t);break;case 1:s.setAttribute("cx",e.clientPoints[0].x),s.setAttribute("cy",e.clientPoints[0].y),this.getPoints().length!=this.maxPointsNum&&e.hoverPosition&&(t.setAttribute("x1",e.clientPoints[0].x),t.setAttribute("y1",e.clientPoints[0].y),t.setAttribute("x2",e.hoverPosition.x),t.setAttribute("y2",e.hoverPosition.y),e.svg.appendChild(t)),e.svg.appendChild(s)}}}),i.MeasureDistanceItem=n}();class oo{constructor(){}static formatDistance(e,t){if(null==e)return null;let i=t.precision,o=t.scale||1,n=t.unit,s=1;return"Centimeter"===n?s=10:"Meter"===n?s=1e3:"Kilometer"===n&&(s=1e6),"m"===t.defaultUnit&&(o*=1e3),e*=o,e/=s,this.formatPrecision(e,i)}static formatArea(e,t){let i=t.precision,o=t.scale,n=t.unit,s=1;return"Centimeter"===n?s=100:"Meter"===n?s=1e6:"Kilometer"===n&&(s=1e13),"m"===t.defaultUnit&&(o*=1e3),e*=Math.pow(o,2),e/=s,this.formatPrecision(e,i)}static formatCubic(e,t){let i=t.precision,o=t.scale,n=t.unit,s=1;return"Centimeter"===n?s=1e3:"Meter"===n?s=1e9:"Kilometer"===n&&(s=1e19),"m"===t.defaultUnit&&(o*=1e3),e*=Math.pow(o,3),e/=s,i?this.toLocaleString(this.formatPrecision(e,i)):this.formatPrecision(e,i)}static getPostFix(e,t){if("None"===e)return"";let i={None:"",Kilometer:"km",Meter:"m",Centimeter:"cm",Millimeter:"mm"}[e];return t?i+="²":i=" "+i,i}static toLocaleString(e){let t=e.toString();return t=t.replace(/\d{1,3}(?=((\d{3})+(\.\d+)?)$)/g,"$&,"),t}static formatPrecision(e,t){if(e=parseInt(Math.round(e*Math.pow(10,t)))/Math.pow(10,t),0!=t){let i=e.toFixed(t).split(".");e=i[0]+"."+i[1]}else e=this.toLocaleString(e);return e}}!function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=(new e.Web.Graphics.Color(17,218,183,.2),function(e){i.MeasureItem.call(this,e),this.maxPointsNum=3,this.radius=e.radius,this.measurePoints=[];var t=e.color.getRGBA(),n=o.createNS("circle","bf-measure-handle");n.setAttribute("stroke-width",0),n.setAttribute("r",5),n.setAttribute("stroke","#FFFFFF"),n.setAttribute("stroke-width",2),n.setAttribute("fill",t),n.style.fill=t;var s=n.cloneNode(),r=n.cloneNode(),a=o.createNS("path","bf-measure-angle");a.setAttribute("fill","rgba(0,0,0,0)"),a.setAttribute("stroke",t),a.setAttribute("stroke-width",e.width);var l=o.createNS("line","bf-measure-line");l.style.strokeWidth=e.width,l.style.stroke=t,l.setAttribute("stroke-width",e.width);var h=l.cloneNode(),c=o.create("span","bf-measure-number");c.style.backgroundColor=e.color.getRGBA(),this.points=[n,s,r],this.lines=[l,h],this.angleLine=a,this.text=c});t.Type.inheritPrototype(n,i.MeasureItem);var s={_getPoint:function(e,t,i,o){e=new THREE.Vector2(e.x,e.y),t=new THREE.Vector2(t.x,t.y),i=new THREE.Vector2(i.x,i.y);var n=1,s=e.sub(t),r=i.sub(t);if(s.length()<o||r.length()<o)return!1;s.setLength(o),r.setLength(o);var a=s.angle(),l=180*(r.angle()-a)/Math.PI;return l<0&&(l+=360),n=l<180?1:0,{pointA:t.clone().add(s),pointB:t.clone().add(r),flag:1,direction:n}},draw:function(e,t){var i=this.points;if(this._svg=e.svg,this.drawCaptureItem(e),this.getIsReserverd())return;for(var o=0,n=e.clientPoints.length;o<n;o++)e.clientPoints[o]&&(i[o].setAttribute("cx",e.clientPoints[o].x),i[o].setAttribute("cy",e.clientPoints[o].y),e.svg.appendChild(i[o]));"ViewerGIS"===this.viewer.viewerType?this.drawAngleWithResult(e,t):this.drawAngle(e)},drawAngle:function(e){var t=this.lines,i=this.angleLine;switch(e.clientPoints.length){case 3:t[0].setAttribute("x1",e.clientPoints[0].x),t[0].setAttribute("y1",e.clientPoints[0].y),t[0].setAttribute("x2",e.clientPoints[1].x),t[0].setAttribute("y2",e.clientPoints[1].y),t[1].setAttribute("x1",e.clientPoints[1].x),t[1].setAttribute("y1",e.clientPoints[1].y),t[1].setAttribute("x2",e.clientPoints[2].x),t[1].setAttribute("y2",e.clientPoints[2].y);var o=this.radius,n=this._getPoint(e.clientPoints[0],e.clientPoints[1],e.clientPoints[2],o);n&&(i.setAttribute("d",`M ${n.pointA.x} ${n.pointA.y} A ${o} ${o} 0 0 ${n.direction} ${n.pointB.x} ${n.pointB.y}`),e.svg.appendChild(i)),e.svg.appendChild(t[1]),e.svg.appendChild(t[0]);break;case 2:t[0].setAttribute("x1",e.clientPoints[0].x),t[0].setAttribute("y1",e.clientPoints[0].y),t[0].setAttribute("x2",e.clientPoints[1].x),t[0].setAttribute("y2",e.clientPoints[1].y),e.svg.appendChild(t[0]),this.getPoints().length!=this.maxPointsNum&&e.hoverPosition&&(t[1].setAttribute("x1",e.clientPoints[1].x),t[1].setAttribute("y1",e.clientPoints[1].y),t[1].setAttribute("x2",e.hoverPosition.x),t[1].setAttribute("y2",e.hoverPosition.y),e.svg.appendChild(t[1]));break;case 1:this.getPoints().length!=this.maxPointsNum&&e.hoverPosition&&(t[0].setAttribute("x1",e.clientPoints[0].x),t[0].setAttribute("y1",e.clientPoints[0].y),t[0].setAttribute("x2",e.hoverPosition.x),t[0].setAttribute("y2",e.hoverPosition.y),e.svg.appendChild(t[0]))}},drawAngleWithResult:function(e,t){var i=this.lines,o=this.angleLine;switch(this.measureResult=t.angle,e.clientPoints.length){case 2:i[0].setAttribute("x1",e.clientPoints[0].x),i[0].setAttribute("y1",e.clientPoints[0].y),i[0].setAttribute("x2",e.clientPoints[1].x),i[0].setAttribute("y2",e.clientPoints[1].y),i[1].setAttribute("x1",e.clientPoints[1].x),i[1].setAttribute("y1",e.clientPoints[1].y),i[1].setAttribute("x2",e.hoverPosition.x),i[1].setAttribute("y2",e.hoverPosition.y);var n=this.radius,s=this._getPoint(e.clientPoints[0],e.clientPoints[1],e.hoverPosition,n);s&&(o.setAttribute("d",`M ${s.pointA.x} ${s.pointA.y} A ${n} ${n} 0 0 ${s.direction} ${s.pointB.x} ${s.pointB.y}`),e.svg.appendChild(o)),e.svg.appendChild(i[1]),e.svg.appendChild(i[0]),this.drawNotation(e,s);break;case 1:this.getPoints().length!=this.maxPointsNum&&e.hoverPosition&&(i[0].setAttribute("x1",e.clientPoints[0].x),i[0].setAttribute("y1",e.clientPoints[0].y),i[0].setAttribute("x2",e.hoverPosition.x),i[0].setAttribute("y2",e.hoverPosition.y),e.svg.appendChild(i[0]))}},drawNotation(e,t){if(t){var i=new THREE.Vector2((t.pointA.x+t.pointB.x)/2,(t.pointA.y+t.pointB.y)/2),o=new THREE.Vector2(e.clientPoints[1].x,e.clientPoints[1].y),n=i.clone().sub(o).normalize().multiplyScalar(35);i=o.clone().add(n);let s=this.notation.drawAnnotation(i,this.getMeasureResult(),this.id);for(const t of s)e.svg.appendChild(t)}},getMeasureResult(){this.measureParams.unit;let e=this.measureResult.toString();return oo.formatPrecision(e,this.measureParams.precision).split(",").join("")+"°"}};n.prototype=Object.assign(n.prototype,s),i.MeasureAngleItem=n}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=function(e){i.MeasureItem.call(this,e),this.maxPointsNum=2,this.measurePoints=[],this.opt=e,this.minDistanceLine=null,this.svgContainer=o.createNS("svg","bf-minDistanceMeasure-svg"),this.startPoint=o.createNS("circle","bf-minDistanceMeasure-handle"),this.endPoint=o.createNS("circle","bf-minDistanceMeasure-handle"),this.line=o.createNS("line","bf-minDistanceMeasure-line")};t.Type.inheritPrototype(n,i.MeasureItem);n.prototype=Object.assign(n.prototype,{draw:function(e){},setMinDistanceLine:function(e){this.minDistanceLine=e},clearMinDistanceLine:function(){var e=this.startPoint;e.parentNode&&this.svgContainer.removeChild(e);var t=this.endPoint;t.parentNode&&this.svgContainer.removeChild(t);var i=this.line;i.parentNode&&this.svgContainer.removeChild(i)},addPoint:function(e){var t=this.opt.viewer;this.opt.objectColor;this.measurePoints.length==this.maxPointsNum&&this.reset();var i=!1;this.measurePoints.some((t=>(t.modelId===e.modelId&&t.userId===e.userId&&(i=!0),i))),i||(this.measurePoints.push(e),(e.modelId?t.getModel(e.modelId):t).addSelectedComponentsById([e.userId]),t.render())},reset:function(e){var t=this.opt.viewer;!1!==e&&this.measurePoints.forEach((e=>{(e.modelId?t.getModel(e.modelId):t).removeSelectedId([e.userId])})),this.measurePoints=[],this.clearMinDistanceLine(),this.minDistanceLine=null,t.render()},redo:function(){var e=this.opt.viewer;if(this.measurePoints.length>0&&this.measurePoints.length<this.maxPointsNum){var t=this.measurePoints.pop();(t.modelId?e.getModel(t.modelId):e).removeSelectedId([t.userId]),e.render()}else this.reset()}}),i.MeasureMinimumDistanceItem=n}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=function(t){i.MeasureItem.call(this,t),this.viewer=t.viewer,this.maxPointsNum=1;var n=new e.Web.Graphics.Color(17,218,183,.2),s=o.createNS("circle","bf-measure-handle");s.setAttribute("r",t.width),s.setAttribute("fill",n.getRGB()),s.style.fill=n.getRGB();var r=o.createNS("line","bf-measure-line");r.style.strokeWidth=2,r.style.stroke=n.getRGB();var a=o.createNS("polygon","bf-measure-rect");a.setAttribute("fill",n.getRGBA()),a.setAttribute("stroke",n.getRGB()),a.setAttribute("stroke-width",1),this.hoverLine=r,this.hoverPoint=s,this.hoverPanel=a,this.hoverPanelSize={width:20,height:20}};t.Type.inheritPrototype(n,i.MeasureItem);n.prototype=Object.assign(n.prototype,{stretchOnDirection:function(e,t,i){var o=e.clone().add(t).multiplyScalar(.5),n=t.clone().sub(e).normalize();return[o.clone().sub(n.clone().multiplyScalar(i/2)),o.clone().add(n.clone().multiplyScalar(i/2))]},draw:function(e){var t=this.hoverLine,i=this.hoverPoint,o=this.hoverPanel,n=this.hoverPanelSize;switch(e.hoverObjectType){case"Point":i.setAttribute("cx",e.hoverPosition.x),i.setAttribute("cy",e.hoverPosition.y),e.svg.appendChild(i);break;case"Line":t.setAttribute("x1",e.lineStartPoint.x),t.setAttribute("y1",e.lineStartPoint.y),t.setAttribute("x2",e.lineEndPoint.x),t.setAttribute("y2",e.lineEndPoint.y),e.svg.appendChild(t);break;case"Panel":var s=e.clientPts,r=s[0].distanceTo(s[1]),a=s[0].distanceTo(s[3]),l=r/n.width,h=a/n.height;if(1!=l){var c=this.stretchOnDirection(s[0],s[1],n.width),d=this.stretchOnDirection(s[2],s[3],n.width);s=c.concat(d)}if(1!=h){c=this.stretchOnDirection(s[0],s[3],n.height),d=this.stretchOnDirection(s[1],s[2],n.height);s=[c[0],d[0],d[1],c[1]]}for(var g="",u=0;u<s.length;u++)g+=s[u].x+",",g+=s[u].y+" ";o.setAttribute("points",g),e.svg.appendChild(o)}}}),i.MeasureElevationItem=n}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),function(e){i.MeasureItem.call(this,e),this.maxPointsNum=1,this.measurePoints=[],this.measureAllPoints=[],this.opt=e});t.Type.inheritPrototype(o,i.MeasureItem);var n={draw:function(e){},addPoint:function(e){var t=this.opt.viewer;this.opt.objectColor;this.measurePoints.length==this.maxPointsNum&&this.reset();var i=!1;this.measurePoints.some((t=>(t.modelId===e.modelId&&t.userId===e.userId&&(i=!0),i))),i||(this.measurePoints.push(e),(e.modelId?t.getModel(e.modelId):t).addSelectedComponentsById([e.userId]),t.render())},reset:function(e){var t=this.opt.viewer;!1!==e&&(console.info(JSON.parse(JSON.stringify(this.measurePoints))),this.measurePoints.forEach((e=>{(e.modelId?t.getModel(e.modelId):t).removeSelectedId([e.userId])}))),this.measurePoints=[],t.render()}};o.prototype=Object.assign(o.prototype,n),i.MeasureVolumeItem=o}();const no=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),so=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");class ro extends no.MeasureItem{constructor(t){super(t),this.opt=t,this.maxPointsNum=1;const i=new e.Web.Graphics.Color(17,218,183,.2),o=so.createNS("circle","bf-measure-handle");o.setAttribute("r",t.width),o.setAttribute("fill",i.getRGB()),o.style.fill=i.getRGB();const n=so.createNS("line","bf-measure-line");n.style.strokeWidth=2,n.style.stroke=i.getRGB();const s=so.createNS("polygon","bf-measure-rect");s.setAttribute("fill",i.getRGBA()),s.setAttribute("stroke",i.getRGB()),s.setAttribute("stroke-width",1),this.hoverLine=n,this.hoverPoint=o,this.hoverPanel=s,this.hoverPanelSize={width:20,height:20};const r=this.viewer.getDomElement();let a=document.getElementsByClassName("bf-measure-dragbutton")[0];if(!a){a=document.createElement("div"),a.innerHTML='\n <svg width="160px" height="160px" viewBox="0 0 160 160" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g>\n <g fill="#FFFFFF" fill-opacity="0.3" stroke="#999999" stroke-width="2">\n <path d="M80,1 C82.7908696,1 85.5479441,1.14468216 88.264129,1.4269862 C89.0464893,1.50830005 89.8254567,1.60103155 90.6008619,1.70501165 C95.2372276,2.32673796 99.7462267,3.35063053 104.091601,4.74047874 C109.461201,6.4579211 114.580945,8.73415789 119.382458,11.5007405 C131.430077,18.4424547 141.474355,28.4710659 148.435065,40.506339 C155.154653,52.1247049 159,65.6133154 159,80 C159,101.815248 150.157624,121.565248 135.861436,135.861436 C121.565248,150.157624 101.815248,159 80,159 C58.1847524,159 38.4347524,150.157624 24.1385643,135.861436 C9.84237619,121.565248 1,101.815248 1,80 C1,58.1847524 9.84237619,38.4347524 24.1385643,24.1385643 C38.4347524,9.84237619 58.1847524,1 80,1 Z" id="Oval-2"></path>\n </g>\n <circle fill-opacity="0.8" fill="#FFFFFF" cx="80" cy="80" r="40"></circle>\n <g transform="translate(58.000000, 58.000000)" fill="#32D3A6" fill-rule="nonzero">\n <path d="M23.2727273,27.1515152 L23.2727273,36.8484848 L29.0909091,36.8484848 L22.3030303,44.6060606 L15.5151515,36.8484848 L21.3333333,36.8484848 L21.3333333,27.1515152 L23.2727273,27.1515152 Z M36.8484848,15.5151515 L44.6060606,22.3030303 L36.8484848,29.0909091 L36.8484848,23.2707879 L27.1515152,23.2727273 L27.1515152,21.3333333 L36.8484848,21.3313939 L36.8484848,15.5151515 Z M7.75757576,15.5151515 L7.75757576,21.3333333 L17.4545455,21.3333333 L17.4545455,23.2727273 L7.75757576,23.2727273 L7.75757576,29.0909091 L0,22.3030303 L7.75757576,15.5151515 Z M22.3030303,0 L29.0909091,7.75757576 L23.2727273,7.75757576 L23.2727273,17.4545455 L21.3333333,17.4545455 L21.3333333,7.75757576 L15.5151515,7.75757576 L22.3030303,0 Z" id="形状"></path>\n </g>\n </g>\n </g>\n </svg>\n ',a.className="bf-measure-dragbutton",a.style.display="none";let e=this.dragEvents={touchmove:e=>{let{top:t,left:i}=r.getBoundingClientRect(),{clientX:o,clientY:n}=e.touches[0];this.setButtonPosition(a,o-i,n-t);const s=new Touch({identifier:Date.now(),target:r,clientX:o,clientY:n,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5}),l=new TouchEvent("touchstart",{touches:[s]});r.dispatchEvent(l);const h=new TouchEvent("touchend");r.dispatchEvent(h),e.stopPropagation(),e.preventDefault()}};for(let t in e)a.addEventListener(t,e[t]);r.appendChild(a)}this.dragButton=a,this.dragButtonPoint=null,this.dragButtonVisible=!1,this._result={};const l=this.nextButtons={};["positive_X","negative_X","positive_Y","negative_Y","positive_Z"].forEach((e=>{const t=document.createElement("div");t.addEventListener("touchstart",(e=>{e.stopPropagation(),e.preventDefault()})),t.addEventListener("touchmove",(e=>{e.stopPropagation(),e.preventDefault()})),t.addEventListener("touchend",(t=>{this.getNextResult(e),t.stopPropagation(),t.preventDefault()})),t.className=`bf-measure-nextbutton ${e}`;const i={button:t};let o;Object.defineProperty(i,"position",{set:e=>{if(e){t.style.display="block";let{x:i,y:o}=this.viewer.worldToClient(e);i&&o&&this.setButtonPosition(t,i,o)}else t.style.display="none";o=e},get:()=>o}),r.appendChild(t),l[e]=i})),this.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.CameraPositionChanged,(()=>{if(this.dragButtonVisible&&this.dragButtonPoint){this.dragButton.style.display=this.viewer.isInViewFrustum(this.dragButtonPoint)?"block":"none";let{x:e,y:t}=this.viewer.worldToClient(this.dragButtonPoint);e&&t&&this.setButtonPosition(this.dragButton,e,t)}Object.values(l).forEach((e=>{e.position=e.position?e.position.clone():void 0,e.position&&!this.viewer.isInViewFrustum(e.position)&&(e.button.style.display="none")}))}))}computeMeasureResult(e){let t=this.getPoints();if(0===t.length)return;let{point:i}=t[0];this._result.pointInfo=t[0];const o=i.clone().add(e.clone().multiplyScalar(1)),n=(e,t)=>{const i=this.viewer.getComponentsByRaycaster(o,t),s=this.viewer.getComponentsByRaycaster(o,t.clone().negate());return this._result[e]=i.length>0&&s.length>0?{enable:!0,direction:t,positiveIntersects:i,negativeIntersects:s,positiveIndex:0,negativeIndex:0}:{enable:!1},this.nextButtons[`positive_${e}`].position=i.length>1?i[0].position:void 0,"Z"!==e&&(this.nextButtons[`negative_${e}`].position=s.length>1?s[0].position:void 0),n};let s,r,a;return Math.abs(1-Math.abs(e.z))<.001?(s=new THREE.Vector3(1,0,0),r=new THREE.Vector3(0,1,0),a=new THREE.Vector3(0,0,1)):(s=e.clone().cross(new THREE.Vector3(0,0,1)),s.x<0&&s.negate(),r=e.clone().cross(s),r.y<0&&r.negate(),a=e),n("X",s)("Y",r)("Z",a),this.showDragButton(i),this.getMeasureResult()}getMeasureResult(){let e={},{componentId:t,modelId:i,point:o}=this._result.pointInfo;e.pointSelected={x:o.x,y:o.y,z:o.z},e.componentSelected={componentId:t,modelId:i},e.type=this.measureType;const n=t=>{if(this._result[t].enable){let{direction:i,positiveIntersects:o,negativeIntersects:n,positiveIndex:s,negativeIndex:r}=this._result[t],a=o[s],l=n[r];e[`Laser${t}`]={vector:{x:i.x,y:i.y,z:i.z},distance:a.distance+l.distance,endPoints:[{x:a.position.x,y:a.position.y,z:a.position.z,direction:"positive"},{x:l.position.x,y:l.position.y,z:l.position.z,direction:"negative"}],endComponents:[{componentId:a.id,modelId:a.modelId,direction:"positive"},{componentId:l.id,modelId:l.modelId,direction:"negative"}]}}return n};return n("X")("Y")("Z"),e}getNextResult(e){let[t,i]=e.split("_");if(!this._result[i]||!this._result[i].enable)return;let o=this._result[i][`${t}Intersects`],n=++this._result[i][`${t}Index`];o.length<=n&&(this._result[i][`${t}Index`]=n=0),this.opt.measure.measureByInfo(this.getMeasureResult()),this.nextButtons[e].position=o[n].position}draw(e){this.drawCaptureItem(e)}showDragButton(e){this.reset(),this.viewer.render(),this.dragButtonPoint=e,this.dragButtonVisible=!0;let{x:t,y:i}=this.viewer.worldToClient(e);this.dragButton.style.display="block",t&&i&&this.setButtonPosition(this.dragButton,t,i)}hideDragButton(){this.dragButtonVisible=!1,this.dragButton.style.display="none",Object.values(this.nextButtons).forEach((e=>e.position=void 0))}setButtonPosition(e,t,i){e.style.top=`${i}px`,e.style.left=`${t}px`}}no.MeasureLaserClearDistanceItem=ro;class ao{constructor(e,t,i,o){this.viewer=e,this.id=t,this.type=i,this.isShow=!0,this.xmlns="http://www.w3.org/2000/svg",this.defaultColor=o.defaultColor||"#F99D0B",this.svgGroup=[],this.lineWidth="3",this.radius=5,this.strokeWidth=2,this.hitTestEpsilon=10,this.hitTestSegments=[],this.selectElements=[],this.unSelectElements=[],this.elementsOnTop=[],this.isSelected=!0,this.notation="ViewerGIS"===this.viewer.getViewerType()?new io(i):new to(i),this.measureParams={precision:0,scale:1,unit:"None"}}getSvgGroup(){return this.svgGroup}getId(){return this.id}getType(){return this.type}clear(e){this.detach(e),this.notation.clear(e),this.svgGroup=[],this.hitTestSegments=[]}detach(e){for(const e of this.svgGroup){(t=e.parentNode)&&t.removeChild(e)}for(const e of this.elementsOnTop){var t;(t=e.parentNode)&&t.removeChild(e)}}attach(e){for(const t of this.svgGroup)e.appendChild(t)}calcLine(e,t){let i=[];var n=this.viewer.getViewer(),s=this.viewer.getDomElement().getBoundingClientRect(),r=n.worldPointsToClient(e,t);if(r){e=new o(r.start.x-s.left,r.start.y-s.top),t=new o(r.end.x-s.left,r.end.y-s.top);i.push(e,t)}return i}calcTerminalLines(e,t,i){if(0===e.length)return[];let o=[],n=e[0],s=e[1],r=n.clone().sub(s).normalize(),a=r.clone().multiplyScalar(i).add(n).rotateAround(n.clone(),t),l=r.clone().multiplyScalar(i).add(n).rotateAround(n.clone(),-t);o.push({start:a,end:l}),r=r.multiplyScalar(-1);let h=r.clone().multiplyScalar(i).add(s).rotateAround(s.clone(),t),c=r.clone().multiplyScalar(i).add(s).rotateAround(s.clone(),-t);return o.push({start:h,end:c}),o}select(){for(const e of this.selectElements)e.style.display="none";for(const e of this.unSelectElements)e.style.display="block";this.notation.select(),this.isSelected=!0}unselect(){for(const e of this.selectElements)e.style.display="block";for(const e of this.unSelectElements)e.style.display="none";this.notation.unselect(),this.isSelected=!1}getIsSelected(){return this.isSelected}actionWhenSelected(){}actionWhenUnselected(){}dropShadow(e){this.notation.dropShadow(e)}setMeasureParams(e){this.measureParams.precision=e.precision,this.measureParams.scale=e.scale,this.measureParams.unit=e.unit,this.measureParams.defaultUnit=e.defaultUnit}show(){for(const e of this.svgGroup)e.style.display="block";for(const e of this.elementsOnTop)e.style.display="block";this.isShow=!0}hide(){for(const e of this.svgGroup)e.style.display="none";for(const e of this.elementsOnTop)e.style.display="none";this.isShow=!1}getNotation(){return this.notation}hitTest(e){let t=this.hitTestEpsilon;for(let i=0;i<this.hitTestSegments.length-1;i++){if(O.distanceToSegment(e,this.hitTestSegments[i],this.hitTestSegments[i+1])<=t)return!0}return!1}}class lo extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.worldPositions=t.points,this.measureResult=t.distance,this.selectElements=[],this.unSelectElements=[],this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){let e=this.calcLine(this.worldPositions[0],this.worldPositions[1]);this.hitTestSegments=e;let t=this.calAuxLines(),i=this.calcTerminalLines(e,Math.PI/2,6.5);this.attachSingleLine(e),this.attachTerminalLines(i);this.attachAuxLines(t,["#CC021B","#7CCF21","#4A90E2"]),this.attachTerminalPoints([t[0].start,t[2].end]);let o={x:(this.worldPositions[0].x+this.worldPositions[1].x)/2,y:(this.worldPositions[0].y+this.worldPositions[1].y)/2,z:(this.worldPositions[0].z+this.worldPositions[1].z)/2},n=this.viewer.worldToClient(o);this.viewer.isInViewFrustum(o)&&(this.attachNotation([n,n]),this.notation.dropShadow(this.filterUrl),this.unselect())}attachTerminalPoints(e){for(const t of e){let e=O.makeCircle({position:t,radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});this.svgGroup.push(e),e.setAttribute("filter",this.filterUrl),this.unSelectElements.push(e)}}attachSingleLine(e){if(0===e.length)return;let t=O.makeLine({start:e[0],end:e[1],color:this.defaultColor,lineWidth:this.lineWidth});this.svgGroup.push(t)}attachTerminalLines(e){if(0!==e.length)for(let t=0;t<2;t++){let i=O.makeLine({start:e[t].start,end:e[t].end,color:this.defaultColor,lineWidth:2});this.selectElements.push(i),this.svgGroup.push(i)}}attachAuxLines(e,t){let i=0;for(const o of e){let e=O.makeLine({start:o.start,end:o.end,color:this.defaultColor,lineWidth:this.lineWidth});e.setAttribute("stroke-dasharray","6,4"),e.style.stroke=t[i++],this.unSelectElements.push(e),this.svgGroup.push(e)}}attachNotation(e){if(0===e.length)return;let t=this.notation.drawAnnotation({x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},this.getMeasureResult(),this.id);for(const e of t)this.svgGroup.push(e)}calAuxLines(){let e=this.worldPositions;for(var t=this.viewer.getDomElement().getBoundingClientRect(),i={x:e[1].x,y:e[0].y,z:e[0].z},o={x:e[1].x,y:e[1].y,z:e[0].z},n=[],s=[e[0],i,o,e[1]],r=this.viewer.getViewer(),a=0;a<s.length-1;a++){var l=r.worldPointsToClient(s[a],s[a+1]);if(l)l.start.x-=t.left,l.start.y-=t.top,l.end.x-=t.left,l.end.y-=t.top;else{l={start:{x:-1,y:-1},end:{x:-1,y:-1}}}n.push(l)}return n}getMeasureResult(){let e=this.measureParams.unit,t=this.measureResult.toString(),i=oo.formatDistance(t,this.measureParams);return i+=oo.getPostFix(e,!1),i.split(",").join("")}}class ho extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.worldPositions=t.points,this.measureAngle=t.angle,this.setMeasureParams({precision:t.precision})}initialize(){let e=this.getClientPoints();this.hitTestSegments=e;for(let t=0;t<e.length-1;t++){let i=O.makeLine({start:e[t],end:e[t+1],color:this.defaultColor,lineWidth:this.lineWidth});this.svgGroup.push(i)}for(let t=0;t<e.length;t++){let i=O.makeCircle({position:e[t],radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});this.unSelectElements.push(i),this.svgGroup.push(i),i.setAttribute("filter",this.filterUrl)}var t=this.getArcData(e[0],e[1],e[2]);if(!t)return void this.unselect();var i=O.makePath({color:this.defaultColor,lineWidth:this.lineWidth,arcRadius:25,info:t});this.svgGroup.push(i);var n=new o((t.pointA.x+t.pointB.x)/2,(t.pointA.y+t.pointB.y)/2),s=new o(e[1].x,e[1].y),r=n.clone().sub(s);if(0==r.x&&0==r.y){var a=0==s.clone().sub(t.pointA).y;a&&0==t.direction?r.y=35:a&&1==t.direction?r.y=-35:a||0!=t.direction?a||1!=t.direction||(r.x=35):r.x=-35}else r.normalize().multiplyScalar(35);n=s.clone().add(r);let l=this.notation.drawAnnotation(n,this.getMeasureResult(),this.id);for(const e of l)this.svgGroup.push(e);this.notation.dropShadow(this.filterUrl),this.unselect()}getClientPoints(){let e=[],t=this.calcLine(this.worldPositions[0],this.worldPositions[1]),i=this.calcLine(this.worldPositions[1],this.worldPositions[2]);return t.length>0&&e.push(t[0],t[1]),i.length>0&&(e.length>0?e.push(i[1]):e.push(i[0],i[1])),e}getArcData(e,t,i){if(!e||!t||!i)return!1;e=new o(e.x,e.y),t=new o(t.x,t.y),i=new o(i.x,i.y);var n,s=e.sub(t),r=i.sub(t);if(s.length()<25||r.length()<25)return!1;s.setLength(25),r.setLength(25);var a=s.angle(),l=180*(r.angle()-a)/Math.PI;return l<0&&(l+=360),n=l<180?1:0,{pointA:t.clone().add(s),pointB:t.clone().add(r),flag:1,direction:n}}getMeasureResult(){this.measureParams.unit;let e=this.measureAngle.toString();return oo.formatPrecision(e,this.measureParams.precision).split(",").join("")+"°"}}class co extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.elevationPoint=t.points[0],this.setMeasureParams({precision:t.precision,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){if(this.viewer.isInViewFrustum&&!this.viewer.isInViewFrustum(this.elevationPoint))return;var e=new THREE.Vector3(this.elevationPoint.x,this.elevationPoint.y,this.elevationPoint.z);e=this.viewer.worldToClient(e);for(var t=[58,-12,-12,-12,0,0,12,-12],i="",o=0;o<t.length;o+=2)t[o]+=e.x,t[o+1]+=e.y,i+=t[o]+","+t[o+1]+" ";var n=O.makePolyline({color:this.defaultColor,width:2,points:i});this.svgGroup.push(n);var s=new THREE.Vector2(e.x,e.y);let r=this.notation.drawAnnotation(s,this.getMeasureResult(),this.id);for(const e of r)this.svgGroup.push(e);this.notation.dropShadow(this.filterUrl),this.unselect()}getMeasureResult(){let e=this.measureParams.unit,t=this.elevationPoint.z.toString(),i=oo.formatDistance(t,this.measureParams);return i+=oo.getPostFix(e,!1),i=i.split(",").join(""),0==i.split(" ")[0]&&(i=`±${i}`),i}hitTest(e){var t=new THREE.Vector3(this.elevationPoint.x,this.elevationPoint.y,this.elevationPoint.z);t=this.viewer.worldToClient(t);let i=new THREE.Vector2(t.x-12,t.y-22),o=new THREE.Vector2(t.x+58,t.y-22);return O.distanceToSegment(e,i,o)<=22||this.notation.hitTest(e)}}class go extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.selectedComponentsId=t.points,this.worldPositions=[t.start,t.end],this.measureResult=t.distance,this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){let e=this.calcLine(this.worldPositions[0],this.worldPositions[1]);this.hitTestSegments=e;let t=this.calcTerminalLines(e,Math.PI/3,8);for(let i=0;i<t.length;i++){let o=[];o.push(t[i].start,e[i],t[i].end);let n=O.makePolyline({color:this.defaultColor,width:2,points:O.calcPolylinePoints(o)});this.svgGroup.push(n)}if(0===e.length)return void this.unselect();let i=O.makeLine({start:e[0],end:e[1],color:this.defaultColor,lineWidth:this.lineWidth});this.svgGroup.push(i);let o={x:(this.worldPositions[0].x+this.worldPositions[1].x)/2,y:(this.worldPositions[0].y+this.worldPositions[1].y)/2,z:(this.worldPositions[0].z+this.worldPositions[1].z)/2},n=this.viewer.worldToClient(o);if(!this.viewer.isInViewFrustum(o))return;let s=this.notation.drawAnnotation({x:n.x,y:n.y},this.getMeasureResult(),this.id);for(const e of s)this.svgGroup.push(e);this.notation.dropShadow(this.filterUrl),this.unselect()}actionWhenSelected(){this.selectedComponentsId.forEach((e=>{(e.modelId?this.viewer.getModel(e.modelId):this.viewer).addSelectedComponentsById([e.userId])})),this.viewer.render()}actionWhenUnselected(){this.selectedComponentsId.forEach((e=>{(e.modelId?this.viewer.getModel(e.modelId):this.viewer).removeSelectedId([e.userId])})),this.viewer.render()}getMeasureResult(){let e=this.measureParams.unit,t=this.measureResult.toString(),i=oo.formatDistance(t,this.measureParams);return i+=oo.getPostFix(e,!1),i.split(",").join("")}}class uo extends ao{constructor(e,i,o,n){super(e,o,i.type,n),this.filterUrl=i.filterUrl,this.worldPositions=i.points,this.measureResult=i.area,this.boundaryPoints=[],this.scratchVector=new t,this.setMeasureParams({precision:i.precision,scale:i.scale,unit:i.unit})}initialize(){let e=new n,t=this.worldPositions;var i="";this.boundaryPoints=[];for(var s=0;s<=t.length;s++){let n=this.worldToClient(t[s%t.length]),r=O.makeCircle({position:n,radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});this.svgGroup.push(r),r.setAttribute("filter",this.filterUrl),this.unSelectElements.push(r),this.boundaryPoints.push(n),e.expandByPoint(new o(n.x,n.y)),i+=n.x+","+n.y+" "}var r=O.makePolyline({color:this.defaultColor,fillColor:this.defaultColor,width:2,points:i});r.setAttribute("fill-opacity",.2),this.svgGroup.insert(0,r);var a=e.getCenter(this.scratchVector);let l=this.notation.drawAnnotation(a,this.getMeasureResult());for(const e of l)this.svgGroup.push(e);this.notation.dropShadow(this.filterUrl),this.unselect(),!this.isShow&&this.hide()}getMeasureResult(){let e=this.measureParams.unit,t=this.measureResult.toString(),i=oo.formatArea(t,this.measureParams);return i+=oo.getPostFix(e,!0),i.split(",").join("")}worldToClient(e){let t=[],i=this.viewer.getViewer();if(e.isActiveLayoutElement)t=i.toScreenPoint(e.point);else{const o=e.point?e.point:e;t=i.toViewportScreenPoint(o)}return{x:t[0],y:t[1]}}setViewId(e){this.viewId=e}getViewId(){return this.viewId}hitTest(e){let t=this.boundaryPoints;return O.isPointInPolygon(e,t)}}class po extends lo{constructor(e,t,i,n){super(e,t,i,n),this.filterUrl=t.filterUrl,this.startPoint=new o(t.start[0],t.start[1]),this.endPoint=new o(t.end[0],t.end[1]),this.measureResult=t.distance,this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit}),this.isOnLayoutMeasure=t.isOnLayout}initialize(){let e=this.calAuxLines(),t=[];t.push(e[0].start,e[1].end),this.hitTestSegments=t;let i=this.calcTerminalLines(t,Math.PI/2,6.5);this.attachSingleLine(t),this.attachTerminalLines(i);this.attachAuxLines(e,["#7CCF21","#CC021B"]),this.attachTerminalPoints(t),this.attachNotation(t),this.notation.dropShadow(this.filterUrl),this.unselect(),!this.isShow&&this.hide()}attachNotation(e){if(0===e.length)return;let t=this.notation.drawAnnotation({x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},this.getMeasureResult(),this.id);for(const e of t)this.svgGroup.push(e)}calAuxLines(){let e=[],t=this.startPoint.clone(),i=this.endPoint.clone(),n={x:i.x,y:t.y};e.push(t,n,i);let s=[];for(let t=0;t<e.length-1;t++){let i=this.worldToClient(e[t]),n=this.worldToClient(e[t+1]);s.push({start:new o(i.x,i.y),end:new o(n.x,n.y)})}return s}getMeasureResult(){let e=this.measureParams.unit,t=this.measureResult.toString(),i=oo.formatDistance(t,this.measureParams);return i+=oo.getPostFix(e,!1),i.split(",").join("")}worldToClient(e){if(this.isOnLayoutMeasure){let t=this.viewer.getViewer().toViewportScreenPoint([e.x,e.y]);return{x:t[0],y:t[1]}}return this.viewer.worldToClient(e)}setViewId(e){this.viewId=e}getViewId(){return this.viewId}}class Ao extends ho{constructor(e,t,i,o){super(e,t,i,o),this.isOnLayoutMeasure=t.isOnLayout}getClientPoints(){let e=[];for(let t=0;t<this.worldPositions.length;t++){let i=new o(this.worldPositions[t][0],this.worldPositions[t][1]),n=this.worldToClient(i);e.push(new o(n.x,n.y))}return e}worldToClient(e){if(this.isOnLayoutMeasure){let t=this.viewer.getViewer().toViewportScreenPoint([e.x,e.y]);return{x:t[0],y:t[1]}}return this.viewer.worldToClient(e)}setViewId(e){this.viewId=e}getViewId(){return this.viewId}}class mo extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.worldPositions=t.points,this.measureResult={distance:t.distance,totalDistance:t.totalDistance},this.selectElements=[],this.unSelectElements=[],this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){let e=this.worldPositions.length;if(!(e<2)){for(let t=1;t<e;t++){let e=this.calcLine(this.worldPositions[t],this.worldPositions[t-1]);0!==e.length&&(1===t&&this.hitTestSegments.push(e[0]),this.hitTestSegments.push(e[1]),this.attachSelectedTerminalPoints(e[0]),this.attachLines(e),this.attachSelectedTerminalPoints(e[1]),this.attachUnselectedTerminalPoints(e[0]),this.attachUnselectedTerminalPoints(e[1]))}this.attachNotations(),this.unselect()}}attachSelectedTerminalPoints(e){let t=O.makeCircle({position:e,radius:this.radius,strokeWidth:0,color:this.defaultColor});this.svgGroup.push(t),t.setAttribute("filter",this.filterUrl),this.selectElements.push(t)}attachLines(e){let t=O.makeLine({start:e[0],end:e[1],color:this.defaultColor,lineWidth:this.lineWidth});this.svgGroup.push(t)}attachUnselectedTerminalPoints(e){let t=O.makeCircle({position:e,radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});this.svgGroup.push(t),t.setAttribute("filter",this.filterUrl),this.unSelectElements.push(t)}attachNotations(){const e=this.worldPositions.length,t=this.getMeasureResult();for(let i=1;i<e;i++){let e={x:(this.worldPositions[i].x+this.worldPositions[i-1].x)/2,y:(this.worldPositions[i].y+this.worldPositions[i-1].y)/2,z:(this.worldPositions[i].z+this.worldPositions[i-1].z)/2},o=this.viewer.worldToClient(e);this.viewer.isInViewFrustum(e)&&this.attachNotation([o,o],t.distance[i-1])}let i={x:this.worldPositions[e-1].x,y:this.worldPositions[e-1].y,z:this.worldPositions[e-1].z},o=this.viewer.worldToClient(i);this.viewer.isInViewFrustum(i)&&this.attachNotation([o,o],`总长度:${t.totalDistance}`,!0),this.notation.dropShadow(this.filterUrl)}attachNotation(e,t,i){if(0===e.length)return;let o=this.notation.drawAnnotation({x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},t,this.id,i);for(const e of o)this.svgGroup.push(e)}getMeasureResult(){let e=this.measureParams.unit,{distance:t,totalDistance:i}=this.measureResult,o=[],n=0;return t.forEach((t=>{n+=t;let i=t.toString();i=oo.formatDistance(i,this.measureParams),i+=oo.getPostFix(e,!1),o.push(i)})),n=n.toString(),n=oo.formatDistance(n,this.measureParams),n+=oo.getPostFix(e,!1),{distance:o,totalDistance:n}}}class wo extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.worldPositions=t.points,this.measureResult={distance:t.distance,totalDistance:t.totalDistance},this.pointPos=t.positions,this.item=t.item,this.curves=t.curves,this.selectElements=[],this.unSelectElements=[],this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){let e=this.worldPositions.length;if(!(e<2)){for(let t=1;t<e;t++){let e=this.calcLine(this.worldPositions[t],this.worldPositions[t-1]);0!==e.length&&(1===t&&this.hitTestSegments.push(e[0]),this.hitTestSegments.push(e[1]),this.attachSelectedTerminalPoints(e[0]),this.attachSelectedTerminalPoints(e[1]),this.attachUnselectedTerminalPoints(e[0]),this.attachUnselectedTerminalPoints(e[1]))}this.attachNotations(),this.unselect()}}attachSelectedTerminalPoints(e){let t=O.makeCircle({position:e,radius:this.radius,strokeWidth:0,color:this.defaultColor});this.svgGroup.push(t),t.setAttribute("filter",this.filterUrl),this.selectElements.push(t)}attachLines(e){}attachUnselectedTerminalPoints(e){let t=O.makeCircle({position:e,radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});this.svgGroup.push(t),t.setAttribute("filter",this.filterUrl),this.unSelectElements.push(t)}attachNotations(){const e=this.worldPositions.length,t=this.getMeasureResult();for(let i=0;i<e-1;i++){let e={x:this.pointPos[i].midPoint.x,y:this.pointPos[i].midPoint.y,z:this.pointPos[i].midPoint.z},o=this.viewer.worldToClient(e);this.viewer.isInViewFrustum(e)&&this.attachNotation([o,o],t.distance[i])}let i={x:this.worldPositions[e-1].x,y:this.worldPositions[e-1].y,z:this.worldPositions[e-1].z},o=this.viewer.worldToClient(i);this.viewer.isInViewFrustum(i)&&this.attachNotation([o,o],`总长度:${t.totalDistance}`,!0),this.notation.dropShadow(this.filterUrl)}attachNotation(e,t,i){if(0===e.length)return;let o=this.notation.drawAnnotation({x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},t,this.id,i);for(const e of o)this.svgGroup.push(e)}detach(e){super.detach(),e&&this.curves.forEach((e=>{this.item&&this.item.deleteCurveById(e.id)}))}getMeasureResult(){let e=this.measureParams.unit,{distance:t,totalDistance:i}=this.measureResult,o=[],n=0;return t.forEach((t=>{n+=t;let i=t.toString();i=oo.formatDistance(i,this.measureParams),i+=oo.getPostFix(e,!1),o.push(i)})),n=n.toString(),n=oo.formatDistance(n,this.measureParams),n+=oo.getPostFix(e,!1),{distance:o,totalDistance:n}}}class Co extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.positionPoint=t.points[0],this.measureResult={alt:t.altitude,lonLat:t.lonLat},this.innerRadius=3,this.innerStrokeWidth=2,this.outerRadius=7,this.outerStrokeWidth=1,this.selectElements=[],this.unSelectElements=[],this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){if(!this.viewer.isInViewFrustum(this.positionPoint))return;var e=new THREE.Vector3(this.positionPoint.x,this.positionPoint.y,this.positionPoint.z);e=this.viewer.worldToClient(e),this.attachSelectedCircle(e),this.attachUnselectedCircle(e);var t=new THREE.Vector2(e.x,e.y);let i=this.notation.drawAnnotation(t,this.getMeasureResult(),this.id);for(const e of i)this.svgGroup.push(e);this.notation.dropShadow(this.filterUrl),this.unselect()}attachSelectedCircle(e){let t=O.makeConcentricCircle({innerRadius:this.innerRadius,innerStrokeWidth:this.innerStrokeWidth,outerRadius:this.outerRadius,color:this.defaultColor,position:e});this.selectElements.push(t),this.svgGroup.push(t)}attachUnselectedCircle(e){let t=O.makeConcentricCircle({innerRadius:this.innerRadius,innerStrokeWidth:this.innerStrokeWidth,outerRadius:this.outerRadius,outerStrokeWidth:this.outerStrokeWidth,color:this.defaultColor,position:e});this.unSelectElements.push(t),this.svgGroup.push(t)}hitTest(e){var t=new THREE.Vector3(this.positionPoint.x,this.positionPoint.y,this.positionPoint.z);t=this.viewer.worldToClient(t);let i=new THREE.Vector2(t.x-12,t.y-22),o=new THREE.Vector2(t.x+58,t.y-22);return O.distanceToSegment(e,i,o)<=22||this.notation.hitTest(e)}getMeasureResult(){let e=this.measureParams.unit,{alt:t,lonLat:i}=this.measureResult,{elevation:o,latLon:n}=this.measureParams.precision,s={defaultUnit:this.measureParams.defaultUnit,precision:o,scale:this.measureParams.scale,unit:this.measureParams.unit},r=oo.formatPrecision(i.latitude.toString(),n),a=oo.formatPrecision(i.longitude.toString(),n),l=oo.formatDistance(t.toString(),s);return l+=oo.getPostFix(e,!1),`经度:${a} ° \n纬度:${r} ° \n高程:${l}`}}class fo extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.worldPositions=t.points,this.measureResult={distance:t.distance,horizontalDistance:t.horizontalDistance,verticalDistance:t.verticalDistance},this.selectElements=[],this.unSelectElements=[],this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){if(this.worldPositions.length<2)return;let e=this.getMeasureResult();if(this.attachSegmentByTerminalPoints(this.worldPositions,e.distance),this.worldPositions[0].z!=this.worldPositions[1].z){let t=this.worldPositions[0].z<this.worldPositions[1].z?this.worldPositions[0]:this.worldPositions[1],i=this.worldPositions[0].z<this.worldPositions[1].z?this.worldPositions[1]:this.worldPositions[0],o=this.calcTrianglePoint(this.worldPositions);this.attachSegmentByTerminalPoints([t,o],e.verticalDistance),this.attachSegmentByTerminalPoints([i,o],e.horizontalDistance)}else this.attachSegmentByTerminalPoints([this.worldPositions[0],this.worldPositions[0]],e.horizontalDistance);this.notation.dropShadow(this.filterUrl),this.unselect()}calcTrianglePoint(e){if(e.length<2)return null;let t=new THREE.Vector3;return e[0].z<e[1].z?t.set(e[0].x,e[0].y,e[1].z):e[0].z>e[1].z&&t.set(e[1].x,e[1].y,e[0].z),t}attachSegmentByTerminalPoints(e,t){let i=e[0],o=e[1],n=this.calcLine(i,o);this.hitTestSegments=this.hitTestSegments.concat(n),this.attachLine(n),this.attachSelectedTerminalPoints(n),this.attachUnselectedTerminalPoints(n);let s={x:(i.x+o.x)/2,y:(i.y+o.y)/2,z:(i.z+o.z)/2},r=this.viewer.worldToClient(s);this.viewer.isInViewFrustum(s)&&this.attachNotation([r,r],t)}attachSelectedTerminalPoints(e){for(const t of e){let e=O.makeCircle({position:t,radius:this.radius,strokeWidth:0,color:this.defaultColor});this.svgGroup.push(e),e.setAttribute("filter",this.filterUrl),this.selectElements.push(e)}}attachLine(e){if(0===e.length)return;let t=O.makeLine({start:e[0],end:e[1],color:this.defaultColor,lineWidth:this.lineWidth});this.svgGroup.push(t)}attachUnselectedTerminalPoints(e){for(const t of e){let e=O.makeCircle({position:t,radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});this.svgGroup.push(e),e.setAttribute("filter",this.filterUrl),this.unSelectElements.push(e)}}attachNotation(e,t){if(0===e.length)return;let i=this.notation.drawAnnotation({x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},t,this.id);for(const e of i)this.svgGroup.push(e)}getMeasureResult(){const e=this.measureParams.unit;let{distance:t,horizontalDistance:i,verticalDistance:o}=this.measureResult;return t=t.toString(),t=oo.formatDistance(t,this.measureParams),t+=oo.getPostFix(e,!1),i=i.toString(),i=oo.formatDistance(i,this.measureParams),i+=oo.getPostFix(e,!1),o=o.toString(),o=oo.formatDistance(o,this.measureParams),o+=oo.getPostFix(e,!1),{distance:t,horizontalDistance:i,verticalDistance:o}}}class Eo extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.fillColor=new Glodon.Web.Graphics.Color(255,157,11,.2),this.filterUrl=t.filterUrl,this.worldPositions=t.points,this.measureResult=t.area,this.selectElements=[],this.unSelectElements=[],this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){const e=this.worldPositions,t=e.length;if(!(t<3)&&this.areaFrontOfCamera(e)){this.attachArea(e);for(let i=0;i<t;i++){let o=this.viewer.worldToClient(e[i]);o=new THREE.Vector2(o.x,o.y),this.hitTestSegments.push(o),this.attachSelectedTerminalPoints(o),this.attachUnselectedTerminalPoints(o),i==t-1&&this.attachNotation(o,`${this.getNotationTitle()}:${this.getMeasureResult()}`)}this.unselect()}}attachSelectedTerminalPoints(e){let t=O.makeCircle({position:e,radius:this.radius,strokeWidth:0,color:this.defaultColor});this.svgGroup.push(t),t.setAttribute("filter",this.filterUrl),this.selectElements.push(t)}attachArea(e){let t="";e.forEach((e=>{let i=this.viewer.worldToClient(e);t+=i.x+","+i.y+" "}));let i=O.makePolygon({points:t,width:this.lineWidth,color:this.defaultColor,fillColor:this.fillColor.getRGBA()});this.svgGroup.push(i)}attachUnselectedTerminalPoints(e){let t=O.makeCircle({position:e,radius:this.radius,strokeWidth:this.strokeWidth,color:this.defaultColor});this.svgGroup.push(t),t.setAttribute("filter",this.filterUrl),this.unSelectElements.push(t)}attachNotation(e,t){let i=this.notation.drawAnnotation({x:e.x,y:e.y},t,this.id,!0);for(const e of i)this.svgGroup.push(e)}getNotationTitle(){return BimfaceLanguage.bf_tip_measure_spatial_area}areaFrontOfCamera(e){let t=this.viewer,i=t.getViewer(),o=new THREE.Vector3,n=new THREE.Plane(t.sceneToWorld(i.camera.getWorldDirection(o)).normalize());n.constant=-n.distanceToPoint(t.sceneToWorld(i.camera.position));for(let t=0;t<e.length;t++)if(n.distanceToPoint(e[t])<0)return!1;return!0}getMeasureResult(){let e=this.measureParams.unit,t=this.measureResult.toString();return t=oo.formatArea(t,this.measureParams),t+=oo.getPostFix(e,!0),t}}class Bo extends Eo{constructor(e,t,i,o){super(e,t,i,o)}getNotationTitle(){return BimfaceLanguage.bf_tip_measure_projected_area}}class Io{constructor(t){t&&(this._opt=t,this.measurePoints=t.points||[],this.fillColor=t.fillColor||new e.Web.Graphics.Color("#f35801",.2),this.borderColor=t.color||new e.Web.Graphics.Color("#f35801",1),this.borderWidth=t.width||3,this.update())}setMeasurePoints(e){"[object Array]"===Object.prototype.toString.call(e)?(this.measurePoints=e,this.update()):console.warn("Parameter points is invalid.")}update(){if(this.measurePoints.length<2)this.disposeGroundBorder(),this.disposeGroundSurface();else if(2===this.measurePoints.length)this.disposeGroundSurface(),this.updateGroundBorder(this.measurePoints);else if(this.measurePoints.length>2){this.updateGroundSurface(this.measurePoints);let e=[...this.measurePoints];e.push(this.measurePoints[0]),this.updateGroundBorder(e)}}updateGroundBorder(e){this.groundBorder?this.groundBorder.geometry.updateGeometry({points:e}):(this.groundBorder=CLOUD.GroundPrimitiveManager.getInstance().createGroundCurve({points:e,color:this.borderColor,width:this.borderWidth,style:"Continuous",type:"polyline"}),this.groundBorder.onAdded())}updateGroundSurface(e){this.groundSurface?this.groundSurface.geometry.updateGeometry({points:e}):(this.groundSurface=CLOUD.GroundPrimitiveManager.getInstance().createGroundPolygon({points:e,color:this.fillColor}),this.groundSurface.onAdded())}updateTerminalPoints(e){this.selectedGroup||(this.selectedGroup=new THREE.Group,this.add(this.selectedGroup));let t=this.selectedGroup.children;for(let e=t.length-1;e>=0;e--)this.selectedGroup.remove(t[e]);let i=new THREE.CircleGeometry(200,180),o=new THREE.MeshBasicMaterial({color:this.borderColor,side:THREE.DoubleSide,depthTest:!1}),n=new THREE.Mesh(i,o);for(let t=0,i=e.length;t<i;t++){let i=n.clone();i.position.copy(e[t]),this.selectedGroup.add(i)}this.updateMatrixWorld()}hide(){this.hideGroundSurface(),this.hideGroundBorder()}hideGroundSurface(){this.groundSurface&&(this.groundSurface.visible=!1)}hideGroundBorder(){this.groundBorder&&(this.groundBorder.visible=!1)}show(){this.showGroundSurface(),this.showGroundBorder()}showGroundSurface(){this.groundSurface&&(this.groundSurface.visible=!0)}showGroundBorder(){this.groundBorder&&(this.groundBorder.visible=!0)}disposeGroundSurface(){this.groundSurface&&(this.groundSurface.onRemoved(),this.groundSurface.dispose(),this.groundSurface=null)}disposeGroundBorder(){this.groundBorder&&(this.groundBorder.onRemoved(),this.groundBorder.dispose(),this.groundBorder=null)}dispose(){this.measurePoints=null,this.disposeGroundSurface(),this.disposeGroundBorder()}}class yo extends Eo{constructor(e,t,i,o){super(e,t,i,o),this.measureSurfaceMesh=null}initialize(){this.measureSurfaceMesh||(this.measureSurfaceMesh=new Io({fillColor:new Glodon.Web.Graphics.Color("#f35801",.2),color:new Glodon.Web.Graphics.Color("#f35801",1),width:this.lineWidth})),super.initialize()}attachArea(e){this.measureSurfaceMesh.setMeasurePoints(e),this.viewer.render()}getNotationTitle(){return BimfaceLanguage.bf_tip_measure_surface_area}clear(){super.clear(),this.measureSurfaceMesh&&(this.measureSurfaceMesh.dispose(),this.measureSurfaceMesh=null)}}class So extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.lineWidth=1,this.data=t,this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){const e={X:"#CC021B",Y:"#7CCF21",Z:"#4A90E2"};let t=[];const i=o=>{const n=this.data[`Laser${o}`];if(n){const s=e[o],[r,a]=n.endPoints,l=new THREE.Vector3(r.x,r.y,r.z),h=new THREE.Vector3(a.x,a.y,a.z),c=n.distance;let d=this.calcLine(l,h);if(2!==d.length)return i;let g=O.makeLine({start:d[0],end:d[1],color:s,lineWidth:this.lineWidth});this.svgGroup.push(g);let u=this.calcTerminalLines(d,5*Math.PI/6,8);for(let e=0;e<u.length;e++){let t=[];t.push(u[e].start,d[e],u[e].end);let i=O.makePolyline({color:s,width:this.lineWidth,points:O.calcPolylinePoints(t)});this.svgGroup.push(i)}let p={x:(l.x+h.x)/2,y:(l.y+h.y)/2,z:(l.z+h.z)/2},A=this.viewer.worldToClient(p);if(!this.viewer.isInViewFrustum(p)){const{offsetHeight:e,offsetWidth:t}=this.viewer.getDomElement(),o=i=>i.x>0&&i.y>0&&i.x<t&&i.y<e;let n=new THREE.Vector3(this.data.pointSelected.x,this.data.pointSelected.y,this.data.pointSelected.z);if(!this.viewer.isInViewFrustum(n))return i;let s=this.viewer.worldToClient(n),r=new THREE.Vector3(s.x,s.y,s.z),a=new THREE.Vector3(A.x,A.y,A.z);const l=100;if(A=r.clone().add(a.clone().sub(r).normalize().multiplyScalar(l)),o(A)||(A=r.clone().add(a.clone().sub(r).normalize().multiplyScalar(-l))),!o(A))return i}let m=this.notation.drawAnnotation({x:A.x,y:A.y},this.getMeasureResult(c),this.id,s);t.push(m)}return i};i("X")("Y")("Z"),t.flat().forEach((e=>this.svgGroup.push(e))),this.unselect()}getMeasureResult(e){let t=this.measureParams.unit,i=e.toString(),o=oo.formatDistance(i,this.measureParams);return o+=oo.getPostFix(t,!1),o.split(",").join("")}}class Mo extends ao{constructor(e,t,i,o){super(e,i,t.type,o),this.filterUrl=t.filterUrl,this.selectedComponentsId=t.points,this.worldPosition=this.viewer.sceneToWorld(t.volumePosition),this.measureResult=t.volumeResult,this.setMeasureParams({precision:t.precision,scale:t.scale,unit:t.unit,defaultUnit:t.defaultUnit})}initialize(){if(!this.measureResult)return;let e=this.viewer.worldToClient(this.worldPosition),t=this.notation.drawAnnotation({x:e.x,y:e.y},this.getMeasureResult(),this.id);for(const e of t)this.svgGroup.push(e);this.notation.dropShadow(this.filterUrl),this.unselect()}actionWhenSelected(){this.selectedComponentsId.forEach((e=>{(e.modelId?this.viewer.getModel(e.modelId):this.viewer).addSelectedComponentsById([e.userId])})),this.viewer.render()}actionWhenUnselected(){this.selectedComponentsId.forEach((e=>{(e.modelId?this.viewer.getModel(e.modelId):this.viewer).removeSelectedId([e.userId])})),this.viewer.render()}getMeasureResult(){let e=this.measureParams.unit,t=this.measureResult.toString(),i=oo.formatCubic(t,this.measureParams);return i=i+oo.getPostFix(e,!1)+"³",i.split(",").join("")}}class vo{constructor(e){this.viewer=e}make(e,t,i,o){let n=null,s="ViewerDrawing"===this.viewer.getViewerType(),r={defaultColor:`#${o._opt.color.getHEX()}`};switch(e){case"Distance":n=s?new po(this.viewer,t,i,r):new lo(this.viewer,t,i,r);break;case"Angle":n=s?new Ao(this.viewer,t,i,r):new ho(this.viewer,t,i,r);break;case"MinimumDistance":n=new go(this.viewer,t,i,r);break;case"Elevation":n=new co(this.viewer,t,i,r);break;case"Area":n=new uo(this.viewer,t,i,r);break;case"GroundlineDistance":n=new wo(this.viewer,t,i,r);break;case"PolylineDistance":n=new mo(this.viewer,t,i,r);break;case"Position":n=new Co(this.viewer,t,i,r);break;case"TriangleDistance":n=new fo(this.viewer,t,i,r);break;case"SpatialArea":n=new Eo(this.viewer,t,i,r);break;case"ProjectedArea":n=new Bo(this.viewer,t,i,r);break;case"SurfaceArea":n=new yo(this.viewer,t,i,r);break;case"LaserClearDistance":n=new So(this.viewer,t,i,r);break;case"Volume":n=new Mo(this.viewer,t,i,r)}return n.initialize(),n}}class xo{constructor(t,i){this.domContainer=t,this.measureItems=i,this.selectedItem=null,this.selectionChanged=null,this.hoverChanged=null,this.isEnableSelection=!0,this.mousedownHitItem=null,this.offset=t.getBoundingClientRect(),e.Web.Lang.Utility.ClientHelper.getIsDesktop()&&this.hookEvents()}hookEvents(){this.domContainer.addEventListener("mousemove",(e=>{if(!this.isEnableSelection)return;let t=new o(e.clientX,e.clientY);t.x-=this.offset.left,t.y-=this.offset.top;let i=this.hitTest(t);this.hoverChanged(i),i?(this.domContainer.style.cursor="default",e.preventDefault(),e.stopPropagation()):this.domContainer.style.cursor=""}),!1),this.domContainer.addEventListener("mousedown",(e=>{if(this.mousedownHitItem=null,!this.isEnableSelection)return;let t=new o(e.clientX,e.clientY);t.x-=this.offset.left,t.y-=this.offset.top;let i=this.hitTest(t);this.mousedownHitItem=i,i&&(i.getIsSelected()?(this.selectionChanged(null),this.setSelectedItem(null),i.unselect()):(this.selectionChanged(i),this.setSelectedItem(i),i.select()),e.preventDefault(),e.stopPropagation())}),!1),this.domContainer.addEventListener("mouseup",(e=>{this.mousedownHitItem&&(e.preventDefault(),e.stopPropagation())}),!1),this.domContainer.addEventListener("dblclick",(()=>{event.preventDefault(),event.stopPropagation()}),!1)}hitTest(e){for(var t=this.measureItems.length-1;t>=0;t--){let i=this.measureItems[t];if(i.getNotation().hitTest(e))return i}for(t=this.measureItems.length-1;t>=0;t--){let i=this.measureItems[t];if(i.hitTest(e))return i}return null}setSelectedItem(e){this.selectedItem&&(this.selectedItem.actionWhenUnselected(),this.selectedItem.unselect()),this.selectedItem=e,e&&e.actionWhenSelected()}getSelectedItem(){return this.selectedItem}hasSelected(){return null!==this.selectedItem}setIsEnableSelection(e){this.isEnableSelection=e}}class bo{constructor(e){this.filterId=e.filterId,this.filterUnits=e.filterUnits,this.stdDeviation=e.stdDeviation,this.feOffset1=e.feOffset1,this.feOffset2=e.feOffset2,this.shadowOpacity=e.opacity,this.initialize()}initialize(){let e=document.createElementNS(this.xmlns,"defs"),t=document.createElementNS(this.xmlns,"filter");t.setAttribute("id",this.filterId),t.setAttribute("filterUnits",this.filterUnits);let i=document.createElementNS(this.xmlns,"feGaussianBlur");i.setAttribute("in","SourceAlpha"),i.setAttribute("stdDeviation",this.stdDeviation),t.appendChild(i);let o=document.createElementNS(this.xmlns,"feOffset");o.setAttribute("dx",this.feOffset1.dx),o.setAttribute("dy",this.feOffset1.dy),o.setAttribute("result","offsetblur");let n=document.createElementNS(this.xmlns,"feOffset");n.setAttribute("dx",this.feOffset2.dx),n.setAttribute("dy",this.feOffset2.dy),n.setAttribute("result","offsetblur"),t.appendChild(o),t.appendChild(n);let s=document.createElementNS(this.xmlns,"feComponentTransfer"),r=document.createElementNS(this.xmlns,"feFuncA");r.setAttribute("type","linear"),r.setAttribute("slope",this.shadowOpacity),s.appendChild(r),t.appendChild(s);let a=document.createElementNS(this.xmlns,"feMerge"),l=document.createElementNS(this.xmlns,"feMergeNode"),h=document.createElementNS(this.xmlns,"feMergeNode");h.setAttribute("in","SourceGraphic");let c=document.createElementNS(this.xmlns,"feMergeNode");c.setAttribute("in","SourceGraphic"),a.appendChild(l),a.appendChild(h),a.appendChild(c),t.appendChild(a),e.appendChild(t),this.dropShadowDefs=e}attach(e){this.dropShadowDefs||this.initialize(),e.appendChild(this.dropShadowDefs);let t=e.innerHTML;e.removeChild(this.dropShadowDefs),e.innerHTML=t}getFilterUrl(){return"url(#"+this.filterId+")"}}class Uo{constructor(e,t,i){this.domContainer=e,this.viewer=t,this.measure=i,this.viewId=0,this.itemList=[],this.mapMeasureInfo={},this.initShadowManager(),this.drawableFactory=new vo(t,i),this.hookViewer3DEvents()}hookViewer3DEvents(){this.selectionControl=new xo(this.domContainer,this.itemList),this.selectionControl.selectionChanged=e=>{if(e){let t=this.mapMeasureInfo[e.getId()];if(t.type=e.getType(),this.eventListener.fireEvent("MeasureSelected",t),this.bringToFront(e),this.itemClickCallback){let t=this.mapMeasureInfo[e.getId()];this.itemClickCallback(t)}}else this.eventListener.fireEvent("MeasureUnselected",{})},this.selectionControl.hoverChanged=e=>{e?(this.measure.disableMeasureCursor(),this.measure.setIsEnableSnap(!1)):e&&!this.measure.isMeasureOpen()||(this.measure.enableMeasureCursor(),this.measure.setIsEnableSnap(!0))},this.viewer.addEventListener("Rendered",(()=>{this.update()})),document.addEventListener("keyup",(e=>{if(46===e.keyCode){let e=this.selectionControl.getSelectedItem();e&&(this.eventListener.fireEvent("MeasureSelected",{type:e.getType(),isDataEmpty:!0}),this.removeItemById(e.getId()),this.selectionControl.setSelectedItem(null))}})),this.viewer.addEventListener("ButtonOnToolbarClicked",(e=>{if("LeftSubToolbar"===e.id&&(this.selectionControl.setSelectedItem(null),this.showExclusiveByViewId(e.viewId),this.viewId=e.viewId),"Measure"===e.id){let t=this.selectionControl.getSelectedItem();if(e.isChecked){if(this.showAll(),t){let e=this.mapMeasureInfo[t.getId()];e.type=t.getType(),t&&t.actionWhenSelected(),this.eventListener.fireEvent("MeasureSelected",e)}}else this.hideAll(),t&&t.actionWhenUnselected()}}))}addItem(e){let t=e.type,i=e.id;if(this.mapMeasureInfo[i])return;this.mapMeasureInfo[i]=e,e.filterUrl=this.dropShadowManager.getFilterUrl();const o=this.measure.getMeasureParams();for(let t in o)e.hasOwnProperty(t)||(e[t]=o[t]);let n=this.drawableFactory.make(t,e,i,this.measure);"ViewerDrawing"===this.viewer.getViewerType()&&n.setViewId&&n.setViewId(this.viewId),n.attach(this.domContainer),n.select(),this.selectionControl.setSelectedItem(n),this.itemList.push(n)}removeItemById(e){this.mapMeasureInfo[e]&&delete this.mapMeasureInfo[e];for(var t=0;t<this.itemList.length;t++)if(this.itemList[t].getId()===e){this.itemList[t].clear(!0),this.itemList.splice(t,1);break}}update(){this.clear();for(const e of this.itemList)e.initialize(),e.attach(this.domContainer),e.dropShadow(this.dropShadowManager.getFilterUrl());this.selectionControl.hasSelected()&&this.selectionControl.getSelectedItem().select()}clear(e){for(const t of this.itemList)t.clear(e);e&&(this.itemList.length=0,this.selectionControl.setSelectedItem(null),this.eventListener.fireEvent("MeasureUnselected",{}),this.mapMeasureInfo={})}unselctedAll(){for(const e of this.itemList)e.unselect();this.selectionControl.selectedItem=null}hideAll(){for(const e of this.itemList)e.measureSurfaceMesh&&e.measureSurfaceMesh.hide();this.domContainer.style.display="none"}showAll(){for(const e of this.itemList)e.measureSurfaceMesh&&e.measureSurfaceMesh.show();this.domContainer.style.display="block",this.update()}onClick(e){e&&(this.itemClickCallback=e)}save(){let e=[],t=Object.keys(this.mapMeasureInfo);for(const i of t)e.push(this.mapMeasureInfo[i]);return e}load(e){for(var t=0;t<e.length;t++){var i=e[t];this.addItem(i)}this.unselctedAll()}setEventListener(e){this.eventListener=e,this.eventListener.addEvent("Measuring",(()=>{this.selectionControl.setSelectedItem(null),this.setIsEnableSelection(!1)})),this.eventListener.addEvent("Measured",(()=>{this.setIsEnableSelection(!0)})),this.eventListener.addEvent("Reset",(()=>{this.setIsEnableSelection(!0)})),this.eventListener.addEvent("MeasureParamsUpdated",(()=>{this.measure.measureItem&&this.measure.measureItem.setMeasureParams(this.measure.getMeasureParams());for(const e of this.itemList){let t=this.measure.getMeasureParams(e.type);e.setMeasureParams(t);e.id;this.mapMeasureInfo[e.id].precision=t.precision,this.mapMeasureInfo[e.id].scale=t.scale,this.mapMeasureInfo[e.id].unit=t.unit}if(this.update(),this.selectionControl.hasSelected()){let e=this.selectionControl.getSelectedItem(),t=this.mapMeasureInfo[e.getId()];t.type=e.getType(),this.eventListener.fireEvent("MeasureSelected",t)}}))}bringToFront(e){for(var t=0;t<this.itemList.length;t++)if(this.itemList[t].getId()===e.getId()){this.itemList.splice(t,1);break}e.detach(),this.itemList.push(e),e.attach(this.domContainer)}initShadowManager(){this.dropShadowManager=new bo({filterId:"dropShadow",filterUnits:"userSpaceOnUse",stdDeviation:"2",feOffset1:{dx:5,dy:5},feOffset2:{dx:-5,dy:-5},opacity:"0.3"}),this.dropShadowManager.attach(this.domContainer)}getSelectedItem(){return this.selectionControl.getSelectedItem()}showExclusiveByViewId(e){for(const t of this.itemList)t.getViewId()===e?t.show():t.hide()}setIsEnableSelection(e){this.selectionControl.setIsEnableSelection(e)}}!function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=null,n=null,s=[],a=null,l=null,h=function(t){var o=t.viewer,n=this,s=new e.Web.Lang.EventManager,r=i.create("div","bf-measure-conext");n.isOpen=!1,o.addEventListener("Rendered",(function(){n.isOpen&&n.update()})),this._measureItemMap={},this.context={rootDomElement:r},this._opt=t,this.getEventManager=function(){return s},this.isEnableSnap=!0,this._p1=new THREE.Vector3,this._p2=new THREE.Vector3;var a=o.getViewer();a.registerEventListener(f.EVENTS.ON_MEASURE_PICK,(function(e){n.isOpen&&n.measureByPoint(e)})),a.registerEventListener(f.EVENTS.ON_VOLUME_MEASURE_END,(function(e){n.isOpen&&n.measureByPoint(e)})),a.registerEventListener(f.EVENTS.ON_MEASURE_RESET,(function(t){n.isOpen&&(n.measureItem.reset(),n.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Reset))}))};h.prototype={init:function(){var e=this.context,t=this._opt.viewer;t.getDomElement().appendChild(e.rootDomElement),t.getModels().forEach((e=>{e.setSelectedComponentsById()}));var o=i.createNS("svg","bf-measure-svg"),n=i.createNS("svg","bf-measure-svg"),s=i.create("div","bf-measure-text");e.rootDomElement.innerHTML="",e.rootDomElement.appendChild(o),e.rootDomElement.appendChild(n),this.drawableManager=new Uo(n,t,this),this.drawableManager.setEventListener(this.getEventManager()),this.switchOn(),e.svg=o,e.text=s,t.render()},enableMeasureCursor(){this._opt.viewer.getDomElement().style.cursor=`url(${r}),auto`},disableMeasureCursor(){this._opt.viewer.getDomElement().style.cursor=""},hideDragButton(){!e.Web.Lang.Utility.ClientHelper.getIsDesktop()&&this.measureItem&&this.measureItem.hideDragButton&&this.measureItem.hideDragButton()},activeByMeasureType:function(){e.Web.Lang.Utility.ClientHelper.getIsDesktop()||this.drawableManager.clear(!0),this.enableMeasureCursor();let t=this._opt.viewer.getViewer();if(this.type===e.Bimface.Plugins.Measure.MeasureTypeOption.Volume?(t.editorManager.disableTool(f.EditToolMode.PICK_BY_MEASURE),t.editorManager.enableTool(t,f.EditToolMode.VOLUME_MEASURE)):(t.editorManager.disableTool(f.EditToolMode.VOLUME_MEASURE),t.editorManager.enableTool(t,f.EditToolMode.PICK_BY_MEASURE)),this._measureItemMap[this.type])this.measureItem=this._measureItemMap[this.type];else{let t=new e.Bimface.Plugins.Measure.MeasureItemConfig;t=Object.assign(t,this._opt),t.measure=this,t.measureType=this.type,this.measureItem=new e.Bimface.Plugins.Measure[`Measure${this.type}Item`](t),this._measureItemMap[this.type]=this.measureItem}},switchOn:function(){this.isOpen||(this.activeByMeasureType(),this.isOpen=!0,this.drawableManager.setIsEnableSelection(!0))},switchOff:function(){if(this.isOpen){this.hideDragButton();var e=this,t=e._opt.viewer.getViewer();this.disableMeasureCursor(),t.editorManager.disableTool(f.EditToolMode.PICK_BY_MEASURE),t.editorManager.disableTool(f.EditToolMode.VOLUME_MEASURE),e.reset(),e.measureItem=null,this.isOpen=!1,this.drawableManager.setIsEnableSelection(!1)}},measureByPoint:function(t){var i=this,r=e.Web.Lang.Utility.ClientHelper.getIsDesktop(),h=i.measureItem;if(t){o=t.pickPoint?t.pickPoint:null,t.pickPlane?(a="Panel",l=t.normal):t.pickLine?(a="Line",s=t.pickLine):a=t.pickPoint?"Point":null;var c=this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.Volume;if(t.pick&&t.pickPoint||c){var d=this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.Elevation,g=this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.MinimumDistance;const o=this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.LaserClearDistance;if(d)h.redo(),h.addPoint(t.pickPoint),h.draw(this.context);else if(g&&t.userId)h.addPoint({userId:t.userId,modelId:t.modelId});else if(c&&t.objectId){for(let e in this.drawableManager.mapMeasureInfo){let i=this.drawableManager.mapMeasureInfo[e].points[0];if(i.modelId===t.modelId&&i.userId===t.objectId){this.drawableManager.removeItemById(e);break}}this.volumeResult=t.volume,this.volumePosition=t.position,h.addPoint({userId:t.objectId,modelId:t.modelId})}else o?t.userId&&h.addPoint({componentId:t.userId,modelId:t.modelId,point:t.pickPoint}):(h.addPoint(this.context.footPoint?n:t.pickPoint),i.update());h.getPoints().length==h.maxPointsNum?this.measureByInfo(this.getInfo()):(r||this.drawableManager.clear(!0),i.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measuring,i.getInfo()))}else this.isEnableSnap&&i.update()}},measureByInfo(t){const i=e.Web.Lang.Utility.ClientHelper.getIsDesktop();i||this.drawableManager.clear(!0),this.drawableManager.addItem(t),i||this.drawableManager.unselctedAll(),this.measureItem.setIsReserverd(!0),this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measured,t),this.measureItem.reset(!1)},measureMinimum:function(){},reset:function(){this.isOpen&&(this.measureItem.reset(),this.context.svg.innerHTML="",this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Reset))},setIsEnableSnap:function(e){e||(this.context.svg.innerHTML=""),this.isEnableSnap=e},update:function(){var t=this.measureItem,i=this.context,r=this._opt.viewer,h=r.getDomElement(),c=h.getBoundingClientRect(),d=r.getViewer(),g=t.getPoints(),u=[],p=[];if(i.svg.innerHTML="",i.footPoint=null,o?(i.hoverPosition=r.worldToClient(o),i.hoverPositionDS=d.getScene().worldToDrawing(o),0!=g.length&&(u=g.concat([o]))):(i.hoverPosition=null,0!=g.length&&(u=g.concat(g[g.length-1]))),i.hoverObjectType=a,"Line"==a&&2==s.length){i.lineStartPoint=r.worldToClient(s[0]),i.lineEndPoint=r.worldToClient(s[1]);var A=new THREE.Vector2(i.lineStartPoint.x,i.lineStartPoint.y),m=new THREE.Vector2(i.lineEndPoint.x,i.lineEndPoint.y),w=new THREE.Box2;w.min.set(h.clientLeft,h.clientTop),w.max.set(w.min.x+h.clientWidth,w.min.y+h.clientHeight);var C=!w.containsPoint(A),E=!w.containsPoint(m),B={start:A,end:m},I=f.CameraUtil.lineIntersectWithRect(B,w);if(C&&E)2==I.length&&(i.lineStartPoint=I[0],i.lineEndPoint=I[1]);else if(C||E)for(var y=new THREE.Vector2(i.hoverPosition.x,i.hoverPosition.y),S=C?m.clone():A.clone(),M=S.clone().sub(y).normalize(),v=0;v<I.length;v++){if(S.clone().sub(I[v]).normalize().dot(M)>0){i.lineStartPoint=S,i.lineEndPoint=I[v];break}}let e=g[g.length-1];if(e){let t=s[0].clone(),o=s[1].clone();const a=t.x-o.x,l=t.y-o.y,h=t.z-o.z;let c=(e.x-t.x)*(t.x-o.x)+(e.y-t.y)*(t.y-o.y)+(e.z-t.z)*(t.z-o.z);c/=Math.pow(a,2)+Math.pow(l,2)+Math.pow(h,2);let d=new THREE.Vector3(t.x+c*a,t.y+c*l,t.z+c*h),g=r.worldToClient(d);new THREE.Vector2(i.hoverPosition.x,i.hoverPosition.y).distanceTo(g)<=5&&(i.footPoint=g,i.hoverPosition=g,n=d)}}if("Panel"==i.hoverObjectType){i.normal=d.getScene().worldToDrawing(l),i.normal.normalize();var x=d.cameraControl,b=new THREE.Plane;b.setFromNormalAndCoplanarPoint(i.normal,i.hoverPositionDS);var U=new THREE.Vector2(i.hoverPosition.x-10,i.hoverPosition.y-10),D=new THREE.Vector2(i.hoverPosition.x+10,i.hoverPosition.y-10),R=i.hoverPositionDS,V=x.getRaycaster(U.x,U.y);if(this._p1=V.ray.intersectPlane(b,this._p1),V=x.getRaycaster(D.x,D.y),this._p2=V.ray.intersectPlane(b,this._p2),null==this._p1||null==this._p2)return this._p1=new THREE.Vector3,void(this._p2=new THREE.Vector3);var Q=new THREE.Vector3(1,0,0),k=new THREE.Vector3(0,1,0),F=new THREE.Vector3(0,0,1),T=Math.abs(i.normal.clone().dot(Q))<=.0025,P=Math.abs(i.normal.clone().dot(F))<=.0025;if(T&&P)var L=Q.clone(),K=F.clone();else L=k.clone().cross(i.normal).normalize(),K=i.normal.clone().cross(L).normalize();var G=this._p1.distanceTo(this._p2)/2,q=L.clone().multiplyScalar(G),H=K.clone().multiplyScalar(G),Y=R.clone().sub(q).add(H),j=R.clone().add(q).add(H),N=R.clone().sub(q).sub(H),W=R.clone().add(q).sub(H),O=[];O.push(Y,j,W,N);for(var J=[],Z=x.getContainerDimensions(),z=0;z<O.length;z++){var X=f.CameraUtil.drawingToCanvas(x.camera,O[z],Z.width,Z.height);J.push(new THREE.Vector3(X.x,X.y,0))}i.clientPts=J}for(v=0;v<u.length-1;v++){if(oe=d.worldPointsToClient(u[v],u[v+1])){var _={x:oe.start.x-c.left,y:oe.start.y-c.top};p.push(_)}}if(this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.Distance&&g.length==t.maxPointsNum){var $={x:g[1].x,y:g[0].y,z:g[0].z},ee={x:g[1].x,y:g[1].y,z:g[0].z},te=[],ie=[g[0],$,ee,g[1]];for(z=0;z<ie.length-1;z++){var oe;(oe=d.worldPointsToClient(ie[z],ie[z+1]))&&(oe.start.x-=c.left,oe.start.y-=c.top,oe.end.x-=c.left,oe.end.y-=c.top),te.push(oe)}i.auxLines=te}i.clientPoints=p,t.draw(i)},getInfo:function(){var t={},i=this.measureItem,o=this._opt.viewer,n=i.getPoints();if(t.type=this.type,t.id=e.Web.Lang.Utility.UUID.createUUID(),this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.LaserClearDistance&&1===n.length)l&&Object.assign(t,i.computeMeasureResult(l));else if(this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.MinimumDistance){if(2==n.length){var s=o.getMinimumComponentDistanceById(`[${n[0].modelId}]${n[0].userId}`,`[${n[1].modelId}]${n[1].userId}`);t.distance=s.minDistance,t.start=s.start,t.end=s.end}t.points=n}else if(this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.Volume)t.volumeResult=this.volumeResult,t.volumePosition=this.volumePosition,t.notSupport=!this.volumeResult,t.points=n;else if(t.points=n,this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.Distance)n&&2==n.length&&(t.distanceX=Math.abs(n[1].x-n[0].x),t.distanceY=Math.abs(n[1].y-n[0].y),t.distanceZ=Math.abs(n[1].z-n[0].z),t.distance=Math.sqrt(Math.pow(t.distanceX,2)+Math.pow(t.distanceY,2)+Math.pow(t.distanceZ,2)));else if(3==n.length){var r=new THREE.Vector3(n[0].x-n[1].x,n[0].y-n[1].y,n[0].z-n[1].z),a=new THREE.Vector3(n[2].x-n[1].x,n[2].y-n[1].y,n[2].z-n[1].z),h=r.angleTo(a);t.angle=180*h/Math.PI}return t},redo:function(){this.measureItem.redo(),this.update(),this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measuring,this.getInfo())},exit:function(){this.switchOff()},isMeasureOpen:function(){return this.isOpen},getDefaultUnit:function(){return this._opt.viewer._defaultUnit}},t.MeasureViewer3D=h}(),function(){var t="Bimface.Plugins.Measure.MeasureDrawing",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),s=function(t){let i=e.Web.Lang.Utility.ClientHelper.getIsDesktop();this._opt=t,this.isOpen=!1;var o=t.viewer,s=o.getViewer();this.viewer=o,this.viewerDrawing=s,this.domElement=o.getDomElement();var r=new e.Web.Lang.EventManager;let a=this;this.getEventManager=function(){return r},o.setSnapDistance(t.snapDistance);let l=n.createNS("svg","bf-measure-svg");l.style.position="absolute",l.style.left=0,l.style.top=0,l.style.width="100%",l.style.height="100%",s.dom.appendChild(l),this.drawableManager=new Uo(l,o,this),this.drawableManager.setEventListener(r),o.addEventListener("Measured",(t=>{if(!t)return;i||this.drawableManager.clear(!0),t.id=e.Web.Lang.Utility.UUID.createUUID(),this.drawableManager.addItem(t),i||this.drawableManager.unselctedAll();let n=t.type,{type:s,id:r,points:l}=t,h={type:s,id:r,points:l};h[n.toLowerCase()]=t[n.toLowerCase()],h.type=n,a.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measured,h),o._disableContextMenu=!0,requestAnimationFrame((()=>delete o._disableContextMenu))})),o.addEventListener("Measuring",(t=>{i||this.drawableManager.clear(!0),t.id=e.Web.Lang.Utility.UUID.createUUID(),a.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measuring,t)})),o.addEventListener("Reset",(()=>{this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Reset),o._disableContextMenu=!0,requestAnimationFrame((()=>delete o._disableContextMenu))}))};s.prototype={init:function(e){i.send(t,"init");e&&(this._callback=e),this.switchOn()},activeByMeasureType:function(){e.Web.Lang.Utility.ClientHelper.getIsDesktop()||this.drawableManager.clear(!0);let t=this.viewerDrawing.mouseEditorMgr,i={color:`#${this._opt.color.getHEX()}`};t.activeEditorByName(`${this.type}Measure`,i)},switchOn:function(){i.send(t,"switchOn"),this.isOpen||(this.isOpen=!0,this.enableMeasureCursor(),this.activeByMeasureType(),this.drawableManager.setIsEnableSelection(!0))},enableMeasureCursor:function(){this.domElement.firstElementChild.style.cursor=`url(${r}),auto`},disableMeasureCursor:function(){this.domElement.firstElementChild.style.cursor=""},switchOff:function(){i.send(t,"switchOff"),this.isOpen&&(this.isOpen=!1,this.disableMeasureCursor(),this.measureItem=null,this.viewerDrawing.mouseEditorMgr.activeEditorByName("pick"),this.drawableManager.setIsEnableSelection(!1))},reset:function(){i.send(t,"reset");var o=this.viewerDrawing.mouseEditorMgr.getEditor();o.reset&&o.reset(),this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Reset),this.viewerDrawing.update()},update:function(){i.send(t,"update")},exit:function(){i.send(t,"exit"),this.switchOff()},isMeasureOpen:function(){return this.isOpen},setIsEnableSnap:function(e){let t=this.viewerDrawing.mouseEditorMgr.getEditor();t.setIsEnableSnap&&t.setIsEnableSnap(e)},getDefaultUnit:function(){return null}},o.MeasureDrawing=s}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),new e.Web.Graphics.Color(17,218,183,.2),function(e){i.MeasureItem.call(this,e),this.measureEnd=!1,this.maxPointsNum=1/0,this.minPointsNum=2});t.Type.inheritPrototype(o,i.MeasureItem);var n={reset:function(){if(this.measurePoints=[],this.measureEnd=!1,this.maxPointsNum=1/0,this._svg){for(var e=this._svg.childNodes,t=e.length-1;t>-1;t--)this._svg.removeChild(e[t]);this._svg.innerHTML=""}},addPoint:function(e){if(this.hoverPositionUpdated=!1,!0!==this.measureEnd||this.measurePoints.length==this.maxPointsNum){if(this.measurePoints.length==this.maxPointsNum)this.reset();else if(this.measurePoints.length>0){let t=this.measurePoints.length,i=this.measurePoints[t-1];if(e.x===i.x&&e.y===i.y&&e.z===i.z)return}this.measurePoints.push(e),this.setIsReserverd(!1)}else this.maxPointsNum=this.measurePoints.length},draw:function(e,t){if(this.measureResult=t,this._svg=e.svg,this.drawCaptureItem(e),!this.getIsReserverd())switch(e.clientPoints.length){case 0:break;case 1:this.getMeasureResult();this.drawTerminalPoint(e.clientPoints[0]),e.hoverPosition&&this.drawLine([e.clientPoints[0],e.hoverPosition]),this.drawNotations();break;default:for(let t=1;t<e.clientPoints.length;t++)this.drawTerminalPoint(e.clientPoints[t-1]),this.drawLine([e.clientPoints[t-1],e.clientPoints[t]]),this.drawTerminalPoint(e.clientPoints[t]),e.hoverPosition&&t==e.clientPoints.length-1&&this.drawLine([e.clientPoints[t],e.hoverPosition]);this.drawNotations()}},drawNotations(){let e=[...this.measurePoints];this.hoverPositionUpdated&&this.nextMeasurePoint&&e.push(this.nextMeasurePoint);const t=e.length,i=this.getMeasureResult();for(let o=1;o<t;o++){let t={x:(e[o].x+e[o-1].x)/2,y:(e[o].y+e[o-1].y)/2,z:(e[o].z+e[o-1].z)/2},n=this.viewer.worldToClient(t);this.viewer.isInViewFrustum(t)&&this.drawNotation([n,n],i.distance[o-1])}let o={x:e[t-1].x,y:e[t-1].y,z:e[t-1].z},n=this.viewer.worldToClient(o);this.viewer.isInViewFrustum(o)&&this.drawNotation([n,n],`总长度:${i.totalDistance}`,!0),this.notation.dropShadow(this.filterUrl)},getMeasureResult(){let e=this.measureParams.unit,{distance:t,totalDistance:i}=this.measureResult,o=[],n=0;return t.forEach((t=>{n+=t;let i=t.toString();i=oo.formatDistance(i,this.measureParams),i+=oo.getPostFix(e,!1),o.push(i)})),n=n.toString(),n=oo.formatDistance(n,this.measureParams),n+=oo.getPostFix(e,!1),{distance:o,totalDistance:n}}};o.prototype=Object.assign(o.prototype,n),i.MeasurePolylineDistanceItem=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=function(t){i.MeasureItem.call(this,t),this.viewer=t.viewer,this.maxPointsNum=1;var n=new e.Web.Graphics.Color(17,218,183,.2),s=o.createNS("circle","bf-measure-handle");s.setAttribute("r",t.width),s.setAttribute("fill",n.getRGB()),s.style.fill=n.getRGB();var r=o.createNS("line","bf-measure-line");r.style.strokeWidth=2,r.style.stroke=n.getRGB();var a=o.createNS("polygon","bf-measure-rect");a.setAttribute("fill",n.getRGBA()),a.setAttribute("stroke",n.getRGB()),a.setAttribute("stroke-width",1),this.hoverLine=r,this.hoverPoint=s,this.hoverPanel=a,this.hoverPanelSize={width:20,height:20}};t.Type.inheritPrototype(n,i.MeasureItem);n.prototype=Object.assign(n.prototype,{draw:function(e){this.drawCaptureItem(e)}}),i.MeasurePositionItem=n}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),new e.Web.Graphics.Color(17,218,183,.2),function(e){i.MeasureItem.call(this,e)});t.Type.inheritPrototype(o,i.MeasureItem);var n={draw:function(e,t){const i=this.measurePoints,o=this.nextMeasurePoint;if(this._svg=e.svg,this.measureResult={distance:t.distance,horizontalDistance:t.horizontalDistance,verticalDistance:t.verticalDistance},this.drawCaptureItem(e),this.getIsReserverd()||0==i.length)return;let n=i.concat([o]),s=this.getMeasureResult(),r=this.calcLine(n[0],n[1]);if(this.drawTerminalPoint(r[0]),this.drawBorderlineByPoints(n,s.distance),n[0].z!=n[1].z){let e=n[0].z<n[1].z?n[0]:n[1],t=n[0].z<n[1].z?n[1]:n[0],i=this.calcTrianglePoint(n);this.drawBorderlineByPoints([e,i],s.verticalDistance),this.drawBorderlineByPoints([t,i],s.horizontalDistance)}else this.drawBorderlineByPoints([n[0],n[0]],s.horizontalDistance)},calcTrianglePoint(e){if(e.length<2)return null;let t=new THREE.Vector3;return e[0].z<e[1].z?t.set(e[0].x,e[0].y,e[1].z):e[0].z>e[1].z&&t.set(e[1].x,e[1].y,e[0].z),t},drawBorderlineByPoints(e,t){let i=e[0],o=e[1],n=this.calcLine(i,o);this.drawLine(n);let s={x:(i.x+o.x)/2,y:(i.y+o.y)/2,z:(i.z+o.z)/2},r=this.viewer.worldToClient(s);this.viewer.isInViewFrustum(s)&&this.drawNotation([r,r],t)},drawNotation:function(e,t){if(0===e.length)return;let i=this.notation.drawAnnotation({x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2},t,this.id);for(const e of i)this._svg.appendChild(e)},getMeasureResult:function(){const e=this.measureParams.unit;let{distance:t,horizontalDistance:i,verticalDistance:o}=this.measureResult;return t=t.toString(),t=oo.formatDistance(t,this.measureParams),t+=oo.getPostFix(e,!1),i=i.toString(),i=oo.formatDistance(i,this.measureParams),i+=oo.getPostFix(e,!1),o=o.toString(),o=oo.formatDistance(o,this.measureParams),o+=oo.getPostFix(e,!1),{distance:t,horizontalDistance:i,verticalDistance:o}}};o.prototype=Object.assign(o.prototype,n),i.MeasureTriangleDistanceItem=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),new e.Web.Graphics.Color(17,218,183,.2),function(e){i.MeasureItem.call(this,e),this.measureEnd=!1,this.minPointsNum=3,this.maxPointsNum=1/0});t.Type.inheritPrototype(o,i.MeasureItem);var n={addPoint:function(e){if(!0!==this.measureEnd||this.measurePoints.length==this.maxPointsNum){if(this.measurePoints.length==this.maxPointsNum)this.measureEnd=!1,this.maxPointsNum=1/0,this.measurePoints=[],this.reset();else if(this.measurePoints.length>0){let t=this.measurePoints.length,i=this.measurePoints[t-1];if(e.x===i.x&&e.y===i.y&&e.z===i.z)return}this.measurePoints.push(e),this.setIsReserverd(!1)}else this.maxPointsNum=this.measurePoints.length},reset:function(){if(this.measurePoints=[],this.measureEnd=!1,this.maxPointsNum=1/0,this._svg){for(var e=this._svg.childNodes,t=e.length-1;t>-1;t--)this._svg.removeChild(e[t]);this._svg.innerHTML=""}},draw:function(e,t){if(this.measureResult=t.area,this._svg=e.svg,this.drawCaptureItem(e),!this.getIsReserverd())switch(e.clientPoints.length){case 0:break;case 1:if(e.hoverPosition){let t=O.makeLine({start:e.clientPoints[0],end:e.hoverPosition,color:this.measureItemConfig.color.getRGBA(),lineWidth:this.measureItemConfig.width});e.svg.appendChild(t)}let t=O.makeCircle({strokeWidth:2,color:this.measureItemConfig.color.getRGBA(),radius:5,position:e.clientPoints[0]});t.setAttribute("filter",this.filterUrl),e.svg.appendChild(t);break;default:this.drawArea(e.clientPoints,e.hoverPosition),this.drawNotation(e.hoverPosition,`${this.getNotationTitle()}:${this.getMeasureResult()}`)}},drawArea:function(e,t){const i=t?e.concat(t):e;let o="";i.forEach((e=>{o+=e.x+","+e.y+" "}));let n=O.makePolygon({points:o,width:this.measureItemConfig.width,color:this.measureItemConfig.color.getRGBA(),fillColor:this.measureItemConfig.fillColor.getRGBA()});this._svg.appendChild(n),e.forEach((e=>{let t=O.makeCircle({strokeWidth:2,color:this.measureItemConfig.color.getRGBA(),radius:5,position:e});t.setAttribute("filter",this.filterUrl),this._svg.appendChild(t)}))},drawNotation:function(e,t){let i=this.notation.drawAnnotation({x:e.x,y:e.y},t,this.id,!0);for(const e of i)this._svg.appendChild(e)},getNotationTitle:()=>BimfaceLanguage.bf_tip_measure_spatial_area,getMeasureResult(){let e=this.measureParams.unit,t=this.measureResult.toString();return t=oo.formatArea(t,this.measureParams),t+=oo.getPostFix(e,!0),t}};o.prototype=Object.assign(o.prototype,n),i.MeasureSpatialAreaItem=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),new e.Web.Graphics.Color(17,218,183,.2),function(e){i.MeasureSpatialAreaItem.call(this,e)});t.Type.inheritPrototype(o,i.MeasureSpatialAreaItem);let n={getNotationTitle:()=>BimfaceLanguage.bf_tip_measure_projected_area};o.prototype=Object.assign(o.prototype,n),i.MeasureProjectedAreaItem=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),new e.Web.Graphics.Color(17,218,183,.2),function(e){i.MeasureSpatialAreaItem.call(this,e),this.defaultColor=e.color,this.fillColor=e.fillColor,this.borderWidth=e.width,this.measureSurfaceMesh=null});t.Type.inheritPrototype(o,i.MeasureSpatialAreaItem);let n={reset:function(){if(this.measurePoints=[],this.measureEnd=!1,this.maxPointsNum=1/0,this._svg){for(var e=this._svg.childNodes,t=e.length-1;t>-1;t--)this._svg.removeChild(e[t]);this._svg.innerHTML=""}this.measureSurfaceMesh&&(this.measureSurfaceMesh.dispose(),this.measureSurfaceMesh=null)},draw:function(e,t){if(this.measureResult=t.area,this._svg=e.svg,this.drawCaptureItem(e),!this.getIsReserverd())switch(this.measurePoints.length){case 0:this.measureSurfaceMesh&&this.measureSurfaceMesh.dispose();break;case 1:this.drawArea(this.measurePoints,e.hoverPosition),this.drawTerminals(e.clientPoints,e.hoverPosition);break;default:this.drawArea(this.measurePoints,e.hoverPosition),this.drawTerminals(e.clientPoints,e.hoverPosition),this.drawNotation(e.hoverPosition,`${this.getNotationTitle()}:${this.getMeasureResult()}`)}},drawArea(t,i){let o=this.viewer.clientToWorld(i),n=[...t];n.push(o),this.measureSurfaceMesh||(this.measureSurfaceMesh=new Io({fillColor:new e.Web.Graphics.Color("#f35801",.2),color:new e.Web.Graphics.Color("#f35801",1),width:this.borderWidth})),this.measureSurfaceMesh.setMeasurePoints(n),this.viewer.render()},drawTerminals(e,t){t&&e.concat(t);e.forEach((e=>{let t=O.makeCircle({strokeWidth:2,color:this.measureItemConfig.color.getRGBA(),radius:5,position:e});t.setAttribute("filter",this.filterUrl),this._svg.appendChild(t)}))},getNotationTitle:()=>BimfaceLanguage.bf_tip_measure_surface_area};o.prototype=Object.assign(o.prototype,n),i.MeasureSurfaceAreaItem=o}(),function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),new e.Web.Graphics.Color(17,218,183,.2),function(t){i.MeasureItem.call(this,t),this.measureEnd=!1,this.maxPointsNum=1/0,this.minPointsNum=2,this.groundCurve=new Map,this.currentCurves=[],this.groundInfos=[],this.externalObjectManager=new e.Bimface.Viewer.ExternalObjectManager(this.viewer),this.previewCurve=null,this.mesh=null});t.Type.inheritPrototype(o,i.MeasureItem);var n={reset:function(){if(this.measurePoints=[],this.measureEnd=!1,this.maxPointsNum=1/0,this._svg){for(var e=this._svg.childNodes,t=e.length-1;t>-1;t--)this._svg.removeChild(e[t]);this._svg.innerHTML=""}this.clearPreview(),this.groundInfos=[],this.currentCurves=[]},redo(){this.clearPreview(),this.measurePoints.length>0&&this.measurePoints.length<this.maxPointsNum?this.measurePoints.pop():this.measurePoints=[];let e=this.groundInfos.pop();if(e){let t=this.groundCurve.get(e.id);if(t){t.groundCurve&&t.groundCurve.dispose();let i=this.externalObjectManager.getObjectIdByName(`${e.id}`);this.externalObjectManager.removeById(i)}}},deleteCurveById(e){if(this.measurePoints=[],this.measureEnd=!1,this.maxPointsNum=1/0,this._svg){for(var t=this._svg.childNodes,i=t.length-1;i>-1;i--)this._svg.removeChild(t[i]);this._svg.innerHTML=""}this.clearPreview();let o=this.groundCurve.get(e);if(o){o.groundCurve&&o.groundCurve.dispose();let t=this.externalObjectManager.getObjectIdByName(`${e}`);this.externalObjectManager.removeById(t)}this.groundInfos=[]},clear:function(){if(this.measurePoints=[],this.measureEnd=!1,this.maxPointsNum=1/0,this._svg){for(var e=this._svg.childNodes,t=e.length-1;t>-1;t--)this._svg.removeChild(e[t]);this._svg.innerHTML=""}this.clearPreview(),this.groundCurve.forEach(((e,t)=>{e.groundCurve&&e.groundCurve.dispose();let i=this.externalObjectManager.getObjectIdByName(`${t}`);this.externalObjectManager.removeById(i)})),this.groundCurve.clear(),this.groundInfos=[]},createGroundCurve(t){if(t){var i=new f.Raycaster,o=new THREE.Vector3,n=this.viewer.getViewer().cameraControl.getIntersectContext(null),s=new f.IntersectHelper(this.viewer.getViewer());i.camera=n.camera,i.viewportSize=n.viewportSize;var r=[];t.getPoints(100).forEach((e=>{o.copy(e),(o=this.viewer.worldToScene(e)).y=1e4,i.set(o,new THREE.Vector3(0,-1,0));let t=s.getObjectsByRaycaster(n,i,!0);if(t.length>0){let e;e=this.viewer.sceneToWorld(t[0].point),r.push(e)}else r.push(e)})),t=null,this.previewCurve=new e.Bimface.Plugins.Geometry.SplineCurve(r),this.previewCurve.setWidth(3),this.previewCurve.setColor(new e.Web.Graphics.Color("#f35801",1)),this.previewCurve.projectToGround(!0),this.groundInfos.push({id:"preview",length:this.previewCurve.length,midPoint:this.previewCurve.getPointByParameter(.5),endPoint:this.previewCurve.getPointByParameter(1),status:"finished"}),this.externalObjectManager&&this.externalObjectManager._addObject("preview",this.previewCurve)}},clearPreview(){if(this.previewCurve){for(let e=0;e<this.groundInfos.length;e++)"preview"===this.groundInfos[e].id&&this.groundInfos.splice(e,1);let e=this.externalObjectManager.getObjectIdByName("preview");this.externalObjectManager.removeById(e),this.previewCurve.dispose(),this.previewCurve=null}},savePreview(){if(this.previewCurve){let t=e.Web.Lang.Utility.UUID.createUUID();if(this.groundCurve.set(t,this.previewCurve),this.currentCurves.push({id:t,curve:this.previewCurve}),this.groundInfos.push({id:t,length:this.previewCurve.length,midPoint:this.previewCurve.getPointByParameter(.5),endPoint:this.previewCurve.getPointByParameter(1),status:"finished"}),this.externalObjectManager){let e=this.externalObjectManager.getObjectIdByName("preview");this.externalObjectManager.removeById(e),this.externalObjectManager._addObject(`${t}`,this.previewCurve)}}},createPath(e,t,i){let o=new THREE.Vector3(e.x,e.y,e.z),n=new THREE.Vector3(t.x,t.y,t.z);if(o.equals(n))return;let s,r=[];r.push(o),r.push(n),s=new THREE.CatmullRomCurve3(r),s.tension=0,s.type="catmullrom",this.createGroundCurve(s)},addPoint:function(e){if(this.hoverPositionUpdated=!1,!0===this.measureEnd&&this.measurePoints.length!=this.maxPointsNum)return this.maxPointsNum=this.measurePoints.length,void this.clearPreview();if(this.measurePoints.length==this.maxPointsNum)this.reset();else if(this.measurePoints.length>0){let t=this.measurePoints.length,i=this.measurePoints[t-1];if(e.x===i.x&&e.y===i.y&&e.z===i.z)return void this.clearPreview()}this.measurePoints.push(e),this.savePreview(),this.setIsReserverd(!1)},draw:function(e,t){if(this.clearPreview(),this._svg=e.svg,this.drawCaptureItem(e),!this.getIsReserverd())switch(e.clientPoints.length){case 0:break;case 1:this.drawTerminalPoint(e.clientPoints[0]),e.hoverPosition&&this.nextMeasurePoint&&this.createPath(this.measurePoints[this.measurePoints.length-1],this.nextMeasurePoint),this.drawNotations();break;default:for(let t=1;t<e.clientPoints.length;t++)this.drawTerminalPoint(e.clientPoints[t-1]),this.drawTerminalPoint(e.clientPoints[t]);this.createPath(this.measurePoints[this.measurePoints.length-1],this.nextMeasurePoint),this.drawNotations()}},drawNotations(){let e=null,t=0;for(let i=0;i<this.groundInfos.length;i++){let o=this.groundInfos[i],n={x:o.midPoint.x,y:o.midPoint.y,z:o.midPoint.z},s=this.viewer.worldToClient(n);this.viewer.isInViewFrustum(n)&&this.drawNotation([s,s],this.formatDistance(o.length)),t+=o.length,i===this.groundInfos.length-1&&(e=o.endPoint)}if(e){let i={x:e.x,y:e.y,z:e.z},o=this.viewer.worldToClient(i);this.viewer.isInViewFrustum(i)&&this.drawNotation([o,o],`总长度:${this.formatDistance(t)}`,!0)}this.notation.dropShadow(this.filterUrl)},formatDistance(e){let t=this.measureParams.unit,i=e.toString();return i=oo.formatDistance(i,this.measureParams),i+=oo.getPostFix(t,!1),i}};o.prototype=Object.assign(o.prototype,n),i.MeasureGroundlineDistanceItem=o}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=null,n=[],s=null,a=null,l=function(t){this.viewer3D=t.viewer;var o=new e.Web.Lang.EventManager,n=i.create("div","bf-measure-conext");this.isOpen=!1,this.context={rootDomElement:n},this._opt=t,this.type=t.measureType,this.getEventManager=function(){return o},this.isEnableSnap=!0,this._p1=new THREE.Vector3,this._p2=new THREE.Vector3};l.prototype={init:function(){var e=this.context,t=this._opt.viewer;t.getDomElement().appendChild(e.rootDomElement);var o=i.createNS("svg","bf-measure-svg"),n=i.createNS("svg","bf-measure-svg"),s=i.create("div","bf-measure-text");e.rootDomElement.innerHTML="",e.rootDomElement.appendChild(o),e.rootDomElement.appendChild(n),this.drawableManager=new Uo(n,t,this),this.drawableManager.setEventListener(this.getEventManager()),this._hookEvents(),this.switchOn(),e.svg=o,e.text=s,t.render()},_onViewerRender(){this.isOpen&&this.update()},_onCloudViewerMeasuring(e){this.isOpen&&(this.measureItem.hoverPositionUpdated=!0,this.measureByPoint(e))},_onCloudViewerMeasureReset(t){if(!this.isOpen)return;const i=this.measureItem;this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.Position||this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.TriangleDistance||this.type==e.Bimface.Plugins.Measure.MeasureTypeOption.Angle||i.getPoints().length<i.minPointsNum?(i.reset(),this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Reset)):i.getPoints().length!=i.maxPointsNum&&(i.measureEnd=!0,this.measureByPoint(t))},_hookEvents(){const t=this.viewer3D,i=t.getViewer();this._onRenderBinded=this._onViewerRender.bind(this),this._onMeasuringBinded=this._onCloudViewerMeasuring.bind(this),this._onMeasureResetBinded=this._onCloudViewerMeasureReset.bind(this),t.addEventListener(e.Bimface.Viewer.Viewer3DEvent.Rendered,this._onRenderBinded),i.registerEventListener(f.EVENTS.ON_MEASURE_PICK,this._onMeasuringBinded),i.registerEventListener(f.EVENTS.ON_MEASURE_RESET,this._onMeasureResetBinded)},_unhookEvents(){const t=this.viewer3D,i=t.getViewer();t.removeEventListener(e.Bimface.Viewer.Viewer3DEvent.Rendered,this._onRenderBinded),i.unregisterEventListener(f.EVENTS.ON_MEASURE_PICK,this._onMeasuringBinded),i.unregisterEventListener(f.EVENTS.ON_MEASURE_RESET,this._onMeasureResetBinded)},enableMeasureCursor(){this._opt.viewer.getDomElement().style.cursor=`url(${r}),auto`},disableMeasureCursor(){this._opt.viewer.getDomElement().style.cursor=""},activeByMeasureType:function(){e.Web.Lang.Utility.ClientHelper.getIsDesktop()||this.drawableManager.clear(!0),this.enableMeasureCursor();let t,i=this._opt.viewer.getViewer();this.type===e.Bimface.Plugins.Measure.MeasureTypeOption.Volume?(i.editorManager.disableTool(f.EditToolMode.PICK_BY_MEASURE),i.editorManager.enableTool(i,f.EditToolMode.VOLUME_MEASURE)):(i.editorManager.disableTool(f.EditToolMode.VOLUME_MEASURE),i.editorManager.enableTool(i,f.EditToolMode.PICK_BY_MEASURE));let o=new e.Bimface.Plugins.Measure.MeasureItemConfig;switch(o=Object.assign(o,this._opt,this.getMeasureParams()),this.type){case e.Bimface.Plugins.Measure.MeasureTypeOption.Angle:t=new e.Bimface.Plugins.Measure.MeasureAngleItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.PolylineDistance:t=new e.Bimface.Plugins.Measure.MeasurePolylineDistanceItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.Position:t=new e.Bimface.Plugins.Measure.MeasurePositionItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.TriangleDistance:t=new e.Bimface.Plugins.Measure.MeasureTriangleDistanceItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.SpatialArea:t=new e.Bimface.Plugins.Measure.MeasureSpatialAreaItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.ProjectedArea:t=new e.Bimface.Plugins.Measure.MeasureProjectedAreaItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.SurfaceArea:t=new e.Bimface.Plugins.Measure.MeasureSurfaceAreaItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.GroundlineDistance:t=new e.Bimface.Plugins.Measure.MeasureGroundlineDistanceItem(o);break;case e.Bimface.Plugins.Measure.MeasureTypeOption.Volume:t=new e.Bimface.Plugins.Measure.MeasureVolumeItem(o)}this.measureItem=t},switchOn:function(){this.isOpen||(this.activeByMeasureType(),this.isOpen=!0,this.drawableManager.setIsEnableSelection(!0))},switchOff:function(){if(this.isOpen){var e=this,t=e._opt.viewer.getViewer();this.disableMeasureCursor(),t.editorManager.disableTool(f.EditToolMode.PICK_BY_MEASURE),t.editorManager.disableTool(f.EditToolMode.VOLUME_MEASURE),e.reset(),e.measureItem=null,this.isOpen=!1,this.drawableManager.setIsEnableSelection(!1)}},measureByPoint:function(t){var i=this,r=e.Web.Lang.Utility.ClientHelper.getIsDesktop(),l=i.measureItem;t&&(o=t.pickPoint?t.pickPoint:null,t.pickPlane?(s="Panel",a=t.normal):t.pickLine?(s="Line",n=t.pickLine):s=t.pickPoint?"Point":null,t.pick&&t.pickPoint?(l.addPoint(t.pickPoint),l.getPoints().length==l.maxPointsNum?(r||this.drawableManager.clear(!0),this.drawableManager.addItem(this.getInfo(!0)),r||this.drawableManager.unselctedAll(),this.measureItem.setIsReserverd(!0),i.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measured,i.getInfo(!0)),l.reset()):(r||this.drawableManager.clear(!0),i.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measuring,i.getInfo())),i.update()):this.isEnableSnap&&i.update())},reset:function(){this.isOpen&&(this.measureItem.reset(),this.context.svg.innerHTML="",this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Reset))},setIsEnableSnap:function(e){e||(this.context.svg.innerHTML=""),this.isEnableSnap=e},update:function(){var e=this.measureItem,t=this.context,i=this._opt.viewer,r=i.getDomElement(),l=r.getBoundingClientRect(),h=i.getViewer(),c=e.getPoints(),d=[],g=[];if(this.context.svg.innerHTML="",o?(t.hoverPosition=i.worldToClient(o),t.hoverPositionDS=h.getScene().worldToDrawing(o),e.nextMeasurePoint=o):t.hoverPosition=e.nextMeasurePoint?i.worldToClient(e.nextMeasurePoint):null,0!=c.length&&(d=c.concat([e.nextMeasurePoint])),t.hoverObjectType=s,"Line"==s&&2==n.length){t.lineStartPoint=i.worldToClient(n[0]),t.lineEndPoint=i.worldToClient(n[1]);var u=new THREE.Vector2(t.lineStartPoint.x,t.lineStartPoint.y),p=new THREE.Vector2(t.lineEndPoint.x,t.lineEndPoint.y),A=new THREE.Box2;A.min.set(r.clientLeft,r.clientTop),A.max.set(A.min.x+r.clientWidth,A.min.y+r.clientHeight);var m=!A.containsPoint(u),w=!A.containsPoint(p),C={start:u,end:p},E=f.CameraUtil.lineIntersectWithRect(C,A);if(m&&w)2==E.length&&(t.lineStartPoint=E[0],t.lineEndPoint=E[1]);else if(m||w)for(var B=new THREE.Vector2(t.hoverPosition.x,t.hoverPosition.y),I=m?p.clone():u.clone(),y=I.clone().sub(B).normalize(),S=0;S<E.length;S++){if(I.clone().sub(E[S]).normalize().dot(y)>0){t.lineStartPoint=I,t.lineEndPoint=E[S];break}}}if("Panel"==t.hoverObjectType){t.normal=h.getScene().worldToDrawing(a),t.normal.normalize();var M=h.cameraControl,v=new THREE.Plane;v.setFromNormalAndCoplanarPoint(t.normal,t.hoverPositionDS);var x=new THREE.Vector2(t.hoverPosition.x-10,t.hoverPosition.y-10),b=new THREE.Vector2(t.hoverPosition.x+10,t.hoverPosition.y-10),U=t.hoverPositionDS,D=M.getRaycaster(x.x,x.y);if(this._p1=D.ray.intersectPlane(v,this._p1),D=M.getRaycaster(b.x,b.y),this._p2=D.ray.intersectPlane(v,this._p2),null==this._p1||null==this._p2)return this._p1=new THREE.Vector3,void(this._p2=new THREE.Vector3);var R=new THREE.Vector3(1,0,0),V=new THREE.Vector3(0,1,0),Q=new THREE.Vector3(0,0,1),k=Math.abs(t.normal.clone().dot(R))<=.0025,F=Math.abs(t.normal.clone().dot(Q))<=.0025;if(k&&F)var T=R.clone(),P=Q.clone();else T=V.clone().cross(t.normal).normalize(),P=t.normal.clone().cross(T).normalize();var L=this._p1.distanceTo(this._p2)/2,K=T.clone().multiplyScalar(L),G=P.clone().multiplyScalar(L),q=U.clone().sub(K).add(G),H=U.clone().add(K).add(G),Y=U.clone().sub(K).sub(G),j=U.clone().add(K).sub(G),N=[];N.push(q,H,j,Y);for(var W=[],O=M.getContainerDimensions(),J=0;J<N.length;J++){var Z=f.CameraUtil.drawingToCanvas(M.camera,N[J],O.width,O.height);W.push(new THREE.Vector3(Z.x,Z.y,0))}t.clientPts=W}for(S=0;S<d.length-1;S++){var z=h.worldPointsToClient(d[S],d[S+1]);if(z){var X={x:z.start.x-l.left,y:z.start.y-l.top};g.push(X)}}t.clientPoints=g;let _=this.getInfo(!0,d);e.draw(t,_)},getInfo:function(t,i){var o={},n=this.measureItem,s=this._opt.viewer;i=i||n.getPoints();switch(o.type=this.type,o.id=e.Web.Lang.Utility.UUID.createUUID(),o.points=i,this.type){case e.Bimface.Plugins.Measure.MeasureTypeOption.Angle:if(3==i.length){var r=new THREE.Vector3(i[0].x-i[1].x,i[0].y-i[1].y,i[0].z-i[1].z),a=new THREE.Vector3(i[2].x-i[1].x,i[2].y-i[1].y,i[2].z-i[1].z),l=r.angleTo(a);o.angle=180*l/Math.PI}break;case e.Bimface.Plugins.Measure.MeasureTypeOption.Position:if(1==i.length){o.coordinateSystem="GCJ-02";let e=s.worldToLatLon(i[0]);o.lonLat={longitude:e.lon,latitude:e.lat},o.altitude=i[0].z}break;case e.Bimface.Plugins.Measure.MeasureTypeOption.PolylineDistance:if(i&&i.length>=2){let e=i.length;o.distance=[],o.totalDistance=0;for(let t=1;t<e;t++){let e=i[t].distanceTo(i[t-1]);o.distance.push(e),o.totalDistance+=e}}break;case e.Bimface.Plugins.Measure.MeasureTypeOption.GroundlineDistance:if(i&&i.length>=2){o.distance=[],o.totalDistance=0,o.positions=[],o.item=n,o.curves=n.currentCurves;for(let e=0;e<n.groundInfos.length;e++){let t=n.groundInfos[e];o.distance.push(t.length),o.totalDistance+=t.length;let i={midPoint:t.midPoint,endPoint:t.endPoint};o.positions.push(i)}}break;case e.Bimface.Plugins.Measure.MeasureTypeOption.TriangleDistance:if(2==i.length){o.distance=o.points[0].distanceTo(o.points[1]);let e=i[0].clone(),t=0,n=0;i[0].z<i[1].z?(e.set(i[0].x,i[0].y,i[1].z),t=e.distanceTo(i[1]),n=e.distanceTo(i[0])):i[0].z>i[1].z&&(e.set(i[1].x,i[1].y,i[0].z),t=e.distanceTo(i[0]),n=e.distanceTo(i[1])),Object.assign(o,{horizontalDistance:t,verticalDistance:n})}break;case e.Bimface.Plugins.Measure.MeasureTypeOption.SpatialArea:if(i.length>=3&&t){let e=O.calcSpatialArea(i);Object.assign(o,{area:e})}break;case e.Bimface.Plugins.Measure.MeasureTypeOption.ProjectedArea:if(i.length>=3&&t){let e=O.calcProjectedArea(i);Object.assign(o,{area:e})}break;case e.Bimface.Plugins.Measure.MeasureTypeOption.SurfaceArea:if(i.length>=3&&t){let e=O.calcSurfaceArea(i,s);Object.assign(o,{area:e})}}return o},redo:function(){this.measureItem.redo(),this.update(),this.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureEvent.Measuring,this.getInfo())},exit:function(){this.switchOff(),this._unhookEvents()},isMeasureOpen:function(){return this.isOpen},getDefaultUnit:function(){return"m"}},t.MeasureViewerGIS=l}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=function(t){var n=t.viewer;if(n){var s=new e.Web.Lang.EventManager,r=o.create("div","bf-measure-conext");this.context={rootDomElement:r},this.id="Measure",this._opt=t,this.type=t.measureType,this.getEventManager=function(){return s},"Viewer3D"===n.getViewerType()?(i.MeasureViewer3D.call(this,t),this.inherit(e.Bimface.Plugins.Measure.MeasureViewer3D.prototype)):"ViewerGIS"===n.getViewerType()?(i.MeasureViewerGIS.call(this,t),this.inherit(e.Bimface.Plugins.Measure.MeasureViewerGIS.prototype)):(i.MeasureDrawing.call(this,t),this.inherit(e.Bimface.Plugins.Measure.MeasureDrawing.prototype)),this._setDefaultUnits(t),this._setDefaultPrecisions(t),this.init()}};n.prototype={inherit:function(e){for(var t in e)this[t]=e[t]},addEventListener:function(e,t){this.getEventManager().addEvent(e,t)},removeEventListener:function(e,t){this.getEventManager().removeEvent(e,t)},_setDefaultUnits:function(t){const i=t.viewer.getViewerType();if(null!=t.lengthUnits&&null==t.units){switch(i){case"Viewer3D":t.units={distance:t.lengthUnits,elevation:t.lengthUnits};break;case"ViewerGIS":t.units={distance:t.lengthUnits,elevation:t.lengthUnits,area:t.lengthUnits};break;case"ViewerDrawing":t.units={distance:t.lengthUnits,area:t.lengthUnits}}return}const o=this.getDefaultUnit();"m"===o?t.lengthUnits=e.Bimface.Common.Units.LengthUnits.Meter:"mm"===o&&(t.lengthUnits=e.Bimface.Common.Units.LengthUnits.Millimeter);const n=t.units&&t.units.distance||t.lengthUnits||e.Bimface.Common.Units.LengthUnits.Millimeter,s=t.units&&t.units.distance||t.lengthUnits||e.Bimface.Common.Units.LengthUnits.None,r=t.units&&t.units.elevation||e.Bimface.Common.Units.LengthUnits.Meter,a=t.units&&t.units.area||e.Bimface.Common.Units.LengthUnits.Meter,l=t.units&&t.units.area||e.Bimface.Common.Units.LengthUnits.None;switch(i){case"Viewer3D":t.units={distance:n,elevation:r};break;case"ViewerGIS":t.units={distance:n,elevation:r,area:a};break;case"ViewerDrawing":t.units={distance:s,area:l}}},_setDefaultPrecisions:function(e){if("number"==typeof e.precision)e.obsoletePrecision=e.precision,e.precision={distance:e.obsoletePrecision,elevation:e.obsoletePrecision,area:e.obsoletePrecision,angle:e.obsoletePrecision,latLon:e.obsoletePrecision};else{let{distance:t=3,elevation:i=3,area:o=3,angle:n=2,latLon:s=9}=e.precision;e.precision={distance:t,elevation:i,area:o,angle:n,latLon:s}}},getMeasureType:function(){return this.type},setMeasureType:function(e){t.send("Bimface.Plugins.Measure.Measure","setMeasureType"),this.hideDragButton&&this.hideDragButton(),this.type=e,this.reset(),this.activeByMeasureType(),this.getEventManager().fireEvent("typeChange",e)},setPrecision:function(e){"number"==typeof e||"string"==typeof e?(this._opt.obsoletePrecision=e,this._opt.precision={distance:e,elevation:e,area:e,angle:e,latLon:e}):this._opt.precision=Object.assign(this._opt.precision,e),this.getEventManager().fireEvent("MeasureParamsUpdated")},getPrecision:function(){return void 0!==this._opt.obsoletePrecision?this._opt.obsoletePrecision:this._opt.precision},setScale:function(e){this._opt.scale=e,this.getEventManager().fireEvent("MeasureParamsUpdated")},getScale:function(){return this._opt.scale},setLengthUnits:function(e){this._opt.lengthUnits=e;for(const t in this._opt.units)this._opt.units[t]=e;this.getEventManager().fireEvent("MeasureParamsUpdated")},getLengthUnits:function(){return this._opt.lengthUnits},setUnits:function(e){this._opt.units=Object.assign(this._opt.units,e),this.getEventManager().fireEvent("MeasureParamsUpdated")},getUnits:function(){return this._opt.units},getAllItems:function(){return this.drawableManager.save()},setItems:function(e){this.clear(),this.drawableManager.load(e)},clear:function(){this.drawableManager.clear(!0),this.hideDragButton&&this.hideDragButton()},hideAllItems:function(){this.drawableManager.hideAll()},showAllItems:function(){this.drawableManager.showAll()},onClick:function(e){this.drawableManager.onClick(e)},removeSelectedItem:function(){this.drawableManager.unselctedAll()},getSelectedItem:function(){return this.drawableManager.getSelectedItem()},getMeasureParams:function(t){let i={scale:this.getScale(),defaultUnit:this.getDefaultUnit()};switch(t||this.type){case e.Bimface.Plugins.Measure.MeasureTypeOption.Angle:i=Object.assign(i,{precision:this._opt.precision.angle,unit:"°"});break;case e.Bimface.Plugins.Measure.MeasureTypeOption.Elevation:i=Object.assign(i,{precision:this._opt.precision.elevation,unit:this.getUnits().elevation});break;case e.Bimface.Plugins.Measure.MeasureTypeOption.Area:case e.Bimface.Plugins.Measure.MeasureTypeOption.SpatialArea:case e.Bimface.Plugins.Measure.MeasureTypeOption.ProjectedArea:case e.Bimface.Plugins.Measure.MeasureTypeOption.SurfaceArea:i=Object.assign(i,{precision:this._opt.precision.area,unit:this.getUnits().area});break;case e.Bimface.Plugins.Measure.MeasureTypeOption.Position:i=Object.assign(i,{precision:{elevation:this._opt.precision.elevation,latLon:this._opt.precision.latLon},unit:this.getUnits().elevation});break;default:i=Object.assign(i,{precision:this._opt.precision.distance,unit:this.getUnits().distance})}return i}},i.Measure=n}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure").MeasureRayConfig=function(){return{viewer:null,targetsHintColor:new e.Web.Graphics.Color(245,127,35,.6)}},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure").MeasureRayItemConfig=function(){return{id:null,color:new e.Web.Graphics.Color(245,127,35,1),width:2,startPoint:new e.Web.Geometry.Point3d(0,0,0),endPoint:new e.Web.Geometry.Point3d(0,0,0),startObjectId:null,endObjectId:null}},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=function(t){this.id=t.id||e.Web.Lang.Utility.UUID.createUUID();this.startPoint=t.startPoint,this.endPoint=t.endPoint;this.startComponentId=t.startComponentId,this.endComponentId=t.endComponentId;var o=i.createNS("defs","bf-defs");o.innerHTML=`\n <marker id="end" markerWidth="6" markerHeight="6" refx="5" refy="3" orient="auto" markerUnits="strokeWidth">\n <path d="M0,0 L0,6 L6,3 z" fill="${t.color.getRGBA()}" />\n </marker>`;var n=i.create("i","bf-measure-handle");n.style.width=12*t.width+"px",n.style.height=12*t.width+"px",n.style.backgroundColor=t.color.getRGBA(),n.style.lineHeight=12*t.width+"px";var s=i.createNS("line","bf-measure-line");s.style.stroke=t.color.getRGBA(),s.setAttribute("stroke-width",t.width);var r=i.create("span","bf-measure-number");r.style.backgroundColor=t.color.getRGBA(),this.domElement=o,this.line=s,this.circle=n,this.text=r};o.prototype={draw:function(e){var t=this.domElement,i=this.line,o=this.circle,n=this.text,s=Math.abs(e.endPoint.x-e.startPoint.x),r=Math.abs(e.endPoint.y-e.startPoint.y),a=Math.abs(e.endPoint.z-e.startPoint.z),l=Math.sqrt(Math.pow(s,2)+Math.pow(r,2)+Math.pow(a,2));i.setAttribute("x1",e.startPoint.x),i.setAttribute("y1",e.startPoint.y),i.setAttribute("x2",e.endPoint.x),i.setAttribute("y2",e.endPoint.y),o.style.left=`${e.startPoint.x}px`,o.style.top=`${e.startPoint.y}px`,e.isMove&&(o.style.border="2px solid #fff"),l<15?i.removeAttribute("marker-end"):i.setAttribute("marker-end","url(#end)"),n.innerText=e.distance,e.svg.appendChild(t),e.svg.appendChild(i),e.text.appendChild(o),0==e.distance?o.innerText="0":(n.style.left=(e.startPoint.x+e.endPoint.x)/2+"px",n.style.top=(e.startPoint.y+e.endPoint.y)/2+"px",n.style.transform="translate(-50%, 0)",n.style.marginTop="2px",e.text.appendChild(n))}},t.MeasureRayItem=o}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure");let i=Object.freeze({Measured:"Measured",Clear:"Clear"});t.MeasureRayEvent=i}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Measure"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=function(t){var o=t.viewer;if(o)if("Viewer3D"===o.viewerType){var n=this,s=new e.Web.Lang.EventManager,r=i.create("div","bf-measure-conext");o.addEventListener("Rendered",(function(){n.measureItem&&n.update()})),this.context={rootDomElement:r},this._opt=t,this._enableMove=!1,this._events={mousedown:function(){this._startTime=(new Date).getTime()},mouseup:function(e){if(0==e.button||1==e.button)if(n._enableMove)n._enableMove=!1,n.measureByPoint(e);else{var t=this._startTime;(new Date).getTime()-t<300&&n.measureByPoint(e)}},mousemove:function(e){n._enableMove&&(e.stopPropagation(),n.measureByPoint(e))}},this.getEventManager=function(){return s}}else console.log("Viewer2D is not supported.")};o.prototype={addEventListener:function(e,t){this.getEventManager().addEvent(e,t)},removeEventListener:function(e,t){this.getEventManager().removeEvent(e,t)},switchOn:function(e){var t=this.context,o=this;o._opt.viewer.getDomElement().appendChild(t.rootDomElement),e&&(o._callback=e),o._opt.viewer.getModels().forEach((e=>{e.setSelectedComponentsById()}));var n=i.createNS("svg","bf-measure-svg"),s=i.create("div","bf-measure-text");t.rootDomElement.appendChild(n),t.rootDomElement.appendChild(s),t.svg=n,t.text=s,t.rootDomElement.addEventListener("mousedown",o._events.mousedown),t.rootDomElement.addEventListener("mouseup",o._events.mouseup),t.rootDomElement.addEventListener("mousemove",o._events.mousemove)},switchOff:function(){var e=this.context.rootDomElement,t=this,i=t._opt.viewer;t.measureItem&&(i.restoreComponentsColorById([t.measureItem.startComponentId,t.measureItem.endComponentId]),i.render()),e.removeEventListener("mousedown",t._events.mousedown),e.removeEventListener("mouseup",t._events.mouseup),e.removeEventListener("mousemove",t._events.mousemove),e.innerHTML="",e.remove(),t.measureItem=null},reset:function(){this.clear()},clear:function(){var t=this.context,i=this,o=i._opt.viewer;i.measureItem&&(o.restoreComponentsColorById([i.measureItem.startComponentId,i.measureItem.endComponentId]),o.render()),t.svg.innerHTML="",t.text.innerHTML="",i.measureItem=null,i.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureRayEvent.Clear,data)},measureByPoint:function(t){var i=this,o=i._opt.viewer,n=o.getViewer().pickByPointWithNormal(t);if(n){i.measureItem&&o.restoreComponentsColorById([i.measureItem.startComponentId,i.measureItem.endComponentId]);e.Bimface.Viewer.Viewer3DEvent;var s=i._getContextData(n),r=new e.Bimface.Plugins.Measure.MeasureRayItemConfig;r.startComponentId=s.startComponentId,r.endComponentId=s.endComponentId,r.startPoint=s.startPoint,r.endPoint=s.endPoint;var a=new e.Bimface.Plugins.Measure.MeasureRayItem(r);a.circle.addEventListener("mousedown",(function(e){2!=e.button&&(i._enableMove=!0)})),i.context.distance=s.distance,o.overrideComponentsColorById([s.startComponentId,s.endComponentId],i._opt.targetsHintColor),setTimeout((function(){i.update(),o.render()}),100),i.measureItem=a,i.getEventManager().fireEvent(e.Bimface.Plugins.Measure.MeasureRayEvent.Measured,s)}},update:function(){var t=this.measureItem,i=this.context,o=this._opt.viewer;i.svg.innerHTML="",i.text.innerHTML="",i.isMove=this._enableMove;var n=o.worldToClient(t.startPoint),s=o.worldToClient(t.endPoint);n&&s&&(i.startPoint=new e.Web.Geometry.Point3d(n.x,n.y,n.z),i.endPoint=new e.Web.Geometry.Point3d(s.x,s.y,s.z),t.draw(i))},exit:function(){this.switchOff()},_getContextData:function(e){var t,i,o={};return t=i=e[0],e.length>1&&(i=e[1]),o.startComponentId=t.userId,o.startPoint=t.worldPosition,o.endComponentId=i.userId,o.endPoint=i.worldPosition,o.distanceX=Math.round(Math.abs(o.endPoint.x-o.startPoint.x)),o.distanceY=Math.round(Math.abs(o.endPoint.y-o.startPoint.y)),o.distanceZ=Math.round(Math.abs(o.endPoint.z-o.startPoint.z)),o.distance=Math.round(Math.sqrt(Math.pow(o.distanceX,2)+Math.pow(o.distanceY,2)+Math.pow(o.distanceZ,2))),o}},t.MeasureRay=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Marker3D").Marker3DContainerConfig=function(){return{viewer:null,type:null,layerId:null}},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Marker3D").Marker3DConfig=function(){return{id:null,objectId:null,size:30,tooltip:"",tooltipStyle:{color:"#333",fontSize:"14px",borderWidth:"1px",borderColor:"#666",borderStyle:"solid",backgroundColor:"#fff"},src:null,canvas:null,worldPosition:new e.Web.Geometry.Point3d(0,0,0),modelId:void 0,layerId:void 0,hoverAnimation:!0}},function(){var t="Bimface.Plugins.Marker3D.Marker3D",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Marker3D"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),s=function(t){var i=this;this.id=t.id||e.Web.Lang.Utility.UUID.createUUID(),this.layerId=t.layerId,this.modelId=t.modelId,this.objectId=t.objectId,this.size=t.size,this.iconUrl=t.canvas?t.canvas.toDataURL():t.src,this.position=t.worldPosition,this.hoverAnimation=t.hoverAnimation,this.originalPosition=new THREE.Vector3(this.position.x,this.position.y,this.position.z),this.explosionOffset=new THREE.Vector3,this.tooltip=t.tooltip,this.tooltipElement=n.create("div","bf-tooltip"),this.tooltipElement.innerHTML=t.tooltip,this.tooltipElement.setCss(t.tooltipStyle),this.isHideByClustering=!1,this._tooltipCallback=function(e,t,o){var n=i.tooltipElement;o.appendChild(n);var s=n.offsetWidth,r=n.offsetHeight;n.style.left=t.x-s/2+"px",n.style.top=t.y-r-i.size+"px",i._hoverCallback&&i._hoverCallback(e)},this._config=t,this.scratchVector=new THREE.Vector3,this.scratchVector_2=new THREE.Vector3};s.prototype={getId:function(){return this.id},getWorldPosition:function(){return this.position},setWorldPosition:function(e){i.send(t,"setWorldPosition"),this.originalPosition=this.position=e,this.update()},getSize:function(){return this.size},setSize:function(e){i.send(t,"setSize"),this.size=e,this.update()},getSrc:function(){return this.iconUrl},setSrc:function(e){i.send(t,"setSrc"),this.iconUrl=e,this.update()},getTooltip:function(){return this.tooltip},setTooltip:function(e){i.send(t,"setTooltip"),this.tooltip=e,this.tooltipElement.innerHTML=e},onClick:function(e){i.send(t,"onClick"),e&&(this._clickCallback=e)},onHover:function(e){i.send(t,"onHover"),e&&(this._hoverCallback=e)},onDoubleClick:function(e){i.send(t,"onDoubleClick"),e&&(this._doubleClickCallback=e)},onRightClick:function(e){i.send(t,"onRightClick"),e&&(this._rightClickCallback=e)},update:function(){i.send(t,"update"),this.container&&this.container.update()},isHideByClustering:function(){return this.isHideByClustering},hideByClustering:function(e){this.isHideByClustering=!!e},attachExplosionOffset:function(e,t){if(!this.getWorldPosition())return;let i=this._config.objectId;if(i){let o={};o[i]=!0;let n=e.modelManager.getBoundingBoxByIds(o),s=this.assoiatedComponentBbox,r=n;if(s){let e=r.getCenter(this.scratchVector).clone();e.sub(s.getCenter(this.scratchVector_2).clone()),this.explosionOffset=e,this.explosionExtent>0&&0===t&&(this.originalPosition.x+=this.explosionDirection*e.x,this.originalPosition.y+=this.explosionDirection*e.y,this.originalPosition.z+=this.explosionDirection*e.z,this.explosionExtent=0,this.explosionOffset=new THREE.Vector3,this.assoiatedComponentBbox=r.clone())}}else{let i=e.getScene().getOriginalBoundingBoxWorld().getCenter(this.scratchVector),o=(new THREE.Box3).expandByPoint(this.getWorldPosition()),n=CLOUD.Utils.computeExplodeTranslation(i,o,t);this.explosionOffset=n}},updatePosition:function(){this.position.x=this.originalPosition.x+this.explosionOffset.x,this.position.y=this.originalPosition.y+this.explosionOffset.y,this.position.z=this.originalPosition.z+this.explosionOffset.z},getOriginalPosition:function(){return this.originalPosition},setInitialExplosionInfo:function(e){if("Viewer3D"!==e.getViewerType()&&"ViewerGIS"!==e.getViewerType())return;let t=null;"Viewer3D"===e.getViewerType()?t=this.modelId?e.getModel(this.modelId):e.getDefaultModel():"ViewerGIS"===e.getViewerType()&&(t=e.getLayerManager().getLayer(this.layerId)),this.explosionExtent=null===t?t.getExplosionExtent():0;let i=this._config.objectId;if(i){let t=e.getViewer(),o={};o[i]=!0;let n=t.modelManager.getBoundingBoxByIds(o);n.isEmpty()?(this._config.objectId=null,console.log("Cannot find component with Id "+i)):this.assoiatedComponentBbox=n.clone()}},getCurrentPosition:function(){return this.position},getHoverAnimation:function(){return this.hoverAnimation},setHoverAnimation:function(e){null!=e&&(this.hoverAnimation=e,this.update())},setContainerVisible:function(e){this.hideByClustering(!e),this.update()},getOpacity:function(){return 1},setOpacity:function(e){},resetClientPosition:function(e){this.setWorldPosition(e)}},o.Marker3D=s}(),function(){var t="Bimface.Plugins.Marker3D.Marker3DContainer",i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Marker3D");e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");o.Marker3DContainer=class{constructor(t){e.Web.Lang.Utility.ClientHelper.getIsDesktop();if(!t.viewer)return void console.log("viewer must not be empty.");const i="Viewer3D"===t.viewer.viewerType,o=e.Bimface.Viewer.ViewerGIS&&t.viewer instanceof e.Bimface.Viewer.ViewerGIS;var n=t.viewer.getDomElement(),s=t.viewer.getViewer();if(!i&&!o)return void console.log("Viewer2D is not supported.");if("ViewerGIS"===t.viewer.getViewerType()&&"ShpPoint"===t.type)this._helper=new f.ShpPointMarker(s,t.layerId);else{if(t.viewer.marker3DContainer)return t.viewer.marker3DContainer;t.viewer.marker3DContainer=this,this._helper=new f.Marker3D(s,!0)}var r=this;this._viewer=t.viewer,this._items=[],this._areaData={},this.loadAreas=void 0,this.getLevelCallback=[],this.boxMap={},this.hoverListenerAdded=!1,this._isViewerGIS=o,this._pick=e=>{if(!e.doubleClick&&2!==e.event.button){var t=e.intersectInfo;if(t&&t.objectType===f.PICKABLETYPE.Marker3d){var i=this.getItemById(t.selectedObjectId);i._clickCallback&&i._clickCallback(i)}}},this._doublePick=e=>{if(e.doubleClick){var t=e.intersectInfo;if(t&&t.objectType===f.PICKABLETYPE.Marker3d){var i=this.getItemById(t.selectedObjectId);i._doubleClickCallback&&i._doubleClickCallback(i)}}},this._rightPick=e=>{if(2==e.event.button){var t=e.intersectInfo;if(t&&t.objectType===f.PICKABLETYPE.Marker3d){var i=this.getItemById(t.selectedObjectId);i._rightClickCallback&&i._rightClickCallback(i)}}},this._hover=e=>{var t=this;t.tooltipElement&&n.contains(t.tooltipElement)&&(n.removeChild(t.tooltipElement),t.tooltipElement=null);var i=e.intersectInfo;if(i&&i.objectType===f.PICKABLETYPE.Marker3d){var o=t.getItemById(i.selectedObjectId);t.tooltipElement=o.tooltipElement,o._tooltipCallback&&""!=t.tooltipElement.innerHTML&&o._tooltipCallback(o,e.canvasPos,n)}},s.registerEventListener(f.EVENTS.ON_CLICK_MARKER3D_PICK,r._pick),s.registerEventListener(f.EVENTS.ON_CLICK_MARKER3D_PICK,r._rightPick),s.registerEventListener(f.EVENTS.ON_CLICK_MARKER3D_PICK,r._doublePick),i?(this.calculateViewer3dExplosionOffset=e=>{const i=e.modelId,o=e.floorInfos.length,n=t.viewer.getDefaultModel().modelId.toString(),s=t.viewer.getModel(i).getFloorExplosionExtent(),a=t.viewer.getModel(i).getFloorExplosionDirection();if(0===s)for(const e of r.getAllItems())e.setInitialExplosionInfo(t.viewer);let l=[];r.floorInfos=e;var h=function(){let e=r._items;for(let t=0,o=e.length;t<o;t++){let o=e[t].getWorldPosition();if(o)if(!0!==e[t]._isBindRoom)if(e[t].levelName){let i=l.getObjectByAttribute("floorName",e[t].levelName);i&&(e[t].explosionOffset={x:a.x*i.explodedOffset,y:a.y*i.explodedOffset,z:a.z*i.explodedOffset})}else if(i!==n)e[t].explosionOffset={x:e[t].explosionOffset.x,y:e[t].explosionOffset.y,z:e[t].explosionOffset.z};else{let i=!0;for(let n=0;n<l.length;n++){const s=l[n];if(s.box.min<o.z&&s.box.max>o.z){e[t].explosionOffset={x:a.x*s.explodedOffset,y:a.y*s.explodedOffset,z:a.z*s.explodedOffset},e[t].levelName=s.floorName,i=!1;break}}i&&(e[t].explosionOffset={x:0,y:0,z:0})}else{const i=r._viewer.getViewer().modelManager.modelCollection.getById("ExtrudeBodyManager").getNode(e[t]._config.objectId),o=i.explodedHeight,n=i.explodedDirection;e[t].explosionOffset={x:n.x*o,y:n.y*o,z:n.z*o}}}};if(o)for(var c=0;c<o;c++){let t=e.floorInfos[c],i=e.floorInfos[c+1],n=e.floorInfos[c-1];l.push({box:{min:n?t.boundingBox.min.z:-1/0,max:i?i.boundingBox.min.z:1/0},floorName:t.name,explodedOffset:t.explodedHeight-t.elevation}),l.length==o&&(h(),r.boxs=l)}r.update()},t.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.FloorExplosion,(e=>{this.calculateViewer3dExplosionOffset(e)}))):o&&(this.calculateViewerGISExplosionOffset=e=>{const i=t.viewer,o=i.getViewer(),n=e.modelId,s=e.floorInfos.length,a=o.getFloorExplosionExtent(n),l=o.getFloorExplosionDirection(n);if(0===a)for(const e of r.getAllItems())e.setInitialExplosionInfo(i);const h=e.floorInfos;let c=[];for(var d=0;d<s;d++){let e=h[d],t=h[d+1],i=h[d-1];if(c.push({box:{min:i?e.boundingBox.min.z:-1/0,max:t?t.boundingBox.min.z:1/0},floorName:e.name,explodedOffset:e.explodedHeight-e.elevation}),c.length==s){this.boxMap[n]=c;break}}const g=i.getLayerManager();let u=this._items;for(let e=0,t=u.length;e<t;e++){if(!u[e].getWorldPosition())continue;const t=g.getLayer(u[e].layerId);if(!t||!t.modelId)continue;if(t.modelId.toString()!==n||!u[e].levelName)continue;let i=c.getObjectByAttribute("floorName",u[e].levelName);i&&(u[e].explosionOffset={x:l.x*i.explodedOffset,y:l.y*i.explodedOffset,z:l.z*i.explodedOffset})}this.update()},t.viewer.addEventListener(e.Bimface.Viewer.ViewerGISEvent.FloorExplosion,(e=>{this.calculateViewerGISExplosionOffset(e)})));let a=t.viewer.getViewer();a.registerEventListener(f.EVENTS.ON_EXPLOSION,(e=>{let t=this.getAllItems();for(const i of t)Pi.attachExplosionOffset(a,e.extent,i);this.update()}))}addItem(e){i.send(t,"addItem"),e.container=this;let o=Pi.ifExploded(this._viewer,e,this._isViewerGIS);o&&(o.setInitialExplosionInfo(this._viewer),this._items.push(o),this.update()),this.addTipsHoverListener()}addTipsHoverListener(){if(!this.hoverListenerAdded){const i=e.Web.Lang.Utility.ClientHelper.getIsDesktop();var t=this._viewer.getViewer();i&&t.registerEventListener(f.EVENTS.ON_HOVER_PICK,this._hover),this.hoverListenerAdded=i}}getLevelNameById(t,i){if(!this._spatialRelation){let t=new e.Bimface.Plugins.SpatialRelation.RoomConfig;t.viewer=this._viewer;let i=new e.Bimface.Plugins.SpatialRelation.Room(t);this._spatialRelation=i}let o=this._spatialRelation.getBoundaryByRoomId(t);if(o){if(this._levelsInfo)return levelName=function(e,t){let i=e[0][2];for(let e=0;e<t.length;e++)if(Math.abs(i-t[e].elevation)<5)return t[e].name;return!1}(o,this._levelsInfo),levelName;this._viewer.getDefaultModel().getMapInfo((e=>{this._levelsInfo=e.axisGrid.Levels,this.addItem(i)}))}}addItems(e){i.send(t,"addItems");for(const t of e){let e=Pi.ifExploded(this._viewer,t,this._isViewerGIS);e&&this._items.push(e),t.setInitialExplosionInfo(this._viewer)}this.update(),this.addTipsHoverListener()}removeItemById(e){i.send(t,"removeItemById"),this._items.removeObjectByAttribute("id",e),this.update()}getItemById(e){return this._items.getObjectByAttribute("id",e)}getAllItems(){return[...this._items]}clear(){i.send(t,"clear");var o=this._viewer.getViewer();let n=e.Web.Lang.Utility.ClientHelper.getIsDesktop();o.unregisterEventListener(f.EVENTS.ON_CLICK_PICK,this._pick),n&&o.unregisterEventListener(f.EVENTS.ON_HOVER_PICK,this._hover),this.hoverListenerAdded=!1,this._items=[],this.update()}update(){this._helper.clear();let e=this._items.slice();for(let t=0,i=e.length;t<i;t++){e[t].getWorldPosition()&&e[t].updatePosition()}let t=[];for(let i=0,o=e.length;i<o;i++)!1===e[i].isHideByClustering&&t.push(e[i]);this._helper.add(t),this._helper.update(),this._viewer.render()}hideItemsById(e){i.send(t,"hideItemsById"),this._helper.hideByIds(e),this._viewer.render()}hideAllItems(){i.send(t,"hideAllItems"),this._helper.hide(),this._viewer.render()}showItemsById(e){i.send(t,"showItemsById"),this._helper.showByIds(e),this._viewer.render()}showAllItems(){i.send(t,"showAllItems"),this._helper.show(),this._viewer.render()}}}(),function(){let t=Object.freeze({Forward:"Forward",Reverse:"Reverse"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionBoxDirection=t}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionBoxConfig=function(){return{viewer:null,direction:e.Bimface.Plugins.Section.SectionBoxDirection.Forward,isHatchEnabled:!0,hatchByMaterial:!1}},function(){let t=Object.freeze({SectionBoxUpdate:"SectionBoxUpdate",SectionBoxChanged:"SectionBoxChanged"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionBoxEvent=t}(),function(){var t,i,o="Bimface.Plugins.Section.SectionBox",n=e.Bimface.Data.StatisticsDataManager.getInstance(),s=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section"),r=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),function(o){var n=this,r=o.viewer;if(!r)return void console.log("domElement must not be empty.");const a="Viewer3D"===r.viewerType,l=r instanceof e.Bimface.Viewer.ViewerGIS;if(a||l){if(r._sectionPlane&&(r._sectionPlane.hidePlane(),r._sectionPlane.exit()),n.enableHatch(o.isHatchEnabled),o.hatchByMaterial&&r.getViewer().getClipCapsManager().enableHatchByMaterial(o.hatchByMaterial,!0),t&&r==i)return t.id=o.id,t.reset(),t;if(t=this,i=r,r._sectionBox)return r._sectionBox.showBox(),r._sectionBox;r._sectionBox=this,this.sectionBoxEvent=s.SectionBoxEvent,this.eventManager=r.getEventManager(),n.id=o.id||"SectionBox",n._opt=o,n._viewer=r,n.boxState=!0,n._boxDirection=o.direction,n.init()}else console.log("Viewer2D is not supported.")});r.prototype={hookEvens:function(){var e=this._viewer.getViewer(),t=this._viewer.getDomElement();e.registerEventListener(f.EVENTS.ON_CLIP_HOVER,(function(e){e.onClipBox?t.style.cursor=`url(${a}),auto`:t.removeAttribute("style")}));var i=this;e.registerEventListener(f.EVENTS.ON_CLIP_MOUSE_MOVE,(function(e){i.eventManager.fireEvent(i.sectionBoxEvent.SectionBoxChanged)}))},init:function(){n.send(o,"init");var e=this._opt.viewer.getViewer(),t=this;e.editorManager.enableTool(e,f.EditToolMode.CLIP_BY_BOX),this._sectionBox=new f.ClipPlaneService(e),f.ClipPlaneManager.getInstance(e.getScene()).observer=function(){t.eventManager.fireEvent(t.sectionBoxEvent.SectionBoxUpdate,t)},this._sectionBox.reset(),this._sectionBox.toggle(!0,!0),this._sectionBox.setVisible(!0),"Reverse"===t._boxDirection?this._sectionBox.changeDirection(!0):this._sectionBox.changeDirection(!1),this.hookEvens()},addEventListener:function(e,t){this.eventManager.addEvent(e,t)},removeEventListener:function(e,t){this.eventManager.removeEvent(e,t)},setBox:function(e){n.send(o,"setBox"),this._sectionBox.getEditor().calculateOffsetByBox(e.min,e.max),f.GlobalData.ClippingCapsType==f.EnumClippingCapsTypes.ClipBox&&this._sectionBox&&this._sectionBox.getEditor().clipPlanes.reCalculateClippingIds()},getBox:function(){},hideBox:function(){n.send(o,"hideBox"),this._sectionBox&&this._sectionBox.setVisible(!1),this._viewer.render()},showBox:function(){n.send(o,"showBox"),this._sectionBox&&this._sectionBox.setVisible(!0),this._viewer.render()},setProgress:function(e,t){var i={x:["Left","Right"],y:["Back","Front"],z:["Bottom","Top"]};t&&(this._sectionBox.setProcess(i[e][0],t[0]/100),2==t.length&&this._sectionBox.setProcess(i[e][1],1-t[1]/100))},getProgress:function(e){var t=[],i={x:["Left","Right"],y:["Back","Front"],z:["Bottom","Top"]};return t.push(100*this._sectionBox.getProcess(i[e][0])),t.push(100-100*this._sectionBox.getProcess(i[e][1])),t},reset:function(){n.send(o,"reset"),this._sectionBox&&this._sectionBox.toggle(!0,!0),this._sectionBox&&this._sectionBox.reset("Rotate"),this.showBox()},enable:function(e){n.send(o,"enable");var t=this._opt.viewer.getViewer().getScene();f.ClipPlaneManager.getInstance(t).enable(e,e)},fitToModel:function(){n.send(o,"fitToModel"),this.reset();var e=this._sectionBox.recalculate().clone();e.isEmpty()&&e.expandByPoint(new THREE.Vector3),this.setBox(e),this._sectionBox.getEditor()._isVisible()&&this.showBox(),this.eventManager.fireEvent(this.sectionBoxEvent.SectionBoxChanged)},isIncluded:function(e){var t=this._opt.viewer,i=t.getViewer().getScene(),o=f.ClipPlaneManager.getInstance(i).getClipBoundingBox(),n=t.worldToScene(e);return o.containsPoint(n)},exit:function(){n.send(o,"exit");var e=this._opt.viewer.getViewer(),i=this._viewer.getDomElement();this.clearFilter(),this.reset(),e.editorManager.disableTool(f.EditToolMode.CLIP_BY_BOX),e.getClipCapsManager().resetClippingCapsStatus(),i.removeAttribute("style"),this._sectionBox=null,this._opt.viewer._sectionBox=null,t=null,this.eventManager.fireEvent(this.sectionBoxEvent.SectionBoxUpdate,null),e.unregisterEventListener(f.EVENTS.ON_CLIP_HOVER,(function(e){e.onClipBox?i.style.cursor=`url(${a}),auto`:i.removeAttribute("style")}))},lockBox:function(e){this._opt.viewer.getViewer().editorManager.getToolByName("clipByBox").lockBoxFaces(e)},unlockBox:function(){this._opt.viewer.getViewer().editorManager.getToolByName("clipByBox").unlockBox()},getState:function(){var e=this._opt.viewer,t=this._sectionBox.saveState(),i=t.boundingBox;return i.min=e.sceneToWorld(i.min),i.max=e.sceneToWorld(i.max),t},setState:function(e){this._sectionBox.loadState(e)},restore:function(){var e=this._sectionBox.getEditor()._isVisible();this._sectionBox.toggle(!0,e),this._sectionBox.reset("Rotate")},getSectionBox:function(){n.send(o,"getSectionBox");var e=this._opt.viewer,t=this._sectionBox.saveState().boundingBox,i=e.getViewer().getScene().getMatrixGlobal();return i.invert(),t.applyMatrix4(i),t},setSectionBox:function(e){n.send(o,"setSectionBox");var t=this._opt.viewer,i=t.getViewer().getScene(),s=f.ClipPlaneManager.getInstance(i),r=(i=t.getViewer().getScene()).getMatrixGlobal(),a=new THREE.Box3(new THREE.Vector3(e.min.x,e.min.y,e.min.z),new THREE.Vector3(e.max.x,e.max.y,e.max.z));a.isEmpty()?console.warn("The x,y,z of box.min must be smaller than box.max"):(a.applyMatrix4(r),s.setSectionBox(a.min,a.max))},update:function(){this._sectionBox.update()},setObjectsById(e){this._opt.viewer.getModels().forEach((t=>{t.localClippingComponentsById(e)})),this._sectionBox.update(),this._opt.viewer.render()},setObjectsByObjectData(e){this._opt.viewer.getModels().forEach((t=>{t.localClippingComponentsByObjectData(e)})),this._sectionBox.update(),this._opt.viewer.render()},restoreObjects(){this._opt.viewer.getModels().forEach((e=>{e.clearLocalClipping()})),this._sectionBox.update(),this._opt.viewer.render()},setFilter(e){const t=this._opt.viewer;for(const i of e){if(i.layerId){const e=t.getLayerManager().getLayer(i.layerId);if(!e)continue;i.modelId=e.getModelId()}let e;i.modelId&&(e=t.getModel(i.modelId)),void 0!==e&&(i.objectIds?e.localClippingComponentsById(i.objectIds):i.objectData?e.localClippingComponentsByObjectData(i.objectData):e.localClippingComponentsByObjectData([]))}this._sectionBox.update(),this._opt.viewer.render()},clearFilter(){this.restoreObjects()},changeClipDirection(e){this._opt.viewer.getViewer().editorManager.getToolByName("clipByBox").changeDirection(e)},rotateByAxis(e,t){if(n.send(o,"rotateByAxis"),"XAxis"!==e&&"YAxis"!==e&&"ZAxis"!==e)return void console.warn("Rotate axis must be XAxis,YAxis or ZAxis.");if(isNaN(t))return void console.warn("the degree input is not a number");let i,s=THREE.Math.degToRad(t);switch(e){case"XAxis":i="x";break;case"YAxis":i="z",s=-s;break;case"ZAxis":i="y"}const r=this._opt.viewer;r.getViewer().editorManager.getToolByName("clipByBox").rotateSectionBox(i,s),r.render()},setBoxByVectors(e,t,i,s){n.send(o,"setBoxByVectors"),this.reset();let r=e=>void 0!==e.x&&void 0!==e.y&&void 0!==e.z;if(!(r(e)&&r(t)&&r(i)&&r(s)))return void console.warn("the object input is invalid.");const a=new THREE.Vector3(t.x,t.y,0),l=new THREE.Vector3(i.x,i.y,0),h=new THREE.Vector3(0,0,s.z),c=Math.sqrt(Math.pow(a.x,2)+Math.pow(a.y,2)),d=new THREE.Vector3(-a.y,a.x,0),g=Math.abs(l.dot(d)/d.length()),u=Math.abs(h.z);let p=new THREE.Box3;p.min=new THREE.Vector3(e.x-c,e.y-g,e.z-u),p.max=new THREE.Vector3(e.x+c,e.y+g,e.z+u),this.setBox(p),a.y<0&&(a.x=-a.x,a.y=-a.y);const A=THREE.Math.radToDeg(Math.acos(a.clone().normalize().dot(new THREE.Vector3(1,0,0))));this.rotateByAxis("ZAxis",A)},enableHatch(e){f.GlobalData.ClippingCapsType!=e&&f.GlobalData.ClippingCapsType!=f.EnumClippingCapsTypes.ClipPlane&&(f.GlobalData.ClippingCapsType=e?f.EnumClippingCapsTypes.ClipBox:f.EnumClippingCapsTypes.None,this._sectionBox&&this._sectionBox.visibleCapsWireframe(e),e&&this._sectionBox&&this._sectionBox.getEditor().clipPlanes.reCalculateClippingIds())},isHatchEnabled:()=>f.GlobalData.ClippingCapsType==f.EnumClippingCapsTypes.ClipBox},s.SectionBox=r}(),function(){let t=Object.freeze({Forward:"Forward",Reverse:"Reverse"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionPlaneDirection=t}(),function(){let t=Object.freeze({X:"X",Y:"Y",Z:"Z"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionPlanePlane=t}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionPlaneConfig=function(){return{viewer:null,progress:50,plane:e.Bimface.Plugins.Section.SectionPlanePlane.X,direction:e.Bimface.Plugins.Section.SectionPlaneDirection.Forward,hatchByMaterial:!1}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest");t.CoordinateDrawer=class{constructor(e,t){this.coordinateSystem=e,this.viewer=t,this.container=this.viewer.domElement,this.mapDrawables={},this.initialize()}initialize(){this.xmlns="http://www.w3.org/2000/svg";var e=i.create("div","bf-coordinate-drawer");e.style.left="0px",e.style.top="0px",e.style.width=this.container.offsetWidth+"px",e.style.height=this.container.offsetHeight+"px",e.style.position="absolute",e.style.zIndex=5,this.group=document.createElementNS(this.xmlns,"svg"),this.group.setAttribute("width",this.container.offsetWidth+""),this.group.setAttribute("height",this.container.offsetHeight+""),e.appendChild(this.group),this.container.appendChild(e)}makeCircle(e,t){var i=this.mapDrawables;null==i[e]&&(i[e]=document.createElementNS(this.xmlns,"circle"),this.group.appendChild(i[e]));var o=i[e];o.style.fill=t.color||"#FF0000",o.setAttribute("r",t.radius+""),o.setAttribute("transform","translate("+t.center.x+","+t.center.y+")")}show(e,t){var i=this.getDrawable(e);i&&(i.style.display=t?"block":"none")}fill(e,t){this.getDrawable(e).style.fill=t?"block":"none"}makeLine(e,t){var i=this.mapDrawables;null==i[e]&&(i[e]=document.createElementNS(this.xmlns,"line"),this.group.appendChild(i[e]));var o=i[e];o.setAttribute("stroke",t.color||"#000000"),o.setAttribute("stroke-width",t.width||3),o.setAttribute("x1",t.start.x+""),o.setAttribute("y1",t.start.y+""),o.setAttribute("x2",t.end.x+""),o.setAttribute("y2",t.end.y+"")}makeDashLine(e,t){this.makeLine(e,t),this.mapDrawables[e].setAttribute("stroke-dasharray",t.dashArray)}makePolyline(e,t){var i=null,o=this.mapDrawables;null==o[e]&&(o[e]=document.createElementNS(this.xmlns,"polyline"),this.group.appendChild(o[e])),(i=o[e]).setAttribute("stroke",t.color||"#A9A9A9"),i.setAttribute("stroke-width",t.width||3),i.style.fill="none",i.setAttribute("points",t.points)}makeDefs(e){var t=this.mapDrawables;null==t[e]&&(t[e]=document.createElementNS(this.xmlns,"defs"),null==t.marker&&(t.marker=this.makeMarker(),t[e].appendChild(t.marker)),this.group.appendChild(t[e]))}makeMarker(){var e=document.createElementNS(this.xmlns,"marker");e.setAttribute("id","arrow"),e.setAttribute("viewBox","0 0 10 10"),e.setAttribute("refX","5"),e.setAttribute("refY","5"),e.setAttribute("markerWidth","6"),e.setAttribute("markerHeight","6"),e.setAttribute("orient","auto-start-reverse");var t=document.createElementNS(this.xmlns,"path");return t.setAttribute("d","M 0 0 L 10 5 L 0 10 z"),t.style.fill="#11DAB7",this.mapDrawables.arrow=t,e.appendChild(t),e}getDrawable(e){return this.mapDrawables[e]}attach(){this.getDrawable("axisZ").setAttribute("marker-end","url(#arrow)")}setColor(e,t){this.getDrawable(e).setAttribute("stroke",t)}fill(e,t){this.getDrawable(e).style.fill=t}hideAll(e){let t=1==e?"none":"block";this.group.parentNode.style.display=t}destroy(){for(var e=this.group.children,t=0;t<e.length;t++)this.group.removeChild(e[t]);var i=this.group.parentNode;i&&i.removeChild(this.group)}}}(),function(){let t=Object.freeze({SectionPlaneUpdate:"SectionPlaneUpdate",SectionPlaneChanged:"SectionPlaneChanged"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionPlaneEvent=t}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section");e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest");t.CoordinateAction=class{constructor(e,t){this.coordinateSystem=e,this.viewer=e.viewer.getViewer(),this.drawingImpl=t,this.viewportOffset=this.viewer.domElement.getBoundingClientRect(),this.cameraControl=this.viewer.cameraControl,this.fillClipPlane=f.FillClipPlaneManager.getInstance(this.viewer.getScene()),this.initialize(),this.eventManager=e.viewer.getEventManager()}initialize(){this.arrowMouseDown=!1,this.circleXMouseDown=!1,this.circleYMouseDown=!1,this.firstClickDown=!0,this.firstRotate=!0,this.lineOut=!0,this.arrowOut=!0,this.translateStartPt=new THREE.Vector2,this.translateEndPt=new THREE.Vector2,this.rotateAngleA=0,this.rotateAngleB=0,this.config=this.coordinateSystem.config,this.sectionPlaneEvent=e.Bimface.Plugins.Section.SectionPlaneEvent}registerArrowEvents(){var e=this.drawingImpl.getDrawable("axisZ"),t=this,i=this.config.colors;e.onmouseover=function(){1!=t.circleXMouseDown&&1!=t.circleYMouseDown&&(t.drawingImpl.setColor("axisZ",i.highLight),t.drawingImpl.fill("arrow",i.highLight),t.drawingImpl.setColor("tipArcX",i.default),t.drawingImpl.fill("cubeX",i.default),t.drawingImpl.setColor("tipArcY",i.default),t.drawingImpl.fill("cubeY",i.default),t.lineOut=!1)},e.onmouseout=function(){1!=t.circleXMouseDown&&1!=t.circleYMouseDown&&0==t.arrowMouseDown&&1==t.arrowOut&&(t.drawingImpl.setColor("axisZ",i.arrow),t.drawingImpl.fill("arrow",i.arrow),t.drawingImpl.setColor("tipArcX",i.tipArcX),t.drawingImpl.fill("cubeX",i.cubeX),t.drawingImpl.setColor("tipArcY",i.tipArcY),t.drawingImpl.fill("cubeY",i.cubeY),t.lineOut=!0)},e.onmousedown=function(e){t.arrowMouseDown=!0,t.lineOut=!1;var i=t.config.colors;t.drawingImpl.setColor("axisZ",i.highLight),t.drawingImpl.fill("arrow",i.highLight),t.coordinateSystem.colorUpdate=!1,t.translateStartPt.set(e.clientX,e.clientY)};var o=this.drawingImpl.getDrawable("arrow");o.onmouseover=function(){if(1!=t.circleXMouseDown&&1!=t.circleYMouseDown){t.arrowOut=!1;var e=t.config.colors;t.drawingImpl.fill("arrow",e.highLight),t.drawingImpl.setColor("axisZ",e.highLight),t.drawingImpl.setColor("tipArcX",e.default),t.drawingImpl.fill("cubeX",e.default),t.drawingImpl.setColor("tipArcY",e.default),t.drawingImpl.fill("cubeY",e.default)}},o.onmouseout=function(){if(1!=t.circleXMouseDown&&1!=t.circleYMouseDown&&0==t.arrowMouseDown&&1==t.lineOut){t.arrowOut=!0;var e=t.config.colors;t.drawingImpl.setColor("axisZ",e.arrow),t.drawingImpl.fill("arrow",e.arrow),t.drawingImpl.setColor("tipArcX",e.tipArcX),t.drawingImpl.fill("cubeX",e.cubeX),t.drawingImpl.setColor("tipArcY",e.tipArcY),t.drawingImpl.fill("cubeY",e.cubeY)}},o.onmousedown=function(e){t.arrowMouseDown=!0,t.arrowOut=!1;var i=t.config.colors;t.drawingImpl.setColor("axisZ",i.highLight),t.drawingImpl.fill("arrow",i.highLight),t.translateStartPt.set(e.clientX,e.clientY)},document.onmousemove=function(e){if(1==t.arrowMouseDown){if(t.fillClipPlane.clearCapsWireframe(),f.GlobalData.ClippingCaps=!1,!(e.clientX==t.translateStartPt.x&&e.clientY==t.translateStartPt.y)){var i=t.fillClipPlane.renderClipPlane,o=i.normal.clone();o.w=i.constant;var n=t.cameraControl.movePlane(o,e,t.translateStartPt,!1,t.fillClipPlane.position.clone());null!=n&&t.fillClipPlane.offset(n),t.translateStartPt.set(e.clientX,e.clientY),t.cameraControl.setCameraChanging(!0),t.cameraControl.update(!0)}t.coordinateSystem.update();var s=t.config.colors;t.drawingImpl.setColor("axisZ",s.highLight),t.drawingImpl.fill("arrow",s.highLight),t.drawingImpl.setColor("tipArcX",s.default),t.drawingImpl.fill("cubeX",s.default),t.drawingImpl.setColor("tipArcY",s.default),t.drawingImpl.fill("cubeY",s.default),e.preventDefault(),e.stopPropagation(),t.fireSectionPlaneChangedEvent()}},document.onmouseup=function(){if(0!=t.arrowMouseDown){t.arrowMouseDown=!1,t.coordinateSystem.colorUpdate=!0;var e=t.config.colors;t.drawingImpl.setColor("axisZ",e.arrow),t.drawingImpl.fill("arrow",e.arrow),t.drawingImpl.setColor("tipArcX",e.tipArcX),t.drawingImpl.fill("cubeX",e.cubeX),t.drawingImpl.setColor("tipArcY",e.tipArcY),t.drawingImpl.fill("cubeY",e.cubeY),t.fillClipPlane.calculateClippingIds(),f.GlobalData.ClippingCaps=!0,t.viewer.render()}}}registerCircleXEvents(){var e=this,t=this.config.colors,i=this.drawingImpl.getDrawable("tipArcX");i.onmousedown=function(){e.circleXMouseDown=!0,e.drawingImpl.setColor("axisZ",t.default),e.drawingImpl.fill("arrow",t.default),e.enableCircleXMovement()},i.onmouseout=function(){0==e.circleXMouseDown&&(e.drawingImpl.setColor("axisZ",t.arrow),e.drawingImpl.fill("arrow",t.arrow),e.drawingImpl.setColor("tipArcY",t.tipArcY),e.drawingImpl.fill("cubeY",t.cubeY),e.coordinateSystem.circleToArc("tipArcX"))},document.addEventListener("mouseup",(function(){1==e.circleXMouseDown&&(e.fillClipPlane.calculateClippingIds(),f.GlobalData.ClippingCaps=!0,e.viewer.render()),e.circleXMouseDown=!1,e.circleXMouseDown=!1,e.firstClickDown=!0,e.firstRotate=!1,e.lastRotateX=0,e.lastRotateY=0,e.drawingImpl.show("tipArcY",!0),e.drawingImpl.show("axisY",!0),e.drawingImpl.show("axisZ",!0),e.drawingImpl.show("cubeY",!0),e.coordinateSystem.update(),e.drawingImpl.show("dashLineX",!1),e.drawingImpl.setColor("axisZ",t.arrow),e.drawingImpl.fill("arrow",t.arrow)}))}registerCircleYEvents(){var e=this,t=this.config.colors,i=this.drawingImpl.getDrawable("tipArcY");i.onmousedown=function(){e.circleYMouseDown=!0,e.drawingImpl.setColor("axisZ",t.default),e.drawingImpl.fill("arrow",t.default),e.enableCircleYMovement()},i.onmouseout=function(){0==e.circleYMouseDown&&(e.drawingImpl.setColor("axisZ",t.arrow),e.drawingImpl.fill("arrow",t.arrow),e.coordinateSystem.circleToArc("tipArcY"),e.drawingImpl.setColor("tipArcX",t.tipArcX),e.drawingImpl.fill("cubeX",t.cubeX))},document.addEventListener("mouseup",(function(){1==e.circleYMouseDown&&(e.fillClipPlane.calculateClippingIds(),f.GlobalData.ClippingCaps=!0,e.viewer.render()),e.circleYMouseDown=!1,e.drawingImpl.show("tipArcX",!0),e.drawingImpl.show("cubeX",!0),e.coordinateSystem.update(),e.drawingImpl.show("dashLineY",!1),e.drawingImpl.setColor("axisZ",t.arrow),e.drawingImpl.fill("arrow",t.arrow)}))}enableCircleXMovement(){var e=this,t=this.config.colors;document.addEventListener("mousemove",(function(i){if(1==e.circleXMouseDown){e.drawingImpl.show("dashLineX",!0),e.drawingImpl.setColor("axisZ",t.default),e.drawingImpl.fill("arrow",t.default),e.fillClipPlane.clearCapsWireframe(),f.GlobalData.ClippingCaps=!1;var o=e.fillClipPlane.normalIndex,n=e.viewportOffset,s=new THREE.Vector2(i.clientX-n.left,i.clientY-n.top),r=e.calcRotateAngleIndex(s,e.coordinateSystem.discretePointsX);1==e.firstClickDown&&(e.lastIndex=r);var a=2*(r-e.lastIndex);(o>3||"Reverse"==e.coordinateSystem.planeDirection)&&(a=-a),e.drawingImpl.show("tipArcY",!1),e.coordinateSystem.updateAxisZ();var l=e.fillClipPlane.renderClipPlane.normal.clone(),h=e.coordinateSystem.getCoordinateAxis(),c=e.config.styles;e.coordinateSystem.drawClipPlaneCircle("tipArcZ",h.start.clone(),c.auxCircleRadius,e.coordinateSystem.dirX,l);var d=e.coordinateSystem.drawingToCanvas(h.start.clone()),g=e.coordinateSystem.drawingToCanvas(h.endY.clone());e.coordinateSystem.drawAxisY(d,g,t.highLight),e.coordinateSystem.drawCubeX("cubeX",g,c.cubeRadius),e.drawingImpl.show("cubeY",!1);var u="x";o<2&&(u="y"),e.fillClipPlane.rotateAngleOffset(a,u),e.coordinateSystem.backwardCoordinate(),1==e.firstClickDown?e.firstClickDown=!1:e.lastIndex=r,e.translateStartPt.set(i.clientX,i.clientY),e.viewer.render(),i.preventDefault(),i.stopPropagation(),e.fireSectionPlaneChangedEvent()}}))}enableCircleYMovement(){var e=this,t=this.config.colors;document.addEventListener("mousemove",(function(i){if(1==e.circleYMouseDown){e.drawingImpl.show("dashLineY",!0),e.drawingImpl.setColor("axisZ",t.default),e.drawingImpl.fill("arrow",t.default),e.fillClipPlane.clearCapsWireframe(),f.GlobalData.ClippingCaps=!1;var o=e.fillClipPlane.normalIndex,n=e.viewportOffset,s=new THREE.Vector2(i.clientX-n.left,i.clientY-n.top),r=e.calcRotateAngleIndex(s,e.coordinateSystem.discretePointsY);1==e.firstClickDown&&(e.lastIndex=r);var a=2*(r-e.lastIndex);o>3&&(a=-a,"Reverse"==e.coordinateSystem.planeDirection&&(a=-a)),e.drawingImpl.show("tipArcX",!1),e.coordinateSystem.updateAxisZ();var l=e.fillClipPlane.renderClipPlane.normal.clone(),h=e.coordinateSystem.getCoordinateAxis(),c=e.config.styles;e.coordinateSystem.drawClipPlaneCircle("tipArcZ",h.start.clone(),c.auxCircleRadius,e.coordinateSystem.dirX.clone(),l.clone());var d=e.coordinateSystem.drawingToCanvas(h.start.clone()),g=e.coordinateSystem.drawingToCanvas(h.endX.clone());e.coordinateSystem.drawAxisX(d,g,t.highLight),e.coordinateSystem.drawCubeY("cubeY",g,c.cubeRadius),e.drawingImpl.show("cubeX",!1);var u="z";o>3&&(u="y"),e.fillClipPlane.rotateAngleOffset(a,u),e.coordinateSystem.backwardCoordinate(),1==e.firstClickDown?e.firstClickDown=!1:e.lastIndex=r,e.translateStartPt.set(i.clientX,i.clientY),e.viewer.render(),i.preventDefault(),i.stopPropagation(),e.fireSectionPlaneChangedEvent()}}))}registerTipArcXEvents(){var e=this,t=this.config.colors,i=this.drawingImpl.getDrawable("tipArcX");i.onmouseover=function(){0==e.circleYMouseDown&&(e.coordinateSystem.arcToCircle("tipArcX"),e.drawingImpl.setColor("tipArcY",t.default),e.drawingImpl.fill("cubeY",t.default),e.drawingImpl.setColor("axisZ",t.default),e.drawingImpl.fill("arrow",t.default),e.registerCircleXEvents())},i.onmouseout=function(){0==e.circleXMouseDown&&e.coordinateSystem.circleToArc("tipArcX")}}registerTipArcYEvents(){var e=this,t=this.config.colors,i=this.drawingImpl.getDrawable("tipArcY");i.onmouseover=function(){0==e.circleXMouseDown&&(e.coordinateSystem.arcToCircle("tipArcY"),e.drawingImpl.setColor("tipArcX",t.default),e.drawingImpl.fill("cubeX",t.default),e.drawingImpl.setColor("axisZ",t.default),e.drawingImpl.fill("arrow",t.default),e.registerCircleYEvents())},i.onmouseout=function(){0==e.circleYMouseDown&&e.coordinateSystem.circleToArc("tipArcY")}}calcRotateAngleIndex(e,t){for(var i=this.coordinateSystem.cOrigin,o=this.createLine(e,i),n=-1,s=Number.POSITIVE_INFINITY,r=0;r<90;r++){var a=t[r].clone(),l=this.disPointToLine(a,o);l<s&&(s=l,n=r)}var h=90+n;return t[n].clone().distanceTo(e)<t[h].clone().distanceTo(e)?n:h}createLine(e,t){var i={};if(e.x==t.x)i.A=1,i.B=0,i.C=-e.x;else{var o=(t.y-e.y)/(t.x-e.x),n=t.y-o*t.x;i.A=o,i.B=-1,i.C=n}return i}disPointToLine(e,t){return Math.abs(t.A*e.x+t.B*e.y+t.C)/Math.sqrt(t.A*t.A+t.B*t.B)}fireSectionPlaneChangedEvent(){const e=this.coordinateSystem.viewer._sectionPlane;this.eventManager.fireEvent(this.sectionPlaneEvent.SectionPlaneChanged,e.getSectionPlane())}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").CoordinateSystemConfig=function(){return{colors:{tipArcX:"#0000FF",cubeX:"#0000FF",tipArcY:"#FF0000",cubeY:"#FF0000",highLight:"#FFFF00",tipLine:"#11DAB7",arrow:"#11DAB7",default:"#A9A9A9"},styles:{dashArray:"10 8",originRadius:5,auxCircleRadius:100,tipLineLength:500,cubeRadius:5,axisXWidth:2,axisYWidth:2,axisZWidth:3,axisXLength:100,axisYLength:100,axisZLength:165,segments:180,tipArcLeftCounts:15,tipArcRightCounts:60}}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section");e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest");t.CoordinateSystem=class{constructor(t){this.viewer=t;let i=this.viewer.getViewer();this.cameraControl=i.cameraControl,this.fillClipPlane=f.FillClipPlaneManager.getInstance(i.getScene()),this.container=i.domElement,this.config=new e.Bimface.Plugins.Section.CoordinateSystemConfig,this.drawingImpl=new e.Bimface.Plugins.Section.CoordinateDrawer(this,i),this.coordinateAction=new e.Bimface.Plugins.Section.CoordinateAction(this,this.drawingImpl),this.updateBinded=this.update.bind(this),this.initialize()}initialize(){this.enable=!0,this.boundingBox=new THREE.Box2,this.bRegisterArrowEvent=!1,this.bRegisterAuxCircleEvent=!1,this.mapDrawableName={ORIGIN:"origin",AXISX:"axisX",AXISY:"axisY",CUBEX:"cubeX",CUBEY:"cubeY",AXISZ:"axisZ",ARROW:"arrow",DASHLINE:"dashLine",TIPARC_X:"tipArcX",TIPARC_Y:"tipArcY",TIPARC_Z:"tipArcZ",DASHLINE_X:"dashLineX",DASHLINE_Y:"dashLineY"}}setDirection(e){this.planeDirection=e}saveTransform(e){this.savedCamera=e.clone()}drawingToCanvas(e,t){var i=this.getCoordinateAxis().start.clone(),o=this.cameraControl.camera,n=new THREE.Vector3,s=this.viewer.getViewer();if(null==this.cameraToCenter){var r=s.getCamera(),a=s.getScene().getOriginalBoundingBoxWorld().clone();a.applyMatrix4(s.getScene().geometryGroup.matrix),o.setStandardView(f.EnumStandardView.ISO,a),o.zoomToBBox(a),i=this.getCoordinateAxis().start.clone(),this.cameraToCenter=i.clone().sub(o.position.clone()).length(),this.defaultDistance=1500;var l=s.getScene().getMatrixGlobal(),h=f.CameraUtil.parseCameraInfo(r),c=f.Camera.worldToDrawing(h,l);(d=new THREE.Vector3).subVectors(c.target,c.position),o.LookAt(c.target,d,c.up),this.cameraControl.update(!0,!0)}else{var d=i.clone().sub(o.position.clone()).normalize(),g=o.position.clone().sub(i.clone()).length();n=d.multiplyScalar(this.defaultDistance-g)}var u=this.container.offsetWidth,p=this.container.offsetHeight;!1!==t&&o.isPerspective&&e.add(n);var A=f.CameraUtil.drawingToCanvas(o,e,u,p);return new THREE.Vector2(A.x,A.y)}getCoordinateAxis(){var e=this.fillClipPlane.renderClipPlane.normal.clone(),t=this.fillClipPlane.getCoordinate(),i=t.axisY.clone(),o=e.clone().cross(i.clone());this.fillClipPlane.normalIndex>3&&(i=(o=t.axisX.clone()).clone().cross(e.clone()));var n=this.config.styles,s=this.fillClipPlane.position.clone(),r=s.clone().add(o.clone().multiplyScalar(n.axisXLength)),a=s.clone().add(i.clone().multiplyScalar(n.axisYLength)),l=s.clone().add(e.clone().multiplyScalar(n.axisZLength));return this.dirX=o,this.dirY=i,{start:s,endX:r,endY:a,endZ:l}}drawOrigin(e,t){var i=this.mapDrawableName,o={center:e,radius:t,color:this.config.colors.default};this.drawingImpl.makeCircle(i.ORIGIN,o)}drawAxisX(e,t,i){var o=this.mapDrawableName,n={start:e,end:t,width:this.config.styles.axisXWidth,color:i||this.config.colors.default};this.drawingImpl.makeLine(o.AXISX,n)}drawAxisY(e,t,i){var o=this.mapDrawableName,n=this.config,s={start:e,end:t,width:n.styles.axisYWidth,color:i||n.colors.default};this.drawingImpl.makeLine(o.AXISY,s)}drawAxisZ(e,t){var i=this.mapDrawableName,o=this.config,n={start:e,end:t,width:o.styles.axisZWidth,color:o.colors.arrow};this.drawingImpl.makeLine(i.AXISZ,n),this.drawingImpl.attach(),0==this.bRegisterArrowEvent&&(this.coordinateAction.registerArrowEvents(),this.bRegisterArrowEvent)}updateAxisZ(){var e=this.getCoordinateAxis(),t=this.drawingToCanvas(e.start.clone()),i=this.drawingToCanvas(e.endZ.clone()),o=this.mapDrawableName,n={start:t,end:i,color:this.config.colors.default};this.drawingImpl.makeLine(o.AXISZ,n)}drawArrow(e,t){var i=this.mapDrawableName,o={start:e,end:t};this.drawingImpl.makeLine(i.AXISZ,o),this.drawingImpl.attach(),this.drawingImpl.setColor(i.AXISZ,this.config.colors.default),0==this.bRegisterArrowEvent&&(this.coordinateAction.registerArrowEvents(),this.bRegisterArrowEvent)}drawClipPlaneCircle(e,t,i,o,n){for(var s={center:t.clone(),radius:i,normal:o.clone(),rotateAxis:n.clone()},r=this.config.styles.segments,a=this.discreteCircle(s,r),l="",h=0;h<r;h++)l+=a[h].x+","+a[h].y,l+=" ";l+=a[0].x+","+a[0].y;var c={points:l+=" ",color:this.config.colors.default,width:2};this.drawingImpl.makePolyline(e,c)}drawTipArc(e,t,i,o,n){var s={center:t.clone(),radius:i,normal:o.clone(),rotateAxis:n.clone()},r=this.config.styles,a=r.tipArcRightCounts,l=r.tipArcLeftCounts,h=r.segments,c=this.discreteCircle(s,h);e==this.mapDrawableName.TIPARC_X?(this.discretePointsX=c,a=r.tipArcLeftCounts,l=r.tipArcRightCounts):this.discretePointsY=c;for(var d="",g=h-a-1;g<h;g++)d+=c[g].x+","+c[g].y,d+=" ";for(var u=0;u<=l;u++)d+=c[u].x+","+c[u].y,d+=" ";var p={points:d,color:this.config.colors.tipArcX};e==this.mapDrawableName.TIPARC_X?(this.drawingImpl.makePolyline(e,p),this.coordinateAction.registerTipArcXEvents()):e==this.mapDrawableName.TIPARC_Y&&(p.color=this.config.colors.tipArcY,this.drawingImpl.makePolyline(e,p),this.coordinateAction.registerTipArcYEvents())}drawTipLine(e,t,i){var o=this.drawingToCanvas(t.clone(),!1),n=this.drawingToCanvas(i.clone(),!1),s=this.config,r={start:o,end:n,color:s.colors.tipLine,dashArray:s.styles.dashArray};this.drawingImpl.makeDashLine(e,r),this.drawingImpl.show(e,!1)}drawCubeX(e,t,i){var o={center:t,radius:i,color:this.config.colors.cubeX};this.drawingImpl.makeCircle(e,o)}drawCubeY(e,t,i,o){var n={center:t,radius:i,color:o||this.config.colors.cubeY};this.drawingImpl.makeCircle(e,n)}discreteCircle(e,t){for(var i=e.center.clone(),o=e.radius,n=e.rotateAxis.clone(),s=e.normal.clone(),r=[],a=0;a<t;a++){s.applyAxisAngle(n,2*Math.PI/t);var l=i.clone().add(s.clone().multiplyScalar(o)),h=this.drawingToCanvas(l.clone());r.push(h)}return r}arcToCircle(e){var t="",i=this.discretePointsX;e==this.mapDrawableName.TIPARC_Y&&(i=this.discretePointsY);for(var o=0,n=i.length;o<n;o++)t+=i[o].x+","+i[o].y,t+=" ";t+=i[0].x+","+i[0].y;var s={points:t+=" ",color:this.config.colors.highLight};this.drawingImpl.makePolyline(e,s)}circleToArc(e){var t=this.config.styles,i=t.tipArcLeftCounts,o=t.tipArcRightCounts,n=t.segments,s=this.discretePointsX,r={color:this.config.colors.tipArcX};e==this.mapDrawableName.TIPARC_Y&&(s=this.discretePointsY,r.color=this.config.colors.tipArcY,i=t.tipArcRightCounts,o=t.tipArcLeftCounts);for(var a="",l=n-i-1;l<n;l++)a+=s[l].x+","+s[l].y,a+=" ";for(var h=0;h<=o;h++)a+=s[h].x+","+s[h].y,a+=" ";r.points=a,this.drawingImpl.makePolyline(e,r)}update(e){if(1==e||1!=this.bIsCoordinateHided){var t=this.getCoordinateAxis(),i=this.drawingToCanvas(t.start.clone()),o=this.drawingToCanvas(t.endX.clone()),n=this.drawingToCanvas(t.endY.clone()),s=this.drawingToCanvas(t.endZ.clone());null==this.createRefs&&(this.drawingImpl.makeDefs("refs"),this.createRefs=!0),this.cOrigin=i.clone(),this.drawAxisZ(i,s),this.drawAxisX(i,o),this.drawAxisY(i,n);var r=this.config.styles,a=this.mapDrawableName,l=this.fillClipPlane.renderClipPlane.normal.clone();this.drawClipPlaneCircle(a.TIPARC_Z,t.start.clone(),r.auxCircleRadius,this.dirX,l),this.drawTipArc(a.TIPARC_X,t.start.clone(),r.auxCircleRadius,l,this.dirX),this.drawTipArc(a.TIPARC_Y,t.start.clone(),r.auxCircleRadius,l,this.dirY);var h=this.fillClipPlane.getSideLength()/2,c=t.start.clone().add(this.dirX.clone().multiplyScalar(h)),d=t.start.clone().sub(this.dirX.clone().multiplyScalar(h));this.drawTipLine(a.DASHLINE_X,c,d);var g=t.start.clone().add(this.dirY.clone().multiplyScalar(h)),u=t.start.clone().sub(this.dirY.clone().multiplyScalar(h));this.drawTipLine(a.DASHLINE_Y,g,u),this.drawOrigin(i,r.originRadius);var p=this.discretePointsX[44].clone();this.drawCubeX(a.CUBEX,p,r.cubeRadius);var A=this.discretePointsY[134].clone();this.drawCubeY(a.CUBEY,A,r.cubeRadius),this.updateBbox()}}hide(e){this.drawingImpl.hideAll(e),this.bIsCoordinateHided=e}destroy(){this.drawingImpl.destroy()}updateBbox(){this.boundingBox.makeEmpty();for(var e=0;e<this.discretePointsX.length;e++){var t=this.discretePointsX[e].clone();this.boundingBox.expandByPoint(t)}for(e=0;e<this.discretePointsY.length;e++){t=this.discretePointsY[e].clone();this.boundingBox.expandByPoint(t)}var i=this.getCoordinateAxis(),o=this.drawingToCanvas(i.start.clone()),n=this.drawingToCanvas(i.endZ.clone());this.boundingBox.expandByPoint(o),this.boundingBox.expandByPoint(n),this.boundingBox.expandByScalar(5)}insideBoundingBox(e){return this.boundingBox.containsPoint(e.clone())}backwardCoordinate(){var e=this.cameraControl.camera.position,t=this.cameraControl.camera.target.clone().sub(e.clone()).normalize(),i=this.fillClipPlane.renderClipPlane.normal.clone();t.angleTo(i);Math.PI}}}(),function(){var t="Bimface.Plugins.Section.SectionPlane",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section");e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");let n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility");var s={Forward:0,Reverse:1},r={X:0,Y:2,Z:4},a=function(t){var i=this,o=t.viewer;if(o)if("Viewer3D"===o.viewerType||o instanceof e.Bimface.Viewer.ViewerGIS){if(o._sectionBox&&(o._sectionBox.hideBox(),!1!==t.exitSectionBox&&o._sectionBox.exit()),f.GlobalData.ClippingCapsType=f.EnumClippingCapsTypes.ClipPlane,t.hatchByMaterial&&o.getViewer().getClipCapsManager().enableHatchByMaterial(t.hatchByMaterial,!1),o._sectionPlane)return o._sectionPlane.showPlane(),o._sectionPlane;o._sectionPlane=this,i.id=t.id,i._opt=t,i.mode=t.mode,i._plane=t.plane,i._direction=t.direction,i._progress=-1,this.onFloorExplosionBinded=this.onFloorExplosion.bind(this),this.onClipMouseHoverBinded=this.onClipMouseHover.bind(this),this.onClipMouseMoveBinded=this.onClipMouseMove.bind(this),i.init(),i.setPlane(t.plane),this._boxSize=new THREE.Vector3}else console.log("viewer should be Viewer3D or ViewerGIS.");else console.log("domElement must not be empty.")};a.prototype={init:function(){i.send(t,"init"),this.enableCoordinate=!0;var o=this._opt.viewer,n=o.getViewer(),s=this;this.coordinateSystem=new e.Bimface.Plugins.Section.CoordinateSystem(o),this.coordinateSystem.setDirection(this._direction),f.GlobalData.ClippingCaps=!0,n.editorManager.enableTool(n,f.EditToolMode.CLIP_FILL),this._sectionTool=f.FillClipPlaneManager.getInstance(n.getScene()),this._sectionTool.observer=function(){var t=e.Bimface.Plugins.Section.SectionPlaneEvent;o.getEventManager().fireEvent(t.SectionPlaneUpdate,s)},this._sectionTool.enable(!0,!0),this.hookEvens()},hookEvens:function(){var t=this.coordinateSystem,i=this._opt.viewer.getViewer(),o=n.throttle;i.registerEventListener(f.EVENTS.ON_CLIP_HOVER,this.onClipMouseHoverBinded),i.registerEventListener(f.EVENTS.ON_CLIP_MOUSE_MOVE,this.onClipMouseMoveBinded),i.registerEventListener(f.EVENTS.ON_EDITOR_ZOOM,o(t.updateBinded,50)),i.registerEventListener(f.EVENTS.ON_CAMERA_ANIMATION_UPDATE,o(t.updateBinded,50)),i.registerEventListener(f.EVENTS.ON_EDITOR_END,(function(){t.update(!0)})),this._opt.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.FloorExplosion,this.onFloorExplosionBinded)},onFloorExplosion:function(){this.resetSectionTool(),this._opt.viewer.render()},onClipMouseHover:function(e){var t=this.coordinateSystem,i=this._opt.viewer.getDomElement();if(0!=this.enableCoordinate)if(t.update(!0),e.onClipPlane)t.hide(!1);else{i.style.cursor="";var o=new THREE.Vector2(e.event.clientX,e.event.clientY);t.insideBoundingBox(o)?t.hide(!1):t.hide(!0)}},onClipMouseMove:function(){this.coordinateSystem.update()},exit:function(){var t=this._opt.viewer.getViewer(),i=f.FillClipPlaneManager.getInstance(t.getScene());this.borderParamWidth&&this.borderParamHeight&&this.setBorder(this.borderParamWidth,this.borderParamHeight,!1),this.clearFilter(),t.editorManager.disableTool(f.EditToolMode.CLIP_FILL),i.clearCapsWireframe(),f.GlobalData.ClippingCaps=!1,i.enable(!1,!1),this.coordinateSystem.destroy(),t.getScene().removeObjectGroup(i),t.getScene().fillClipPlane=null,t.getClipCapsManager().resetClippingCapsStatus();let o=e.Bimface.Plugins.Section.SectionPlaneEvent;this._opt.viewer.getEventManager().fireEvent(o.SectionPlaneUpdate,null),this._sectionTool=null,this._opt.viewer._sectionPlane=null,t.unregisterEventListener(f.EVENTS.ON_CLIP_HOVER,this.onClipMouseHoverBinded),t.unregisterEventListener(f.EVENTS.ON_CLIP_MOUSE_MOVE,this.onClipMouseMoveBinded),this._opt.viewer.removeEventListener(e.Bimface.Viewer.Viewer3DEvent.FloorExplosion,this.onFloorExplosionBinded)},setProgress:function(e){i.send(t,"setProgress");var o=1-e/50;this._progress=e,this._sectionTool.setProcess(o),this._sectionTool.clearCapsWireframe(),this._sectionTool.calculateClippingIds()},setOriginProgress:function(e){var t=e/100;this._progress=e,this._sectionTool.setProcess(t),this._sectionTool.clearCapsWireframe(),this._sectionTool.calculateClippingIds()},getOriginProgress:function(){return 100*this._sectionTool.getProcess()},getProgress:function(){return 50*(1-this._sectionTool.getProcess())},setPlane:function(e){i.send(t,"setPlane");var o=s[this._direction]+r[e];this._plane=e,this._sectionTool.changeNormal(o),this.setProgress(this._opt.progress)},getPlane:function(){return this._plane},setDirection:function(e){i.send(t,"setDirection");var o=s[e]+r[this._plane];this._direction=e,this._sectionTool.changeNormal(o),this.setProgress(this._opt.progress)},getDirection:function(){return this._direction},setRotateAngle:function(e,t){this._sectionTool.setRotateAngle(e,t)},getRotateAngle:function(){return this._sectionTool.getRotateAngle()},hidePlane:function(){i.send(t,"hidePlane"),this._sectionTool&&(this._sectionTool.visible=!1),this.enableCoordinate=!1,this.coordinateSystem.hide(!0)},showPlane:function(){i.send(t,"showPlane"),this._sectionTool&&(this._sectionTool.visible=!0),this.enableCoordinate=!0},rotateByAxis:function(e,o){if(i.send(t,"rotateByAxis"),"YAxis"===e||"ZAxis"===e){var n="",a=0,l=s[this.getDirection()]+r[this._plane];0==l||1==l?(a="YAxis"===e?-o:o,n="YAxis"===e?"y":"z"):2==l||3==l?(a="YAxis"===e?-o:o,n="YAxis"===e?"x":"z"):4!=l&&5!=l||(a="YAxis"===e?o:-o,n="YAxis"===e?"x":"y"),a="Reverse"===this._direction?o:a,this._sectionTool&&(this._sectionTool.rotateAngleOffset(a,n),this._sectionTool.clearCapsWireframe(),this._sectionTool.calculateClippingIds())}else console.log("Rotate axis must be YAxis or ZAxis.")},reset:function(){i.send(t,"reset");var e=this;e.setPlane(e._opt.plane),e.setDirection(e._opt.direction),e.setProgress(e._opt.progress)},enable:function(e){i.send(t,"enable"),!e&&this._sectionTool.clearCapsWireframe(),this.borderParamWidth&&this.borderParamHeight&&this.setBorder(this.borderParamWidth,this.borderParamHeight,e),this._sectionTool.enable(e,e),e?this.showPlane():this.hidePlane()},getState:function(){return this._sectionTool.store()},isIncluded:function(e){var t=this._opt.viewer,i=t.getViewer().getScene(),o=f.FillClipPlaneManager.getInstance(i),n=o.renderClipPlane.normal.clone().normalize(),s=o.position,r=t.worldToScene(e),a=new THREE.Vector3;return a.subVectors(r,s).normalize(),n.angleTo(a)>Math.PI/2},setPositionByPlane:function(e,t,i){var n=this._opt.viewer;e=n.worldToScene(e),t=n.worldToScene(t);var s=new THREE.Vector3(e.x,e.y,e.z),r=new THREE.Vector3(t.x,t.y,t.z),a=s.clone().add(r.clone().multiplyScalar(i));this._opt.plane=o.SectionPlanePlane.X,this._opt.direction=o.SectionPlaneDirection.Forward,this.reset(),this._sectionTool.update();var l=new THREE.Vector3(1,0,0),h=new THREE.Vector3(0,1,0);let c=1,d=r.clone().projectOnPlane(h);if(0!=d.length){d.normalize(),c=l.clone().cross(d).y>0?1:-1;let e=l.clone().angleTo(d);this.rotateByAxis("ZAxis",e*THREE.Math.RAD2DEG*c)}let g=d.clone().angleTo(r.clone());c=r.y<0?1:-1,this.rotateByAxis("YAxis",g*THREE.Math.RAD2DEG*c),this._sectionTool.position.copy(a),this._sectionTool.center.copy(a),this._sectionTool.update(),this._sectionTool.clearCapsWireframe()},setState:function(e){i.send(t,"setState"),this._sectionTool.restore(e)},restoreRotation:function(){this._sectionTool.restoreRotation()},getSectionPlane:function(){var e=this._opt.viewer,t=this._sectionTool.position.clone(),i=this._sectionTool.renderClipPlane.normal.clone();return t=e.sceneToWorld(t),i=e.sceneToWorld(i),(i=new THREE.Vector3(i.x,i.y,i.z)).normalize(),{position:t,normal:i}},setSectionPlane:function(e){var t=this._opt.viewer;this.reset();var i=t.worldToScene(e.position),o=t.worldToScene(e.normal);(o=new THREE.Vector3(o.x,o.y,o.z)).normalize();var n=new THREE.Vector3(1,0,0),s=new THREE.Quaternion;s.setFromUnitVectors(n,o);var r=new THREE.Euler;r.setFromQuaternion(s),r.x=0,s.setFromEuler(r),s.x=-s.x;var a=this._sectionTool.uniforms.vClipPlane.value[0].clone(),l=new THREE.Vector3(a.x,a.y,a.z);l.normalize();var h=new THREE.Vector3(i.x,i.y,i.z).sub(this._sectionTool.center);this._sectionTool.planeOffset=h.x/l.x,this._sectionTool.quaternion.copy(s),this._sectionTool.position.copy(i),this._sectionTool.update(),this._sectionTool.clearCapsWireframe(),this._sectionTool.calculateClippingIds()},resetSectionTool:function(){var e=this._opt.viewer.getViewer().getScene(),t=e.getBoundingBox();t.getSize(this._boxSize),this._sectionTool.resize(this._boxSize.multiplyScalar(e.expandScalar)),t.getCenter(this._sectionTool.center),t.getCenter(this._sectionTool.position),this._sectionTool.update(),this._sectionTool.clearCapsWireframe(),this._sectionTool.calculateClippingIds()},setObjectsById(e){this._opt.viewer.getModels().forEach((t=>{t.localClippingComponentsById(e)})),this._sectionTool.update(),this._opt.viewer.render()},setObjectsByObjectData(e){this._opt.viewer.getModels().forEach((t=>{t.localClippingComponentsByObjectData(e)})),this._sectionTool.update(),this._opt.viewer.render()},restoreObjects(){this._opt.viewer.getModels().forEach((e=>{e.clearLocalClipping()})),this._sectionTool.update(),this._opt.viewer.render()},setFilter(t){if(t&&t instanceof Array){var i=this._opt.viewer;if("Viewer3D"===i.viewerType)for(var o=0;o<t.length;o++){if((s=t[o]).modelId){var n=i.getModel(s.modelId);n?s.objectIds||s.objectData?s.objectIds?n.localClippingComponentsById(s.objectIds):s.objectData&&n.localClippingComponentsByObjectData(s.objectData):i.getViewer().modelManager.getModel(n.modelId).enableLocalClippingMode(!0):console.warn("invalid modelId.")}else console.warn("invalid modelId.")}else if(i instanceof e.Bimface.Viewer.ViewerGIS)for(o=0;o<t.length;o++){var s;if(!(s=t[o]).layerId){console.warn("invalid layerId.");continue}var r=i.getLayerManager().getLayer(s.layerId);if(!r){console.warn("invalid layerId.");continue}const e=i.getModel(r.customId||r.modelId);e?s.objectIds||s.objectData?s.objectIds?e.localClippingComponentsById(s.objectIds):s.objectData&&e.localClippingComponentsByObjectData(s.objectData):i.getViewer().modelManager.getModel(e.modelId).enableLocalClippingMode(!0):console.warn("invalid layerId.")}this._sectionTool.update(),this._sectionTool.clearCapsWireframe(),this._sectionTool.calculateClippingIds(),this._opt.viewer.render()}else console.log("filter should be Array.")},clearFilter(){var e=this._opt.viewer;e.getModels().forEach((t=>{e.getViewer().modelManager.getModel(t.modelId).enableLocalClippingMode(!1)})),this.restoreObjects()},setBorder(t,i,o){this.borderParamWidth=t,this.borderParamHeight=i;var n=20,s=20;"Viewer3D"===this._opt.viewer.viewerType?(n=this._opt.viewer.getViewer().worldToDrawing({x:t,y:0,z:0}).x,s=this._opt.viewer.getViewer().worldToDrawing({x:i,y:0,z:0}).x):this._opt.viewer instanceof e.Bimface.Viewer.ViewerGIS&&(n=t||n,s=i||s),n=Math.max(1,n),s=Math.max(1,s),this._sectionTool.setBorder(n,s,o)},drawComponentContours(){let e=this._opt.viewer.getViewer().getScene().getOrCreateObjectGroup(f.ObjectGroupType.CAPSWIREFRAME,{globalSpace:!0});const t=this._sectionTool.capsIntersectContour;for(const i in t){const o=t[i],n=this._opt.viewer.getModel(i).getModelTransformation();(new THREE.Matrix4).fromArray(n);for(const t in o){o[t].clippingContours.map((t=>{t.map((t=>{const i=new THREE.BufferGeometry;i.setFromPoints(t),i.computeBoundingSphere();let o=new THREE.Line(i,new THREE.LineBasicMaterial({color:16711680,depthTest:!1}));e.add(o),o.updateMatrixWorld(!0)}))}))}}},getComponentContours(t,i){if(!this._sectionTool)return void console.warn("The SectionPlane is unavailable");const o=this._opt.viewer;let n=t;if(o instanceof e.Bimface.Viewer.ViewerGIS){const e=o.getLayerManager().getLayer(t);if(!e)return void console.warn("Parameter layerId is invalid.");n=e.getModelId()}const s=o.getModel(n);if(!s)return void console.warn("Parameter modelId is invalid.");let r=s.getComponentContours(i);if(o instanceof e.Bimface.Viewer.ViewerGIS){const e=r.length;for(let i=0;i<e;++i)delete r[i].modelId,r[i].layerId=t}return r}},o.SectionPlane=a}();e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionRegionConfig=class{constructor(){const e={viewer:null,boundary:null,height:0};for(let t in e)this[t]=e[t]}};class Do{constructor(t){e.Bimface.Data.StatisticsDataManager.getInstance().send("Bimface.Plugins.Section.SectionRegion","bf_c_SectionRegion_new");let i=t.viewer;if(!i)return void console.log("domElement must not be empty.");const o="Viewer3D"===i.viewerType,n=i instanceof e.Bimface.Viewer.ViewerGIS;if(o||n){if(i._sectionPlane&&(i._sectionPlane.hidePlane(),i._sectionPlane.exit()),i._sectionBox&&(i._sectionBox.hideBox(),i._sectionBox.exit()),i._sectionRegion)return i._sectionRegion;i._sectionRegion=this,this.eventManager=i.getEventManager(),this._opt=t,this._viewer=i,this.cloudViewer=this._viewer.getViewer(),this.reset()}else console.log("Viewer2D is not supported.")}init(){let e=this.boundary[0].z;this.height<0&&(e+=this.height);let t=this.boundary.map((t=>new THREE.Vector3(t.x,t.y,e)));t.push(t[0]),Do.isClockwiseBoundary(t)||t.reverse(),f.ClipRegionManager.setClipRegion(this.cloudViewer,t,Math.abs(this.height)),this._viewer.render()}changeClipDirection(e){this.clipDirection=e,f.ClipRegionManager.changeClipDirection(this.cloudViewer,e),this._viewer.render()}reset(){this.boundary=this._opt.boundary,e.Bimface.Plugins.Geometry.PlaneBufferGeometry.checkIntersect(this.boundary)?console.warn("Failed to create plane, the plane border is self-intersecting."):(this.height=this._opt.height,this.init(),this.changeClipDirection(!1))}enable(e){e?(this.init(),this.changeClipDirection(this.clipDirection)):this.exit()}exit(){f.ClipRegionManager.exit(this.cloudViewer),this._viewer.render(),this._viewer._sectionRegion=null}hide(){f.ClipRegionManager.hide(this.cloudViewer),this._viewer.render()}show(){f.ClipRegionManager.show(this.cloudViewer),this._viewer.render()}getBoundary(){return this.boundary}getHeight(){return this.height}setHeight(e){this.height=e,this.init()}setBoundary(t){e.Bimface.Plugins.Geometry.PlaneBufferGeometry.checkIntersect(t)?console.warn("Failed to create plane, the plane border is self-intersecting."):(this.boundary=t,this.init())}static isClockwiseBoundary(e){let t=0;const i=e.length;for(let o=0;o<i-1;o++)t+=-.5*(e[o+1].y+e[o].y)*(e[o+1].x-e[o].x);return!(t>0)}}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Section").SectionRegion=Do,e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Walkthrough").WalkthroughConfig=function(){return{viewer:null,time:10,stopCallback:null}},function(){var t="Bimface.Plugins.Walkthrough",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Walkthrough");e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.HttpRequest");o.Walkthrough=class{constructor(e){var t=e.viewer,i=t.getViewer();t?"Viewer3D"===t.getViewerType()||"ViewerGIS"===t.getViewerType()?(this._viewer=t,this.bPause=!1,this.cameraStatus=null,this._walkthrough=new f.Walkthrough,this._player=new f.WalkthroughPlayer(i),this._player.setWalkthrough(this._walkthrough),e.stopCallback&&this._player.addStopPlayCallback(e.stopCallback),this.setWalkthroughTime(e.time)):console.log("ViewerType is not supported."):console.log("viewer must not be empty.")}addKeyFrame(o){i.send(t,"addKeyFrame");var n=this._viewer,s=n.getViewer().camera,r={id:e.Web.Lang.Utility.UUID.createUUID(),position:s.position.clone(),target:s.target.clone(),name:o};if(this._walkthrough.addKeyFrame(r),this._walkthrough.checkFrameTimeMode()){const e=this._walkthrough.getKeyFrames();e.length>1&&void 0===e[e.length-2].timeBetweenFrames&&(e[e.length-2].timeBetweenFrames=5)}var a=Object.assign({},r);return a.position=n.sceneToWorld(r.position),a.target=n.sceneToWorld(r.target),a.coordinateSystem="world",a}setKeyFrameCallback(e){i.send(t,"setKeyFrameCallback"),this._player.setKeyFrameCallback(e)}removeKeyFrame(e){i.send(t,"removeKeyFrame"),this._walkthrough.removeKeyFrame(e)}clearKeyFrames(){i.send(t,"clearKeyFrames"),this._walkthrough.clearFrames()}setKeyFrames(e){i.send(t,"setKeyFrames"),"string"==typeof e&&(e=JSON.parse(e));var o=[];e.forEach((e=>{var t=Object.assign({},e);"world"===t.coordinateSystem&&(t.position=this._viewer.worldToScene(e.position),t.target=this._viewer.worldToScene(e.target)),o.push(t)})),this._walkthrough.setKeyFrameList(o)}getKeyFrames(){var e=this._walkthrough.getKeyFrames(),t=[];return e.forEach((e=>{var i=Object.assign({},e);i.position=this._viewer.sceneToWorld(e.position),i.target=this._viewer.sceneToWorld(e.target),i.coordinateSystem="world",t.push(i)})),t}setWalkthroughTime(e){i.send(t,"setWalkthroughTime"),c.assertType(e,"obj")?e.frameTime?this._walkthrough.setWalkthroughTime(e.frameTime):this._walkthrough.setWalkthroughTime(e.totalTime):this._walkthrough.setWalkthroughTime(e)}play(e){i.send(t,"play");var o=this._viewer.getViewer(),n=this._player,s=this.cameraStatus;if((r=o.cameraControl.camera).up.set(0,1,0),r.realUp.set(0,1,0),e&&n.startFrom(e),n.stop(!1),!0===this.bPause){var r=o.getCamera();s&&function(e){var t=(e=JSON.parse(e)).position,i=e.target,o={position:new THREE.Vector3(t.x,t.y,t.z),target:new THREE.Vector3(i.x,i.y,i.z)},n=s,r=o.position.clone().sub(n.position),a=o.target.clone().sub(n.target);return r.length()>0||a.length()>0}(r)&&(this._player.camera.position.copy(this._viewer.worldToScene(s.position)),this._player.camera.target.copy(this._viewer.worldToScene(s.target)))}n.play(),this.bPause=!1}pause(){i.send(t,"pause"),this.bPause=!0,this.cameraStatus=this._viewer.getCameraStatus(),this._player.pause()}stop(){i.send(t,"stop"),this._player.stop(!0),this.bPause=!1}stopCallback(e){i.send(t,"stopCallback"),e&&(this._stopCallback=e,this._player.addStopPlayCallback(e))}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Segment").SegmentConfig=function(){return{viewer:null}},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Segment").IsolateOption=Object.freeze({Hidden:"Hidden",Translucent:"Translucent",PartlyTranslucent:"PartlyTranslucent"}),function(){var t="Bimface.Plugins.Segment",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Segment");o.Segment=class{constructor(e){this._viewer=e.viewer,this._segmentInfoMap=null,this._segmentInfoArray=null,this._segmentIdArray=null,this._elementIdMap={},this._loading=!1,this._segmentInfoAcquired=!1,this._segmentIdMapFromComponentId={},this._traversedSegmentIdMap={},this._fullElementIdsLoadEnabled=!0}destroy(){this._viewer=null,this._segmentInfoMap=null,this._segmentInfoArray=null,this._segmentIdArray=null,this._elementIdMap=null,this._segmentIdMapFromComponentId=null,this._traversedSegmentIdMap=null}_hasSegmentInfo(e){return!(!this._segmentInfoMap||!this._segmentInfoMap[e])}_getSegmentInfoById(e){return this._segmentInfoMap?this._segmentInfoMap[e]:null}_removeDuplication(e){for(var t={},i=0,o=e.length;i<o;i++)this._hasSegmentInfo(e[i])&&!t[e[i]]&&(t[e[i]]=!0);return Object.keys(t)}_getSegmentElementIdsByIdx(e,t,i){var o=this,n=this._viewer,s=e[t];o._elementIdMap[s]?i&&i():n.getSegmentElementIds(s,(function(e){e.data&&(o._elementIdMap[s]=e.data,o.segmentFileInfoMap[s].elementIds=o._elementIdMap[s]),i&&i()}),(function(){i&&i()}))}_getSegmentElementIds(e,t){e||(e=this._segmentIdArray);var i=e.length,o=this;i>0?requestAnimationFrame(function e(n,s){var r=s;return function(){o._getSegmentElementIdsByIdx(n,r,(function(){r<i-1?requestAnimationFrame(e(n,r+1)):t&&t()}))}}(e,0)):t&&t()}_getSegmentFullElementIds(e){const t=this;this._viewer.getSegmentElementIds("full",(function(i){const o=i.data;o&&o.forEach((e=>{t._elementIdMap[e.segmentId]=e.elementIds,t.segmentFileInfoMap[e.segmentId].elementIds=e.elementIds})),e&&e()}),(function(){e&&e()}))}_getSegmentMetadataByIdx(e,t,i){var o=this._viewer,n=e[t],s=this.segmentFilePathMap[n].metadata,r=this.segmentFilePathMap[n].databag;o.getSegmentManager().getSegmentMetadata(r,s,(function(){i&&i()}),(function(){i&&i()}))}_getSegmentMetadata(e){var t=Object.keys(this.segmentFilePathMap),i=t.length,o=this;i>0?requestAnimationFrame(function t(n,s){var r=s;return function(){o._getSegmentMetadataByIdx(n,r,(function(){r<i-1?requestAnimationFrame(t(n,r+1)):e&&e()}))}}(t,0)):e&&e()}_loadMetadata(e){for(var t=this._viewer,i=this._segmentIdArray,o=this.segmentFilePathMap={},n=this.segmentFileInfoMap={},s=0,r=i.length;s<r;s++){var a=i[s],l=this._getSegmentInfoById(a).partialElementFiles,h=[];if(l)for(var c=0,d=l.length;c<d;c++){var g=l[c].databagId;if(g){var u=null;o[g]?u=o[g]:(u={databag:t.getDatabagResource(g),metadata:t.getPartialElementsMetadataFile(g),fileId:l[c].fileId},o[g]=u),h.push(u)}}n[a]={id:a,paths:h}}this._getSegmentMetadata(e)}_loadSegments(e,t){if(e=e||this._segmentIdArray){for(var i=this._viewer,o=this._removeDuplication(e),n=[],s=0,r=o.length;s<r;s++){var a=this.segmentFileInfoMap[o[s]];a&&n.push(a)}0!==n.length?i.getSegmentManager().loadSegments(n,(function(){t&&t()})):t&&t()}else t&&t()}getSegmentInfo(e){function o(e,t){if(e.subGroups)for(var i=e.subGroups,n=0,s=i.length;n<s;n++)o(i[n],t);else if(e.segments)for(var r=0,a=e.segments.length;r<a;r++){var l=e.segments[r];t[l.id]=l}}if(i.send(t,"getSegmentInfo"),this._loading)return null;if(this._segmentInfoAcquired)return e&&e(this._segmentInfoArray),this._segmentInfoArray;var n=this;return this._loading=!0,this._viewer.getSegmentTree((function(t){for(var i=t.data,s=n._segmentInfoMap={},r=0,a=i.length;r<a;r++)o(i[r],s);n._segmentIdArray=Object.keys(n._segmentInfoMap),n._segmentInfoArray=[];for(var l=n._segmentInfoArray.length=n._segmentIdArray.length,h=0;h<l;h++)n._segmentInfoArray[h]=n._segmentInfoMap[n._segmentIdArray[h]];n._loadMetadata((function(){n._loading=!1,n._segmentInfoAcquired=!0,e&&e(n._segmentInfoArray)}))}),(function(e){console.error("request segment data error!")})),null}_loadSegmentsWithFullElementIds(e,t){this._fullElementIdsLoaded?this._loadSegments(e,t):this._getSegmentFullElementIds((()=>{this._fullElementIdsLoaded=!0,this._loadSegments(e,t)}))}loadSegments(e,o){i.send(t,"loadSegments");var n=this;this._fullElementIdsLoadEnabled?this._segmentInfoAcquired?this._loadSegmentsWithFullElementIds(e,o):this.getSegmentInfo((function(t){n._loadSegmentsWithFullElementIds(e,o)})):this._segmentInfoAcquired?n._getSegmentElementIds(e,(function(){n._loadSegments(e,o)})):this.getSegmentInfo((function(t){n._getSegmentElementIds(e,(function(){n._loadSegments(e,o)}))}))}unloadSegments(e){i.send(t,"unloadSegments"),(e=e||this._segmentIdArray)&&(this._viewer.getSegmentManager().unloadSegments(this._removeDuplication(e)),this._viewer.render())}hideComponentsBySegment(e){i.send(t,"hideComponentsBySegment"),this._viewer.getSegmentManager().hideComponentsBySegment(this._removeDuplication(e)),this._viewer.render()}showComponentsBySegment(e){i.send(t,"showComponentsBySegment"),this._viewer.getSegmentManager().showComponentsBySegment(this._removeDuplication(e)),this._viewer.render()}isolateComponentsBySegment(o,n){i.send(t,"isolateComponentsBySegment");var s=void 0,r=e.Bimface.Plugins.Segment.IsolateOption;switch(n){case r.Hidden:s=this._viewer.getSegmentManager().getSegmentIsolateOption().HIDDEN;break;case r.Translucent:s=this._viewer.getSegmentManager().getSegmentIsolateOption().TRANSLUCENT;break;case r.PartlyTranslucent:s=this._viewer.getSegmentManager().getSegmentIsolateOption().PARTLYTRANSLUCENT}void 0!==s&&(this._viewer.getSegmentManager().isolateComponentsBySegment(this._removeDuplication(o),s),this._viewer.render())}disable(){this._viewer.getSegmentManager().disable(),this._viewer.render()}enable(){this._viewer.getSegmentManager().enable(),this._viewer.render()}getSegementIds(e){if(!this._segmentInfoAcquired)return console.error("Call the function getSegmentInfo() first!"),null;var t=this._segmentIdMapFromComponentId;if(t[e])return t[e];for(var i=Object.keys(this._elementIdMap),o=0,n=i.length;o<n;o++){var s=i[o];if(!this._traversedSegmentIdMap[s]){this._traversedSegmentIdMap[s]=!0;for(var r=this._elementIdMap[s],a=0,l=r.length;a<l;a++){var h=r[a];t[h]||(t[h]=[]),t[h].push(s)}}}var c=this._viewer.getSegmentManager().getSegmentIdsByPartialElementId(e);return c&&(t[e]=c),t[e]}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.AxisGrid");i.HighlightBorderLines=class{constructor(e){this.svgContainer=e,this.initialize(),this.visibility=!1}initialize(){var e=t.createNS("line","bf-axisgrid-line"),i=e.cloneNode();i.style.strokeWidth=1,i.style.stroke="#ffffff",i.style.opacity=.5,this.svgContainer.appendChild(i),this.lineLeft=i;var o=e.cloneNode();o.style.strokeWidth=1,o.style.stroke="#ffffff",o.style.opacity=.5,this.svgContainer.appendChild(o),this.lineRight=o}updateBorderLeft(e,t){var i=new THREE.Vector2(e.x,e.y),o=new THREE.Vector2(t.x,t.y);e.y==t.y?(i.y-=2,o.y-=2):(i.x-=2,o.x-=2),this.moveLineTo(this.lineLeft,i,o)}updateBorderRight(e,t){var i=new THREE.Vector2(e.x,e.y),o=new THREE.Vector2(t.x,t.y);e.y==t.y?(i.y+=2,o.y+=2):(i.x+=2,o.x+=2),this.moveLineTo(this.lineRight,i,o)}hide(){this.lineLeft.style.display="none",this.lineRight.style.display="none",this.visibility=!1}show(){this.lineLeft.style.display="block",this.lineRight.style.display="block",this.visibility=!0}update(e,t){0!=this.visibility&&(this.updateBorderLeft(e,t),this.updateBorderRight(e,t))}moveLineTo(e,t,i){e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",i.x),e.setAttribute("y2",i.y)}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.AxisGrid");i.HighlightLine=class{constructor(t,i){this.svgContainer=t,this.viewer=i,this.borderline=new e.Bimface.Plugins.AxisGrid.HighlightBorderLines(t),this.initialize(),this.visibility=!1}initialize(){var e=t.createNS("line","bf-axisgrid-line");e.style.strokeWidth=2,e.style.stroke="#32D5A7",this.svgContainer.appendChild(e),this.line=e}hide(){this.line.style.display="none",this.borderline.hide(),this.visibility=!1}show(){this.line.style.display="block",this.borderline.show(),this.visibility=!0}setLine(e){this.highlightLine=e}setHeight(e){this.axisgridHeight=e}update(){if(0!=this.visibility){var e=this.highlightLine,t=new THREE.Vector3(e[0],e[1],this.axisgridHeight),i=new THREE.Vector3(e[3],e[4],this.axisgridHeight),o=this.worldPointsToClient(t,i);o&&(this.moveLineTo(this.line,o.start,o.end),this.borderline.update(o.start,o.end))}}worldPointsToClient(e,t){var i=this.viewer.getDomElement().getBoundingClientRect(),o=this.viewer.getViewer().worldPointsToClient(e,t);return o&&(o.start.x-=i.left,o.start.y-=i.top,o.end.x-=i.left,o.end.y-=i.top),o}moveLineTo(e,t,i){e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",i.x),e.setAttribute("y2",i.y)}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.AxisGrid");i.HighlightIntersectLines=class{constructor(t,i){this.svgContainer=t,this.viewer=i,this.horizBorderline=new e.Bimface.Plugins.AxisGrid.HighlightBorderLines(t),this.verticalBorderline=new e.Bimface.Plugins.AxisGrid.HighlightBorderLines(t),this.initialize(),this.visibility=!1}initialize(){var e=t.createNS("line","bf-axisgrid-line"),i=e.cloneNode();i.style.strokeWidth=2,i.style.stroke="#32D5A7",this.svgContainer.appendChild(i),this.svgHorizLine=i;var o=e.cloneNode();o.style.strokeWidth=2,o.style.stroke="#32D5A7",this.svgContainer.appendChild(o),this.svgVerticalLine=o;var n=t.createNS("circle","bf-axisgrid-point");n.setAttribute("r",3),n.setAttribute("fill","#32D5A7"),this.svgContainer.appendChild(n),this.hoverPoint=n,this.hide()}setLine(e,t){this.horizLine=e,this.verticalLine=t}setPoint(e){this.intersectPoint=e}setHeight(e){this.axisgridHeight=e}update(){if(0!=this.visibility){var e=this.horizLine,t=this.verticalLine,i=this.viewer.worldToClient(this.intersectPoint),o=new THREE.Vector3(e[0],e[1],this.axisgridHeight),n=new THREE.Vector3(e[3],e[4],this.axisgridHeight),s=new THREE.Vector3(t[0],t[1],this.axisgridHeight),r=new THREE.Vector3(t[3],t[4],this.axisgridHeight),a=this.worldPointsToClient(o,n);a&&(this.moveLineTo(this.svgHorizLine,a.start,a.end),this.horizBorderline.update(a.start,a.end));var l=this.worldPointsToClient(s,r);l&&(this.moveLineTo(this.svgVerticalLine,l.start,l.end),this.verticalBorderline.update(l.start,l.end)),this.movePointTo(this.hoverPoint,i.x,i.y)}}worldPointsToClient(e,t){var i=this.viewer.getDomElement().getBoundingClientRect(),o=this.viewer.getViewer().worldPointsToClient(e,t);return o&&(o.start.x-=i.left,o.start.y-=i.top,o.end.x-=i.left,o.end.y-=i.top),o}hide(){this.svgHorizLine.style.display="none",this.svgVerticalLine.style.display="none",this.hoverPoint.style.display="none",this.horizBorderline.hide(),this.verticalBorderline.hide(),this.visibility=!1}show(){this.svgHorizLine.style.display="block",this.svgVerticalLine.style.display="block",this.hoverPoint.style.display="block",this.horizBorderline.show(),this.verticalBorderline.show(),this.visibility=!0}moveLineTo(e,t,i){e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",i.x),e.setAttribute("y2",i.y)}movePointTo(e,t,i){e.setAttribute("cx",t),e.setAttribute("cy",i)}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.AxisGrid");o.AxisGridManager=class{constructor(o){t.send("Bimface.Plugins.AxisGrid","AxisGridManager"),this.snapMinDistance=5,this.viewer=o.viewer,this.registerEvent(),this.domContainer=i.create("div","bf-axisgrid-conext"),this.domContainer.style.position="absolute",this.domContainer.style.left=0,this.domContainer.style.top=0,this.domContainer.style.width="100%",this.domContainer.style.height="100%",this.svgContainer=i.createNS("svg","bf-axisgrid-svg"),this.svgContainer.style.width="100%",this.svgContainer.style.height="100%",this.domContainer.appendChild(this.svgContainer),this.viewer.getDomElement().appendChild(this.domContainer);var n=e.Bimface.Plugins.AxisGrid;this.highlightLine=new n.HighlightLine(this.svgContainer,this.viewer),this.highlightIntersectLines=new n.HighlightIntersectLines(this.svgContainer,this.viewer)}registerEvent(){var t=e.Bimface.Viewer.Viewer3DEvent,i=this,o=this.viewer.getEventManager(),n=null;const s="AxisGrids";function r(e){var r=!0,a=e.point,l=e.height,h=e.snapLines,c=e.nearestPoint,d=h.intersectLines,g=h.gridLine,u=i.viewer.worldToClient(a),p=i.viewer.worldToClient(c.toGridLine),A=i.viewer.worldToClient(c.toIntersection),m=i.distance(u,p),w=i.distance(u,A),C=null;if(w<=i.snapMinDistance&&void 0!==d){i.highlightIntersectLines.show(),i.highlightLine.hide();var f=d[0],E=d[1];C=f.name+"-"+E.name,i.highlightIntersectLines.setHeight(l),i.highlightIntersectLines.setLine(f,E),i.highlightIntersectLines.setPoint(c.toIntersection),i.highlightIntersectLines.update()}else m<=i.snapMinDistance?(C=g.name,i.highlightLine.show(),i.highlightIntersectLines.hide(),i.highlightLine.setHeight(l),i.highlightLine.setLine(g),i.highlightLine.update(l)):(n=null,i.highlightLine.hide(),i.highlightIntersectLines.hide(),r=!1);return n!=C&&(w<=i.snapMinDistance||m<=i.snapMinDistance)&&(o.fireEvent(t.Hover,{objectType:s,objectId:C,worldPosition:a}),n=C),r}this.viewer.addEventListener(t.AxisGridHover,(function(e){for(const t of e.snaps){if(r(t))break}})),this.viewer.addEventListener(t.Rendered,(function(){var e=e||window.event,t=i.viewer.getViewer(),o=t.getScene();if(!o.axisGridEnableHover)return i.highlightLine.hide(),void i.highlightIntersectLines.hide();i.viewer.getModels().forEach((n=>{let s=n.modelId;var a=CLOUD.AxisGridManager.getInstance(o,s);if(e&&"mousewheel"==e.type){var l=o.getMatrixGlobal(),h=new THREE.Vector2(e.clientX,e.clientY),c=t.cameraControl.getRaycaster(h.x,h.y),d=a.getIntersectPoints(c,l),g=a.snapOnFloors(d);if(g&&0==g.length)return i.highlightLine.hide(),void i.highlightIntersectLines.hide();for(const e of g){if(r(e))break}}})),i.highlightLine.update(),i.highlightIntersectLines.update()}))}distance(e,t){var i=e.x-t.x,o=e.y-t.y,n=e.z-t.z;return Math.sqrt(i*i+o*o+n*n)}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.AxisGrid").AxisGridManagerConfig=function(){return{viewer:null}},function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing");t.EditPoint=class{constructor(e,t,i){this.viewer3D=e,this.worldPosition=!0===i?null:t,this.clientPosition=!0===i?t:null,this.svgElement=null,this.xmlns="http://www.w3.org/2000/svg",this.glodonColor="#11DAB7",this.gridHighlightColor="#FF7F00",this.observer=function(){},this.uuid=-1,this.initialize()}initialize(){this.worldPosition?this.clientPosition=this.viewer3D.worldToClient(this.worldPosition):this.worldPosition=this.viewer3D.clientToWorld(this.clientPosition);let e=document.createElementNS(this.xmlns,"circle");e.setAttribute("r",3),e.setAttribute("style","stroke: "+this.glodonColor+"; stroke-width: 1; fill: #ffffff"),e.setAttribute("transform","translate("+this.clientPosition.x+","+this.clientPosition.y+")"),this.svgElement=e}setObserver(e){this.observer=e}hightlight(){this.svgElement.style.stroke=this.gridHighlightColor}cancelHightlight(){this.svgElement.style.stroke=this.glodonColor}distanceTo(e){let t=e.x-this.clientPosition.x,i=e.y-this.clientPosition.y;return Math.sqrt(t*t+i*i)}detach(){this.svgElement.parentNode.removeChild(this.svgElement)}update(e){1==e?this.worldPosition=this.viewer3D.clientToWorld(this.clientPosition):this.clientPosition=this.viewer3D.worldToClient(this.worldPosition),this.svgElement.setAttribute("transform","translate("+this.clientPosition.x+","+this.clientPosition.y+")")}isEqualWith(e){return e.uuid==this.uuid}getWorldPosition(){let e=this.worldPosition;return[e.x,e.y,e.z]}getClientPosition(){return new THREE.Vector2(this.clientPosition.x,this.clientPosition.y)}setClientPosition(e){this.clientPosition.x=e.x,this.clientPosition.y=e.y}getSvgElement(){return this.svgElement}}}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing");t.EditEdge=class{constructor(e){this.svgElement=null,this.xmlns="http://www.w3.org/2000/svg",this.gridHighlightColor="#FF7F00",this.editPoints=e,this.initialize(),this.hide()}initialize(){let e=this.editPoints[0],t=this.editPoints[1],i=document.createElementNS(this.xmlns,"line");i.setAttribute("stroke",this.gridHighlightColor),i.setAttribute("stroke-width",3),i.setAttribute("x1",e.getClientPosition().x+""),i.setAttribute("y1",e.getClientPosition().y+""),i.setAttribute("x2",t.getClientPosition().x+""),i.setAttribute("y2",t.getClientPosition().y+""),this.svgElement=i}show(){this.update(),this.svgElement.style.display="block"}hide(){this.svgElement.style.display="none"}update(){let e=this.editPoints[0],t=this.editPoints[1];this.svgElement.setAttribute("x1",e.getClientPosition().x+""),this.svgElement.setAttribute("y1",e.getClientPosition().y+""),this.svgElement.setAttribute("x2",t.getClientPosition().x+""),this.svgElement.setAttribute("y2",t.getClientPosition().y+"")}detach(){this.svgElement.parentNode.removeChild(this.svgElement)}startWithNull(){return null==this.editPoints[0]}endWith(e){return this.editPoints[1].isEqualWith(e)}distanceTo(e){let t=e.x-this.clientPosition.x,i=e.y-this.clientPosition.y;return Math.sqrt(t*t+i*i)}getSvgElement(){return this.svgElement}}}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing");t.Boundary=class{constructor(e){this.editPoints=e,this.polyline=null,this.xmlns="http://www.w3.org/2000/svg",this.glodonColor="#11DAB7",this.boundaryHighlightColor="#FF7F00",this.initialize()}initialize(){this.setObserver();let e=this.formatPolyline(this.editPoints),t=document.createElementNS(this.xmlns,"polyline");t.setAttribute("stroke",this.glodonColor),t.setAttribute("stroke-width",2),t.style.fill=this.glodonColor,t.style.fillOpacity="0.4",t.setAttribute("points",e),this.polyline=t}setObserver(){this.updateBinded=this.update.bind(this);for(const e of this.editPoints)e.setObserver(this.updateBinded)}formatPolyline(e){let t="";for(let i of e){let e=i.getClientPosition();t+=e.x+","+e.y,t+=" "}let i=e[0].getClientPosition();return t+=i.x+","+i.y,t+=" ",t}update(){let e=this.formatPolyline(this.editPoints);this.polyline.setAttribute("points",e)}rebuild(e){this.editPoints=e,this.initialize()}getSvgElement(){return this.polyline}}}();class Ro{constructor(){}}Ro.distanceToSegment=function(e,t,i){let o=this.nearestPointOnSegment(e,t,i);return e.distanceTo(o)},Ro.nearestPointOnSegment=function(e,t,i){var o=t.distanceToSquared(i);if(0==o)return e.distanceTo(t);var n=((e.x-t.x)*(i.x-t.x)+(e.y-t.y)*(i.y-t.y))/o;n=Math.max(0,Math.min(1,n));let s=new THREE.Vector2;return s.x=t.x+n*(i.x-t.x),s.y=t.y+n*(i.y-t.y),s};class Vo{constructor(e){this.drawables=[],this.drawableStyle=e,this.style={},this.id="",this.hitTestEpsilon=10,this.highlightColor="#FFF227",this.grayColor="#BBBBBB"}attach(e){this.drawables.forEach((t=>{if(t instanceof Vo)for(const i of t.getDrawables())e.appendChild(i);else e.appendChild(t)}))}detach(){for(const t of this.drawables){if(t instanceof Vo)for(const i of t.getDrawables()){var e;(e=i.parentNode)&&e.removeChild(i)}else(e=t.parentNode)&&e.removeChild(t),this.drawables=[]}}hitTest(e){}setDefault(){}select(e){}setGray(){}magnify(){}resetSize(){}hide(){}show(){}isArrow(){return!1}getId(){return this.id}getDrawables(){return this.drawables}toVector2(e){return new THREE.Vector2(e.x,e.y)}toVector3(e){return new THREE.Vector3(e.x,e.y,e.z)}}class Qo extends Vo{constructor(e){super(),this.id=e.id,this.color=e.color,this.length=e.length||130,this.markerWidth=e.markerWidth||4,this.markerHeight=e.markerHeight||4,this.lineWidth=e.lineWidth||4,this.start=null,this.target=null}update(e,t){this.drawables=[];let i=O.makeMarker({id:this.id,color:this.color,markerWidth:this.markerWidth,markerHeight:this.markerHeight});this.drawables.push(i);let o={color:this.color,lineWidth:`${this.lineWidth}px`,start:e,end:t};this.start=e,this.target=t;let n=O.makeLine(o);n.setAttribute("marker-end","url(#"+this.id+")"),this.drawables.push(n)}setDefault(){this.drawables[1].style.stroke=this.color,document.getElementById(this.id).children[0].style.fill=this.color}setGray(){this.drawables[1].style.stroke=this.grayColor,document.getElementById(this.id).children[0].style.fill=this.grayColor}select(){this.drawables[1].style.stroke=this.highlightColor,document.getElementById(this.id).children[0].style.fill=this.highlightColor}hitTest(e){let t=this.hitTestEpsilon;const i=new THREE.Vector3(e.x,e.y,0),o=new THREE.Line3(new THREE.Vector3(this.start.x,this.start.y,0),new THREE.Vector3(this.target.x,this.target.y,0)),n=new THREE.Vector3;return o.closestPointToPoint(i,!0,n),n.distanceTo(i)<=t?this:null}hide(){document.getElementById(this.id).children[0].style.display="none",this.drawables[1].style.display="none"}show(){this.drawables[1].style.display="block",document.getElementById(this.id).children[0].style.display="block"}getDirection(){let e=this.target.clone().sub(this.start).normalize();return new THREE.Vector3(e.x,e.y,0)}magnify(){let e=document.getElementById(this.id);e.setAttribute("markerWidth",6),e.setAttribute("markerHeight",6)}resetSize(){let e=document.getElementById(this.id);e.setAttribute("markerWidth",4),e.setAttribute("markerHeight",4)}isArrow(){return!0}}class ko{constructor(){this.glodonColor="#32D3A6",this.highlightColor="#F99D0B",this.hitTestEpsilon=5,this.drawables=[],this.upSegment=[],this.downSegment=[]}update(e){this.drawables=[],this.upSegment=[],this.downSegment=[],this.points=e;for(let t=0;t<e.length;t++){let i=O.makeLine({start:e[t],end:e[(t+1)%4],lineWidth:"2px",color:this.glodonColor});this.drawables.push(i)}let t={},i=[...e,e[0]];t.points=O.calcPolylinePoints(i),t.width="1px",t.color="rgba(0,0,0,0)",t.fillColor="rgba(50, 211, 166, 0.1)";let o=O.makePolyline(t);this.drawables.push(o),this.upSegment.push(this.drawables[3]),this.downSegment.push(this.drawables[1]);let n=[new THREE.Vector2((e[0].x+e[3].x)/2,(e[0].y+e[3].y)/2),new THREE.Vector2((e[1].x+e[2].x)/2,(e[1].y+e[2].y)/2)],s=10,r=0,a=["1","2","3","4"];for(const e of n){let t=new Qo({id:a[r++],color:this.glodonColor,length:8,lineWidth:3,markerWidth:4,markerHeight:4});t.update(e,e.clone().add(new THREE.Vector2(0,s))),s*=-1,t.getDrawables().forEach((e=>{this.drawables.push(e),r<=2&&this.upSegment.push(e),r>2&&this.downSegment.push(e)})),t.id=a[r++],t.update(e,e.clone().add(new THREE.Vector2(0,s))),s*=-1,t.getDrawables().forEach((e=>{this.drawables.push(e),r<=2&&this.upSegment.push(e),r>2&&this.downSegment.push(e)}))}}hitTest(e){let t=new THREE.Vector2(e.x,e.y),i=this.points[0],o=this.points[3],n=this.points[1],s=this.points[2],r=[];r.push(new THREE.Vector2(i.x,i.y)),r.push(new THREE.Vector2(o.x,o.y));let a=[];a.push(new THREE.Vector2(n.x,n.y)),a.push(new THREE.Vector2(s.x,s.y));let l=Ro.distanceToSegment(t,r[0],r[1]);return l<=this.hitTestEpsilon?"up-segment":(l=Ro.distanceToSegment(t,a[0],a[1]),l<=this.hitTestEpsilon?"down-segment":null)}detach(){for(const t of this.drawables){var e=t.parentNode;e&&e.removeChild(t),this.drawables=[]}}getDrawables(){return this.drawables}highlight(e){let t="up-segment"==e?this.upSegment:this.downSegment;for(const e of[0,2,4])t[e].style.stroke=this.highlightColor;let i="up-segment"==e?["1","2"]:["3","4"];for(const e of i){document.getElementById(e).children[0].style.fill=this.highlightColor}}cancelHighlight(){for(const e of[0,2,4])this.upSegment[e].style.stroke=this.glodonColor,this.downSegment[e].style.stroke=this.glodonColor;for(const e of["1","2","3","4"]){document.getElementById(e).children[0].style.fill=this.glodonColor}}}!function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing"));i.RoomData=class{constructor(e,i){t.send("Bimface.Plugins.RoomEditing","RoomData"),this.viewer=e,this.roomBoundary=i,this.editHeight=null,this.editPoints=[],this.editEdges=[],this.boundary=null,this.editPointUuid=0,this.onEditPointDeletion=null,this.onEditPointAddition=null,this.isEditHeightEnabled=!1,this.roomHeightOffset={from:0,to:0}}build(){if(this.isEditHeightEnabled)!this.editHeight&&this.makeHeight();else{this.makeEditPoints(),this.makeEditEdges(),this.makeBoundary();let t=new e.Bimface.Plugins.SpatialRelation.Room({viewer:this.viewer}).getRoomBoundingBoxById(this.editRoomId);this.roomHeightOffset.from=t.min.z,this.roomHeightOffset.to=t.max.z}}makeHeight(){this.editHeight=new ko;let t=new e.Bimface.Plugins.SpatialRelation.Room({viewer:this.viewer}).getRoomBoundingBoxById(this.editRoomId);this.roomHeightOffset.from=t.min.z,this.roomHeightOffset.to=t.max.z}makeEditPoints(){for(let e=0;e<this.roomBoundary.length-1;e++){const t=this.roomBoundary[e];let o=new THREE.Vector3(t[0],t[1]),n=new i.EditPoint(this.viewer,o);n.uuid=this.editPointUuid++,this.editPoints.push(n)}}deleteEditPoint(e){for(let t=0;t<this.editPoints.length;t++){let i=this.editPoints[t];if(i.isEqualWith(e)){i.detach(),this.editPoints.splice(t,1),this.onEditPointDeletion(i);break}}}addEditPoint(e,t){let o=e.editPoints[0],n=e.editPoints[1];e.detach();let s=this.editEdges.findIndex((e=>e.endWith(n)));this.editEdges.splice(s,1);let r=this.editPoints.findIndex((e=>e.isEqualWith(o))),a=new THREE.Vector2(t.x,t.y),l=new i.EditPoint(this.viewer,a,!0);l.uuid=this.editPointUuid++,this.editPoints.splice(r+1,0,l);let h=new i.EditEdge([o,l]);this.editEdges.splice(s,0,h);let c=new i.EditEdge([l,n]);this.editEdges.splice(s+1,0,c),this.onEditPointAddition()}getEditPointCounts(){return this.editPoints.length}makeEditEdges(){for(let e=0;e<this.editPoints.length;e++){let t=[];t.push(this.editPoints[e]);let o=e==this.editPoints.length-1?0:e+1;t.push(this.editPoints[o]);let n=new i.EditEdge(t);this.editEdges.push(n)}}mergeEditEdges(e,t){t=null==t?2:t;let o=this.editEdges[e],n=this.editEdges[(e+t-1)%this.editEdges.length],s=[];s.push(o.editPoints[0]),s.push(n.editPoints[1]);let r=new i.EditEdge(s);this.editEdges.splice(e,0,r),this.editEdges.splice(e+1,t)}makeBoundary(){let e=this.editPoints;this.boundary=new i.Boundary(e)}getEditPoints(){return this.editPoints}getEditEdges(){return this.editEdges}getBoundary(){return this.boundary}getEditHeight(){return this.editHeight}setEditRoomId(e){this.editRoomId=e}getRoomSectionPoints(){let t=new e.Bimface.Plugins.SpatialRelation.Room({viewer:this.viewer}).getRoomBoundingBoxById(this.editRoomId),i=t.min,o=t.max,n=[],s=(i.y+o.y)/2;n.push(new THREE.Vector3(i.x,s,this.roomHeightOffset.to)),n.push(new THREE.Vector3(i.x,s,this.roomHeightOffset.from)),n.push(new THREE.Vector3(o.x,s,this.roomHeightOffset.from)),n.push(new THREE.Vector3(o.x,s,this.roomHeightOffset.to));let r=[];for(const e of n)r.push(this.viewer.worldToClient(e));return this.roomHeightOnCanvas=r[1].y-r[0].y,r}updateRoomHeightOffset(e,t){let i=this.roomHeightOnCanvas,o=(this.roomHeightOffset.to-this.roomHeightOffset.from)/i,n=100;"m"===this.viewer._defaultUnit&&(n/=1e3),"up-segment"===e?(this.roomHeightOffset.to-=t.y*o,this.roomHeightOffset.to<this.roomHeightOffset.from+n&&(this.roomHeightOffset.to=this.roomHeightOffset.from+n)):(this.roomHeightOffset.from-=t.y*o,this.roomHeightOffset.from>this.roomHeightOffset.to-n&&(this.roomHeightOffset.from=this.roomHeightOffset.to-n))}getRoomHeightOffset(){return[this.roomHeightOffset.from,this.roomHeightOffset.to]}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing"));i.RoomView=class{constructor(e,i){t.send("Bimface.Plugins.RoomEditing","RoomView"),this.roomData=e,this.svgContainer=i,this.eventManager=null;let o=this;this.roomData.onEditPointDeletion=function(e){o.detachDrawables(),o.updateBoundary(),o.updateEditEdges(e),o.attachDrawables()},this.roomData.onEditPointAddition=function(){o.detachDrawables(),o.updateBoundary(),o.attachDrawables()}}setEventManager(e){this.eventManager=e}getEventManager(){return this.eventManager}getData(){return this.roomData}attachDrawables(){if(this.roomData.isEditHeightEnabled){let e=this.roomData.getEditHeight().getDrawables();for(const t of e)this.svgContainer.appendChild(t);return}let e=this.roomData.getBoundary().getSvgElement();this.svgContainer.appendChild(e);for(const e of this.roomData.getEditEdges())this.svgContainer.appendChild(e.getSvgElement());for(const e of this.roomData.getEditPoints())this.svgContainer.appendChild(e.getSvgElement())}detachDrawables(){let e=this.svgContainer.children;for(;e.length>0;){let t=e[0];this.svgContainer.removeChild(t)}}update(){if(this.roomData.isEditHeightEnabled){return this.roomData.getEditHeight().update(this.roomData.getRoomSectionPoints()),this.detachDrawables(),void this.attachDrawables()}for(const e of this.roomData.getEditPoints())e.update();for(const e of this.roomData.getEditEdges())e.update();this.roomData.getBoundary().update()}updateBoundary(){let e=this.roomData.getBoundary();e.setObserver(),e.update()}updateEditEdges(e){let t=this.roomData.getEditEdges().findIndex((t=>t.endWith(e)));this.roomData.mergeEditEdges(t,2)}addCloudViewerEvents(e){this.updateBinded=this.update.bind(this),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}removeCloudViewerEvents(e){e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}}}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing");t.PickEditor=class{constructor(e){this.roomView=e,this.roomData=e.getData(),this.snapEditPoint=null}begin(e){let t=new THREE.Vector3(e.x,e.y),i=this.snaping(t);this.snapEditPoint=i}onEditing(e){let t=new THREE.Vector3(e.x,e.y);if(null!=this.snapEditPoint)this.snapEditPoint.setClientPosition(t),this.snapEditPoint.update(!0),this.snapEditPoint.observer();else{let e=this.snaping(t);e?e.hightlight():this.cancelHightlight()}}end(e){this.snapEditPoint=null}snaping(e){for(const t of this.roomData.getEditPoints())if(t.distanceTo(e)<=5)return t;return null}cancelHightlight(){for(const e of this.roomData.getEditPoints())e.cancelHightlight()}}}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing");t.AdditionEditor=class{constructor(e){this.roomView=e,this.roomData=e.getData(),this.snapEditEdge=null,this.beginPoint=new THREE.Vector2,this.eventManager=this.roomView.getEventManager()}begin(e){this.beginPoint.set(e.x,e.y),this.snapEditEdge=this.snaping(this.beginPoint)}onEditing(e){let t=new THREE.Vector2(e.x,e.y);if(null==this.snapEditEdge){let e=this.snaping(t);e?(this.hideAllEdges(),e.show(),this.eventManager.fireEvent("RoomEditorAddEnter")):(this.hideAllEdges(),this.eventManager.fireEvent("RoomEditorAddExit"))}else this.eventManager.fireEvent("RoomEditorAddExit")}end(e){if(null==this.snapEditEdge)return;let t=new THREE.Vector2(e.x,e.y);if(!1===t.equals(this.beginPoint))return void(this.snapEditEdge=null);let i=this.snapEditEdge.editPoints[0].getClientPosition(),o=this.snapEditEdge.editPoints[1].getClientPosition();this.roomData.addEditPoint(this.snapEditEdge,Ro.nearestPointOnSegment(t,i,o)),this.snapEditEdge=null}hideAllEdges(){for(const e of this.roomData.getEditEdges())e.hide()}snaping(e){let t=null,i=Number.MAX_SAFE_INTEGER;for(const o of this.roomData.getEditEdges()){let n=o.editPoints[0].getClientPosition(),s=o.editPoints[1].getClientPosition(),r=Ro.distanceToSegment(e,n,s);r<i&&(i=r,t=o)}return i<=5?t:null}}}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing");t.DeletionEditor=class{constructor(e){this.roomView=e,this.roomData=e.getData(),this.snapEditPoint=null,this.beginPoint=new THREE.Vector2,this.eventManager=this.roomView.getEventManager()}begin(e){this.beginPoint.set(e.x,e.y),this.snapEditPoint=this.snaping(this.beginPoint)}onEditing(e){let t=new THREE.Vector3(e.x,e.y);if(null==this.snapEditPoint){let e=this.snaping(t);e?(e.hightlight(),this.eventManager.fireEvent("RoomEditorDeleteEnter")):(this.cancelHightlight(),this.eventManager.fireEvent("RoomEditorDeleteExit"))}else this.eventManager.fireEvent("RoomEditorDeleteExit")}end(e){if(null==this.snapEditPoint)return;if(!1!==new THREE.Vector2(e.x,e.y).equals(this.beginPoint)){if(this.roomData.getEditPointCounts()<=3)return this.eventManager.fireEvent("DeletionError"),void(this.snapEditPoint=null);this.roomData.deleteEditPoint(this.snapEditPoint),this.snapEditPoint=null}else this.snapEditPoint=null}snaping(e){for(const t of this.roomData.getEditPoints())if(t.distanceTo(e)<=5)return t;return null}cancelHightlight(){for(const e of this.roomData.getEditPoints())e.cancelHightlight()}}}();class Fo{constructor(e){this.roomView=e,this.roomData=e.getData(),this.snapSegmentId=null,this.lastPoint=new THREE.Vector2,this.beginPoint=new THREE.Vector2}begin(e){this.beginPoint.set(e.x,e.y),this.snapSegmentId=this.snaping(this.beginPoint),this.lastPoint.set(e.x,e.y)}onEditing(e){let t=new THREE.Vector2(e.x,e.y),i=this.roomData.getEditHeight();if(null==this.snapSegmentId){let e=this.snaping(t);e?i.highlight(e):i.cancelHighlight()}else{let e=t.clone().sub(this.lastPoint);this.roomData.updateRoomHeightOffset(this.snapSegmentId,e),this.roomView.update(),i.highlight(this.snapSegmentId),this.lastPoint.set(t.x,t.y)}}end(e){if(null==this.snapSegmentId)return;new THREE.Vector2(e.x,e.y).equals(this.beginPoint),this.snapSegmentId=null}snaping(e){return this.roomData.getEditHeight().hitTest(e)}cancelHightlight(){this.roomData.getEditHeight().cancelHightlight()}}!function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing");o.RoomEditor=class{constructor(e){t.send("Bimface.Plugins.RoomEditing","RoomEditor"),this.bIsOnEditing=!1,this.viewer=e.viewer,this.lastAnimationState=null,this.restoreCameraStatus=null,this.roomInfo=this.viewer.mapCustomizedRoom[e.roomId],this.roomId=e.roomId,this.restoreStates={camera:null,sectionPlane:null},this.mapUIVisibility={"bf-tree-toolbar":"none","bf-modelTree-panel":"none","bf-toolbar-bottom":"none","bf-property-panel":"none","bf-measurement-panel":"none","bf-sectionPlane-panel":"none","bf-pickSectionPlane-panel":"none","bf-sectionBox-panel":"none","bf-settings-panel":"none","bf-basicInfo-panel":"none","bf-map-panel":"none"},this.initialize(),this.scratchVector=new THREE.Vector3,this.scratchVector_1=new THREE.Vector3}initialize(){this.domContainer=i.create("div","bf-RoomEditor-conext"),this.domContainer.style.position="absolute",this.domContainer.style.left=0,this.domContainer.style.top=0,this.domContainer.style.width="100%",this.domContainer.style.height="100%",this.svgContainer=i.createNS("svg","bf-RoomEditor-svg"),this.svgContainer.style.width="100%",this.svgContainer.style.height="100%",this.domContainer.appendChild(this.svgContainer),this.viewer.getDomElement().appendChild(this.domContainer),this.addDomEventListeners(),this.offset=this.viewer.getDomElement().getBoundingClientRect();let t=this.viewer.getEventManager(),n=new e.Bimface.Plugins.SpatialRelation.Room({viewer:this.viewer,hasInitialized:!0}).getBoundaryByRoomId(this.roomId);const s=(new THREE.Matrix4).fromArray(this.viewer.getDefaultModel().getModelTransformation());for(let e=0;e<n.length;e++){let t=(new THREE.Vector3).fromArray(n[e]);t.applyMatrix4(s),n[e]=t.toArray()}this.roomData=new o.RoomData(this.viewer,n),this.roomData.setEditRoomId(this.roomId),this.roomView=new o.RoomView(this.roomData,this.svgContainer),this.roomView.setEventManager(t),this.activeEditor=new o.PickEditor(this.roomView)}onEnter(){let t=this.viewer.getViewer();this.bIsOnEditing=!0,this.restoreCameraStatus=this.viewer.getCameraStatus(),this.lastAnimationState=this.viewer.getCameraAnimation(),this.recordUIVisibility(),this.viewer.setCameraAnimation(!0);let i=this;this.viewer.setView(e.Bimface.Viewer.ViewOption.Top,(()=>{i.viewHouseVisibility=i.viewer._getViewHouseVisibility(),i.viewHouseVisibility&&i.viewer.hideViewHouse(),i.viewer._enableCursor(!1),t.getFilter().deactivateAll(),i.viewer._enableSelectionChanged(!1),i.viewer.setCameraAnimation(!1),i.viewer.setCameraType("OrthographicCamera"),i.viewer.enableOrbit(!1),i.viewer.hideRoomsById([this.roomId]),i.roomData.build(),i.roomView.attachDrawables(),i.roomView.addCloudViewerEvents(t),i.viewer.render()}))}recordUIVisibility(){let e=Object.keys(this.mapUIVisibility);for(const t of e){let e=document.getElementsByClassName(t);e.length>0&&(this.mapUIVisibility[t]=e[0].style.display)}}save(){let e=this.roomInfo.boundary.offsetZ,t=(this.roomInfo.offset,[]),i=[];const o=(new THREE.Matrix4).fromArray(this.viewer.getDefaultModel().getModelTransformation()),n=(new THREE.Matrix4).copy(o).invert();for(const o of this.roomData.getEditPoints()){let s=o.getWorldPosition();s[2]=e;let r=(new THREE.Vector3).fromArray(s);r.applyMatrix4(n),s=r.toArray(),t.push(s),i.push({x:s[0],y:s[1],z:e})}let s=this.viewer.createBoundary(t),r=this.roomData.getRoomHeightOffset();return{boundary:s,outerBoundary:i,height:r[1]-r[0],id:this.roomId}}checkIntersect(){let t=new THREE.Vector3,i=new THREE.Vector3(10,10),o=[];o.push(t,new THREE.Vector3(10,0),i,new THREE.Vector3(0,10));new e.Bimface.Plugins.Geometry.PlaneBufferGeometry(o);let n=[];for(const e of this.roomData.getEditPoints()){let t=e.getWorldPosition(),i=new THREE.Vector2(t[0],t[1]);n.push(i)}return e.Bimface.Plugins.Geometry.PlaneBufferGeometry.checkIntersect(n)}onExit(t){let i=this.viewer.getViewer();if(this.roomView.removeCloudViewerEvents(i),this.removeDomEventListeners(),this.roomView.detachDrawables(),this.bIsOnEditing=!1,this.viewHouseVisibility&&this.viewer.showViewHouse(),this.viewer._enableCursor(!0),this.viewer.setCameraAnimation(this.lastAnimationState),i.getFilter().activateAll(),this.viewer._enableSelectionChanged(!0),this.viewer.enableOrbit(!0),!0!==t){let t=this.save(),i=this.roomInfo.faceColor,o=this.roomInfo.frameColor;this.viewer.createRoom(t.boundary,t.height,t.id,i,o);let n=this.roomData.getRoomHeightOffset(),s=new e.Bimface.Plugins.SpatialRelation.Room({viewer:this.viewer});s.setBottomHeightByRoomId(this.roomId,n[0]),s.setTopHeightByRoomId(this.roomId,n[1])}else this.viewer.showRoomsById([this.roomId]);this.viewer.setCameraType("PerspectiveCamera");let o=this.viewer._sectionPlane;if(o){o.setPlane("Z"),o.setDirection("Forward");let e=this.roomData.getRoomHeightOffset(),t=this.viewer.getViewer().getBoundingBoxWorld(),i=this.viewer.getViewer().getScene().getExpandScalar(),n=(new THREE.Box3).setFromCenterAndSize(t.getCenter(this.scratchVector),t.getSize(this.scratchVector_1).multiplyScalar(i)),s=n.min.z,r=n.max.z,a=10;"m"===this.viewer._defaultUnit&&(a/=1e3);let l=this._calcSectionPlaneProgress(s,r,e[1]+a);o.setProgress(l)}this.isInHeightEditor=!1;let n=this;this.viewer.setCameraStatus(this.restoreCameraStatus,(function(){n.viewer.render()}))}makeSectionPlane(){let t=new e.Bimface.Plugins.SpatialRelation.Room({viewer:this.viewer}).getRoomBoundingBoxById(this.roomId),i=(t.min.y+t.max.y)/2,o=this.viewer.getViewer().getBoundingBoxWorld(),n=this._calcSectionPlaneProgress(o.min.y,o.max.y,i),s=this.viewer._sectionPlane;s&&(s.setPlane("Y"),s.setDirection("Reverse"),s.setProgress(n))}_calcSectionPlaneProgress(e,t,i){return 100-(i-e)/(t-e)*100}destroySectionPlane(){this.sectionPlane.exit(),this.sectionPlane=null}getIsOnEditing(){return this.bIsOnEditing}setBimfaceUIVisibility(e){let t=Object.keys(this.mapUIVisibility);for(const i of t){let t=document.getElementsByClassName(i);0!=t.length&&(t[0].style.display=0==e?"none":this.mapUIVisibility[i])}}addDomEventListeners(){this.onMouseDownBinded=this.onMouseDown.bind(this),this.onMouseMoveBinded=this.onMouseMove.bind(this),this.onMouseUpBinded=this.onMouseUp.bind(this),this.onMouseDoubleClickBinded=this.onMouseDoubleClick.bind(this),this.onWindowResizeBinded=this.onWindowResize.bind(this);let e=this.svgContainer;e.addEventListener("mousemove",this.onMouseMoveBinded,!1),e.addEventListener("mousedown",this.onMouseDownBinded,!1),document.addEventListener("mouseup",this.onMouseUpBinded,!1),e.addEventListener("dblclick",this.onMouseDoubleClickBinded,!1),window.addEventListener("resize",this.onWindowResizeBinded,!1)}removeDomEventListeners(){let e=this.svgContainer;e.removeEventListener("mousemove",this.onMouseMoveBinded),e.removeEventListener("mousedown",this.onMouseDownBinded),document.removeEventListener("mouseup",this.onMouseUpBinded),e.removeEventListener("dblclick",this.onMouseDoubleClickBinded),window.removeEventListener("resize",this.onWindowResizeBinded)}destroySvgContainer(){this.roomView.detachDrawables(),this.domContainer.removeChild(this.svgContainer),this.svgContainer=null,this.viewer.getDomElement().removeChild(this.domContainer),this.domContainer=null}activateEditor(e){switch(e){case"Pick":this.roomData.isEditHeightEnabled=!1,this.activeEditor=new o.PickEditor(this.roomView),this._activateFromHeightEditor();break;case"Add":this.roomData.isEditHeightEnabled=!1,this.activeEditor=new o.AdditionEditor(this.roomView),this._activateFromHeightEditor();break;case"Delete":this.roomData.isEditHeightEnabled=!1,this.activeEditor=new o.DeletionEditor(this.roomView),this._activateFromHeightEditor();break;case"Height":this.roomData.isEditHeightEnabled=!0,this._activateHeightEditor(),this.activeEditor=new Fo(this.roomView)}}_activateFromHeightEditor(){if(!this.isInHeightEditor)return;let e=this.viewer.getCameraAnimation();this.viewer.setCameraAnimation(!1),this.viewer.setCameraStatus(this.restoreCameraStatus2,(()=>requestAnimationFrame((()=>{let t=this.viewer._sectionPlane;t&&(t.setPlane("Z"),t.setDirection("Forward"),t.setProgress(this.restoreSectionPlaneProgress)),this.roomView.detachDrawables(),this.roomView.attachDrawables(),this.viewer.render(),this.viewer.setCameraAnimation(e),this.roomView.update()})))),this.isInHeightEditor=!1}_activateHeightEditor(){this.isInHeightEditor=!0,this.restoreCameraStatus2=this.viewer.getCameraStatus(),this.viewer._sectionPlane&&(this.restoreSectionPlaneProgress=this.viewer._sectionPlane.getProgress()),this.makeSectionPlane();let t=this.viewer,i=this.roomView,o=this.viewer.getCameraAnimation();this.viewer.setCameraAnimation(!1),t.setView(e.Bimface.Viewer.ViewOption.South,(()=>{let n=new e.Bimface.Plugins.SpatialRelation.Room({viewer:t}).getRoomBoundingBoxById(this.roomId);t.zoomToBoundingBox(n,(function(){})),t.setCameraType("OrthographicCamera"),i.getData().build(),i.update(),this.viewer.setCameraAnimation(o)}))}activateByRoomId(t){this.isInHeightEditor=!1,this.roomId=t,this.roomInfo=this.viewer.mapCustomizedRoom[t];let i=new e.Bimface.Plugins.SpatialRelation.Room({viewer:this.viewer,hasInitialized:!0}).getBoundaryByRoomId(t);this.roomData=new o.RoomData(this.viewer,i),this.roomData.setEditRoomId(t),this.roomView=new o.RoomView(this.roomData,this.svgContainer),this.roomView.setEventManager(this.viewer.getEventManager()),this.viewer.enableOrbit(!1),this.viewer._enableCursor(!1),this.activateEditor("Pick"),this.addDomEventListeners()}onMouseDown(e){if(e.button===THREE.MOUSE.LEFT){let t={x:e.clientX-this.offset.left,y:e.clientY-this.offset.top};this.activeEditor.begin(t)}}onMouseMove(e){let t={x:e.clientX-this.offset.left,y:e.clientY-this.offset.top};this.activeEditor.onEditing(t)}onMouseUp(e){if(e.button===THREE.MOUSE.LEFT){let t={x:e.clientX-this.offset.left,y:e.clientY-this.offset.top};this.activeEditor.end(t),e.preventDefault(),e.stopPropagation()}}onMouseDoubleClick(e){e.preventDefault(),e.stopPropagation()}onWindowResize(){this.roomView.update()}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RoomEditing").RoomEidtorConfig=function(){return{viewer:null,roomId:null}},function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RevitHelpers"));i.DrawingHelper=class{constructor(e){t.send("Bimface.Plugins.RevitHelpers","DrawingHelper"),this.viewer3D=e.viewer,this.databagId=e.viewer._data.databagId,this.dataViews=null,this.integrateDataViews={},this.drawingViews=[],this.drawingIds=[],this.drawingList=[],this.integrateDrawingList={},this._config=e,this.mapDrawingVisibility={},this.mapDrawingObject={},this.supportViewTypeMap={FloorPlan:!0,Elevation:!0,Section:!0};let i=e.viewer.getViewer().getScene();this.customPlaneManager=CLOUD.CustomPlaneManager.getInstance(i),this.initialize()}initialize(){let e=this;"integrateModel"==this.viewer3D._data.modelType&&null!=this.viewer3D._data.integrateDrawings?e._config.viewer.getLinksJson((function(t){t&&e.formatLinksData(t)})):"singleModel"==this.viewer3D._data.modelType&&this.getViews((function(t){let o=JSON.parse(t).viewList;for(let t=0;t<o.length;t++){const s=o[t];if(s.preview.path&&e.supportViewTypeMap[s.viewType]){e.drawingIds.push(s.id);var n=i.DrawingView.toObject(s.viewPoint);n.origin.z+=s.elevation,e.drawingList.push({id:s.id,name:s.name,viewPort:n}),e.drawingViews.push(s)}}}))}createDrawingView(){return new i.DrawingView(this.viewer3D,this.drawingViews)}formatLinksData(e){let t={},i=(e,n)=>{for(let s=0;s<e.length;s++){let r,a=e[s],{linkTransform:l,fileId:h,name:c,links:d}=a;l.indexOf("]")>0?r=o(l,h,c,n):t[h]?t[h]instanceof Array?t[h].push(n):t[h]=[n,t[h]]:t[h]=n,d.length>0&&i(d,r)}},o=(e,i,o,n)=>{let s=new THREE.Matrix4;return e&&s.set.apply(s,JSON.parse(e)),s.transpose(),n&&s.premultiply(n),t[i]?t[i]instanceof Array?t[i].push(s):t[i]=[s,t[i]]:t[i]=s,s};for(let t=0;t<e.length;t++){let n,s=e[t],{linkTransform:r,fileId:a,name:l,links:h}=s;n=r.indexOf("]")>0?o(r,a,l):new THREE.Matrix4,h.length>0&&i(h,n)}this.transforms=t}getViews(e){if(this.dataViews)return void(e&&e(this.dataViews));let t=this;this.viewer3D.getDefaultModel()._getMetaDataManager().dataManager.getViews((function(i){t.dataViews=i,e&&e(i.data)}))}getViewsById(e,t){if(this.integrateDrawingList[e])return void(t&&t(this.integrateDrawingList[e]));let o=this;this.viewer3D.getDefaultModel()._getMetaDataManager().dataManager.getViewsById(e,(function(n){if(!n.data)return t&&t([]);o.integrateDataViews[e]=n,o.integrateDataViews.resourceHost=n.resourceHost;let s=JSON.parse(n.data).viewList,r=[];for(let e=0;e<s.length;e++){const t=s[e];if(t.preview.path&&o.supportViewTypeMap[t.viewType]){o.drawingIds.push(t.id);var a=i.DrawingView.toObject(t.viewPoint);a.origin.z+=t.elevation;var l={id:t.id,name:t.name,viewPort:a};r.push(l),o.drawingViews.push(t)}}o.drawingList=o.drawingList.concat(r),o.integrateDrawingList[e]=r,t&&t(r)}))}isInclude(e){return this.drawingIds.indexOf(e)>=0}getDrawingList(e,t){if(!e)return this.drawingList;this.getViewsById(e,(function(e){t&&t(e)}))}addDrawingsById(e,t,i){let o=this,n=0;for(let s=0;s<e.length;s++){const r=e[s];if(this.isInclude(r)){this.mapDrawingObject.hasOwnProperty(r)&&(this.removeDrawingsById([r]),console.warn("Duplicate id."));let s=this.createDrawingView();s.activeViewById(r);let a=this.drawingIds.indexOf(r),l=this.drawingViews[a],h=(this.dataViews||this.integrateDataViews).resourceHost+"/"+o.databagId+"/"+l.preview.path;if(null==l.preview.path)return void console.warn("No thumbnail in databag.");if(++n,l.id.indexOf(".")>0){let o=l.id.split(".")[0];if(this.transforms&&this.transforms[o])if(this.transforms[o].slice)for(let s=0,a=this.transforms[o];s<a.length;s++){let o=this.createDrawingView();o.activeViewById(r),o.setLinkFileTranslation(a[s]);let l=o.getOutline3D();this.addPlane(l,t,h,e,n,r,i,s+1==a.length,o)}else{s.setLinkFileTranslation(this.transforms[o]);let a=s.getOutline3D();this.addPlane(a,t,h,e,n,r,i,!0,s)}else{let o=s.getOutline3D();this.addPlane(o,t,h,e,n,r,i,!0,s)}}else{let a=s.getOutline3D();this.addPlane(a,t,h,e,n,r,(function(){o.viewer3D.render(),i&&i()}),!0,s)}}}}addPlane(e,t,i,o,n,s,r,a,l){let h=this;this.customPlaneManager.addPlane(e.min,e.max,i,(function(e){h.mapDrawingObject[s]||(h.mapDrawingObject[s]=[]),"number"!=typeof t&&(t=0),l.update(e,t),l=null,h.mapDrawingObject[s].push(e),a&&n==o.length&&r&&r()}))}clearDrawings(){let e=this.drawingIds;this.removeDrawingsById(e)}hideAllDrawings(){let e=this.drawingIds;this.hideDrawingsById(e)}hideDrawingsById(e){for(let t=0;t<e.length;t++){const i=e[t];if(this.isInclude(i)&&this.mapDrawingObject[i]){let e=this;this.mapDrawingObject[i].forEach((function(t){e.customPlaneManager.hidePlane(t)}))}}this.viewer3D.render()}removeDrawingsById(e){for(let t=0;t<e.length;t++){const i=e[t];if(this.isInclude(i)&&this.mapDrawingObject[i]){let e=this;this.mapDrawingObject[i].forEach((function(t){e.customPlaneManager.removePlane(t)})),delete this.mapDrawingObject[i]}}this.viewer3D.render()}setDrawingsOpacityById(e,t){for(let i=0;i<e.length;i++){const o=e[i];if(this.isInclude(o)&&this.mapDrawingObject[o]){let e=this;this.mapDrawingObject[o].forEach((function(i){e.customPlaneManager.setPlaneOpacity(i,t)}))}}this.viewer3D.render()}showAllDrawings(){let e=this.drawingIds;this.showDrawingsById(e)}showDrawingsById(e){for(let t=0;t<e.length;t++){const i=e[t];if(this.isInclude(i)&&this.mapDrawingObject[i]){let e=this;this.mapDrawingObject[i].forEach((function(t){e.customPlaneManager.showPlane(t)}))}}this.viewer3D.render()}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RevitHelpers").DrawingHelperConfig=function(){return{viewer:null}};class To{constructor(e,t,i,o){this.viewer3D=e,this.objectType=t,this.name="Editor",this._eventManager=i,this.isEditing=!1,"ExternalObject"===t&&"Viewer3D"===this.viewer3D.viewerType&&(this.externalObjectManager=new Glodon.Bimface.Plugins.ExternalObject.ExternalObjectManager(e))}begin(e){this.isEditing=!0;let t=this.getCanvasPosition(new THREE.Vector2(e.clientX,e.clientY));this.mouseDownPoint=t.clone(),this.hitItem=this.hitTest(t),this.hitItem&&"Model"===this.objectType&&this._fireModelEvent("ModelTransformStart")}onEditing(e){}end(e){this.hitItem&&"Model"===this.objectType&&this._fireModelEvent("ModelTransformEnd"),this.isEditing=!1}hitTest(e){let t=[...this.dataDrawables.getAllDrawables()].reverse();for(const i of t){let t=i.hitTest(e);if(t)return t}return null}getCanvasPosition(e){let t=this.viewer3D.getDomElement().getBoundingClientRect(),i=new THREE.Vector3(e.x,e.y);return i.x-=t.left,i.y-=t.top,i}setEditedObjectId(e){if(this.editedObjectId=e,this.viewer3D instanceof Glodon.Bimface.Viewer.ViewerGIS){const t=this.viewer3D.getLayerManager().getLayerByType("ExternalObjectLayer");for(let i=0;i<t.length;i++){const o=t[i].getExternalObjectManager();if(o.getAllObjectIds().includes(e)){this.externalObjectManager=o;break}}}}getEditedObjectId(){return this.editedObjectId}setDrawables(e){this.dataDrawables=e}getDrawables(){return this.dataDrawables}getBoundingBoxWorld(){if("ExternalObject"===this.objectType)return this.viewer3D.getExternalComponentManager().getBoundingBoxById(this.editedObjectId);return this.viewer3D.getViewer().getModelManager().getModel(this.editedObjectId).getBoundingBoxWorld()}_fireModelEvent(e){const t=this.viewer3D.getModel(this.editedObjectId),i=this._eventManager;let o={modelId:this.editedObjectId,transformation:t.getModelTransformation()};i.fireEvent(e,o)}updateController(e){}}class Po extends To{constructor(e,t,i,o){super(e,t,i,o),this.dataDrawables=null,this.isMouseDown=!1,this.mouseDownPoint=null,this.hitItem=null,this.lastHoveredItem=null,this.name="Translation",this.translationController=o,this._center=new THREE.Vector3}begin(e){super.begin(e),this.hitItem&&(e.preventDefault(),e.stopPropagation())}onEditing(e){let t=this.getCanvasPosition(new THREE.Vector2(e.clientX,e.clientY)),i=this.viewer3D.getViewer();if(this.getBoundingBoxWorld().getCenter(this._center),this.hitItem){let o,n,s=this.dataDrawables.getRotationMatrix(),r=this.viewer3D.sceneToWorld(i.camera.position.clone()),a=t.clone().sub(this.mouseDownPoint),l=e.clientX,h=e.clientY,c=i.cameraControl.getRaycaster(l,h),d=this.viewer3D.sceneToWorld(c.ray.direction).normalize();if(this.hitItem.isArrow()){if(0==a.length())return;let e;switch(this.hitItem.id){case"arrowX":if(!this.translationController.X)return;e=new THREE.Vector3(1,0,0).applyMatrix4(s).normalize();break;case"arrowY":if(!this.translationController.Y)return;e=new THREE.Vector3(0,-1,0).applyMatrix4(s).normalize();break;case"arrowZ":if(!this.translationController.Z)return;e=new THREE.Vector3(0,0,1).applyMatrix4(s).normalize()}o=new THREE.Ray(this._center.clone(),e);let t=d.clone().cross(d.clone().cross(e));n=new THREE.Plane(t);let i=-n.distanceToPoint(r);n.set(t,i),o.intersectsPlane(n)||o.set(o.origin.clone(),e.clone().negate())}else{if(0==a.length()||!this.checkTranslateEN(this.hitItem))return;let e;switch(this.hitItem.id){case"xy":e=new THREE.Vector3(0,0,-1);break;case"xz":e=new THREE.Vector3(0,1,0);break;case"yz":e=new THREE.Vector3(-1,0,0)}e.applyMatrix4(s).normalize(),n=new THREE.Plane(e);let t=-n.distanceToPoint(this._center);if(n.set(e,t),o=new THREE.Ray(r,d),!o.intersectsPlane(n))return}let g=new THREE.Vector3;o.intersectPlane(n,g),this.mouseDownOffset=this.mouseDownOffset||g.clone().sub(this._center);let u=g.clone().sub(this._center).sub(this.mouseDownOffset);this.setObjectTranslation(u),this.dataDrawables.update(),this.dataDrawables.setGray(),this.hitItem.select(),this.hitItem.magnify(),this.dataDrawables.hideAll(),this.hitItem.show(),this.mouseDownPoint.copy(t),e.preventDefault(),e.stopPropagation()}else{let e=this.hitTest(t);e?this.checkTranslateEN(e)&&(this.dataDrawables.setGray(),e.magnify(),e.select(),this.lastHoveredItem=e):(this.dataDrawables.setDefault(),this.lastHoveredItem&&this.lastHoveredItem.resetSize(),this.lastHoveredItem=null)}}end(e){super.end(e),this.hitItem&&(e.preventDefault(),e.stopPropagation(),this.dataDrawables.showAll(),this.hitItem=null),this.mouseDownOffset=null}setObjectTranslation(e){const t=this.objectType;if("ExternalObject"===t)this.externalObjectManager.translate(this.editedObjectId,e);else if("Model"===t){this.viewer3D.getModel(this.editedObjectId).setModelTranslation(e),this._fireModelEvent("ModelTransforming")}}updateController(e){null!=e.X&&(this.translationController.X=e.X),null!=e.Y&&(this.translationController.Y=e.Y),null!=e.Z&&(this.translationController.Z=e.Z)}checkTranslateEN(e){let t=!0,i=e.id;return e.isArrow()?("arrowY"!==i||this.translationController.Y||(t=!1),"arrowZ"!==i||this.translationController.Z||(t=!1),"arrowX"!==i||this.translationController.X||(t=!1)):("xz"!==i||this.translationController.X&&this.translationController.Z||(t=!1),"xy"!==i||this.translationController.X&&this.translationController.Y||(t=!1),"yz"!==i||this.translationController.Y&&this.translationController.Z||(t=!1)),t}}class Lo{constructor(){}}Lo.discreteCircle=function(e){let t=e.center.clone(),i=t.clone().distanceTo(e.arcStartPt),o=e.normal.clone(),n=e.arcStartPt.clone().sub(t).normalize(),s=[],r=e.rotateAngle/(Math.PI/180);for(let e=0;e<r;e++){n.applyAxisAngle(o,Math.PI/180);let e=t.clone().add(n.clone().multiplyScalar(i));s.push(e)}return e.rotateAngle==2*Math.PI&&s.push(s[0]),s},Lo.drawingToCanvas=function(e,t){let i=this.getCoordinateAxis().start.clone(),o=this.cameraControl.camera,n=new THREE.Vector3;if(null==this.cameraToCenter){let e=this.viewer.getCamera(),t=this.viewer.getScene().getBoundingBox();o.setStandardView(CLOUD.EnumStandardView.ISO,t),o.zoomToBBox(t),i=this.getCoordinateAxis().start.clone(),this.cameraToCenter=i.clone().sub(o.position.clone()).length();let n=this.viewer.getScene().getMatrixGlobal(),s=CLOUD.CameraUtil.parseCameraInfo(e),r=CLOUD.Camera.worldToDrawing(s,n),a=new THREE.Vector3;a.subVectors(r.target,r.position),o.LookAt(r.target,a,r.up),this.cameraControl.update(!0,!0)}else{let e=i.clone().sub(o.position.clone()).normalize(),t=o.position.clone().sub(i.clone()).length();n=e.multiplyScalar(this.cameraToCenter-t)}let s=this.container.offsetWidth,r=this.container.offsetHeight;!1!==t&&o.isPerspective&&e.add(n);let a=CLOUD.CameraUtil.drawingToCanvas(o,e,s,r);return new THREE.Vector2(a.x,a.y)},Lo.minDistanceToPoints=function(e,t,i){let o=-1,n=Number.POSITIVE_INFINITY;for(let a=0;a<i;a++){let i=(s=e,((r=t[a]).x-s.x)**2+(r.y-s.y)**2);i<n&&(n=i,o=a)}var s,r;return o},Lo.computeSegmentsIntersect=function(e,t,i,o){var n=(e.x-i.x)*(t.y-i.y)-(e.y-i.y)*(t.x-i.x),s=(e.x-o.x)*(t.y-o.y)-(e.y-o.y)*(t.x-o.x);if(n*s>0)return!1;var r=(i.x-e.x)*(o.y-e.y)-(i.y-e.y)*(o.x-e.x);if(r*((i.x-t.x)*(o.y-t.y)-(i.y-t.y)*(o.x-t.x))>0)return!1;var a=r/(s-n),l=a*(t.x-e.x),h=a*(t.y-e.y);return{x:e.x+l,y:e.y+h}};class Ko extends To{constructor(e,t,i,o){super(e,t,i,o),this.dataDrawables=null,this.isMouseDown=!1,this.mouseDownPoint=null,this.hitItem=null,this.rotateAngle=0,this.lastHoveredItem=null,this.name="Rotation",this.rotationController=o}begin(e){if(super.begin(e),this.hitItem){let t=this.getCanvasPosition(new THREE.Vector2(e.clientX,e.clientY)),i=this.hitItem.getId(),o=this.dataDrawables.quarterRings.getFullRingPts(i);this.lastHitIndex=Lo.minDistanceToPoints(t,o,90),this.firstHitIndex=this.lastHitIndex,e.preventDefault(),e.stopPropagation()}}onEditing(e){let t=this.getCanvasPosition(new THREE.Vector2(e.clientX,e.clientY));if(this.hitItem){let i=this.hitItem.getId();if(!this.checkRotationEN(i))return;this.dataDrawables.isOnQuarterRing&&this.dataDrawables.toFullRing(i),this.dataDrawables.hideAll(),this.hitItem.show();let o=this.dataDrawables.quarterRings.getFullRingPts(i),n=Lo.minDistanceToPoints(t,o,360),s=(n-this.lastHitIndex)*(Math.PI/180);if(this.rotateAngle+=s/(Math.PI/180),0===s)return;this.dataDrawables.updateRotationTips(i,this.firstHitIndex,n,this.rotateAngle),this.lastHitIndex=n,this.setRotation(s),this.dataDrawables.updateBoundingBox(),this.viewer3D.render(),this.mouseDownPoint.copy(t),e.preventDefault(),e.stopPropagation()}else{let e=this.hitTest(t);e?this.checkRotationEN(e.getId())&&(this.dataDrawables.setGray(),e.magnify(),e.select(),this.lastHoveredItem=e):(this.dataDrawables.setRotationEN(),this.lastHoveredItem&&this.lastHoveredItem.resetSize(),this.lastHoveredItem=null)}}end(e){super.end(e),this.hitItem&&(e.preventDefault(),e.stopPropagation(),this.dataDrawables.isOnQuarterRing||(this.dataDrawables.fromFullRing(this.hitItem.getId()),this.dataDrawables.removeRotationTips()),this.rotateAngle=0,this.dataDrawables.showAll(),this.hitItem=null)}setRotation(e){const t=this.objectType,i=this.hitItem.getId(),o=this.dataDrawables.getEditObjectCenter();if("ExternalObject"===t){if("xy"===i){if(!this.rotationController.Z)return;this.externalObjectManager.setRotationZ(this.editedObjectId,o,e)}if("xz"===i){if(!this.rotationController.Y)return;this.externalObjectManager.setRotationY(this.editedObjectId,o,-e)}if("yz"===i){if(!this.rotationController.X)return;this.externalObjectManager.setRotationX(this.editedObjectId,o,e)}}else if("Model"==t){const t=this.viewer3D.getModel(this.editedObjectId);if("xy"===i){if(!this.rotationController.Z)return;t.setModelRotationZ(o,e)}if("xz"===i){if(!this.rotationController.Y)return;t.setModelRotationY(o,-e)}if("yz"===i){if(!this.rotationController.X)return;t.setModelRotationX(o,e)}this._fireModelEvent("ModelTransforming")}}updateController(e){null!=e.X&&(this.rotationController.X=e.X),null!=e.Y&&(this.rotationController.Y=e.Y),null!=e.Z&&(this.rotationController.Z=e.Z)}checkRotationEN(e){let t=!0;return"xz"!==e||this.rotationController.Y||(t=!1),"xy"!==e||this.rotationController.Z||(t=!1),"yz"!==e||this.rotationController.X||(t=!1),t}}class Go extends To{constructor(e,t,i,o){super(e,t,i,o),this.dataDrawables=null,this.isMouseDown=!1,this.mouseDownPoint=null,this.hitItem=null,this.lastHoveredItem=null,this.name="Scaling",this.scaleController=o,this.windowHight=this.viewer3D.getDomElement().getBoundingClientRect().height}begin(e){super.begin(e),this.hitItem&&(e.preventDefault(),e.stopPropagation())}onEditing(e){let t=this.getCanvasPosition(new THREE.Vector2(e.clientX,e.clientY));if(this.hitItem){let i=t.clone().sub(this.mouseDownPoint);if(0==i.length())return;let o=i.clone().projectOnVector(this.hitItem.getDirection()),n=i.clone().angleTo(this.hitItem.getDirection())<=Math.PI/2?1:-1,s=o.length();if(!this.checkScalerEnable(this.hitItem.id))return;let r=this.dataDrawables.getDirection(this.hitItem.id),a=1+n*(s/this.windowHight);r.multiplyScalar(a),0===r.x&&(r.x=1),0===r.y&&(r.y=1),0===r.z&&(r.z=1);let l=this.dataDrawables.getOppositeSideCenter(this.hitItem.id);this.setObjectScale(l,r),this.dataDrawables.update(this.hitItem.id),this.dataDrawables.hideAll(),this.hitItem.show(),this.hitItem.magnify(),this.mouseDownPoint.copy(t),e.preventDefault(),e.stopPropagation()}else{let e=this.hitTest(t);e?this.checkScalerEnable(e.id)&&(this.dataDrawables.update(e.id),this.dataDrawables.setGray(),e.magnify(),e.select(),this.lastHoveredItem=e):(this.dataDrawables.setDefault(),this.lastHoveredItem&&this.lastHoveredItem.resetSize(),this.dataDrawables.updateHighlightBBoxFace(),this.lastHoveredItem=null)}}end(e){super.end(e),this.hitItem&&(e.preventDefault(),e.stopPropagation(),this.dataDrawables.showAll(),this.hitItem=null)}setObjectScale(e,t){const i=this.objectType;"ExternalObject"===i?this.externalObjectManager.scaleOnBasePoint(this.getEditedObjectId(),e,t):"Model"===i&&(this.viewer3D.getModel(this.getEditedObjectId()).setModelScale(e,t),this._fireModelEvent("ModelTransforming"))}updateController(e){null!=e.X&&(this.scaleController.X=e.X),null!=e.Y&&(this.scaleController.Y=e.Y),null!=e.Z&&(this.scaleController.Z=e.Z),null!=e.Uniform&&(this.scaleController.Uniform=e.Uniform)}checkScalerEnable(e){let t=!0;switch(e){case"CoordOrigin":this.scaleController.Uniform||(t=!1);break;case"x+":case"x-":this.scaleController.X||(t=!1);break;case"y+":case"y-":this.scaleController.Y||(t=!1);break;case"z+":case"z-":this.scaleController.Z||(t=!1)}return t}}class qo extends Vo{constructor(e){super(),this.config=e,this.colors=["#FF2905","#1922FB","#32D3A6"]}update(e){if(this.drawables.length>0){let t=0;for(const i of this.drawables)i.update(e.slice(5*t,5*(t+1))),t++;return}let t=["xy","xz","yz"];for(let i=0;i<3;i++){let o=new Ho({id:t[i]});o.update(e.slice(5*i,5*(i+1))),this.drawables.push(o)}}hitTest(e){for(const t of this.drawables){let i=new THREE.Vector2(e.x,e.y),o=t.hitTest(i);if(o)return o}return null}setGray(){for(const e of this.drawables)e.setGray()}setDefault(){for(const e of this.drawables)e.setDefault()}hide(){for(const e of this.drawables)e.hide()}show(){for(const e of this.drawables)e.show()}}class Ho extends Vo{constructor(e){super(),this.id=e.id}update(e){this.drawables=[];let t=this.makePolyline(e);this.drawables.push(t)}makePolyline(e){let t={};return t.points=O.calcPolylinePoints(e),t.width="3px",t.fillColor="#F99D0B",t.color="#F99D0B",this.position=new THREE.Vector2,e.forEach((e=>{this.position.x+=e.x,this.position.y+=e.y})),this.position.multiplyScalar(.2),O.makePolyline(t)}hitTest(e){return new THREE.Vector2(e.x,e.y).clone().distanceTo(this.position)<=this.hitTestEpsilon?this:null}setGray(){for(const e of this.drawables)e.style.fill=this.grayColor,e.style.stroke=this.grayColor}setDefault(){for(const e of this.drawables)e.style.fill="#F99D0B",e.style.stroke="#F99D0B"}select(){for(const e of this.drawables)e.style.fill=this.highlightColor,e.style.stroke=this.highlightColor}getDirection(){let e=new THREE.Vector3(1,0,0),t=new THREE.Vector3(0,-1,0),i=new THREE.Vector3(0,0,1),o=new THREE.Vector3;return"xy"==this.id?o.addVectors(e,t).normalize():"xz"==this.id?o.addVectors(e,i).normalize():"yz"==this.id&&o.addVectors(t,i).normalize(),o}getLocalCoordAxis(){let e=new THREE.Vector3(1,0,0),t=new THREE.Vector3(0,-1,0),i=new THREE.Vector3(0,0,1),o=[];return"xy"==this.id?o.push(e,t):"xz"==this.id?o.push(e,i):"yz"==this.id&&o.push(t,i),o}hide(){for(const e of this.drawables)e.style.display="none"}show(){for(const e of this.drawables)e.style.display="block"}}class Yo extends Vo{constructor(e){super(),this.config=e,this.start=null,this.target=null,this.isEffectedByOthers=!!e.isEffectedByOthers}update(e,t){this.drawables=[];let i={color:this.config.color,lineWidth:"1px",start:e,end:t},o=O.makeDashLine(i);this.drawables.push(o)}setGray(){if(this.isEffectedByOthers){this.drawables[0].setAttribute("stroke",this.grayColor)}}setDefault(){if(this.isEffectedByOthers){this.drawables[0].setAttribute("stroke",this.config.color)}}hide(){if(this.isEffectedByOthers){this.drawables[0].style.display="none"}}show(){if(this.isEffectedByOthers){this.drawables[0].style.display="block"}}}class jo extends Vo{constructor(e){super(),this.config=e||{},this.colors=e.colors}update(e,t){if(this.drawables.length>0){let i=0;for(const o of this.drawables){let n=this.toVector2(e),s=this.toVector2(t[i]);o.update(n,s),i++}}else for(let i=0;i<t.length;i++){let o=new Yo({color:this.colors[Math.floor(i)],isEffectedByOthers:this.config.isEffectedByOthers}),n=this.toVector2(e),s=this.toVector2(t[i]);o.update(n,s),this.drawables.push(o)}}hitTest(e){for(const t of this.drawables){let i=new THREE.Vector2(e.x,e.y),o=t.hitTest(i);if(o)return o}return null}setGray(){for(const e of this.drawables)e.setGray()}setDefault(){for(const e of this.drawables)e.setDefault()}hide(){for(const e of this.drawables)e.hide()}show(){for(const e of this.drawables)e.show()}}class No extends Vo{constructor(){super(),this.coordinateOrigin=new THREE.Vector3,this.style.length=130,this.style.axisX={},this.style.axisX.color="#FF2905",this.style.axisY={},this.style.axisY.color="#1922FB",this.style.axisZ={},this.style.axisZ.color="#32D3A6",this.axisColors=["#FF2905","#1922FB","#32D3A6"],this.markerIds=["arrowX","arrowY","arrowZ"],this.arrowTargets=[]}update(e,t){this.arrowTargets=[];let i=new THREE.Vector2(e.x,e.y);if(this.drawables.length>0){let e=0;for(const o of t){let t=new THREE.Vector2(o.x,o.y);this.drawables[e++].update(i,t)}return}let o=0;for(const e of t){let t=new THREE.Vector2(e.x,e.y),n=new Qo({id:this.markerIds[o],color:this.axisColors[o++]});n.update(i,t),this.drawables.push(n)}}getDefaultStyle(){return{lineWidth:"4px",color:"#FF2905"}}hitTest(e){for(const t of this.drawables){let i=new THREE.Vector2(e.x,e.y),o=t.hitTest(i);if(o)return o}return null}setDefault(){for(const e of this.drawables)e.setDefault()}select(){for(const e of this.drawables)e.select()}setGray(){for(const e of this.drawables)e.setGray()}hide(){for(const e of this.drawables)e.hide()}show(){for(const e of this.drawables)e.show()}getOrigin(){return this.coordinateOrigin}setOrigin(e){this.coordinateOrigin.set(e.x,e.y,e.z)}}class Wo extends Vo{constructor(e){super(),this.domContainer=e,this.style.color="#11DAB7",this.style.backColor="#939E9C",this.style.border="1px"}update(e,t,i){this.drawables=[];const o=(o,n)=>{let s=!1;(i[o]||i[n])&&(s=!0),t.indexOf(o)<0&&t.indexOf(n)<0&&this.makePolyline([e[o],e[n]],s)};o(0,1),o(1,5),o(5,4),o(4,0),o(0,3),o(1,2),o(5,6),o(4,7),o(3,2),o(2,6),o(6,7),o(7,3)}getDrawables(){return this.drawables}makePolyline(e,t){let i,o,n=this.getDefaultStyle(t),s=this.domContainer.width.baseVal.value,r=this.domContainer.height.baseVal.value,a=[];const l=(e,t)=>{let i={x:0,y:0},o={x:0,y:r},n={x:s,y:r},a={x:s,y:0},l=[];const h=(i,o)=>{let n=Lo.computeSegmentsIntersect(e,t,i,o);n&&l.push(n)};return h(i,o),h(o,n),h(n,a),h(a,i),l},h=e=>e.x>=0&&e.x<=s&&e.y>=0&&e.y<=r,c=()=>{if(a.length>0){if(i){let e=a[a.length-1];h(e);let t=l(e,i);1===t.length&&a.push(t[0])}n.points=O.calcPolylinePoints(a),this.drawables.push(O.makePolyline(n))}if(a=[],o<e.length-1){let t=l(i,e[o+1]);1===t.length?a.push(t[0]):2===t.length&&(n.points=O.calcPolylinePoints(t),this.drawables.push(O.makePolyline(n)))}i=void 0};for(o=0;o<e.length;o++){const t=e[o];h(t)?a.push(t):(i=t,c())}a.length>0&&c()}getDefaultStyle(e){return{color:!0===e?this.style.backColor:this.style.color,width:this.style.border}}}class Oo{constructor(e,t,i,o,n){this.viewer3D=e,this.domContainer=t,this.objectId=i,this.objectType=o,this.controller=n,this.scratchVector=new THREE.Vector3,this._center=new THREE.Vector3,this._cCenter=new THREE.Vector3,this._quarterCenter=new THREE.Vector3,this._modelCenter=new THREE.Vector3,this._bCenter=new THREE.Vector3,this.updateFactor(),this.initialize()}initialize(){}updateFactor(){const e=this.getBoundingBoxWorld().getCenter(this.scratchVector),t=this.viewer3D.getViewer().camera,i=this.viewer3D.sceneToWorld(t.position),o=e.clone().sub(new THREE.Vector3(i.x,i.y,i.z)).length(),n=2*Math.tan(t.fov*Math.PI/360)*o,s=this.viewer3D.getDomElement().offsetHeight;this.factor=n/s}updateBoundingBox(){let e=this.viewer3D.getViewer(),t=[],i=this.getBoundaryPoints(),o=[],n=[],s={},r=new THREE.Vector3,a=new THREE.Plane(this.viewer3D.sceneToWorld(e.camera.getWorldDirection(r)).normalize()),l=this.viewer3D.sceneToWorld(e.camera.position),h=a.distanceToPoint(l);a.constant=-h;this.getBoundingBoxWorld().getCenter(this._center);let c=[];const d=this._center.clone().distanceTo(l);i.forEach((e=>{t.push(e);const i=t.length-1;a.distanceToPoint(e)<0&&o.push(i);let r=this.viewer3D.worldToClient(e);r.index=i;const h={distance:e.distanceTo(l),index:i,screenPoint:r};s[i]=!0,c.push(h.screenPoint),n.push(h)}));(e=>{if(o.length>0||c[0].x===c[4].x&&c[0].y===c[4].y||c[1].x===c[5].x&&c[1].y===c[5].y||c[2].x===c[6].x&&c[2].y===c[6].y||c[3].x===c[7].x&&c[3].y===c[7].y){for(let e=0;e<8;++e)s[e]=!1;return}let i=[];((e,t,i)=>{let o,n,s=(e,t,i)=>(t.x-e.x)*(i.y-e.y)-(i.x-e.x)*(t.y-e.y),r=(e,t)=>(e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y),a=0,l=2,h=new Object;for(o=1;o<i;o++)(e[o].y<e[a].y||e[o].y==e[a].y&&e[o].x<e[a].x)&&(a=o);h=e[0],e[0]=e[a],e[a]=h;let c=i;for(o=1;o<c-1;o++){for(a=o,n=o+1;n<c;n++){let t=s(e[0],e[a],e[n]);if(t>0)a=n;else if(0==t){c--,r(e[0],e[n])-r(e[0],e[a])>0?(e[a]=e[n],e[n]=e[c],n--):(h=e[c],e[c]=e[n],e[n]=h)}}h=e[o],e[o]=e[a],e[a]=h}for(t.push(e[0]),t.push(e[1]),t.push(e[2]),o=3;o<c;o++){for(;!(s(e[o],t[l-1],t[l])<0);)l--,t.pop();l++,t.push(e[o])}})(c,i,8);for(let e=0;e<i.length;++e)s[i[e].index]=!1;for(let i=0;i<t.length;++i)!1!==s[e[i].index]&&d>e[i].distance&&(s[e[i].index]=!1)})(n);let g=[];for(const e of t)g.push(this.viewer3D.worldToClient(e));this.boundingBox||(this.boundingBox=new Wo(this.domContainer),this.drawables.push(this.boundingBox)),this.boundingBox.detach(),this.boundingBox.update(g,o,s),this.boundingBox.attach(this.domContainer)}getBoundaryPoints(){if("ExternalObject"===this.objectType)return this.viewer3D.getExternalComponentManager().getBoundaryPoints(this.objectId);return this.viewer3D.getViewer().getModelManager().getModel(this.objectId).getBoundaryPoints()}getBoundingBoxWorld(){if("ExternalObject"===this.objectType)return this.viewer3D.getExternalComponentManager().getBoundingBoxById(this.objectId);return this.viewer3D.getViewer().getModelManager().getModel(this.objectId).getBoundingBoxWorld()}getTransformMatrix(){if("ExternalObject"===this.objectType){let e=this.viewer3D.getExternalComponentManager().getTransform(this.objectId);return(new THREE.Matrix4).compose(e.position,e.rotate,e.scale)}return this.viewer3D.getViewer().getModelManager().getModel(this.objectId).getTransformMatrix().clone()}getRotationMatrix(){let e=new THREE.Matrix4,t=this.getTransformMatrix();return e.extractRotation(t),e}}class Jo extends Oo{constructor(e,t,i,o,n){super(e,t,i,o,n)}initialize(){this.drawables=[],this.updateBoundingBox(),this.updateCoordinateAxis(),this.updateFaces(),this.addCloudViewerEvents()}updateFaces(){this.getBoundingBoxWorld().getCenter(this.scratchVector);let e=this.getRotationMatrix(),t=20*this.factor,i=new THREE.Vector3(t,0,0).applyMatrix4(e),o=new THREE.Vector3(0,-t,0).applyMatrix4(e),n=new THREE.Vector3(0,0,t).applyMatrix4(e),s=[];t*=.3;let r=this.scratchVector.clone().add(new THREE.Vector3(t,-t,0).applyMatrix4(e));s.push(r),s.push(r.clone().add(i)),s.push(r.clone().add(i).add(o)),s.push(r.clone().add(o)),s.push(r);let a=this.scratchVector.clone().add(new THREE.Vector3(t,0,t).applyMatrix4(e));s.push(a),s.push(a.clone().add(i)),s.push(a.clone().add(i).add(n)),s.push(a.clone().add(n)),s.push(a);let l=this.scratchVector.clone().add(new THREE.Vector3(0,-t,t).applyMatrix4(e));s.push(l),s.push(l.clone().add(o)),s.push(l.clone().add(o).add(n)),s.push(l.clone().add(n)),s.push(l);let h=[];for(const e of s)h.push(this.viewer3D.worldToClient(e));this.faceArray||(this.faceArray=new qo,this.drawables.push(this.faceArray)),this.faceArray.detach(),this.faceArray.update(h),this.faceArray.attach(this.domContainer),this.setTranslateEN()}updateCoordinateAxis(){let e=this.getBoundingBoxWorld(),t=this.getRotationMatrix(),i=[];i.push(new THREE.Vector3(1,0,0).applyMatrix4(t)),i.push(new THREE.Vector3(0,-1,0).applyMatrix4(t)),i.push(new THREE.Vector3(0,0,1).applyMatrix4(t));let o=new THREE.Vector3;o=this.viewer3D.worldToClient(e.getCenter(o)),this.coordinateAxis||(this.coordinateAxis=new No,this.drawables.push(this.coordinateAxis)),this.coordinateAxis.setOrigin(o);let n=[];for(const t of i){let i=t.clone().multiplyScalar(130*this.factor).add(e.getCenter(this.scratchVector)),o=this.viewer3D.worldToClient(i);n.push(o)}this.dashlineArray||(this.dashlineArray=new jo({length:116,colors:["#FF2905","#1922FB","#32D3A6"]}),this.drawables.push(this.dashlineArray)),this.dashlineArray.detach(),this.dashlineArray.update(o,n),this.dashlineArray.attach(this.domContainer),this.coordinateAxis.detach(),this.coordinateAxis.update(o,n),this.coordinateAxis.attach(this.domContainer),this.setTranslateEN()}getDirection(e){return"arrowX"===e?new THREE.Vector3(1,0,0):"arrowY"===e?new THREE.Vector3(0,-1,0):new THREE.Vector3(0,0,1)}attach(){this.boundingBox.attach(this.domContainer)}addCloudViewerEvents(){let e=this.viewer3D.getViewer();this.updateBinded=this.update.bind(this),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ROTATING,this.updateBinded),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}removeCloudViewerEvents(){let e=this.viewer3D.getViewer();e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_ROTATING,this.updateBinded),e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}update(){document.getElementsByClassName("bf-ObjectEditor-svg")[0].setAttribute("transform","translate(0,0)"),this.updateFactor(),this.updateBoundingBox(),this.updateCoordinateAxis(),this.updateFaces()}getAllDrawables(){return this.drawables}setDefault(){for(const e of this.getAllDrawables())e.setDefault()}setGray(){for(const e of this.getAllDrawables())e.setGray()}select(e){for(const t of this.getAllDrawables())if(t.select(e))return}hideAll(){for(const e of this.getAllDrawables())e.hide()}showAll(){for(const e of this.getAllDrawables())e.show()}dispose(){this.domContainer.innerHTML="",this.boundingBox=null,this.CoordinateAxis=null,this.removeCloudViewerEvents()}updateController(e){null!=e.X&&(this.controller.X=e.X),null!=e.Y&&(this.controller.Y=e.Y),null!=e.Z&&(this.controller.Z=e.Z)}setTranslateEN(){!this.faceArray||this.faceArray.drawables.length<=0||(this.controller.Y?(this.coordinateAxis.drawables[1].show(),this.dashlineArray.drawables[1].hide()):(this.coordinateAxis.drawables[1].hide(),this.dashlineArray.drawables[1].show(),this.faceArray.drawables[0].hide(),this.faceArray.drawables[2].hide()),this.controller.Z?(this.coordinateAxis.drawables[2].show(),this.dashlineArray.drawables[2].hide()):(this.coordinateAxis.drawables[2].hide(),this.dashlineArray.drawables[2].show(),this.faceArray.drawables[2].hide(),this.faceArray.drawables[1].hide()),this.controller.X?(this.coordinateAxis.drawables[0].show(),this.dashlineArray.drawables[0].hide()):(this.coordinateAxis.drawables[0].hide(),this.dashlineArray.drawables[0].show(),this.faceArray.drawables[1].hide(),this.faceArray.drawables[0].hide()),this.controller.X&&this.controller.Y&&this.faceArray.drawables[0].show(),this.controller.X&&this.controller.Z&&this.faceArray.drawables[1].show(),this.controller.Z&&this.controller.Y&&this.faceArray.drawables[2].show())}}class Zo extends Vo{constructor(){super(),this.hitTestEpsilon=18,this.id="CoordOrigin",this.style.color="#11DAB7",this.style.border="1px"}update(e,t,i=!0){this.drawables=[];let o=e;this.makePolyline([o[0],o[1],o[5],o[4],o[0]],i),this.makePolyline([o[3],o[2],o[6],o[7],o[3]],i),this.makePolyline([o[0],o[3],o[7],o[4],o[0]],i),this.makePolyline([o[1],o[2],o[6],o[5],o[1]],i),this.makePolyline([o[5],o[6],o[7],o[4],o[5]],i),this.makePolyline([o[1],o[2],o[3],o[0],o[1]],i),this.position=new THREE.Vector2(t.x,t.y)}getDrawables(){return this.drawables}makePolyline(e,t){let i=this.getDefaultStyle();i.points=O.calcPolylinePoints(e),t&&(i.width="0px",i.fillColor="#F99D0B"),this.drawables.push(O.makePolyline(i))}getDefaultStyle(){return{color:"#11DAB7",width:"1px"}}setGray(){for(const e of this.drawables)e.style.fill=this.grayColor}setDefault(){for(const e of this.drawables)e.style.fill="#F99D0B"}select(){for(const e of this.drawables)e.style.fill=this.highlightColor}hide(){for(const e of this.drawables)e.style.display="none"}show(){for(const e of this.drawables)e.style.display="block"}hitTest(e){return new THREE.Vector2(e.x,e.y).distanceTo(this.position)<=this.hitTestEpsilon?this:null}getDirection(){return new THREE.Vector3(1,0,0)}}class zo extends Vo{constructor(e){super(),this.id="HighlightBBoxFace",this.update(e)}update(e){this.drawables=[],e&&this.makePolyline(e)}makePolyline(e){let t={width:"0px",fillColor:"#E3FFF7",opacity:.6};t.points=O.calcPolylinePoints(e),this.drawables.push(O.makePolyline(t))}setGray(){}}class Xo extends Oo{constructor(e,t,i,o,n){super(e,t,i,o,n)}initialize(){this.drawables=[],this.arrows=[],this.updateBoundingBox(),this.updateBboxArrow(),this.updateCoordOrigin(),this.addCloudViewerEvents()}updateCoordOrigin(){let e=this.getBoundingBoxWorld(),t=this.getRotationMatrix(),i=20*this.factor,o=new THREE.Vector3;e=(new THREE.Box3).setFromCenterAndSize(e.getCenter(o),new THREE.Vector3(i,i,i)),e.getCenter(this._bCenter);let n=[];n.push(new THREE.Vector3(e.max.x,e.max.y,e.max.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter)),n.push(new THREE.Vector3(e.min.x,e.max.y,e.max.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter)),n.push(new THREE.Vector3(e.min.x,e.min.y,e.max.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter)),n.push(new THREE.Vector3(e.max.x,e.min.y,e.max.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter)),n.push(new THREE.Vector3(e.max.x,e.max.y,e.min.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter)),n.push(new THREE.Vector3(e.min.x,e.max.y,e.min.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter)),n.push(new THREE.Vector3(e.min.x,e.min.y,e.min.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter)),n.push(new THREE.Vector3(e.max.x,e.min.y,e.min.z).sub(this._bCenter).applyMatrix4(t).add(this._bCenter));let s=[];for(const e of n)s.push(this.viewer3D.worldToClient(e));o=this.viewer3D.worldToClient(e.getCenter(o)),this.coordOrigin||(this.coordOrigin=new Zo,this.drawables.push(this.coordOrigin)),this.coordOrigin.detach(),this.coordOrigin.update(s,o),this.coordOrigin.attach(this.domContainer),this.setScaleEN()}updateBboxArrow(){let e=this.getBoundingBoxWorld(),t=[];t.push(this.getOppositeSideCenter("x+")),t.push(this.getOppositeSideCenter("x-")),t.push(this.getOppositeSideCenter("y+")),t.push(this.getOppositeSideCenter("y-")),t.push(this.getOppositeSideCenter("z+")),t.push(this.getOppositeSideCenter("z-"));let i=[];for(const e of t)i.push(this.viewer3D.worldToClient(e.clone()));let o=new THREE.Vector3;o=this.viewer3D.worldToClient(e.getCenter(o)),o=new THREE.Vector2(o.x,o.y);let n=[];for(const i of t){let t=i.clone(),o=new THREE.Vector3,s=t.clone().sub(e.getCenter(o).clone()).normalize().multiplyScalar(50*this.factor).add(t),r=this.viewer3D.worldToClient(s);n.push(r)}this.arrowArray||(this.arrowArray=new _o({id:1,color:"#FF0000"}),this.drawables.push(this.arrowArray)),this.arrowArray.detach(),this.arrowArray.update(i,n),this.arrowArray.attach(this.domContainer),this.dashlineArray||(this.dashlineArray=new jo({colors:["#FF2905","#1922FB","#32D3A6"]})),this.dashlineArray.detach(),this.dashlineArray.update(o,[i[1],i[2],i[5]]),this.dashlineArray.attach(this.domContainer),this.setScaleEN()}getDirection(e){return e.includes("x")?new THREE.Vector3(1,0,0):e.includes("y")?new THREE.Vector3(0,1,0):e.includes("z")?new THREE.Vector3(0,0,1):new THREE.Vector3(1,1,1)}addCloudViewerEvents(){let e=this.viewer3D.getViewer();this.updateBinded=this.update.bind(this),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ROTATING,this.updateBinded),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}removeCloudViewerEvents(){let e=this.viewer3D.getViewer();e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_ROTATING,this.updateBinded),e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}update(e){document.getElementsByClassName("bf-ObjectEditor-svg")[0].setAttribute("transform","translate(0,0)"),this.updateFactor(),this.updateHighlightBBoxFace(e),this.updateBoundingBox(),this.updateBboxArrow(),this.updateCoordOrigin()}getOppositeSideCenter(e){let t=this.getBoundaryPoints(),i=null;const o=(e,i,o,n)=>{let s=t[e],r=t[i],a=t[o],l=t[n];return(new THREE.Vector3).add(s).add(r).add(a).add(l).multiplyScalar(.25)};switch(e){case"x+":i=o(0,3,7,4);break;case"x-":i=o(1,2,6,5);break;case"y+":i=o(0,1,5,4);break;case"y-":i=o(2,3,7,6);break;case"z+":i=o(0,1,2,3);break;case"z-":i=o(4,5,6,7);break;default:i=o(0,1,2,3).add(o(4,5,6,7)).multiplyScalar(.5)}return i}updateHighlightBBoxFace(e){if(!e&&this.highlightBBoxFace)return void this.highlightBBoxFace.detach();let t=this.getBoundaryPoints(),i=null;const o=(e,i,o,n)=>{let s=this.viewer3D.worldToClient(t[e]);return[s,this.viewer3D.worldToClient(t[i]),this.viewer3D.worldToClient(t[o]),this.viewer3D.worldToClient(t[n]),s]};switch(e){case"x-":i=o(0,3,7,4);break;case"x+":i=o(1,2,6,5);break;case"y-":i=o(0,1,5,4);break;case"y+":i=o(2,3,7,6);break;case"z-":i=o(0,1,2,3);break;case"z+":i=o(4,5,6,7)}this.highlightBBoxFace||(this.highlightBBoxFace=new zo,this.drawables.push(this.highlightBBoxFace)),this.highlightBBoxFace.detach(),this.highlightBBoxFace.update(i),this.highlightBBoxFace.attach(this.domContainer)}getAllDrawables(){return this.drawables}setDefault(){for(const e of this.getAllDrawables())e.setDefault()}setGray(){for(const e of this.getAllDrawables())e.setGray()}select(e){for(const t of this.getAllDrawables())if(t.select(e))return}hideAll(){for(const e of this.getAllDrawables())e.hide()}showAll(){for(const e of this.getAllDrawables())e.show()}dispose(){this.domContainer.innerHTML="",this.boundingBox=null,this.coordOrigin=null,this.arrowArray=null,this.removeCloudViewerEvents()}updateController(e){null!=e.X&&(this.controller.X=e.X),null!=e.Y&&(this.controller.Y=e.Y),null!=e.Z&&(this.controller.Z=e.Z),null!=e.Uniform&&(this.controller.Uniform=e.Uniform)}setScaleEN(){!this.coordOrigin||this.coordOrigin.drawables.length<=0||(this.controller.Y?(this.arrowArray.drawables[2].show(),this.arrowArray.drawables[3].show()):(this.arrowArray.drawables[2].hide(),this.arrowArray.drawables[3].hide()),this.controller.Z?(this.arrowArray.drawables[4].show(),this.arrowArray.drawables[5].show()):(this.arrowArray.drawables[4].hide(),this.arrowArray.drawables[5].hide()),this.controller.X?(this.arrowArray.drawables[0].show(),this.arrowArray.drawables[1].show()):(this.arrowArray.drawables[0].hide(),this.arrowArray.drawables[1].hide()),this.controller.Uniform?this.coordOrigin.show():this.coordOrigin.hide())}}class _o extends Vo{constructor(e){super(),this.config=e,this.colors=["#FF2905","#1922FB","#32D3A6"]}update(e,t){if(this.drawables.length>0){let i=0;for(const o of this.drawables)o.update(this.toVector3(e[i]),this.toVector3(t[i])),i++;return}let i=["x-","x+","y-","y+","z-","z+"];for(let o=0;o<e.length;o++){let n=new Qo({id:i[o],color:this.colors[Math.floor(o/2)],length:40});n.update(this.toVector3(e[o]),this.toVector3(t[o])),this.drawables.push(n)}}hitTest(e){for(const t of this.drawables){let i=new THREE.Vector2(e.x,e.y),o=t.hitTest(i);if(o)return o}return null}setGray(){for(const e of this.drawables)e.setGray()}setDefault(){for(const e of this.drawables)e.setDefault()}hide(){for(const e of this.drawables)e.hide()}show(){for(const e of this.drawables)e.show()}}class $o extends Vo{constructor(e){super(),this.id=e.id,this.config=e,this.config.highlightWidth="2px"}update(e){this.drawables=[],this.boundaryPts=e;let t={};t.points=O.calcPolylinePoints(e),t.width="1px",t.color=this.config.color,t.fillColor=this.config.color,t.opacity=this.config.opacity;let i=O.makePolyline(t);this.drawables.push(i),delete t.fillColor,delete t.opacity;let o=O.makePolyline(t);this.drawables.push(o)}setGray(){let e=this.drawables[0];e.style.opacity=this.config.opacity,e.style.fill=this.grayColor;let t=this.drawables[1];t.setAttribute("stroke",this.grayColor),t.setAttribute("stroke-width","1px")}setDefault(){let e=this.drawables[0];e.style.opacity=this.config.opacity,e.style.fill=this.config.color;let t=this.drawables[1];t.setAttribute("stroke",this.config.color),t.setAttribute("stroke-width","1px")}select(){let e=this.drawables[0];e.style.opacity=this.config.opacity,e.style.fill=this.highlightColor;let t=this.drawables[1];t.setAttribute("stroke",this.highlightColor),t.setAttribute("stroke-width",this.config.highlightWidth)}hitTest(e){return O.isPointInPolygon(e,this.boundaryPts)?this:null}hide(){this.drawables[0].style.display="none",this.drawables[1].style.display="none"}show(){this.drawables[0].style.display="block",this.drawables[1].style.display="block"}getBoundaryPts(){return this.boundaryPts}}class en extends Vo{constructor(e){super(),this.config=e,this.colors=["#32D3A6","#1922FB","#FF2905"],this.ids=["xy","xz","yz"]}update(e){if(this.drawables.length>0){let t=0;for(const i of this.drawables)i.update(e[t++])}else for(let t=0;t<e.length;t++){let i=new $o({color:this.colors[t],opacity:.15,id:this.ids[t]});i.update(e[t]),this.drawables.push(i)}}hitTest(e){for(const t of this.drawables){let i=new THREE.Vector2(e.x,e.y),o=t.hitTest(i);if(o)return o}return null}setDefault(){for(const e of this.drawables)e.setDefault()}setGray(){for(const e of this.drawables)e.setGray()}hide(){for(const e of this.drawables)e.hide()}show(){for(const e of this.drawables)e.show()}getFullRingPts(e){let t=null;return"xy"===e&&(t=this.drawables[0]),"xz"===e&&(t=this.drawables[1]),"yz"===e&&(t=this.drawables[2]),t?t.getBoundaryPts():[]}}class tn extends Vo{constructor(e){super(),this.id=e.id,this.config=e,this.mapColors={xy:"#32D3A6",xz:"#1922FB",yz:"#FF2905"}}updateRingTip(e,t){this.drawables=[],this.boundaryPts=e;let i={};i.points=O.calcPolylinePoints(e),i.width="1px",i.color=this.mapColors[t],i.fillColor=this.mapColors[t];let o=O.makePolyline(i);this.drawables.push(o)}updateRotationAxis(e,t,i){let o=O.makeDashLine({color:this.mapColors[i],start:e,end:t});this.drawables.push(o)}updateRotationRangeLines(e,t,i,o){let n=O.makeLine({color:this.mapColors[o],start:e,end:t});this.drawables.push(n);let s=O.makeLine({color:this.mapColors[o],start:e,end:i});this.drawables.push(s)}hide(){for(const e of this.drawables)e.style.display="none"}show(){for(const e of this.drawables)e.style.display="block"}}class on extends Vo{constructor(){super(),this.backgroundColor="#111111",this.initialize()}initialize(){this.notationSegment={},this.notationOutline=null,this.annotationStyle={height:30,radius:3}}update(e,t){var i=this.calcAnnotationStyle(t,e),o=O.makeRectangle({x:i.offsetRect.x,y:i.offsetRect.y,width:i.width,height:this.annotationStyle.height,radius:this.annotationStyle.radius,fillColor:this.backgroundColor}),n=O.makeText({x:i.offsetText.x,y:i.offsetText.y,color:"#FFFFFF",fontsize:14,content:t});return this.drawables=[],this.drawables.push(o),this.drawables.push(n),this.drawables}calcAnnotationStyle(e,t){var i=0,o=new THREE.Vector2(t.x,t.y),n=new THREE.Vector2(t.x,t.y);return i=O.measureText(e),o.x-=i/2,o.y-=this.annotationStyle.height/2,n.x=o.x+15,n.y=o.y+20,{offsetRect:o,offsetText:n,width:i+=30}}}class nn extends Oo{constructor(e,t,i,o,n){super(e,t,i,o,n)}initialize(){this.drawables=[],this.isOnQuarterRing=!0,this.rotationAxisLength=400,this.updateBoundingBox(),this.updateCoordinateAxis(),this.updateQuarterRings(),this.addCloudViewerEvents()}updateQuarterRings(e){this.getBoundingBoxWorld().getCenter(this._quarterCenter);let t=55*this.factor,i=this.getRotationMatrix(),o=new THREE.Vector3(2*t,0,0).applyMatrix4(i),n=new THREE.Vector3(0,-2*t,0).applyMatrix4(i),s=new THREE.Vector3(0,0,2*t).applyMatrix4(i),r=22/19,a=[Math.PI/2,Math.PI/2,Math.PI/2];this.isOnQuarterRing||("xy"===e&&(a[0]=2*Math.PI),"xz"===e&&(a[1]=2*Math.PI),"yz"===e&&(a[2]=2*Math.PI));let l=.02,h=this._quarterCenter.clone().add(new THREE.Vector3(l*t,-.02*t,0).applyMatrix4(i)),c=h.clone().add(n),d=h.clone().add(n.clone().multiplyScalar(r)),g=this._calcRingPts(h,s,c,d,a[0]),u=this._quarterCenter.clone().add(new THREE.Vector3(l*t,0,l*t).applyMatrix4(i));c=u.clone().add(o),d=u.clone().add(o.clone().multiplyScalar(r));let p=this._calcRingPts(u,n,c,d,a[1]),A=this._quarterCenter.clone().add(new THREE.Vector3(0,-.02*t,l*t).applyMatrix4(i));c=A.clone().add(s),d=A.clone().add(s.clone().multiplyScalar(r));let m=this._calcRingPts(A,o,c,d,a[2]);this.quarterRings||(this.quarterRings=new en,this.drawables.push(this.quarterRings)),this.quarterRings.detach(),this.quarterRings.update([g,p,m]),this.setRotationEN(),this.quarterRings.attach(this.domContainer)}updateRotationTips(e,t,i,o){let n=this.getRotationMatrix(),s=this.quarterRings.getFullRingPts(e),r=s[t],a=s[i],l=this.getEditObjectCenter();this.rotationTips||(this.rotationTips=new tn({})),this.rotationTips.detach();let h=[],c=[],d=i-t>0?1:-1;Math.abs(i-t>180)&&(d=-d);for(let e=t;e!=i+d;e+=d){e>=360&&(e=0),e<0&&(e=359),h.push(s[e]);let t=720-e+1;c.push(s[t])}let g=h.concat(c.reverse());this.rotationTips.updateRingTip(g,e);let u=new THREE.Vector3(0,0,1).applyMatrix4(n);"xz"===e&&(u=new THREE.Vector3(0,1,0).applyMatrix4(n)),"yz"===e&&(u=new THREE.Vector3(1,0,0).applyMatrix4(n));let p=this.calcSegment(l,u,400);this._clientCenter||(this._clientCenter=this.viewer3D.worldToClient(l)),this.rotationTips.updateRotationAxis(p[0],p[1],e),this.rotationTips.updateRotationRangeLines(this._clientCenter,r,a,e),this.rotationTips.attach(this.domContainer),this.rotateNotation||(this.rotateNotation=new on),this.rotateNotation.detach();let A=this._calcNotationPos(this._clientCenter,a,48),m=o;m>180&&(m-=360),this.rotateNotation.update(A,m+"°"),this.rotateNotation.attach(this.domContainer)}removeRotationTips(){this.rotationTips&&this.rotationTips.detach(),this.rotateNotation&&this.rotateNotation.detach(),delete this._clientCenter,delete this._clientAixsStart,delete this._clientAixsEnd}_calcRingPts(e,t,i,o,n){let s=[...Lo.discreteCircle({center:e.clone(),arcStartPt:i,rotateAngle:n,normal:t.clone().normalize()}),...Lo.discreteCircle({center:e.clone(),arcStartPt:o,rotateAngle:n,normal:t.clone().normalize()}).reverse()],r=[];for(const e of s)r.push(this.viewer3D.worldToClient(e));return this.isOnQuarterRing&&r.push(r[0]),r}_calcNotationPos(e,t,i){let o=new THREE.Vector2(e.x,e.y),n=new THREE.Vector2(t.x,t.y),s=n.clone().sub(o).normalize();return n.add(s.multiplyScalar(i))}getScale(e,t,i){let o=this.viewer3D.worldToClient(e),n=this.viewer3D.worldToClient(t),s=new THREE.Vector2(o.x,o.y),r=new THREE.Vector2(n.x,n.y);return i/s.distanceTo(r)}toFullRing(e){this.isOnQuarterRing=!1,this.updateQuarterRings(e)}fromFullRing(e){this.isOnQuarterRing=!0,this.updateQuarterRings(e)}updateCoordinateAxis(){let e=this.getBoundingBoxWorld(),t=this.getRotationMatrix(),i=[];i.push(new THREE.Vector3(1,0,0).applyMatrix4(t)),i.push(new THREE.Vector3(0,-1,0).applyMatrix4(t)),i.push(new THREE.Vector3(0,0,1).applyMatrix4(t));const o=this.viewer3D.worldToClient(e.getCenter(this._cCenter));let n=[];for(const t of i){let i=t.clone().multiplyScalar(130*this.factor).add(e.getCenter(this._center)),o=this.viewer3D.worldToClient(i);n.push(o)}this.dashlineArray||(this.dashlineArray=new jo({length:130,isEffectedByOthers:!0,colors:["#FF2905","#1922FB","#32D3A6"]}),this.drawables.push(this.dashlineArray)),this.dashlineArray.detach(),this.dashlineArray.update(o,n),this.setRotationEN(),this.dashlineArray.attach(this.domContainer)}getDirection(e){return"arrowX"===e?new THREE.Vector3(1,0,0):"arrowY"===e?new THREE.Vector3(0,-1,0):new THREE.Vector3(0,0,1)}calcSegment(e,t,i){if(!this._clientAixsStart||!this._clientAixsEnd){let o=t.clone().normalize().multiplyScalar(i*this.factor/2),n=e.clone().add(o),s=e.clone().sub(o);this._clientAixsStart=this.viewer3D.worldToClient(n.clone()),this._clientAixsEnd=this.viewer3D.worldToClient(s.clone())}return[this._clientAixsStart,this._clientAixsEnd]}addCloudViewerEvents(){let e=this.viewer3D.getViewer();this.updateBinded=this.update.bind(this),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_ROTATING,this.updateBinded),e.registerEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}removeCloudViewerEvents(){let e=this.viewer3D.getViewer();e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_ZOOM,this.updateBinded),e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_ROTATING,this.updateBinded),e.unregisterEventListener(CLOUD.EVENTS.ON_EDITOR_PANING,this.updateBinded)}update(){this.updateFactor(),this.updateBoundingBox(),this.updateCoordinateAxis(),this.updateQuarterRings()}getAllDrawables(){return this.drawables}setDefault(){for(const e of this.getAllDrawables())e.setDefault()}setGray(){for(const e of this.getAllDrawables())e.setGray()}select(){for(const e of this.getAllDrawables())if(e.select())return}hideAll(){for(const e of this.getAllDrawables())e.hide()}showAll(){for(const e of this.getAllDrawables())e.show()}dispose(){this.domContainer.innerHTML="",this.boundingBox=null,this.CoordinateAxis=null,this.removeCloudViewerEvents()}getEditObjectCenter(){return this.getBoundingBoxWorld().getCenter(this._modelCenter),this._modelCenter}updateController(e){null!=e.X&&(this.controller.X=e.X),null!=e.Y&&(this.controller.Y=e.Y),null!=e.Z&&(this.controller.Z=e.Z)}setRotationEN(){!this.quarterRings||this.quarterRings.drawables.length<=0||(this.controller.Y?(this.quarterRings.drawables[1].setDefault(),this.dashlineArray.drawables[1].setDefault()):(this.quarterRings.drawables[1].setGray(),this.dashlineArray.drawables[1].setGray()),this.controller.Z?(this.quarterRings.drawables[0].setDefault(),this.dashlineArray.drawables[2].setDefault()):(this.quarterRings.drawables[0].setGray(),this.dashlineArray.drawables[2].setGray()),this.controller.X?(this.quarterRings.drawables[2].setDefault(),this.dashlineArray.drawables[0].setDefault()):(this.quarterRings.drawables[2].setGray(),this.dashlineArray.drawables[0].setGray()))}}let sn=Glodon.Web.Lang.Utility.Namespace.ensureNamespace(Glodon,"Web.Lang.Utility.Dom"),rn=Glodon.Web.Lang.Utility.Namespace.ensureNamespace(Glodon,"Bimface.Plugins.ObjectEditor");class an{constructor(e,t){this.viewer=e,this.editObjectType=t,this.activeEditors=[],this.rotationController={X:!0,Y:!0,Z:!0},this.translationController={X:!0,Y:!0,Z:!0},this.scaleController={Uniform:!0,X:!0,Y:!0,Z:!0},this.initilize()}initilize(){this.domContainer=sn.create("div","bf-ObjectEditor-conext"),this.domContainer.style.position="absolute",this.domContainer.style.left=0,this.domContainer.style.top=0,this.domContainer.style.width="100%",this.domContainer.style.height="100%",this.svgContainer=sn.createNS("svg","bf-ObjectEditor-svg"),this.svgContainer.style.width="100%",this.svgContainer.style.height="100%",this.domContainer.appendChild(this.svgContainer),this.viewer.getDomElement().appendChild(this.domContainer),this.addDomEventListeners(),this.offset=this.viewer.getDomElement().getBoundingClientRect();let e=new Glodon.Web.Lang.EventManager;this.getEventManager=function(){return e},this.activeEditor=new Po(this.viewer,this.editObjectType,e,this.translationController),this._update=()=>this.activeEditor&&!this.activeEditor.isEditing&&this.updateController(),this.viewer.addEventListener("ModelTransformed",this._update),this.viewer.addEventListener("CameraPositionChanged",this._update)}setEditedObjectId(e){switch(this.editedObjectId=e,this.activeEditor.setEditedObjectId(e),this.dispose(),this.activeEditor.name){case"Translation":let e=new Jo(this.viewer,this.svgContainer,this.editedObjectId,this.editObjectType,this.translationController);this.activeEditor.setDrawables(e);break;case"Scaling":let t=new Xo(this.viewer,this.svgContainer,this.editedObjectId,this.editObjectType,this.scaleController);this.activeEditor.setDrawables(t)}}attachInitDrawables(){let e=new Jo(this.viewer,this.svgContainer,this.editedObjectId,this.editObjectType,this.translationController);this.activeEditor.setDrawables(e)}getEditedObjectId(){return this.editedObjectId}activateEditor(e){switch(this.dispose(),e){case"Translation":this.activeEditor=new Po(this.viewer,this.editObjectType,this.getEventManager(),this.translationController);let e=new Jo(this.viewer,this.svgContainer,this.editedObjectId,this.editObjectType,this.translationController);this.activeEditor.setDrawables(e);break;case"Scaling":this.activeEditor=new Go(this.viewer,this.editObjectType,this.getEventManager(),this.scaleController);let t=new Xo(this.viewer,this.svgContainer,this.editedObjectId,this.editObjectType,this.scaleController);this.activeEditor.setDrawables(t);break;case"Rotation":this.activeEditor=new Ko(this.viewer,this.editObjectType,this.getEventManager(),this.rotationController);let i=new nn(this.viewer,this.svgContainer,this.editedObjectId,this.editObjectType,this.rotationController);this.activeEditor.setDrawables(i)}this.activeEditor.setEditedObjectId(this.editedObjectId)}dispose(){if(this.activateEditor){let e=this.activeEditor.getDrawables();e&&e.dispose()}}hide(){this.domContainer.style.display="none"}show(){this.domContainer.style.display=""}onExit(){this.viewer.removeEventListener("ModelTransformed",this._update),this.viewer.removeEventListener("CameraPositionChanged",this._update),this.dispose(),this.removeDomEventListeners(),this.destroySvgContainer(),this.isExitNow=!0}addDomEventListeners(){this.onMouseDownBinded=this.onMouseDown.bind(this),this.onMouseMoveBinded=this.onMouseMove.bind(this),this.onMouseUpBinded=this.onMouseUp.bind(this),this.onMouseDoubleClickBinded=this.onMouseDoubleClick.bind(this),this.onWindowResizeBinded=this.onWindowResize.bind(this);let e=this.svgContainer;e.addEventListener("mousemove",this.onMouseMoveBinded,!1),e.addEventListener("mousedown",this.onMouseDownBinded,!1),document.addEventListener("mouseup",this.onMouseUpBinded,!1),e.addEventListener("dblclick",this.onMouseDoubleClickBinded,!1),window.addEventListener("resize",this.onWindowResizeBinded,!1)}removeDomEventListeners(){let e=this.svgContainer;e.removeEventListener("mousemove",this.onMouseMoveBinded),e.removeEventListener("mousedown",this.onMouseDownBinded),document.removeEventListener("mouseup",this.onMouseUpBinded),e.removeEventListener("dblclick",this.onMouseDoubleClickBinded),window.removeEventListener("resize",this.onWindowResizeBinded)}destroySvgContainer(){this.domContainer.removeChild(this.svgContainer),this.svgContainer=null,this.viewer.getDomElement().removeChild(this.domContainer),this.domContainer=null}onMouseDown(e){this.isExitNow||e.button===THREE.MOUSE.LEFT&&this.activeEditor.begin(e)}onMouseMove(e){this.isExitNow||this.activeEditor.onEditing(e)}onMouseUp(e){this.isExitNow||e.button===THREE.MOUSE.LEFT&&(this.activeEditor.end(e),this.activeEditor.dataDrawables.update())}onMouseDoubleClick(e){this.isExitNow||(e.preventDefault(),e.stopPropagation())}onWindowResize(){this.activeEditor&&this.activeEditor.dataDrawables&&this.activeEditor.dataDrawables.update()}updateController(e,t){switch(t){case"Translation":null!=e.X&&(this.translationController.X=e.X),null!=e.Y&&(this.translationController.Y=e.Y),null!=e.Z&&(this.translationController.Z=e.Z);break;case"Rotation":null!=e.X&&(this.rotationController.X=e.X),null!=e.Y&&(this.rotationController.Y=e.Y),null!=e.Z&&(this.rotationController.Z=e.Z);break;case"Scaling":null!=e.X&&(this.scaleController.X=e.X),null!=e.Y&&(this.scaleController.Y=e.Y),null!=e.Z&&(this.scaleController.Z=e.Z),null!=e.Uniform&&(this.scaleController.Uniform=e.Uniform)}if(this.activeEditor.name===t){this.activeEditor.updateController(e);let t=this.activeEditor.getDrawables();t&&t.updateController(e)}this.onWindowResize()}}rn.ObjectEditorManager=an;const ln="Exit",hn="EditingModeChanged";let cn=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");class dn{constructor(e){this.viewer=e.viewer,this.objectId=e.objectId,this.viewer._objectEditorToolbar&&this.viewer._objectEditorToolbar.exit(),this.mode=null,this.toolBarButtons={translate:!e.buttonVisibility.hasOwnProperty("translate")||e.buttonVisibility.translate,rotate:!e.buttonVisibility.hasOwnProperty("rotate")||e.buttonVisibility.rotate,scale:!e.buttonVisibility.hasOwnProperty("scale")||e.buttonVisibility.scale},this.viewer._objectEditorToolbar=this,this.rotationController={X:!e.rotationController.hasOwnProperty("X")||e.rotationController.X,Y:!e.rotationController.hasOwnProperty("Y")||e.rotationController.Y,Z:!e.rotationController.hasOwnProperty("Z")||e.rotationController.Z},this.translationController={X:!e.translationController.hasOwnProperty("X")||e.translationController.X,Y:!e.translationController.hasOwnProperty("Y")||e.translationController.Y,Z:!e.translationController.hasOwnProperty("Z")||e.translationController.Z},this.scaleController={Uniform:!e.scaleController.hasOwnProperty("Uniform")||e.scaleController.Uniform,X:!e.scaleController.hasOwnProperty("X")||e.scaleController.X,Y:!e.scaleController.hasOwnProperty("Y")||e.scaleController.Y,Z:!e.scaleController.hasOwnProperty("Z")||e.scaleController.Z}}setRotationController(e){e&&(this.rotationController=e),this.objectEditorManager.updateController(this.rotationController,"Rotation")}getRotationController(){let e={};return e.X=!this.rotationController.hasOwnProperty("X")||this.rotationController.X,e.Y=!this.rotationController.hasOwnProperty("Y")||this.rotationController.Y,e.Z=!this.rotationController.hasOwnProperty("Z")||this.rotationController.Z,e}setTranslationController(e){e&&(this.translationController=e),this.objectEditorManager.updateController(this.translationController,"Translation")}getTranslationController(){let e={};return e.X=!this.translationController.hasOwnProperty("X")||this.translationController.X,e.Y=!this.translationController.hasOwnProperty("Y")||this.translationController.Y,e.Z=!this.translationController.hasOwnProperty("Z")||this.translationController.Z,e}setScaleController(e){e&&(this.scaleController=e),this.objectEditorManager.updateController(this.scaleController,"Scaling")}getScaleController(){let e={};return e.X=!this.scaleController.hasOwnProperty("X")||this.scaleController.X,e.Y=!this.scaleController.hasOwnProperty("Y")||this.scaleController.Y,e.Z=!this.scaleController.hasOwnProperty("Z")||this.scaleController.Z,e.Uniform=!this.scaleController.hasOwnProperty("Uniform")||this.scaleController.Uniform,e}setButtonVisibility(e){e&&(this.toolBarButtons=e,this._updateButtonsVisibility())}getButtonVisibility(){let e={};return e.translate=!this.toolBarButtons.hasOwnProperty("translate")||this.toolBarButtons.translate,e.rotate=!this.toolBarButtons.hasOwnProperty("rotate")||this.toolBarButtons.rotate,e.scale=!this.toolBarButtons.hasOwnProperty("scale")||this.toolBarButtons.scale,e}_updateButtonsVisibility(){this.toolBarButtons.scale||this.toolBarButtons.rotate||this.toolBarButtons.translate?(this.switchToolbarAllHide=!1,this.show()):(this.setBimfaceUIVisibility(!1),this.switchToolbar.hide(),this.switchToolbarAllHide=!0);let e=this.switchToolbar.getControls(),t=this.getButton("Translation",e),i=this.getButton("Rotation",e),o=this.getButton("Scaling",e);this.toolBarButtons.translate?t.show():t.hide(),this.toolBarButtons.rotate?i.show():i.hide(),this.toolBarButtons.scale?o.show():o.hide()}_updateController(){this.objectEditorManager&&(this.objectEditorManager.updateController(this.translationController,"Translation"),this.objectEditorManager.updateController(this.rotationController,"Rotation"),this.objectEditorManager.updateController(this.scaleController,"Scaling"))}setEditingMode(e){if(this.objectEditorManager){switch(e){case"rotation":this.mode="rotation",this.objectEditorManager.activateEditor("Rotation");break;case"translation":this.mode="translation",this.objectEditorManager.activateEditor("Translation");break;case"scale":this.mode="scale",this.objectEditorManager.activateEditor("Scaling")}this.objectEditorManager.show()}}getEditingMode(){return this.mode}setEditedObjectId(e){this.objectEditorManager.setEditedObjectId(e)}getEditedObjectId(){return this.objectEditorManager.getEditedObjectId()}show(){this._destroyed||("Viewer3D"===this.viewer.viewerType?this.viewer.hideViewHouse():this.viewer.hideNorthArrow(),this.setBimfaceUIVisibility(!1),this.modelEditor.show(),this.switchToolbarAllHide||this.switchToolbar.show(),this.objectEditorManager.show())}hide(){this._destroyed||("Viewer3D"===this.viewer.viewerType?this.viewer.showViewHouse():this.viewer.showNorthArrow(),this.setBimfaceUIVisibility(!0),this.modelEditor.hide(),this.switchToolbar.hide(),this.objectEditorManager.hide())}exit(){this._destroyed||(this.hide(),this._getEventManager().fireEvent(ln),this.objectEditorManager.onExit(),delete this.viewer._objectEditorToolbar,this.destroy())}destroy(){this.viewer.getDomElement().removeChild(this.domElement),this.domElement=null,this.viewer=null,this.objectId=null,this.objectEditorManager=null,this._destroyed=!0}update(){}updateManagerController(e,t){this.objectEditorManager.updateController(e,type)}initialize(){this.mapUIVisibility={"bf-tree-toolbar":"none","bf-modelTree-panel":"none","bf-toolbar-bottom":"none","bf-property-panel":"none","bf-measurement-panel":"none","bf-sectionPlane-panel":"none","bf-pickSectionPlane-panel":"none","bf-sectionBox-panel":"none","bf-settings-panel":"none","bf-basicInfo-panel":"none","bf-map-panel":"none"},this.recordUIVisibility()}toolBarDom(){const t=this;let i=[];const o=cn.create("div","bf-roomEditorToolbar");if(t.domElement=o,o.addEventListener("mousedown",(e=>(e.stopPropagation(),!1))),void 0===this.switchToolbar){var n=e.Bimface.UI.Toolbar.ToolbarConfig();n.className="bf-toolbar bf-toolbar-roomEditor",n.element=o,n.buttons=["ModelEditingTranslate","ModelEditingRotate","ModelEditingScale"],this.viewer.getDomElement().appendChild(o),this.switchToolbar=new e.Bimface.Application.UI.Toolbar.Toolbar(n),i.push(this.switchToolbar)}let s=e.Bimface.UI.Control.ControlEvent,r=this.switchToolbar.getControls();this.uncheckOthers("Translation",r);let a=["Translation","Rotation","Scaling"];t._editingMode="Translation";for(let e=0;e<r.length;e++){let i=r[e];i.addEventListener(s.Click,(function(){if(i.isChecked()){t.objectEditorManager.activateEditor(a[e]),t.uncheckOthers(i.getId(),r);let o="Scaling"===i.getId()?"Scale":i.getId();t._getEventManager().fireEvent(hn,{previousEditingMode:t._editingMode,followingEditingMode:o}),t._editingMode=o}else i.toggleCheckedState()}))}const l=new e.Bimface.UI.Toolbar.ToolbarConfig;l.element=o,l.className="bf-toolbar bf-toolbar-roomEditor";let h=t.modelEditor=new e.Bimface.UI.Toolbar.Toolbar(l);t.modelEditor=h,i.push(h);const c=new e.Bimface.UI.Button.ButtonConfig;c.className="bf-modeleditor-cancel",c.title=BimfaceLanguage.bf_general_exit;const d=new e.Bimface.UI.Button.SingleButton(c);d.setHtml("退出"===BimfaceLanguage.bf_general_exit?"退 出":BimfaceLanguage.bf_general_exit),d.addEventListener("Click",(()=>{this.exit()})),h.addControl(d),this.viewer.getDomElement().appendChild(o),this._updateButtonsVisibility(),this._updateController()}recordUIVisibility(){let e=Object.keys(this.mapUIVisibility);for(const t of e){let e=document.getElementsByClassName(t);e.length>0&&(this.mapUIVisibility[t]=e[0].style.display)}}uncheckOthers(e,t){for(const i of t)i.getId()===e?i.setCheckedState(!0):i.setCheckedState(!1)}getButton(e,t){for(let i=0;i<t.length;i++){let o=t[i];if(o.getId()===e)return o}}setBimfaceUIVisibility(e){let t=Object.keys(this.mapUIVisibility);for(const i of t){let t=document.getElementsByClassName(i);0!=t.length&&(t[0].style.display=0==e?"none":this.mapUIVisibility[i])}}_getEventManager(){return this.objectEditorManager.getEventManager()}addEventListener(e,t){this._getEventManager().addEvent(e,t)}removeEventListener(e,t){this._getEventManager().removeEvent(e,t)}}function gn(e){let t=e.modelId;if("ViewerGIS"===e.viewer.getViewerType()&&e.layerId){const i=e.viewer.getLayerManager().getLayer(e.layerId);i&&(t=i.getModelId())}return t}e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ModelEditor").ModelEditorToolbarConfig=function(){return{viewer:null,modelId:null,layerId:null,app:null,buttonVisibility:{},translationController:{},rotationController:{},scaleController:{}}},function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ModelEditor"));i.ModelEditorToolbar=class extends dn{constructor(e){t.send("Bimface.Plugins.ModelEditor","ModelEditorToolbar"),e.objectId=gn(e),super(e),this.name="ModelEditorToolbar",this.editedId=e.objectId,this.initialize(),this.toolBarDom()}setButtonVisibility(e){super.setButtonVisibility(e)}getButtonVisibility(){return super.getButtonVisibility()}setEditedModelId(e){super.setEditedObjectId(e)}getEditedModelId(){return super.getEditedObjectId()}setEditedModel(e){const t=gn({viewer:this.viewer,modelId:e,layerId:e});super.setEditedObjectId(t),this.editedId=e}getEditedModel(){return this.editedId}show(){super.show()}hide(){super.hide()}exit(){super.exit()}setRotationController(e){super.setRotationController(e)}getRotationController(){return super.getRotationController()}setTranslationController(e){super.setTranslationController(e)}getTranslationController(){return super.getTranslationController()}setScaleController(e){super.setScaleController(e)}getScaleController(){return super.getScaleController()}setEditingMode(e){super.setEditingMode(e)}getEditingMode(){return super.getEditingMode()}addEventListener(e,t){super.addEventListener(e,t)}removeEventListener(e,t){super.removeEventListener(e,t)}initialize(){super.initialize(),this.objectEditorManager=new an(this.viewer,"Model"),this.objectEditorManager.setEditedObjectId(this.objectId)}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ModelEditor");let i=Object.freeze({ModelTransformStart:"ModelTransformStart",ModelTransforming:"ModelTransforming",ModelTransformEnd:"ModelTransformEnd",Exit:"Exit",EditingModeChanged:"EditingModeChanged"});t.ModelEditorToolbarEvent=i}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ExternalObject").ExternalObjectEditorToolbarConfig=function(){return{viewer:null,id:null,app:null,buttonVisibility:{},translationController:{},rotationController:{},scaleController:{}}};e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ExternalObject").ExternalObjectEditorToolbarEvent={Exit:"Exit",EditingModeChanged:"EditingModeChanged"};!function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ExternalObject"));i.ExternalObjectEditorToolbar=class extends dn{constructor(e){t.send("Bimface.Plugins.ExternalObject","ExternalObjectEditorToolbar"),e.objectId=e.id,super(e),this.name="ExternalObjectEditorToolbar",this.initialize(),this.toolBarDom()}setButtonVisibility(e){super.setButtonVisibility(e)}getButtonVisibility(){return super.getButtonVisibility()}setEditedExternalObjectId(e){super.setEditedObjectId(e)}getEditedExternalObjectId(){return super.getEditedObjectId()}show(){super.show()}hide(){super.hide()}exit(){super.exit()}setRotationController(e){super.setRotationController(e)}getRotationController(){return super.getRotationController()}setTranslationController(e){super.setTranslationController(e)}getTranslationController(){return super.getTranslationController()}setScaleController(e){super.setScaleController(e)}getScaleController(){return super.getScaleController()}setEditingMode(e){super.setEditingMode(e)}getEditingMode(){return super.getEditingMode()}initialize(){super.initialize(),this.objectEditorManager=new an(this.viewer,"ExternalObject"),this.objectEditorManager.setEditedObjectId(this.objectId)}addEventListener(e,t){super.addEventListener(e,t)}removeEventListener(e,t){super.removeEventListener(e,t)}}}(),function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SpatialRelation"));i.Room=class{constructor(e){t.send("Bimface.Plugins.SpatialRelation","Room"),this.viewer3D=e.viewer,this.databagId=e.viewer._data.databagId,this.toleranceType={STRICT:"STRICT",ORDINARY:"ORDINARY",LENIENT:"LENIENT"},this.tolerence=.25,this.mapRoomBbox={},this.mapRoomBoundary={},this.mapRoomId={},this.mapArea={},this.allComponentIds=null,!0!==e.hasInitialized&&this.initialize()}initialize(){let e=this;"singleMode"===this.viewer3D._data.modelType&&this.getRooms((function(t){let i=JSON.parse(t);for(const t of i)e.mapRoomId[t.id]=!0,e.mapRoomBbox[t.id]=(new THREE.Box3).setFromPoints([t.bboxMin,t.bboxMax])}))}getRooms(e){this.viewer3D.getDefaultModel()._getMetaDataManager().dataManager.getRooms((function(t){e&&e(t)}))}getRoomBoundary(e,t){this.mapRoomId[e]&&this.viewer3D.getDefaultModel()._getMetaDataManager().dataManager.getRoomBoundary(e,(function(e){t&&t(e)}))}getAreaByRoomId(e){let t=this,i=new Array;for(const o of e){let e={id:o,unit:"m2",value:null};if(t.mapArea[o])e.value=t.mapArea[o];else{let i=t._getRoomBoundaryById(o);i?e.value=Math.abs(THREE.ShapeUtils.area(i))/1e6:console.warn(`Input room id ${o} is invalid.`)}i.push(e)}return i}getBoundaryByRoomId(e){let t=new Array,i=this.viewer3D.getCustomizedRoom();if(e in i){let o=this._getRoomBoundaryById(e);for(let n=0,s=o.length;n<s;n++){let s=new Array;s.push(o[n].x),s.push(o[n].y),s.push(i[e].offset[0]),t.push(s)}}else console.warn(`Input room id ${e} is not exist.`);return t}getHeightByRoomId(e){let t,i=this.viewer3D.getCustomizedRoom();return e in i?t=i[e].height:console.warn(`Input room id ${e} is not exist.`),t}setBoundaryByRoomId(e,t){let i,o=this.viewer3D.getCustomizedRoom();if(e in o){let n=o[e];if(this.viewer3D.clearRoomsById(e),"string"==typeof t&&(t=JSON.parse(t)),t instanceof Array)if(2==t.length)i=this.viewer3D.createBoundary(t[0],t[1]);else{if(!(t.length>0))return;i=this.viewer3D.createBoundary(1==t.length&&t[0]||t)}else i=t;if(!i)return void console.warn("The custom room data is not standard");i.offsetZ-=n.offset[0],this.viewer3D.createRoomByOffset(i,n.offset,e,n.faceColor,n.frameColor),this.viewer3D.render();let s={id:e,unit:"m2",value:null},r=this._getRoomBoundaryById(e);s.value=Math.abs(THREE.ShapeUtils.area(r))/1e6}else console.warn(`Input room id ${e} is not exist.`)}enableDepthTest(e,t){const i=this.viewer3D.getViewer();CLOUD.ExtrudeBodyManager.getInstance(i).enableDepthTest(e,t)}getModelComponentIds(){if(this.allComponentIds)return this.allComponentIds;this.allComponentIds=new Array;let e=this.viewer3D.getViewer().getFilter().getObjectsMap(),t=Object.keys(e);for(let i=0;i<t.length;i++){let o=e[t[i]],n=Object.keys(o);this.allComponentIds.push(...n)}return this.allComponentIds}getComponentsByRoomId(e,t,i,o){null==t&&(t=this.toleranceType.ORDINARY),null==i&&(i=this.toleranceType.STRICT);let n=this;this.getRoomBoundary(e,(function(t){let i=JSON.parse(t);i.hasOwnProperty("loops")&&(i=i.loops[0]);let o=[];for(const e of i)o.push({x:e[0].x,y:e[0].y});n.mapRoomBoundary[e]=o}));let s=[],r=this.getModelComponentIds();for(let o=0;o<r.length;o++){let n=r[o],a=this.viewer3D.getViewer().getComponentInfoByUserId(n).boundingBox;this.roomContains(e,a,t,i)&&s.push(n)}o&&o(s)}getRoomsByComponentId(e,t,i,o){null==t&&(t=this.toleranceType.ORDINARY),null==i&&(i=this.toleranceType.STRICT);let n=[],s=this.viewer3D.getCustomizedRoom(),r=Object.keys(s);for(let o=0;o<r.length;o++){let s=r[o],a=this.viewer3D.getViewer().getComponentInfoByUserId(e).boundingBox;this.roomContains(s,a,t,i)&&n.push(s)}o&&o(n)}roomContains(e,t,i,o){if(!this.viewer3D.getCustomizedRoom()[e]&&!this.mapRoomBoundary[e])return void console.warn("Input room id is invalid.");let n=this.isRoomContainBoundingBoxByZ(e,t,o);if(0==n)return n;let s=this.isRoomBoundingBoxContainBoundingBoxByXY(e,t,i);if(0==s)return s;let r=this.isRoomBoundaryContainBoundingBoxByXY(e,t,i);return 0!=r||r}getRoomBoundingBoxById(e){let t=this.getCustomizedRoom(e);if(t){let e=t.boundingBox,i=t.offset;return e.min.z=i[0],e.max.z=i[1],e}if(this.mapRoomBbox[e])return this.mapRoomBbox[e]}getCustomizedRoom(e){let t=this.viewer3D.getCustomizedRoom()[e];if(!t)return null;if(t.boundary&&"user"!=t.boundary.belong){let e=[],i=[],o=t.boundary;for(let t=0;t<o.loops.length;t++){let n=o.loops[t],s=[];for(const e of n)s.push([e[0].x,e[0].y,e[0].z]);0==t?e=s:s.length>2&&i.push(s)}let n=this.viewer3D.createBoundary(e,i);return n.offset=[...t.offset],n}return t.boundary.offset=t.offset,t.boundary}_getRoomBoundaryById(e){return this.viewer3D.getCustomizedRoom()[e]?this.getCustomizedRoom(e).roomBoundary:this.mapRoomBoundary[e]}isRoomContainBoundingBoxByZ(e,t,i){let o=this.getRoomBoundingBoxById(e),n=o.min.z,s=o.max.z,r=t.max.z,a=t.min.z,l=this.tolerence;if(i==this.toleranceType.STRICT)return a>=n-l&&r<=s+l;if(i==this.toleranceType.ORDINARY){let e=(a+r)/2;return this.isBetween(e,n,s)&&(this.isBetween(a,n,s)||this.isBetween(r,n,s))}return i==this.toleranceType.LENIENT?a<=s+l&&r>=n-l:void 0}setTopHeightByRoomId(e,t){let i=this.getCustomizedRoom(e);if(i){let o=this.viewer3D.getCustomizedRoom()[e];this.viewer3D.clearRoomsById([e]);let n=[];for(let e=0;e<i.roomBoundary.length-1;e++){let t=i.roomBoundary[e];n.push([t.x,t.y,0])}let s=this.viewer3D.createBoundary(n),r=[i.offset[0],t];this.viewer3D.createRoomByOffset(s,r,e,o.faceColor,o.frameColor)}else console.log("No room exists whose id is "+e)}setBottomHeightByRoomId(e,t){let i=this.getCustomizedRoom(e);if(i){let o=this.viewer3D.getCustomizedRoom()[e];this.viewer3D.clearRoomsById([e]);let n=[];for(let e=0;e<i.roomBoundary.length-1;e++){let t=i.roomBoundary[e];n.push([t.x,t.y,0])}let s=this.viewer3D.createBoundary(n),r=[t,i.offset[1]];this.viewer3D.createRoomByOffset(s,r,e,o.faceColor,o.frameColor)}else console.log("No room exists whose id is "+e)}isRoomBoundingBoxContainBoundingBoxByXY(e,t,i){let o=this.getRoomBoundingBoxById(e),n=o.min.x,s=o.max.x,r=o.min.y,a=o.max.y,l=t.min.x,h=t.max.x,c=t.min.y,d=t.max.y,g=this.tolerence;return i==this.toleranceType.STRICT?l>=n-g&&h<=s+g&&c>=r-g&&d<=a+g:i==this.toleranceType.ORDINARY||i==this.toleranceType.LENIENT?l<=s+g&&h>=n-g&&c<=a+g&&d>=r-g:void 0}isRoomBoundaryContainBoundingBoxByXY(e,t,i){let o=this.toFivePos(t),n=this._getRoomBoundaryById(e),s=0;for(let e=0;e<o.length;e++){const t=o[e];this.containsInBoundary(t,n)&&s++}let r=!1;return i==this.toleranceType.STRICT?r=5==s:i==this.toleranceType.ORDINARY?r=s>=3:i==this.toleranceType.LENIENT&&(r=s>=1),r}isBetween(e,t,i){let o=this.tolerence;return e<=i+o&&e>=t-o}toFivePos(e){let t=[];return t.push(new THREE.Vector2(e.min.x,e.min.y)),t.push(new THREE.Vector2(e.max.x,e.min.y)),t.push(new THREE.Vector2(e.max.x,e.max.y)),t.push(new THREE.Vector2(e.min.x,e.max.y)),t.push(new THREE.Vector2((e.min.x+e.max.x)/2,(e.min.y+e.max.y)/2)),t}containsInBoundary(e,t,i){let o=!1;for(let i=0;i<t.length-1;i++)if(this.isOnSegment(e,t[i],t[i+1])){o=!0;break}if(o)return!i;for(var n=e.x,s=e.y,r=!1,a=0,l=t.length-1;a<t.length;l=a++){var h=t[a].x||t[a][0],c=t[a].y||t[a][1],d=t[l].x||t[l][0],g=t[l].y||t[l][1];c>s!=g>s&&n<(d-h)*(s-c)/(g-c)+h&&(r=!r)}return r}isOnSegment(e,t,i){if(e.x>Math.max(t.x,i.x)||e.x<Math.min(t.x,i.x))return!1;if(e.y>Math.max(t.y,i.y)||e.y<Math.min(t.y,i.y))return!1;if(t.x!=i.x){let o=(i.y-t.y)/(i.x-t.x),n=i.y-o*i.x;if(o*e.x+n==e.y)return!0}else if(e.x==t.x)return!0;return!1}isPointInside(e,t,i){!1!==i&&(i=!0);let{roomBoundary:o,roomInnerBoundary:n}=this.getCustomizedRoom(t);if(!this.containsInBoundary(e,o,i))return!1;if(n&&n.find((t=>this.containsInBoundary(e,t,i))))return!1;let s=Number(e.z.toFixed(10)),r=this.getRoomBoundingBoxById(t),a=Number(r.min.z.toFixed(10)),l=Number(r.max.z.toFixed(10));return i?s>a&&s<l:s>=a&&s<=l}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SpatialRelation").RoomConfig=function(){return{viewer:null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SpatialRelation");let i=Object.freeze({Saved:"Saved",Cancelled:"Cancelled"});t.RoomEditorToolbarEvent=i}(),function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SpatialRelation"),n=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Application.UI.Button"),e.Bimface.Plugins.SpatialRelation.RoomEditorToolbarEvent);o.RoomEditorToolbar=class{constructor(i){t.send("Bimface.Plugins.SpatialRelation","RoomEditorToolbar"),this.id="RoomEditorToolbar",this.viewer=i.viewer,this.roomId=i.roomId,this.databagId=i.viewer._data.databagId,this.eventManager=new e.Web.Lang.EventManager,this.initialize(),this.toolBarDom()}initialize(){const t=e.Bimface.Plugins.RoomEditing,i=new t.RoomEidtorConfig;i.viewer=this.viewer,i.roomId=this.roomId,this.roomEditor=new t.RoomEditor(i),this.roomEditor.onEnter(),this.registerRoomEditorEvents()}toolBarDom(){const t=this;let o=[];const s=i.create("div","bf-roomEditorToolbar");if(t.domElement=s,void 0===this.switchToolbar){var r=e.Bimface.UI.Toolbar.ToolbarConfig();r.className="bf-toolbar bf-toolbar-roomEditor",r.element=s,r.buttons=["RoomEditingDrag","RoomEditingAdd","RoomEditingDelete","RoomEditingHeight"],this.viewer.getDomElement().appendChild(s),this.switchToolbar=new e.Bimface.Application.UI.Toolbar.Toolbar(r),o.push(this.switchToolbar)}let a=e.Bimface.UI.Control.ControlEvent,l=this.switchToolbar.getControls();this.uncheckOthers("Drag",l);let h=["Pick","Add","Delete","Height"];for(let e=0;e<l.length;e++){let i=l[e];i.addEventListener(a.Click,(function(){i.isChecked()?(t.roomEditor.activateEditor(h[e]),t.uncheckOthers(i.getId(),l)):i.toggleCheckedState()}))}const c=new e.Bimface.UI.Toolbar.ToolbarConfig;c.element=s,c.className="bf-toolbar bf-toolbar-roomEditor";let d=t.roomToolbar=new e.Bimface.UI.Toolbar.Toolbar(c);t.roomToolbar=d,o.push(d);const g=new e.Bimface.UI.Button.ButtonConfig;g.className="bf-save",g.title=BimfaceLanguage.bf_general_save;const u=new e.Bimface.UI.Button.SingleButton(g);u.setHtml(BimfaceLanguage.bf_general_save),u.addEventListener("Click",(function(){const e=t.roomEditor.save(),i={roomId:t.roomId,boundary:e.outerBoundary,height:e.height};t.eventManager.fireEvent(n.Saved,i),t.update()})),d.addControl(u);const p=new e.Bimface.UI.Button.ButtonConfig;p.className="bf-cancel",p.title=BimfaceLanguage.bf_general_cancel;const A=new e.Bimface.UI.Button.SingleButton(p);A.setHtml(BimfaceLanguage.bf_general_cancel),A.addEventListener("Click",(function(){t.eventManager.fireEvent(n.Cancelled),t.exit()})),d.addControl(A),this.viewer.getDomElement().appendChild(s)}registerRoomEditorEvents(){let t=this;this.viewer.addEventListener("DeletionError",(function(){if(!t.deletionErrorTips){const i=new e.Bimface.UI.Tips.TipsConfig;i.element=t.viewer.getDomElement(),i.className="bf-tips bf-roomEditor-tips",i.timeOut=3e3,i.html=`<div><i class="icon-warning"></i>${BimfaceLanguage.bf_panel_roomEdit_insufficientNode}</div>`,t.deletionErrorTips=new e.Bimface.UI.Tips.Tips(i)}t.deletionErrorTips.show()}));let i=this.viewer.getDomElement();this.viewer.addEventListener("RoomEditorAddEnter",(function(){i.addClass("roomEditor-addtion")})),this.viewer.addEventListener("RoomEditorAddExit",(function(){i.removeClass("roomEditor-addtion")})),this.viewer.addEventListener("RoomEditorDeleteEnter",(function(){i.addClass("roomEditor-deletion")})),this.viewer.addEventListener("RoomEditorDeleteExit",(function(){i.removeClass("roomEditor-deletion")}))}uncheckOthers(e,t){for(const i of t)i.getId()===e?i.setCheckedState(!0):i.setCheckedState(!1)}getEventManager(){return this.eventManager}addEventListener(e,t){this.getEventManager().addEvent(e,t)}removeEventListener(e,t){this.getEventManager().removeEvent(e,t)}show(){this.roomEditor.setBimfaceUIVisibility(!1),this.roomToolbar.show(),this.switchToolbar.show()}hide(){this.roomEditor.setBimfaceUIVisibility(!0),this.roomToolbar.hide(),this.switchToolbar.hide()}update(){if(!0!==this.roomEditor.checkIntersect())this.hide(),this.roomEditor.onExit();else{if(!this.intersectTips){const t=new e.Bimface.UI.Tips.TipsConfig;t.element=this.viewer.getDomElement(),t.className="bf-tips bf-roomEditor-tips",t.timeOut=3e3,t.html=`<div><i class="icon-warning"></i>${BimfaceLanguage.bf_panel_roomEdit_selfIntersection}</div>`,this.intersectTips=new e.Bimface.UI.Tips.Tips(t)}this.intersectTips.show()}}exit(){this.hide(),this.roomEditor.onExit(!0)}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SpatialRelation").RoomEditorToolbarConfig=function(){return{viewer:null,roomId:null,app:null}},function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RevitHelpers"));i.MEPTopologyHelper=class{constructor(e){t.send("Bimface.Plugins.RevitHelpers","MEPTopologyHelper"),this.databagId=e.viewer._data.databagId,this.modelType=e.viewer._data.modelType}_findNetworkById(t,i){var o,n=this;n._FILEID_CACHE!=n.fileId&&(n._API_CACHE=null),"integrateModel"==n.modelType?(o=`${d.resourceHost}/${n.databagId}/metadata/${n.fileId}/mepsystem.json`,n._FILEID_CACHE=n.fileId):o=`${d.resourceHost}/${n.databagId}/metadata/mepsystem.json`,n._API_CACHE?n._getNetwork(t,n._API_CACHE,(function(e){i(e)})):e.Web.Lang.Utility.HttpRequest.ajax({url:o,success:function(e){var o=JSON.parse(e);n._API_CACHE=o,n._getNetwork(t,o,(function(e){i(e)}))}})}_getNetwork(e,t,i){var o=this;o._NETWORK_LENGTH=0,t.systems.map((function(n,s){n.network[e]&&(o._NETWORK_LENGTH++,i(n.network)),s==t.systems.length-1&&0==o._NETWORK_LENGTH&&console.log("此ID不存在于Network中")}))}_transform(e){let t=[];for(let i in e)/^__STEP/.test(i)||(t[t.length]={type:i,id:e[i]});return t}_walk(e,t,i,o){let n="up"===i?"flowFrom":"flowInto",s=[t];for(;s.length;){let t=s.pop(),i=e[t];if(!i)continue;i.id=t,o(i,e);let r=i[n];r&&[].push.apply(s,r.reverse())}}_BFSwalk(e,t,i,o){let n="up"===i?"flowFrom":"flowInto",s=[t];for(;0!==s.length;){let t=s.shift(),i=e[t];i&&(i.id=t,o(i,i[n],e),[].push.apply(s,i[n]))}}_deduplicate(e){return e.map((function(e){return e.reduce((function(e,t,i){return i%2==0?-1===e.indexOf(t)&&e.push(t):/\d+/.test(e[e.length-1])||e.push(t),e}),[])}))}_formatToObj(e){var t,i=this,o={};return e.forEach((function(e){e.forEach((function(e,n){if(n%2==0)t=e,o[e]||(o[e]=[]);else{let n;n="integrateModel"==i.modelType?`${i.fileId}.${e}`:e,-1===o[t].indexOf(n)&&o[t].push(n)}}))})),o}_formatNewData(e,t){let i;for(let t in e){if(-1!=Object.keys(e[t]).indexOf("flowFrom")){i=e;break}{let o=[],n=[];e[t].neighbours.map((e=>{"bidirectional"!==e.direction&&("in"===e.direction?o.push(e.id):n.push(e.id))})),Object.assign(e[t],{flowFrom:o},{flowInto:n}),i=e}}return i}getDownstreamComponentsById(e,t){const i=this;"integrateModel"==i.modelType&&(i.fileId=e.split(".")[0],e=e.split(".")[1]),i._findNetworkById(e,(o=>{if(!o)return t();let n=i._formatNewData(o),s={};i._BFSwalk(n,e,"down",(function(t){t.id!==e&&("integrateModel"==i.modelType&&(t.id=`${i.fileId}.${t.id}`),s[t.type]?s[t.type].push(t.id):s[t.type]=[t.id])})),t(i._transform(s))}))}getConnectedComponentsById(e,t){var i=this;"integrateModel"==i.modelType&&(i.fileId=e.split(".")[0],e=e.split(".")[1]),i._findNetworkById(e,(o=>{if(!o)return t();let n=i._formatNewData(o),s={up:{routes:[[]]},down:{routes:[[]]}};["up","down"].forEach((t=>this._walk(n,e,t,(function(i,o){let n=s[t].routes,r=n.length-1;if("末端"===n[r].slice(-2,-1)[0]){if("末端"===i.type)return n[n.length]=n[r].slice(0,-1).concat(i.id);{let e=i["up"===t?"flowInto":"flowFrom"][0];n[n.length]=n[r].slice(0,n[r].indexOf(e)+1),r++}}e!=i.id&&(n[r].push(i.type),n[r].push(i.id))}))));let r=i._deduplicate(s.up.routes),a=i._deduplicate(s.down.routes),l=this._transform(i._formatToObj(r)),h=this._transform(i._formatToObj(a));t({up:l,down:h})}))}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RevitHelpers").MEPTopologyHelperConfig=function(){return{viewer:null}},function(){let t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.RevitHelpers");class o{constructor(e,i){t.send("Bimface.Plugins.RevitHelpers","DrawingView"),this.viewer3D=e,this.drawingViews=i,this.activeViewId=null,this.activeDrawingView=null,this.viewPoint=null,this.planTranslation=null,this.linkFileTranslation=new THREE.Vector3}activeViewById(e){this.activeViewId=e;for(const e of this.drawingViews)if(e.id==this.activeViewId){this.activeDrawingView=e;let t=e.viewPoint.origin;this.coordViewPoint=new THREE.Vector3(t[0],t[1],t[2])}}formatViewMatrix(e){let t=this.activeDrawingView.viewPoint.rightDirection,i=this.activeDrawingView.viewPoint.upDirection,o=new THREE.Vector3(t[0],t[1],t[2]),n=new THREE.Vector3(i[0],i[1],i[2]);e=null==e?new THREE.Vector3:e;let s=new THREE.Matrix4;return s.makeBasis(o,n,e),s}update(e,t){this.makeTranslation(e,t),"FloorPlan"==this.activeDrawingView.viewType?this.rotateFloorPlan(e):this.rotateElevation(e)}makeTranslation(e,t){let i=this.activeDrawingView.viewPoint.viewDirection,o=new THREE.Vector3(i[0],i[1],i[2]).multiplyScalar(t),n=this.planTranslation,s=this.linkFileTranslation;e.translateX(n.x+s.x+o.x),e.translateY(n.y+s.y+o.y),e.translateZ(n.z+s.z+o.z)}rotateFloorPlan(e){let t=this.activeDrawingView.viewPoint.upDirection,i=new THREE.Vector3(t[0],t[1],t[2]),o=new THREE.Vector3(0,1,0).angleTo(i);new THREE.Vector3(0,1,0).cross(i).length()>0&&(o=-o),e.rotateZ(o),e.updateMatrixWorld()}rotateElevation(e){let t=this.activeDrawingView.viewPoint.viewDirection,i=new THREE.Vector3(t[0],t[1],t[2]),o=i.angleTo(new THREE.Vector3(0,-1,0));i.cross(new THREE.Vector3(0,-1,0)).z>0&&(o=-o),e.rotateX(Math.PI/2),e.rotateY(o),e.updateMatrixWorld()}getOutline3D(){let e=this.activeDrawingView.outline,t=this.activeDrawingView.viewPoint.scale,i=this.activeDrawingView.elevation,o=new THREE.Vector3(e[0]*t,e[1]*t,0),n=new THREE.Vector3(e[0]*t,e[3]*t,0),s=new THREE.Vector3(e[2]*t,e[3]*t,0),r=new THREE.Vector3(e[2]*t,e[1]*t,0),a=this.formatViewMatrix(),l=o.applyMatrix4(a),h=n.applyMatrix4(a),c=s.applyMatrix4(a),d=r.applyMatrix4(a);this.planTranslation=l.clone().add(c).multiplyScalar(.5),this.planTranslation.add(this.coordViewPoint);let g=h.clone().sub(l).length(),u=d.clone().sub(l).length(),p=new THREE.Vector3(-u/2,-g/2,i),A=new THREE.Vector3(u/2,g/2,i);return new THREE.Box3(p,A)}setLinkFileTranslation(e){this.linkFileTranslation.x=e.elements[12],this.linkFileTranslation.y=e.elements[13],this.linkFileTranslation.z=e.elements[14]}}o.toObject=function(e){var t={};for(var i in e)if(e.hasOwnProperty(i)){var o=e[i];o instanceof Array&&(t[i]={x:o[0],y:o[1],z:o[2]})}return t},i.DrawingView=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Snap").SnapConfig=function(){return{id:null,color:new e.Web.Graphics.Color(249,157,11,1),hoverColor:new e.Web.Graphics.Color(17,218,183,.2),objectColor:new e.Web.Graphics.Color(17,218,183,.9),width:3,radius:25,viewer:null}},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Snap"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=function(t){this.viewer=t.viewer,this.maxPointsNum=1;var o=new e.Web.Graphics.Color(17,218,183,.2),n=i.createNS("circle","bf-snap-handle");n.setAttribute("r",t.width),n.setAttribute("fill",o.getRGB()),n.style.fill=o.getRGB();var s=i.createNS("line","bf-snap-line");s.style.strokeWidth=2,s.style.stroke=o.getRGB();var r=i.createNS("polygon","bf-snap-rect");r.setAttribute("fill",o.getRGBA()),r.setAttribute("stroke",o.getRGB()),r.setAttribute("stroke-width",1),this.hoverLine=s,this.hoverPoint=n,this.hoverPanel=r,this.hoverPanelSize={width:20,height:20}};o.prototype=Object.assign(o.prototype,{stretchOnDirection:function(e,t,i){var o=e.clone().add(t).multiplyScalar(.5),n=t.clone().sub(e).normalize();return[o.clone().sub(n.clone().multiplyScalar(i/2)),o.clone().add(n.clone().multiplyScalar(i/2))]},draw:function(e){var t=this.hoverLine,i=this.hoverPoint,o=this.hoverPanel,n=this.hoverPanelSize;switch(e.hoverObjectType){case"Point":i.setAttribute("cx",e.hoverPosition.x),i.setAttribute("cy",e.hoverPosition.y),e.svg.appendChild(i);break;case"Line":t.setAttribute("x1",e.lineStartPoint.x),t.setAttribute("y1",e.lineStartPoint.y),t.setAttribute("x2",e.lineEndPoint.x),t.setAttribute("y2",e.lineEndPoint.y),e.svg.appendChild(t);break;case"Panel":var s=e.clientPts,r=s[0].distanceTo(s[1]),a=s[0].distanceTo(s[3]),l=r/n.width,h=a/n.height;if(1!=l){var c=this.stretchOnDirection(s[0],s[1],n.width),d=this.stretchOnDirection(s[2],s[3],n.width);s=c.concat(d)}if(1!=h){c=this.stretchOnDirection(s[0],s[3],n.height),d=this.stretchOnDirection(s[1],s[2],n.height);s=[c[0],d[0],d[1],c[1]]}for(var g="",u=0;u<s.length;u++)g+=s[u].x+",",g+=s[u].y+" ";o.setAttribute("points",g),e.svg.appendChild(o)}}}),t.SnapItem=o}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Snap"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=null,n=[],s=null,r=null,a=function(t){var o=t.viewer,n=this;this.snapMode=t.snapMode,n.isOpen=!1,this._p1=new THREE.Vector3,this._p2=new THREE.Vector3;var s=new e.Web.Lang.EventManager,r=i.create("div","bf-snap-conext");this.context={rootDomElement:r},this._opt=t,this.getEventManager=function(){return s},n.init(t),o.addEventListener("Rendered",(function(){n.isOpen&&n.update()}))};a.prototype={init:function(t){var o=this,n=o.context,s=o._opt.viewer;o.isOpen=!0,s.getDomElement().appendChild(n.rootDomElement),s.getModels().forEach((e=>{e.setSelectedComponentsById()}));var r=i.createNS("svg","bf-snap-svg");n.rootDomElement.innerHTML="",n.rootDomElement.appendChild(r),n.svg=r;var a=new e.Bimface.Plugins.Snap.SnapItem(t);o.snapItem=a,s.render()},snapByPoint:function(e){this.isNeedSnap(e)&&(o=e.pickPoint?e.pickPoint:null,e.pickPlane?(s="Panel",r=e.normal):e.pickLine?(s="Line",n=e.pickLine):s=e.pickPoint?"Point":null,this.update())},isNeedSnap:function(e){if(!this.snapMode)return!0;if(!e||!e.userId)return this.reset(),!1;let t=this.snapMode.getSnap3DList(),i="face",o="line",n="endpoint",s=!1;e.pickPlane?s=t.includes(i):e.pickLine?s=t.includes(o):e.pickPoint&&(s=t.includes(n));let r=this.snapMode.getSnapConditions(),a=this._opt.viewer.getViewer().getUserdataByUserId(e.userId),l=this.isMatchConditions(a,r),h=s&&l;return h||this.reset(),h},isMatchConditions:function(e,t){for(var i=!0,o=0,n=t.length;o<n;o++){var s=t[o];for(var r in s)if(e[r]!==s[r]){i=!1;break}if(i)break;o<t.length-1&&(i=!0)}return i},update:function(){var e=this.context,t=this._opt.viewer,i=t.getDomElement(),a=i.getBoundingClientRect(),l=t.getViewer(),h=[],c=[];if(this.context.svg.innerHTML="",o?(e.pickPoint=o,e.hoverPosition=t.worldToClient(o),e.hoverPositionDS=l.getScene().worldToDrawing(o)):e.hoverPosition=null,e.hoverObjectType=s,"Line"==s&&2==n.length){e.lineStartPoint=t.worldToClient(n[0]),e.lineEndPoint=t.worldToClient(n[1]);var d=new THREE.Vector2(e.lineStartPoint.x,e.lineStartPoint.y),g=new THREE.Vector2(e.lineEndPoint.x,e.lineEndPoint.y),u=new THREE.Box2;u.min.set(i.clientLeft,i.clientTop),u.max.set(u.min.x+i.clientWidth,u.min.y+i.clientHeight);var p=!u.containsPoint(d),A=!u.containsPoint(g),m={start:d,end:g},w=f.CameraUtil.lineIntersectWithRect(m,u);if(p&&A)2==w.length&&(e.lineStartPoint=w[0],e.lineEndPoint=w[1]);else if(p||A)for(var C=new THREE.Vector2(e.hoverPosition.x,e.hoverPosition.y),E=p?g.clone():d.clone(),B=E.clone().sub(C).normalize(),I=0;I<w.length;I++){if(E.clone().sub(w[I]).normalize().dot(B)>0){e.lineStartPoint=E,e.lineEndPoint=w[I];break}}}if("Panel"==e.hoverObjectType){e.normal=l.getScene().worldToDrawing(r),e.normal.normalize();var y=l.cameraControl,S=new THREE.Plane;S.setFromNormalAndCoplanarPoint(e.normal,e.hoverPositionDS);var M=new THREE.Vector2(e.hoverPosition.x-10,e.hoverPosition.y-10),v=new THREE.Vector2(e.hoverPosition.x+10,e.hoverPosition.y-10),x=e.hoverPositionDS,b=y.getRaycaster(M.x,M.y);if(this._p1=b.ray.intersectPlane(S,this._p1),b=y.getRaycaster(v.x,v.y),this._p2=b.ray.intersectPlane(S,this._p2),null==this._p1||null==this._p2)return this._p1=new THREE.Vector3,void(this._p2=new THREE.Vector3);var U=new THREE.Vector3(1,0,0),D=new THREE.Vector3(0,1,0),R=new THREE.Vector3(0,0,1),V=Math.abs(e.normal.clone().dot(U))<=.0025,Q=Math.abs(e.normal.clone().dot(R))<=.0025;if(V&&Q)var k=U.clone(),F=R.clone();else k=D.clone().cross(e.normal).normalize(),F=e.normal.clone().cross(k).normalize();var T=this._p1.distanceTo(this._p2)/2,P=k.clone().multiplyScalar(T),L=F.clone().multiplyScalar(T),K=x.clone().sub(P).add(L),G=x.clone().add(P).add(L),q=x.clone().sub(P).sub(L),H=x.clone().add(P).sub(L),Y=[];Y.push(K,G,H,q);for(var j=[],N=y.getContainerDimensions(),W=0;W<Y.length;W++){var O=f.CameraUtil.drawingToCanvas(y.camera,Y[W],N.width,N.height);j.push(new THREE.Vector3(O.x,O.y,0))}e.clientPts=j}for(I=0;I<h.length-1;I++){var J=l.worldPointsToClient(h[I],h[I+1]);if(J){var Z={x:J.start.x-a.left,y:J.start.y-a.top};c.push(Z)}}e.clientPoints=c,this.snapItem.draw(e)},reset:function(){s=null,this.context.svg.innerHTML=""},destroy:function(){var e=this.context.rootDomElement,t=this;t.reset(),e.remove(),t.snapItem=null,t.isOpen=!1}},t.Snap=a}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Walkthrough").WalkthroughManagerConfig=function(){return{viewer:null}},function(){e.Bimface.Data.StatisticsDataManager.getInstance();var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Walkthrough");t.WalkthroughManager=class{constructor(e){var t=e.viewer;t?"Viewer3D"===t.getViewerType()||"ViewerGIS"===t.getViewerType()?(this._viewer=t,this._walkthroughMap={}):console.log("ViewerType is not supported."):console.log("viewer must not be empty.")}addWalkthrough(t,i){var o=e.Web.Lang.Utility.UUID.createUUID(),n={id:o,walkthrough:i};return i._walkthrough.setName(t),this._walkthroughMap[o]=n,o}removeWalkthrough(e){"[object String]"===Object.prototype.toString.call(e)&&(e=[e]),"[object Array]"===Object.prototype.toString.call(e)&&e.forEach((e=>{delete this._walkthroughMap[e]}))}setWalkthroughList(t){if("[object Object]"===Object.prototype.toString.call(t)){var i=t.coordinate;t.data.forEach((t=>{var o=new e.Bimface.Plugins.Walkthrough.WalkthroughConfig;o.viewer=this._viewer;var n=new e.Bimface.Plugins.Walkthrough.Walkthrough(o),s=t.coordinateSystem||i;"world"===s&&t.keyFrames.forEach((e=>{e.coordinateSystem=s})),n.setKeyFrames(t.keyFrames),n.setWalkthroughTime(t.time),n._walkthrough.setName(t.name),this._walkthroughMap[t.id]={id:t.id,walkthrough:n}}))}}getWalkthroughList(){var e={data:[],version:1};for(var t in this._walkthroughMap){var i={id:t},o=this._walkthroughMap[t].walkthrough;i.keyFrames=o.getKeyFrames(),i.keyFrames.forEach((e=>{delete e.coordinateSystem})),i.name=o._walkthrough.getName(),i.time=o._walkthrough.walkthroughTime,i.coordinateSystem="world",e.data.push(i)}return e}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").NorthArrowConfig=function(){return{domElement:null,viewer:null,right:10,top:10}};class un{constructor(e,t,i){this.element=e,this.northArrowElement=t,this.textElement=e.lastElementChild,this._camera=i,this._rotate=0,this._minRadius=4,this._maxRadius=48,this.init()}init(){let e,t,i,o,n;this.isDragging=!1,this.events={mouseout:()=>{this.isDragging||this.element.firstElementChild.setAttribute("filter","")},mousedown:i=>{this.isDragging=!0,e=i.offsetX-50,t=i.offsetY-60,n=this._camera.getYawPitch().pitch,this.element.setAttribute("class","bf-northarrow-yawactive")},mouseover:function(){this.firstElementChild.setAttribute("filter","url(#bf-northarrow-dropshadow)")}};for(let e in this.events)this.element.addEventListener(e,this.events[e].bind(this.element));const s=()=>{this.isDragging=!1,this.element.firstElementChild.setAttribute("filter",""),this.element.setAttribute("class","bf-northarrow-yaw")},r=(i,o)=>{let s=i-e,r=o-t,a=Math.atan(o/i),l=Math.atan(t/e),h=180*Math.abs(a-l)/Math.PI;i>0&&i>Math.abs(o)&&e>0&&e>Math.abs(t)?r>0?this._rotate+=h:this._rotate-=h:i<0&&i<-Math.abs(o)&&e<0&&e<-Math.abs(t)?r>0?this._rotate-=h:this._rotate+=h:(a=Math.atan(i/o),l=Math.atan(e/t),h=180*Math.abs(a-l)/Math.PI,o>0&&t>0?s>0?this._rotate-=h:this._rotate+=h:s>0?this._rotate+=h:this._rotate-=h),this.element.setAttribute("transform",`rotate(${this._rotate}, 0, 0)`);let c=this._rotate*Math.PI/180;this._camera.setCameraFromYawPitch({yaw:c,pitch:n,target:!0},!0),e=i,t=o};this.northArrowEvents={mousemove:e=>{this.isDragging&&(i=e.offsetX-50,o=e.offsetY-60,r(i,o))},mouseup:e=>{this.isDragging&&s()}};for(let e in this.northArrowEvents)this.northArrowElement.addEventListener(e,this.northArrowEvents[e]);this.northArrowParentEvents={mousemove:e=>{this.isDragging&&(i=e.offsetX-50-this.northArrowElement.offsetLeft,o=e.offsetY-60-this.northArrowElement.offsetTop,r(i,o))},mouseup:e=>{this.isDragging&&s()}};for(let e in this.northArrowParentEvents)this.northArrowElement.parentElement.addEventListener(e,this.northArrowParentEvents[e]);this.textEvents={dblclick:e=>{n=this._camera.getYawPitch().pitch,this._camera.setCameraFromYawPitch({yaw:0,pitch:n,target:!0},!1)}};for(let e in this.textEvents)this.textElement.addEventListener(e,this.textEvents[e])}update(){if(this.isDragging)return;let{yaw:e}=this._camera.getYawPitch();this._rotate=180*e/Math.PI,this.element.setAttribute("transform",`rotate(${this._rotate}, 0, 0)`)}destroy(){if(this.events)for(let e in this.events)this.element.removeEventListener(e,this.events[e]);if(this.northArrowEvents)for(let e in this.northArrowEvents)this.northArrowElement.removeEventListener(e,this.northArrowEvents[e]);if(this.northArrowParentEvents)for(let e in this.northArrowParentEvents)this.northArrowElement.parentElement.removeEventListener(e,this.northArrowParentEvents[e]);if(this.textEvents)for(let e in this.textEvents)this.textElement.removeEventListener(e,this.textEvents[e])}}class pn{constructor(e,t){this.elements=e,this._camera=t,this.minPitch=-Math.PI/2,this.maxPitch=Math.PI/2,this.init()}init(){const e=this._camera;let t,i,o=this,n=!1,s=!1;this.events={mousedown:function(){n=!0;let r=e.getYawPitch();i=r.yaw,t=r.pitch;let a=Math.PI/1e3;const l=()=>{if(t=-t,t>o.maxPitch&&(t=o.maxPitch),t<o.minPitch&&(t=o.minPitch),t>o.minPitch&&t-a>o.minPitch&&"bf-northarrow-pitchdown"===this.className.baseVal)t-=a,s=!0;else{if(!(t<o.maxPitch&&t+a<o.maxPitch&&"bf-northarrow-pitchup"===this.className.baseVal))return;t+=a,s=!1}t=-t,e.setCameraFromYawPitch({yaw:i,pitch:t,target:!0,isDownDirection:s},!0),n&&requestAnimationFrame(l)};l()},mouseup:()=>{n=!1},mouseover:function(){this.firstElementChild.setAttribute("filter","url(#bf-northarrow-dropshadow)")},mouseout:function(){this.firstElementChild.setAttribute("filter",""),n=!1}};for(let e in this.events)for(let t in this.elements)this.elements[t].addEventListener(e,this.events[e].bind(this.elements[t]))}destroy(){for(let e in this.events)for(let t in this.elements)this.elements[t].removeEventListener(e,this.events[e])}}class An{constructor(e,t){this.elements=e,this._camera=t,this.init()}init(){const e=this._camera;let t=!1;this.events={mousedown:function(){t=!0;const i=()=>{switch(/bf-northarrow-pan(.*)/.exec(this.className.baseVal)[1]){case"up":e.panInDirection(!0);break;case"down":e.panInDirection(!1);break;case"left":e.panInLat(!1);break;case"right":e.panInLat(!0)}t&&requestAnimationFrame(i)};i()},mouseup:()=>{t=!1},mouseover:function(){this.setAttribute("filter","url(#bf-northarrow-dropshadow)")},mouseout:function(){this.setAttribute("filter",""),t=!1}};for(let e in this.events)for(let t in this.elements)this.elements[t].addEventListener(e,this.events[e].bind(this.elements[t]))}destroy(){for(let e in this.events)for(let t in this.elements)this.elements[t].removeEventListener(e,this.events[e])}}class mn{constructor(e,t){this.elements=e,this._camera=t,this.init()}init(){const e=this._camera;let t=!1;this.events={mousedown:function(){t=!0;const i=()=>{"bf-northarrow-zoomin"===this.className.baseVal?e.zoomIn():e.zoomOut(),t&&requestAnimationFrame(i)};i()},mouseup:()=>{t=!1}},this.events.mouseout=this.events.mouseup;for(let e in this.events)for(let t in this.elements)this.elements[t].addEventListener(e,this.events[e].bind(this.elements[t]))}destroy(){for(let e in this.events)for(let t in this.elements)this.elements[t].removeEventListener(e,this.events[e])}}!function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");t.NorthArrow=class{constructor(e){this._opt=e;const t=e.domElement,o=i.create("div","bf-northarrow");o.style.top=`${e.top}px`,o.style.right=`${e.right}px`,t.appendChild(o),this.domElement=o,this._camera=e.viewer._camera,this.init()}init(){this.drawElements((()=>{this.addDomElementEvents(),this.northArrowYaw=new un(this.elements.yaw,this.domElement,this._camera),this.northArrowPitch=new pn({pitchUp:this.elements.pitchUp,pitchDown:this.elements.pitchDown},this._camera),this.northArrowZoom=new mn({zoomIn:this.elements.zoomIn,zoomOut:this.elements.zoomOut},this._camera),this.northArrowPan=new An({panUp:this.elements.panUp,panDown:this.elements.panDown,panLeft:this.elements.panLeft,panRight:this.elements.panRight},this._camera),this.addRenderCallback()}))}drawElements(e){this.domElement.innerHTML='\n <svg height="180" width="100" class="bf-northarrow-svg" onselectstart="return false;">\n <defs>\n <filter id="bf-northarrow-dropshadow" x="-10" y="-10" width="100" height="100">\n <feDropShadow dx="0" dy="0" stdDeviation="0" \n flood-color="cyan"/>\n </filter>\n </defs>\n \n <g class="bf-northarrow-pitchup" transform="translate(50, 12)" width="500" height="100">\n <path d="M-15,0 A50,50 0 0,1 15,0 A3,3 0 0,1 14.5,8 A42,42 0 0,0 -14.5,8 A3,3 0 0,1 -15,0 Z" shape-rendering="geometricPrecision" />\n <path d="M-4,3 L0,-1 4,3" shape-rendering="geometricPrecision" />\n </g>\n\n <g transform="translate(50, 60)">\n <g class="bf-northarrow-yaw">\n <path d="M39,0 A39,39 0 0,0 -39,0 L-29,0 A29,29 0 0,1 29,0 L39,0 A39,39 0 0,1 0,39 L0,29 A29,29 0 0,0 29,0 L39,0 M-39,0 A39,39 0 0,0 0,39 L0,29 A29,29 0 0,1 -29,0 L-39,0 Z" shape-rendering="geometricPrecision" />\n <g transform="translate(-40, -40)">\n <path />\n <path d="M40,0 C62.09139,0 80,17.90861 80,40 C80,62.09139 62.09139,80 40,80 C17.90861,80 0,62.09139 0,40 C0,17.90861 17.90861,0 40,0 Z M40,1 C18.4608948,1 1,18.4608948 1,40 C1,61.5391052 18.4608948,79 40,79 C61.5391052,79 79,61.5391052 79,40 C79,18.4608948 61.5391052,1 40,1 Z" shape-rendering="geometricPrecision" />\n <path d="M40,11 C56.0162577,11 69,23.9837423 69,40 C69,56.0162577 56.0162577,69 40,69 C23.9837423,69 11,56.0162577 11,40 C11,23.9837423 23.9837423,11 40,11 Z M40,12 C24.536027,12 12,24.536027 12,40 C12,55.463973 24.536027,68 40,68 C55.463973,68 68,55.463973 68,40 C68,24.536027 55.463973,12 40,12 Z" shape-rendering="geometricPrecision" />\n <rect x="1" y="40" width="10" height="1" />\n <rect x="69" y="40" width="10" height="1" />\n <rect x="39" y="69" width="1" height="10" />\n <path />\n </g>\n <text x="0" y="-30">N</text>\n </g>\n </g>\n\n <g class="bf-northarrow-pitchdown" transform="translate(50, 108)">\n <path d="M-15,0 A50,50 0 0,0 15,0 A3,3 0 0,0 14.5,-8 A42,42 0 0,1 -14.5,-8 A3,3 0 0,0 -15,0 Z" shape-rendering="geometricPrecision" />\n <path d="M-4,-3 L0,1 4,-3" shape-rendering="geometricPrecision" />\n </g>\n\n <g transform="translate(50, 60)">\n <g class="bf-northarrow-panup" transform="translate(-7, -24)">\n <path d="M7,0 L14,10 0,10 Z" />\n <path d="M7,0 L14,10 L0,10 L7,0 Z M7,1.745 L1.921,9 L12.078,9 L7,1.745 Z" />\n </g>\n <g class="bf-northarrow-pandown" transform="translate(-7, 14) rotate(180, 7 5)">\n <path d="M7,0 L14,10 0,10 Z" />\n <path d="M7,0 L14,10 L0,10 L7,0 Z M7,1.745 L1.921,9 L12.078,9 L7,1.745 Z" />\n </g>\n <g class="bf-northarrow-panleft" transform="translate(-24, -5) rotate(-90, 7 5)">\n <path d="M7,0 L14,10 0,10 Z" />\n <path d="M7,0 L14,10 L0,10 L7,0 Z M7,1.745 L1.921,9 L12.078,9 L7,1.745 Z" />\n </g>\n <g class="bf-northarrow-panright" transform="translate(10, -5) rotate(90, 7 5)">\n <path d="M7,0 L14,10 0,10 Z" />\n <path d="M7,0 L14,10 L0,10 L7,0 Z M7,1.745 L1.921,9 L12.078,9 L7,1.745 Z" />\n </g>\n\n </g>\n\n <g transform="translate(50, 118)">\n <g transform="translate(-13, 0)">\n <rect id="Rectangle" fill="#2A313B" opacity="0.78" x="0" y="0" width="26" height="53" />\n <path d="M26,0 L26,53 L0,53 L0,0 L26,0 Z M25,1 L1,1 L1,52 L25,52 L25,1 Z" fill="#969FAE" fill-rule="nonzero" />\n <rect fill="#969FAE" x="3" y="26" width="20" height="1" />\n </g>\n <g class="bf-northarrow-zoomin">\n <path d="M-13,0 L13,0 13,26 -13,26 Z" />\n <polygon points="5 5 5 0 7 0 7 5 12 5 12 7 7 7 7 12 5 12 5 7 0 7 0 5" transform="translate(-6, 7)" />\n </g>\n <g class="bf-northarrow-zoomout">\n <path d="M-13,26 L13,26 13,52 -13,52 Z" />\n <rect x="0" y="0" width="12" height="2" transform="translate(-6, 39)" />\n </g>\n </g>\n </svg>\n ',this.elements={},["pitchUp","pitchDown","yaw","panUp","panDown","panLeft","panRight","zoomIn","zoomOut"].forEach((e=>{const t=this.domElement.querySelector(`.bf-northarrow-${e.toLowerCase()}`);this.elements[e]=t})),e()}addDomElementEvents(){this.domElementEvents={mouseover:()=>{this.elements.pitchUp.style.opacity=1,this.elements.pitchDown.style.opacity=1},mouseout:()=>{this.elements.pitchUp.style.opacity=0,this.elements.pitchDown.style.opacity=0},mousedown:e=>(e.stopPropagation(),!1)},this.domElementEvents.mousemove=this.domElementEvents.mouseup=this.domElementEvents.mousedown,this.domElementEvents.mouseout();for(let e in this.domElementEvents)this.domElement.addEventListener(e,this.domElementEvents[e])}addRenderCallback(){this.renderCallback=()=>{this.northArrowYaw&&this.northArrowYaw.update()},this._opt.viewer.getViewer().addRenderCallback(this.renderCallback)}destroy(){if(this.domElement&&this.domElementEvents)for(let e in this.domElementEvents)this.domElement.removeEventListener(e,this.domElementEvents[e]);this.northArrowYaw&&this.northArrowYaw.destroy(),this.northArrowPitch&&this.northArrowPitch.destroy(),this.northArrowPan&&this.northArrowPan.destroy(),this.northArrowZoom&&this.northArrowZoom.destroy(),this.renderCallback&&this._opt.viewer.getViewer().removeRenderCallback(this.renderCallback),this._opt.domElement.removeChild(this.domElement)}setLimitPitch(e=null,t=null){this.northArrowPitch.minPitch=null!=e?e:-Math.PI/2,this.northArrowPitch.maxPitch=null!=t?t:Math.PI/2}show(){this.domElement.style.display="block"}hide(){this.domElement.style.display="none"}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").ScaleBarConfig=function(){return{domElement:null,viewer:null,right:10,bottom:10}},function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),o=[1,2,3,5,10,20,30,50,100,200,300,500,1e3,2e3,3e3,5e3,1e4,2e4,3e4,5e4,1e5,2e5,3e5,5e5,1e6,2e6,3e6,5e6,1e7,2e7,3e7,5e7];t.ScaleBar=class{constructor(e){this._opt=e;const t=e.domElement,o=i.create("div","bf-scale");o.style.bottom=`${e.bottom}px`,o.style.right=`${e.right}px`,t.appendChild(o),this.domElement=o,this.barElement=void 0,this.labelElement=void 0,this.lastUpdateTime=Date.now(),this.enableScale=!0,this._value=void 0,this.init()}init(){this.drawElements((()=>{this.addRenderCallback()}))}drawElements(e){this.domElement.innerHTML='\n <svg height="36px" width="140px" class="bf-scale-svg" onselectstart="return false;">\n <rect x="0" y="0" width="140px" height="36px" style="fill:#20262F;opacity:0.85;stroke-width:1px;stroke:#3B4554"/>\n <path class="bf-scale-bar" fill="none"/>\n <text class= "bf-scale-label" fill="#cccccc"></text>\n </svg>\n ',this.barElement=this.domElement.querySelector(".bf-scale-bar"),this.labelElement=this.domElement.querySelector(".bf-scale-label"),this.domElement.style.display="none",e()}addRenderCallback(){this.renderCallback=()=>{if(this.enableScale){var e=Date.now();if(!(e<this.lastUpdateTime+250)){this.lastUpdateTime=e;var t=this._opt.viewer.getViewer().camera,i=this._opt.viewer.getViewer().getViewportSize();if(t.position.y<0)this.domElement.style.display="none";else{var n=new THREE.Vector3(i.width/2,i.height-1),s=new THREE.Vector3(i.width/2+1,i.height-1),r=this._opt.viewer.getViewer().pickByPoint(n,!0),a=this._opt.viewer.getViewer().pickByPoint(s,!0);if(r&&a&&r.worldPosition&&a.worldPosition){var l=r.worldPosition.distanceTo(a.worldPosition);if(this._pixelDistance=l,l<0)this.domElement.style.display="none";else{for(var h,c=o.length-1;!h&&c>=0;--c)o[c]/l<=120&&(h=o[c]);if(h){var d;this._value=h,d=h>=1e3?(h/1e3).toString()+"km":h.toString()+"m",this.labelElement.textContent=d;var g=this.labelElement.getBoundingClientRect().width||43;this.labelElement.setAttribute("x",70-g/2),this.labelElement.setAttribute("y",23);var u=h/l,p="M"+(70-u/2).toString()+" 20 L"+(70-u/2).toString()+" 28 L"+(70+u/2).toString()+" 28 L"+(70+u/2).toString()+" 20";this.barElement.setAttribute("d",p),this.domElement.style.display="block"}else this._value=void 0,this._pixelDistance=void 0,this.domElement.style.display="none"}}else this.domElement.style.display="none"}}}},this._opt.viewer.getViewer().addRenderCallback(this.renderCallback)}destroy(){this.renderCallback&&this._opt.viewer.getViewer().removeRenderCallback(this.renderCallback),this._opt.domElement.removeChild(this.domElement)}show(){this.domElement.style.display="block",this.enableScale=!0}hide(){this.domElement.style.display="none",this.enableScale=!1}isVisible(){return this.enableScale}getValue(){return this._pixelDistance}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").InfoBarConfig=function(){return{domElement:null,viewer:null,right:0,bottom:0}},function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");t.InfoBar=class{constructor(e){this._opt=e;const t=e.domElement,o=i.create("div","bf-infobar");o.style.bottom=`${e.bottom}px`,o.style.right=`${e.right}px`,o.style.display="none",t.appendChild(o),this.domElement=o,this.enable=!0,this._info={},this._inited=!1,this.isMouseClicked=!1,this._mousemoveCallback=e=>{if(!this.enable)return;if(this.isMouseClicked)return;let t=this._opt.viewer.getViewer().pickByPoint(e);if(!t)return;let i=t.worldPosition,o=i.z,{lat:n,lon:s}=this._opt.viewer.worldToLatLon(i);this._info={latitude:n,longtitude:s,altitude:o};let r=`${n.toFixed(6)}${n>=0?"N":"S"} ${s.toFixed(6)}${s>=0?"E":"W"} ${"-0.000"===o.toFixed(3)?"0.000":o.toFixed(3)}m`;this.domElement.innerHTML=r,this._inited||(this.domElement.style.display="block",this._inited=!0)},this._mousedownCallback=()=>{this.isMouseClicked=!0},this._mouseupCallback=()=>{this.isMouseClicked=!1},this.init()}init(){this._opt.domElement.addEventListener("mousedown",this._mousedownCallback),this._opt.domElement.addEventListener("mouseup",this._mouseupCallback),this._opt.domElement.addEventListener("mousemove",this._mousemoveCallback)}destroy(){this._opt.domElement.removeEventListener("mousemove",this._mousemoveCallback),this._opt.domElement.removeEventListener("mousedown",this._mousedownCallback),this._opt.domElement.removeEventListener("mouseup",this._mouseupCallback),this._opt.domElement.removeChild(this.domElement)}show(){this.domElement.style.display="block",this.enable=!0}hide(){this.domElement.style.display="none",this.enable=!1}isVisible(){return this.enable}getValue(){return this._info}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins").CreditConfig=function(){return{domElement:null,viewer:null,right:10,bottom:10}},function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");t.Credit=class{constructor(e){this._opt=e;const t=e.domElement,o=i.create("div",`bf-credit ${e.class||""}`);t.appendChild(o),this.domElement=o,this.barElement=void 0,this.labelElement=void 0}drawElements(){const{credit:t,text:i,link:o,copyright:n}=this._opt;switch(t){case e.Bimface.Common.Credit.None:this.domElement.innerHTML="";break;case e.Bimface.Common.Credit.OSM:this.domElement.innerHTML=`\n <div class='copyright'>©<a class='text' href='${o}' target='_blank'>OpenStreetMap</a> contributors</div>\n `;break;default:this.domElement.innerHTML=`\n <div class='copyright'>${n}\n <div class='divider'></div>\n <a class='text' href='${o}' target='_blank'>${i}</a> \n </div>\n `}}destroy(){this._opt.domElement.removeChild(this.domElement)}update(e){this._opt=Object.assign({},this._opt,e),this.drawElements()}show(){this.domElement.style.display="block"}hide(){this.domElement.style.display="none"}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Search").SearchConfig=function(){return{wrapElement:null,viewer:null}},function(){var t="Bimface.Plugins.Search",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Search"),n=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),s=function(t){var i=t;if(this._opt=i,this.clear(),!i.viewer)return console.log("viewer is not defined."),!1;let o=new e.Web.Lang.EventManager;this.getEventManager=function(){return o},this.element=n.create("div","bf-search-toolbar"),i.wrapElement.appendChild(this.element),this.init()};s.prototype={addEventListener:function(e,t){this.getEventManager().addEvent(e,t)},removeEventListener:function(e,t){this.getEventManager().removeEvent(e,t)},clickSearch(e){const t=this._opt.viewer,i=this.element.querySelector("input").value;return""==i?(this.clear(),void this.update(e)):i===this._data.text?this.clickArrow(!0,e):void t.search({text:i},(t=>{this._data.index=t.length>0?1:0;let o=this.formatResult(t);this._data.all=o.length,this._data.result=o,this._data.text=i,this._opt.UI.getToolbar("LeftSubToolbar")&&o.length>0&&this._opt.UI.getToolbar("LeftSubToolbar").getControl("LayoutList").setSelectedUiById(0==o[this._data.index-1].viewId?"Model":o[this._data.index-1].viewId),this.update(e),this._data.index&&this.zoomToBbox(o[this._data.index-1])}))},clickArrow(e,t){const i=e?this._data.index+1:this._data.index-1,o=this._data.result,n=this._opt.UI;o.length>0&&(this._data.index=e?i>o.length?1:i:i>0&&i||o.length,n.getToolbar("LeftSubToolbar")&&n.getToolbar("LeftSubToolbar").getControl("LayoutList").setSelectedUiById(0==o[this._data.index-1].viewId?"Model":o[this._data.index-1].viewId),this.update(t),this.zoomToBbox(o[this._data.index-1]))},init:function(){i.send(t,"init"),document.addEventListener("keyup",(e=>{e&&13==e.keyCode&&this.element.querySelector("input")==document.activeElement&&this.clickSearch(!0)})),this.element.addEventListener("click",(e=>{let t=e.target;t.hasClass("gld-bf-search")?this.clickSearch():t.hasClass("gld-bf-arrowup")?this.clickArrow():t.hasClass("gld-bf-arrowdown")&&this.clickArrow(!0)})),this.update()},formatResult(e){let t=[];for(let i=0;i<e.length;i++){const o=e[i];for(let e=0;e<o.data.length;e++){const i=o.data[e];t.push({viewId:o.viewId,content:o.content,modelId:o.modelId,boundingBox:i.boundingBox})}}return t},update:function(e){if(i.send(t,"update"),this.element.innerHTML=`<input value="${this._data.text||""}" placeholder="${BimfaceLanguage.bf_btn_search_textInput}" /><div title="${BimfaceLanguage.bf_btn_search_search}" class='bf-button gld-bf-search'></div><div class='line'></div><span class='count'>${this._data.index}/${this._data.all}</span><div title="${BimfaceLanguage.bf_btn_search_previous}" class='bf-button gld-bf-arrowup'></div><div title="${BimfaceLanguage.bf_btn_search_next}" class='bf-button gld-bf-arrowdown'></div>`,e){let e=this.element.querySelector("input");e.focus();const t=this._data.text;e.value="",e.value=t}},clear:function(){this._data={index:0,all:0,text:"",text:"",result:[]}},zoomToBbox(e){const t=this._opt.viewer;t.showViewById(e.viewId),t.zoomToBoundingBox(e.boundingBox)}},o.Search=s}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SkyBox").SkyBoxStyle=Object.freeze({BlueSky:"BlueSky",CloudySky:"CloudySky",DarkNight:"DarkNight",Galaxy:"Galaxy",Customized:"Customized"}),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SkyBox");t.SkyBoxManagerConfig=class{constructor(){this.customizedImage=null,this.style=null,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.SkyBox");i.SkyBoxManager=class{constructor(e){t.send("Bimface.Plugins.SkyBox.SkyBoxManager","bf_c_skyBoxMng_new"),this._customizedImage=e.customizedImage,this._style=e.style,this._viewer=e.viewer,this._enabled=!1,this.enableSkyBox(!0)}setCustomizedImage(e){this._customizedImage!=e&&(this._customizedImage=e,this._updateSkyBox())}getCustomizedImage(){return this._customizedImage}setStyle(e){this._style!=e&&(this._style=e,this._updateSkyBox())}getStyle(){return this._style}enableSkyBox(e){if(this._enabled!=e){if(this._enabled=e,!this._enabled)this._viewer.getViewer().IBLManager.removeSkyBox();this._updateSkyBox()}}_updateSkyBox(){if(this._enabled){var t=this._viewer.getViewer().IBLManager,i=this._style,o=this._viewer._data,n=[];if(this._style==e.Bimface.Plugins.SkyBox.SkyBoxStyle.Customized&&this._customizedImage?(n.push(this._customizedImage.right),n.push(this._customizedImage.left),n.push(this._customizedImage.top),n.push(this._customizedImage.bottom),n.push(this._customizedImage.front),n.push(this._customizedImage.back)):i=this._style==e.Bimface.Plugins.SkyBox.SkyBoxStyle.Customized?e.Bimface.Plugins.SkyBox.SkyBoxStyle.CloudySky:this._style,0==n.length&&i){var s=(o.dataEnvType==D.Local?o.sdkPath:d.staticHost)+"/resources/SkyBox/Pics/"+i;const e=["posx.jpg","negx.jpg","posy.jpg","negy.jpg","posz.jpg","negz.jpg"];for(var r=0;r<6;++r)n.push(s+"/EnvMap_"+e[r])}t.loadSkyBox(n,!1),t.setSkyBoxType(i)}}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Ground");t.GroundConfig=class{constructor(){this.elevation=0,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Ground");i.Ground=class{constructor(e){t.send("Bimface.Plugins.Ground.Ground","createGround"),this._color=e.color,this._viewer=e.viewer,this._elevation=e.elevation,this._ground=this._viewer.getViewer().createGround(e)}destroy(){this._viewer.getViewer().removeGround(),this._ground=null}setElevation(e){this._ground.setElevation(e)}getElevation(){return this._ground.getElevation()}show(){console.log("This function is not available now")}hide(){console.log("This function is not available now")}update(){console.log("This function is not available now")}setColor(){console.log("This function is not available now")}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.AuxMobile").AuxMobileConfig=function(){return{editor:null,width:3,viewer:null}},function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.AuxMobile"),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");t.AuxMobile=class{constructor(e){this.viewer=e.viewer,this.touchEndCounts=0,this.editor=e.editor,this.showAuxBall=!1,this.outerCircleRadius=60,this.outerCircleFillStyle="rgba(255, 255, 255, 0.3)",this.outerCircleBorderWidth=2,this.outerCircleBorderColor="#999999",this.innerCircleRadius=50,this.innerCircleFillStyle="rgba(204, 204, 204, 0.5)",this.innerCircleBorderWidth=2,this.ballOuterCircleRadius=60,this.ballOuterCircleFillStyle="rgba(255, 255, 255, 0.3)",this.ballOuterCircleBorderWidth=1,this.ballOuterCircleBorderColor="#999999",this.ballInnerCircleRadius=30,this.ballInnerCircleFillStyle="rgba(255, 255, 255, 0.8)",this.ballInnerCircleBorderWidth=2,this.ballDirectionCircleRadius=6,this.ballDirectionCircleFillStyle="rgba(50, 211, 166, 1)",this.ballDirectionCircleBorderWidth=1,this.triangleWidth=20,this.triangleFillStyle="rgba(204, 204, 204, 0.5)",this.triangleBorderWidth=2,this.triangleBorderColor="#999999";let t=this.canvas=i.create("canvas","bf-aux-mobile"),o=this.viewer.getDomElement();t.width=o.offsetWidth,t.height=o.offsetHeight,this.ctx=t.getContext("2d"),o.append(t),this.initPos()}initPos(){let e={x:this.canvas.width/2,y:this.canvas.height/2};this.draw(this.updateAux(e))}setEditor(e){this.editor=e}updateAux(e){this.center=e;let t={outerCircle:{}};if(t.outerCircle.center=e,this.showAuxBall)t.outerCircle.radius=this.ballOuterCircleRadius,t.innerCircle={},t.innerCircle.center=e,t.innerCircle.radius=this.ballInnerCircleRadius;else{t.outerCircle.radius=this.outerCircleRadius,t.innerCircle={},t.innerCircle.center=e,t.innerCircle.radius=this.innerCircleRadius,t.triangle=[];let i={x:e.x-this.outerCircleRadius,y:e.y-this.outerCircleRadius};t.triangle.push({x:i.x,y:i.y}),t.triangle.push({x:i.x+this.triangleWidth,y:i.y}),t.triangle.push({x:i.x,y:i.y+this.triangleWidth})}return t}draw(e){let t=this.ctx;t.clearRect(0,0,this.canvas.width,this.canvas.height);let i=e.outerCircle;t.strokeStyle=this.outerCircleBorderColor,t.lineWidth=this.outerCircleBorderWidth,t.fillStyle=this.outerCircleFillStyle,t.beginPath(),t.arc(i.center.x,i.center.y,i.radius,0,2*Math.PI,!0),t.fill(),t.stroke();let o=e.innerCircle;t.fillStyle=this.innerCircleFillStyle,t.beginPath(),t.arc(o.center.x,o.center.y,o.radius,0,2*Math.PI,!0),t.fill();let n=e.triangle;t.lineWidth=this.triangleBorderWidth,t.fillStyle=this.triangleFillStyle,t.beginPath(),t.moveTo(n[0].x,n[0].y),t.lineTo(n[1].x,n[1].y),t.lineTo(n[2].x,n[2].y),t.closePath(),t.fill(),t.stroke()}drawBall(e){let t=this.ctx;t.clearRect(0,0,this.canvas.width,this.canvas.height);let i=e.outerCircle;t.strokeStyle=this.ballOuterCircleBorderColor,t.lineWidth=this.ballOuterCircleBorderWidth,t.fillStyle=this.ballOuterCircleFillStyle,t.beginPath(),t.arc(i.center.x,i.center.y,i.radius,0,2*Math.PI,!0),t.fill(),t.stroke();let o=e.innerCircle;t.fillStyle=this.ballInnerCircleFillStyle,t.beginPath(),t.arc(o.center.x,o.center.y,o.radius,0,2*Math.PI,!0),t.fill(),t.lineWidth=this.ballDirectionCircleBorderWidth,t.fillStyle=this.ballDirectionCircleFillStyle,t.beginPath(),t.arc(o.center.x,o.center.y,this.ballDirectionCircleRadius,0,2*Math.PI,!0),t.fill(),t.moveTo(o.center.x-this.ballDirectionCircleRadius-3,o.center.y-this.ballDirectionCircleRadius-2),t.lineTo(o.center.x-this.ballDirectionCircleRadius-13,o.center.y),t.lineTo(o.center.x-this.ballDirectionCircleRadius-3,o.center.y+this.ballDirectionCircleRadius+2),t.closePath(),t.fill(),t.beginPath(),t.moveTo(o.center.x+this.ballDirectionCircleRadius+3,o.center.y-this.ballDirectionCircleRadius-2),t.lineTo(o.center.x+this.ballDirectionCircleRadius+13,o.center.y),t.lineTo(o.center.x+this.ballDirectionCircleRadius+3,o.center.y+this.ballDirectionCircleRadius+2),t.closePath(),t.fill()}getRealPoint(e){let t=this.canvas.getBoundingClientRect(),i=this.outerCircleRadius,o=this.outerCircleRadius;return{x:e.x-i+t.left,y:e.y-o+t.top}}getBallRealPoint(e){let t=this.outerCircleRadius,i=this.outerCircleRadius;return{x:e.x-t,y:e.y-i}}showBall(){let e=this.getBallRealPoint(this.center);this.showAuxBall=!0,this.drawBall(this.updateAux(e))}showCanvas(){this.canvas.style.display="block"}hideCanvas(){this.canvas.style.display="none"}formatPoint(e){let t=this.canvas.getBoundingClientRect();return{x:e.x-t.left,y:e.y-t.top}}onTouchStart(e,t){if(t=this.formatPoint(t),!this.touchOnAux(t))return;this.startPoint=t,e.stopImmediatePropagation(),e.preventDefault(),this.editor.touchStartCallback(t)}onTouchMove(e,t){if(t=this.formatPoint(t),!this.touchOnAux(t))return;e.stopImmediatePropagation(),e.preventDefault();let i=this.editor,o=this.updateAux({x:t.x,y:t.y});if(this.showAuxBall){this.drawBall(o);let e=this.startPoint,n=this.getCoordinate(),s=[n.endZ.x-n.start.x,n.endZ.y-n.start.y],r=[t.x-e.x,t.y-e.y],a=this.vectorAngle(s,r);i.touchMoveCallback(this.center,Math.sqrt(Math.pow(r[0],2)+Math.pow(r[1],2))*Math.cos(a))}else{this.draw(o);let e=this.getRealPoint(t);i.touchMoveCallback(e)}}onTouchEnd(e,t,i){if(t=this.formatPoint(t),!this.touchOnAux(t))return;e.stopImmediatePropagation(),e.preventDefault();let o=this.editor;if(this.showAuxBall)o.touchEndCallback(this.center);else{let e=this.getRealPoint(t);o.touchEndCallback(e)}}vectorAngle(e,t){let i=Math.sqrt(e.reduce(((e,t)=>e+Math.pow(t,2)),0)),o=Math.sqrt(t.reduce(((e,t)=>e+Math.pow(t,2)),0));return Math.acos(e.reduce(((e,i,o)=>e+i*t[o]),0)/(i*o))}getNormal(){let e=this.viewer.getViewer().getScene();return CLOUD.FillClipPlaneManager.getInstance(e).renderClipPlane.normal}getCoordinate(){let e=this.viewer._sectionPlane.coordinateSystem,t=e.getCoordinateAxis();return{start:e.drawingToCanvas(t.start.clone()),endZ:e.drawingToCanvas(t.endZ.clone())}}hide(){this.canvas.style.display="none"}show(){this.canvas.style.display="",this.showAuxBall=!1,this.initPos()}destroy(){this.canvas.remove()}redraw(){if(this.center){let e=this.updateAux(this.center);this.draw(e)}}touchOnAux(e){const{center:t,outerCircleRadius:i,ballOuterCircleRadius:o,showAuxBall:n}=this,s=e;let r=t.x-s.x,a=t.y-s.y;return Math.sqrt(r*r+a*a)<=(n&&o||i)}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ClashDetective").ClashDetectivePanelConfig=class{constructor(){this.viewer=null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ClashDetective"),i=e.Bimface.Data.StatisticsDataManager.getInstance();t.ClashDetectivePanel=class{constructor(t){i.send("Bimface.Plugins.ClashDetective.ClashDetectivePanel","bf_c_clashDetectivePanel_new");let o=this;if(this._console=new e.Web.Common.Console,!t)return void this._console.error("clashDetectivePanelConfig must not be empty.");if(!t.viewer||"Viewer3D"===!t.viewer.viewerType)return void this._console.error("viewer must not be empty or viewer3d.");this.clashDetectivePanelConfig=t,this.viewer=t.viewer,this.unitType=this.viewer.getUnit(),this.clashResult={},this.currentIndex=0,this.hasModelA=!1,this.hasModelB=!1,this.isIntegrateA=!1,this.isIntegrateB=!1;var n=new e.Bimface.UI.Panel.PanelConfig;n.title=BimfaceLanguage.bf_panel_clashDetective_clashDetective,n.className="bf-panel clash-detective-panel-wrapper",n.id="clashDetective";let s=e.Web.Lang.Utility.ClientHelper.getIsDesktop();n.css=s?{right:"10px",top:"10px",width:"300px",height:"416px"}:{left:0,top:0,width:"100%",height:"100%"};var r=new e.Bimface.UI.Panel.Panel(n);let a,l;r.addEventListener("Hide",(()=>{this.clearIsolation();let e=document.querySelector(`#itemId_${this.currentIndex}`);e&&e.setAttribute("class","cd-r-list-item"),this.currentIndex=0})),this.clashDetectivePanel=r,this.viewer.clashDetectivePanel=r,this.makeOthersTranslucent=e.Bimface.Viewer.IsolateOption.MakeOthersTranslucent,o._updateModelName=function(e){l=o.viewer.getModels().find((e=>e._data.modelId==o.modelIdA)),!l||e!=o.modelIdA&&e!=l.modelId||(o.hasModelA=!0,a=document.getElementById("cdModelAName"),a&&(a.setAttribute("class","active"),a.removeAttribute("title"),a.innerText=`${l._data.name}${o.isIntegrateA?"(集成模型)":""}`)),l=o.viewer.getModels().find((e=>e._data.modelId==o.modelIdB)),!l||e!=o.modelIdB&&e!=l.modelId||(o.hasModelB=!0,a&&(a=document.getElementById("cdModelBName"),a.setAttribute("class","active"),a.removeAttribute("title"),a.innerText=`${l._data.name}${o.isIntegrateB?"(集成模型)":""}`))},this.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.ModelAdded,this._updateModelName)}setActiveItem(e,t=!1){if(e<=0||this.clashResult&&this.clashResult.results.length&&e>this.clashResult.results.length)return;if(!t){let e=document.querySelector(`#itemId_${this.currentIndex}`);e&&e.setAttribute("class","cd-r-list-item")}let i=this.clashResult.results[e-1],o=document.querySelector(`#itemId_${e}`);o&&o.setAttribute("class","cd-r-list-item active"),this.currentIndex=e,this.isolateComponentsById(i),this.zoomToBoundingBox(i.position,this.unitType)}zoomToBoundingBox(e,t){let i={},o={};"Millimeter"===t?(i={x:e.x+2e3,y:e.y+2e3,z:e.z+2e3},o={x:e.x-2e3,y:e.y-2e3,z:e.z-2e3}):(i={x:e.x+2,y:e.y+2,z:e.z+2},o={x:e.x-2,y:e.y-2,z:e.z-2});let n={max:i,min:o};this.viewer.zoomToBoundingBox(n)}destroy(){this.clashDetectivePanel.close(),this.clearIsolation(),this.viewer.removeEventListener(e.Bimface.Viewer.Viewer3DEvent.ModelAdded,this._updateModelName)}show(){this.clashDetectivePanel.show()}hide(){this.clashDetectivePanel.hide(),this.clearIsolation();let e=document.querySelector(`#itemId_${this.currentIndex}`);e&&e.setAttribute("class","cd-r-list-item"),this.currentIndex=0}setData(e){let t=this;this.clashDetectivePanel.clear(),this.clashResult=e,this.modelIdA=e.selectionA.fileId||e.selectionA.integrateId,this.modelIdB=e.selectionB.fileId||e.selectionB.integrateId,e.selectionA.integrateId&&(this.isIntegrateA=!0),e.selectionB.integrateId&&(this.isIntegrateB=!0);let i=[],o="";e.results.forEach(((e,t)=>{o=`\n <li class="cd-r-list-item" id="itemId_${t+1}">\n <span class="cd-r-list-item-left">${BimfaceLanguage.bf_panel_clashDetective_clash_num}${t+1}:</span>\n <div class="cd-r-list-item-right">\n <p><span>${BimfaceLanguage.bf_panel_clashDetective_componentA}:</span><span>${e.objectIdA}</span></p>\n <p><span>${BimfaceLanguage.bf_panel_clashDetective_componentB}:</span><span>${e.objectIdB}</span></p>\n </div>\n </li>`,i.push(o)}));let n=this.modelIdA,s=this.modelIdB,r=this.viewer.getModels().find((e=>e._data.modelId==this.modelIdA)),a=this.viewer.getModels().find((e=>e._data.modelId==this.modelIdB));r&&(this.hasModelA=!0,n=r._data.name),a&&(this.hasModelB=!0,s=a._data.name);let l=`\n <section class="cd-r-title-wrapper">\n <div class="cd-r-title-item">\n <span>${BimfaceLanguage.bf_panel_clashDetective_modelA}:</span>\n <span id="cdModelAName" class="${this.hasModelA?"active":""}" title="${this.hasModelA?"":"模型未加载"}">\n ${n}${this.isIntegrateA?"(集成模型)":""}\n </span>\n </div>\n <div class="cd-r-title-item">\n <span>${BimfaceLanguage.bf_panel_clashDetective_modelB}:</span>\n <span id="cdModelBName" class="${this.hasModelB?"active":""}" title="${this.hasModelB?"":"模型未加载"}">\n ${s}${this.isIntegrateB?"(集成模型)":""}\n </span>\n </div>\n </section>\n <ul class="cd-r-list-wrapper">\n ${i.join("")}\n </ul>\n `;this.clashDetectivePanel.setHtml(l),this.viewer._opt.domElement.appendChild(this.clashDetectivePanel.element);document.querySelectorAll(".cd-r-list-item").forEach(((e,i)=>{let o=i+1;e.addEventListener("click",(function(){0===t.currentIndex?t.setActiveItem(o,!0):t.currentIndex!==o&&t.setActiveItem(o,!1)}))}))}isolateComponentsById(t){this.clearIsolation();let i=this.viewer.getModels().find((e=>e._data.modelId==this.modelIdA));i&&(i.isolateComponentsById([t.objectIdA,t.objectIdB],this.makeOthersTranslucent),i.overrideComponentsColorById([t.objectIdA],new e.Web.Graphics.Color(229,120,115,1)),i.overrideComponentsFrameColor({ids:[[t.objectIdA]]},new e.Web.Graphics.Color(255,96,88,1)));let o=this.viewer.getModels().find((e=>e._data.modelId==this.modelIdB));o&&(o.isolateComponentsById([t.objectIdA,t.objectIdB],this.makeOthersTranslucent),o.overrideComponentsColorById([t.objectIdB],new e.Web.Graphics.Color(105,205,112,1)),o.overrideComponentsFrameColor({ids:[[t.objectIdB]]},new e.Web.Graphics.Color(75,217,82,1))),this.viewer.render()}clearIsolation(){let e=this.viewer.getModels().find((e=>e._data.modelId==this.modelIdA));e&&(e.clearOverrideColorComponents(),e.restoreComponentsFrameColor({all:!0}),e.clearIsolation());let t=this.viewer.getModels().find((e=>e._data.modelId==this.modelIdB));t&&(t.clearOverrideColorComponents(),t.restoreComponentsFrameColor({all:!0}),t.clearIsolation()),this.viewer.render()}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ClashDetective");let o=e.Web.Lang.Utility.HttpRequest;i.ClashDetectiveManager=class{constructor(i){t.send("Bimface.Plugins.ClashDetective.ClashDetectiveManager","bf_c_clashDetectiveMng_new"),this.viewer=i,this._console=new e.Web.Common.Console}loadClashDetectiveResult(e,t){let i=this;function n(e){i._console.error(e.message)}o.ajax({url:`${i.viewer._opt.APIHost}/inside/databag?viewToken=${e}`,async:!0,success:function(s){const r=JSON.parse(s);if("success"==r.code){let s=r.data&&r.data.modelId;s&&o.ajax({url:`${i.viewer._opt.APIHost}/data/clashDetective/${s}/result?view_token=${e}`,async:!0,success:function(e){var i=JSON.parse(e);"success"==i.code?t&&t(i.data):n(i)},failure:e=>{n(JSON.parse(e))}})}else n(r)},failure:e=>{n(JSON.parse(e))}})}}}();class wn{}wn.loadThirdPartyByName=function(e,t){const i=Glodon.Web.Lang.Utility.HttpRequest,o=window.BimfaceLoaderConfig.fullStaticHost,n=wn.libraryConfig(),s=[],r=n[e]&&n[e].loaderFiles;void 0!==r?(r.map((e=>{s.push(`${o}/lib/${e}`)})),i.getScripts(s,(()=>{t&&t()}))):console.warn("The thirdParty not found")},wn.libraryConfig=function(){return{Video:{loaderName:"Video",loaderFiles:["videojs-7.10.2.js"]}}},function(){var t="Bimface.Plugins.Material.Material",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Material");o.Material=class{constructor(o){var n=this;if(i.send(t,"bf_c_mat_newMat"),o)if(this.id=o.id,this.offset=o.offset,this.rotation=o.rotation,this.scale=o.scale,this.isReverse=o.reverse,this.src=o.src,this.canvas=o.canvas,this.viewer=o.viewer,this.callback=o.callback,this.textureType=o.textureType,this._width=512,this._height=512,this.changedWidth=null,this.changedHeight=null,Object.defineProperty(n,"width",{get:function(){return n._width},set:function(e){n._width!=e&&(n._width=e,null!=n.changedWidth&&n.changedWidth())}}),Object.defineProperty(n,"height",{get:function(){return n._height},set:function(e){n._height!=e&&(n._height=e,null!=n.changedHeight&&n.changedHeight())}}),this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)){switch(this.transparent=o.transparent,this.material=new f.CloudStandardMaterial,this.material.metalness=.5,this.material.roughness=.5,this.material.name=this.id,o.side){case THREE.FrontSide:this.material.side=THREE.FrontSide;break;case THREE.BackSide:this.material.side=THREE.BackSide;break;case THREE.DoubleSide:this.material.side=THREE.DoubleSide;break;default:console.warn("the side para is invalid,default frontSide"),this.material.side=THREE.FrontSide}"image"==this.textureType&&(this.canvas?this._loadCanvasTexture(this.callback):this._loadTexture(this.callback)),"video"==this.textureType&&this._loadVideoTexture(this.callback),"live"==this.textureType&&this._loadLiveTexture(this.callback),this.objectList={},this.objectData={}}else console.log("ERROR::viewer must not be empty or viewer2d.");else console.log("ERROR::materialConfig must not be empty.")}_updateTextureScale(e){const t=[...this.scale];this.isReverse&&(t[0]=-t[0]),e.repeat.fromArray(t)}_loadTexture(e,t){if(!this.src)return;var i=new THREE.Texture,o=this;function n(t){i.image=f.MaterialUtil.ensurePowerOfTwo(t),i.needsUpdate=!0,null!=t.width&&""!=t.width&&(o.width=t.width),null!=t.height&&""!=t.height&&(o.height=t.height),i.offset.fromArray(o.offset),i.rotation=THREE.Math.degToRad(o.rotation),o._updateTextureScale(i),i.encoding=THREE.GammaEncoding,f.MaterialUtil.updateUVMatrix2(i),i.wrapS=THREE.RepeatWrapping,i.wrapT=THREE.RepeatWrapping,o.enableTransparent(o.transparent),e&&e(i)}o.material.map=i;const s=this.viewer.getViewer().modelManager.getImageByUrl(this.src);s?n(s):(new TEST.CryptoResourceLoader).loadURL(this.src,(e=>{var i=new Blob([e],{type:"jpeg"});let o=new Image;o.onload=function(){n(o)},o.onerror=e=>{console.log(e),t&&t(e)},o.src=URL.createObjectURL(i)}),null,(e=>{console.log(e),t&&t(e)}))}_loadVideoTexture(e){if(!this.src)return;var t=this;let i=document.createElement("video"),o=new THREE.VideoTexture(i);t.material.map=o,t.video=i,i.crossOrigin="anonymous",i.addEventListener("loadedmetadata",(function(i){null!=o.image.videoWidth&&""!=o.image.videoWidth&&(t.width=o.image.videoWidth),null!=o.image.videoHeight&&""!=o.image.videoHeight&&(t.height=o.image.videoHeight),o.offset.fromArray(t.offset),o.rotation=THREE.Math.degToRad(t.rotation),t._updateTextureScale(o),f.MaterialUtil.updateUVMatrix2(o),o.wrapS=THREE.ClampToEdgeWrapping,o.wrapT=THREE.ClampToEdgeWrapping,o.minFilter=THREE.LinearFilter,o.magFilter=THREE.LinearFilter,o.needsUpdate=!0,e&&e()}),!1),i.preload="auto",i.autoload=!0,i.autoplay=!0,i.loop=!0,i.muted=!1,i.src=this.src}_loadLiveTexture(e){this.src&&wn.loadThirdPartyByName("Video",(()=>{if(!videojs||"function"!=typeof videojs)return void console.warn("videoJs is not loaded!");let t=document.createElement("video"),i=document.createElement("source");i.type="application/x-mpegURL",i.src=this.src,t.appendChild(i),t.id=this.src,t.crossOrigin="anonymous",this.video=t;let o=videojs(t,void 0,(()=>{})).play();void 0!==o&&o.then((()=>{let i=new THREE.VideoTexture(t);null!=i.image.videoWidth&&""!=i.image.videoWidth&&(this.width=i.image.videoWidth),null!=i.image.videoHeight&&""!=i.image.videoHeight&&(this.height=i.image.videoHeight),i.offset.fromArray(this.offset),i.rotation=THREE.Math.degToRad(this.rotation),this._updateTextureScale(i),f.MaterialUtil.updateUVMatrix2(i),i.wrapS=THREE.ClampToEdgeWrapping,i.wrapT=THREE.ClampToEdgeWrapping,i.minFilter=THREE.LinearFilter,i.magFilter=THREE.LinearFilter,this.material.map=i,this.video=t,i.needsUpdate=!0,e&&e()})),t.addEventListener("loadedmetadata",(e=>{}),!1),t.preload="auto",t.autoload=!0,t.autoplay=!1,t.loop=!0,t.muted=!0,t.src=this.src}))}_loadCanvasTexture(e){if(this.canvas){var t=new THREE.CanvasTexture(this.canvas);null!=this.canvas.width&&""!=this.canvas.width&&(this.width=this.canvas.width),null!=this.canvas.height&&""!=this.canvas.height&&(this.height=this.canvas.height),t.offset.fromArray(this.offset),t.rotation=THREE.Math.degToRad(this.rotation),this._updateTextureScale(t),f.MaterialUtil.updateUVMatrix2(t),t.encoding=THREE.GammaEncoding,t.wrapS=THREE.RepeatWrapping,t.wrapT=THREE.RepeatWrapping,this.material.map=t,this.enableTransparent(this.transparent),e&&e(t)}}enableTransparent(e){this.transparent=e,this.transparent?(this.material.transparent=!0,this.material.alphaMap=this.material.map,this.material.alphaTest=.01):(this.material.transparent=!1,this.material.alphaMap=null,this.material.alphaTest=0),this.material.needsUpdate=!0}overrideComponentsMaterialById(e,o){i.send(t,"bf_c_mat_override");const n=gn({viewer:this.viewer,modelId:o,layerId:o});if(e instanceof Array){var s=this.viewer.getViewer().getFilter();this.objectList[n]||(this.objectList[n]=[]),this.objectList[n].push(...e),s.addToOverrideListByMaterialAndId(e,this.material,n)}else console.log("ERROR::ids should be Array")}overrideComponentsMaterialByObjectData(e,t){const i=gn({viewer:this.viewer,modelId:t,layerId:t});if(e instanceof Array){var o=this.viewer.getViewer().getFilter();this.objectData[i]||(this.objectData[i]=[]),this.objectData[i].push(...e),o.addToOverrideListByMaterial(e,this.material,i)}else console.log("ERROR::conditions should be Array")}clearOverrideComponentsMaterial(e){const t=gn({viewer:this.viewer,modelId:e,layerId:e}),i=this.viewer.getViewer().getFilter(),o=this.objectList[t];o&&(o.length&&i.addToOverrideListByMaterialAndId(o,null,t),delete this.objectList[t]);const n=this.objectData[t];n&&(n.length&&i.addToOverrideListByMaterial(n,null,t),delete this.objectData[t])}getId(){return i.send(t,"bf_c_mat_getId"),this.id}getOffset(){return this.offset}getRotation(){return this.rotation}getScale(){return this.scale}getSrc(){return this.src}getCanvas(){return this.canvas}setOffset(e){e instanceof Array&&2==e.length?(this.offset=e,this.material&&this.material.map&&(this.material.map.offset.fromArray(e),f.MaterialUtil.updateUVMatrix2(this.material.map),this.material.needsUpdate=!0)):console.log("ERROR::offset should be array of 2 elements")}setRotation(e){i.send(t,"bf_c_mat_setRotation"),this.rotation=e,this.material&&this.material.map&&(this.material.map.rotation=THREE.Math.degToRad(this.rotation),f.MaterialUtil.updateUVMatrix2(this.material.map),this.material.needsUpdate=!0)}setScale(e){i.send(t,"bf_c_mat_setScale"),e instanceof Array&&2==e.length?(this.scale=e,this.material&&this.material.map&&(this._updateTextureScale(this.material.map),f.MaterialUtil.updateUVMatrix2(this.material.map),this.material.map.needsUpdate=!0,this.material.needsUpdate=!0)):console.log("ERROR::scale should be array of 2 elements")}setSrc(e){this.src=e,"image"==this.textureType&&this._loadTexture(this.callback),"video"==this.textureType&&this._loadVideoTexture(this.callback)}setCanvas(e){this.canvas=e,this._loadCanvasTexture(this.callback)}reverse(){this.isReverse=!this.isReverse;const e=this.material.map;this.material&&e&&(this._updateTextureScale(e),f.MaterialUtil.updateUVMatrix2(e),e.needsUpdate=!0,this.material.needsUpdate=!0)}}}(),function(){e.Bimface.Data.StatisticsDataManager.getInstance();var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Material");t.MaterialConfig=class{constructor(){this.id=e.Web.Lang.Utility.UUID.createUUID(),this.offset=[0,0],this.rotation=0,this.scale=[1,1],this.src=null,this.canvas=null,this.transparent=!1,this.side=0,this.viewer=null,this.callback=null,this.textureType="image",this.reverse=!1}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Material");i.MaterialContainer=class{constructor(){t.send("Bimface.Plugins.Material.MaterialContainer","bf_c_mat_newMatContainer"),this.materials={}}addMaterial(e){this.materials[e.id]=e}clear(){for(var e in this.materials)this.materials[e].clearOverrideComponentsMaterial();this.materials={}}removeMaterialById(e){this.materials[e]&&(this.materials[e].clearOverrideComponentsMaterial(),delete this.materials[e])}getAllMaterials(){return Object.values(this.materials)}getMaterialById(e){return this.materials[e]}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.AnimationContainer=class{constructor(){t.send("Bimface.Plugins.Animation.AnimationContainer","bf_c_animation_newContainer"),this.animations={},this._console=new e.Web.Common.Console}addAnimation(e){this.animations[e.id]=e}clear(){for(var e in this._console.obsolete("AnimationContainer.clear","AnimationContainer.destroy or AnimationContainer.stop"),this.animations)this.animations[e].stop&&(this.animations[e].stop(),delete this.animations[e])}getAllAnimations(){return Object.values(this.animations)}getAnimationById(e){return this.animations[e]}removeAnimationById(e){this.animations[e]&&(this.animations[e].stop(),delete this.animations[e])}destroy(){for(var e in this.animations)this.animations[e].destroy&&(this.animations[e].destroy(),delete this.animations[e])}stop(){for(var e in this.animations)this.animations[e].stop&&(this.animations[e].stop(),delete this.animations[e])}}}(),function(){var t="Bimface.Plugins.Animation.FlowEffect",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");o.FlowEffect=class{constructor(e){i.send(t,"bf_c_flow_newFlow"),e?(this.material=e.material,this.speed=e.speed,this.viewer=e.viewer,this.id=e.id,this.viewer&&"Viewer3D"!==!this.viewer.viewerType?this.animationId=0:console.log("ERROR::viewer must not be empty or viewer2d.")):console.log("ERROR::flowEffectConfig must not be empty.")}getSpeed(){return this.speed}setSpeed(e){i.send(t,"bf_c_flow_setSpeed"),e instanceof Array&&2==e.length?this.speed=e:console.log("ERROR::speed should be array of 2 elements")}play(){var e=this;!function t(){e.animationId=requestAnimationFrame(t);var i=e.material.getOffset();e.material.setOffset([i[0]+e.speed[0],i[1]+e.speed[1]]),e.viewer.render()}()}stop(){cancelAnimationFrame(this.animationId)}getId(){return i.send(t,"bf_c_flow_id"),this.id}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation").FlowEffectConfig=class{constructor(){this.id=e.Web.Lang.Utility.UUID.createUUID(),this.material=null,this.speed=[0,0],this.viewer=null}},function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.PathAnimation=class{constructor(i){t.send("Bimface.Plugins.Animation.FlowEffect","bf_c_animation_newPath"),i?(this.loop=i.loop,this.isPitchEnabled=i.isPitchEnabled,this.isYawEnabled=i.isYawEnabled,this.objectIds=i.objectIds.length>0?i.objectIds:i.objectNames,this.objectNames=i.objectNames,this.path=i.path instanceof e.Bimface.Plugins.Geometry.SplineCurve?i.path.curve:i.path,this.time=i.time,this.viewer=i.viewer,this.originYaw=i.originYaw,this.originPitch=i.originPitch,this.projectGround=!!i.isProjectGround&&i.isProjectGround,this.id=e.Web.Lang.Utility.UUID.createUUID(),this.animationId=0,this.curvePos=0,this.initDirection=new THREE.Vector3(1,0,0),this.realGroundPath=null,this.projectGround&&this._genGroundPath(),this.viewer&&"Viewer3D"!==!this.viewer.viewerType?this.path||console.log("ERROR::path must not be empty"):console.log("ERROR::viewer must not be empty or viewer2d.")):console.log("ERROR::pathAnimationConfig must not be empty.")}getId(){return this.id}getLoop(){return this.loop}getObjectNames(){return this.objectNames}getObjectIds(){return this.objectIds}getPath(){return this.path}getPitch(){return this.isPitchEnabled}getYaw(){return this.isYawEnabled}getTime(){return this.time}getOriginYaw(){return this.originYaw}getOriginPitch(){return this.originPitch}setLoop(e){this.loop=e}setObjectsByName(e){this.objectNames=e,this.objectIds=e}setObjectsById(e){this.objectIds=e}setOriginPitch(e){this.originPitch=e}setOriginYaw(e){this.originYaw=e}setPitch(e){this.isPitchEnabled=e}setYaw(e){this.isYawEnabled=e}setTime(e){this.time=e}setProjectGround(e){this.projectGround=e,this._genGroundPath()}_genGroundPath(){if(!this.realGroundPath&&this.path){const e=new CLOUD.Raycaster;let t=new THREE.Vector3;const i=this.viewer.getViewer().cameraControl.getIntersectContext(null),o=new CLOUD.IntersectHelper(this.viewer.getViewer());e.camera=i.camera,e.viewportSize=i.viewportSize;let n=[];const s=this.viewer.externalComponentManager._getNodeGroup(),r=s.visible;s.visible=!1;const a=this.viewer.getViewer().getScene().getBoundingBox();this.path.getPoints(200).forEach((s=>{t.copy(s),t=this.viewer.worldToScene(s),t.y=a.max.y+1,e.set(t,new THREE.Vector3(0,-1,0));let r=o.getObjectsByRaycaster(i,e,!0);if(0===r.length)return void n.push(s);let l=this.viewer.sceneToWorld(r[0].point);n.push(l)})),this.realGroundPath=new THREE.CatmullRomCurve3(n),s.visible=r}}_setCameraAnimation(e,t,i){this.camera=e;var o=this.viewer.getViewer().getScene().getMatrixGlobal(),n=new THREE.Vector3(t,0,0);n.applyMatrix4(o),this._cameraDistance=n.x,this._cameraAngle=i<0?2*Math.PI+i:i}_controlCamera(e,t,i){if(this.camera){t.applyAxisAngle(i,this._cameraAngle);var o=this.viewer.getViewer().getScene().getMatrixGlobal();e.applyMatrix4(o),t.applyMatrix4(o),t.normalize(),this.camera.LookAt(e,t,this.camera.up,this._cameraDistance)}}play(t){if(!this.path||!this.viewer)return void console.log("ERROR::viewer or path must not be empty.");var i,o,n,s=this,r=new THREE.Quaternion,a=new THREE.Quaternion,l=new THREE.Vector3(0,0,1),h=new THREE.Vector3,c=(new THREE.Vector3(1,0,0),new THREE.Vector3(0,1,0)),d=new THREE.Vector3(0,1,0);let g=new THREE.Vector3,u=new THREE.Vector3,p=new THREE.Vector3,A=(new Date).valueOf(),m=A-16;!function w(){s.animationId=requestAnimationFrame(w),s.curvePos>=1&&(s.curvePos=s.loop?0:1,t&&t(),s.loop||s.pause()),function(t){s.projectGround?(i=s.realGroundPath.getPointAt(t),o=s.realGroundPath.getTangentAt(t)):(i=s.path.getPointAt(t),o=s.path.getTangentAt(t)),n=o.clone(),o.z=0,o.normalize(),u.set(o.x,o.y,o.z),g.crossVectors(o,l),g.normalize(),p.set(i.x,i.y,i.z),s._controlCamera(p,u,g),r.set(0,0,0,1);var A=0;if(s.isYawEnabled){var m=o.dot(s.initDirection);m=m<-1?-1:m>1?1:m,A=Math.acos(m),A=o.y<0?-A:A}A+=s.originYaw,a.setFromAxisAngle(l,A),r.multiply(a),a.setFromAxisAngle(l,-s.originYaw),c.set(0,1,0),c.applyQuaternion(a),d.set(c.x,c.y,c.z),d.applyQuaternion(r);var w=0;if(s.isPitchEnabled){n.normalize();var C=n.dot(o);C=C<-1?-1:C>1?1:C,w=Math.acos(C),h.crossVectors(o,n),w=h.dot(d)>0?w:-w}w-=s.originPitch,a.setFromAxisAngle(c,w),r.multiply(a);for(var f=0,E=s.objectIds.length;f<E;f++)if(s.viewer.getExternalComponentManager().setTransform(s.objectIds[f],i,void 0,r,(function(){s.stop()})),s.viewer.getExternalObjectManager()._fireTransformedEvent(s.objectIds[f]),s.viewer instanceof e.Bimface.Viewer.ViewerGIS){const e=s.viewer.getLayerManager().getLayerByType("ExternalObjectLayer");for(let t=0;t<e.length;t++){e[t].getExternalObjectManager()._fireTransformedEvent(s.objectIds[t])}}}(s.curvePos),s.viewer.render(),A=(new Date).valueOf();let C=A-m;m=A,s.curvePos+=C/s.time}()}pause(){cancelAnimationFrame(this.animationId)}stop(){cancelAnimationFrame(this.animationId),this.curvePos=0}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");t.PathAnimationConfig=class{constructor(){this.loop=!1,this.isPitchEnabled=!1,this.isYawEnabled=!1,this.objectNames=[],this.objectIds=[],this.originPitch=0,this.originYaw=0,this.path=null,this.time=0,this.viewer=null,this.isProjectGround=!1}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");t.CurveAnimationConfig=class{constructor(){this.curves=null,this.viewer=null,this.type="trail",this.time=null,this.speed=1e4,this.loop=!1}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.CurveAnimation=class{constructor(i){if(t.send("Bimface.Plugins.Animation.FlowEffect","bf_c_animation_newPath"),i)if(this.loop=i.loop,this.curves=i.curves,this.time=i.time,this.viewer=i.viewer,this.speed=i.speed,this.id=e.Web.Lang.Utility.UUID.createUUID(),this.animationId=0,this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS))if(this.curves){this.setType(i.type),this._times=[],this._curvePositions=[];for(let e=0;e<this.curves.length;e++)this._times.push(.1),this._curvePositions.push(0);this.time?this.setTime(this.time):this.setSpeed(this.speed)}else console.log("ERROR::curves must not be empty");else console.log("ERROR::viewer must not be empty or viewer2d.");else console.log("ERROR::curveAnimationConfig must not be empty.")}_addCurvePoints(){this._curvePoints=[];for(let e=0,t=this.curves.length;e<t;e++){let t=this.curves[e],i=new THREE.BufferGeometry;t.geometry instanceof THREE.BufferGeometry?i=t.geometry:(i.setFromObject(t),t.geometry._bufferGeometry=i);let o=i.getAttribute("instanceStart")?i.getAttribute("instanceStart").array:i.getAttribute("position").array;const n=o.length;if(n>3*this._interpolationPositionLength){this._curvePoints.push({points:o,prePositionEnd:0,length:this._computeLength(t,o)});continue}let s=[];for(let e=0;e<n;e+=6)s.push(new THREE.Vector3(o[e],o[e+1],o[e+2]));s.push(new THREE.Vector3(o[n-3],o[n-2],o[n-1])),o=null;let r=new THREE.CatmullRomCurve3(s);r.tension=0,r.type="catmullrom";let a=r.getPoints(this._interpolationPositionLength),l=[];for(let e=0;e<a.length;e++){let t=a[e];l.push(t.x),l.push(t.y),l.push(t.z)}this._curvePoints.push({points:l,prePositionEnd:1,length:r.getLength(),appearedSize:0}),a.length=0}}_distanceTo(e,t,i,o,n,s){const r=o-e,a=n-t,l=s-i,h=r*r+a*a+l*l;return Math.sqrt(h)}_computeLength(t,i){if(t instanceof e.Bimface.Plugins.Geometry.SplineCurve)return t.length;let o=0;for(let e=3;e<i.length;e+=3)o+=this._distanceTo(i[e-3],i[e-2],i[e-1],i[e],i[e+1],i[e+2]);return o}_initializeCurve(){for(let e=0,t=this.curves.length;e<t;e++)this.__initializeCurveByIndex(e);this.viewer.render()}__initializeCurveByIndex(e){let t=this.curves[e],i=t.material;if(i instanceof THREE.LineMaterial||i instanceof CLOUD.MeshLineMaterial)return i.visibility=0,void(i.needsUpdate=!0);let o=this._curvePoints[e];const n=o.points;let s=t.geometry instanceof THREE.BufferGeometry?t.geometry:t.geometry._bufferGeometry;const r=n.length;var a=new Float32Array(r);if(s.getAttribute("instanceStart")){var l=new THREE.InstancedInterleavedBuffer(a,6,1);s.addAttribute("instanceStart",new THREE.InterleavedBufferAttribute(l,3,0)),s.addAttribute("instanceEnd",new THREE.InterleavedBufferAttribute(l,3,3)),l.needsUpdate=!0}else s.addAttribute("position",new THREE.BufferAttribute(a,3));for(let e=0;e<r;e+=3)a[e]=n[0],a[e+1]=n[1],a[e+2]=n[2];o.prePositionEnd=1,o.appearedSize=0}getId(){return this.id}getLoop(){return this.loop}getCurves(){return this.curves}getTime(){return this.time}getSpeed(){return this.speed}setLoop(e){this.loop=e}setSpeed(e){if(e<=0)console.log("ERROR::speed must be >0");else{this.speed=e;for(let t=0;t<this._curvePoints.length;t++){const i=this._curvePoints[t].length;this._times[t]=i/e*1e3}}}setTime(e){if(e<=0)console.log("ERROR::time must not be >0");else{this.time=e;for(let t=0;t<this.curves.length;t++)this._times[t]=e}}play(){if(!this.curves||!this.viewer)return void console.log("ERROR::viewer or curves must not be empty.");var e=this;let t=(new Date).valueOf(),i=t-16;!function o(){e.animationId=requestAnimationFrame(o),function(){t=(new Date).valueOf();let o=t-i;i=t,"trail"==e.type?e._loopTrail(o):e._loopFlow(o)}(),e.viewer.render()}()}_loopFlow(e){var t=this;for(let i=0,o=t.curves.length;i<o;i++){if(t._curvePositions[i]>=1&&(t._curvePositions[i]=t.loop?0:1,!t.loop))continue;let o=t.curves[i];if(!o.geometry)continue;let n=o.material;n instanceof CLOUD.MeshLineMaterial&&n.uniforms.map.value&&(n.uniforms.map.value.offset.y+=e/t._times[i],n.uniforms.map.value.offset.y%=1,CLOUD.MaterialUtil.updateUVMatrix(n.uniforms.map.value),n.needsUpdate=!0),t._curvePositions[i]+=e/t._times[i]}}_loopTrail(e){var t=this;for(let i=0,o=t.curves.length;i<o;i++){let o=t._curvePositions[i];o>=1&&(t._curvePositions[i]=t.loop?0:1,o=t._curvePositions[i],t.loop?(t.__initializeCurveByIndex(i),t.viewer.render()):t.pause());let n=t.curves[i];if(!n.geometry)continue;let s=n.material;if(s instanceof THREE.LineMaterial||s instanceof CLOUD.MeshLineMaterial)s.visibility=o,s.needUpdate=!0;else{let e=n.geometry instanceof THREE.BufferGeometry?n.geometry:n.geometry._bufferGeometry;t._dealLine(e,t._curvePoints[i],o)}t._curvePositions[i]+=e/t._times[i]}}_dealLine(e,t,i){if("trail"!=this.type)return;const o=t.points;let n=e.getAttribute("position").array,s=n.length/3;if(t.prePositionEnd==s)return;let r=t.length*i,a=t.prePositionEnd;for(;a<s;a++){const e=3*a,i=this._distanceTo(o[e-3],o[e-2],o[e-1],o[e],o[e+1],o[e+2]);if(t.appearedSize+i>r)break;t.appearedSize+=i,n.copyWithin(3),n[0]=o[e],n[1]=o[e+1],n[2]=o[e+2]}t.prePositionEnd=a,e.getAttribute("position").needsUpdate=!0}pause(){cancelAnimationFrame(this.animationId)}stop(){cancelAnimationFrame(this.animationId);for(let e=0;e<this._curvePositions.length;e++)this._curvePositions[e]=0;"trail"==this.type&&this._initializeCurve()}setType(e){if(0!=this.animationId&&console.log("Warning::type can not be changed after animation is start"),this.type!=e&&("trail"==e||"flow"==e))if(this.type=e,"trail"==e)this._interpolationPositionLength=100,this._addCurvePoints(),this._initializeCurve();else{this._curvePoints=[];for(let e=0,t=this.curves.length;e<t;e++){const t=this.curves[e].material;t instanceof CLOUD.MeshLineMaterial?(t.visibility=1,t.needsUpdate=!0,this.viewer.render(),this._curvePoints.push({length:t.totalSize})):this._curvePoints.push(1)}}}getType(){return this.type}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Geometry");class o extends i.Plane{constructor(i){t.send("Bimface.Plugins.Geometry.SpatialPlane","bf_c_plane_newPlane"),super(i),i instanceof Array?(this.children=[],this.color=new e.Web.Graphics.Color(50,138,240,.5),this.borderColor=new e.Web.Graphics.Color(50,138,240,1),this.points=i,this.useBorder=!0,this._createPlane()||(this.type="invalidPlane")):console.log("Parameter points should be an array.")}_createGeometry(e){const t=(new THREE.BufferGeometry).setFromPoints(e);t.setIndex([0,1,2,0,2,3]),t.computeVertexNormals();let i=[];return i.push(0,0),i.push(1,0),i.push(1,1),i.push(0,1),t.setAttribute("uv",new THREE.Float32BufferAttribute(i,2)),t}_createPlane(){if(this.points=this._formatPoints(this.points),4!==this.points.length)return this.type="invalidPlane",console.log("Creating a plane needs 4 points."),!1;let e=this._createGeometry(this.points),t=new THREE.Mesh(e,this._createMeshMaterial());return t.updateMatrixWorld(!0),this.add(t),1==this.useBorder&&this.add(this._createBorderLine()),!0}_createBorderLine(){const e=(new THREE.BufferGeometry).setFromPoints(this.points);var t=this._createLineMaterial();return new THREE.Line(e,t)}_formatPoints(e){let t=[];return e.forEach((e=>{t.push(new THREE.Vector3(e.x,e.y,e.z))})),t}}i.SpatialPlane=o}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Geometry");class o extends THREE.Group{constructor(i){t.send("Bimface.Plugins.Geometry.Band","bf_c_band_new"),super(),i&&(this._option=i,this.splineCurve=i.curve,this.color=null==i.color?new e.Web.Graphics.Color(50,138,240,1):i.color,this.material=i.material,this.width=null==i.width?[10,10]:i.width,this.torsionEnable=null!=i.enableTorsion&&i.enableTorsion,this.borderEnable=!(!i.border||!i.border.enable)&&i.border.enable,this.borderWidth=i.border&&i.border.width?i.border.width:1,this.borderColor=i.border&&i.border.color?i.border.color:new e.Web.Graphics.Color(50,138,240,1),this._useMaterial=null==i._useMaterial||i._useMaterial,this._createBand())}_createBand(){if(!this.splineCurve)return;const e=this.splineCurve.curve;if(!e)return;const t=this.splineCurve.points[0],i=this.splineCurve.divisions,o=e.computeFrenetFrames(i,!1);let n=[],s=[],r=this.splineCurve.curvePositions,a=[];if(this.torsionEnable)for(let e=0,l=i;e<=l;e++)n.push(o.normals[e].x,o.normals[e].y,o.normals[e].z),s.push(-o.binormals[e].x,-o.binormals[e].y,-o.binormals[e].z),a.push(r[3*e]-t.x,r[3*e+1]-t.y,r[3*e+2]-t.z);else{let e=new THREE.Vector3,l=new THREE.Vector3(0,0,1);for(let h=0,c=i;h<=c;h++){let i=e.crossVectors(o.tangents[h],l);i.normalize(),n.push(i.x,i.y,i.z),s.push(0,0,1),a.push(r[3*h]-t.x,r[3*h+1]-t.y,r[3*h+2]-t.z)}}let l,h=new CLOUD.BandGeometry;h.setPositions(a,n,s,this.width[0],this.width[1]),this.material&&this._useMaterial?l=this.material.material:(l=new THREE.MeshStandardMaterial({side:THREE.DoubleSide,color:new THREE.Color(this.color.red/255,this.color.green/255,this.color.blue/255),opacity:this.color.alpha,transparent:this.color.alpha<1}),this.colorMaterial=l);let c=new THREE.Mesh(h,l);this.position.set(t.x,t.y,t.z),this.add(c),this.updateMatrixWorld(!0),this.borderEnable&&this._createBorder()}_createBorder(){var e=this.children[0];if(null==e)return;let t=e.geometry.getWireframe(),i=new CLOUD.MeshLineGeometry;i.setPositions(t);let o=new CLOUD.MeshLineMaterial({color:new THREE.Color(this.borderColor.red/255,this.borderColor.green/255,this.borderColor.blue/255),opacity:this.borderColor.alpha,transparent:this.borderColor.alpha<1,resolution:new THREE.Vector2(window.innerWidth,window.innerHeight),linewidth:this.borderWidth,enableSingleExpand:!0}),n=new CLOUD.MeshLine(i,o);n._oriMaterial=n.material,this.add(n),n.updateMatrixWorld(!0)}clone(){let e={curve:this.splineCurve,color:this.color,material:this.material,width:this.width,enableTorsion:this.torsionEnable,border:{enable:this.borderEnable,width:this.borderWidth,color:this.borderColor},_useMaterial:this._useMaterial};return new this.constructor(e)}dispose(){this.children.length=0,this.splineCurve=null,this.material=null,this.color=null}getCurve(){return this.splineCurve}setCurve(t){!t instanceof e.Bimface.Plugins.Geometry.SplineCurve?console.warn("ERROR: curve is not instance of Glodon.Bimface.Plugins.Geometry.SplineCurve"):(this.splineCurve=t,this._needsUpdate=!0)}getColor(){return this.color}setColor(t){if(!t instanceof e.Web.Graphics.Color)console.warn("ERROR: color is not instance of Glodon.Web.Graphics.Color");else{this.color=t;var i=this.children[0];null!=i&&(this.colorMaterial?(this.colorMaterial.color.setRGB(this.color.red/255,this.color.green/255,this.color.blue/255),this.colorMaterial.opacity=this.color.alpha,this.colorMaterial.transparent=this.color.alpha<1,this.colorMaterial.needsUpdate=!0):this.colorMaterial=new THREE.MeshStandardMaterial({side:THREE.DoubleSide,color:new THREE.Color(this.color.red/255,this.color.green/255,this.color.blue/255),opacity:this.color.alpha,transparent:this.color.alpha<1}),i.material=this.colorMaterial,i._oriMaterial=material.material,this._useMaterial=!1)}}getMaterial(){return this.material}setMaterial(t){if(!t instanceof e.Bimface.Plugins.Material.Material)console.warn("ERROR: material is not instance of Glodon.Bimface.Plugins.Material.Material");else{this.material=t;var i=this.children[0];null!=i&&(i.material=t.material,i._oriMaterial=t.material),this._useMaterial=!0}}getWidth(){return this.width}setWidth(e){!e instanceof Array||2!=e.length?console.warn("ERROR: width is not Array with two elements "):this.width[0]==e[0]&&this.width[1]==e[1]||(this.width=e,this._needsUpdate=!0)}isTorsionEnabled(){return this.torsionEnable}enableTorsion(e){e!=this.torsionEnable&&(this.torsionEnable=e,this._needsUpdate=!0)}isBorderEnabled(){return this.borderEnable}enableBorder(e){e!=this.borderEnable&&(this.borderEnable=e,this._updateBorder=!0)}getBorderWidth(){return this.borderWidth}setBorderWidth(e){if(Number(e)){this.borderWidth=e;var t=this.children[1];null!=t&&(t.material.linewidth=this.borderWidth)}else console.warn("ERROR: borderWidth is not Number ")}getBorderColor(){return this.borderColor}setBorderColor(t){if(!t instanceof e.Web.Graphics.Color)console.warn("ERROR: borderColor is not instance of Glodon.Web.Graphics.Color");else{this.borderColor=t;var i=this.children[1];null!=i&&(i.material.color.setRGB(this.borderColor.red/255,this.borderColor.green/255,this.borderColor.blue/255),i.material.opacity=this.borderColor.alpha,i.material.transparent=this.borderColor.alpha<1,i.material.needsUpdate=!0)}}update(){this.splineCurve&&(this._needsUpdate?(this.children.length=0,this._createBand()):this._updateBorder&&(this.borderEnable?this._createBorder():this.remove(this.children[1])),this._needsUpdate=!1,this._updateBorder=!1)}}i.Band=o}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Geometry");class o extends THREE.Group{constructor(i){if(t.send("Bimface.Plugins.Geometry.Pipe","bf_c_pipe_new"),super(),!i)return console.log("option.crossSection.radius must not be undefined "),void console.log("option.rail.line or option.rail.arc must not be undefined ");if(this._option=i,this.cap=null==i.cap?"None":i.cap,this.color=null==i.color?new e.Web.Graphics.Color(50,138,240,1):i.color,!i.crossSection||!i.crossSection.radius)return void console.log("option.crossSection.radius must not be undefined ");if(this.crossSectionRadius=i.crossSection.radius,this.crossSectionSegments=i.crossSection.segments||12,this.material=i.material,!i.rail||!i.rail.line&&!i.rail.arc)return void console.log("option.rail.line or option.rail.arc must not be undefined ");this.rail=i.rail,this._needsUpdate=!1,this._needsUpdateCurve=!1,this._createCurve()&&this._createPipe(),this._geometryUpdated=!1}_createPipe(){let e=this.rail.segments<2?this.rail.segments:this.rail.segments+2,t=new CLOUD.TubeGeometry(this._curve,e,this.crossSectionRadius,this.crossSectionSegments,!1),i=new CLOUD.CloudStandardMaterial({color:new THREE.Color(this.color.red/255,this.color.green/255,this.color.blue/255),opacity:this.color.alpha,transparent:this.color.alpha<1,side:THREE.DoubleSide}),o=new THREE.Mesh(t,i);this.add(o),this.updateMatrixWorld(!0)}_updatePipeGeometry(){let e=this.rail.segments<2?this.rail.segments:this.rail.segments+2,t=new CLOUD.TubeGeometry(this._curve,e,this.crossSectionRadius,this.crossSectionSegments,!1);var i=this.children[0];null!=i&&(i.geometry.dispose(),i.geometry=t,this._geometryUpdated=!0)}_createCurve(){let e=[];if(this.rail.line){this.rail.segments=null==this.rail.segments?1:this.rail.segments;let t=this.rail.line.startPoint,i=this.rail.line.endPoint;e.push(new THREE.Vector3(t.x,t.y,t.z)),e.push(new THREE.Vector3(i.x,i.y,i.z))}else{this.rail.segments=null==this.rail.segments?8:this.rail.segments;let t=this.rail.arc,i=new THREE.Vector3(t.startPoint.x,t.startPoint.y,t.startPoint.z),o=new THREE.Vector3(t.throughPoint.x,t.throughPoint.y,t.throughPoint.z),n=new THREE.Vector3(t.endPoint.x,t.endPoint.y,t.endPoint.z);this._getArcPoints(i,o,n,e)}return 0!=e.length&&(this._curve=new THREE.CatmullRomCurve3(e),this._curve.curveType="centripetal",!0)}_getArcPoints(e,t,i,o){function n(e,t,i,o,n){let s=new THREE.Vector3;e.set(t.x,t.y,t.z),s.addVectors(A,e.applyAxisAngle(i,o)),n.push(s)}let s=t.clone().sub(e),r=i.clone().sub(e);var a=new THREE.Vector3;a.crossVectors(s,r);let l=a.normalize();if(l.equals(new THREE.Vector3))return void console.log("arc's three points must not be collinear.");let h=s.dot(s),c=r.dot(r),d=s.dot(r),g=.5/(h*c-d*d),u=g*c*(h-d),p=g*h*(c-d),A=new THREE.Vector3;A.addVectors(s.multiplyScalar(u),r.multiplyScalar(p)),A.addVectors(A,e);let m=A.distanceTo(e),w=e.clone().sub(A),C=i.clone().sub(A),f=(t.clone().sub(A),Math.acos(w.dot(C)/(m*m))),E=new THREE.Vector3;var B,I,y;E.set(w.x,w.y,w.z),E.applyAxisAngle(l,f),B=E,I=C,y=.1,Math.abs(B.x-I.x)<y&&Math.abs(B.y-I.y)<y&&Math.abs(B.z-I.z)<y||(f=2*Math.PI-f);for(let e=0;e<=8;e++)1==e?n(E,w,l,f*e/1e3,o):8==e&&n(E,w,l,999*f/1e3,o),n(E,w,l,f*e/8,o)}clone(){let e={color:this.color,crossSection:{radius:this.crossSectionRadius,segments:this.crossSectionSegments},rail:this.rail};return new this.constructor(e)}dispose(){this.children.length=0,this._curve=null,this._colorMaterial=null}getColor(){return this.color}setColor(t){if(!t instanceof e.Web.Graphics.Color)return void console.warn("ERROR: color is not instance of Glodon.Web.Graphics.Color");this.color=t;var i=this.children[0];if(null==i)return;let o=i.material;o.color.setRGB(this.color.red/255,this.color.green/255,this.color.blue/255),o.opacity=this.color.alpha,o.transparent=this.color.alpha<1,o.needsUpdate=!0}getCrossSection(){return{radius:this.crossSectionRadius,segments:this.crossSectionSegments}}setCrossSection(e){e.radius&&this.crossSectionRadius!=e.radius&&(this.crossSectionRadius=e.radius,this._needsUpdate=!0),e.segments&&this.crossSectionSegments!=e.segments&&(this.crossSectionSegments=e.segments,this._needsUpdate=!0)}getRail(){return this.rail}setRail(e){e.line?(this.rail.arc=null,this.rail.line=e.line,this._needsUpdateCurve=!0):e.arc&&(this.rail.line=null,this.rail.arc=e.arc,this._needsUpdateCurve=!0),null!=e.segments&&e.segments!=this.rail.segments&&(this.rail.segments=e.segments,this._needsUpdate=!0)}update(){if(!this._needsUpdate&&!this._needsUpdateCurve)return;let e=!0;this._needsUpdateCurve&&(e=this._createCurve(),this._needsUpdateCurve=!1),e&&(this._updatePipeGeometry(),this._needsUpdate=!1,this.externalComponentManager&&this.externalComponentManager.updateSelectEffect())}}i.Pipe=o}();var Cn,fn,En=["attribute vec3 customColor;","attribute float customOpacity;","attribute float customSize;","attribute float customAngle;","attribute float customVisible;","varying vec4 vColor;","varying float vAngle;","#include <common>","#include <logdepthbuf_pars_vertex>","void main()","{"," if ( customVisible > 0.5 )"," vColor = vec4( customColor, customOpacity );"," else"," vColor = vec4(0.0, 0.0, 0.0, 0.0);"," vAngle = customAngle;"," vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );"," gl_PointSize = customSize * ( 300.0 / length( mvPosition.xyz ) );"," gl_Position = projectionMatrix * mvPosition;"," #include <logdepthbuf_vertex>","}"].join("\n"),Bn=["uniform sampler2D pTexture;","varying vec4 vColor;","varying float vAngle;","#include <logdepthbuf_pars_fragment>","void main()","{"," #include <logdepthbuf_fragment>","gl_FragColor = vColor;","float c = cos(vAngle);","float s = sin(vAngle);","vec2 rotatedUV = vec2(c * (gl_PointCoord.x - 0.5) + s * (gl_PointCoord.y - 0.5) + 0.5,","c * (gl_PointCoord.y - 0.5) - s * (gl_PointCoord.x - 0.5) + 0.5);","vec4 rotatedTexture = texture2D( pTexture, rotatedUV );","gl_FragColor = gl_FragColor * rotatedTexture;","}"].join("\n");function In(e,t){this.times=e||[],this.values=t||[]}function yn(){this.position=new THREE.Vector3,this.velocity=new THREE.Vector3,this.acceleration=new THREE.Vector3,this.angle=0,this.angleVelocity=0,this.angleAcceleration=0,this.size=16,this.color=new THREE.Color,this.opacity=1,this.age=0,this.alive=0}function Sn(){this.positionStyle=1,this.positionBase=new THREE.Vector3,this.positionSpread=new THREE.Vector3,this.positionRadius=0,this.velocityStyle=1,this.velocityBase=new THREE.Vector3,this.velocitySpread=new THREE.Vector3,this.speedBase=0,this.speedSpread=0,this.accelerationBase=new THREE.Vector3,this.accelerationSpread=new THREE.Vector3,this.angleBase=0,this.angleSpread=0,this.angleVelocityBase=0,this.angleVelocitySpread=0,this.angleAccelerationBase=0,this.angleAccelerationSpread=0,this.sizeBase=0,this.sizeSpread=0,this.sizeTween=new In,this.colorBase=new THREE.Vector3(0,1,.5),this.colorSpread=new THREE.Vector3(0,0,0),this.colorTween=new In,this.opacityBase=1,this.opacitySpread=0,this.opacityTween=new In,this.blendStyle=THREE.NormalBlending,this.particleArray=[],this.particlesPerSecond=100,this.particleDeathAge=1,this.emitterAge=0,this.emitterAlive=!0,this.emitterDeathAge=60,this.particleCount=this.particlesPerSecond*Math.min(this.particleDeathAge,this.emitterDeathAge)}In.prototype.lerp=function(e){for(var t=0,i=this.times.length;t<i&&e>this.times[t];)t++;if(0==t)return this.values[0];if(t==i)return this.values[i-1];var o=(e-this.times[t-1])/(this.times[t]-this.times[t-1]);return this.values[0]instanceof THREE.Vector3?this.values[t-1].clone().lerp(this.values[t],o):this.values[t-1]+o*(this.values[t]-this.values[t-1])},yn.prototype.update=function(e){if(this.position.add(this.velocity.clone().multiplyScalar(e)),this.velocity.add(this.acceleration.clone().multiplyScalar(e)),this.angle+=.01745329251*this.angleVelocity*e,this.angleVelocity+=.01745329251*this.angleAcceleration*e,this.age+=e,this.sizeTween.times.length>0&&(this.size=this.sizeTween.lerp(this.age)),this.colorTween.times.length>0){var t=this.colorTween.lerp(this.age);this.color=(new THREE.Color).setHSL(t.x,t.y,t.z)}this.opacityTween.times.length>0&&(this.opacity=this.opacityTween.lerp(this.age))},Sn.prototype.setValues=function(e){if(void 0!==e){for(var t in this.sizeTween=new In,this.colorTween=new In,this.opacityTween=new In,e)this[t]=e[t];this.particleArray=[],this.emitterAlive=!0,this.particleCount=this.particlesPerSecond*Math.min(this.particleDeathAge,this.emitterDeathAge),this.particleGeometry=new THREE.BufferGeometry,this.particleMaterial=new THREE.ShaderMaterial({uniforms:{pTexture:{value:this.particleTexture}},vertexShader:En,fragmentShader:Bn,transparent:!0,blending:THREE.NormalBlending,depthWrite:!1}),this.particleMesh=new CLOUD.PointsEx}},Sn.prototype.randomValue=function(e,t){return e+t*(Math.random()-.5)},Sn.prototype.randomVector3=function(e,t){var i=new THREE.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);return(new THREE.Vector3).addVectors(e,i.multiplyVectors(t,i))},Sn.prototype.updateVector3=function(e,t,i){var o=new THREE.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);e.set(0,0,0),e.addVectors(t,o.multiplyVectors(i,o))},Sn.prototype.createParticle=function(){var e=new yn;if(1==this.positionStyle&&(e.position=this.randomVector3(this.positionBase,this.positionSpread)),2==this.positionStyle){var t=2*Math.random()-1,i=6.2832*Math.random(),o=Math.sqrt(1-t*t),n=new THREE.Vector3(o*Math.cos(i),o*Math.sin(i),t);e.position=(new THREE.Vector3).addVectors(this.positionBase,n.multiplyScalar(this.positionRadius))}if(1==this.velocityStyle&&(e.velocity=this.randomVector3(this.velocityBase,this.velocitySpread)),2==this.velocityStyle){var s=(new THREE.Vector3).subVectors(e.position,this.positionBase),r=this.randomValue(this.speedBase,this.speedSpread);e.velocity=s.normalize().multiplyScalar(r)}e.acceleration=this.randomVector3(this.accelerationBase,this.accelerationSpread),e.angle=this.randomValue(this.angleBase,this.angleSpread),e.angleVelocity=this.randomValue(this.angleVelocityBase,this.angleVelocitySpread),e.angleAcceleration=this.randomValue(this.angleAccelerationBase,this.angleAccelerationSpread),e.size=this.randomValue(this.sizeBase,this.sizeSpread);var a=this.randomVector3(this.colorBase,this.colorSpread);return e.color=(new THREE.Color).setHSL(a.x,a.y,a.z),e.opacity=this.randomValue(this.opacityBase,this.opacitySpread),e.age=0,e.alive=0,e.sizeTween=this.sizeTween,e.colorTween=this.colorTween,e.opacityTween=this.opacityTween,e},Sn.prototype.updateParticle=function(e){if(1==this.positionStyle&&this.updateVector3(e.position,this.positionBase,this.positionSpread),2==this.positionStyle){var t=2*Math.random()-1,i=6.2832*Math.random(),o=Math.sqrt(1-t*t),n=new THREE.Vector3(o*Math.cos(i),o*Math.sin(i),t);e.position=(new THREE.Vector3).addVectors(this.positionBase,n.multiplyScalar(this.positionRadius))}if(1==this.velocityStyle&&this.updateVector3(e.velocity,this.velocityBase,this.velocitySpread),2==this.velocityStyle){var s=(new THREE.Vector3).subVectors(e.position,this.positionBase),r=this.randomValue(this.speedBase,this.speedSpread);e.velocity=s.normalize().multiplyScalar(r)}this.updateVector3(e.acceleration,this.accelerationBase,this.accelerationSpread),e.angle=this.randomValue(this.angleBase,this.angleSpread),e.angleVelocity=this.randomValue(this.angleVelocityBase,this.angleVelocitySpread),e.angleAcceleration=this.randomValue(this.angleAccelerationBase,this.angleAccelerationSpread),e.size=this.randomValue(this.sizeBase,this.sizeSpread);var a=this.randomVector3(this.colorBase,this.colorSpread);e.color=e.color.setHSL(a.x,a.y,a.z),e.opacity=this.randomValue(this.opacityBase,this.opacitySpread),e.age=0,e.alive=0},Sn.prototype.initialize=function(){this.sortArray=[],this.positions=new Float32Array(3*this.particleCount),this.customVisible=new Float32Array(this.particleCount),this.customSize=new Float32Array(this.particleCount),this.customColor=new Float32Array(3*this.particleCount),this.customOpacity=new Float32Array(this.particleCount),this.maxSize=200;for(var e=0;e<this.particleCount;e++)this.particleArray[e]=this.createParticle(),this.positions[3*e]=this.particleArray[e].position.x,this.positions[3*e+1]=this.particleArray[e].position.y,this.positions[3*e+2]=this.particleArray[e].position.z,this.customVisible[e]=this.particleArray[e].alive,this.customColor[3*e]=this.particleArray[e].color.r,this.customColor[3*e+1]=this.particleArray[e].color.g,this.customColor[3*e+2]=this.particleArray[e].color.b,this.customOpacity[e]=this.particleArray[e].opacity,this.customSize[e]=this.particleArray[e].size,this.maxSize=this.maxSize>this.customSize[e]?this.maxSize:this.customSize[e];this.particleMaterial.blending=this.blendStyle,this.particleGeometry.setAttribute("position",new THREE.BufferAttribute(this.positions,3)),this.particleGeometry.setAttribute("customColor",new THREE.BufferAttribute(this.customColor,3)),this.particleGeometry.setAttribute("customVisible",new THREE.BufferAttribute(this.customVisible,1)),this.particleGeometry.setAttribute("customSize",new THREE.BufferAttribute(this.customSize,1)),this.particleGeometry.setAttribute("customOpacity",new THREE.BufferAttribute(this.customOpacity,1)),this.particleMesh=new CLOUD.PointsEx(this.particleGeometry,this.particleMaterial),this.particleMesh.dynamic=!0,this.particleMesh.size=this.maxSize,this.particleMesh.renderOrder=CLOUD.GlobalData.IncrementRender?100:-1,this.initializeScale()},Sn.prototype.update=function(e){e=null==e?.015:e;for(var t=[],i=0;i<this.particleCount;i++)this.particleArray[i].alive&&(this.particleArray[i].update(e),this.particleArray[i].age>this.particleDeathAge&&(this.particleArray[i].alive=0,t.push(i)),this.customVisible[i]=this.particleArray[i].alive,this.customOpacity[i]=this.particleArray[i].opacity,this.customSize[i]=this.particleArray[i].size,this.customColor[3*i]=this.particleArray[i].color.r,this.customColor[3*i+1]=this.particleArray[i].color.g,this.customColor[3*i+2]=this.particleArray[i].color.b,this.positions[3*i]=this.particleArray[i].position.x,this.positions[3*i+1]=this.particleArray[i].position.y,this.positions[3*i+2]=this.particleArray[i].position.z,this.maxSize=this.maxSize>this.customSize[i]?this.maxSize:this.customSize[i]);if(this.particleGeometry.getAttribute("customVisible").needsUpdate=!0,this.particleGeometry.getAttribute("customOpacity").needsUpdate=!0,this.particleGeometry.getAttribute("customSize").needsUpdate=!0,this.particleGeometry.getAttribute("customColor").needsUpdate=!0,this.particleGeometry.getAttribute("position").needsUpdate=!0,this.emitterAlive){var o=Math.round(this.particlesPerSecond*(this.emitterAge+0)),n=Math.round(this.particlesPerSecond*(this.emitterAge+e));n>this.particleCount&&(n=this.particleCount);for(i=o;i<n;i++)this.particleArray[i].alive=1;for(var s=0;s<t.length;s++){i=t[s];this.updateParticle(this.particleArray[i]),this.particleArray[i].alive=1,this.positions[3*i]=this.particleArray[i].position.x,this.positions[3*i+1]=this.particleArray[i].position.y,this.positions[3*i+2]=this.particleArray[i].position.z}this.emitterAge+=e}},Sn.prototype.setScale=function(e){for(var t=0,i=this.sizeTween.values.length;t<i;t++)this.sizeTween.values[t]=this.sizeTweenClone[t]*e;this.maxSize=this.maxSizeClone*e},Sn.prototype.setPositionBaseZ=function(e){this.positionBase.z=e},Sn.prototype.setOpacityTween=function(e,t,i,o){this.opacityTween.times[0]=e,this.opacityTween.times[2]=t,this.opacityTween.values[0]=i,this.opacityTween.values[1]=o},Sn.prototype.initializeSizetween=function(e,t){for(var i=0,o=this.sizeTween.values.length;i<o;i++)this.sizeTween.values[i]=this.sizeTween.values[i]*e;this.maxSize*=e;for(i=0;i<this.particleCount;i++)this.particleArray[i].size*=e,this.customSize[i]=this.particleArray[i].size,this.maxSize=this.maxSize>this.customSize[i]?this.maxSize:this.customSize[i];this.particleGeometry.getAttribute("customSize").needsUpdate=!0,this.initializeScale(t)},Sn.prototype.initializeScale=function(e){e=null==e?1:e;var t=this.sizeTween.values;this.sizeTweenClone=[t[0]/e,t[1]/e],this.maxSizeClone=this.maxSize/e},Sn.prototype.updateMaterialParameters=function(e){const t=this.particleMaterial;for(var i in e)t[i]=e[i]},Sn.prototype.destroy=function(){},function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ParticleSystem");class o extends THREE.Group{constructor(e,i){t.send("Bimface.Plugins.ParticleSystem.Fire","bf_c_particleSys_newFire"),super(),null!=e&&1!=e||console.warn("[BIMFACE WARN]: ParticleSystem.Fire() is obsolete, please use ParticleSystem.FireEffect() instead."),this.firePosition={x:0,y:0,z:0},this.position.set(this.firePosition.x,this.firePosition.y,this.firePosition.z),this.fireScale=1,this.type="fire",this.disPickable=!0,this.autoAnimation=!0,this._loadTexture(),this.fireType=null==i?"Fire":i.fireType,this.smokeConcentration=.6,this._initialize()}_initialize(){this.fire=new Sn,this.fire.setValues({positionStyle:1,positionBase:new THREE.Vector3(0,0,600),positionSpread:new THREE.Vector3(1500,1500,600),velocityStyle:1,velocityBase:new THREE.Vector3(0,0,4600),velocitySpread:new THREE.Vector3(1e3,1e3,4600),accelerationBase:new THREE.Vector3(0,0,2600),particleTexture:this.fireParticle,sizeTween:new In([0,.1],[32,200]),opacityTween:new In([.7,1],[.8,0]),colorBase:new THREE.Vector3(.04,1,.4),blendStyle:THREE.AdditiveBlending,particlesPerSecond:80,particleDeathAge:1.5}),this.fire.initialize(),this.fire.updateMaterialParameters({transparent:!1,priorityOrderId:1});var t=2600,i=new In([.5,1,1.7],[0,.3,0]);this.fireType==e.Bimface.Plugins.ParticleSystem.FireType.Smoke&&(t=0,i=new In([0,1,1.3],[.3,.3,0]),this.fire.particleMesh.visible=!1),this.smoke=new Sn,this.smoke.setValues({positionStyle:1,positionBase:new THREE.Vector3(0,0,t),positionSpread:new THREE.Vector3(1500,1500,600),velocityStyle:1,velocityBase:new THREE.Vector3(0,0,3600),velocitySpread:new THREE.Vector3(1800,1800,1100),accelerationBase:new THREE.Vector3(0,0,2600),particleTexture:this.smokeParticle,sizeTween:new In([0,1],[32,200]),opacityTween:i,colorTween:new In([.4,1],[new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,.2)]),blendStyle:THREE.NormalBlending,particlesPerSecond:40,particleDeathAge:2}),this.smoke.initialize(),this.smoke.updateMaterialParameters({transparent:!1,priorityOrderId:1,blending:THREE.CustomBlending,blendSrc:THREE.SrcAlphaFactor,blendDst:THREE.OneMinusSrcAlphaFactor,blendSrcAlpha:THREE.OneFactor,blendDstAlpha:THREE.OneMinusSrcAlphaFactor}),this.add(this.fire.particleMesh),this.add(this.smoke.particleMesh)}_initializeSizetween(e){this.fire.initializeSizetween(e,this.fireScale),this.smoke.initializeSizetween(e,this.fireScale)}update(){this.fire.update(),this.smoke.update()}getPosition(){return this.firePosition}setPosition(e){if(this.firePosition=e,this.position.set(this.firePosition.x,this.firePosition.y,this.firePosition.z),this.updateMatrixWorld(),this.originBox){var t=this.originBox.clone();this.box=t.applyMatrix4(this.matrix),this.levelName=null}}getScale(){return this.fireScale}setScale(e){this.scale.set(e,e,e),this.updateMatrixWorld(),this.fire.setScale(e),this.smoke.setScale(e),this.fireScale=e}_setType(t){if(this.fireType!=t){this.fireType=t;var i=.5*this.smokeConcentration;t==e.Bimface.Plugins.ParticleSystem.FireType.Smoke?(this.smoke.setPositionBaseZ(0),this.fire.particleMesh.visible=!1,this.smoke.setOpacityTween(0,1.3,i,i)):(this.smoke.setPositionBaseZ(2600),this.fire.particleMesh.visible=!0,this.smoke.setOpacityTween(.5,1.7,0,i))}}_setSmokeConcentration(t){if(this.smokeConcentration!=t){this.smokeConcentration=t;var i=.5*this.smokeConcentration;this.fireType==e.Bimface.Plugins.ParticleSystem.FireType.Smoke?this.smoke.setOpacityTween(0,1.3,i,i):this.smoke.setOpacityTween(.5,1.7,0,i)}}_loadTexture(){var e=new THREE.TextureLoader;this.fireParticle=e.load("data:image/png;base64,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"),this.smokeParticle=e.load("data:image/png;base64,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")}}i.Fire=o}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Heatmap").Heatmap2DConfig=class{constructor(){this.boundary=[],this.data=[],this.max=null,this.min=0,this.radius=40,this.viewer=null,this.enableColorLegend=!1}},Cn=window,fn=function(){var e,t={defaultRadius:40,defaultRenderer:"canvas2d",defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}},i=function(){var e=function(e){this._coordinator={},this._data={},this._radi={},this._min=10,this._max=1,this._xField=e.xField||e.defaultXField,this._yField=e.yField||e.defaultYField,this._valueField=e.valueField||e.defaultValueField,e.radius&&(this._cfgRadius=e.radius)},i=t.defaultRadius;return e.prototype={_organiseData:function(e,t){var o=e[this._xField],n=e[this._yField],s=this._radi,r=this._data,a=this._max,l=this._min,h=e[this._valueField]||1,c=e.radius||this._cfgRadius||i;r[o]||(r[o]={},s[o]={}),r[o][n]?r[o][n]+=h:(r[o][n]=h,s[o][n]=c);var d=r[o][n];return d>a?(t?this.setDataMax(d):this._max=d,!1):d<l?(t?this.setDataMin(d):this._min=d,!1):{x:o,y:n,value:h,radius:c,min:l,max:a}},resetRadius:function(e){var t=e/(this._cfgRadius||i);for(var o in this._radi)if(this._radi.hasOwnProperty(o))for(var n in this._radi[o])this._radi[o].hasOwnProperty(n)&&(this._radi[o][n]=this._radi[o][n]*t);this._cfgRadius=e},_unOrganizeData:function(){var e=[],t=this._data,i=this._radi;for(var o in t)for(var n in t[o])e.push({x:o,y:n,radius:i[o][n],value:t[o][n]});return{min:this._min,max:this._max,data:e}},_onExtremaChange:function(){this._coordinator.emit("extremachange",{min:this._min,max:this._max})},addData:function(){if(arguments[0].length>0)for(var e=arguments[0],t=e.length;t--;)this.addData.call(this,e[t]);else this._organiseData(arguments[0],!0);return this},setData:function(e){var t=e.data,i=t.length;this._data={},this._radi={};for(var o=0;o<i;o++)this._organiseData(t[o],!1);return this._max=e.max,this._min=e.min||0,this._onExtremaChange(),this._coordinator.emit("renderall",this._getInternalData()),this},removeData:function(){},setDataMax:function(e){return this._max=e,this._onExtremaChange(),this},setDataMin:function(e){return this._min=e,this._onExtremaChange(),this},setCoordinator:function(e){this._coordinator=e},_getInternalData:function(){return{max:this._max,min:this._min,data:this._data,radi:this._radi}},getData:function(){return this._unOrganizeData()},getDataMax:function(){return this._max},getDataMin:function(){return this._min}},e}(),o=function(){var e=function(e){var t=e.gradient||e.defaultGradient,i=document.createElement("canvas"),o=i.getContext("2d");i.width=256,i.height=1;var n=o.createLinearGradient(0,0,256,1);for(var s in t)n.addColorStop(s,t[s]);return o.fillStyle=n,o.fillRect(0,0,256,1),o.getImageData(0,0,256,1).data},t=function(e,t){var i=document.createElement("canvas"),o=i.getContext("2d"),n=e,s=e;if(i.width=i.height=2*e,1==t)o.beginPath(),o.arc(n,s,e,0,2*Math.PI,!1),o.fillStyle="rgba(0,0,0,1)",o.fill();else{var r=o.createRadialGradient(n,s,e*t,n,s,e);r.addColorStop(0,"rgba(0,0,0,1)"),r.addColorStop(1,"rgba(0,0,0,0)"),o.fillStyle=r,o.fillRect(0,0,2*e,2*e)}return i};function i(t){var i=t.container,o=this.shadowCanvas=document.createElement("canvas"),n=this.canvas=t.canvas||document.createElement("canvas"),s=(this._renderBoundaries=[1e4,1e4,0,0],getComputedStyle(t.container)||{});n.className="heatmap-canvas",this._width=n.width=o.width=t.width||+s.width.replace(/px/,""),this._height=n.height=o.height=t.height||+s.height.replace(/px/,""),this.shadowCtx=o.getContext("2d"),this.ctx=n.getContext("2d"),n.style.cssText=o.style.cssText="position:absolute;left:0;top:0;",i.style.position="relative",i.appendChild(n),this._palette=e(t),this._setStyles(t)}return i.prototype={renderPartial:function(e){this._drawAlpha(e),this._colorize()},renderAll:function(e){this._clear(),this._drawAlpha(function(e){for(var t=[],i=e.min,o=e.max,n=e.radi,s=(e=e.data,Object.keys(e)),r=s.length;r--;)for(var a=s[r],l=Object.keys(e[a]),h=l.length;h--;){var c=l[h],d=e[a][c],g=o-i==0?0:n[a][c]*(d-i)/(o-i);g<0||t.push({x:a,y:c,value:d,radius:g})}return{min:i,max:o,data:t}}(e)),this._colorize()},_updateGradient:function(t){this._palette=e(t)},updateConfig:function(e){e.gradient&&this._updateGradient(e),this._setStyles(e)},setDimensions:function(e,t){this._width=e,this._height=t,this.canvas.width=this.shadowCanvas.width=e,this.canvas.height=this.shadowCanvas.height=t},_clear:function(){this.shadowCtx.clearRect(0,0,this._width,this._height),this.ctx.clearRect(0,0,this._width,this._height)},_setStyles:function(e){this._blur=0==e.blur?0:e.blur||e.defaultBlur,this._width=this.canvas.width=this.shadowCanvas.width=e.width||this._width,this._height=this.canvas.height=this.shadowCanvas.height=e.height||this._height,e.backgroundColor&&(this.canvas.style.background=e.backgroundColor),this._opacity=255*(e.opacity||0),this._maxOpacity=255*(e.maxOpacity||e.defaultMaxOpacity),this._minOpacity=255*(e.minOpacity||e.defaultMinOpacity),this._useGradientOpacity=!!e.useGradientOpacity},_drawAlpha:function(e){for(var i=this._min=e.min,o=this._max=e.max,n=(e=e.data||[]).length,s=1-this._blur;n--;){var r=e[n],a=r.x,l=r.y,h=r.radius,c=Math.min(r.value,o),d=a-h,g=l-h,u=this.shadowCtx,p=t(h,s),A=(c-i)/(o-i);u.globalAlpha=A<.01?.01:A,p.height>0&&p.width>0&&u.drawImage(p,d,g),d<this._renderBoundaries[0]&&(this._renderBoundaries[0]=d),g<this._renderBoundaries[1]&&(this._renderBoundaries[1]=g),d+2*h>this._renderBoundaries[2]&&(this._renderBoundaries[2]=d+2*h),g+2*h>this._renderBoundaries[3]&&(this._renderBoundaries[3]=g+2*h)}},_colorize:function(){var e=this._renderBoundaries[0],t=this._renderBoundaries[1],i=this._renderBoundaries[2]-e,o=this._renderBoundaries[3]-t,n=(e=0,t=0,i=this._width,o=this._height,this._width),s=this._height,r=this._opacity,a=this._maxOpacity,l=this._minOpacity,h=this._useGradientOpacity;e<0&&(e=0),t<0&&(t=0),e+i>n&&(i=n-e),t+o>s&&(o=s-t);for(var c=this.shadowCtx.getImageData(e,t,i,o),d=c.data,g=d.length,u=this._palette,p=3;p<g;p+=4){var A,m=d[p],w=4*m;w&&(A=r>0?r:m<a?m<l?l:m:a,d[p-3]=u[w],d[p-2]=u[w+1],d[p-1]=u[w+2],d[p]=h?u[w+3]:A)}this.ctx.putImageData(c,e,t),this._renderBoundaries=[1e3,1e3,0,0]},getValueAt:function(e){var t=this.shadowCtx.getImageData(e.x,e.y,1,1).data[3],i=this._max,o=this._min;return Math.abs(i-o)*(t/255)>>0},getDataURL:function(){return this.canvas.toDataURL()},getCanvas:function(){return this.canvas}},i}(),n=(e=!1,"canvas2d"===t.defaultRenderer&&(e=o),e),s=function(){for(var e={},t=arguments.length,i=0;i<t;i++){var o=arguments[i];for(var n in o)e[n]=o[n]}return e},r=function(){var e=function(){function e(){this.cStore={}}return e.prototype={on:function(e,t,i){var o=this.cStore;o[e]||(o[e]=[]),o[e].push((function(e){return t.call(i,e)}))},emit:function(e,t){var i=this.cStore;if(i[e])for(var o=i[e].length,n=0;n<o;n++)(0,i[e][n])(t)}},e}(),o=function(e){var t=e._renderer,i=e._coordinator,o=e._store;i.on("renderpartial",t.renderPartial,t),i.on("renderall",t.renderAll,t),i.on("extremachange",(function(t){e._config.onExtremaChange&&e._config.onExtremaChange({min:t.min,max:t.max,gradient:e._config.gradient||e._config.defaultGradient})})),o.setCoordinator(i)};function r(){var r=this._config=s(t,arguments[0]||{});if(this._coordinator=new e,r.plugin){var a=r.plugin;if(!t.plugins[a])throw new Error("Plugin '"+a+"' not found. Maybe it was not registered.");var l=t.plugins[a];this._renderer=new l.renderer(r),this._store=new l.store(r)}else this._renderer=new n(r),this._store=new i(r);o(this)}return r.prototype={addData:function(){return this._store.addData.apply(this._store,arguments),this},removeData:function(){return this._store.removeData&&this._store.removeData.apply(this._store,arguments),this},setData:function(){return this._store.setData.apply(this._store,arguments),this},setDataMax:function(){return this._store.setDataMax.apply(this._store,arguments),this},setDataMin:function(){return this._store.setDataMin.apply(this._store,arguments),this},configure:function(e){return this._config=s(this._config,e),this._renderer.updateConfig(this._config),e.radius&&this._store.resetRadius(e.radius),this},repaint:function(){return this._coordinator.emit("renderall",this._store._getInternalData()),this},getDataMax:function(){return this._store.getDataMax()},getDataMin:function(){return this._store.getDataMin()},getData:function(){return this._store.getData()},getDataURL:function(){return this._renderer.getDataURL()},getCanvas:function(){return this._renderer.getCanvas()},getValueAt:function(e){return this._store.getValueAt?this._store.getValueAt(e):this._renderer.getValueAt?this._renderer.getValueAt(e):null}},r}();return{create:function(e){return new r(e)},register:function(e,i){t.plugins[e]=i}}},"undefined"!=typeof module&&module.exports?module.exports=fn():"function"==typeof define&&define.amd?define(fn):Cn.heatmapJS=fn(),function(){e.Bimface.Data.StatisticsDataManager.getInstance();var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Heatmap");class i extends e.Bimface.Plugins.Geometry.Plane{constructor(e,t){super(e),this.useBorder=!1,this.setRotationFromQuaternion(t)}_createPlane(){var t=this,i=new e.Bimface.Plugins.Geometry.PlaneBufferGeometry(this.points);if(i.invalid)return!1;t.handlePoints=i.handlePoints,t.minX=i.minX,t.minY=i.minY,t.maxX=i.maxX,t.maxY=i.maxY;var o=this._createMeshMaterial(),n=new THREE.Mesh(i,o);return n.position.copy(new THREE.Vector3(0,0,t.height)),n.renderOrder=CLOUD.GlobalData.IncrementRender?100:-1,t.add(n),!0}_createMeshMaterial(){return new CLOUD.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0})}setMapByCanvas(e){var t=this.children[0];if(t){var i=new THREE.Texture(e);i.flipY=!1,t.material.transparent=!0,t.material.map=i,t.material.needsUpdate=!0}}updateMap(){var e=this.children[0];e&&(e.material.map.needsUpdate=!0)}}t.Heatmap2DPlane=i}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Heatmap");let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");class n extends THREE.Group{constructor(i){t.send("Bimface.Plugins.Heatmap.Heatmap2D","bf_c_heatmap_new"),super(),i?(this.boundary=i.boundary,this.data=i.data,this.max=i.max,this.min=i.min,this.radius=i.radius,this.viewer=i.viewer,this._enableColorLegend=i.enableColorLegend,this.defaultGradient={.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},this.defaultLegendBackground="linear-gradient(180deg, #FF2600 0%, #EFF900 14%, #00F900 38%, #0349E0 66%, #EBECFF 100%)",this.gradient=Object.assign({},this.defaultGradient),this.legendBackground=this.defaultLegendBackground,this.viewer?"Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS?(this._enableColorLegend&&this._createColorLegend(),this._rotateBoundary(this.boundary),this.plane=new e.Bimface.Plugins.Heatmap.Heatmap2DPlane(this._newBoundary,this._reverseQuaternion),"invalidPlane"!=this.plane.type&&(this._initializeHeatmap(),this.needRepaintHeatmap=!1,this.plane.setMapByCanvas(this.heatmap.getCanvas()),this.add(this.plane),this._addSence(),this.maxSetted=!1,this.disPickable=!0,this.tmpV=new THREE.Vector3)):console.log("ERROR::viewer must not be empty or viewer2d."):console.log("ERROR::viewer must not be empty.")):console.log("ERROR::heatmap2DConfig must not be empty.")}_rotateBoundary(e){function t(e,t){return new THREE.Vector3(e.x-t.x,e.y-t.y,e.z-t.z)}let i=t(e[1],e[0]).normalize(),o=t(e[2],e[1]).normalize(),n=i.cross(o).normalize(),s=new THREE.Quaternion;s.setFromUnitVectors(n,new THREE.Vector3(0,0,1)),this._quaternion=s;let r=[];e.forEach((function(e){let t=new THREE.Vector3(e.x,e.y,e.z);t.applyQuaternion(s),r.push(t)})),this._reverseQuaternion=s.clone().setFromUnitVectors(new THREE.Vector3(0,0,1),n),this._newBoundary=r}_addSence(){var t=this;t.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t.viewer),t.objectId=e.Web.Lang.Utility.UUID.createUUID(),t.extObjMngId=t.extObjMng._addObject(t.objectId,t)}_createColorLegend(){let e=o.create("div","bf-colorLegend");e.innerHTML="<div class='bf-colorLegend-card'></div><span class='bf-colorLegend-max'></span><span class='bf-colorLegend-min'></span>",this.viewer.getDomElement().appendChild(e),this.colorLegendPanel=e,this._enableColorLegend=!0,this._updateColorLegend()}enableColorLegend(e){e?this.colorLegendPanel?(this._showColorLegendPanel(!0),this._updateColorLegend()):this._createColorLegend():this._showColorLegendPanel(!1)}_updateColorLegend(){if(this.colorLegendPanel&&this._enableColorLegend){let e=this.colorLegendPanel.querySelector(".bf-colorLegend-max"),t=this.colorLegendPanel.querySelector(".bf-colorLegend-min");e.innerText=parseInt(this.getDataMax()),t.innerText=parseInt(this.getDataMin())}}_showColorLegendPanel(e){this.colorLegendPanel&&(this._enableColorLegend=e,this.colorLegendPanel.style.display=e?"block":"none")}_disposeColorLegendPanel(){this.colorLegendPanel&&(this.colorLegendPanel.parentElement.removeChild(this.colorLegendPanel),this.colorLegendPanel=null)}_initializeHeatmap(){var e=256,t=256;this.heatmap=heatmapJS.create({container:document.createElement("div"),width:e,height:t,gradient:this.gradient});var i=this.plane.maxX-this.plane.minX,o=this.plane.maxY-this.plane.minY;this.dataScale={x:e/i,y:t/o},this.data.length>0&&this.setData(this.data)}_changeDataForHeatmap(e){let t=this.tmpV;t.set(e.x,e.y,e.z||0),t.applyQuaternion(this._quaternion);var i=(t.x-this.plane.minX)*this.dataScale.x;i=i>0?i:0,o=o>0?o:0;var o=(t.y-this.plane.minY)*this.dataScale.y;return{x:i,y:o,value:e.value}}dispose(){this.extObjMng.removeById(this.extObjMngId),this.plane.dispose(),this.plane=null,this.heatmap=null,this.viewer=null,this.boundary=null,this.data=null,this.dataScale=null,this.objectId=null,this._disposeColorLegendPanel()}addData(e){if("invalidPlane"!=this.plane.type)if(e instanceof Array&&!(e.length<=0)){for(var t=[],i=0,o=e.length;i<o;i++){var n=this._changeDataForHeatmap(e[i]);t.push(n),this.data.push(e[i]),this.maxSetted||(this.max=this.max>n.value?this.max:n.value)}this.needRepaintHeatmap=!0,this.heatmap.addData(t),this._updateColorLegend()}else console.log("ERROR::data must be array and length >0")}setData(e){if("invalidPlane"!=this.plane.type)if(e instanceof Array&&!(e.length<=0)){this.data=e,this.max=this.maxSetted?this.max:this.min;for(var t=[],i=0,o=e.length;i<o;i++){var n=this._changeDataForHeatmap(e[i]);t.push(n),this.maxSetted||(this.max=this.max>n.value?this.max:n.value)}this.heatmap.setData({max:this.max,min:this.min,data:t}),this._updateColorLegend()}else console.log("ERROR::data must be array and length >0")}setDataMax(e){"invalidPlane"!=this.plane.type&&(this.maxSetted=!0,this.max=e,this.heatmap.setDataMax(e),this.needRepaintHeatmap=!0,this._updateColorLegend())}setDataMin(e){"invalidPlane"!=this.plane.type&&(this.min=e,this.heatmap.setDataMin(e),this.needRepaintHeatmap=!0,this._updateColorLegend())}setRadius(e){"invalidPlane"!=this.plane.type&&(this.radius=e,this.heatmap.configure({radius:e}),this.needRepaintHeatmap=!0)}getData(){return this.data}getDataMax(){return this.max}getDataMin(){return this.min}getRadius(){return this.radius}getBoundary(){return this.boundary}hide(){this.plane.visible=!1,this.viewer.render(),this._showColorLegendPanel(!1)}show(){this.plane.visible=!0,this.viewer.render(),this._showColorLegendPanel(!0)}update(){"invalidPlane"!=this.plane.type&&(this.needRepaintHeatmap&&(this.heatmap.repaint(),this.needRepaintHeatmap=!1),this.plane.updateMap(),this.viewer.render(),this._updateColorLegend())}setHeatMapColor(t){if(String.prototype.insert=function(e,t){return e>0?this.substring(0,e)+t+this.substr(e):t+this},this.gradient={},this.legendBackground="linear-gradient(180deg)",Object.entries(t).sort().reverse().forEach((([t,i])=>{if(!(i instanceof e.Web.Graphics.Color))return console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),void(this.gradient=Object.assign({},this.defaultGradient));this.gradient=Object.assign(this.gradient,{[t]:i.getRGB()});const o=this.legendBackground.lastIndexOf(")"),n=100*(1-[t])+"%";this.legendBackground=this.legendBackground.insert(o,`, ${i.getRGB()} ${n}`)})),this.colorLegendPanel&&this._enableColorLegend){this.colorLegendPanel.querySelector(".bf-colorLegend-card").style.setProperty("background",this.legendBackground)}this._initializeHeatmap(),this.needRepaintHeatmap=!1,this.plane.setMapByCanvas(this.heatmap.getCanvas()),this.setRadius(this.getRadius()),this.update()}getHeatMapColor(){return this.gradient}restoreHeatMapColor(){if(this.gradient=Object.assign({},this.defaultGradient),this.legendBackground=this.defaultLegendBackground,this.colorLegendPanel&&this._enableColorLegend){this.colorLegendPanel.querySelector(".bf-colorLegend-card").style.setProperty("background",this.legendBackground)}this._initializeHeatmap(),this.needRepaintHeatmap=!1,this.plane.setMapByCanvas(this.heatmap.getCanvas()),this.setRadius(this.getRadius()),this.update()}}i.Heatmap2D=n}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Heatmap");let o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),n=new THREE.Matrix4;class s extends THREE.Group{constructor(i){if(t.send("Bimface.Plugins.Heatmap.Heatmap3D","bf_c_heatmap3d_new"),super(),i)if(this.boundary=i.boundary,this.boundaryHeight=i.boundaryHeight,this.data=i.data,this.max=i.max,this._maxSetted=null!=this.max,this.min=i.min,this.radius=i.radius,this.viewer=i.viewer,this._enableColorLegend=i.enableColorLegend,this.defaultGradient={.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},this.defaultLegendBackground="linear-gradient(180deg, #FF2600 0%, #EFF900 14%, #00F900 38%, #0349E0 66%, #EBECFF 100%)",this.gradient=Object.assign({},this.defaultGradient),this.legendBackground=this.defaultLegendBackground,this.viewer)if("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS){if(this._enableColorLegend&&this._createColorLegend(),this._invalid=!1,this._checkIntersect(this.boundary))return console.warn("Failed to create, the boundary is self-intersecting."),void(this._invalid=!0);this.handlePoints.push(new THREE.Vector2(this.boundary[0].x,this.boundary[0].y)),this.offsetZ=this.boundary[0].z,this._needsUpdate=!1,this._radiusScale=new THREE.Vector3,this._normalizeMatrix=new THREE.Matrix4,this._getTransformInfo(),this._heatmap=new CLOUD.Heatmap3D({viewer:this.viewer.getViewer(),boundary:this.handlePoints,height:this.boundaryHeight,offsetZ:this.offsetZ,data:this._handleHeatmapData(),normalizeMatrix:this._normalizeMatrix,radiusScale:this._radiusScale,resolution:this._resolution}),this.add(this._heatmap),this._addSence(),this.disPickable=!0,this.tmpV=new THREE.Vector3}else console.log("ERROR::viewer must not be empty or viewer3D.");else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::heatmap3DConfig must not be empty.")}_checkIntersect(t){var i=this,o=new THREE.Vector2(t[0].x,t[0].y);i.handlePoints=[],i.handlePoints.push(o),i.minX=o.x,i.maxX=o.x,i.minY=o.y,i.maxY=o.y;for(var n=1;n<t.length;n++){if(null==t[n].x||null==t[n].y||null==t[n].z)return console.log("Failed to create, the format is not right, please follow [{x:,y:,z:},...]"),!0;o=new THREE.Vector2(t[n].x,t[n].y);i.handlePoints.push(o),i.minX>o.x&&(i.minX=o.x),i.minY>o.y&&(i.minY=o.y),i.maxX<o.x&&(i.maxX=o.x),i.maxY<o.y&&(i.maxY=o.y)}return e.Bimface.Plugins.Geometry.PlaneBufferGeometry.checkIntersect(i.handlePoints)}_getTransformInfo(){this._resolution={x:81,y:81,z:81};var e=this.maxX-this.minX,t=this.maxY-this.minY;this.dataScale={x:this._resolution.x/e,y:this._resolution.y/t,z:this._resolution.z/this.boundaryHeight},this._normalizeMatrix.makeTranslation(-this.minX,-this.minY,0);let i=Math.max(Math.max(e,t),this.boundaryHeight);n.makeScale(1/e,1/t,1/this.boundaryHeight),this._normalizeMatrix.multiplyMatrices(n,this._normalizeMatrix),this._radiusScale.set(i/e,i/t,i/this.boundaryHeight)}_handleHeatmapData(){var e=this.data;if(!this._maxSetted){this.max=this.min;for(var t=0,i=e.length;t<i;t++)this.max=this.max>e[t].value?this.max:e[t].value}var o=[];for(t=0,i=e.length;t<i;t++){var n=this._changeDataForHeatmap(e[t]);o.push(n)}return o}_changeDataForHeatmap(e){var t=(e.x-this.minX)*this.dataScale.x;t=t>0?t:0,i=i>0?i:0;var i=(e.y-this.minY)*this.dataScale.y,o=(e.z-this.offsetZ)*this.dataScale.z,n=(e.value-this.min)/(this.max-this.min);n=Math.min(Math.max(0,n),1);var s=this.radius*n/256*this._resolution.x;return{x:t,y:i,z:o,value:n,radius:s=Math.max(0,s)}}_addSence(){var t=this;t.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t.viewer),t.objectId=e.Web.Lang.Utility.UUID.createUUID(),t.extObjMngId=t.extObjMng._addObject(t.objectId,t)}dispose(){this.extObjMng.removeById(this.extObjMngId),this._heatmap.dispose(),this._heatmap=null,this.heatmap=null,this.viewer=null,this.boundary=null,this.data=null,this.dataScale=null,this.objectId=null,this._disposeColorLegendPanel()}addData(e){if(!this._invalid)if(e instanceof Array&&!(e.length<=0)){for(var t=0,i=e.length;t<i;t++)this.data.push(e[t]);this._needsUpdate=!0,this._updateColorLegend()}else console.log("ERROR::data must be array and length >0")}setData(e){this._invalid||(e instanceof Array&&!(e.length<=0)?(this.data=e,this._needsUpdate=!0,this._updateColorLegend()):console.log("ERROR::data must be array and length >0"))}setDataMax(e){this._invalid||(this._maxSetted=!0,this.max!=e&&(this.max=e,this._needsUpdate=!0,this._updateColorLegend()))}setDataMin(e){this._invalid||this.min==e||(this.min=e,this._needsUpdate=!0,this._updateColorLegend())}setRadius(e){this._invalid||this.radius==e||(this.radius=e,this._needsUpdate=!0)}getData(){return this.data}getDataMax(){return this.max}getDataMin(){return this.min}getRadius(){return this.radius}getBoundary(){return this.boundary}getBoundaryHeight(){return this.boundaryHeight}hide(){this.visible=!1,this.viewer.render(),this._showColorLegendPanel(!1)}show(){this.visible=!0,this.viewer.render(),this._showColorLegendPanel(!0)}update(){if(!this._invalid){if(this._needsUpdate){let e=this._handleHeatmapData();this._heatmap.updateDensityMap(e),this._needsUpdate=!1}this.viewer.render(),this._updateColorLegend()}}_createColorLegend(){let e=o.create("div","bf-colorLegend");e.innerHTML="<div class='bf-colorLegend-card'></div><span class='bf-colorLegend-max'></span><span class='bf-colorLegend-min'></span>",this.viewer.getDomElement().appendChild(e),this.colorLegendPanel=e,this._enableColorLegend=!0,this._updateColorLegend()}enableColorLegend(e){e?this.colorLegendPanel?(this._showColorLegendPanel(!0),this._updateColorLegend()):this._createColorLegend():this._showColorLegendPanel(!1)}_updateColorLegend(){if(this.colorLegendPanel&&this._enableColorLegend){let e=this.colorLegendPanel.querySelector(".bf-colorLegend-max"),t=this.colorLegendPanel.querySelector(".bf-colorLegend-min");e.innerText=parseInt(this.getDataMax()),t.innerText=parseInt(this.getDataMin())}}_showColorLegendPanel(e){this.colorLegendPanel&&(this._enableColorLegend=e,this.colorLegendPanel.style.display=e?"block":"none")}_disposeColorLegendPanel(){this.colorLegendPanel&&(this.colorLegendPanel.parentElement.removeChild(this.colorLegendPanel),this.colorLegendPanel=null)}setHeatMapColor(t){if(String.prototype.insert=function(e,t){return e>0?this.substring(0,e)+t+this.substr(e):t+this},this.gradient={},this.legendBackground="linear-gradient(180deg)",Object.entries(t).sort().reverse().forEach((([t,i])=>{if(!(i instanceof e.Web.Graphics.Color))return console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),void(this.gradient=Object.assign({},this.defaultGradient));this.gradient=Object.assign(this.gradient,{[t]:i.getRGB()});const o=this.legendBackground.lastIndexOf(")"),n=100*(1-[t])+"%";this.legendBackground=this.legendBackground.insert(o,`, ${i.getRGB()} ${n}`)})),this._heatmap.setGradient(this.gradient),this.viewer.render(),this.colorLegendPanel&&this._enableColorLegend){this.colorLegendPanel.querySelector(".bf-colorLegend-card").style.setProperty("background",this.legendBackground)}}getHeatMapColor(){return this.gradient}restoreHeatMapColor(){if(this.gradient=Object.assign({},this.defaultGradient),this._heatmap.setGradient(this.gradient),this.viewer.render(),this.legendBackground=this.defaultLegendBackground,this.colorLegendPanel&&this._enableColorLegend){this.colorLegendPanel.querySelector(".bf-colorLegend-card").style.setProperty("background",this.legendBackground)}}}i.Heatmap3D=s}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Heatmap");t.Heatmap3DConfig=class{constructor(){this.boundary=[],this.boundaryHeight=30,this.data=[],this.max=null,this.min=0,this.radius=40,this.viewer=null,this.enableColorLegend=!1}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.RingScanEffect=class{constructor(i){var o=this;if(t.send("Bimface.Plugins.Animation.RingScanEffect","bf_c_RingScan_new"),i)if(i.viewer){if("Viewer3D"===i.viewer.viewerType)o.isViewerGIS=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");o.isViewerGIS=!0}i.color instanceof e.Web.Graphics.Color?o.color=i.color:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),o.duration=i.duration,o.originPosition=i.originPosition,o.radius=i.radius,o.emitPosition=i.emitPosition,o.progressive=i.progressive,o.range=[],o.viewer=i.viewer.getViewer(),o.scene=o.viewer.getScene(),o.id=e.Web.Lang.Utility.UUID.createUUID(),o._updateParameter(),o.ringScanEffect=o.viewer.addRingScanEffect({color:o._color,alpha:o._alpha,duration:o.duration,originPosition:o._originPosition,emitPosition:o._emitPosition,radius:o._radius,progressive:o.progressive,id:o.id,range:o._range})}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::ringScanEffectConfig must not be empty.")}_updateParameter(){var e=this;if(e._color=new THREE.Color(e.color.red/255,e.color.green/255,e.color.blue/255),e._alpha=e.color.alpha,e._radius=e.scene.worldToDrawing({x:e.radius,y:0,z:0}).x,e._originPosition=e.scene.worldToDrawing(e.originPosition),e._emitPosition={x:e._originPosition.x,y:e._originPosition.y+1,z:e._originPosition.z},2==e.range.length){e._range=[];for(var t=0;t<e.range.length;t++){var i=e.scene.worldToDrawing({x:e.range[t],y:0,z:0}).x;e._range.push(i)}}else e._range=[]}destroy(){this.viewer.deleteRingScanEffect(this.id)}update(){var e=this;e._updateParameter(),e.ringScanEffect.setOpts({color:e._color,alpha:e._alpha,duration:e.duration,radius:e._radius,originPosition:e._originPosition,emitPosition:e._emitPosition,progressive:e.progressive,range:e._range})}hide(){this.ringScanEffect.enabled=!1}show(){this.ringScanEffect.enabled=!0}getColor(){return this.color}getDuration(){return this.duration}getProgressive(){return this.progressive}getOriginPosition(){return this.originPosition}getRadius(){return this.radius}restoreHeightRange(){this.range=[]}setHeightRange(e){e instanceof Array&&2==e.length&&(this.range=e)}setColor(t){t instanceof e.Web.Graphics.Color?this.color=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}setDuration(e){this.duration=e}setOriginPosition(e){this.originPosition=e}setProgressive(e){this.progressive=e}setRadius(e){this.radius=e}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");t.RingScanEffectConfig=class{constructor(){this.duration=1e3,this.color=new e.Web.Graphics.Color("#32d3a6",.8),this.originPosition={x:0,y:0,z:0},this.radius=100,this.progressive=10,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ParticleSystem");i.SprayWaterEffect=class{constructor(i){if(t.send("Bimface.Plugins.ParticleSystem.SprayWaterEffect","bf_c_SprayWater_new"),this.isViewerGIS=!1,i)if(!i.color instanceof e.Web.Graphics.Color&&console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),i.viewer){if("Viewer3D"===i.viewer.viewerType)this.isViewerGIS=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");this.isViewerGIS=!0}this.objectTpye="sprayWater-",this.color=i.color,this.originPosition=i.originPosition,this.originPitch=i.originPitch,this.originYaw=i.originYaw,this.originRadius=i.originRadius,this.originIntensity=i.originIntensity,this.spread=i.spread,this.scale=i.scale,this.id=e.Web.Lang.Utility.UUID.createUUID(),this.viewer3D=i.viewer,this.viewer=i.viewer.getViewer(),this.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(this.viewer3D),this._updateParameter(),this.sprayWaterEffect=new CLOUD.SprayWater({color:this._color,alpha:this._alpha,originPosition:this.originPosition,scale:this._scale,originPitch:this.originPitch,originYaw:this.originYaw,originRadius:this._originRadius,originIntensity:this.originIntensity,spread:this.spread,camera:this.viewer.camera,isGis:this.isViewerGIS,scene:this.viewer.getScene()}),this._addSence(),this.sprayWaterEffect.play()}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::sprayWaterEffectConfig must not be empty.")}_updateParameter(){this._color=new THREE.Color(this.color.red/255,this.color.green/255,this.color.blue/255),this._alpha=this.color.alpha,this.originIntensity>3&&(this.originIntensity=3),this.isViewerGIS?this._scale=10*this.scale:this._scale=this.scale,this._originRadius=this.viewer.getScene().worldToDrawing({x:this.originRadius,y:0,z:0}).x}_addSence(){this.extObjMngId=this.extObjMng._addObject(this.objectTpye+this.id,this.sprayWaterEffect)}destroy(){this.sprayWaterEffect.destroy(),null!=this.extObjMngId&&this.extObjMng.removeById(this.extObjMngId),this.sprayWaterEffect=null}update(){this._updateParameter(),this.sprayWaterEffect.effectOpt({color:this._color,alpha:this._alpha,scale:this._scale,originPosition:this.originPosition,originPitch:this.originPitch,originYaw:this.originYaw,originRadius:this._originRadius,spread:this.spread,isGis:this.isViewerGIS,originIntensity:this.originIntensity})}hide(){this.sprayWaterEffect.hide()}show(){this.sprayWaterEffect.show()}play(){this.sprayWaterEffect.play()}stop(){this.sprayWaterEffect.stop()}getScale(){return this.scale}getColor(){return this.color}getOriginPosition(){return this.originPosition}getOriginPitch(){return this.originPitch}getOriginYaw(){return this.originYaw}getOriginRadius(){return this.originRadius}getOriginIntensity(){return this.originIntensity}getSpread(){return this.spread}setColor(t){t instanceof e.Web.Graphics.Color?this.color=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}setScale(e){this.scale=e}setOriginPosition(e){this.originPosition=e}setOriginPitch(e){this.originPitch=e}setOriginYaw(e){this.originYaw=e}setOriginIntensity(e){this.originIntensity=e}setOriginRadius(e){this.originRadius=e}setSpread(e){this.spread=e}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ParticleSystem");t.SprayWaterEffectConfig=class{constructor(){this.color=new e.Web.Graphics.Color("#FFFFFF",1),this.originPosition={x:0,y:0,z:0},this.spread=1,this.scale=1,this.originPitch=0,this.originYaw=0,this.originRadius=500,this.originIntensity=.5,this.viewer=null}}}(),function(){let t=Object.freeze({Fire:"Fire",Smoke:"Smoke"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ParticleSystem").FireType=t}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ParticleSystem");i.FireEffect=class{constructor(i){if(t.send("Bimface.Plugins.ParticleSystem.FireEffect","bf_c_Fire_new"),this.isViewerGIS=!1,i)if(i.viewer){if("Viewer3D"===i.viewer.viewerType)this.isViewerGIS=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");this.isViewerGIS=!0}this.fireType=i.fireType,this.position=i.position,this.scale=i.scale,this.viewer=i.viewer,this.smokeConcentration=i.smokeConcentration,this.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(this.viewer),this.fireEffect=new e.Bimface.Plugins.ParticleSystem.Fire(!1,{fireType:this.fireType}),this._updateParameter(),this._addSence()}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::fireEffectConfig must not be empty.")}_updateParameter(){this.isViewerGIS?this._scale=this.scale/1e3:this._scale=this.scale,this.fireEffect.setPosition(this.position),this.fireEffect.setScale(this._scale),this.fireEffect._setType(this.fireType),this.fireEffect._setSmokeConcentration(this.smokeConcentration)}_addSence(){this.objectTpye="fire-",this.id=e.Web.Lang.Utility.UUID.createUUID(),this.extObjMngId=this.extObjMng._addObject(this.objectTpye+this.id,this.fireEffect)}destroy(){null!=this.extObjMngId&&this.extObjMng.removeById(this.extObjMngId),this.fireEffect=null,this.viewer=null,this.extObjMng=null}update(){this._updateParameter(),this.fireEffect.update()}getScale(){return this.scale}getType(){return this.fireType}getPosition(){return this.position}getSmokeConcentration(){return this.smokeConcentration}setScale(e){this.scale=e}setPosition(e){this.position=e}setType(e){this.fireType=e}setSmokeConcentration(e){this.smokeConcentration=e}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.ParticleSystem");t.FireEffectConfig=class{constructor(){this.position={x:0,y:0,z:0},this.scale=1,this.fireType=e.Bimface.Plugins.ParticleSystem.FireType.Fire,this.smokeConcentration=.6,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Anchor");i.AnchorManager=class{constructor(i){var o=this;t.send("Bimface.Plugins.Anchor.AnchorManager","bf_c_anchorMng_new"),i?i.viewer&&"Viewer3D"!==!i.viewer.viewerType?(o.viewer3D=i.viewer,o.extObjMng=new e.Bimface.Viewer.ExternalObjectManager(o.viewer3D),o.itemList=[],o._onClick=function(e){if(null!=o.itemList&&o.itemList.length>0)for(var t=0;t<o.itemList.length;t++)if(e.objectId==o.itemList[t].objectId)return void(null!=o.itemList[t].onClickFn&&o.itemList[t].onClickFn())},o._onHover=function(e){if(null!=o.itemList&&o.itemList.length>0)for(var t=0;t<o.itemList.length;t++)if(e.objectId==o.itemList[t].objectId)return void(null!=o.itemList[t].onHoverFn&&o.itemList[t].onHoverFn())},o.viewer3D.addEventListener(e.Bimface.Viewer.Viewer3DEvent.MouseClicked,o._onClick),o.viewer3D.addEventListener(e.Bimface.Viewer.Viewer3DEvent.Hover,o._onHover)):console.log("ERROR::viewer must not be empty or viewer2d."):console.log("ERROR::anchorManagerConfig must not be empty.")}destroy(){this.clear(),viewer3D.removeEventListener(e.Bimface.Viewer.Viewer3DEvent.MouseClicked,this._onClick),viewer3D.removeEventListener(e.Bimface.Viewer.Viewer3DEvent.Hover,this._onHover)}addItem(e){this.itemList.push(e),e.objectId=this.extObjMng._addObject(e.getId(),e.getPointIns())}addItems(e){if(null!=e&&e.length>0)for(var t=0;t<e.length;t++)this.addItem(e[t])}clear(){for(var e=0;e<this.itemList.length;e++)this.itemList[e].destroy(),this.extObjMng.removeById(this.itemList[e].getId());this.itemList=[]}getAllItems(){return this.itemList}getItemById(e){for(var t=0;t<this.itemList.length;t++)if(e==this.itemList[t].getId())return this.itemList[t];return null}hideAllItems(){for(var e=0;e<this.itemList.length;e++)this.itemList[e].hide()}hideItemsById(e){if(null!=e&&e.length>0){for(var t={},i=0;i<e.length;i++)t[e[i]]=!0;for(i=0;i<this.itemList.length;i++)null!=t[this.itemList[i].getId()]&&this.itemList[i].hide()}}showAllItems(){for(var e=0;e<this.itemList.length;e++)this.itemList[e].show()}showItemsById(e){if(null!=e&&e.length>0){for(var t={},i=0;i<e.length;i++)t[e[i]]=!0;for(i=0;i<this.itemList.length;i++)null!=t[this.itemList[i].getId()]&&this.itemList[i].show()}}removeItemsById(e){if(null!=e&&e.length>0){for(var t={},i=0;i<e.length;i++)t[e[i]]=!0;for(i=this.itemList.length-1;i>=0;i--)null!=t[this.itemList[i].getId()]&&(this.extObjMng.removeById(this.itemList[i].getId()),this.itemList[i].destroy(),this.itemList.splice(i,1))}}update(){for(var e=0;e<this.itemList.length;e++)this.itemList[e].update()}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Anchor").AnchorManagerConfig=class{constructor(){this.viewer=null}},function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Anchor");i.PrismPoint=class{constructor(i){if(t.send("Bimface.Plugins.Anchor.PrismPoint","bf_c_prismPoint_new"),i){!i.color instanceof e.Web.Graphics.Color&&console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),!i.wireframeColor instanceof e.Web.Graphics.Color&&console.log("ERROR::wireframeColor should be instance of Glodon.Web.Graphics.Color"),this.color=i.color,this.wireframeColor=i.wireframeColor,this.duration=i.duration,this.size=i.size,this.position=i.position,this.id=e.Web.Lang.Utility.UUID.createUUID();var o=new THREE.Color(this.color.red/255,this.color.green/255,this.color.blue/255),n=this.color.alpha,s=new THREE.Color(this.wireframeColor.red/255,this.wireframeColor.green/255,this.wireframeColor.blue/255),r=this.wireframeColor.alpha;this.prismPoint=new CLOUD.PrismPoint({color:o,alpha:n,wireframeColor:s,wireframeAlpha:r,duration:this.duration,size:this.size,originPosition:this.position}),this.prismPoint.changeRotation()}else console.log("ERROR::prismPointConfig must not be empty.")}getPointIns(){return this.prismPoint}getId(){return this.id}getColor(){return this.color}getDuration(){return this.duration}getPosition(){return this.position}getSize(){return this.size}getWireframeColor(){return this.wireframeColor}setColor(t){t instanceof e.Web.Graphics.Color?this.color=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}setWireframeColor(t){t instanceof e.Web.Graphics.Color?this.wireframeColor=t:console.log("ERROR::wireframeColor should be instance of Glodon.Web.Graphics.Color")}setDuration(e){this.duration=e}setPosition(e){this.position=e}setSize(e){this.size=e}destroy(){this.prismPoint.destroy()}update(){var e=new THREE.Color(this.color.red/255,this.color.green/255,this.color.blue/255),t=this.color.alpha,i=new THREE.Color(this.wireframeColor.red/255,this.wireframeColor.green/255,this.wireframeColor.blue/255),o=this.wireframeColor.alpha;this.prismPoint.effectOpt({color:e,alpha:t,wireframeColor:i,wireframeAlpha:o,duration:this.duration,size:this.size,originPosition:this.position})}hide(){this.prismPoint.hide()}show(){this.prismPoint.show()}onHover(e){this.onHoverFn=e}onClick(e){this.onClickFn=e}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Anchor");t.PrismPointConfig=class{constructor(){this.color=new e.Web.Graphics.Color("#32D3A6",.4),this.wireframeColor=new e.Web.Graphics.Color("#8EFFDE",1),this.position={x:0,y:0,z:0},this.duration=1e3,this.size=100}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.WaterEffect=class{constructor(i){t.send("Bimface.Plugins.Animation.WaterEffect","bf_c_waterEffect_new");var o=this;if(this._console=new e.Web.Common.Console,i)if(i.viewer){if("Viewer3D"===i.viewer.viewerType)o.isViewerGIS=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");o.isViewerGIS=!0}if(null!=i.color&&i.color instanceof e.Web.Graphics.Color?o.color=i.color:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),o.viewer=i.viewer,o.engineViewer=o.viewer.getViewer(),o.scale=i.scale,o.xDirection=i.xDirection,o.yDirection=i.yDirection,o.offset=i.offset,null==i.shadow?o.isViewerGIS?o.shadow=!1:o.shadow=!0:o.shadow=i.shadow,null==i.flow?o.isViewerGIS?o.flow=!1:o.flow=!0:o.flow=i.flow,null!=i.heightTolerance?o.heightTolerance=i.heightTolerance:o.heightTolerance=null,null!=i.boundary&&i.boundary.length>2?o.boundary=i.boundary:o.boundary=[],o.ids=[],null!=i.ids&&i.ids.length>0)for(var n=0;n<i.ids.length;n++){var s={modelId:i.ids[n].modelId,objectIds:i.ids[n].objectIds};if(1==o.isViewerGIS){var r=o.viewer.getLayerManager().getLayer(i.ids[n].layerId);if(null==r){console.log("请指定正确的layerId.layerId:",i.ids[n].layerId);continue}s.modelId=r.getModelId()}null!=s.modelId&&null==o.viewer.getModel(s.modelId)?console.log("请指定正确的modelId.modelId:",s.modelId):o.ids.push(s)}if(null!=i.componentIds&&i.componentIds.length>0){let e=o.viewer.getDefaultModel().modelId.toString(),t=[];for(let e=0;e<i.componentIds.length;e++)t.push(i.componentIds[e]);o.ids.push({modelId:e,objectIds:t})}o.componentIds=[],0==o.boundary.length&&0==o.ids.length&&0==o.componentIds.length||(o.offsetBase=0,o.boundary.length>0?(o.offsetBase=o.boundary[0].z,o.boundaryGeometry=new e.Bimface.Plugins.Geometry.PlaneBufferGeometry(o.boundary)):o.boundaryGeometry=null,o.water=new CLOUD.Water({color:new THREE.Color(o.color.red/255,o.color.green/255,o.color.blue/255),alpha:o.color.alpha,map0:o._getNormalMap0URL(),map1:o._getNormalMap1URL(),shadow:o.shadow,flow:o.flow,scale:o.scale,flowDirection:new THREE.Vector2(o.xDirection,o.yDirection),componentIds:o.componentIds,ids:o.ids,boundaryGeometry:o.boundaryGeometry,heightTolerance:o.heightTolerance,engineViewer:o.engineViewer,viewer:o.viewer}),o._addSence())}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::waterEffectConfig must not be empty.")}_updateParameter(){var e=this;e._color=new THREE.Color(e.color.red/255,e.color.green/255,e.color.blue/255),e._alpha=e.color.alpha}_addSence(){var t=this;t.id=e.Web.Lang.Utility.UUID.createUUID(),t.objectTpye="waterlogging-",t.water.disPickable=!0,t.water.autoAnimation=!0,t.water.translateZ(t.offset+t.offsetBase),t.water.updateMatrixWorld(),t.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t.viewer),t.extObjMngId=t.extObjMng._addObject(t.objectTpye+t.id,t.water)}getBoundary(){return this.boundary}getColor(){return this.color}getScale(){return this.scale}getXDirection(){return this.xDirection}getYDirection(){return this.yDirection}getOffset(){return this.offset}setColor(t){t instanceof e.Web.Graphics.Color?(this.color=t,this._updateParameter(),null!=this.water&&this.water.setColor(new THREE.Color(this.color.red/255,this.color.green/255,this.color.blue/255),this.color.alpha)):console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}setScale(e){this.scale=e,null!=this.water&&this.water.setScale(this.scale)}setXDirection(e){this.xDirection=e,null!=this.water&&this.water.setDirection(this.xDirection,this.yDirection)}setYDirection(e){this.yDirection=e,null!=this.water&&this.water.setDirection(this.xDirection,this.yDirection)}setOffset(e){null!=this.water&&(this.offset=this.offset+e,this.water.translateZ(e),this.water.updateMatrixWorld())}remove(){this._console.obsolete("WaterEffect.remove","WaterEffect.destroy");var e=this;null!=e.water&&e.water.destroy(),null!=e.extObjMngId&&e.extObjMng.removeById(e.extObjMngId),e.water=null,e.viewer=null,e.extObjMng=null,e.engineViewer.render()}destroy(){var e=this;null!=e.water&&e.water.destroy(),null!=e.extObjMngId&&e.extObjMng.removeById(e.extObjMngId),e.water=null,e.viewer=null,e.extObjMng=null,e.engineViewer.render()}_getNormalMap0URL(){return"data:image/jpeg;base64,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"}_getNormalMap1URL(){return"data:image/jpeg;base64,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"}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");t.WaterEffectConfig=class{constructor(){this.componentIds=[],this.boundary=[],this.ids=[],this.color=new e.Web.Graphics.Color("#4A708B",1),this.scale=4,this.viewer=null,this.offset=0,this.heightTolerance=.001,this.shadow=null,this.flow=null,this.xDirection=1,this.yDirection=1}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.FanScanEffect=class{constructor(i){var o=this;if(t.send("Bimface.Plugins.Animation.FanScanEffect","bf_c_FanScanEffect_new"),i)if(i.viewer){if("Viewer3D"===i.viewer.viewerType)o.isViewerGIS=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");o.isViewerGIS=!0}i.color instanceof e.Web.Graphics.Color?o.color=i.color:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),i.backgroundColor instanceof e.Web.Graphics.Color?o.backgroundColor=i.backgroundColor:console.log("ERROR::backgroundColor should be instance of Glodon.Web.Graphics.Color"),o.duration=i.duration,o.originPosition=i.originPosition,o.radius=i.radius,o.fanAngle=i.fanAngle,o.viewer=i.viewer,o.scene=o.viewer.getViewer().getScene(),o._updateParameter(),o.fanScanEffect=new CLOUD.FanScan({backgroundColor:o._backgroundColor,backgroundAlpha:o._backgroundAlpha,color:o._color,alpha:o._alpha,radius:o._radius,duration:o.duration,originPosition:o.originPosition,fanAngle:o.fanAngle}),o._addSence()}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::fanScanEffectConfig must not be empty.")}_addSence(){var t=this;t.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t.viewer),t.objectTpye="fan-",t.id=e.Web.Lang.Utility.UUID.createUUID(),t.extObjMngId=t.extObjMng._addObject(t.objectTpye+t.id,t.fanScanEffect)}_updateParameter(){var e=this;e._color=new THREE.Color(e.color.red/255,e.color.green/255,e.color.blue/255),e._alpha=e.color.alpha,e._backgroundColor=new THREE.Color(e.backgroundColor.red/255,e.backgroundColor.green/255,e.backgroundColor.blue/255),e._backgroundAlpha=e.backgroundColor.alpha,e._radius=e.radius}destroy(){var e=this;e.fanScanEffect.destroy(),null!=e.extObjMngId&&e.extObjMng.removeById(e.extObjMngId),e.fanScanEffect=null}update(){var e=this;e._updateParameter(),e.fanScanEffect.effectOpt({backgroundColor:e._backgroundColor,backgroundAlpha:e._backgroundAlpha,color:e._color,alpha:e._alpha,radius:e._radius,duration:e.duration,originPosition:e.originPosition,fanAngle:e.fanAngle})}hide(){this.fanScanEffect.hide()}show(){this.fanScanEffect.show()}getColor(){return this.color}getBackgroundColor(){return this.backgroundColor}getDuration(){return this.duration}getFanAngle(){return this.fanAngle}getOriginPosition(){return this.originPosition}getRadius(){return this.radius}setColor(t){t instanceof e.Web.Graphics.Color?this.color=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}setBackgroundColor(t){t instanceof e.Web.Graphics.Color?this.backgroundColor=t:console.log("ERROR::backgroundColor should be instance of Glodon.Web.Graphics.Color")}setDuration(e){this.duration=e}setOriginPosition(e){this.originPosition=e}setFanAngle(e){this.fanAngle=e}setRadius(e){this.radius!=e&&(this.fanScanEffect.resetMesh=!0,this.radius=e)}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");t.FanScanEffectConfig=class{constructor(){this.duration=1e3,this.color=new e.Web.Graphics.Color("#32d3a6",1),this.backgroundColor=new e.Web.Graphics.Color("#000000",.4),this.originPosition={x:0,y:0,z:0},this.radius=1e5,this.fanAngle=Math.PI/3,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.WallEffect=class{constructor(i){var o=this;if(t.send("Bimface.Plugins.Animation.WallEffect","bf_c_wallEffect_new"),i)if(i.viewer){if("Viewer3D"===i.viewer.viewerType)o.isViewerGIS=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");o.isViewerGIS=!0}null!=i.color&&i.color instanceof e.Web.Graphics.Color?o.color=i.color:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),null!=i.path&&i.path.length>0?o.path=i.path:o.path=[],o.loader=new THREE.TextureLoader,null!=i.material&&i.material instanceof e.Bimface.Plugins.Material.Material?(o.material=i.material,o._loadTexture(o.material)):o._loadTexture(),o.duration=i.duration,o.blendingRatio=i.blendingRatio,o.directionType=i.direction.type,o.directionReverse=i.direction.reverse,o.isStretch=i.stretch,o.isRepeat=i.repeat,o.height=i.height,o.viewer=i.viewer,o.viewerViewer=o.viewer.getViewer(),o._updateParameter(),o.wallEffect=new CLOUD.Wall({stretch:o.isStretch,repeat:o.isRepeat,color:o._color,alpha:o._alpha,duration:o.duration,blendingRatio:o.blendingRatio,directionType:o.directionType,directionReverse:o.directionReverse,height:o._height,wallTexture:o.wallTexture,path:o.path,imageWidth:o.imageWidth,imageHeight:o.imageHeight}),o._addSence()}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::wallEffectConfig must not be empty.")}_updateParameter(){var e=this;e._color=new THREE.Color(e.color.red/255,e.color.green/255,e.color.blue/255),e._alpha=e.color.alpha,e._height=e.height}_addSence(){var t=this;t.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t.viewer),t.objectTpye="wall-",t.id=e.Web.Lang.Utility.UUID.createUUID(),t.extObjMngId=t.extObjMng._addObject(t.objectTpye+t.id,t.wallEffect)}destroy(){var e=this;e.wallEffect.destroy(),null!=e.extObjMngId&&e.extObjMng.removeById(e.extObjMngId),e.wallEffect=null}update(){var e=this;e._updateParameter(),e.wallEffect.effectOpt({stretch:e.isStretch,repeat:e.isRepeat,color:e._color,alpha:e._alpha,duration:e.duration,blendingRatio:e.blendingRatio,directionType:e.directionType,directionReverse:e.directionReverse,height:e._height,wallTexture:e.wallTexture,path:e.path})}hide(){this.wallEffect.hide()}show(){this.wallEffect.show()}stretch(e){this.isStretch=e}repeat(e){this.isRepeat=e}getColor(){return this.color}getBlendingRatio(){return this.blendingRatio}getDirection(){return{type:this.directionType,reverse:this.directionReverse}}getDuration(){return this.duration}getHeight(){return this.height}getMaterial(){return this.material}getPath(){return this.path}setBlendingRatio(e){this.blendingRatio=e}setColor(t){t instanceof e.Web.Graphics.Color?this.color=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}setDirection(e){this.directionType=e.type,this.directionReverse=e.reverse}setDuration(e){this.duration=e}setHeight(e){this.height!=e&&(this.wallEffect.resetPath=!0,this.height=e)}setMaterial(e){this.material=e,this._loadTexture(this.material)}setPath(e){null!=e&&e.length>0?(this.wallEffect.resetPath=!0,this.path=e):console.log("电子围墙的路径,由多个点对象组成,不能为空.")}_loadTexture(e){var t=this;null==e?(t.wallTexture=t.loader.load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAAgCAYAAABkS8DlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAADSSURBVHja7NYxEoUgDEDBYM39z2qHtZViwMFxt1FJnF/98ZXWWkRE7LWWOOt5Lsm9q/vsbu9Zdtazs/J19O5bs1XPZrwze/6V31zxbOZs1n905Wt2p3f25GzE7ohv6q3nLQCA3xEAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAA8g4AAAD//wMA4WEFTJOT5UIAAAAASUVORK5CYII="),t.imageWidth=512,t.imageHeight=32):(t.wallTexture=e.material.map,t.imageWidth=e.width,t.imageHeight=e.height,e.changedWidth=function(){t.wallEffect.imageWidth=e.width,t.wallEffect.refreshUniforms()},e.changedHeight=function(){t.wallEffect.imageHeight=e.height,t.wallEffect.refreshUniforms()})}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");t.WallEffectConfig=class{constructor(){this.stretch=!1,this.repeat=!0,this.blendingRatio=0,this.color=new e.Web.Graphics.Color("#11DAB7",.8),this.direction={},this.direction.type="Tangent",this.direction.reverse=!1,this.duration=1e3,this.height=1e3,this.material=null,this.path=[],this.viewer=null}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.WeatherEffect").SnowConfig=class{constructor(){this.darkness=.5,this.density=2,this.thickness=.8,this.viewer=null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.WeatherEffect");t.FogConfig=class{constructor(){this.darkness=.5,this.lightAttenuation=3.5,this.visualDistance=5e5,this.fogColor=new e.Web.Graphics.Color("#FFFFFF",1),this.viewer=null}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.WeatherEffect");t.RainConfig=class{constructor(){this.darkness=.5,this.density=2,this.viewer=null}}}(),function(){var t="Bimface.Plugins.WeatherEffect.Snow",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.WeatherEffect");o.Snow=class{constructor(o){i.send(t,"bf_c_Snow_new"),o?o.viewer&&("Viewer3D"===o.viewer.viewerType||o.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this.darkness=o.darkness,this.density=o.density,this.thickness=o.thickness,this.viewer=o.viewer.getViewer()):console.log("ERROR::viewer must not be empty or viewer2d."):console.log("ERROR::SnowConfig must not be empty.")}update(){this.viewer.snowOpt({darkness:this.darkness,density:this.density,thickness:this.thickness})}reset(){var t=new e.Bimface.Plugins.WeatherEffect.SnowConfig;this.darkness=t.darkness,this.density=t.density,this.thickness=t.thickness,this.update()}enableEffect(e){i.send(t,"enableSnowEffect"),CLOUD.GlobalData.EnableSnowPass=e,this.viewer.render(),CLOUD.GlobalData.EnableSnowPass&&this.update()}getDarkness(){return this.darkness}getDensity(){return this.density}getThickness(){return this.thickness}setDarkness(e){this.darkness=e}setDensity(e){this.density=e}setThickness(e){this.thickness=e}}}(),function(){var t="Bimface.Plugins.WeatherEffect.Fog",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.WeatherEffect");o.Fog=class{constructor(o){i.send(t,"bf_c_Fog_new"),o?o.viewer&&("Viewer3D"===o.viewer.viewerType||o.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this.darkness=o.darkness,this.lightAttenuation=o.lightAttenuation,this.visualDistance=o.visualDistance,this.fogColor=o.fogColor,this.viewer=o.viewer.getViewer()):console.log("ERROR::viewer must not be empty or viewer2d."):console.log("ERROR::fogConfig must not be empty.")}update(){var e=new THREE.Color(this.fogColor.red/255,this.fogColor.green/255,this.fogColor.blue/255),t=this.viewer.getScene().worldToDrawing({x:this.visualDistance,y:0,z:0}).x;this.viewer.fogOpt({darkness:this.darkness,lightAttenuation:this.lightAttenuation,visualDistance:t,fogColor:e})}reset(){var t=new e.Bimface.Plugins.WeatherEffect.FogConfig;this.darkness=t.darkness,this.lightAttenuation=t.lightAttenuation,this.visualDistance=t.visualDistance,this.fogColor=t.fogColor,this.update()}enableEffect(e){i.send(t,"enableFogEffect"),CLOUD.GlobalData.EnableFogPass=e,this.viewer.render(),CLOUD.GlobalData.EnableFogPass&&this.update()}getDarkness(){return this.darkness}getLightAttenuation(){return this.lightAttenuation}getFogColor(){return this.fogColor}getVisualDistance(){return this.visualDistance}setDarkness(e){this.darkness=e}setLightAttenuation(e){this.lightAttenuation=e}setFogColor(e){this.fogColor=e}setVisualDistance(e){this.visualDistance=e}}}(),function(){var t="Bimface.Plugins.WeatherEffect.Rain",i=e.Bimface.Data.StatisticsDataManager.getInstance(),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.WeatherEffect");o.Rain=class{constructor(o){i.send(t,"bf_c_Rain_new"),o?o.viewer&&("Viewer3D"===o.viewer.viewerType||o.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this.darkness=o.darkness,this.density=o.density,this.viewer=o.viewer.getViewer()):console.log("ERROR::viewer must not be empty or viewer2d."):console.log("ERROR::rainConfig must not be empty.")}update(){this.viewer.rainOpt({darkness:this.darkness,density:this.density})}reset(){var t=new e.Bimface.Plugins.WeatherEffect.RainConfig;this.darkness=t.darkness,this.density=t.density,this.update()}enableEffect(e){i.send(t,"enableRainEffect"),CLOUD.GlobalData.EnableRainPass=e,this.viewer.render(),CLOUD.GlobalData.EnableRainPass&&this.update()}getDarkness(){return this.darkness}getDensity(){return this.density}setDarkness(e){this.darkness=e}setDensity(e){this.density=e}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");i.PlaneScanEffect=class{constructor(i){var o=this;if(t.send("Bimface.Plugins.Animation.PlaneScanEffect","bf_c_planeScan_new"),i)if(i.viewer){if("Viewer3D"===i.viewer.viewerType)o.isViewerGIS=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");o.isViewerGIS=!0}if(null!=i.color&&i.color instanceof e.Web.Graphics.Color?o.color=i.color:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),null!=i.boundary&&i.boundary.length>2?o.boundary=i.boundary:o.boundary=[],o.viewer=i.viewer,o.engineViewer=o.viewer.getViewer(),o.duration=i.duration,o.blendingRatio=i.blendingRatio,o.direction=i.direction,o.ids=[],null!=i.ids&&i.ids.length>0)for(var n=0;n<i.ids.length;n++){var s={modelId:i.ids[n].modelId,objectIds:i.ids[n].objectIds};if(1==o.isViewerGIS){var r=o.viewer.getLayerManager().getLayer(i.ids[n].layerId);if(null==r){console.log("请指定正确的layerId.layerId:",i.ids[n].layerId);continue}s.modelId=r.getModelId()}null!=s.modelId&&null==o.viewer.getModel(s.modelId)?console.log("请指定正确的modelId.modelId:",s.modelId):o.ids.push(s)}o.loader=new THREE.TextureLoader,null!=i.material&&i.material instanceof e.Bimface.Plugins.Material.Material?(o.material=i.material,o._loadTexture(o.material)):o._loadTexture(),o._updateParameter(),o.planeScan=new CLOUD.PlaneScan({color:o._color,alpha:o._alpha,duration:o.duration,blendingRatio:o.blendingRatio,direction:o.direction,planeScanTexture:o.planeScanTexture,ids:o.ids,boundaryGeometry:o.boundaryGeometry,viewer:o.engineViewer}),o._addSence()}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::planeScanEffectConfig must not be empty.")}_updateParameter(){var t=this;if(t._color=new THREE.Color(t.color.red/255,t.color.green/255,t.color.blue/255),t._alpha=t.color.alpha,t.boundary.length>0){t.boundaryGeometry=new e.Bimface.Plugins.Geometry.PlaneBufferGeometry(t.boundary);for(var i=t.boundary[0].z,o=t.boundaryGeometry.attributes.position.array,n=0;n<o.length;n++)n%3==2&&(o[n]=i)}else t.boundaryGeometry=null}_addSence(){var t=this;t.id=e.Web.Lang.Utility.UUID.createUUID(),t.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t.viewer),t.objectTpye="planeScan-",t.extObjMngId=t.extObjMng._addObject(t.objectTpye+t.id,t.planeScan)}destroy(){var e=this;e.planeScan.destroy(),null!=e.extObjMngId&&e.extObjMng.removeById(e.extObjMngId),e.planeScan=null,e.engineViewer.render()}update(){var e=this;e._updateParameter(),0!=e.ids.length||null!=e.boundaryGeometry?e.planeScan.effectOpt({color:e._color,alpha:e._alpha,duration:e.duration,blendingRatio:e.blendingRatio,direction:e.direction,planeScanTexture:e.planeScanTexture,ids:e.ids,boundaryGeometry:e.boundaryGeometry,viewer:e.engineViewer}):console.warn("平面扫描的ids与boundary不能同时为空.")}hide(){this.planeScan.hide()}show(){this.planeScan.show()}getColor(){return this.color}getBlendingRatio(){return this.blendingRatio}getDirection(){return this.direction}getDuration(){return this.duration}getMaterial(){return this.material}getIds(){return this.ids}getBoundary(){return this.boundary}setBlendingRatio(e){this.blendingRatio=e}setColor(t){t instanceof e.Web.Graphics.Color?this.color=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}setDirection(e){this.direction=e}setDuration(e){this.duration=e}setMaterial(e){this.material=e,this._loadTexture(this.material)}setBoundary(e){null!=e&&e.length>0&&(this.planeScan.resetPath=!0,this.boundary=e)}setIds(e){e&&0!==e.length&&(1==this.isViewerGIS&&e.forEach((e=>{const t=this.viewer.getLayerManager().getLayer(e.layerId);t&&(e.modelId=t.getModelId())})),this.planeScan.resetPath=!0,this.ids=e)}_loadTexture(e){var t=this;t.planeScanTexture=null==e?t.loader.load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAAgCAYAAABkS8DlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAADSSURBVHja7NYxEoUgDEDBYM39z2qHtZViwMFxt1FJnF/98ZXWWkRE7LWWOOt5Lsm9q/vsbu9Zdtazs/J19O5bs1XPZrwze/6V31zxbOZs1n905Wt2p3f25GzE7ohv6q3nLQCA3xEAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAA8g4AAAD//wMA4WEFTJOT5UIAAAAASUVORK5CYII="):e.material.map}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Animation");t.PlaneScanEffectConfig=class{constructor(){this.blendingRatio=0,this.color=new e.Web.Graphics.Color("#11DAB7",.8),this.boundary=[],this.ids=[],this.direction={x:0,y:1},this.duration=1e3,this.material=null,this.viewer=null}}}(),function(){let t=Object.freeze({Auto:"Auto",BaiDu:"BaiDu",GaoDe:"GaoDe",MapBox:"MapBox",Google:"Google"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cesium").ImageProviderOption=t}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cesium").CesiumConfig=class{constructor(){this.accessToken=null,this.longitude=null,this.latitude=null,this.imageryLayer=null,this.rotation=null,this.useTerrain=!1,this.clipHeight=0,this.offsetHeight=0,this.duration=5}},function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=(e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom"),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Cesium"));i.CesiumManager=class{constructor(e){t.send("Bimface.Plugins.Cesium","CesiumManager"),this.scale=.001,this._opt=e,this.curViewToken=void 0,this.rotation=void 0===this._opt.rotation||null===this._opt.rotation?0:this._opt.rotation,this.offsetHeight=null==this._opt.offsetHeight?0:this._opt.offsetHeight,null!=this._opt.accessToken&&null!=this._opt.accessToken||console.log("The cesium accessToken is null");var i=CLOUD.EnumCesiumImageryLayerType,o={Auto:i.AUTO,BaiDu:i.BAIDU,GaoDe:i.GAODE,MapBox:i.MAPBOX,Google:i.GOOGLE,ArcGis:i.ARCGIS};e.imageryLayer=null==e.imageryLayer?i.AUTO:o[e.imageryLayer],this.cesiumLoader=new CLOUD.CesiumLoader(e),this.inverseGlobalGlobeMatrix=new THREE.Matrix4,this.cameraDistance=1}init(e,t){this.cesiumLoader.init(e,t)}initCameraScale(e){this.viewer3D=e;var t=CLOUD.GlobalData.SceneSize,i=new THREE.Vector3;i=this.viewer3D.getViewer().modelManager.boundingBox.getSize(i);var o=t/Math.max(i.x,i.y,i.z);this.cesiumLoader.cameraScale=this.scale/o,this.cesiumLoader.originBimCameraTar=this.viewer3D.getViewer().camera.target.clone(),this.updateGlobeMatrix(),this.updateCesiumCamera()}updateGlobeMatrix(){var e=0,t=this.viewer3D.getViewer();if(null!=t){var i=t.getScene().getBoundingBox().min.y;e=i*this.cesiumLoader.cameraScale,null!=this._opt.clipHeight&&this.cesiumLoader.clipHeight>=0&&(e+=this.cesiumLoader.clipHeight,this.cesiumLoader.globalPlane=new THREE.Plane(new THREE.Vector3(0,1,0),-i-this.cesiumLoader.clipHeight/this.cesiumLoader.cameraScale),t.rendererManager.renderer.clippingPlanes=[this.cesiumLoader.globalPlane])}var o=Cesium.Transforms.northUpEastToFixedFrame(Cesium.Cartesian3.fromDegrees(this.cesiumLoader.worldCoordinates[0],this.cesiumLoader.worldCoordinates[1],this.cesiumLoader.terrainHeight-e+this.offsetHeight)),n=Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(-90+this.rotation)),s=Cesium.Matrix4.fromRotationTranslation(n);Cesium.Matrix4.multiply(o,s,o),this.cesiumLoader.globeMatrix=(new THREE.Matrix4).set(o[0],o[4],o[8],o[12],o[1],o[5],o[9],o[13],o[2],o[6],o[10],o[14],o[3],o[7],o[11],o[15]),this.inverseGlobalGlobeMatrix.getInverse(this.cesiumLoader.globeMatrix)}updateCesiumCamera(){if(this.viewer3D){var e=this.viewer3D.getViewer();if(e.camera.fov=Cesium.Math.toDegrees(this.cesiumLoader.viewer.camera.frustum.fovy),e.camera.near=this.cesiumLoader.viewer.camera.frustum.near,e.camera.far=this.cesiumLoader.viewer.camera.frustum.far,!(isNaN(e.camera.position.x)||isNaN(e.camera.position.y)||isNaN(e.camera.position.y))){var t=e.camera.up.clone().applyMatrix4(this.cesiumLoader.globeMatrix).normalize(),i=e.camera.position.clone().multiplyScalar(this.cesiumLoader.cameraScale),o=i.clone().applyMatrix4(this.cesiumLoader.globeMatrix),n=e.camera.target.clone().multiplyScalar(this.cesiumLoader.cameraScale),s=n.clone().applyMatrix4(this.cesiumLoader.globeMatrix).clone().sub(o).clone().normalize();this.cameraDistance=n.distanceTo(i);var r=this;r.cesiumLoader.viewer.camera.setView({destination:r.vector3ToCartesian3(o),orientation:{direction:r.vector3ToCartesian3(s),up:r.vector3ToCartesian3(t)}}),r.cesiumLoader.viewer.render()}}}updateBimCamera(){if(this.viewer3D){var e=this.viewer3D.getViewer();this.cesiumLoader.viewer.camera.frustum.near=e.camera.near,this.cesiumLoader.viewer.camera.frustum.far=e.camera.far;var t=this.cartesian3ToVector3(this.cesiumLoader.viewer.camera.up).clone().applyMatrix4(this.inverseGlobalGlobeMatrix).normalize();e.camera.up.set(t.x,-t.y,t.z);var i=this.cartesian3ToVector3(this.cesiumLoader.viewer.camera.position),o=i.clone().applyMatrix4(this.inverseGlobalGlobeMatrix);o=o.multiplyScalar(1/this.cesiumLoader.cameraScale),e.camera.position.set(o.x,o.y,o.z);var n=this.cartesian3ToVector3(this.cesiumLoader.viewer.camera.direction).multiplyScalar(this.cameraDistance).clone().add(i).clone().applyMatrix4(this.inverseGlobalGlobeMatrix);n.multiplyScalar(1/this.cesiumLoader.cameraScale),e.camera.target.set(n.x,n.y,n.z),e.render()}}updateModelPosition(e){null!=e&&(this.cesiumLoader.worldCoordinates[0]=e.longitude||this.cesiumLoader.worldCoordinates[0],this.cesiumLoader.worldCoordinates[1]=e.latitude||this.cesiumLoader.worldCoordinates[1],this.rotation=e.rotation||this.rotation,this.offsetHeight=e.offsetHeight||this.offsetHeight,this.updateGlobeMatrix(),this.updateCesiumCamera())}switchModel(e){var t=this;if(null!=e.viewToken)if(e.viewToken!=t.curViewToken)if(null!=e.longitude&&null!=e.latitude){t.viewer3D.getViewer().unloadAll(),t.cesiumLoader.duration=null==e.duration?5:e.duration,t.cesiumLoader.worldCoordinates=[e.longitude,e.latitude],t.cesiumLoader.clipHeight=null==e.clipHeight?0:e.clipHeight;var i=[Cesium.Cartographic.fromDegrees(t.cesiumLoader.worldCoordinates[0],t.cesiumLoader.worldCoordinates[1])],o=Cesium.sampleTerrainMostDetailed(t.cesiumLoader.terrainProvider,i);t.cesiumLoader.useTerrain?(t.cesiumLoader.terrainHeight=updatedPositions[0].height,Cesium.when(o,(function(i){t.updateViewToken(e.viewToken)}))):(t.cesiumLoader.terrainHeight=0,t.updateViewToken(e.viewToken))}else console.warn("The paramter longitude and latitude can not be undefined");else console.warn("The paramter viewToken is same as current viewToken");else console.warn("The paramter viewToken can not be undefined")}updateViewToken(t){var i=this;i.cesiumLoader.updateCesiumOriginPos(),i.cesiumLoader.viewer.camera.flyTo({destination:i.cesiumLoader.cesiumOriginPos,orientation:{heading:Cesium.Math.toRadians(175),pitch:Cesium.Math.toRadians(-35),roll:0},duration:i.cesiumLoader.duration,complete:function(){i.viewer3D.addView(t),i.viewer3D.addEventListener(e.Bimface.Viewer.Viewer3DEvent.ViewAdded,(function(e){i.curViewToken=t,i.updateGlobeMatrix()}))}})}loadGltf(e,t,i,o,n,s,r,a){this.cesiumLoader.loadGltf(e,t,i,o,n,s,r,a)}load3dTiles(e,t,i,o){this.cesiumLoader.load3dTiles(e,t,i,o)}load3dTilesByPosition(e,t,i,o,n,s){this.cesiumLoader.load3dTilesByPosition(e,t,i,o,n,s)}setUpGDRoad(e,t){this.cesiumLoader.setUpGDRoad(e,t)}cartesian3ToVector3(e){return new THREE.Vector3(e.x,e.y,e.z)}vector3ToCartesian3(e){return new Cesium.Cartesian3(e.x,e.y,e.z)}}}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.TileMap");t.MapConfig=class{constructor(){this.viewer=null,this.basePoint={x:0,y:0},this.modelAltitude=0,this.modelPosition=[121.49621407,31.17843493],this.modelRotationZ=0,this.enableElevationModel=!1,this.opacity=1,this.viewToken=null,this.sectionable=!1,this.terrainPath=null,this.terrainMetadata={attribution:"https://bimface.com/",description:"https://bimface.com/",format:"heightmap",version:"1.0.0",tiles:["{z}/{x}/{y}.terrain.gz"],tilejson:"1.0",scheme:"tms",name:["world"],projection:"EPSG:4326",maxLevel:14,minLevel:4,boundary:{14:{leftX:11377,rightX:14336,upY:5182,bottomY:7734},13:{leftX:5689,rightX:7167,upY:2591,bottomY:3866},12:{leftX:2845,rightX:3583,upY:1296,bottomY:1932},11:{leftX:1423,rightX:1791,upY:648,bottomY:965},10:{leftX:712,rightX:895,upY:324,bottomY:482},9:{leftX:356,rightX:447,upY:162,bottomY:240},8:{leftX:178,rightX:223,upY:81,bottomY:119},7:{leftX:89,rightX:111,upY:41,bottomY:59},6:{leftX:45,rightX:55,upY:21,bottomY:29},5:{leftX:23,rightX:27,upY:11,bottomY:14},4:{leftX:12,rightX:13,upY:6,bottomY:6}},bounds:{longitude:[70.0048828125,10.012129557908132,135,54.990221720048915]}},this.maxLevel=18}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.TileMap").MapStyle=Object.freeze({DarkBlue:"DarkBlue",DarkGreen:"DarkGreen",CustomColor:"CustomColor"}),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.TileMap"),i=e.Bimface.Data.StatisticsDataManager.getInstance();class o{constructor(t){i.send("Bimface.Plugins.TileMap.Tile","Tile");var n=t.viewer;if(!n||"Viewer3D"===!n.viewerType)return void console.error("ERROR::viewer must not be empty or viewer2d.");if(!t.basePoint)return void console.error("ERROR::basePoint in mapConfig must not be empty.");if(null==t.basePoint.x||null==t.basePoint.y)return void console.error("ERROR::basePoint.x or basePoint.y must not be empty.");if(isNaN(t.opacity))return void console.warn("the opacity input is not a number");if(t.opacity>1||t.opacity<0)return void console.warn("the opacity must in [0.0,1.0]");if(!(t.modelPosition instanceof Array&&t.modelPosition.length>=2))return void console.error("the position input is inValid");if(null==t.terrainPath){const e=n._getMetaDataManager()._config.resourceHost;t.terrainPath=o.getTerrainRootPath(e)}if(t.useTerrain=t.enableElevationModel,f.GlobalData.ConstraintZoom=!0,this.maximalRangeofCamera=100,n.setMaximalRangeofCamera(this.maximalRangeofCamera),n.lockAxis("Z",[.1,Math.PI/2.01]),this.tileManager=!0,this.viewer=n,this.mapTypeMap={Google_Roadmap:"m",Google_Hybrid:"y",Google_Satellite:"s"},this.currentMapType="Amap_Satellite",this.mapStyle={},this.eventManager=new e.Web.Lang.EventManager,"Amap_Satellite"!==t.mapLayer)return;t.mapUrl="https://webst01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=6&x={x}&y={y}&z={z}";const s=q.parseProvider(t);t.imageryProviderType=s}setModelRotationZ(e){isNaN(e)?console.warn("the radian input is not a number"):this.tileManager.setModelRotationZ(e)}getModelRotationZ(){return this.tileManager.getModelRotationZ()}setModelPosition(e){e instanceof Array&&e.length>=2?this.tileManager.setModelPosition(e):console.warn("the position input is inValid")}getModelPosition(){return this.tileManager.getModelPosition()}setModelAltitude(e){isNaN(e)?console.warn("the altitude input is not a number"):this.tileManager.setModelAltitude(e)}getModelAltitude(){return this.tileManager.getModelAltitude()}getBasePoint(){return this.tileManager.getBasePoint()}setOpacity(e){isNaN(e)?console.warn("the opacity input is not a number"):e>1||e<0?console.warn("the opacity must in [0.0,1.0]"):(this.tileManager.setOpacity(e),this.viewer.render())}getOpacity(){return this.tileManager.getOpacity()}show(){this.tileManager.show()}hide(){this.tileManager.hide()}destroy(){this.tileManager.getLayer().destroy()}_checkLngLatLegality(e){return e instanceof Array?e.length<2?(console.warn("ERROR::the lngLat input miss parameter"),!1):isNaN(e[0])||isNaN(e[1])?(console.warn("ERROR::the longitude or latitude is not a number"),!1):!(!f.Tile.TileMath.isLongitude(e[0])||!f.Tile.TileMath.isLatitude(e[1]))||(console.log("ERROR::number exceeds latitude and longitude range."),!1):(console.warn("ERROR::the lngLat input is inValid"),!1)}_checkWorldPositionLegality(e){return null!=e.x&&null!=e.y||(console.warn("ERROR::the worldPosition input is invalid"),!1)}lngLatToWorldPosition(e,t){}worldPositionToLngLat(e){}addRoad(){const e=this.tileManager.addRoad("https://webst02.is.autonavi.com/appmaptile?style=8&scale=1&lang=zh_cn&x={x}&y={y}&z={z}",1);return this.viewer.render(),e}removeRoad(e){this.tileManager.removeRoad(e),this.viewer.render()}setMapLayer(e){let t=this.mapTypeMap[e];void 0!==t?e===this.currentMapType?console.warn(`${e} is same as current mapLayer.`):(this.currentMapType=e,this.tileManager&&this.tileManager.setMapLayer(t),this.viewer.render()):console.warn(`${e} input invalid.`)}getMapLayer(){return this.currentMapType}addEventListener(e,t){this.eventManager.addEvent(e,t)}removeEventListener(e,t){this.eventManager.removeEvent(e,t)}addExcavationRegion(e,t){var i=this.viewer.getViewer();if(i&&i.terrainOperationManager){var o=0,n=new Array(t.length);for(o=0;o<t.length;++o){var s=i.worldToDrawing(t[o]);n[o]=s}i.terrainOperationManager.addExcavationRegion(e,n),i.render()}}hideExcavationRegionsById(e){var t=this.viewer.getViewer();t&&t.terrainOperationManager&&(t.terrainOperationManager.hideExcavationRegionsById(e),t.render())}showExcavationRegionsById(e){var t=this.viewer.getViewer();t&&t.terrainOperationManager&&(t.terrainOperationManager.showExcavationRegionsById(e),t.render())}removeExcavationRegionsById(e){var t=this.viewer.getViewer();t&&t.terrainOperationManager&&(t.terrainOperationManager.removeExcavationRegionsById(e),t.render())}clearExcavationRegions(){var e=this.viewer.getViewer();e&&e.terrainOperationManager&&(e.terrainOperationManager.clearExcavationRegions(),e.render())}addFlattenRegion(e,t,i){var o=this.viewer.getViewer();if(o&&o.terrainOperationManager){var n=0,s=new Array(t.length);for(n=0;n<t.length;++n){var r=o.worldToDrawing(t[n]);s[n]=r}o.terrainOperationManager.addFlattenRegion(e,s,i),o.render()}}removeFlattenRegionsById(e){var t=this.viewer.getViewer();t&&t.terrainOperationManager&&(t.terrainOperationManager.removeFlattenRegionsById(e),t.render())}clearFlattenRegions(){var e=this.viewer.getViewer();e&&e.terrainOperationManager&&(e.terrainOperationManager.clearFlattenRegions(),e.render())}getMapStyle(){return this.mapStyle}setMapStyle(t){if(t=t||{},this.mapStyle=Object.assign({},t),t.template)switch(t.template){case e.Bimface.Common.ImageStyle.DarkBlue:t.color=new THREE.Vector4(2/255,30/255,88/255,1);break;case e.Bimface.Common.ImageStyle.DarkGreen:t.color=new THREE.Vector4(3/255,63/255,44/255,1);break;case e.Bimface.Common.ImageStyle.CustomColor:if(!t.color)return void console.warn("color is needed when template == Glodon.Bimface.Common.ImageStyle.CustomColor.");t.color=new THREE.Vector4(t.color.red/255,t.color.green/255,t.color.blue/255,t.color.alpha)}if(f.Utils.isDefined(t.brightness)&&(t.brightness+=1,t.brightness=Math.min(Math.max(t.brightness,0),2)),f.Utils.isDefined(t.contrast)){var i=t.contrast+=1;i=Math.min(Math.max(i,0),2),t.contrast=i>1?1+Math.pow(i-1,2):i}f.Utils.isDefined(t.saturation)&&(t.saturation+=1,t.saturation=Math.min(Math.max(t.saturation,0),2)),this.tileManager.setStyle(t),this.viewer.render()}restoreMapStyle(){this.mapStyle={},this.tileManager.setStyle(this.mapStyle),this.viewer.render()}registerMapCreatedEvent(){this.viewer.getViewer().registerEventListener(f.EVENTS.ON_MAP_CREATED,(t=>{this.eventManager.fireEvent(e.Bimface.Plugins.TileMap.MapEvent.Created,t)}))}static getTerrainRootPath(e){return e.indexOf("test")>-1?"https://static-test.bimface.com/gis/dem/srtm/v3/":"https://static.bimface.com/gis/dem/srtm/v3/"}}t.Tile=o}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.TileMap"),i=e.Bimface.Data.StatisticsDataManager.getInstance();let o=e.Web.Lang.Utility.DataUtil;class n extends e.Bimface.Plugins.TileMap.Tile{constructor(t){if(i.send("Bimface.Plugins.TileMap.Map","Map"),super(t),!this.tileManager)return void console.log("initialize map failed");if(!t.viewToken)return void this.createTileMap(t);let o=e.Bimface.Authentication.AuthenticationManager,n=new e.Bimface.Authentication.AuthenticationConfig;n.viewToken=t.viewToken,n.APIHost=t.viewer._opt.APIHost,(this.authenticate=new o(n)).authenticate((e=>{const i=`${t.viewer._opt.resourceHost}/${e.databagId}/resource/v3/model/config.json`;t.terrainPath=`${t.viewer._opt.resourceHost}/${e.databagId}/resource/v3/model/terrain/`;let o=new THREE.FileLoader;o.setResponseType("json"),o.load(i,(e=>{t.zoomRange=e.metadata.zoom,this.createTileMap(t)}))}),(function(e){console.log("the invalid terrain viewtoken"),this.createTileMap(t)}))}getMapSource(){return this.tileSource}setMapSource(t){if(this.tileSource=q.getTileSource(t),!this._creditWidget){let t=new e.Bimface.Plugins.CreditConfig;t.domElement=this.viewer.getDomElement(),t.viewer=this.viewer,t.class="bf-viewer3d-credit",t=Object.assign({},this.tileSource,t),this._creditWidget=new e.Bimface.Plugins.Credit(t)}return this._creditWidget.update(this.tileSource),new Promise(((e,t)=>{q.verifyKey(this.tileSource).then((()=>{this.tileManager.setMapUrl(this.tileSource.url,this.tileSource.provider),this.viewer.render(),e()}),(()=>{console.warn("parse key failed"),t()}))}))}createTileMap(e){this.tileSource&&(e.url=e.mapUrl=this.tileSource.url)&&(e.imageryProviderType=this.tileSource.provider);let t=e.viewer.getViewer().modelManager.createDemModel(e);this.tileManager=t.tileManager,this.registerMapCreatedEvent()}lonLat2Mercator(e,t){return this.tileManager.lonLat2Mercator(e,t)}mercator2lonLat(e){return this.tileManager.mercator2lonLat(e)}lngLatToWorldPosition(e,t){if(this._checkLngLatLegality(e)){if(void 0===t)return this.tileManager.lngLatToWorldPosition(e);this.tileManager.lngLatToWorldPosition(e,t)}}worldPositionToLngLat(e){if(this._checkWorldPositionLegality(e)){var t=this.tileManager.mercator2lonLat(e),i=[t.x,t.y];if(this._checkLngLatLegality(i))return i}}setMaxLevel(e){if(e&&o.assertType(e,"num")&&e>4){if(H(this.tileManager&&this.tileManager.mapUrl,e),!0===this.tileManager.useTerrain&&e>this.tileManager.maxTerrainLevel+4)return void console.log("dem does not support level > 18");this.tileManager&&this.tileManager.setMaxLevel(e)}}getMaxLevel(){return this.tileManager.getMaxLevel()}addMap(e){e.imageryProviderType=q.parseProvider(e);const t=this.tileManager.addImageryLayer(e);return this.viewer.render(),t}removeMap(e){this.tileManager.removeImageryLayer(e),this.viewer.render()}}t.Map=n}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.TileMap"),i=e.Bimface.Data.StatisticsDataManager.getInstance();class o extends e.Bimface.Plugins.TileMap.Tile{constructor(e){i.send("Bimface.Plugins.TileMap.GlobalMap","GlobalMap"),super(e),this.tileManager&&(this.tileManager=new f.Tile.TileGlobalManager(e.viewer.getViewer(),e),this.tileManager.addRenderCallback())}}t.GlobalMap=o}();let Mn=new THREE.Vector3;!function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.TileMap"),i=e.Bimface.Data.StatisticsDataManager.getInstance();class o extends e.Bimface.Plugins.TileMap.Tile{constructor(e){if(i.send("Bimface.Plugins.TileMap.MixTileMap","MixTileMap"),super(e),this.tileManager){var t=new f.Tile.TileGlobalManager(e.viewer.getViewer(),e),o=new f.Tile.TilePlaneManager(e.viewer.getViewer(),e);t.addRenderCallback(),o.addRenderCallback(),e.viewer.getViewer().addRenderCallback((function(){var i=e.viewer.getViewer().camera.position.clone().applyMatrix4(t.globalMatrixInverse),n=t.modelBox.getCenter(Mn);i.distanceTo(n)>.8*f.Tile.TileMath.earthRadius?(this.tileManager=t,t.tileGroup.visible=!0,o.tileGroup.visible=!1):(this.tileManager=o,t.tileGroup.visible=!1,o.tileGroup.visible=!0)}))}}}t.MixTileMap=o}(),function(){let t=Object.freeze({Created:"Created"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.TileMap").MapEvent=t}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Map");i.MapManager=class{constructor(e){t.send("Bimface.Plugins.Map.MapManager","bf_c_map_newMapManager"),this.viewer=e.viewer,this.mapManager=new f.MapManager(this.viewer.getViewer())}destroy(){this.mapManager.removeCreateMapEvent(),this.mapManager=null}createMapByCamera(e){this.mapManager.addCreateMapEvent(e)}createMapByHeight(e){this.mapManager.createMapByHeight(e)}removeCreateMapEvent(){this.mapManager.removeCreateMapEvent()}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Videos").VideoConfig=class{constructor(){this.src=void 0,this.isPlaneOn=!0,this.plane=null,this.viewer=null,this.camera=null,this.mute=!1,this.loop=!0,this.callback=null}};class vn{constructor(t){t?t.viewer&&("Viewer3D"===t.viewer.viewerType||t.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this.liveFormats=["m3u8"],this.videoFormats=["mp4","webm","ogg"],this.viewer=t.viewer,this.cloudViewer=this.viewer.getViewer(),t.src?(this.camera=t.camera,this.videoSrc=t.src,this.configMute=void 0,this.configLoop=void 0,this.cameraPara=null,this.scratchAt=new THREE.Vector3,this.id=e.Web.Lang.Utility.UUID.createUUID(),this._extObjMng=new e.Bimface.Viewer.ExternalObjectManager(this.viewer),this.materialConfig=new e.Bimface.Plugins.Material.MaterialConfig,this.materialConfig.viewer=this.viewer,this.materialConfig.src=this.videoSrc,this.materialConfig.textureType=this._checkVideoTextureType()):console.warn("ERROR::src in videoConfig must not be empty.")):console.warn("ERROR::viewer must not be empty or viewer2d."):console.warn("ERROR::videoConfig must not be empty.")}getId(){return this.id}getCamera(){return this.camera}getSrc(){return this.videoSrc}setCamera(e){}_loadVideoTexture(){this.loop(this.configLoop),this.mute(this.configMute)}setSrc(e){this.videoSrc=e,this.material.src=e,this._destroyVideoTexture();const t=this._checkVideoTextureType();"video"===t?this.material._loadVideoTexture((()=>{this._loadVideoTexture()})):"live"===t&&this.material._loadLiveTexture((()=>{this._loadVideoTexture()}))}play(){this.material.video&&this.material.video.play()}pause(){this.material.video&&this.material.video.pause()}mute(e){this.material.video&&(this.configMute=e,this.material.video.muted=e)}loop(e){this.material.video&&(this.configLoop=e,this.material.video.loop=e)}_checkCameraPara(e){return!!(e.position&&e.direction&&e.horizontalFov&&e.verticalFov)||(console.warn("ERROR:: position direction horizontalFov verticalFov must in camera"),!1)}_checkVideoTextureType(){const e=this.videoSrc.lastIndexOf("."),t=this.videoSrc.substr(e+1);return-1!==this.liveFormats.indexOf(t.toLowerCase())?"live":-1!==this.videoFormats.indexOf(t.toLowerCase())?"video":void 0}show(){}hide(){}update(){}_destroyVideoTexture(){this.material.material.map&&this.material.material.map.dispose(),this.material.material.map=null;let e=this.material.video;e.pause(),e.removeAttribute("src"),e.load()}destroy(){this._destroyVideoTexture(),this.material.material.dispose(),this.material=null,this.configMute=void 0,this.configLoop=void 0,this.cameraPara=null,this.id=void 0,this.materialConfig=null}}class xn extends vn{constructor(t){super(t),this.planeConfig=null,!1!=!this._checkPlaneSetting(t.plane)&&!1!==this._checkCameraPara(t.camera)&&(this.planeGeometry=new THREE.PlaneGeometry(1,1),this.materialConfig.side=this.planeConfig.side,this.materialConfig.callback=()=>{this.meshMatrix=new THREE.Matrix4,this.mesh=new THREE.Mesh(this.planeGeometry,this.material.material),this.mesh.autoAnimation=!0,this._extObjMng.loadObject({name:this.id,object:this.mesh}),this._planeId=this._extObjMng.getObjectIdByName(this.id),this._updatePlaneMatrix(),this.loop(t.loop),this.mute(t.mute),this.pause(),t.callback&&t.callback()},this.material=new e.Bimface.Plugins.Material.Material(this.materialConfig))}getPlane(){return this.planeConfig}setPlane(e){!1!=!this._checkPlaneSetting(e)&&(this.material.material.side=this.planeConfig.side,this.material.material.needsUpdate=!0,this.setCamera(this.camera))}_checkPlaneSetting(e){if(!(e&&e.distance&&0===e.side||1===e.side||2===e.side))return console.warn("ERROR::plane in config incorrect."),!1;this.planeConfig=e}_checkCameraPara(e){super._checkCameraPara(e);const t=this.planeConfig.distance,i=new THREE.Vector3(e.direction.x,e.direction.y,e.direction.z);i.normalize();const o=new THREE.Vector3(e.position.x+i.x*t,e.position.y+i.y*t,e.position.z+i.z*t),n=t*Math.tan(e.horizontalFov/2)*2,s=t*Math.tan(e.verticalFov/2)*2;this.cameraPara={direction:i,planePosition:o,width:n,height:s}}_updatePlaneMatrix(){const e=new THREE.Vector3(this.cameraPara.width,this.cameraPara.height,1);this.mesh.translateX(this.cameraPara.planePosition.x),this.mesh.translateY(this.cameraPara.planePosition.y),this.mesh.translateZ(this.cameraPara.planePosition.z);const t=new THREE.Vector3(0,0,1);let i=new THREE.Camera;i.up.copy(t),i.position.copy(this.camera.position),0===this.cameraPara.direction.x&&0===this.cameraPara.direction.y&&(i.position.y-=Number.EPSILON),i.lookAt(this.cameraPara.planePosition),this.meshMatrix.compose(this.cameraPara.planePosition,i.quaternion,e),this._extObjMng.setTransformation(this._planeId,this.meshMatrix.toArray())}setCamera(e){!1!==this._checkCameraPara(e)&&(this.camera=e,this._updatePlaneMatrix())}show(){this.mesh&&(this.mesh.visible=!0)}hide(){this.mesh&&(this.mesh.visible=!1)}destroy(){super.destroy(),this._extObjMng.removeById(this._planeId),this.planeConfig=null,this.planeGeometry.dispose(),this.planeGeometry=null,this.mesh=null}}class bn extends vn{constructor(t){if(super(t),!1===this._checkCameraPara(t.camera))return;this._helperId=void 0,this._addCameraHelper();this.materialConfig.callback=()=>{this.videoCast=new f.VideoCast({id:this.id,position:this.cloudViewer.worldToDrawing(this.camera.position),direction:this.cloudViewer.worldToDrawing(this.cameraPara.direction),distance:"Viewer3D"===t.viewer.viewerType?3e5:3e3,horizontalFov:this.camera.horizontalFov,verticalFov:this.camera.verticalFov,projectorMap:this.material.material.map}),this.cloudViewer.videoCastManager.addVideoCast(this.videoCast),this.loop(t.loop),this.mute(t.mute),this.pause(),t.callback&&t.callback()},this.material=new e.Bimface.Plugins.Material.Material(this.materialConfig)}_addCameraHelper(){this._extObjMng.removeById(this._helperId),this.perspectiveCamera=new THREE.PerspectiveCamera(this.cameraPara.fov,this.cameraPara.aspect,.1,2e3),this.perspectiveCamera.position.set(this.camera.position.x,this.camera.position.y,this.camera.position.z),this.perspectiveCamera.up.set(0,0,1),this.perspectiveCamera.lookAt(this.cameraPara.target),this.perspectiveCamera.updateMatrixWorld(!0);const e=new THREE.CameraHelper(this.perspectiveCamera);e.visible=!1,this._extObjMng.loadObject({name:this.id,object:e}),this._helperId=this._extObjMng.getObjectIdByName(this.id)}_checkCameraPara(e){super._checkCameraPara(e);const t=new THREE.Vector3(e.direction.x,e.direction.y,e.direction.z);t.normalize(),this.scratchAt.copy(e.position),this.scratchAt.add(t),this.cameraPara={direction:t,aspect:Math.tan(e.horizontalFov/2)/Math.tan(e.verticalFov/2),fov:THREE.Math.radToDeg(e.verticalFov),target:this.scratchAt}}_loadVideoTexture(){super._loadVideoTexture(),this.videoCast.setProjectorMap(this.material.material.map),this.cloudViewer.videoCastManager.update()}show(){this.videoCast.setVisible(!0),this.cloudViewer.videoCastManager.update()}hide(){this.videoCast.setVisible(!1),this.cloudViewer.videoCastManager.update()}update(){this.cloudViewer.videoCastManager.update()}setCamera(e){!1!==this._checkCameraPara(e)&&(this.camera=e,this._addCameraHelper(),this.videoCast&&(this.videoCast.setPosition(this.cloudViewer.worldToDrawing(e.position)),this.videoCast.setDirection(this.cloudViewer.worldToDrawing(e.direction)),this.videoCast.setHorizontalFov(e.horizontalFov),this.videoCast.setVerticalFov(e.verticalFov),this.videoCast.updateViewMatrix(),this.videoCast.updateProjMatrix(),this.cloudViewer.videoCastManager.update()))}destroy(){super.destroy(),this._extObjMng.removeById(this._helperId),this.cloudViewer.videoCastManager.removeById(this.videoCast.getId()),this.cloudViewer.videoCastManager.update(),this.videoCast.destroy()}}!function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Videos");i.Video=class{constructor(e){t.send("Bimface.Plugins.Videos.Video","bf_c_Video_new"),this.videoImpl=null,!0===e.isPlaneOn?this.videoImpl=new xn(e):this.videoImpl=new bn(e)}getId(){return this.videoImpl.getId()}getCamera(){return this.videoImpl.getCamera()}getSrc(){return this.videoImpl.getSrc()}getPlane(){if(this.videoImpl.planeConfig)return this.videoImpl.getPlane()}setCamera(e){this.videoImpl.setCamera(e)}setSrc(e){this.videoImpl.setSrc(e)}setPlane(e){this.videoImpl.planeConfig&&this.videoImpl.setPlane(e)}play(){this.videoImpl.play()}pause(){this.videoImpl.pause()}mute(e){this.videoImpl.mute(e)}loop(e){this.videoImpl.loop(e)}update(){this.videoImpl.update()}show(){this.videoImpl.show()}hide(){this.videoImpl.hide()}destroy(){this.videoImpl.destroy()}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Videos");t.VideoManagerConfig=class{constructor(){this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Videos");i.VideoManager=class{constructor(i){t.send("Bimface.Plugins.Videos.VideoManager","bf_c_VideoManager_new"),i?i.viewer&&("Viewer3D"===i.viewer.viewerType||i.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this.viewer=i.viewer,this.videoMap={}):console.warn("ERROR::viewer must not be empty or viewer2d."):console.warn("ERROR::VideoManagerConfig must not be empty.")}addVideo(e){this.videoMap[e.getId()]?console.warn("Warn::this video has been in added in videoManager."):this.videoMap[e.getId()]=e}addVideos(e){if(!Array.isArray(e))return void console.warn("WARNING: Glodon.Bimface.Analysis.Videos.VideoManager.addVideos() need array");const t=e.length;for(let i=0;i<t;++i)this.addVideo(e[i])}getVideoById(e){return this.videoMap[e]}getVideos(){return(e=>{let t=[];for(var i in e)e[i]&&t.push(e[i]);return t})(this.videoMap)}hideVideoById(e){this.videoMap[e]?this.videoMap[e].hide():console.warn(`WARNING: no ${e} video in videoManager`)}showVideoById(e){this.videoMap[e]?this.videoMap[e].show():console.warn(`WARNING: no ${e} video in videoManager`)}removeVideoById(e){if(!this.videoMap[e])return void console.warn(`WARNING: no ${e} video in videoManager`);let t=this.videoMap[e];t.destroy(),t=null,this.videoMap[e]=null,delete this.videoMap[e]}clear(){for(let e in this.videoMap)this.removeVideoById(e)}}}(),function(){e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins");var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.GisScene");t.GisScene=class{constructor(e,t){this.app=t,this.viewer=t.getViewer();const i=new THREE.FileLoader;i.setResponseType("json"),i.load(e,(e=>{this.sceneContext=e,this.prepareScene()}),void 0,(t=>{console.error(`Load ${e} failed, ${t}`)})),this.modelIndex=0,this.modelNum=0,this.models=[]}prepareScene(){var t=new e.Bimface.Plugins.TileMap.MapConfig;t.viewer=this.viewer,t.modelAltitude=0,t.basePoint={x:0,y:0},t.useTerrain=!1,t.maxTerrainLevel=14,t.terrainPath="https://static.bimface.com/gis/dem/srtm/v1/",this.sceneContext.terrainPath&&(t.terrainPath=this.sceneContext.terrainPath),t.modelRotationZ=0*Math.PI/180,t.modelPosition=[this.sceneContext.baseLngLat.lng,this.sceneContext.baseLngLat.lat],this.sceneContext.resources.map((e=>{switch(e.type){case"baseMap":!0===e.visibility&&(t.mapLayer=e.name);break;case"elevationModel":!0===e.visibility&&(t.useTerrain=!0);break;case"BIM":!0===e.visibility&&this.models.push(e)}})),this.models.sort((function(e,t){return e.priority-t.priority}));const i=this.models.length;if(i<=0)return void console.log("no model in scene.json");const o={Google_Roadmap:"m",Google_Hybrid:"y",Google_Satellite:"s"};void 0===o[t.mapLayer]?(console.warn(`${t.mapLayer} invalid, Google_Satellite default`),t.mapLayer="s"):t.mapLayer=o[t.mapLayer],this.modelNum=i;let n={};n.loadConfig=t;let s=this.viewer.getViewer().modelManager.createDemModel(n,!0);this.tileManager=s.tileManager,this.setCamera(),this.viewer.getViewer().modelManager.addEventListener(CLOUD.EVENTS.ON_MAP_LOAD_ALL,(()=>{const t=this.getModelLoadConfig();this.app.addView(this.models[this.modelIndex].viewToken,"bimTiles",t),this.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.ViewAdded,(e=>{if(this.modelIndex++,this.modelIndex>this.modelNum-1)return;const t=this.getModelLoadConfig();this.app.addView(this.models[this.modelIndex].viewToken,"bimTiles",t)}))})),this.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.ModelAdded,(e=>{if(this.modelIndex++,this.modelIndex>this.modelNum-1)return;const t=this.getModelLoadConfig();this.app.addView(this.models[this.modelIndex].viewToken,"bimTiles",t)}))}getModelLoadConfig(){let e={zoomAll:!1};const t=this.models[this.modelIndex].transformation;return Array.isArray(t)&&16===t.length?e.transformMatrix=(new THREE.Matrix4).fromArray(t):console.log(`${this.models[this.modelIndex].modelId} no transformation or transformation is invalid`),e}setCamera(){const e=this.sceneContext.homeCameraView.position;let t=this.tileManager.lonLat2Mercator(e.lng,e.lat);t.z=e.height;let i=this.viewer.getCameraStatus();i.position=t;const o=this.sceneContext.homeCameraView.orientation,n=o.heading,s=o.pitch;let r=new THREE.Vector3;r.x=Math.sin(n)*Math.cos(s),r.y=Math.cos(n)*Math.cos(s),r.z=Math.sin(s);var a=r.multiplyScalar(1e3).clone().add(t);i.target=a,this.viewer.setCameraStatus(i)}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.WebXR");i.WebXRManager=class{constructor(i){if(t.send("Bimface.Plugins.WebXR.WebXRManager","bf_c_webXRMng"),i){if(i instanceof e.Bimface.Viewer.Viewer3D)this.viewer=viewer,this.isEmulator=!1;else{if(!(i.viewer instanceof e.Bimface.Viewer.Viewer3D))return void console.log("ERROR::viewer must not be empty.");this.viewer=i.viewer,this.isEmulator=!!i.isEmulator}this.isXRSupported=0,this.isEmulatorLoaded=!1,this.isEmulator?this._initializeEmulator():this._checkXRSupported(),this.isXREntered=!1}else console.log("ERROR::viewer must not be empty.")}_checkXRSupported(){let e=this;function t(){e.isXRSupported=0}function i(){console.log("WARNNING::VR NOT FOUND"),e.isXRSupported=1}"xr"in navigator?"isSessionSupported"in navigator.xr?navigator.xr.isSessionSupported("immersive-vr").then((function(e){e?t():i()})):navigator.xr.supportsSession("immersive-vr").then(t).catch(i):(console.log("WARNNING::VR NOT SUPPORTED"),e.isXRSupported=2)}_initializeEmulator(){let t="https://static.bimface.com",i=[`${t}/resources/webxr/webxr-polyfill.js`,`${t}/resources/webxr/ConfigurationManager.js`,`${t}/resources/webxr/content-script.js`];var o=this;e.Web.Lang.Utility.HttpRequest.getScripts(i,(()=>{o.isEmulatorLoaded=!0,console.log("pollyfill loaded successfully")}));var n=this.viewer.getViewer();let s=n.getRenderer(),r=s.domElement;n.editorManager.registerDomEventListeners(r),this.size=new THREE.Vector2,s.getDrawingBufferSize(this.size);var a=new THREE.DepthTexture;a.format=THREE.DepthStencilFormat,a.type=THREE.UnsignedInt248Type,a.minFilter=THREE.NearestFilter,a.magFilter=THREE.NearestFilter,this.depthRenderTarget=new THREE.WebGLRenderTarget(this.size.x,this.size.y,{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,format:THREE.RGBAFormat,depthBuffer:!0,depthTexture:a});let l=new THREE.PlaneGeometry(2,2);this.screenMaterial=new THREE.ShaderMaterial({uniforms:CLOUD.PostDepthShader.uniforms,vertexShader:CLOUD.PostDepthShader.vertexShader,fragmentShader:CLOUD.PostDepthShader.fragmentShader}),this.planeMesh=new THREE.Mesh(l,this.screenMaterial),this.screenMaterial.uniforms.tDiffuse.value=this.depthRenderTarget.texture,this.screenMaterial.uniforms.tDepth.value=this.depthRenderTarget.depthTexture,this.screenMaterial.uniforms.isDepthMode.value=!0,this.screenCamera=new THREE.OrthographicCamera(-1,1,1,-1,0,1)}enableXR(e){if(0!=this.isXRSupported||this.isXREntered==e)return;let t=this,i=this.viewer.getViewer();i.enableVR(e);let o=i.getRenderer(),n=i.getScene();function s(){(o.xr&&o.xr.getSession()).removeEventListener("end",s),o.xr.setSession(null),o.setAnimationLoop(null)}if(e){o.setAnimationLoop((function(){if(t.isEmulator)o.setRenderTarget(t.depthRenderTarget),o.render(n,i.camera),o.xr.enabled=!1,o.setRenderTarget(null),t.screenMaterial.uniforms.cameraNear.value=i.camera.near,t.screenMaterial.uniforms.cameraFar.value=i.camera.far,o.render(t.planeMesh,t.screenCamera),o.xr.enabled=!0;else{if(t.xrControllerGroups){let e=t.xrControllerGroups.children;const o=i.getScene().getMatrixGlobal();let n=new THREE.Matrix4;n.copy(o).invert();for(let t=0;t<e.length;t++)e[t].updateMatrixWorld(!0),n.multiplyMatrices(n,e[t].matrixWorld),e[t].matrixWorld=n}i.renderWithXR()}}));let r={optionalFeatures:["local-floor","bounded-floor"]};navigator.xr.requestSession("immersive-vr",r).then((function(i){t.isXREntered=e,i.addEventListener("end",s),o.xr.setSession(i)}))}else{let n=o.xr&&o.xr.getSession();n&&n.end(),i.render(),t.isXREntered=e}}getController(e){const t=this.viewer.getViewer(),i=t.getRenderer(),o=t.getScene(),n=i.xr.getController(e);this.xrControllerGroups=o.getOrCreateObjectGroup("XRControllerGroups"),this.xrControllerGroups.add(n);const s=.5*CLOUD.GlobalData.SceneSize;return this.xrControllerGroups.scale.set(s,s,s),this.xrControllerGroups.updateMatrixWorld(),n}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.IBL").IBLStyle=Object.freeze({CloudySky:"CloudySky",CityNightView:"CityNightView",OpenField:"OpenField",LawnScene:"LawnScene",Sunrise:"Sunrise",HarborSunRise:"HarborSunRise",RiverSide:"RiverSide",SunsetGrass:"SunsetGrass",Harbor:"Harbor",ParkingLot:"ParkingLot",Gray:"Gray"}),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.IBL");t.IBLManagerConfig=class{constructor(){this.style=e.Bimface.Plugins.IBL.IBLStyle.CloudySky,this.roughness=.4,this.metalness=0,this.lightIntensity=null,this.imageVisible=!0,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.IBL");i.IBLManager=class{constructor(i){t.send("Bimface.Plugins.IBL.IBLManager","bf_c_IBLMng_new"),this.style=i.style,this.roughness=i.roughness,this.metalness=i.metalness;const o=i.viewer instanceof e.Bimface.Viewer.ViewerGIS;this.lightIntensity=i.lightIntensity?i.lightIntensity:o?10:1,this.imageVisible=i.imageVisible,this.viewer=i.viewer,this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this._enabled=!1,self._IBLConfig=null,this._dataConfig=new e.Bimface.Data.IBLManagerConfig,this._dataManager=new e.Bimface.Data.IBLManager(this._dataConfig),this.enableIBL(!0)):console.log("ERROR::viewer must not be empty or viewer2d.")}enableIBL(e){if(this._enabled==e)return;this._enabled=e;let t=this.viewer.getViewer().IBLManager;this._enabled?this._updateIBL():t.enableIBL(!1)}_updateIBL(){if(!this._enabled)return;let e=this,t=this.viewer.getViewer().IBLManager,i=this.viewer._data,o=i.dataEnvType==D.Local?i.sdkPath:d.staticHost;t.enableIBL(!0),this._getIBLConfig((function(i){const n=e.style;let s=e._IBLConfig[n];s&&(s.url=s.url.replace(d.staticHost,""),s.uniforms.metalness=e.metalness,s.uniforms.roughness=e.roughness,s.uniforms.iblFactor=e.lightIntensity,t.loadIBLMaps(`${o}/${s.url}`,s.isHDR,e.imageVisible,s.uniforms,i))}))}_getIBLConfig(e){let t=this,i=t.viewer._data;t._IBLConfig?e&&e(!0):(i.dataEnvType==D.Local&&(t._dataConfig.resourceHost=i.sdkPath),t._dataManager.getIBLConfig((function(i){t._IBLConfig=i,e&&e(!1)})))}setImageVisible(e){if(this.imageVisible==e)return;this.imageVisible=e;let t=this.viewer.getViewer().IBLManager;e&&this._enabled?(t.addSkyBox(!0,t.IBLParams),this.viewer.render()):t.removeSkyBox()}isImageVisible(){return this.imageVisible}setStyle(e){e&&this.style!=e&&(this.style=e,this._IBLConfig=null,this._updateIBL())}getStyle(){return this.style}setRoughness(e){if(e<0||e>1||this.roughness==e||!this._enabled)return;this.roughness=e;let t=this.viewer.getViewer();t.IBLManager.IBLParams.roughness=e,t.modelManager.updateMaterialsValue("roughness",e,!0)}getRoughness(){return this.roughness}setMetalness(e){if(e<0||e>1||this.metalness==e||!this._enabled)return;this.metalness=e;let t=this.viewer.getViewer();t.IBLManager.IBLParams.metalness=e,t.modelManager.updateMaterialsValue("metalness",e,!0)}getMetalness(){return this.metalness}setLightIntensity(e){if(e<0||this.lightIntensity==e||!this._enabled)return;this.lightIntensity=e;let t=this.viewer.getViewer();t.IBLManager.IBLParams.iblFactor=e,t.modelManager.updateMaterialsValue("iblFactor",e,!0)}getLightIntensity(){return this.lightIntensity}}}(),function(){let t=Object.freeze({Line:{width:4,color:new e.Web.Graphics.Color("#20262F",1)},None:"None"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Viewport").BorderStyleOption=t}();class Un{constructor(e){this.embeddedView=e,this.viewer=e.viewer,this.init()}init(){this.element=document.createElement("div"),this.element.className="bf-viewport-border",this.viewer.getDomElement().appendChild(this.element),this.borderElements={},this.domEvents={resizable:{},movable:void 0},["top","right","bottom","left","topright","bottomright","bottomleft","topleft"].forEach((e=>{let t=this.borderElements[e]=document.createElement("div");t.className=`bf-viewport-border-${e}`,this.element.appendChild(t)})),this.updateResizable(this.embeddedView.isBorderDraggable()),this.updateMovable(this.embeddedView.isEmbeddedViewDraggable()),this.hide()}show(){this.element.style.display="block"}hide(){this.element.style.display="none"}destroy(){this.updateResizable(!1),this.updateMovable(!1),this.embeddedView=null,this.element&&this.viewer.getDomElement().removeChild(this.element),this.element=null,this.viewer=null}update(){if(!this.element)return;let{locationX:e,locationY:t,widthRatio:i,heightRatio:o}=this.embeddedView.getViewRegion(),n=this.updateBorderStyle(),s=this.element.style;s.left=(e-n.left<0?0:e-n.left)+"px",s.top=(t-n.top<0?0:t-n.top)+"px",s.width=`calc(${100*i}% + ${n.left+n.right}px)`,s.height=`calc(${100*o}% + ${n.top+n.bottom}px)`}updateBorderStyle(){let{topBorderStyle:e,rightBorderStyle:t,bottomBorderStyle:i,leftBorderStyle:o}=this.embeddedView.getSubViewBorderStyle(),n={top:e,right:t,bottom:i,left:o},s={};for(let e in n){let t=n[e],i=this.borderElements[e],o=t.width&&!isNaN(t.width)?t.width:4;o>20&&(o=20),o<1&&(o=1),i.style[["top","bottom"].indexOf(e)>=0?"height":"width"]=`${o}px`,s[e]=o/2,i.style.backgroundColor=t===Glodon.Bimface.Plugins.Viewport.BorderStyleOption.None?"transparent":t.color&&t.color.getRGBA?t.color.getRGBA():"#20262F"}return s}updateResizable(e,t){const i=(e,t)=>{let i,o,n,s=!1;const r=t=>{if(!s)return;let r=t.clientX-i,a=r/this.viewer.getDomElement().offsetWidth,l=t.clientY-o,h=l/this.viewer.getDomElement().offsetHeight,{locationX:c,locationY:d,widthRatio:g,heightRatio:u}=n;if(e.indexOf("top")>=0&&(d+=l,u-=h),e.indexOf("right")>=0&&(g+=a),e.indexOf("bottom")>=0&&(u+=h),e.indexOf("left")>=0&&(c+=r,g-=a),c<0||d<0||g<0||u<0)return;const p={locationX:c,locationY:d,widthRatio:g,heightRatio:u};this.embeddedView.setViewRegion(p),this.embeddedView.update()},a=e=>{s=!1,t.removeEventListener("mouseup",a),t.removeEventListener("mousemove",r)};return e=>{e.stopPropagation(),s=!0,i=e.clientX,o=e.clientY,n=Object.assign({},this.embeddedView.getViewRegion()),t.addEventListener("mouseup",a),t.addEventListener("mousemove",r)}};t=t||Object.keys(this.borderElements);for(let o in this.borderElements){let n=this.borderElements[o];if(e&&t.indexOf(o)>=0){if(n.classList.add("resizable"),this.domEvents.resizable[o])continue;let e=i(o,this.viewer.getDomElement());n.addEventListener("mousedown",e),this.domEvents.resizable[o]={type:"mousedown",element:n,handler:e}}else{n.classList.remove("resizable");let e=this.domEvents.resizable[o];if(!e)continue;e.element.removeEventListener(e.type,e.handler),delete this.domEvents.resizable[o]}}}updateMovable(e){if(this.element.style.cursor=e?"move":"unset",e&&!this.domEvents.movable){let e,t,i,o=!1,n=this.viewer.getDomElement();const s=s=>{s.stopPropagation(),o=!0,e=s.clientX,t=s.clientY,i=Object.assign({},this.embeddedView.getViewRegion()),n.addEventListener("mouseup",a),n.addEventListener("mousemove",r)},r=n=>{if(!o)return;let s=n.clientX-e,r=n.clientY-t,{locationX:a,locationY:l,widthRatio:h,heightRatio:c}=i;if(a+=s,l+=r,a<0||l<0)return;const d={locationX:a,locationY:l,widthRatio:h,heightRatio:c};this.embeddedView.setViewRegion(d),this.embeddedView.update()},a=e=>{o=!1,n.removeEventListener("mouseup",a),n.removeEventListener("mousemove",r)};this.element.addEventListener("mousedown",s),this.domEvents.movable={type:"mousedown",element:this.element,handler:s}}else if(!e&&this.domEvents.movable){let e=this.domEvents.movable;e.element.removeEventListener(e.type,e.handler),this.domEvents.movable=void 0}}}!function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Viewport");i.Swipe=class{constructor(i){if(t.send("Bimface.Plugins.Viewport.Swipe","bf_c_swipe_new"),!i)return void console.log("ERROR::swipeConfig must not be empty.");if(!i.viewer)return void console.log("ERROR::viewer must not be empty.");if(!("Viewer3D"===i.viewer.viewerType||i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be viewer2d.");this.visibleLayers=[],this.enableLayerTypes={TileLayer:!0,TerrainLayer:!1,BIMLayer:!0,FeatureLayer:!0,TilesetLayer:!0},this.subViewBorderStyle={topBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line,rightBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line,bottomBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line,leftBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line},this.mainViewContents=[],this.subViewContents=[],this.viewer=i.viewer;const o=new e.Bimface.Plugins.Viewport.SwipeConfig;this.mode=Object.assign(o.mode,i.mode),this.layerCallbackList=[],this.border=new Un(this),this.setSwipeMode(this.mode),this.setLayerContents(i.layerContents),this.mode.type!==e.Bimface.Plugins.Viewport.SwipeType.SplitView&&(this.setBorderDraggable(i.borderDraggable),this.setEmbeddedViewDraggable(i.embeddedViewDraggable)),this.enableEmbeddedView(!0)}update(){if(null!=this.mainViewContents&&this.needUpdateMain){this._mainViewContents=[],this.layerCallbackList.length>0&&this._updateModelCallback("mainViewContents");for(var e=0;e<this.mainViewContents.length;e++){var t={isVisible:this.mainViewContents[e].isVisible};null==(i=this.viewer.getLayerManager().getLayer(this.mainViewContents[e].layerId))||!i.loaded&&"TileLayer"!=i.typeName?(this.layerCallbackList.push({layerId:this.mainViewContents[e].layerId,isVisible:this.mainViewContents[e].isVisible,content:"mainViewContents"}),this.viewer.getLayerManager().getLoadManager().loadLayer([this.mainViewContents[e].layerId])):(i.loaded?t.modelId=i.modelId:t.imageryId=i._imageryId,this._mainViewContents.push(t))}}if(null!=this.subViewContents&&this.needUpdateSub){this._subViewContents=[],this.layerCallbackList.length>0&&this._updateModelCallback("subViewContents");for(e=0;e<this.subViewContents.length;e++){var i;t={isVisible:this.subViewContents[e].isVisible};null==(i=this.viewer.getLayerManager().getLayer(this.subViewContents[e].layerId))||!i.loaded&&"TileLayer"!=i.typeName?(this.layerCallbackList.push({layerId:this.subViewContents[e].layerId,isVisible:this.subViewContents[e].isVisible,content:"subViewContents"}),this.viewer.getLayerManager().getLoadManager().loadLayer([this.subViewContents[e].layerId])):(i.loaded?t.modelId=i.modelId:t.imageryId=i._imageryId,this._subViewContents.push(t))}}this._addModelCallback(),this.viewer.getViewer().setEmbeddedView({subViewRegion:this.mode.viewRegion,mainViewContents:this.needUpdateMain?this._mainViewContents:null,subViewContents:this.needUpdateSub?this._subViewContents:null}),this.needUpdateSub=!1,this.needUpdateMain=!1,this.border.update()}destroy(){this._removeModelCallback(),this.viewer.getViewer().enableEmbeddedView(!1),this.setLayersVisibleTrue(),this.visibleLayers=[],this.mainViewContents=null,this.subViewContents=null,this.subViewBorderStyle=null,this.border.destroy(),this.border=null,this.viewer=null}_removeModelCallback(){null!=this._modelAddedFn&&(this.viewer.removeEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,this._modelAddedFn),this._modelAddedFn=null)}_addModelCallback(){var t=this;t.layerCallbackList.length>0&&null==t._modelAddedFn&&(t._modelAddedFn=function(e){for(var i=t.layerCallbackList.length-1;i>=0;i--){var o=t.layerCallbackList[i].layerId;if(e==o){var n={isVisible:t.layerCallbackList[i].isVisible},s=t.viewer.getLayerManager().getLayer(o);null!=s&&s.loaded?(s.hide(),n.modelId=s.modelId,"mainViewContents"==t.layerCallbackList[i].content?(t._mainViewContents.push(n),t.viewer.getViewer().setEmbeddedView({mainViewContents:t._mainViewContents})):"subViewContents"==t.layerCallbackList[i].content&&(t._subViewContents.push(n),t.viewer.getViewer().setEmbeddedView({subViewContents:t._subViewContents}))):console.log("请指定正确的layerId.layerId:",o),t.layerCallbackList.removeByValue(t.layerCallbackList[i])}}0==t.layerCallbackList.length&&t._removeModelCallback()},t.viewer.addEventListener(e.Bimface.Viewer.ViewerGISEvent.ModelAdded,t._modelAddedFn))}_updateModelCallback(e){for(var t=this,i=t.layerCallbackList-1;i>=0;i--)e==t.layerCallbackList[i].content&&t.layerCallbackList.removeByValue(t.layerCallbackList[i])}show(){this.setLayersVisibleFalse(),this.enableEmbeddedView(!0)}hide(){this.enableEmbeddedView(!1),this.setLayersVisibleTrue()}setSwipeMode(t){switch((t=Object.assign(this.mode,t)).type){case e.Bimface.Plugins.Viewport.SwipeType.SplitView:this.setBorderDraggable(!0),e.Bimface.Plugins.Viewport.SwipeHelper.assembleSplitView(this,t);break;case e.Bimface.Plugins.Viewport.SwipeType.EmbeddedView:this.setSubViewBorderStyle({topBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line,rightBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line,bottomBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line,leftBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line}),this.setBorderDraggable(!0),this.setEmbeddedViewDraggable(!0),this.update()}}getSwipeMode(){return this.mode}setLayerContents(e){this.viewer.getViewer().enableEmbeddedView(!1),this.setLayersVisibleFalse();let t=(e,i)=>{const o=viewer.getLayerManager().getLayer(e);"GroupLayer"===o.typeName?o.getContents().map((e=>{t(e.id,i)})):i.push(e)};if(this.layerContents=e,!(e instanceof Array&&2===e.length))return void console.warn("The layerContents input is invalid");let i=[],o=[],n=[];e[0].map((e=>{t(e,n)})),n.map((e=>{i.push({layerId:e,isVisible:!0})})),this.setMainViewContents(i),n=[],e[1].map((e=>{t(e,n)})),n.map((e=>{o.push({layerId:e,isVisible:!0})})),this.setSubViewContents(o),this.update(),this.viewer.getViewer().enableEmbeddedView(!0)}getLayerContents(){return this.layerContents}setEmbeddedViewDraggable(e){this.isSubViewMovable=e,this.border.updateMovable(e)}isEmbeddedViewDraggable(){return this.isSubViewMovable}setBorderDraggable(e){this.isSubViewResizable=e,this.border.updateResizable(e)}isBorderDraggable(){return this.isSubViewResizable}getViewRegion(){return this.mode.viewRegion}setViewRegion(e){const{locationX:t,locationY:i,widthRatio:o,heightRatio:n}=e;null!=t&&(this.mode.viewRegion.locationX=t<0?0:t),null!=i&&(this.mode.viewRegion.locationY=i<0?0:i),null!=o&&(this.mode.viewRegion.widthRatio=o),null!=n&&(this.mode.viewRegion.heightRatio=n)}getSubViewContents(){return this.subViewContents}setSubViewContents(e){this.subViewContents=e,this.needUpdateSub=!0}getMainViewContents(){return this.mainViewContents}setMainViewContents(e){this.mainViewContents=e,this.needUpdateMain=!0}getSubViewBorderStyle(){return this.subViewBorderStyle}setSubViewBorderStyle(e){null!=e.topBorderStyle&&(this.subViewBorderStyle.topBorderStyle=e.topBorderStyle),null!=e.rightBorderStyle&&(this.subViewBorderStyle.rightBorderStyle=e.rightBorderStyle),null!=e.bottomBorderStyle&&(this.subViewBorderStyle.bottomBorderStyle=e.bottomBorderStyle),null!=e.leftBorderStyle&&(this.subViewBorderStyle.leftBorderStyle=e.leftBorderStyle),this.border.updateBorderStyle()}getStatus(){return{cameraStatus:this.viewer.getCameraStatus(),mainViewContents:this.mainViewContents,subViewContents:this.subViewContents,borderStyleObject:this.subViewBorderStyle}}enableEmbeddedView(e){this.viewer.getViewer().enableEmbeddedView(e),e?this.border.show():this.border.hide(),this.viewer.render()}setLayersVisibleFalse(){const e=this.viewer.getLayerManager().getRootLayer();let t=e=>{"GroupLayer"===e.typeName?e.getContents().map((e=>{t(e)})):this.enableLayerTypes[e.typeName]&&!0===e.isVisible&&this.visibleLayers.push(e)};t(e),this.visibleLayers.map((e=>{e.hide()}))}setLayersVisibleTrue(){this.visibleLayers.map((e=>{e.show()}))}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Viewport").SwipeConfig=class{constructor(){this.viewer=null,this.mode={type:e.Bimface.Plugins.Viewport.SwipeType.SplitView,position:.5,direction:e.Bimface.Common.Direction.Horizontal,viewRegion:{locationX:100,locationY:100,widthRatio:.2,heightRatio:.2}},this.layerContents=[[],[]],this.borderDraggable=!0,this.embeddedViewDraggable=!0}},function(){class t{constructor(){}}t.assembleSplitView=function(t,i){let o={};switch(i.direction){case e.Bimface.Common.Direction.Horizontal:o={locationX:t.viewer.getDomElement().offsetWidth*i.position,locationY:0,widthRatio:1,heightRatio:1},t.setViewRegion(o),t.setSubViewBorderStyle({topBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.None,rightBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.None,bottomBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.None,leftBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line}),t.border.updateResizable(!0,["left"]);break;case e.Bimface.Common.Direction.Vertical:o={locationX:0,locationY:t.viewer.getDomElement().offsetHeight*i.position,widthRatio:1,heightRatio:1},t.setViewRegion(o),t.setSubViewBorderStyle({topBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.Line,leftBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.None,rightBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.None,bottomBorderStyle:e.Bimface.Plugins.Viewport.BorderStyleOption.None}),t.border.updateResizable(!0,["top"])}t.setEmbeddedViewDraggable(!1),t.update()},e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Viewport").SwipeHelper=t}(),function(){let t=Object.freeze({SplitView:"SplitView",EmbeddedView:"EmbeddedView"});e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Viewport").SwipeType=t}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Effect");t.BloomEffectConfig=class{constructor(){this.ids=[],this.intensity=.5,this.threshold=0,this.spread=3,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Effect");i.BloomEffect=class{constructor(i){t.send("Bimface.Plugins.Effect.BloomEffect","bf_c_bloomEffect_new"),this.ids=i.ids,this.intensity=i.intensity,this.spread=i.spread,this.threshold=i.threshold,this.viewer=i.viewer,this._type="body",this._enable=!0,this._preIds=null,this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this.isGis=this.viewer instanceof e.Bimface.Viewer.ViewerGIS,this.update()):console.log("ERROR::viewer must not be empty or viewer2d.")}setIds(e){this.ids==e||!e instanceof Array||(this._preIds=this.ids,this.ids=e)}getIds(){return this.ids}setIntensity(e){this.intensity!=e&&(this.intensity=e)}getIntensity(){return this.intensity}setSpread(e){this.spread!=e&&(this.spread=e)}getSpread(){return this.spread}setThreshold(e){this.threshold!=e&&(this.threshold=e)}getThreshold(){return this.threshold}clear(){let e=this.ids,t=this.viewer.getViewer();const i=this._getModelIdAndObjectIds(e);for(const e in i){const o=i[e];t.removeGlowEffectById(e,o)}this.ids=[]}update(){let e=this.viewer.getViewer();if(this._preIds){const t=this._getModelIdAndObjectIds(this._preIds);for(const i in t){const o=t[i];e.removeGlowEffectById(i,o)}this._preIds=null}let t=this.ids;const i=this._getModelIdAndObjectIds(t);for(const t in i){const o=i[t];e.setGlowEffectById(t,o,{type:this._type,intensity:this.intensity,spread:this.spread,isGis:this.isGis,useDiffuse:!0,threshold:this.threshold})}this.viewer.render()}_getModelIdAndObjectIds(e){let t={},i=(e,i)=>{void 0!==t[e]?t[e].push(i):t[e]=[i]};const o=e.length;for(let t=0;t<o;t++){const o=e[t];let n=o.modelId;const s=o.layerId;let r=o.objectIds;if(n){r.map((e=>{i(n,e)}));continue}if(s){const e=this.viewer.getLayerManager().getLayer(s);n=e.getModelId(),r.map((e=>{i(n,e)}));continue}if(!r)return;const a=r.length,l=this.viewer.getViewer().modelManager.modelCollection,h=l.getById("ExtrudeBodyManager"),c=l.getById("ExternalComponent");for(let e=0;e<a;e++){const t=r[e];h&&h._hasObjectId(t)?i(CLOUD.ObjectGroupType.EXTRUDEBODYMANAGER,t):c&&c._hasObjectId(t)&&i("ExternalComponent",t)}}return t}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Effect");t.BlinkEffectConfig=class{constructor(){this.ids=[],this.color=null,this.interval=800,this.times=void 0,this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Effect");class o{constructor(i){t.send("Bimface.Plugins.Effect.BlinkEffect","bf_c_BlinkEffect_new"),this.uuid=e.Web.Lang.Utility.UUID.createUUID(),this.ids=i.ids||[],this.interval=i.interval||800,this.times=i.times,this.color=i.color,this.viewer=i.viewer,this._idsChanged=!1,this._isEnable=!0,this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(o.AddReferenceCount(this.viewer),this.isGis=this.viewer instanceof e.Bimface.Viewer.ViewerGIS,this.update()):console.log("ERROR::viewer must not be empty or viewer2d.")}destroy(){this.ids=null,this.interval=void 0,this.times=void 0,this.color=null,this.viewer.getViewer().clearBlinkComponentsByDetail(this.uuid),o.SubtractReferenceCount(this.viewer),this.viewer=null,this.uuid=void 0}setIds(e){e instanceof Array&&(this._idsChanged=!0,this.ids=e)}getIds(){return this.ids}setColor(e){this.color=e}getColor(){return this.color}setInterval(e){this.interval==e||e<=0||(this.interval=e)}getInterval(){return this.interval}setTimes(e){this.times=e}getTimes(){return this.times}clear(){this.ids=[],this.viewer.getViewer().clearBlinkComponentsByDetail(this.uuid)}enable(e){this._isEnable=e,this.update()}update(){let e=this.viewer.getViewer();if(!1===this._isEnable)return void e.clearBlinkComponentsByDetail(this.uuid);e.clearBlinkComponentsByDetail(this.uuid);const t=this.ids,i=this._getModelIdAndObjectIds(t),o={interval:this.interval,times:this.times,color:this.color};for(const t in i)e.addBlinkComponentsByDetail(i[t],t,o,this.uuid);this.viewer.render()}_getModelIdAndObjectIds(e){let t={},i=(e,i)=>{void 0!==t[e]?t[e].push(i):t[e]=[i]};const o=e.length;for(let t=0;t<o;t++){const o=e[t];let n=o.modelId;const s=o.layerId;let r=o.objectIds;if(n){r.map((e=>{i(n,e)}));continue}if(s){const e=this.viewer.getLayerManager().getLayer(s);n=e.getModelId(),r.map((e=>{i(n,e)}));continue}if(!r)return;const a=r.length,l=this.viewer.getViewer().modelManager.modelCollection,h=l.getById("ExtrudeBodyManager"),c=l.getById("ExternalComponent");for(let e=0;e<a;e++){const t=r[e];h&&h._hasObjectId(t)?i(CLOUD.ObjectGroupType.EXTRUDEBODYMANAGER,t):c&&c._hasObjectId(t)&&i("ExternalComponent",t)}}return t}}o.ReferenceCount=0,o.AddReferenceCount=function(e){if(0===o.ReferenceCount){let t=e.getViewer();t.clearAllBlinkComponents(),t.enableBlinkComponents(!0)}o.ReferenceCount++},o.SubtractReferenceCount=function(e){if(o.ReferenceCount--,0===o.ReferenceCount){let t=e.getViewer();t.clearAllBlinkComponents(),t.enableBlinkComponents(!1)}},i.BlinkEffect=o}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Clipping");t.TerrainClippingConfig=class{constructor(){this.boundary=null,console.warn("[BIMFACE WARN]: Class Glodon.Bimface.Plugins.Clipping.TerrainClipping is obsolete, please use Class Glodon.Bimface.Plugins.Clipping.Clipping instead.")}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Clipping");i.TerrainClipping=class{constructor(i){t.send("Bimface.Plugins.Clipping.TerrainClipping","bf_c_terrainClipping_new"),console.warn("[BIMFACE WARN]: Class Glodon.Bimface.Plugins.Clipping.TerrainClipping is obsolete, please use Class Glodon.Bimface.Plugins.Clipping.Clipping instead."),this._boundary=i.boundary,this._id=e.Web.Lang.Utility.UUID.createUUID(),this._clippingManager=null}getId(){return this._id}show(){this._clippingManager&&this._clippingManager.showItems([this.getId()])}hide(){this._clippingManager&&this._clippingManager.hideItems([this.getId()])}getBoundary(){return this._boundary}setBoundary(e){this._boundary=e,this._clippingManager&&(this._clippingManager.removeItems([this.getId()]),this._clippingManager.addItem(this))}_onAdded(e){this._clippingManager=e}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Clipping");t.ClippingManagerConfig=class{constructor(){this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Clipping");i.ClippingManager=class{constructor(i){t.send("Bimface.Plugins.Clipping.ClippingManager","bf_c_clippingMng_new"),this._viewer=i.viewer,this.clippingItemMap=new Map,(!this._viewer||"Viewer3D"===!this._viewer.viewerType||!this._viewer instanceof e.Bimface.Viewer.ViewerGIS)&&console.log("ERROR::viewer must be viewer3D or viewerGIS.")}addItem(e){const t=e.getBoundary();if(!t)return void console.log("ERROR::clippingItem must contains boundary.");const i=this._viewer.getViewer();if(!i||!i.holesManager)return;let o=new Array(t.length);for(let e=0;e<t.length;++e){const n=i.worldToDrawing(t[e]);o[e]=n}let n=[];if("ViewerGIS"===this._viewer.getViewerType()){e.getLayerIds().map((e=>{const t=this._viewer.getLayerManager().getLayer(e);if(!t||"TileLayer"!==t.typeName&&"TilesetLayer"!==t.typeName)console.warn(`The LayerId ${e} is invalid`);else{const e=t.getModelId();n.push(e)}}))}else n.push(CLOUD.ObjectGroupType.TILEGROUP);if(0===n.length)return void console.warn("The LayerIds is invalid");const s={points:o,modelIds:n};i.holesManager.addHole(e.getId(),s),this.clippingItemMap.set(e.getId(),e),e._onAdded(this)}removeItems(e,t){if(!e)return;const i=this._viewer.getViewer();i&&i.holesManager&&(i.holesManager.removeHoleByIds(e),e.map((e=>{const i=this.clippingItemMap.get(e);i&&t&&i.destroy()})),i.render())}clear(e){const t=this._viewer.getViewer(),i=Array.from(this.clippingItemMap.keys());t.holesManager.removeHoleByIds(i);for(const t of this.clippingItemMap.values())e&&t.destroy();this.clippingItemMap.clear(),t.render()}showItems(e){var t=this._viewer.getViewer();t&&t.holesManager&&(t.holesManager.showHoleByIds(e),t.render())}showAll(){const e=Array.from(this.clippingItemMap.keys());this.showItems(e)}hideItems(e){const t=this._viewer.getViewer();t&&t.holesManager&&(t.holesManager.hideHoleByIds(e),t.render())}hideAll(){const e=Array.from(this.clippingItemMap.keys());this.hideItems(e)}update(){}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Clipping");t.ClippingConfig=class{constructor(){this.boundary=null,this.layerIds=void 0}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Clipping");i.Clipping=class{constructor(i){t.send("Bimface.Plugins.Clipping.Clipping","bf_c_clipping_new"),this.boundary=i.boundary,this.layerIds=i.layerIds,this.id=e.Web.Lang.Utility.UUID.createUUID()}destroy(){this.boundary=null,this.layerIds=null,this.id=void 0}show(){this._clippingManager&&this._clippingManager.showItems([this.getId()])}hide(){this._clippingManager&&this._clippingManager.hideItems([this.getId()])}getId(){return this.id}getLayerIds(){return this.layerIds}setLayerIds(e){this.layerIds=e,this._clippingManager&&(this._clippingManager.removeItems([this.getId()]),this._clippingManager.addItem(this))}getBoundary(){return this.boundary}setBoundary(e){this.boundary=e,this._clippingManager&&(this._clippingManager.removeItems([this.getId()]),this._clippingManager.addItem(this))}_onAdded(e){this._clippingManager=e}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Flats");t.FlatConfig=class{constructor(){this.boundary=null,this.elevation=0,this.layerId=void 0}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Flats");i.Flat=class{constructor(i){t.send("Bimface.Plugins.Flats.Flat","bf_c_flat_new"),this.boundary=i.boundary,this.elevation=i.elevation,this.layerId=i.layerId,this.id=e.Web.Lang.Utility.UUID.createUUID(),this.needsUpdate=!0,this.visible=!0,this.isValidLayer=!0}destroy(e,t){e.terrainOperationManager&&e.terrainOperationManager.removeFlattenRegionsById([this.id]),t&&(this.boundary=null,this.elevation=void 0,this.layerId=void 0,this.id=void 0,this.needsUpdate=void 0,this.visible=void 0,this.isValidLayer=!1)}setElevation(e){this.elevation=e,this.enableUpdate(!0)}getElevation(){return this.elevation}getId(){return this.id}getLayerId(){return this.layerId}setLayerId(e){this.layerId=e,this.enableUpdate(!0)}getBoundary(){return this.boundary}setBoundary(e){this.boundary=e,this.enableUpdate(!0)}enableUpdate(e){this.needsUpdate=e}setVisible(e){this.visible=e,this.needsUpdate=!0}setIsValidLayer(e){this.isValidLayer=e}draw(e){if(!this.needsUpdate)return;if(!0!==this.visible||!0!==this.isValidLayer)return void e.terrainOperationManager.removeFlattenRegionsById([this.id]);const t=this.getElevation(),i=this.getBoundary();let o=new Array(i.length);for(let t=0;t<i.length;++t){const n=e.worldToDrawing(i[t]);o[t]=n}e.terrainOperationManager.removeFlattenRegionsById([this.id]),e.terrainOperationManager.addFlattenRegion(this.id,o,t),this.enableUpdate(!1)}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Flats");t.FlatManagerConfig=class{constructor(){this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();const i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Plugins.Flats");i.FlatManager=class{constructor(e){t.send("Bimface.Plugins.Flats.FlatManager","bf_c_flatMng_new"),this.viewer=e.viewer,this.items={}}addItem(e){const t=e.getId();void 0!==t&&(this.items[t]=e,e.enableUpdate(!0),this.update())}removeItems(e,t){e.map((e=>{if(!this.items[e])return;this.items[e].destroy(this.viewer.getViewer(),t),delete this.items[e]})),this.update()}clear(e){for(const t in this.items){this.items[t].destroy(this.viewer.getViewer(),e)}this.items={},this.update()}showItems(e){e.map((e=>{if(!this.items[e])return;this.items[e].setVisible(!0)})),this.update()}showAll(){for(const e in this.items){this.items[e].setVisible(!0)}this.update()}hideItems(e){e.map((e=>{if(!this.items[e])return;this.items[e].setVisible(!1)})),this.update()}hideAll(){for(const e in this.items){this.items[e].setVisible(!1)}this.update()}update(){const e=this.viewer.getViewer(),t="ViewerGIS"===this.viewer.getViewerType();if(e.terrainOperationManager){for(const i in this.items){const o=this.items[i],n=o.getLayerId();if(t){o.isValidLayer=!1;const e=this.viewer.getLayerManager().getLayer(n);e&&"TileLayer"===e.typeName?o.isValidLayer=!0:console.warn(`The LayerId ${n} is invalid`)}o.draw(e)}e.render()}}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Viewshed").Viewshed3DConfig=class{constructor(){this.position={x:0,y:0,z:0},this.direction={x:0,y:0,z:-1},this.visibleAreaColor=new e.Web.Graphics.Color(0,255,0,.8),this.hiddenAreaColor=new e.Web.Graphics.Color(255,0,0,.8),this.distance=1e3,this.horizontalFov=Math.PI/2,this.verticalFov=Math.PI/3,this.translucenceAvailable=!1,this.frustumVisible=!0}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Viewshed");t.Viewshed3D=class{constructor(e){this._cfg=e,this._viewer=void 0,this._viewshed=void 0,this._scratchVisibleColor=void 0,this._scratchHiddenColor=void 0,this._scratchDirection=void 0}_init(t){if(this._viewer=t,!this._viewshed){var i=this._viewer.worldToDrawing(this._cfg.direction);i.normalize(),this._viewshed=new CLOUD.Viewshed({position:this._viewer.worldToDrawing(this._cfg.position),direction:i,visibleAreaColor:this._cfg.visibleAreaColor,hiddenAreaColor:this._cfg.hiddenAreaColor,translucenceAvailable:this._cfg.translucenceAvailable,distance:this._viewer.worldToDrawing({x:this._cfg.distance,y:0,z:0}).x,horizontalFov:this._cfg.horizontalFov,verticalFov:this._cfg.verticalFov,frustumVisible:!1!==this._cfg.frustumVisible}),this._scratchVisibleColor=new e.Web.Graphics.Color(this._cfg.visibleAreaColor.red,this._cfg.visibleAreaColor.green,this._cfg.visibleAreaColor.blue,this._cfg.visibleAreaColor.alpha),this._scratchHiddenColor=new e.Web.Graphics.Color(this._cfg.hiddenAreaColor.red,this._cfg.hiddenAreaColor.green,this._cfg.hiddenAreaColor.blue,this._cfg.hiddenAreaColor.alpha),this._scratchDirection=this._cfg.direction}}getId(){return this._viewshed.getId()}getPositon(){var e=this._viewshed.getPositon();return this._viewer.drawingToWorld(e)}setPosition(e){var t=this._viewer.worldToDrawing(e);this._viewshed.setPosition(t)}getDirection(){var e=this._viewer.drawingToWorld(this._viewshed.getDirection());return e.normalize(),this._scratchDirection.x=e.x,this._scratchDirection.y=e.y,this._scratchDirection.z=e.z,this._scratchDirection}setDirection(e){var t=this._viewer.worldToDrawing(e);t.normalize(),this._viewshed.setDirection(t)}getVisibleAreaColor(){var e=this._viewshed.getVisibleAreaColor();return this._scratchVisibleColor.red=e.x,this._scratchVisibleColor.green=e.y,this._scratchVisibleColor.blue=e.z,this._scratchVisibleColor.alpha=e.w,this._scratchVisibleColor}setVisibleAreaColor(e){this._viewshed.setVisibleAreaColor(e)}getHiddenAreaColor(){var e=this._viewshed.getHiddenAreaColor();return this._scratchHiddenColor.red=e.x,this._scratchHiddenColor.green=e.y,this._scratchHiddenColor.blue=e.z,this._scratchHiddenColor.alpha=e.w,this._scratchHiddenColor}setHiddenAreaColor(e){this._viewshed.setHiddenAreaColor(e)}getDistance(){var e=this._viewshed.getDistance();return this._viewer.drawingToWorld({x:e,y:0,z:0}).x}setDistance(e){var t=this._viewer.worldToDrawing({x:e,y:0,z:0}).x;this._viewshed.setDistance(t)}getHorizontalFov(){return this._viewshed.getHorizontalFov()}setHorizontalFov(e){this._viewshed.setHorizontalFov(e)}getVerticalFov(){return this._viewshed.getVerticalFov()}setVerticalFov(e){this._viewshed.setVerticalFov(e)}setTranslucenceAvailable(e){this._viewshed.setTranslucenceAvailable(e)}hide(){this._viewshed.hide()}show(){this._viewshed.show()}setFrustumVisible(e){this._viewshed.setFrustumVisible(e),this._viewer.render()}isFrustumVisible(){return this._viewshed.isFrustumVisible()}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Viewshed");t.ViewshedManagerConfig=class{constructor(){this.viewer=void 0}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Viewshed");t.ViewshedManager=class{constructor(e){this._viewer=e.viewer.getViewer(),this._viewsheds=[]}addViewshed(e){e._init(this._viewer),this._viewsheds.push(e),this._viewer.viewshedManager.addViewshed(e._viewshed)}addViewsheds(e){if(Array.isArray(e))for(var t=0;t<e.length;t++)this.addViewshed(e[t]);else console.warn("WARNING: Glodon.Bimface.Analysis.Viewshed.ViewshedManager.addViewsheds() need array")}getViewshedById(e){for(var t=0;t<this._viewsheds.length;t++)if(this._viewsheds[t].getId()==e)return this._viewsheds[t]}getViewsheds(){return[...this._viewsheds]}hideById(e){this._viewer.viewshedManager.hideById(e)}showById(e){this._viewer.viewshedManager.showById(e)}removeById(e){for(var t=0;t<this._viewsheds.length;t++)if(this._viewsheds[t].getId()==e){this._viewsheds.splice(t,1);break}this._viewer.viewshedManager.removeById(e)}clear(){this._viewsheds=[],this._viewer.viewshedManager.clear()}update(){this._viewer.viewshedManager.update()}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.HeightLimit").HeightLimitAnalysisConfig=class{constructor(){this.color=new e.Web.Graphics.Color(50,211,166,1),this.height=null,this.mode="global",this.layerIds=null,this.area=null,this.viewer=null}},function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.HeightLimit"),i=e.Bimface.Data.StatisticsDataManager.getInstance();t.HeightLimitAnalysis=class{constructor(t){i.send("Glodon.Bimface.Analysis.HeightLimit.HeightLimitAnalysis","bf_c_heightLimit_new"),this.color=t.color,this.mode=t.mode,this.layerIds=t.layerIds,this.area=t.area,this.viewer=t.viewer,this.id=e.Web.Lang.Utility.UUID.createUUID(),this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(null==t.height?this.height="Viewer3D"===this.viewer.viewerType?24e3:24:this.setHeight(t.height),this._drawingHeight=this.viewer.getViewer().getScene().worldToDrawing({x:0,y:0,z:this.height}).y,this._updateModelIds(),this._createAreaMesh(),this.manager=this.viewer.getViewer().getHeightLimitManager(),"invalidPlane"!=this.areaMesh.type?(this.manager.addLimitAnalysis(this.id,this),this._needCreateMesh=!1):console.log("ERROR::invalid area input")):console.log("ERROR::viewer must not be empty or viewer2d.")}_getBox(){return this.box||this._updateBox(),this.box}_updateBox(){var e=new THREE.Box3;if(!this.areaMesh)return e;e.setFromObject(this.areaMesh),this.box=e}_createAreaMesh(){let t;if("global"==this.mode)t={type:"rectangle",points:[(i=this.viewer.getViewer().getBoundingBoxWorld()).min,i.max],onlyPlane:!0};else if(this.area)t=this.area,t.onlyPlane=!0;else if(this.layerIds){for(var i=new THREE.Box3,o=0;o<this.layerIds.length;o++){var n=viewer.getLayerManager().getLayer(this.layerIds[o]);i.union(n.getBoundingBox())}t={type:"rectangle",points:[i.min,i.max],onlyPlane:!0}}else{t={type:"rectangle",points:[(i=this.viewer.getViewer().getBoundingBoxWorld()).min,i.max],onlyPlane:!0}}this.areaMesh=new e.Bimface.Plugins.Geometry.Plane(t),this.areaMesh.setColor(this.color),this.areaMesh.clearBorder(),this.areaMesh.name=this.id}clearArea(){this.setArea(null)}clearLayers(){this.setLayerIds(null)}destroy(){this.manager.removeLimitAnalysisById(this.id),this.areaMesh=null,this.area=null,this.layerIds=null}setColor(t){t instanceof e.Web.Graphics.Color?this.color=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}getColor(){return this.color}setHeight(e){this.height!=e&&(this.height=0==e?1e-5:e)}getHeight(){return this.height}setMode(e){"global"==e||"customized"==e?this.mode!=e&&(this.mode=e,this._needCreateMesh=!0):console.log("ERROR::mode should be instance of String and be 'global' or 'customized")}getMode(){return this.mode}setLayerIds(e){e instanceof Array||!e?(this.layerIds=e,this._needCreateMesh=!0):console.log("ERROR::ids should be instance of Array")}getLayerIds(){return this.layerIds}setArea(e){this.area!=e&&(this._needCreateMesh=!0,this.area=e)}getArea(){return this.area}hide(){this.areaMesh&&(this.areaMesh.visible=!1)}show(){this.areaMesh&&(this.areaMesh.visible=!0)}update(){if(this._needCreateMesh&&(this._createAreaMesh(),"invalidPlane"==this.areaMesh.type))return this._needCreateMesh=!1,void console.log("ERROR::invalid area input");this.areaMesh&&this.areaMesh.setColor(this.color),this._updateModelIds(),this._drawingHeight=this.viewer.getViewer().getScene().worldToDrawing({x:0,y:0,z:this.height}).y,this.manager.update(this.id,this._needCreateMesh),this._needCreateMesh=!1}_updateModelIds(){if("global"!=this.mode&&this.layerIds){if(this.layerIds){this._modelIds=[];for(var e=0;e<this.layerIds.length;e++){var t=viewer.getLayerManager().getLayer(this.layerIds[e]);this._modelIds.push(t.getModelId())}}}else this._modelIds=null}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.CutFill");t.CutFillAnalysisConfig=class{constructor(){this.boundary=[],this.level=0,this.viewer=null,this.layerIds=[]}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.CutFill");i.CutFillAnalysis=class{constructor(i){t.send("Bimface.Analysis.CutFillAnalysis.CutFill","bf_c_cutfFill_new");let o=this;if(i)if(i.viewer){if("Viewer3D"===i.viewer.viewerType);else if(!(i.viewer instanceof e.Bimface.Viewer.ViewerGIS))return void console.log("ERROR::viewer must not be empty or viewer2d.");if(i.boundary&&!(i.boundary.length<=2)){o.boundary=[i.boundary[0]];for(let e=1;e<i.boundary.length;e++)i.boundary[e].x==i.boundary[e-1].x&&i.boundary[e].y==i.boundary[e-1].y||o.boundary.push(i.boundary[e]);o.boundary.length<=2||(o.level=i.level,o.viewer=i.viewer,o.engineViewer=o.viewer.getViewer(),o.setLayerIds(i.layerIds),o._updateParameter(),o.cutFillAnalysis=new CLOUD.CutFillMeasure({showVisualization:!0,level:o.level,boundary:o._boundary,viewer:o.viewer,layerIds:o.layerIds}),o._addSence())}}else console.log("ERROR::viewer must not be empty.");else console.log("ERROR::cutFillAnalysisConfig must not be empty.")}_updateParameter(){let e=this;e._boundary=e.boundary.map((t=>e.engineViewer.worldToDrawing(t)))}_addSence(){var t=this;t.extObjMng=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(t.viewer),t.objectTpye="cutFill-",t.id=e.Web.Lang.Utility.UUID.createUUID(),t.extObjMngId=t.extObjMng._addObject(t.objectTpye+t.id,t.cutFillAnalysis)}destroy(){var e=this;null!=e.extObjMngId&&e.extObjMng.removeById(e.extObjMngId),e.cutFillAnalysis.destroy(),e.cutFillAnalysis=null,e._boundary=null}update(){var e=this;e._updateParameter(),e.cutFillAnalysis.effectOpt({level:e.level,boundary:e._boundary,layerIds:e.layerIds}),e.viewer.render()}getLayerIds(){let e=this;return e.layerIds?e.layerIds:e.viewer.getLayerManager().terrainLayer.id}setLayerIds(e){let t=this;if("Viewer3D"===t.viewer.viewerType)return void(t.layerIds=void 0);const i=t.viewer.getLayerManager().terrainLayer.id;null!=e&&e instanceof Array&&0!=e.length?(t.layerIds=e,-1!=t.layerIds.indexOf(i)&&(t.layerIds=void 0)):t.layerIds=void 0}hide(){this.cutFillAnalysis.hide(),this.viewer.render()}show(){this.cutFillAnalysis.show(),this.viewer.render()}getTotalArea(){return null==this.cutFillAnalysis?0:this.cutFillAnalysis.getTotalArea()}getCutArea(){return null==this.cutFillAnalysis?0:this.cutFillAnalysis.getCutArea()}getCutVolume(){return null==this.cutFillAnalysis?0:this.cutFillAnalysis.getCutVolume()}getFillArea(){return null==this.cutFillAnalysis?0:this.cutFillAnalysis.getFillArea()}getFillVolume(){return null==this.cutFillAnalysis?0:this.cutFillAnalysis.getFillVolume()}getBoundary(){return this.boundary}getLevel(){return this.level}setBoundary(e){this.boundary=e}setLevel(e){this.level!=e&&(this.level=e)}calculateAccurateResult(e){this.cutFillAnalysis.updateCutFillVolumeData(e)}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Sightline");t.SightlineAnalysisConfig=class{constructor(){this.invisibleColor=new e.Web.Graphics.Color(235,0,29,1),this.targetPoints=null,this.viewPoint=null,this.visibleColor=new e.Web.Graphics.Color(50,211,166,1),this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Sightline"),o=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Web.Lang.Utility.Dom");i.SightlineAnalysis=class{constructor(i){t.send("Bimface.Analysis.Sightline.SightlineAnalysis","bf_c_sightline_new"),this.invisibleColor=i.invisibleColor||new e.Web.Graphics.Color(235,0,29,1),this.targetPoints=i.targetPoints||[],this.viewPoint=i.viewPoint,this.visibleColor=i.visibleColor||new e.Web.Graphics.Color(50,211,166,1),this.viewer=i.viewer,this.obstaclePoints=[],this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this._svg=null,this._viewPointDom=null,this._sightlines=[],this._show=!0,this._init()):console.log("ERROR::viewer must not be empty or viewer2d.")}destroy(){this.viewPoint=null,this.targetPoints=[],this.obstaclePoints=[],this._sightlines=[],this.renderCallback&&this.viewer.getViewer().removeRenderCallback(this.renderCallback),this.viewer.getDomElement().removeChild(this._svg)}getInvisibleColor(){return this.invisibleColor}getTargetPoints(){return[...this.targetPoints]}getViewPoint(){return this.viewPoint}getVisibleColor(){return this.visibleColor}getObstaclePoints(){return[...this.obstaclePoints]}setInvisibleColor(t){t instanceof e.Web.Graphics.Color?this.invisibleColor=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),this.update()}setTargetPoints(e){e instanceof Array?this.targetPoints=e:console.log("ERROR::targetPoints should be instance of Array"),this.update()}setViewPoint(e){this.viewPoint=e,this.update()}setVisibleColor(t){t instanceof e.Web.Graphics.Color?this.visibleColor=t:console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color"),this.update()}hide(){this._svg.style.display="none",this._show=!1}show(){this._svg.style.display="block",this._show=!0}update(){if(this.obstaclePoints=[],this._sightlines=[],this.viewPoint&&this.targetPoints&&0!=this.targetPoints.length){this._viewPointDom&&this._viewPointDom.setAttribute("fill",`#${this.visibleColor.getHEX()}`);for(var e=this.viewer.getViewer(),t=e.cameraControl,i=t.getIntersectContext(),n=new THREE.Vector3(this.viewPoint.x,this.viewPoint.y,this.viewPoint.z),s=e.worldToDrawing(n),r=0;r<this.targetPoints.length;r++){var a=this.targetPoints[r],l=e.worldToDrawing(a),h=l.clone();h.sub(s),h.normalize();var c=new THREE.Ray(s,h),d=t.intersector.getIntersectByRay(i,c),g={};g.target=a;var u=o.createNS("circle","bf-sightline-targetpoint");u.setAttribute("stroke-width",0),u.setAttribute("r",4),u.setAttribute("fill",`#${this.visibleColor.getHEX()}`),g.targetDom=u;var p=o.createNS("line","bf-sightline-line");if(p.style.strokeWidth=2,p.style.stroke=`#${this.visibleColor.getHEX()}`,g.line1Dom=p,d&&d.point.distanceTo(l)>CLOUD.Math.EPSILON3&&s.distanceTo(d.point)<s.distanceTo(l)){var A=e.drawingToWorld(d.point);this.obstaclePoints.push(A),u.setAttribute("fill",`#${this.invisibleColor.getHEX()}`),g.obstacle=A;var m=o.createNS("line","bf-sightline-line");m.style.strokeWidth=2,m.style.stroke=`#${this.invisibleColor.getHEX()}`,g.line2Dom=m}this._sightlines.push(g)}this.viewer.render()}}_init(){this._svg=o.createNS("svg","bf-sightline-svg"),this._svg.style="width: 100%;height: 100%;position: absolute;left: 0;top: 0;",(i=o.createNS("circle","bf-sightline-viewpoint")).setAttribute("stroke-width",0),i.setAttribute("r",5),i.setAttribute("stroke","#FFFFFF"),i.setAttribute("stroke-width",2),i.setAttribute("fill",`#${this.visibleColor.getHEX()}`),this._viewPointDom=i;var e=this.viewer.getDomElement();e.appendChild(this._svg);var t=this._svg,i=this._viewPointDom;this.renderCallback=()=>{if(t.innerHTML="",this._show&&this.viewPoint&&this.targetPoints&&0!=this.targetPoints.length&&0!=this._sightlines.length)for(var o=this.viewer.getViewer(),n=e.getBoundingClientRect(),s=0;s<this._sightlines.length;s++){var r,a,l=this._sightlines[s],h=l.line1Dom,c=l.line2Dom;if(l.obstacle){if((r=o.worldPointsToClient(this.viewPoint,l.obstacle))&&(i.setAttribute("cx",r.start.x-n.left),i.setAttribute("cy",r.start.y-n.top),t.appendChild(i),h.setAttribute("x1",r.start.x-n.left),h.setAttribute("y1",r.start.y-n.top),h.setAttribute("x2",r.end.x-n.left),h.setAttribute("y2",r.end.y-n.top),t.appendChild(h)),r=o.worldPointsToClient(l.obstacle,l.target))c.setAttribute("x1",r.start.x-n.left),c.setAttribute("y1",r.start.y-n.top),c.setAttribute("x2",r.end.x-n.left),c.setAttribute("y2",r.end.y-n.top),t.appendChild(c),(a=l.targetDom).setAttribute("cx",r.end.x-n.left),a.setAttribute("cy",r.end.y-n.top),t.appendChild(a)}else if(r=o.worldPointsToClient(this.viewPoint,l.target))i.setAttribute("cx",r.start.x-n.left),i.setAttribute("cy",r.start.y-n.top),t.appendChild(i),h.setAttribute("x1",r.start.x-n.left),h.setAttribute("y1",r.start.y-n.top),h.setAttribute("x2",r.end.x-n.left),h.setAttribute("y2",r.end.y-n.top),(a=l.targetDom).setAttribute("cx",r.end.x-n.left),a.setAttribute("cy",r.end.y-n.top),t.appendChild(a),t.appendChild(h)}},this.update(),this.viewer.getViewer().addRenderCallback(this.renderCallback)}}}(),function(){var t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Skyline");t.SkylineAnalysisConfig=class{constructor(){this.style={color:new e.Web.Graphics.Color(255,0,0,1),width:1},this.viewer=null}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Analysis.Skyline");i.SkylineAnalysis=class{constructor(i){t.send("Bimface.Analysis.Skyline.SkylineAnalysis","bf_c_skyline_new"),this.viewer=i.viewer,this.skylineStyle=i.style,this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)?(this.setStyle(this.skylineStyle),this.show()):console.log("ERROR::viewer must not be empty or viewer2d.")}getStyle(){return this.skylineStyle}setStyle(t){if(t){this.skylineStyle.color=t.color||new e.Web.Graphics.Color(255,0,0,1),this.skylineStyle.width=t.width||1;var i=this.viewer.getViewer(),o={};o.skylineColor=new THREE.Color(t.color.red/255,t.color.green/255,t.color.blue/255),o.skylineWidth=t.width,i.skylineOpt(o)}}getSkyline3D(){var e,t=(o=this.viewer.getViewer()).getSkyline3D(),i={type:"Feature",properties:{},geometry:{type:"LineString",coordinates:[]}},o=this.viewer.getViewer();if("Viewer3D"===this.viewer.viewerType){for(var n=0;n<t.length;n++){var s=o.drawingToWorld(t[n]);i.geometry.coordinates.push([parseFloat(s.x.toFixed(4)),parseFloat(s.y.toFixed(4)),parseFloat(s.z.toFixed(4))])}return i}if(o.modelManager.modelCollection.traverse((t=>{t.isDemLayer&&(e=t.tileManager)})),e)for(n=0;n<t.length;n++){s=o.drawingToWorld(t[n]);var r=e.mercator2lonLat(s);i.geometry.coordinates.push([r.x,r.y])}return i}getStatus(){var t={};t.cameraStatus=this.viewer.getCameraStatus();var i=this.skylineStyle;return t.skylineStyle={},t.skylineStyle.color=new e.Web.Graphics.Color(i.color.red,i.color.green,i.color.blue,i.color.alpha),t.skylineStyle.width=i.width,t}setStatus(e){e&&(this.viewer.setCameraStatus(e.cameraStatus),this.setStyle(e.skylineStyle),this.show())}hide(){f.GlobalData.EnableSkylinePass=!1,this._updateSkylineStatus(),this.update()}show(){f.GlobalData.EnableSkylinePass=!0,this._updateSkylineStatus(),this.update()}destroy(){this.hide()}update(){this.viewer.render(),this.setStyle(this.skylineStyle)}_updateSkylineStatus(){this.viewer.getViewer().updateDemMaterialsSide()}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light");i.CSMLight=class{constructor(){this.id=e.Web.Lang.Utility.UUID.createUUID(),this.cloudViewer=null,this.isEnabled=!1,this.lightDirection=new THREE.Vector3(1,0,0)}destroy(){this.cloudViewer=null,this.lightDirection=null}enableShadow(e){t.send("Bimface.Light.CSMLight","bf_c_csmLight_enable"),this.isEnabled=e,this.cloudViewer.enableShadow(e),this.cloudViewer.setLightPreset(e?4:3),this.cloudViewer.getScene().lightManager.enableCSM(e),this.cloudViewer.updateShadowMap()}isShadowEnabled(){return this.isEnabled}setDirection(e){this.lightDirection=this.cloudViewer.worldToDrawing(e),this.lightDirection.normalize(),this.cloudViewer.getScene().sunDirection=this.lightDirection,this.cloudViewer.getScene().lightManager.updateShadowLight()}setDirectionByCondition(e,t){this.lightDirection=this.cloudViewer.calcShadowDirection([e.lon,e.lat],t),this.cloudViewer.getScene().sunDirection=this.lightDirection,this.cloudViewer.getScene().lightManager.updateShadowLight()}getDirection(){return this.lightDirection}getId(){return this.id}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light");i.FillLight=class{constructor(t){this.id=e.Web.Lang.Utility.UUID.createUUID(),this.fillLight=t}enableLight(e){t.send("Bimface.Light.FillLight","bf_c_fillLight_enable"),this.fillLight&&(this.fillLight.visible=e)}isEnabled(){if(this.fillLight)return this.fillLight.visible}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light");t.SpotLightConfig=class{constructor(){this.id=e.Web.Lang.Utility.UUID.createUUID(),this.position={x:5e3,y:3e3,z:-600},this.target={x:0,y:0,z:0},this.distance=3e3,this.color=new e.Web.Graphics.Color("#FFFFFF",1),this.intensity=3,this.angle=Math.PI/3,this.penumbra=0,this.shadow=!1}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light");i.SpotLight=class{constructor(e){t.send("Bimface.Light.SpotLight","bf_c_spotLight"),e?(this._spotLight=new THREE.SpotLight(16777215),this.setPosition(e.position),this.setTarget(e.target),this.setColor(e.color),this.setAngle(e.angle),this.setIntensity(e.intensity),this.setPenumbra(e.penumbra),this.bimColor=e.color,this.worldDistance=e.distance,this.id=e.id,this.enableShadow(e.shadow||!1)):console.log("ERROR::spotLightConfig must not be empty.")}setPosition(e){this._spotLight.position.set(e.x,e.y,e.z),this._spotLight.updateMatrixWorld(),this._spotLight.castShadow&&this.lightManager&&this.lightManager.updateShadowMap()}getPosition(){return{x:this._spotLight.position.x,y:this._spotLight.position.y,z:this._spotLight.position.z}}setTarget(e){this._spotLight.target.position.set(e.x,e.y,e.z),this._spotLight.target.updateMatrixWorld(),this._spotLight.castShadow&&this.lightManager&&this.lightManager.updateShadowMap()}getTarget(){const e=this._spotLight.target.position;return{x:e.x,y:e.y,z:e.z}}setIntensity(e){e<0||e>3?console.log("ERROR::intensity must be in a range of [0,3], please reset"):(this._spotLight.intensity=30*e,this._spotLight.castShadow&&this.lightManager&&this.lightManager.updateShadowMap())}getIntensity(){return this._spotLight.intensity/30}setAngle(e){e<0||e>Math.PI/2?console.log("ERROR::penumbra must be in a range of (0,Math.PI / 2), please reset"):(this._spotLight.angle=e,this._spotLight.castShadow&&this.lightManager&&this.lightManager.updateShadowMap())}getAngle(){return this._spotLight.angle}setDistance(e){this.worldDistance=e,this.updateRealDistance()}updateRealDistance(){if(this.lightManager){const e=this.lightManager.viewer.getViewer();this._spotLight.distance=e.worldToDrawing({x:this.worldDistance,y:0,z:0}).x,this._spotLight.castShadow&&this.lightManager.updateShadowMap()}}getDistance(){return this.worldDistance}setPenumbra(e){e<0||e>1?console.log("ERROR::penumbra must be in a range of [0,1], please reset"):(this._spotLight.penumbra=e,this._spotLight.castShadow&&this.lightManager&&this.lightManager.updateShadowMap())}getPenumbra(){return this._spotLight.penumbra}setColor(t){t instanceof e.Web.Graphics.Color?(this.bimColor=t,this._spotLight.color.setRGB(t.red/255,t.green/255,t.blue/255),this._spotLight.castShadow&&this.lightManager&&this.lightManager.updateShadowMap()):console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}getColor(){return this.bimColor}enableShadow(e){this._spotLight.castShadow!=e&&(this._spotLight.castShadow=e,this._spotLight.shadow.bias=-9e-5,this.lightManager&&this.lightManager.updateShadow())}hide(){this._spotLight.visible=!1}show(){this._spotLight.visible=!0}enableLight(e){this._spotLight.visible=e}isEnabled(){return this._spotLight.visible}getId(){return this.id}setShadowBias(e){this._spotLight.shadow.bias=e}getShadowBias(){return this._spotLight.shadow.bias}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light");t.DirectionalLightConfig=class{constructor(){this.direction={x:.64,y:-.48,z:-.6},this.color=new e.Web.Graphics.Color(255,255,255,1),this.intensity=1,this.shadow=!1}}}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance(),i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light");i.DirectionalLight=class{constructor(i){t.send("Bimface.Light.DirectionalLight","bf_c_directionalLight_new"),i?(this.id=e.Web.Lang.Utility.UUID.createUUID(),this._dirLight=i.dirLight?i.dirLight:new THREE.DirectionalLight(16777215,1),this.setIntensity(i.intensity),this.setColor(i.color),this.setDirection(i.direction),this.useShadow=i.shadow||!1):console.log("ERROR::directionalLightConfig must not be empty.")}setDirection(e){this.direction=e,this.latLon=void 0,this.date=void 0,this.lightManager&&this.lightManager.updateLightDirection(this)}setDirectionByCondition(e,t){this.latLon=e,this.date=t,this.lightManager&&this.lightManager.updateLightDirection(this)}getDirection(){return this.direction}setColor(t){t instanceof e.Web.Graphics.Color?(this.color=t,this._dirLight.color.setRGB(this.color.red/255,this.color.green/255,this.color.blue/255)):console.log("ERROR::color should be instance of Glodon.Web.Graphics.Color")}getColor(){return this.color}enableShadow(e){if(this.useShadow!=e){if(e)for(let e=0;e<this.lightManager.directionalLights.length;e++){let t=this.lightManager.directionalLights[e];if(t.useShadow)return void console.log(`[BIMFACE WARNING]:DirectionalLight("id":"${t.id}") shadow is already existed.`)}this.useShadow=e,this.lightManager&&this.lightManager.updateShadow()}}isShadowEnabled(){return this.useShadow}update(){this._dirLight.updateMatrixWorld()}setIntensity(e){this._dirLight.intensity=e}getIntensity(){return this._dirLight.intensity}enableLight(e){this._dirLight.visible=e}isEnabled(){return this._dirLight.visible}getId(){return this.id}}}(),function(){const t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light");t.LightManagerConfig=class{constructor(){this.viewer=null}}}(),e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.Light").LightManager=class{constructor(t){if(t)if(this.viewer=t.viewer,this.viewer&&("Viewer3D"===this.viewer.viewerType||this.viewer instanceof e.Bimface.Viewer.ViewerGIS)){var i=this.viewer.getViewer().getScene().lightManager;this.directionalLights=[],this.fillLights=[],this.spotLights=[],this.allLights=[],this.fillLights.push(new e.Bimface.Light.FillLight(i.dirLight)),this.fillLights.push(new e.Bimface.Light.FillLight(i.sunLight)),this.fillLights.push(new e.Bimface.Light.FillLight(i.fillLight01)),this.fillLights.push(new e.Bimface.Light.FillLight(i.fillLight02)),this.fillLights.push(new e.Bimface.Light.FillLight(i.fillLight03));var o=4==CLOUD.GlobalData.LightPreset;this.directionalLights.push(new e.Bimface.Light.DirectionalLight({direction:{x:-.4682929057883805,y:-.4682956580058256,z:.7492669291255056},color:new e.Web.Graphics.Color(255,255,255,1),intensity:.5,dirLight:i.light04,shadow:o})),this.directionalLights[0].lightManager=this,this.updateLightDirection(this.directionalLights[0]),this.csmLight=new e.Bimface.Light.CSMLight,this.csmLight.cloudViewer=this.viewer.getViewer(),this.allLights=this.allLights.concat(this.fillLights).concat(this.directionalLights).concat(this.spotLights).concat(this.csmLight),this.handle=()=>{this.updateShadowMap()},this.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.RemoveView,this.handle),this.viewer.addEventListener(e.Bimface.Viewer.Viewer3DEvent.ViewChanged,this.handle)}else console.log("ERROR::viewer must not be empty or viewer2d.");else console.log("ERROR::lightManagerConfig must not be empty.")}destroy(){this.handle=void 0,this.directionalLights[0].lightManager=null,this.clear(),this.directionalLights=null,this.csmLight.destroy(),this.csmLight=null,this.fillLights=null,this.spotLights=null,this.allLights=null,this.viewer=null}addLight(t){if(!this.getLightById(t.id)){t.lightManager=this;var i=this.viewer.getViewer().getScene().lightManager;if(t instanceof e.Bimface.Light.SpotLight)i.addExternalSpotLight(t._spotLight),t._spotLight.updateMatrixWorld(),t._spotLight.target.parent=t._spotLight.parent,t._spotLight.target.updateMatrixWorld(),t.updateRealDistance(),this.spotLights.push(t);else if(t instanceof e.Bimface.Light.DirectionalLight){if(1==t.useShadow)for(let e=0;e<this.directionalLights.length;e++)this.directionalLights[e].useShadow&&(console.log(`[BIMFACE WARNING]:DirectionalLight("id":"${this.directionalLights[e].id}") shadow is already existed.`),t.useShadow=!1);i.addExternalDirLight(t._dirLight),t._dirLight.updateMatrixWorld(),this.directionalLights.push(t),this.updateLightDirection(t)}return this.allLights=[],this.allLights=this.allLights.concat(this.fillLights).concat(this.directionalLights).concat(this.spotLights).concat(this.csmLight),this.updateShadow(),t.getId()}console.log("ERROR::light is duplicated.")}getAllLights(){return[...this.allLights]}getLightById(e){for(var t=0;t<this.allLights.length;t++)if(this.allLights[t].id==e)return this.allLights[t]}getAllDirectionalLights(){return[...this.directionalLights]}getAllFillLights(){return[...this.fillLights]}getAllSpotLights(){return[...this.spotLights]}removeLightsById(e){for(var t=this.viewer.getViewer().getScene().lightManager,i=this.directionalLights.length-1;i>=1;i--)e.indexOf(this.directionalLights[i].id)>=0&&(t.removeLight(this.directionalLights[i]._dirLight),this.directionalLights.splice(i,1));for(i=this.spotLights.length-1;i>=0;i--)e.indexOf(this.spotLights[i].id)>=0&&(t.removeLight(this.spotLights[i]._spotLight),this.spotLights.splice(i,1));this.allLights=[],this.allLights=this.allLights.concat(this.fillLights).concat(this.directionalLights).concat(this.spotLights).concat(this.csmLight)}clear(){for(var e=this.viewer.getViewer().getScene().lightManager,t=1;t<this.directionalLights.length;t++)e.removeLight(this.directionalLights[t]._dirLight);for(t=0;t<this.spotLights.length;t++)e.removeLight(this.spotLights[t]._spotLight);this.directionalLights.length=1,this.spotLights=[],this.allLights=[],this.allLights=this.allLights.concat(this.fillLights).concat(this.directionalLights).concat(this.csmLight)}enableAllLights(e){for(var t=0;t<this.allLights.length;t++)this.allLights[t].enableLight&&this.allLights[t].enableLight(e)}enableLightsById(e,t){for(var i=0;i<this.allLights.length;i++)e.indexOf(this.allLights[i].id)>=0&&this.allLights[i].enableLight&&this.allLights[i].enableLight(t)}update(){this.updateShadowMap(),this.viewer.render()}enableShadowsById(e,t){for(var i=0;i<this.directionalLights.length;i++)e.indexOf(this.directionalLights[i].id)>=0&&this.directionalLights[i].enableShadow&&this.directionalLights[i].enableShadow(t);for(i=0;i<this.spotLights.length;i++)e.indexOf(this.spotLights[i].id)>=0&&this.spotLights[i].enableShadow&&this.spotLights[i].enableShadow(t)}getCSMLight(){return this.csmLight}updateShadowMap(){this.viewer.getViewer().updateShadowMap()}updateShadow(){for(var e=this.viewer.getViewer().getScene().lightManager,t=!1,i=3,o=0;o<this.spotLights.length;o++)if(this.spotLights[o]._spotLight.castShadow){t=!0;break}var n=!1;for(o=0;o<this.directionalLights.length;o++)this.directionalLights[o]._dirLight.castShadow=!1,this.directionalLights[o].useShadow&&!n&&(t=!0,i=4,n=!0,this.directionalLights[o]._dirLight.castShadow=!0,this.directionalLights[o]._dirLight.shadow.mapSize.width=1024,this.directionalLights[o]._dirLight.shadow.mapSize.height=1024,this.directionalLights[o]._dirLight.shadow.bias=-9e-4,e.lightCastShadow=this.directionalLights[o]._dirLight,this.viewer.getViewer().getScene().sunDirection=this.directionalLights[o]._dirLight._sunDirection);this.csmLight&&this.csmLight.isEnabled&&(t=!0),this.viewer.getViewer().enableShadow(t),this.viewer.getViewer().setLightPreset(i),this.updateShadowMap()}updateLightDirection(t){if(t instanceof e.Bimface.Light.DirectionalLight)if(t.latLon&&t.date){var i=this.viewer.getViewer().calcShadowDirection([t.latLon.lon,t.latLon.lat],t.date);t.direction=this.viewer.getViewer().drawingToWorld(i),t.direction.normalize(),t._dirLight._sunDirection=i,t._dirLight.position.copy(i),t._dirLight.position.multiplyScalar(1e3),t._dirLight.updateMatrixWorld()}else(i=this.viewer.getViewer().worldToDrawing(t.direction)).normalize(),t._dirLight._sunDirection=i,t._dirLight.position.copy(i),t._dirLight.position.multiplyScalar(1e3),t._dirLight.updateMatrixWorld();this.updateShadow()}},function(){let t=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.ElementManager"),i=Object.freeze({Transformed:"Transformed"});t.ExternalObjectEvent=i}(),function(){var t=e.Bimface.Data.StatisticsDataManager.getInstance();let i=e.Web.Lang.Utility.Namespace.ensureNamespace(e,"Bimface.ElementManager");i.ExternalObjectManager=class{constructor(e,i){t.send("Bimface.ElementManager.ExternalObjectManager","bf_c_extObjMng_new");var o=this;return o.viewer=e,o._objects={},o.isVisible=!0,o.layerId=i,o._createExternalObjectManager(),o}_createExternalObjectManager(){this._externalObjectManager=new e.Bimface.Plugins.ExternalObject.ExternalObjectManager(this.viewer)}addEventListener(e,t){this._externalObjectManager.addEventListener(e,t)}removeEventListener(e,t){this._externalObjectManager.removeEventListener(e,t)}_fireTransformedEvent(t){this._externalObjectManager.getEventManager().fireEvent(e.Bimface.ElementManager.ExternalObjectEvent.Transformed,{id:t,worldPosition:this.getPosition(t),layerId:this.layerId}),this.viewer.getViewer().updateGlowEffect(this.modelId,t)}loadObject(e,t,i){var o=this;const n=e.name;if(!f.Utils.isDefined(n))return console.warn("option.name is necessary when loadObject"),void(i&&i());void 0!==e.enableLight&&(o._externalObjectManager.enableLight=e.enableLight);const s=e.object,r=e.url;if(f.Utils.isDefined(s)){const r=o._externalObjectManager._addObject(n,s,e.modelId);if(null!=r)return o._objects[r]=n,o.isVisible?o._externalObjectManager._manager.getFilter().showByIds([r]):o._externalObjectManager._manager.getFilter().hideByIds([r]),f.Utils.isDefined(e.objectData)&&o.setObjectData(r,e.objectData),t&&t(),r;i&&i()}else f.Utils.isDefined(r)&&o._externalObjectManager.loadObject({name:n,url:{objectUrl:r.objectUrl,mtlUrl:r.mtlUrl},objectData:e.objectData,association:{modelId:e.modelId},enableLight:e.enableLight},(()=>{var e=o._externalObjectManager.getObjectIdByName(n);null!=e&&(o._objects[e]=n),t&&t()}),i)}getObjectIdByName(e){for(var t in this._objects)if(this._objects[t]===e)return t}setObjectData(e,t){void 0!==this._objects[e]?this._externalObjectManager.setObjectData(e,t):console.warn(`No ${e} in ExternalObjectManager`)}getObjectData(e){if(void 0!==this._objects[e])return this._externalObjectManager.getObjectData(e);console.warn(`No ${e} in ExternalObjectManager`)}getObjectIdAndName(){return this._objects}_updateMeshesVisible(){for(var e in this._externalObjectManager._manager.meshes){var t=this._externalObjectManager._manager.meshes[e];if(null!=t&&null!=this._objects[e])for(var i=0;i<t.length;i++)t[i].visible=this.isVisible}}clone(e,t){const i=this._externalObjectManager.clone(e,t);return i&&(this._objects[i]=t),i}hide(e){this._externalObjectManager.hide(e)}show(e){this._externalObjectManager.show(e)}select(e){this._externalObjectManager.select(e)}removeSelection(e){this._externalObjectManager.removeSelection(e)}getAllObjectIds(){return Object.keys(this._objects)}removeByIds(e){for(var t=0;t<e.length;t++){const i=e[t];this.removeById(i)}}removeById(e){this._objects[e]&&(this._externalObjectManager.removeById(e),delete this._objects[e])}clear(){var e=this,t=Object.keys(e._objects);t.length>0&&(e.clearGlowEffect(),e._externalObjectManager.removeByIds(t),e._objects={})}translate(e,t){null!=this._objects[e]&&(this._externalObjectManager.translate(e,t),this._fireTransformedEvent(e))}rotateOnBasePoint(e,t,i,o){null!=this._objects[e]&&(this._externalObjectManager.rotateOnBasePoint(e,t,i,o),this._fireTransformedEvent(e))}scaleOnBasePoint(e,t,i){null!=this._objects[e]&&(this._externalObjectManager.scaleOnBasePoint(e,t,i),this._fireTransformedEvent(e))}getBoundingBoxById(e){if(null!=this._objects[e])return this._externalObjectManager.getBoundingBoxById(e)}setPosition(e,t){null!=this._objects[e]&&(this._externalObjectManager.setPosition(e,t),this._fireTransformedEvent(e))}getPosition(e){if(null!=this._objects[e])return this._externalObjectManager.getPosition(e)}offset(e,t){null!=this._objects[e]&&(this._externalObjectManager.offset(e,t),this._fireTransformedEvent(e))}offsetX(e,t){this.offset(e,{x:t,y:0,z:0})}offsetY(e,t){this.offset(e,{x:0,y:t,z:0})}offsetZ(e,t){this.offset(e,{x:0,y:0,z:t})}rotate(e,t){null!=this._objects[e]&&(this._externalObjectManager.rotate(e,t),this._fireTransformedEvent(e))}rotateX(e,t){this.rotate(e,{x:t,y:0,z:0})}rotateY(e,t){this.rotate(e,{x:0,y:t,z:0})}rotateZ(e,t){this.rotate(e,{x:0,y:0,z:t})}setRotationX(e,t,i){let o=new THREE.Vector3(1,0,0);this.rotateOnBasePoint(e,t,o,i)}setRotationY(e,t,i){let o=new THREE.Vector3(0,1,0);this.rotateOnBasePoint(e,t,o,i)}setRotationZ(e,t,i){let o=new THREE.Vector3(0,0,1);this.rotateOnBasePoint(e,t,o,i)}scale(e,t){null!=this._objects[e]&&(this._externalObjectManager.scale(e,t),this._fireTransformedEvent(e))}scaleX(e,t){this.scale(e,{x:t,y:1,z:1})}scaleY(e,t){this.scale(e,{x:1,y:t,z:1})}scaleZ(e,t){this.scale(e,{x:1,y:1,z:t})}getTransformation(e){if(null!=this._objects[e])return this._externalObjectManager.getTransformation(e)}setTransformation(e,t){null!=this._objects[e]&&(this._externalObjectManager.setTransformation(e,t),this._fireTransformedEvent(e))}setGlowEffectById(e,t){for(var i=this,o=[],n=0;n<e.length;n++)null!=i._objects[e[n]]&&o.push(e[n]);if(0!=o.length){if("outline"==t.type){null==i.outlineGlowObj&&(i.outlineGlowObj={});for(n=0;n<e.length;n++)i.outlineGlowObj[e[n]]=t}else{null==i.bodyGlowObj&&(i.bodyGlowObj={});for(n=0;n<e.length;n++)i.bodyGlowObj[e[n]]=t}i._externalObjectManager.setGlowEffectById(o,t)}}removeGlowEffectById(e){for(var t=this,i=[],o=0;o<e.length;o++)null!=t._objects[e[o]]&&i.push(e[o]);if(0!=i.length){for(o=0;o<i.length;o++)null!=t.bodyGlowObj&&delete t.bodyGlowObj[i[o]],null!=t.outlineGlowObj&&delete t.outlineGlowObj[i[o]];t._externalObjectManager.removeGlowEffectById(i)}}clearGlowEffect(){var e=this,t=Object.keys(e._objects);t.length>0&&e._externalObjectManager.removeGlowEffectById(t),e.outlineGlowObj=null,e.bodyGlowObj=null}play(e){null!=this._objects[e]&&this._externalObjectManager.play(e)}pause(e){null!=this._objects[e]&&this._externalObjectManager.pause(e)}stop(e){null!=this._objects[e]&&this._externalObjectManager.stop(e)}isAnimatable(e){if(null!=this._objects[e])return this._externalObjectManager.isAnimatable(e)}getBoundingBoxWorld(){let e=new THREE.Box3;const t=this._externalObjectManager._manager.getFilter();for(const i in this._objects){if(t.isHidden(i))continue;const o=this.getBoundingBoxById(i);e.union(o)}return e}overrideColor(e,t){if(!f.Utils.isDefined(e))return;let i=[];const o=this._externalObjectManager._manager.getFilter();if(!f.Utils.isDefined(o))return;if(f.Utils.isDefined(e.all)&&1==e.all&&(i=i.concat(this.getAllObjectIds())),f.Utils.isDefined(e.objectData)&&(Array.isArray(e.objectData)||(e.objectData=[e.objectData]),i=i.concat(o.getMatchIds(e.objectData))),f.Utils.isDefined(e.ids)&&(i=i.concat(e.ids)),i=Array.from(new Set(i)),0===i.length)return;const n={color:parseInt(t.getHEX(),16),opacity:t.getAlpha()};o.addToOverrideListByColor(i,n)}restoreColor(e){if(!f.Utils.isDefined(e))return;let t=[];const i=this._externalObjectManager._manager.getFilter();f.Utils.isDefined(i)&&(f.Utils.isDefined(e.all)&&1==e.all&&(t=t.concat(this.getAllObjectIds())),f.Utils.isDefined(e.objectData)&&(Array.isArray(e.objectData)||(e.objectData=[e.objectData]),t=t.concat(i.getMatchIds(e.objectData))),f.Utils.isDefined(e.ids)&&(t=t.concat(e.ids)),t=Array.from(new Set(t)),0!==t.length&&i.addToOverrideListByColor(t))}toLocalPosition(e,t){return this._externalObjectManager.toLocalPosition(e,t)}toWorldPosition(e,t){return this._externalObjectManager.toWorldPosition(e,t)}}}(),window.Glodon=e}(); |